Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Document the new mkfile buildin command
[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)\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 \r
20         if(val)\r
21                 variable->val = strdup(val);\r
22 \r
23         variable->used = 0;\r
24         variable->env = 0;\r
25         variable->err = 0;\r
26         \r
27         return variable;\r
28         \r
29 }\r
30 \r
31 int\r
32 variable_free(variable_t* variableptr)\r
33 {\r
34         if(!(*variableptr))\r
35                 return EINVAL;\r
36         \r
37         if((*((variable_t*)(variableptr)))->name)\r
38                 free((*((variable_t*)(variableptr)))->name);\r
39         \r
40         if((*((variable_t*)(variableptr)))->val)\r
41                 free((*((variable_t*)(variableptr)))->val);\r
42         \r
43         free(*variableptr);\r
44         \r
45         *variableptr = NULL;\r
46         return 0;\r
47 }\r
48 \r
49 \r
50 int\r
51 variable_is_used(variable_t variable)\r
52 {\r
53         if(!variable)\r
54         {\r
55                 errno = EINVAL;\r
56                 return 0;\r
57         }\r
58                 \r
59         return variable->used;\r
60 }\r
61 \r
62 \r
63 int\r
64 variable_set_used(variable_t variable)\r
65 {\r
66         if(!variable)\r
67                 return EINVAL;\r
68         \r
69         variable->used = 1;\r
70         \r
71         return 0;\r
72 }\r