Line | Source | Count |
1 | | - |
2 | | - |
3 | | - |
4 | | - |
5 | | - |
6 | | - |
7 | | - |
8 | | - |
9 | | - |
10 | | - |
11 | | - |
12 | | - |
13 | | - |
14 | | - |
15 | | - |
16 | | - |
17 | | - |
18 | | - |
19 | | - |
20 | | - |
21 | | - |
22 | #include <config.h> | - |
23 | | - |
24 | #if defined (CAN_REDEFINE_GETENV) | - |
25 | | - |
26 | #if defined (HAVE_UNISTD_H) | - |
27 | # include <unistd.h> | - |
28 | #endif | - |
29 | | - |
30 | #include <bashansi.h> | - |
31 | #include <errno.h> | - |
32 | #include <shell.h> | - |
33 | | - |
34 | #ifndef errno | - |
35 | extern int errno; | - |
36 | #endif | - |
37 | | - |
38 | extern char **environ; | - |
39 | | - |
40 | | - |
41 | | - |
42 | | - |
43 | | - |
44 | | - |
45 | | - |
46 | | - |
47 | static char *last_tempenv_value = (char *)NULL; | - |
48 | | - |
49 | char * | - |
50 | getenv (name) | - |
51 | const char *name; | - |
52 | { | - |
53 | SHELL_VAR *var; | - |
54 | | - |
55 | if (name == 0 || *name == '\0')TRUE | never evaluated | FALSE | evaluated 10864 times by 1 test |
TRUE | never evaluated | FALSE | evaluated 10864 times by 1 test |
| 0-10864 |
56 | return ((char *)NULL); never executed: return ((char *) ((void *)0) ); | 0 |
57 | | - |
58 | var = find_tempenv_variable ((char *)name); | - |
59 | if (var)TRUE | never evaluated | FALSE | evaluated 10864 times by 1 test |
| 0-10864 |
60 | { | - |
61 | FREE (last_tempenv_value); never executed: sh_xfree((last_tempenv_value), "getenv.c", 61); TRUE | never evaluated | FALSE | never evaluated |
| 0 |
62 | | - |
63 | last_tempenv_value = value_cell (var) ? savestring (value_cell (var)) : (char *)NULL;TRUE | never evaluated | FALSE | never evaluated |
| 0 |
64 | return (last_tempenv_value); never executed: return (last_tempenv_value); | 0 |
65 | } | - |
66 | else if (shell_variables)TRUE | never evaluated | FALSE | evaluated 10864 times by 1 test |
| 0-10864 |
67 | { | - |
68 | var = find_variable ((char *)name); | - |
69 | if (var && exported_p (var))TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
70 | return (value_cell (var)); never executed: return (((var)->value)); | 0 |
71 | } never executed: end of block | 0 |
72 | else | - |
73 | { | - |
74 | register int i, len; | - |
75 | | - |
76 | | - |
77 | | - |
78 | | - |
79 | | - |
80 | | - |
81 | for (i = 0, len = strlen (name); environ[i]; i++)TRUE | evaluated 250610 times by 1 test | FALSE | evaluated 10864 times by 1 test |
| 10864-250610 |
82 | { | - |
83 | if ((STREQN (environ[i], name, len)) && (environ[i][len] == '=')) never executed: __result = (((const unsigned char *) (const char *) ( environ[i] ))[3] - __s2[3]); never executed: end of block never executed: end of block never executed: __result = (((const unsigned char *) (const char *) ( name ))[3] - __s2[3]); never executed: end of block never executed: end of block TRUE | never evaluated | FALSE | evaluated 250610 times by 1 test |
TRUE | never evaluated | FALSE | evaluated 250610 times by 1 test |
TRUE | evaluated 21538 times by 1 test | FALSE | evaluated 229072 times by 1 test |
TRUE | never evaluated | FALSE | evaluated 21538 times by 1 test |
TRUE | never evaluated | FALSE | evaluated 21538 times by 1 test |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0-250610 |
84 | return (environ[i] + len + 1); never executed: return (environ[i] + len + 1); | 0 |
85 | }executed 250610 times by 1 test: end of block | 250610 |
86 | }executed 10864 times by 1 test: end of block | 10864 |
87 | | - |
88 | return ((char *)NULL);executed 10864 times by 1 test: return ((char *) ((void *)0) ); | 10864 |
89 | } | - |
90 | | - |
91 | | - |
92 | char * | - |
93 | _getenv (name) | - |
94 | const char *name; | - |
95 | { | - |
96 | return (getenv (name)); never executed: return (getenv (name)); | 0 |
97 | } | - |
98 | | - |
99 | | - |
100 | int | - |
101 | putenv (str) | - |
102 | #ifndef HAVE_STD_PUTENV | - |
103 | const char *str; | - |
104 | #else | - |
105 | char *str; | - |
106 | #endif | - |
107 | { | - |
108 | SHELL_VAR *var; | - |
109 | char *name, *value; | - |
110 | int offset; | - |
111 | | - |
112 | if (str == 0 || *str == '\0')TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
113 | { | - |
114 | errno = EINVAL; | - |
115 | return -1; never executed: return -1; | 0 |
116 | } | - |
117 | | - |
118 | offset = assignment (str, 0); | - |
119 | if (str[offset] != '=')TRUE | never evaluated | FALSE | never evaluated |
| 0 |
120 | { | - |
121 | errno = EINVAL; | - |
122 | return -1; never executed: return -1; | 0 |
123 | } | - |
124 | name = savestring (str); | - |
125 | name[offset] = 0; | - |
126 | | - |
127 | value = name + offset + 1; | - |
128 | | - |
129 | | - |
130 | var = bind_variable (name, value, 0); | - |
131 | if (var == 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
132 | { | - |
133 | errno = EINVAL; | - |
134 | return -1; never executed: return -1; | 0 |
135 | } | - |
136 | | - |
137 | VUNSETATTR (var, att_invisible); | - |
138 | VSETATTR (var, att_exported); | - |
139 | | - |
140 | return 0; never executed: return 0; | 0 |
141 | } | - |
142 | | - |
143 | #if 0 | - |
144 | int | - |
145 | _putenv (name) | - |
146 | #ifndef HAVE_STD_PUTENV | - |
147 | const char *name; | - |
148 | #else | - |
149 | char *name; | - |
150 | #endif | - |
151 | { | - |
152 | return putenv (name); | - |
153 | } | - |
154 | #endif | - |
155 | | - |
156 | int | - |
157 | setenv (name, value, rewrite) | - |
158 | const char *name; | - |
159 | const char *value; | - |
160 | int rewrite; | - |
161 | { | - |
162 | SHELL_VAR *var; | - |
163 | char *v; | - |
164 | | - |
165 | if (name == 0 || *name == '\0' || strchr (name, '=') != 0)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
166 | { | - |
167 | errno = EINVAL; | - |
168 | return -1; never executed: return -1; | 0 |
169 | } | - |
170 | | - |
171 | var = 0; | - |
172 | v = (char *)value; | - |
173 | | - |
174 | if (rewrite == 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
175 | var = find_variable (name); never executed: var = find_variable (name); | 0 |
176 | | - |
177 | if (var == 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
178 | var = bind_variable (name, v, 0); never executed: var = bind_variable (name, v, 0); | 0 |
179 | | - |
180 | if (var == 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
181 | return -1; never executed: return -1; | 0 |
182 | | - |
183 | VUNSETATTR (var, att_invisible); | - |
184 | VSETATTR (var, att_exported); | - |
185 | | - |
186 | return 0; never executed: return 0; | 0 |
187 | } | - |
188 | | - |
189 | #if 0 | - |
190 | int | - |
191 | _setenv (name, value, rewrite) | - |
192 | const char *name; | - |
193 | const char *value; | - |
194 | int rewrite; | - |
195 | { | - |
196 | return setenv (name, value, rewrite); | - |
197 | } | - |
198 | #endif | - |
199 | | - |
200 | | - |
201 | | - |
202 | #ifdef HAVE_STD_UNSETENV | - |
203 | #define UNSETENV_RETURN(N) return(N) | - |
204 | #define UNSETENV_RETTYPE int | - |
205 | #else | - |
206 | #define UNSETENV_RETURN(N) return | - |
207 | #define UNSETENV_RETTYPE void | - |
208 | #endif | - |
209 | | - |
210 | UNSETENV_RETTYPE | - |
211 | unsetenv (name) | - |
212 | const char *name; | - |
213 | { | - |
214 | if (name == 0 || *name == '\0' || strchr (name, '=') != 0)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
215 | { | - |
216 | errno = EINVAL; | - |
217 | UNSETENV_RETURN(-1); never executed: return(-1); | 0 |
218 | } | - |
219 | | - |
220 | | - |
221 | #if 1 | - |
222 | unbind_variable (name); | - |
223 | #else | - |
224 | SHELL_VAR *v; | - |
225 | | - |
226 | v = find_variable (name); | - |
227 | if (v) | - |
228 | VUNSETATTR (v, att_exported); | - |
229 | #endif | - |
230 | | - |
231 | UNSETENV_RETURN(0); never executed: return(0); | 0 |
232 | } | - |
233 | #endif /* CAN_REDEFINE_GETENV */ | - |
| | |