(get_non_padding_token): We no longer need to compensate for the
"horrible things" the C++ front-end does with the current line number,
+ * cpplib.c (_cpp_pop_buffer): Do generate a _cpp_do_file_change
+ callback even when popping the main file.
* c-lex.c (fe_file_change): Handle a NULL new_map.
* fix-header.c (cb_file_change): Likewise.
* c-ppoutput.c (pp_file_change): Likewise.
* cpplex.c (_cpp_get_fresh_line): Return value now just depends on
whether pfile->buffer is NULL after pop, ignoring return_at_eof.
+ * cpphash.h (struct cpp_buffer): Remove unused return_at_eof field.
+ * cpplib.c (cpp_push_buffer): Since we no longer set return_at_eof,
+ remove the unused return_at_eof parameter.
+ * cppfiles.c, cpplib.c, cppmacro.c, cpppch.c, fix-header.c:
+ Update callers of cpp_push_buffer.
2003-10-01 Zack Weinberg <zack@codesourcery.com>
run_directive (cpp_reader *pfile, int dir_no, const char *buf, size_t count)
{
cpp_push_buffer (pfile, (const uchar *) buf, count,
- /* from_stage3 */ true, 1);
+ /* from_stage3 */ true);
/* Disgusting hack. */
if (dir_no == T_PRAGMA)
pfile->buffer->file = pfile->buffer->prev->file;
is the responsibility of the caller. */
cpp_buffer *
cpp_push_buffer (cpp_reader *pfile, const uchar *buffer, size_t len,
- int from_stage3, int return_at_eof)
+ int from_stage3)
{
cpp_buffer *new = xobnew (&pfile->buffer_ob, cpp_buffer);
new->rlimit = buffer + len;
new->from_stage3 = from_stage3;
new->prev = pfile->buffer;
- new->return_at_eof = return_at_eof;
new->need_line = true;
pfile->buffer = new;
{
_cpp_pop_file_buffer (pfile, inc);
- /* Don't generate a callback for popping the main file. */
- if (pfile->buffer)
- _cpp_do_file_change (pfile, LC_LEAVE, 0, 0, 0);
+ _cpp_do_file_change (pfile, LC_LEAVE, 0, 0, 0);
}
}
memcpy (nbuf, buf, len);
nbuf[len]='\n';
- cpp_push_buffer (pfile, (uchar *) nbuf, len, /* from_stage3 */ true, 1);
+ cpp_push_buffer (pfile, (uchar *) nbuf, len, /* from_stage3 */ true);
_cpp_clean_line (pfile);
/* Set pfile->cur_token as required by _cpp_lex_direct. */
end = cpp_spell_token (pfile, rhs, end);
*end = '\n';
- cpp_push_buffer (pfile, buf, end - buf, /* from_stage3 */ true, 1);
+ cpp_push_buffer (pfile, buf, end - buf, /* from_stage3 */ true);
_cpp_clean_line (pfile);
/* Set pfile->cur_token as required by _cpp_lex_direct. */
void
cpp_scan_nooutput (cpp_reader *pfile)
{
- /* Request a CPP_EOF token at the end of this file, rather than
- transparently continuing with the including file. */
- pfile->buffer->return_at_eof = true;
-
if (CPP_OPTION (pfile, traditional))
while (_cpp_read_logical_line_trad (pfile))
;
else if (m.name_length != m.definition_length)
{
if (cpp_push_buffer (r, defn + m.name_length,
- m.definition_length - m.name_length,
- true, 1) != NULL)
+ m.definition_length - m.name_length, true)
+ != NULL)
{
_cpp_clean_line (r);
if (!_cpp_create_definition (r, h))