version 1.1, 2009/08/08 21:52:43 |
version 1.2, 2009/08/08 21:54:26 |
|
|
environ_update(const char *vars, struct environ *srcenv, struct environ *dstenv) |
environ_update(const char *vars, struct environ *srcenv, struct environ *dstenv) |
{ |
{ |
struct environ_entry *envent; |
struct environ_entry *envent; |
char *var, *next; |
char *copyvars, *var, *next; |
|
|
vars = next = xstrdup(vars); |
copyvars = next = xstrdup(vars); |
while ((var = strsep(&next, " ")) != NULL) { |
while ((var = strsep(&next, " ")) != NULL) { |
if ((envent = environ_find(srcenv, var)) == NULL) |
if ((envent = environ_find(srcenv, var)) == NULL) |
environ_set(dstenv, var, NULL); |
environ_set(dstenv, var, NULL); |
else |
else |
environ_set(dstenv, envent->name, envent->value); |
environ_set(dstenv, envent->name, envent->value); |
} |
} |
xfree(vars); |
xfree(copyvars); |
} |
} |