| Index: fusl/src/env/unsetenv.c
|
| diff --git a/fusl/src/env/unsetenv.c b/fusl/src/env/unsetenv.c
|
| index 356933546a31a41ad859c3bc08709aa76a5a2644..02e5339d03fd814cc8194d35a815b7054735208d 100644
|
| --- a/fusl/src/env/unsetenv.c
|
| +++ b/fusl/src/env/unsetenv.c
|
| @@ -2,30 +2,33 @@
|
| #include <string.h>
|
| #include <errno.h>
|
|
|
| -extern char **__environ;
|
| -extern char **__env_map;
|
| +extern char** __environ;
|
| +extern char** __env_map;
|
|
|
| -int unsetenv(const char *name)
|
| -{
|
| - int i, j;
|
| - size_t l = strlen(name);
|
| +int unsetenv(const char* name) {
|
| + int i, j;
|
| + size_t l = strlen(name);
|
|
|
| - if (!*name || strchr(name, '=')) {
|
| - errno = EINVAL;
|
| - return -1;
|
| - }
|
| + if (!*name || strchr(name, '=')) {
|
| + errno = EINVAL;
|
| + return -1;
|
| + }
|
| again:
|
| - for (i=0; __environ[i] && (memcmp(name, __environ[i], l) || __environ[i][l] != '='); i++);
|
| - if (__environ[i]) {
|
| - if (__env_map) {
|
| - for (j=0; __env_map[j] && __env_map[j] != __environ[i]; j++);
|
| - free (__env_map[j]);
|
| - for (; __env_map[j]; j++)
|
| - __env_map[j] = __env_map[j+1];
|
| - }
|
| - for (; __environ[i]; i++)
|
| - __environ[i] = __environ[i+1];
|
| - goto again;
|
| - }
|
| - return 0;
|
| + for (i = 0; __environ[i] &&
|
| + (memcmp(name, __environ[i], l) || __environ[i][l] != '=');
|
| + i++)
|
| + ;
|
| + if (__environ[i]) {
|
| + if (__env_map) {
|
| + for (j = 0; __env_map[j] && __env_map[j] != __environ[i]; j++)
|
| + ;
|
| + free(__env_map[j]);
|
| + for (; __env_map[j]; j++)
|
| + __env_map[j] = __env_map[j + 1];
|
| + }
|
| + for (; __environ[i]; i++)
|
| + __environ[i] = __environ[i + 1];
|
| + goto again;
|
| + }
|
| + return 0;
|
| }
|
|
|