From fc4511ecb7b68916220edd0bbdf67b2b8eac62d0 Mon Sep 17 00:00:00 2001 From: Bart Schaefer Date: Mon, 23 Apr 2001 15:30:22 +0000 Subject: Fix subscripting bug with backslash-double-quote. --- Src/lex.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'Src/lex.c') diff --git a/Src/lex.c b/Src/lex.c index 428e77431..51a8b8cfe 100644 --- a/Src/lex.c +++ b/Src/lex.c @@ -1305,7 +1305,8 @@ dquote_parse(char endchar, int sub) c == endchar || c == '`' || (endchar == ']' && (c == '[' || c == ']' || c == '(' || c == ')' || - c == '{' || c == '}'))) + c == '{' || c == '}' || + (c == '"' && sub)))) add(Bnull); else { /* lexstop is implicitly handled here */ @@ -1390,7 +1391,7 @@ dquote_parse(char endchar, int sub) err = (!brct-- && math); break; case '"': - if (intick || endchar == ']' || (!endchar && !bct)) + if (intick || ((endchar == ']' || !endchar) && !bct)) break; if (bct) { add(Dnull); @@ -1463,7 +1464,7 @@ parsestrnoerr(char *s) /**/ mod_export char * -parse_subscript(char *s) +parse_subscript(char *s, int sub) { int l = strlen(s), err; char *t; @@ -1477,7 +1478,7 @@ parse_subscript(char *s) len = 0; bptr = tokstr = s; bsiz = l + 1; - err = dquote_parse(']', 1); + err = dquote_parse(']', sub); if (err) { err = *bptr; *bptr = 0; -- cgit 1.4.1