From 864a9c811567dc5b4a8f2a8701f814caafe8965e Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Tue, 31 Oct 2023 12:09:05 -0400 Subject: Consume up to one '=', instead of splitting on all occurrences --- src/environment.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/environment.c b/src/environment.c index a979886..3718c47 100644 --- a/src/environment.c +++ b/src/environment.c @@ -274,7 +274,7 @@ char *runtime_get(RuntimeEnv *env, const char *key) { * @param input String to parse * @return success=expanded string, failure=`NULL` */ -char *runtime_expand_var(RuntimeEnv *env, const char *input) { +char *runtime_expand_var(RuntimeEnv *env, char *input) { const char delim = '$'; const char *delim_literal = "$$"; char *expanded = NULL; @@ -412,8 +412,7 @@ void runtime_set(RuntimeEnv *env, const char *_key, const char *_value) { if (key_offset < 0) { strlist_append(env, now); - } - else { + } else { strlist_set(env, key_offset, now); } free(now); @@ -427,7 +426,7 @@ void runtime_set(RuntimeEnv *env, const char *_key, const char *_value) { */ void runtime_apply(RuntimeEnv *env) { for (size_t i = 0; i < strlist_count(env); i++) { - char **pair = split(strlist_item(env, i), "=", 0); + char **pair = split(strlist_item(env, i), "=", 1); setenv(pair[0], pair[1], 1); split_free(pair); } -- cgit