aboutsummaryrefslogtreecommitdiff
path: root/environ.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2015-05-09 12:51:41 +0100
committerThomas Adam <thomas@xteddy.org>2015-05-09 12:52:38 +0100
commit504b97b6a4314a7a052d9b05de746515e2a03628 (patch)
tree6b6316b7f7d35725bd0ce2377adae1847cc324da /environ.c
parent6525ca51584636ef781bda147d37d5d0d10899e0 (diff)
parent92faa2eaebd32117f01b0b7d7ae81abdfde2d935 (diff)
downloadrtmux-504b97b6a4314a7a052d9b05de746515e2a03628.tar.gz
rtmux-504b97b6a4314a7a052d9b05de746515e2a03628.tar.bz2
rtmux-504b97b6a4314a7a052d9b05de746515e2a03628.zip
Merge branch 'obsd-master'
Conflicts: tmux.h
Diffstat (limited to 'environ.c')
-rw-r--r--environ.c25
1 files changed, 9 insertions, 16 deletions
diff --git a/environ.c b/environ.c
index 0dd91783..11b8c849 100644
--- a/environ.c
+++ b/environ.c
@@ -157,23 +157,16 @@ environ_update(const char *vars, struct environ *srcenv,
void
environ_push(struct environ *env)
{
- ARRAY_DECL(, char *) varlist;
- struct environ_entry *envent;
- char **varp, *var;
- u_int i;
-
- ARRAY_INIT(&varlist);
- for (varp = environ; *varp != NULL; varp++) {
- var = xstrdup(*varp);
- var[strcspn(var, "=")] = '\0';
- ARRAY_ADD(&varlist, var);
- }
- for (i = 0; i < ARRAY_LENGTH(&varlist); i++) {
- var = ARRAY_ITEM(&varlist, i);
- unsetenv(var);
- free(var);
+ struct environ_entry *envent;
+ char **vp, *v;
+
+ for (vp = environ; *vp != NULL; vp++) {
+ v = xstrdup(*vp);
+ v[strcspn(v, "=")] = '\0';
+
+ unsetenv(v);
+ free(v);
}
- ARRAY_FREE(&varlist);
RB_FOREACH(envent, environ, env) {
if (envent->value != NULL)