From f2f3b86a5f15500dfee707d27eee9784a1626e4d Mon Sep 17 00:00:00 2001 From: Paul Ackersviller Date: Mon, 25 Jun 2007 03:11:44 +0000 Subject: Merge of 21862/21863/21870: GLOB_SUBST shouldn't swallow up backslashes in parameter substitutions that don't match anything. --- Src/pattern.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'Src/pattern.c') 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"); -- cgit 1.4.1