From cca66ab341ffa330908aa6ea8da03e991aa6903c Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Tue, 11 Oct 2005 16:48:05 +0000 Subject: 21862/21863: 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 36578226c..aa95a46bd 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 v1.2.3