5 void __env_rm_add(char *old
, char *new)
7 static char **env_alloced
;
8 static size_t env_alloced_n
;
9 for (size_t i
=0; i
< env_alloced_n
; i
++)
10 if (env_alloced
[i
] == old
) {
14 } else if (!env_alloced
[i
] && new) {
19 char **t
= realloc(env_alloced
, sizeof *t
* (env_alloced_n
+1));
21 (env_alloced
= t
)[env_alloced_n
++] = new;
24 int setenv(const char *var
, const char *value
, int overwrite
)
29 if (!var
|| !(l1
= __strchrnul(var
, '=') - var
) || var
[l1
]) {
33 if (!overwrite
&& getenv(var
)) return 0;
40 memcpy(s
+l1
+1, value
, l2
+1);
41 return __putenv(s
, l1
, s
);