1999-07-26 Jason Merrill <jason@yorick.cygnus.com>
+ * input.c (feed_input): Only touch lineno and input_filename
+ if !USE_CPPLIB. Save the old values before setting the new ones.
+
* input.c (feed_input): Add file, line parms.
* lex.c (begin_definition_of_inclass_inline, feed_defarg): Adjust.
(real_yylex): Check linemode before input_redirected().
/* linked list maintenance */
struct input_source *next;
/* values to restore after reading all of current string */
- char *filename;
- int lineno;
struct pending_input *input;
#if !USE_CPPLIB
+ char *filename;
+ int lineno;
struct putback_buffer putback;
#endif
};
inp->length = len;
inp->offset = 0;
inp->putback = putback;
+ inp->filename = input_filename;
+ inp->lineno = lineno;
putback.buffer = NULL;
putback.buffer_size = 0;
putback.index = -1;
input_filename = file;
#endif
inp->next = input;
- inp->filename = input_filename;
- inp->lineno = lineno;
inp->input = save_pending_input ();
input = inp;
}
cpp_pop_buffer (&parse_in);
#else
putback = inp->putback;
+ input_filename = inp->filename;
+ lineno = inp->lineno;
#endif
end_of_file = 0;
input = inp->next;
- input_filename = inp->filename;
- lineno = inp->lineno;
/* Get interface/implementation back in sync. */
extract_interface_info ();
restore_pending_input (inp->input);