2009-03-23 H.J. Lu <hongjiu.lu@intel.com>

PR gas/9966
	* listing.c (listing_newline): Properly handle `\\"' and ';'.

	* read.c (is_end_of_line): Update comments for line separator.
	(read_begin): Set line separator in is_end_of_line to 2.
This commit is contained in:
H.J. Lu 2009-03-24 01:04:25 +00:00
parent 3695968186
commit d67ffd56e1
3 changed files with 19 additions and 5 deletions

View File

@ -1,3 +1,11 @@
2009-03-23 H.J. Lu <hongjiu.lu@intel.com>
PR gas/9966
* listing.c (listing_newline): Properly handle `\\"' and ';'.
* read.c (is_end_of_line): Update comments for line separator.
(read_begin): Set line separator in is_end_of_line to 2.
2009-03-19 David S. Miller <davem@davemloft.net>
* config/tc-sparc.c (md_parse_option): If the user gives

View File

@ -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;

View File

@ -125,7 +125,8 @@ char lex_type[256] = {
};
/* In: a character.
Out: 1 if this character ends a line. */
Out: 1 if this character ends a line.
2 if this character is a line separator. */
char is_end_of_line[256] = {
#ifdef CR_EOL
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, /* @abcdefghijklmno */
@ -239,7 +240,7 @@ read_begin (void)
/* Use machine dependent syntax. */
for (p = line_separator_chars; *p; p++)
is_end_of_line[(unsigned char) *p] = 1;
is_end_of_line[(unsigned char) *p] = 2;
/* Use more. FIXME-SOMEDAY. */
if (flag_mri)