about summary refs log tree commit diff
path: root/Src/subst.c
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2007-01-18 17:27:10 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2007-01-18 17:27:10 +0000
commit481d1b7560df30f3e9f7b1ec86349d77ce224b5d (patch)
treeec4fb551356198a410dab31b43db0ef6aa8a45d0 /Src/subst.c
parent110ae85114abc12211e2fcae7dafc6400e57cdb1 (diff)
downloadzsh-481d1b7560df30f3e9f7b1ec86349d77ce224b5d.tar.gz
zsh-481d1b7560df30f3e9f7b1ec86349d77ce224b5d.tar.xz
zsh-481d1b7560df30f3e9f7b1ec86349d77ce224b5d.zip
23114: ${foo:s/bar/rod} broken
Diffstat (limited to 'Src/subst.c')
-rw-r--r--Src/subst.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/Src/subst.c b/Src/subst.c
index 2bc6d75a6..cee2e6e5c 100644
--- a/Src/subst.c
+++ b/Src/subst.c
@@ -3477,7 +3477,11 @@ modify(char **str, char **ptr)
 			chuck(tt--);
 		*ptr1end = sav1;
 		*ptr3 = sav;
-		*ptr = ptr3 + charlen - 1;
+		*ptr = ptr3 - 1;
+		if (*ptr3) {
+		    /* Final terminator is optional. */
+		    *ptr += charlen;
+		}
 		break;
 
 	    case '&':