Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
last change of Tesh2
[simgrid.git] / tools / tesh2 / src / variable.c
1 #include <variable.h>\r
2 \r
3 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(tesh);\r
4 \r
5 variable_t\r
6 variable_new(const char* name, const char* val)\r
7 {\r
8         variable_t variable;\r
9         \r
10         if(!name || !val)\r
11         {\r
12                 errno = EINVAL;\r
13                 return NULL;\r
14         }\r
15         \r
16         variable = xbt_new0(s_variable_t, 1);\r
17         \r
18         variable->name = strdup(name);\r
19         variable->val = strdup(val);\r
20         variable->used = 0;\r
21         variable->env = 0;\r
22         variable->err = 0;\r
23         \r
24         return variable;\r
25         \r
26 }\r
27 \r
28 int\r
29 variable_free(variable_t* variableptr)\r
30 {\r
31         if(!(*variableptr))\r
32                 return EINVAL;\r
33         \r
34         if((*((variable_t*)(variableptr)))->name)\r
35                 free((*((variable_t*)(variableptr)))->name);\r
36         \r
37         if((*((variable_t*)(variableptr)))->val)\r
38                 free((*((variable_t*)(variableptr)))->val);\r
39         \r
40         free(*variableptr);\r
41         \r
42         *variableptr = NULL;\r
43         return 0;\r
44 }\r
45 \r
46 \r
47 int\r
48 variable_is_used(variable_t variable)\r
49 {\r
50         if(!variable)\r
51         {\r
52                 errno = EINVAL;\r
53                 return 0;\r
54         }\r
55                 \r
56         return variable->used;\r
57 }\r
58 \r
59 \r
60 int\r
61 variable_set_used(variable_t variable)\r
62 {\r
63         if(!variable)\r
64                 return EINVAL;\r
65         \r
66         variable->used = 1;\r
67         \r
68         return 0;\r
69 }\r