cpplib.c (cpp_get_token): Replace whitespace that occurs between a macro name and the next token with a...
Fri Oct 16 17:26:10 1998 Dave Brolley <brolley@cygnus.com> * cpplib.c (cpp_get_token): Replace whitespace that occurs between a macro name and the next token with a single blank if that whitespace is in a macro buffer and the next token is not '('. From-SVN: r23139
This commit is contained in:
parent
7cfac5953a
commit
c55ade0244
2 changed files with 35 additions and 15 deletions
|
@ -1,3 +1,9 @@
|
|||
Fri Oct 16 17:26:10 1998 Dave Brolley <brolley@cygnus.com>
|
||||
|
||||
* cpplib.c (cpp_get_token): Replace whitespace that occurs between
|
||||
a macro name and the next token with a single blank if that whitespace
|
||||
is in a macro buffer and the next token is not '('.
|
||||
|
||||
Fri Oct 16 15:44:02 1998 Dave Brolley <brolley@cygnus.com>
|
||||
|
||||
* cccp.c (rescan): Handle multibyte chartacters ending in backslash.
|
||||
|
|
44
gcc/cpplib.c
44
gcc/cpplib.c
|
@ -5099,29 +5099,43 @@ cpp_get_token (pfile)
|
|||
if (hp->type == T_MACRO && hp->value.defn->nargs >= 0)
|
||||
{
|
||||
struct parse_marker macro_mark;
|
||||
int is_macro_call;
|
||||
while (CPP_IS_MACRO_BUFFER (CPP_BUFFER (pfile)))
|
||||
{
|
||||
cpp_buffer *next_buf;
|
||||
cpp_skip_hspace (pfile);
|
||||
if (PEEKC () != EOF)
|
||||
break;
|
||||
next_buf = CPP_PREV_BUFFER (CPP_BUFFER (pfile));
|
||||
(*CPP_BUFFER (pfile)->cleanup) (CPP_BUFFER (pfile), pfile);
|
||||
CPP_BUFFER (pfile) = next_buf;
|
||||
}
|
||||
int is_macro_call, macbuf_whitespace = 0;
|
||||
|
||||
parse_set_mark (¯o_mark, pfile);
|
||||
for (;;)
|
||||
{
|
||||
cpp_skip_hspace (pfile);
|
||||
c = PEEKC ();
|
||||
is_macro_call = c == '(';
|
||||
if (c != '\n')
|
||||
break;
|
||||
FORWARD (1);
|
||||
if (c != EOF)
|
||||
{
|
||||
if (c != '\n')
|
||||
break;
|
||||
FORWARD (1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (CPP_IS_MACRO_BUFFER (CPP_BUFFER (pfile)))
|
||||
{
|
||||
if (macro_mark.position !=
|
||||
(CPP_BUFFER (pfile)->cur
|
||||
- CPP_BUFFER (pfile)->buf))
|
||||
macbuf_whitespace = 1;
|
||||
|
||||
parse_clear_mark (¯o_mark);
|
||||
cpp_pop_buffer (pfile);
|
||||
parse_set_mark (¯o_mark, pfile);
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!is_macro_call)
|
||||
parse_goto_mark (¯o_mark, pfile);
|
||||
{
|
||||
parse_goto_mark (¯o_mark, pfile);
|
||||
if (macbuf_whitespace)
|
||||
CPP_PUTC (pfile, ' ');
|
||||
}
|
||||
parse_clear_mark (¯o_mark);
|
||||
if (!is_macro_call)
|
||||
return CPP_NAME;
|
||||
|
|
Loading…
Add table
Reference in a new issue