summary refs log tree commit diff
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2008-10-11 21:57:03 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2008-10-11 21:57:03 +0000
commitb4d336aaca41ab5a671772f2fa61a3ac47a75d96 (patch)
treeb623eb7686755b3ac5870bf353d051106a91c713
parent5f83b9960571e21568ae3f3460de3bfc546b3588 (diff)
downloadzsh-b4d336aaca41ab5a671772f2fa61a3ac47a75d96.tar.gz
zsh-b4d336aaca41ab5a671772f2fa61a3ac47a75d96.tar.xz
zsh-b4d336aaca41ab5a671772f2fa61a3ac47a75d96.zip
25845: fix pattern but with backslashed and metafied charaters
-rw-r--r--ChangeLog6
-rw-r--r--Src/pattern.c8
2 files changed, 13 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index f5fd981e6..386428cda 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-10-11  Peter Stephenson  <p.w.stephenson@ntlworld.com>
+
+	* 25845: Src/pattern.c, Test/D07multibyte.ztst: combination of
+	backslashed characters and metafied characters confused pattern
+	test for pure string.
+
 2008-10-10  Peter Stephenson  <p.w.stephenson@ntlworld.com>
 
 	* 25816: Marc Chantreux: Completion/Unix/Command/_ip:
diff --git a/Src/pattern.c b/Src/pattern.c
index 81e4bce8b..60f70023a 100644
--- a/Src/pattern.c
+++ b/Src/pattern.c
@@ -1446,7 +1446,13 @@ patcomppiece(int *flagp)
 	     * Marker for restoring a backslash in output:
 	     * does not match a character.
 	     */
-	    return patcomppiece(flagp);
+	    next = patcomppiece(flagp);
+	    /*
+	     * Can't match a pure string since we need to do this
+	     * as multiple chunks.
+	     */
+	    *flagp &= ~P_PURESTR;
+	    return next;
 	    break;
 #ifdef DEBUG
 	default: