Mercurial > emacs
changeset 30138:d00767029418
(yylex): Accept string literals with newlines in them.
(process_pp_line): Handle case of string literal with newline
in it in replacement text, which counts as continuing the
replacement text in GNU C.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Mon, 10 Jul 2000 20:36:58 +0000 |
parents | 4a3808257cf4 |
children | 1311deba5ed3 |
files | lib-src/ebrowse.c |
diffstat | 1 files changed, 7 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/lib-src/ebrowse.c Mon Jul 10 20:32:14 2000 +0000 +++ b/lib-src/ebrowse.c Mon Jul 10 20:36:58 2000 +0000 @@ -1462,7 +1462,7 @@ int process_pp_line () { - int in_comment = 0; + int in_comment = 0, in_string = 0; int c; char *p = yytext; @@ -1501,7 +1501,7 @@ } } - while (c && (c != '\n' || in_comment)) + while (c && (c != '\n' || in_comment || in_string)) { if (c == '\\') GET (c); @@ -1515,13 +1515,15 @@ if (GET (c) == '/') in_comment = 0; } + else if (c == '"') + in_string = !in_string; if (c == '\n') INCREMENT_LINENO; GET (c); } - + return c; } @@ -1579,6 +1581,7 @@ else switch (c) { case '\n': + INCREMENT_LINENO; case 'a': case 'b': case 'f': @@ -1641,7 +1644,7 @@ else yyerror ("newline in string constant"); INCREMENT_LINENO; - goto end_string; + break; default: break;