diff options
author | Alan Modra <amodra@gmail.com> | 2005-09-29 02:20:50 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2005-09-29 02:20:50 +0000 |
commit | c9c5dcdafcab3311b88e0d23f244c9879b9455b6 (patch) | |
tree | c47d667b46a83720ecd4b54fa65965b291d42a5c /gas/app.c | |
parent | 7e0f714012f668043e431d2284fe676b7ddaec06 (diff) | |
download | fsf-binutils-gdb-c9c5dcdafcab3311b88e0d23f244c9879b9455b6.zip fsf-binutils-gdb-c9c5dcdafcab3311b88e0d23f244c9879b9455b6.tar.gz fsf-binutils-gdb-c9c5dcdafcab3311b88e0d23f244c9879b9455b6.tar.bz2 |
* app.c (do_scrub_chars): Match open and close quote of strings.
Remove redundant EOF test in case 7.
Diffstat (limited to 'gas/app.c')
-rw-r--r-- | gas/app.c | 21 |
1 files changed, 10 insertions, 11 deletions
@@ -345,6 +345,8 @@ do_scrub_chars (int (*get) (char *, int), char *tostart, int tolen) char *fromend; int fromlen; register int ch, ch2 = 0; + /* Character that started the string we're working on. */ + static char quotechar; /*State 0: beginning of normal line 1: After first whitespace on line (flush more white) @@ -536,11 +538,8 @@ do_scrub_chars (int (*get) (char *, int), char *tostart, int tolen) for (s = from; s < fromend; s++) { ch = *s; - /* This condition must be changed if the type of any - other character can be LEX_IS_STRINGQUOTE. */ if (ch == '\\' - || ch == '"' - || ch == '\'' + || ch == quotechar || ch == '\n') break; } @@ -558,12 +557,12 @@ do_scrub_chars (int (*get) (char *, int), char *tostart, int tolen) ch = GET (); if (ch == EOF) { - as_warn (_("end of file in string; inserted '\"'")); + as_warn (_("end of file in string; '%c' inserted"), quotechar); state = old_state; UNGET ('\n'); - PUT ('"'); + PUT (quotechar); } - else if (lex[ch] == LEX_IS_STRINGQUOTE) + else if (ch == quotechar) { state = old_state; PUT (ch); @@ -603,8 +602,8 @@ do_scrub_chars (int (*get) (char *, int), char *tostart, int tolen) continue; case EOF: - as_warn (_("end of file in string; '\"' inserted")); - PUT ('"'); + as_warn (_("end of file in string; '%c' inserted"), quotechar); + PUT (quotechar); continue; case '"': @@ -638,10 +637,9 @@ do_scrub_chars (int (*get) (char *, int), char *tostart, int tolen) case 7: ch = GET (); + quotechar = ch; state = 5; old_state = 8; - if (ch == EOF) - goto fromeof; PUT (ch); continue; @@ -975,6 +973,7 @@ do_scrub_chars (int (*get) (char *, int), char *tostart, int tolen) break; case LEX_IS_STRINGQUOTE: + quotechar = ch; if (state == 10) { /* Preserve the whitespace in foo "bar". */ |