Commit c1212d2f by Zack Weinberg Committed by Zack Weinberg

cpplib.c (my_strerror, [...]): Move to cpperror.c.

	* cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
	cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
	cpp_pedwarn, cpp_pedwarn_with_line,
	cpp_pedwarn_with_file_and_line): Move to cpperror.c.
	(cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
	v_cpp_error_with_line, v_cpp_warning_with_line,
	cpp_message_from_errno, cpp_perror_with_name): Delete.

	* cpperror.c (cpp_print_containing_files): Take starting
	buffer as argument.
	(cpp_file_line_for_message): Rename to cpp_print_file_and_line.
	(v_cpp_message): Now called directly by all entry points.
	Remove -1 case.
	(cpp_pfatal_with_name, cpp_message): Delete.
	(cpp_notice_from_errno, cpp_ice): New functions.
	(cpp_notice): Is now for reporting error conditions, just
	without an associated file.
	(cpp_error, cpp_error_with_line): Don't do anything if
	opts->inhibit_errors is on.
	(cpp_pedwarn_with_file_and_line): Take column argument also.

	* cpplib.h: Update prototypes of exported functions.
	(struct cpp_options): Add inhibit_errors.

	* cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
	non-error messages.  Include intl.h.

	* cppinit.c, cppmain.c: Likewise.  Also, use
	cpp_notice_from_errno instead of cpp_perror_with_name or
	cpp_pfatal_with_name, and cpp_notice instead of cpp_message.

	* cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
	report internal errors.

	* cpplib.c (do_define): Switch bcopy to memcpy.
	Give cpp_pedwarn_with_file_and_line a dummy column argument.

From-SVN: r31829
parent 25e30970
2000-02-06 Zack Weinberg <zack@wolery.cumb.org> 2000-02-06 Zack Weinberg <zack@wolery.cumb.org>
* cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
cpp_pedwarn, cpp_pedwarn_with_line,
cpp_pedwarn_with_file_and_line): Move to cpperror.c.
(cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
v_cpp_error_with_line, v_cpp_warning_with_line,
cpp_message_from_errno, cpp_perror_with_name): Delete.
* cpperror.c (cpp_print_containing_files): Take starting
buffer as argument.
(cpp_file_line_for_message): Rename to cpp_print_file_and_line.
(v_cpp_message): Now called directly by all entry points.
Remove -1 case.
(cpp_pfatal_with_name, cpp_message): Delete.
(cpp_notice_from_errno, cpp_ice): New functions.
(cpp_notice): Is now for reporting error conditions, just
without an associated file.
(cpp_error, cpp_error_with_line): Don't do anything if
opts->inhibit_errors is on.
(cpp_pedwarn_with_file_and_line): Take column argument also.
* cpplib.h: Update prototypes of exported functions.
(struct cpp_options): Add inhibit_errors.
* cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
non-error messages. Include intl.h.
* cppinit.c, cppmain.c: Likewise. Also, use
cpp_notice_from_errno instead of cpp_perror_with_name or
cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
* cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
report internal errors.
* cpplib.c (do_define): Switch bcopy to memcpy.
Give cpp_pedwarn_with_file_and_line a dummy column argument.
* cpplib.c (copy_rest_of_line): Revert previous change: don't * cpplib.c (copy_rest_of_line): Revert previous change: don't
bail out early if we hit a line comment. bail out early if we hit a line comment.
......
...@@ -26,13 +26,14 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ...@@ -26,13 +26,14 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "config.h" #include "config.h"
#include "system.h" #include "system.h"
#include "cpplib.h" #include "cpplib.h"
#include "intl.h"
static void memory_full PARAMS ((void)) ATTRIBUTE_NORETURN; static void memory_full PARAMS ((void)) ATTRIBUTE_NORETURN;
static void static void
memory_full () memory_full ()
{ {
cpp_notice ("%s: Memory exhausted.\n", progname); fprintf (stderr, _("%s: virtual memory exhausted\n"), progname);
exit (FATAL_EXIT_CODE); exit (FATAL_EXIT_CODE);
} }
......
...@@ -733,7 +733,7 @@ cpp_parse_expr (pfile) ...@@ -733,7 +733,7 @@ cpp_parse_expr (pfile)
switch (op.op) switch (op.op)
{ {
case NAME: case NAME:
cpp_fatal (pfile, "internal error: cpp_lex returns a NAME"); cpp_ice (pfile, "cpp_lex returns a NAME");
goto syntax_error; goto syntax_error;
case INT: case CHAR: case INT: case CHAR:
top->value = op.value; top->value = op.value;
...@@ -1020,7 +1020,7 @@ cpp_parse_expr (pfile) ...@@ -1020,7 +1020,7 @@ cpp_parse_expr (pfile)
if (op.op == 0) if (op.op == 0)
{ {
if (top != stack) if (top != stack)
cpp_error (pfile, "internal error in #if expression"); cpp_ice (pfile, "unbalanced stack in #if expression");
if (stack != init_stack) if (stack != init_stack)
free (stack); free (stack);
return top->value; return top->value;
......
...@@ -26,6 +26,7 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ...@@ -26,6 +26,7 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "config.h" #include "config.h"
#include "system.h" #include "system.h"
#include "cpplib.h" #include "cpplib.h"
#include "intl.h"
/* The entry points to this file are: find_include_file, finclude, /* The entry points to this file are: find_include_file, finclude,
include_hash, append_include_chain, deps_output, and file_cleanup. include_hash, append_include_chain, deps_output, and file_cleanup.
...@@ -126,7 +127,8 @@ merge_include_chains (opts) ...@@ -126,7 +127,8 @@ merge_include_chains (opts)
&& cur->dev == other->dev) && cur->dev == other->dev)
{ {
if (opts->verbose) if (opts->verbose)
cpp_notice ("ignoring duplicate directory `%s'\n", cur->name); fprintf (stderr, _("ignoring duplicate directory `%s'\n"),
cur->name);
prev->next = cur->next; prev->next = cur->next;
free (cur->name); free (cur->name);
...@@ -145,7 +147,8 @@ merge_include_chains (opts) ...@@ -145,7 +147,8 @@ merge_include_chains (opts)
&& cur->dev == other->dev) && cur->dev == other->dev)
{ {
if (opts->verbose) if (opts->verbose)
cpp_notice ("ignoring duplicate directory `%s'\n", cur->name); fprintf (stderr, _("ignoring duplicate directory `%s'\n"),
cur->name);
prev->next = cur->next; prev->next = cur->next;
free (cur->name); free (cur->name);
...@@ -163,8 +166,8 @@ merge_include_chains (opts) ...@@ -163,8 +166,8 @@ merge_include_chains (opts)
if (quote == qtail) if (quote == qtail)
{ {
if (opts->verbose) if (opts->verbose)
cpp_notice ("ignoring duplicate directory `%s'\n", fprintf (stderr, _("ignoring duplicate directory `%s'\n"),
quote->name); quote->name);
free (quote->name); free (quote->name);
free (quote); free (quote);
...@@ -177,8 +180,8 @@ merge_include_chains (opts) ...@@ -177,8 +180,8 @@ merge_include_chains (opts)
cur = cur->next; cur = cur->next;
cur->next = brack; cur->next = brack;
if (opts->verbose) if (opts->verbose)
cpp_notice ("ignoring duplicate directory `%s'\n", fprintf (stderr, _("ignoring duplicate directory `%s'\n"),
qtail->name); qtail->name);
free (qtail->name); free (qtail->name);
free (qtail); free (qtail);
......
...@@ -295,7 +295,7 @@ collect_expansion (pfile, buf, limit, nargs, arglist) ...@@ -295,7 +295,7 @@ collect_expansion (pfile, buf, limit, nargs, arglist)
if (limit < buf) if (limit < buf)
{ {
cpp_fatal (pfile, "internal error: limit < buf in collect_expansion"); cpp_ice (pfile, "limit < buf in collect_expansion");
limit = buf; /* treat it like a null defn */ limit = buf; /* treat it like a null defn */
} }
...@@ -974,7 +974,7 @@ special_symbol (hp, pfile) ...@@ -974,7 +974,7 @@ special_symbol (hp, pfile)
break; break;
default: default:
cpp_fatal (pfile, "cpplib internal error: invalid special hash type"); cpp_ice (pfile, "invalid special hash type");
return; return;
} }
} }
...@@ -1351,7 +1351,7 @@ macroexpand (pfile, hp) ...@@ -1351,7 +1351,7 @@ macroexpand (pfile, hp)
if (totlen > xbuf_len) if (totlen > xbuf_len)
{ {
cpp_fatal (pfile, "internal_error: buffer overrun in macroexpand"); cpp_ice (pfile, "buffer overrun in macroexpand");
return; return;
} }
} }
......
...@@ -343,15 +343,15 @@ append_include_chain (pfile, pend, dir, path) ...@@ -343,15 +343,15 @@ append_include_chain (pfile, pend, dir, path)
{ {
/* Dirs that don't exist are silently ignored. */ /* Dirs that don't exist are silently ignored. */
if (errno != ENOENT) if (errno != ENOENT)
cpp_perror_with_name (pfile, dir); cpp_notice_from_errno (pfile, dir);
else if (CPP_OPTIONS (pfile)->verbose) else if (CPP_OPTIONS (pfile)->verbose)
cpp_notice ("ignoring nonexistent directory `%s'\n", dir); fprintf (stderr, _("ignoring nonexistent directory `%s'\n"), dir);
return; return;
} }
if (!S_ISDIR (st.st_mode)) if (!S_ISDIR (st.st_mode))
{ {
cpp_message (pfile, 1, "%s: %s: Not a directory", progname, dir); cpp_notice (pfile, "%s: Not a directory", dir);
return; return;
} }
...@@ -855,14 +855,14 @@ cpp_start_read (pfile, fname) ...@@ -855,14 +855,14 @@ cpp_start_read (pfile, fname)
if (opts->verbose) if (opts->verbose)
{ {
struct file_name_list *p; struct file_name_list *p;
cpp_message (pfile, -1, "#include \"...\" search starts here:\n"); fprintf (stderr, _("#include \"...\" search starts here:\n"));
for (p = opts->quote_include; p; p = p->next) for (p = opts->quote_include; p; p = p->next)
{ {
if (p == opts->bracket_include) if (p == opts->bracket_include)
cpp_message (pfile, -1, "#include <...> search starts here:\n"); fprintf (stderr, _("#include <...> search starts here:\n"));
fprintf (stderr, " %s\n", p->name); fprintf (stderr, " %s\n", p->name);
} }
cpp_message (pfile, -1, "End of search list.\n"); fprintf (stderr, _("End of search list.\n"));
} }
/* Don't bother trying to do macro expansion if we've already done /* Don't bother trying to do macro expansion if we've already done
...@@ -880,7 +880,10 @@ cpp_start_read (pfile, fname) ...@@ -880,7 +880,10 @@ cpp_start_read (pfile, fname)
f = 0; f = 0;
} }
else if ((f = open (fname, O_RDONLY|O_NONBLOCK|O_NOCTTY, 0666)) < 0) else if ((f = open (fname, O_RDONLY|O_NONBLOCK|O_NOCTTY, 0666)) < 0)
cpp_pfatal_with_name (pfile, fname); {
cpp_notice_from_errno (pfile, fname);
return 0;
}
initialize_dependency_output (pfile); initialize_dependency_output (pfile);
...@@ -918,7 +921,7 @@ cpp_start_read (pfile, fname) ...@@ -918,7 +921,7 @@ cpp_start_read (pfile, fname)
int fd = open (p->arg, O_RDONLY|O_NONBLOCK|O_NOCTTY, 0666); int fd = open (p->arg, O_RDONLY|O_NONBLOCK|O_NOCTTY, 0666);
if (fd < 0) if (fd < 0)
{ {
cpp_perror_with_name (pfile, p->arg); cpp_notice_from_errno (pfile, p->arg);
return 0; return 0;
} }
if (!cpp_push_buffer (pfile, NULL, 0)) if (!cpp_push_buffer (pfile, NULL, 0))
...@@ -957,7 +960,7 @@ cpp_start_read (pfile, fname) ...@@ -957,7 +960,7 @@ cpp_start_read (pfile, fname)
int fd = open (p->arg, O_RDONLY|O_NONBLOCK|O_NOCTTY, 0666); int fd = open (p->arg, O_RDONLY|O_NONBLOCK|O_NOCTTY, 0666);
if (fd < 0) if (fd < 0)
{ {
cpp_perror_with_name (pfile, p->arg); cpp_notice_from_errno (pfile, p->arg);
return 0; return 0;
} }
if (!cpp_push_buffer (pfile, NULL, 0)) if (!cpp_push_buffer (pfile, NULL, 0))
...@@ -1004,14 +1007,13 @@ cpp_finish (pfile) ...@@ -1004,14 +1007,13 @@ cpp_finish (pfile)
struct cpp_options *opts = CPP_OPTIONS (pfile); struct cpp_options *opts = CPP_OPTIONS (pfile);
if (CPP_PREV_BUFFER (CPP_BUFFER (pfile)) != CPP_NULL_BUFFER (pfile)) if (CPP_PREV_BUFFER (CPP_BUFFER (pfile)) != CPP_NULL_BUFFER (pfile))
cpp_fatal (pfile, cpp_ice (pfile, "buffers still stacked in cpp_finish");
"cpplib internal error: buffers still stacked in cpp_finish");
cpp_pop_buffer (pfile); cpp_pop_buffer (pfile);
if (opts->print_deps) if (opts->print_deps)
{ {
/* Stream on which to print the dependency information. */ /* Stream on which to print the dependency information. */
FILE *deps_stream; FILE *deps_stream = 0;
/* Don't actually write the deps file if compilation has failed. */ /* Don't actually write the deps file if compilation has failed. */
if (pfile->errors == 0) if (pfile->errors == 0)
...@@ -1020,13 +1022,17 @@ cpp_finish (pfile) ...@@ -1020,13 +1022,17 @@ cpp_finish (pfile)
if (opts->deps_file == 0) if (opts->deps_file == 0)
deps_stream = stdout; deps_stream = stdout;
else if ((deps_stream = fopen (opts->deps_file, deps_mode)) == 0) else if ((deps_stream = fopen (opts->deps_file, deps_mode)) == 0)
cpp_pfatal_with_name (pfile, opts->deps_file); cpp_notice_from_errno (pfile, opts->deps_file);
fputs (pfile->deps_buffer, deps_stream);
putc ('\n', deps_stream); if (deps_stream)
if (opts->deps_file)
{ {
if (ferror (deps_stream) || fclose (deps_stream) != 0) fputs (pfile->deps_buffer, deps_stream);
cpp_fatal (pfile, "I/O error on output"); putc ('\n', deps_stream);
if (opts->deps_file)
{
if (ferror (deps_stream) || fclose (deps_stream) != 0)
cpp_fatal (pfile, "I/O error on output");
}
} }
} }
} }
...@@ -1487,12 +1493,12 @@ cpp_handle_option (pfile, argc, argv) ...@@ -1487,12 +1493,12 @@ cpp_handle_option (pfile, argc, argv)
if (!strcmp (argv[i], "--help")) if (!strcmp (argv[i], "--help"))
print_help (); print_help ();
else if (!strcmp (argv[i], "--version")) else if (!strcmp (argv[i], "--version"))
cpp_notice ("GNU CPP version %s (cpplib)\n", version_string); fprintf (stderr, _("GNU CPP version %s (cpplib)\n"), version_string);
exit (0); /* XXX */ exit (0); /* XXX */
break; break;
case 'v': case 'v':
cpp_notice ("GNU CPP version %s (cpplib)", version_string); fprintf (stderr, _("GNU CPP version %s (cpplib)\n"), version_string);
#ifdef TARGET_VERSION #ifdef TARGET_VERSION
TARGET_VERSION; TARGET_VERSION;
#endif #endif
...@@ -1673,7 +1679,7 @@ cpp_handle_options (pfile, argc, argv) ...@@ -1673,7 +1679,7 @@ cpp_handle_options (pfile, argc, argv)
static void static void
print_help () print_help ()
{ {
cpp_notice ("Usage: %s [switches] input output\n", progname); fprintf (stderr, _("Usage: %s [switches] input output\n"), progname);
fputs (_("\ fputs (_("\
Switches:\n\ Switches:\n\
-include <file> Include the contents of <file> before other files\n\ -include <file> Include the contents of <file> before other files\n\
......
...@@ -386,10 +386,15 @@ struct cpp_options { ...@@ -386,10 +386,15 @@ struct cpp_options {
char pedantic_errors; char pedantic_errors;
/* Nonzero means don't print warning messages. -w. */ /* Nonzero means don't print warning messages. */
char inhibit_warnings; char inhibit_warnings;
/* Nonzero means don't print error messages. Has no option to select it,
but can be set by a user of cpplib (e.g. fix-header). */
char inhibit_errors;
/* Nonzero means warn if slash-star appears in a comment. */ /* Nonzero means warn if slash-star appears in a comment. */
char warn_comments; char warn_comments;
...@@ -710,24 +715,34 @@ extern void cpp_assert PARAMS ((cpp_reader *, unsigned char *)); ...@@ -710,24 +715,34 @@ extern void cpp_assert PARAMS ((cpp_reader *, unsigned char *));
extern void cpp_undef PARAMS ((cpp_reader *, unsigned char *)); extern void cpp_undef PARAMS ((cpp_reader *, unsigned char *));
extern void cpp_unassert PARAMS ((cpp_reader *, unsigned char *)); extern void cpp_unassert PARAMS ((cpp_reader *, unsigned char *));
extern void cpp_error PARAMS ((cpp_reader *, const char *, ...)) /* N.B. The error-message-printer prototypes have not been nicely
formatted because exgettext needs to see 'msgid' on the same line
as the name of the function in order to work properly. Only the
string argument gets a name in an effort to keep the lines from
getting ridiculously oversized. */
extern void cpp_ice PARAMS ((cpp_reader *, const char *msgid, ...))
ATTRIBUTE_PRINTF_2; ATTRIBUTE_PRINTF_2;
extern void cpp_warning PARAMS ((cpp_reader *, const char *, ...)) extern void cpp_fatal PARAMS ((cpp_reader *, const char *msgid, ...))
ATTRIBUTE_PRINTF_2; ATTRIBUTE_PRINTF_2;
extern void cpp_pedwarn PARAMS ((cpp_reader *, const char *, ...)) extern void cpp_error PARAMS ((cpp_reader *, const char *msgid, ...))
ATTRIBUTE_PRINTF_2; ATTRIBUTE_PRINTF_2;
extern void cpp_error_with_line PARAMS ((cpp_reader *, int, int, const char *, ...)) extern void cpp_warning PARAMS ((cpp_reader *, const char *msgid, ...))
ATTRIBUTE_PRINTF_4; ATTRIBUTE_PRINTF_2;
extern void cpp_warning_with_line PARAMS ((cpp_reader *, int, int, const char *, ...)) extern void cpp_pedwarn PARAMS ((cpp_reader *, const char *msgid, ...))
ATTRIBUTE_PRINTF_2;
extern void cpp_notice PARAMS ((cpp_reader *, const char *msgid, ...))
ATTRIBUTE_PRINTF_2;
extern void cpp_error_with_line PARAMS ((cpp_reader *, int, int, const char *msgid, ...))
ATTRIBUTE_PRINTF_4; ATTRIBUTE_PRINTF_4;
extern void cpp_pedwarn_with_line PARAMS ((cpp_reader *, int, int, const char *, ...)) extern void cpp_warning_with_line PARAMS ((cpp_reader *, int, int, const char *msgid, ...))
ATTRIBUTE_PRINTF_4; ATTRIBUTE_PRINTF_4;
extern void cpp_pedwarn_with_file_and_line PARAMS ((cpp_reader *, const char *, int, const char *, ...)) extern void cpp_pedwarn_with_line PARAMS ((cpp_reader *, int, int, const char *msgid, ...))
ATTRIBUTE_PRINTF_4; ATTRIBUTE_PRINTF_4;
extern void cpp_message_from_errno PARAMS ((cpp_reader *, int, const char *)); extern void cpp_pedwarn_with_file_and_line PARAMS ((cpp_reader *, const char *, int, int, const char *msgid, ...))
ATTRIBUTE_PRINTF_5;
extern void cpp_error_from_errno PARAMS ((cpp_reader *, const char *)); extern void cpp_error_from_errno PARAMS ((cpp_reader *, const char *));
extern void cpp_perror_with_name PARAMS ((cpp_reader *, const char *)); extern void cpp_notice_from_errno PARAMS ((cpp_reader *, const char *));
extern void v_cpp_message PARAMS ((cpp_reader *, int, const char *, va_list));
extern void cpp_grow_buffer PARAMS ((cpp_reader *, long)); extern void cpp_grow_buffer PARAMS ((cpp_reader *, long));
extern cpp_buffer *cpp_push_buffer PARAMS ((cpp_reader *, extern cpp_buffer *cpp_push_buffer PARAMS ((cpp_reader *,
...@@ -755,18 +770,6 @@ enum file_change_code {same_file, enter_file, leave_file}; ...@@ -755,18 +770,6 @@ enum file_change_code {same_file, enter_file, leave_file};
extern void output_line_command PARAMS ((cpp_reader *, extern void output_line_command PARAMS ((cpp_reader *,
enum file_change_code)); enum file_change_code));
/* From cpperror.c */
extern void cpp_fatal PARAMS ((cpp_reader *, const char *, ...))
ATTRIBUTE_PRINTF_2;
extern void cpp_message PARAMS ((cpp_reader *, int, const char *, ...))
ATTRIBUTE_PRINTF_3;
extern void cpp_pfatal_with_name PARAMS ((cpp_reader *, const char *))
ATTRIBUTE_NORETURN;
extern void cpp_file_line_for_message PARAMS ((cpp_reader *, const char *,
int, int));
extern void cpp_print_containing_files PARAMS ((cpp_reader *));
extern void cpp_notice PARAMS ((const char *msgid, ...)) ATTRIBUTE_PRINTF_1;
/* In cppfiles.c */ /* In cppfiles.c */
extern void simplify_pathname PARAMS ((char *)); extern void simplify_pathname PARAMS ((char *));
extern void merge_include_chains PARAMS ((struct cpp_options *)); extern void merge_include_chains PARAMS ((struct cpp_options *));
......
...@@ -73,7 +73,10 @@ main (argc, argv) ...@@ -73,7 +73,10 @@ main (argc, argv)
if (!opts->out_fname || !strcmp (opts->out_fname, "")) if (!opts->out_fname || !strcmp (opts->out_fname, ""))
opts->out_fname = "stdout"; opts->out_fname = "stdout";
else if (! freopen (opts->out_fname, "w", stdout)) else if (! freopen (opts->out_fname, "w", stdout))
cpp_pfatal_with_name (&parse_in, opts->out_fname); {
cpp_notice_from_errno (&parse_in, opts->out_fname);
return (FATAL_EXIT_CODE);
}
if (! opts->no_output) if (! opts->no_output)
{ {
...@@ -87,7 +90,7 @@ main (argc, argv) ...@@ -87,7 +90,7 @@ main (argc, argv)
rem = fwrite (parse_in.token_buffer, 1, count, stdout); rem = fwrite (parse_in.token_buffer, 1, count, stdout);
if (rem < count) if (rem < count)
/* Write error. */ /* Write error. */
cpp_pfatal_with_name (&parse_in, opts->out_fname); cpp_notice_from_errno (&parse_in, opts->out_fname);
CPP_SET_WRITTEN (&parse_in, 0); CPP_SET_WRITTEN (&parse_in, 0);
} }
...@@ -108,7 +111,7 @@ main (argc, argv) ...@@ -108,7 +111,7 @@ main (argc, argv)
cpp_finish (&parse_in); cpp_finish (&parse_in);
if (fwrite (parse_in.token_buffer, 1, CPP_WRITTEN (&parse_in), stdout) if (fwrite (parse_in.token_buffer, 1, CPP_WRITTEN (&parse_in), stdout)
< CPP_WRITTEN (&parse_in)) < CPP_WRITTEN (&parse_in))
cpp_pfatal_with_name (&parse_in, opts->out_fname); cpp_notice_from_errno (&parse_in, opts->out_fname);
cpp_cleanup (&parse_in); cpp_cleanup (&parse_in);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment