diff options
| -rw-r--r-- | src/parse.y | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/parse.y b/src/parse.y index 1d5366d17..fda66e92c 100644 --- a/src/parse.y +++ b/src/parse.y @@ -3620,12 +3620,14 @@ parse_string(parser_state *p) tokadd(p, '\n'); } else { - pushback(p, c); - - if(type & STR_FUNC_REGEXP) + if (type & STR_FUNC_REGEXP) { tokadd(p, '\\'); - - tokadd(p, read_escape(p)); + if (c != -1) + tokadd(p, c); + } else { + pushback(p, c); + tokadd(p, read_escape(p)); + } if (hinf) hinf->line_head = FALSE; } |
