6 static void dummy(char *old
, char *new) {}
7 weak_alias(dummy
, __env_rm_add
);
9 int __putenv(char *s
, size_t l
, char *r
)
13 for (char **e
= __environ
; *e
; e
++, i
++)
14 if (!strncmp(s
, *e
, l
+1)) {
23 if (__environ
== oldenv
) {
24 newenv
= realloc(oldenv
, sizeof *newenv
* (i
+2));
25 if (!newenv
) goto oom
;
27 newenv
= malloc(sizeof *newenv
* (i
+2));
28 if (!newenv
) goto oom
;
29 if (i
) memcpy(newenv
, __environ
, sizeof *newenv
* i
);
34 __environ
= oldenv
= newenv
;
35 if (r
) __env_rm_add(0, r
);
44 size_t l
= __strchrnul(s
, '=') - s
;
45 if (!l
|| !s
[l
]) return unsetenv(s
);
46 return __putenv(s
, l
, 0);