static int inf_read_upto PARAMS ((sstring *, int));
static int inf_scan_ident PARAMS ((sstring *, int));
static int check_protection PARAMS ((int *, int *));
-static void cb_change_file PARAMS ((cpp_reader *, const cpp_file_change *));
+static void cb_file_change PARAMS ((cpp_reader *, const cpp_file_change *));
static void
add_symbols (flags, names)
missing_extern_C_count++;
#endif
- fn = lookup_std_proto ((const char *)fname->val.node->name,
- fname->val.node->length);
+ fn = lookup_std_proto ((const char *) NODE_NAME (fname->val.node),
+ NODE_LEN (fname->val.node));
/* Remove the function from the list of required function. */
if (fn)
}
static void
-cb_change_file (pfile, fc)
+cb_file_change (pfile, fc)
cpp_reader *pfile ATTRIBUTE_UNUSED;
const cpp_file_change *fc;
{
int argc;
char **argv;
{
- cpp_reader scan_in;
+ cpp_reader* scan_in;
+ cpp_callbacks *cb;
+ cpp_options *options;
struct fn_decl *fn;
int i;
register struct symbol_list *cur_symbols;
obstack_init (&scan_file_obstack);
- cpp_init (); /* Initialize cpplib. */
- cpp_reader_init (&scan_in, CLK_GNUC89);
- scan_in.cb.change_file = cb_change_file;
+ scan_in = cpp_create_reader (NULL, CLK_GNUC89);
+ cb = cpp_get_callbacks (scan_in);
+ cb->file_change = cb_file_change;
/* We are going to be scanning a header file out of its proper context,
so ignore warnings and errors. */
- CPP_OPTION (&scan_in, inhibit_warnings) = 1;
- CPP_OPTION (&scan_in, inhibit_errors) = 1;
- i = cpp_handle_options (&scan_in, argc, argv);
- if (i < argc && ! CPP_FATAL_ERRORS (&scan_in))
- cpp_fatal (&scan_in, "Invalid option `%s'", argv[i]);
- if (CPP_FATAL_ERRORS (&scan_in))
+ options = cpp_get_options (scan_in);
+ options->inhibit_warnings = 1;
+ options->inhibit_errors = 1;
+
+ i = cpp_handle_options (scan_in, argc, argv);
+ if (i < argc && ! CPP_FATAL_ERRORS (scan_in))
+ cpp_fatal (scan_in, "Invalid option `%s'", argv[i]);
+ cpp_post_options (scan_in);
+ if (CPP_FATAL_ERRORS (scan_in))
exit (FATAL_EXIT_CODE);
- if (! cpp_start_read (&scan_in, in_fname))
+ if (! cpp_start_read (scan_in, in_fname))
exit (FATAL_EXIT_CODE);
/* We are scanning a system header, so mark it as such. */
- cpp_make_system_header (&scan_in, CPP_BUFFER (&scan_in), 1);
+ cpp_make_system_header (scan_in, 1, 0);
- scan_decls (&scan_in, argc, argv);
+ scan_decls (scan_in, argc, argv);
for (cur_symbols = &symbol_table[0]; cur_symbols->names; cur_symbols++)
- check_macro_names (&scan_in, cur_symbols->names);
+ check_macro_names (scan_in, cur_symbols->names);
/* Traditionally, getc and putc are defined in terms of _filbuf and _flsbuf.
If so, those functions are also required. */
{
static const unsigned char getchar_call[] = "getchar();";
int seen_filbuf = 0;
- cpp_buffer *buf = CPP_BUFFER (&scan_in);
- if (cpp_push_buffer (&scan_in, getchar_call,
- sizeof(getchar_call) - 1) == NULL)
- return;
/* Scan the macro expansion of "getchar();". */
+ cpp_push_buffer (scan_in, getchar_call, sizeof(getchar_call) - 1,
+ BUF_BUILTIN, in_fname);
for (;;)
{
cpp_token t;
- cpp_get_token (&scan_in, &t);
+ cpp_get_token (scan_in, &t);
if (t.type == CPP_EOF)
- {
- cpp_pop_buffer (&scan_in);
- if (CPP_BUFFER (&scan_in) == buf)
- break;
- }
+ break;
else if (cpp_ideq (&t, "_filbuf"))
seen_filbuf++;
}
+ cpp_pop_buffer (scan_in);
+
if (seen_filbuf)
{
int need_filbuf = !SEEN (fn) && !REQUIRED (fn);
#endif
va_list ap;
- VA_START(ap, str);
+ VA_START (ap, str);
#ifndef ANSI_PROTOTYPES
str = va_arg (ap, const char *);
#endif
- v_fatal(str, ap);
- va_end(ap);
+ v_fatal (str, ap);
+ va_end (ap);
}