about summary refs log tree commit diff
path: root/Src/pattern.c
diff options
context:
space:
mode:
authorPaul Ackersviller <packersv@users.sourceforge.net>2007-06-25 03:11:44 +0000
committerPaul Ackersviller <packersv@users.sourceforge.net>2007-06-25 03:11:44 +0000
commitf2f3b86a5f15500dfee707d27eee9784a1626e4d (patch)
treed58c84a358497843dbdf54088e4e441bbf9447e1 /Src/pattern.c
parent3fb7cb46276374c248d24802e04d0947743d2d8d (diff)
downloadzsh-f2f3b86a5f15500dfee707d27eee9784a1626e4d.tar.gz
zsh-f2f3b86a5f15500dfee707d27eee9784a1626e4d.tar.xz
zsh-f2f3b86a5f15500dfee707d27eee9784a1626e4d.zip
Merge of 21862/21863/21870: GLOB_SUBST shouldn't swallow up backslashes in
parameter substitutions that don't match anything.
Diffstat (limited to 'Src/pattern.c')
-rw-r--r--Src/pattern.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/Src/pattern.c b/Src/pattern.c
index 393d9bf41..d8bd9ef98 100644
--- a/Src/pattern.c
+++ b/Src/pattern.c
@@ -260,13 +260,13 @@ static char endseg[] = {
 
 static char endstr[] = {
     '/',			/* file only */
-    '\0', Bar, Outpar, Quest, Star, Inbrack, Inpar, Inang,
+    '\0', Bar, Outpar, Quest, Star, Inbrack, Inpar, Inang, Bnullkeep,
 				/* all patterns */
     Tilde, Hat, Pound		/* extended glob only */
 };
 
-#define PATENDSTRLEN_NORM 9
-#define PATENDSTRLEN_EXT  12
+#define PATENDSTRLEN_NORM 10
+#define PATENDSTRLEN_EXT  13
 
 
 /* Default size for pattern buffer */
@@ -1240,6 +1240,13 @@ patcomppiece(int *flagp)
 	     */
 	    return 0;
 	    break;
+	case Bnullkeep:
+	    /*
+	     * Marker for restoring a backslash in output:
+	     * does not match a character.
+	     */
+	    return patcomppiece(flagp);
+	    break;
 #ifdef DEBUG
 	default:
 	    dputs("BUG: character not handled in patcomppiece");