+Wed 10 May 09:08:30 2000 Neil Booth <NeilB@earthling.net>
+
+ * cpplex.c (_cpp_lex_line): Maintain PREV_WHITESPACE flag
+ when removing escaped newlines. Reverse sense of test for
+ escaped newline.
+
2000-05-09 Richard Henderson <rth@cygnus.com>
* flow.c (find_basic_blocks_1): Do not delete the first
case '\n':
case '\r':
handle_newline (cur, buffer->rlimit, c);
- if (PREV_TOKEN_TYPE != CPP_BACKSLASH || !IMMED_TOKEN ())
+ if (PREV_TOKEN_TYPE == CPP_BACKSLASH && IMMED_TOKEN ())
{
- if (PREV_TOKEN_TYPE == CPP_BACKSLASH)
+ /* Remove the escaped newline. Then continue to process
+ any interrupted name or number. */
+ cur_token--;
+ if (IMMED_TOKEN ())
{
- buffer->cur = cur;
- cpp_warning (pfile,
- "backslash and newline separated by space");
+ cur_token--;
+ if (cur_token->type == CPP_NAME)
+ goto continue_name;
+ else if (cur_token->type == CPP_NUMBER)
+ goto continue_number;
+ cur_token++;
}
- PUSH_TOKEN (CPP_VSPACE);
- goto out;
+ /* Remember whitespace setting. */
+ flags = cur_token->flags;
+ break;
}
- /* Remove the escaped newline. Then continue to process
- any interrupted name or number. */
- cur_token--;
- if (IMMED_TOKEN ())
+ if (PREV_TOKEN_TYPE == CPP_BACKSLASH)
{
- cur_token--;
- if (cur_token->type == CPP_NAME)
- goto continue_name;
- else if (cur_token->type == CPP_NUMBER)
- goto continue_number;
- cur_token++;
+ buffer->cur = cur;
+ cpp_warning (pfile, "backslash and newline separated by space");
}
- break;
+ PUSH_TOKEN (CPP_VSPACE);
+ goto out;
case '-':
if (IMMED_TOKEN () && PREV_TOKEN_TYPE == CPP_MINUS)