aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2020-10-07 10:01:19 +0100
committerThomas Adam <thomas@xteddy.org>2020-10-07 10:01:19 +0100
commit7ca0b9ddfa4782c47c33cadcc704996ab09664ed (patch)
treeffdeb1476572f00e6782a48d1a50eca12f22f3e3
parent991d5a9c74f658225cc82e0b08d168c092eefdbe (diff)
parent3afcc6faac828be21da68576d196f5ab344f84d5 (diff)
downloadrtmux-7ca0b9ddfa4782c47c33cadcc704996ab09664ed.tar.gz
rtmux-7ca0b9ddfa4782c47c33cadcc704996ab09664ed.tar.bz2
rtmux-7ca0b9ddfa4782c47c33cadcc704996ab09664ed.zip
Merge branch 'obsd-master'
-rw-r--r--environ.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/environ.c b/environ.c
index 940109b0..74d672e0 100644
--- a/environ.c
+++ b/environ.c
@@ -18,6 +18,7 @@
#include <sys/types.h>
+#include <fnmatch.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
@@ -191,7 +192,11 @@ environ_update(struct options *oo, struct environ *src, struct environ *dst)
a = options_array_first(o);
while (a != NULL) {
ov = options_array_item_value(a);
- if ((envent = environ_find(src, ov->string)) == NULL)
+ RB_FOREACH(envent, environ, src) {
+ if (fnmatch(ov->string, envent->name, 0) == 0)
+ break;
+ }
+ if (envent == NULL)
environ_clear(dst, ov->string);
else
environ_set(dst, envent->name, 0, "%s", envent->value);