about summary refs log tree commit diff
path: root/Src/pattern.c
diff options
context:
space:
mode:
authorTanaka Akira <akr@users.sourceforge.net>1999-09-21 01:33:28 +0000
committerTanaka Akira <akr@users.sourceforge.net>1999-09-21 01:33:28 +0000
commit0abdec4fa34283821f14548c0aa97e52b5c8a0eb (patch)
treea3c2c5f4e1c40c654fd6e04b6df6bdeb45649659 /Src/pattern.c
parent1107e2f75fb17ced04271b933423e3e0ed0b3502 (diff)
downloadzsh-0abdec4fa34283821f14548c0aa97e52b5c8a0eb.tar.gz
zsh-0abdec4fa34283821f14548c0aa97e52b5c8a0eb.tar.xz
zsh-0abdec4fa34283821f14548c0aa97e52b5c8a0eb.zip
zsh-workers/7948
Diffstat (limited to 'Src/pattern.c')
-rw-r--r--Src/pattern.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/Src/pattern.c b/Src/pattern.c
index 63551967f..3b226c92f 100644
--- a/Src/pattern.c
+++ b/Src/pattern.c
@@ -1335,15 +1335,15 @@ pattry(Patprog prog, char *string)
 		 * in the pattern matching part.
 		 */
 		char *str;
-		int len = patinput - patinstart;
+		int mlen = ztrsub(patinput, patinstart);
 
 		PERMALLOC {
-		    str = dupstrpfx(patinstart, len);
+		    str = dupstrpfx(patinstart, patinput - patinstart);
 		} LASTALLOC;
 		setsparam("MATCH", str);
 		setiparam("MBEGIN", (zlong)(patoffset + !isset(KSHARRAYS)));
 		setiparam("MEND",
-			  (zlong)(len + patoffset + !isset(KSHARRAYS) - 1));
+			  (zlong)(mlen + patoffset + !isset(KSHARRAYS) - 1));
 	    }
 	    if (prog->patnpar && !(patflags & PAT_FILE)) {
 		/*
@@ -1374,11 +1374,11 @@ pattry(Patprog prog, char *string)
 			 * corresponds to indexing as ${foo[1,1]}.
 			 */
 			sprintf(numbuf, "%ld",
-				(long)((*sp - patinstart) + patoffset +
+				(long)(ztrsub(*sp, patinstart) + patoffset +
 				       !isset(KSHARRAYS)));
 			mbeginarr[i] = ztrdup(numbuf);
 			sprintf(numbuf, "%ld",
-				(long)((*ep - patinstart) + patoffset +
+				(long)(ztrsub(*ep, patinstart) + patoffset +
 				       !isset(KSHARRAYS) - 1));
 			mendarr[i] = ztrdup(numbuf);
 			sp++;