about summary refs log tree commit diff
path: root/Src/subst.c
diff options
context:
space:
mode:
authorBart Schaefer <schaefer@zsh.org>2023-11-15 20:16:04 -0800
committerBart Schaefer <schaefer@zsh.org>2023-11-15 20:16:04 -0800
commite6ad117ccb548c8411610571c92fa4094f275460 (patch)
tree81ea94a83fd4d1dfdc20d19da322ccd767eaf709 /Src/subst.c
parentbe223aedee772fc31e12ec8c5277f50aae25b0fe (diff)
downloadzsh-e6ad117ccb548c8411610571c92fa4094f275460.tar.gz
zsh-e6ad117ccb548c8411610571c92fa4094f275460.tar.xz
zsh-e6ad117ccb548c8411610571c92fa4094f275460.zip
52202: improve handling of quoting in ${var/pattern/replacement}
Diffstat (limited to 'Src/subst.c')
-rw-r--r--Src/subst.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/Src/subst.c b/Src/subst.c
index 60d850feb..4ef1d1269 100644
--- a/Src/subst.c
+++ b/Src/subst.c
@@ -3088,6 +3088,13 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int pf_flags,
 			chuck(ptr);
 		    else
 			ptr++;
+		} else if (c == Dnull) {
+		    chuck(ptr);
+		    while (*ptr && *ptr != c)
+			ptr++;
+		    if (*ptr == Dnull)
+			chuck(ptr);
+		    ptr--;	/* Outer loop is about to increment */
 		}
 	    }
 	    replstr = (*ptr && ptr[1]) ? ptr+1 : "";