summaryrefslogtreecommitdiff
path: root/gas/listing.c
diff options
context:
space:
mode:
Diffstat (limited to 'gas/listing.c')
-rw-r--r--gas/listing.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/gas/listing.c b/gas/listing.c
index 025a2ca6742..e307be21c9a 100644
--- a/gas/listing.c
+++ b/gas/listing.c
@@ -338,13 +338,18 @@ listing_newline (char *ps)
char *copy;
int len;
int seen_quote = 0;
+ int seen_slash = 0;
for (copy = input_line_pointer - 1;
*copy && (seen_quote
- || (! is_end_of_line [(unsigned char) *copy]));
+ || is_end_of_line [(unsigned char) *copy] != 1);
copy++)
- if (*copy == '"' && copy[-1] != '\\')
- seen_quote = ! seen_quote;
+ {
+ if (*copy == '\\')
+ seen_slash = ! seen_slash;
+ else if (*copy == '"' && seen_slash)
+ seen_quote = ! seen_quote;
+ }
len = (copy - input_line_pointer) + 2;