]> git.ipfire.org Git - thirdparty/make.git/commitdiff
* src/function.c (func_let): Don't edit nonexistent values
authorJouke Witteveen <j.witteveen@gmail.com>
Tue, 2 Jan 2024 00:27:44 +0000 (19:27 -0500)
committerPaul Smith <psmith@gnu.org>
Tue, 2 Jan 2024 00:31:37 +0000 (19:31 -0500)
* tests/scripts/functions/let: Test trailing whitespace in value list.

src/function.c
tests/scripts/functions/let

index cf221bbc1ec7cd05cbdcb499dd53a81c84e275d6..f7731b88932c7c187e29ded60cd68f4b8acdb73f 100644 (file)
@@ -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';
index 48aec78fa3af9c41b0e76e62aa2164ac89d9a462..d2e4d8227d3e407627c81c32bc7de5d5b78e96ca 100644 (file)
@@ -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('