diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | src/expand.c | 4 | ||||
-rw-r--r-- | src/mksyntax.c | 5 | ||||
-rw-r--r-- | src/parser.c | 1 |
4 files changed, 9 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog index 2f52f75..e6a1d26 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2009-06-27 Herbert Xu <herbert@gondor.apana.org.au> + + * Fix quoted pattern patch breakage. + 2009-05-23 Herbert Xu <herbert@gondor.apana.org.au> * Fix incorrect savefd conversions. diff --git a/src/expand.c b/src/expand.c index e4c4c8b..7995d40 100644 --- a/src/expand.c +++ b/src/expand.c @@ -869,7 +869,9 @@ memtodest(const char *p, size_t len, const char *syntax, int quotes) { int c = (signed char)*p++; if (c) { if ((quotes & QUOTES_ESC) && - (syntax[c] == CCTL || syntax[c] == CDBACK)) + ((syntax[c] == CCTL) || + (((quotes & EXP_FULL) || syntax != BASESYNTAX) && + syntax[c] == CBACK))) USTPUTC(CTLESC, q); } else if (!(quotes & QUOTES_KEEPNUL)) continue; diff --git a/src/mksyntax.c b/src/mksyntax.c index 9ecbb45..7a8a9ae 100644 --- a/src/mksyntax.c +++ b/src/mksyntax.c @@ -53,7 +53,6 @@ struct synclass synclass[] = { { "CWORD", "character is nothing special" }, { "CNL", "newline character" }, { "CBACK", "a backslash character" }, - { "CDBACK", "a backslash character in double quotes" }, { "CSQUOTE", "single quote" }, { "CDQUOTE", "double quote" }, { "CENDQUOTE", "a terminating quote" }, @@ -176,7 +175,7 @@ main(int argc, char **argv) init(); fputs("\n/* syntax table used when in double quotes */\n", cfile); add("\n", "CNL"); - add("\\", "CDBACK"); + add("\\", "CBACK"); add("\"", "CENDQUOTE"); add("`", "CBQUOTE"); add("$", "CVAR"); @@ -194,7 +193,7 @@ main(int argc, char **argv) init(); fputs("\n/* syntax table used when in arithmetic */\n", cfile); add("\n", "CNL"); - add("\\", "CDBACK"); + add("\\", "CBACK"); add("`", "CBQUOTE"); add("$", "CVAR"); add("}", "CENDVAR"); diff --git a/src/parser.c b/src/parser.c index dad1037..28a46c0 100644 --- a/src/parser.c +++ b/src/parser.c @@ -901,7 +901,6 @@ readtoken1(int firstc, char const *syntax, char *eofmark, int striptabs) break; /* backslash */ case CBACK: - case CDBACK: c = pgetc2(); if (c == PEOF) { USTPUTC(CTLESC, out); |