From: Jouke Witteveen Date: Tue, 2 Jan 2024 00:27:44 +0000 (-0500) Subject: * src/function.c (func_let): Don't edit nonexistent values X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=89bea82af37908f2c4cc1fdea1433b927e2864a2;p=thirdparty%2Fmake.git * src/function.c (func_let): Don't edit nonexistent values * tests/scripts/functions/let: Test trailing whitespace in value list. --- diff --git a/src/function.c b/src/function.c index cf221bbc..f7731b88 100644 --- a/src/function.c +++ b/src/function.c @@ -915,8 +915,6 @@ func_let (char *o, char **argv, const char *funcname UNUSED) const char *vp; const char *vp_next = varnames; const char *list_iterator = list; - char *p; - size_t len; size_t vlen; push_new_variable_scope (); @@ -926,8 +924,9 @@ func_let (char *o, char **argv, const char *funcname UNUSED) NEXT_TOKEN (vp_next); while (*vp_next != '\0') { - p = find_next_token (&list_iterator, &len); - if (*list_iterator != '\0') + size_t len; + char *p = find_next_token (&list_iterator, &len); + if (p && *list_iterator != '\0') { ++list_iterator; p[len] = '\0'; diff --git a/tests/scripts/functions/let b/tests/scripts/functions/let index 48aec78f..d2e4d822 100644 --- a/tests/scripts/functions/let +++ b/tests/scripts/functions/let @@ -42,9 +42,10 @@ null = v = $(let ,$(info blankvar),abc) x = $(let $(null),$(info side-effect),abc) y = $(let y,,$ydef) +z = $(let a b, ,+$a+$b+) -all: ; @echo $v/$x/$y', - '', "blankvar\nside-effect\nabc/abc/def\n"); +all: ; @echo $v/$x/$y/$z', + '', "blankvar\nside-effect\nabc/abc/def/+++\n"); # The example macro from the manual. run_make_test('