Fix listquote expansion item to handle empty-string input
authorJeremy Harris <jgh146exb@wizmail.org>
Mon, 25 May 2020 10:38:25 +0000 (11:38 +0100)
committerJeremy Harris <jgh146exb@wizmail.org>
Mon, 25 May 2020 20:05:55 +0000 (21:05 +0100)
src/src/expand.c
test/scripts/0000-Basic/0002
test/stdout/0002

index 7c9d481000223e2fcd33cff2e24f79f8525a565b..2c29c26d538550801ae7574e597b588860e17fd0 100644 (file)
@@ -6186,11 +6186,12 @@ while (*s != 0)
         case 2:
         case 3: goto EXPAND_FAILED;
         }
         case 2:
         case 3: goto EXPAND_FAILED;
         }
-      for (uschar sep = *sub[0], c; c = *sub[1]; sub[1]++)
+      if (*sub[1]) for (uschar sep = *sub[0], c; c = *sub[1]; sub[1]++)
        {
        if (c == sep) yield = string_catn(yield, sub[1], 1);
        yield = string_catn(yield, sub[1], 1);
        }
        {
        if (c == sep) yield = string_catn(yield, sub[1], 1);
        yield = string_catn(yield, sub[1], 1);
        }
+      else yield = string_catn(yield, US" ", 1);
       continue;
       }
 
       continue;
       }
 
index db8d709811c1b4ba7e16ca10f3448552e9d49e24..a8fc0bcb274770b166eb3496a73e8a64950b4240 100644 (file)
@@ -133,6 +133,7 @@ listquote: ${listquote{:}{ab::cd}}
 listquote: ${listquote{;}{ab:cd}}
 listquote: ${listquote{;}{ab;cd}}
 listquote: ${listquote{ }{ ab cd}}
 listquote: ${listquote{;}{ab:cd}}
 listquote: ${listquote{;}{ab;cd}}
 listquote: ${listquote{ }{ ab cd}}
+listquote: <${listquote{:}{}}>
 
 sort: ${sort{3:2:1:4}{<}{$item}}
 sort: ${sort {<, 3,2,1,4}{>}{$item}}
 
 sort: ${sort{3:2:1:4}{<}{$item}}
 sort: ${sort {<, 3,2,1,4}{>}{$item}}
index ea918aebb7b92f89745e437f6af2dad9573b17c3..b8ff36122c53752ec4bc3a0499e206f2f90c1b54 100644 (file)
 > listquote: ab:cd
 > listquote: ab;;cd
 > listquote:   ab  cd
 > listquote: ab:cd
 > listquote: ab;;cd
 > listquote:   ab  cd
+> listquote: < >
 > 
 > sort: 1:2:3:4
 > sort: 4,3,2,1
 > 
 > sort: 1:2:3:4
 > sort: 4,3,2,1