diff options
| author | David E. O'Brien <obrien@FreeBSD.org> | 1999-08-26 09:30:50 +0000 | 
|---|---|---|
| committer | David E. O'Brien <obrien@FreeBSD.org> | 1999-08-26 09:30:50 +0000 | 
| commit | 2a266d02ba4304af542da2cc521ecc0edc1c9706 (patch) | |
| tree | 68d8110b41afd0ebbf39167b1a4918eea667a7c5 /contrib/gcc/cppmain.c | |
| parent | 3b82b5b7f77cb6aa00fbc3f7e544459b1213e88b (diff) | |
Notes
Diffstat (limited to 'contrib/gcc/cppmain.c')
| -rw-r--r-- | contrib/gcc/cppmain.c | 43 | 
1 files changed, 28 insertions, 15 deletions
diff --git a/contrib/gcc/cppmain.c b/contrib/gcc/cppmain.c index 506ce05f7e8a..0a45e86907be 100644 --- a/contrib/gcc/cppmain.c +++ b/contrib/gcc/cppmain.c @@ -1,5 +1,5 @@  /* CPP main program, using CPP Library. -   Copyright (C) 1995 Free Software Foundation, Inc. +   Copyright (C) 1995, 1997 Free Software Foundation, Inc.     Written by Per Bothner, 1994-95.  This program is free software; you can redistribute it and/or modify it @@ -20,28 +20,40 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.   You are forbidden to forbid anyone else to use, share and improve   what you give them.   Help stamp out software-hoarding!  */ -#include "cpplib.h" -#include <stdio.h> -  #ifndef EMACS  #include "config.h" -#endif /* not EMACS */ +#include "system.h" +#include "gansidecl.h" +#else +#include <stdio.h>  extern char *getenv (); +#endif /* not EMACS */ + +#include "cpplib.h"  char *progname;  cpp_reader parse_in;  cpp_options options; +#ifdef abort  /* More 'friendly' abort that prints the line and file.     config.h can #define abort fancy_abort if you like that sort of thing.  */ +void +fatal (s) +     char *s; +{ +  fputs (s, stderr); +  exit (FATAL_EXIT_CODE); +}  void  fancy_abort ()  {    fatal ("Internal gcc abort.");  } +#endif  int @@ -50,27 +62,28 @@ main (argc, argv)       char **argv;  {    char *p; -  int i; -  int argi = 1;  /* Next argument to handle. */ +  int argi = 1;  /* Next argument to handle.  */    struct cpp_options *opts = &options;    p = argv[0] + strlen (argv[0]);    while (p != argv[0] && p[-1] != '/') --p;    progname = p; -  init_parse_file (&parse_in); +  cpp_reader_init (&parse_in);    parse_in.data = opts; -  init_parse_options (opts); +  cpp_options_init (opts);    argi += cpp_handle_options (&parse_in, argc - argi , argv + argi); -  if (argi < argc) -    fatal ("Invalid option `%s'", argv[argi]); +  if (argi < argc && ! CPP_FATAL_ERRORS (&parse_in)) +    cpp_fatal (&parse_in, "Invalid option `%s'", argv[argi]); +  if (CPP_FATAL_ERRORS (&parse_in)) +    exit (FATAL_EXIT_CODE); +          parse_in.show_column = 1; -  i = push_parse_file (&parse_in, opts->in_fname); -  if (i != SUCCESS_EXIT_CODE) -    return i; +  if (! cpp_start_read (&parse_in, opts->in_fname)) +    exit (FATAL_EXIT_CODE);    /* Now that we know the input file is valid, open the output.  */ @@ -86,7 +99,7 @@ main (argc, argv)  	{  	  fwrite (parse_in.token_buffer, 1, CPP_WRITTEN (&parse_in), stdout);  	} -      parse_in.limit = parse_in.token_buffer; +      CPP_SET_WRITTEN (&parse_in, 0);        kind = cpp_get_token (&parse_in);        if (kind == CPP_EOF)  	break;  | 
