This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Clean up cpplib's internal namespace


This patch renames a bunch of internal but globally visible functions
so their names all begin with "_cpp_".  This will make life easier for
users of the library.

The namespace is not yet perfect, I haven't decided what to do about
some of the functions exported by cpplib.c.

This has been bootstrapped successfully on i386 (with
expand_builtin_strlen disabled).  It does not break fix-header.  It
MAY break --enable-c-cpplib, but I don't care right now; that's going
to be dealt with in April.

There is also a two-line fix for a combination memory leak and
segfault bug having to do with freeing the include_hash.

zw

	* cppfiles.c (_cpp_find_include_file): Make sure ih->name is
	initialized.
	* cppinit.c (cpp_cleanup): Free imp->nshort also.

	* cpperror.c (cpp_print_containing_files,
	cpp_print_file_and_line, v_cpp_message): Rename to
	print_containing_files, print_file_and_line, and v_message.
	* cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
	to _cpp_parse_expr, parse_escape, and lex.
	(parse_charconst): Remove broken multibyte support.
	* cppfiles.c (include_hash): Make static.
	(cpp_included): New function.
	(merge_include_chains, find_include_file, finclude,
	simplify_pathname): Rename to _cpp_merge_include_chains,
	_cpp_find_include_file, _cpp_read_include_file, and
	_cpp_simplify_pathname.
	* cpphash.c (cpp_lookup, free_definition, delete_macro,
	cpp_install, create_definition, macroexpand, compare_defs,
	dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
	_cpp_delete_macro, _cpp_install, _cpp_create_definition,
	_cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
	* cppinit.c (cpp_handle_option): Rename to handle_option, make
	static.
	* cpplib.c: Remove extern prototype of cpp_parse_expr.

	* cpphash.h: Update prototypes.
	* cpplib.h: Likewise.  Prototype _cpp_parse_expr here.

===================================================================
Index: cpperror.c
--- cpperror.c	2000/02/27 00:10:14	1.25
+++ cpperror.c	2000/03/07 20:45:18
@@ -28,9 +28,9 @@ Foundation, 59 Temple Place - Suite 330,
 #include "cpplib.h"
 #include "intl.h"
 
-static void cpp_print_containing_files	PARAMS ((cpp_reader *, cpp_buffer *));
-static void cpp_print_file_and_line	PARAMS ((const char *, long, long));
-static void v_cpp_message		PARAMS ((cpp_reader *, int,
+static void print_containing_files	PARAMS ((cpp_reader *, cpp_buffer *));
+static void print_file_and_line		PARAMS ((const char *, long, long));
+static void v_message			PARAMS ((cpp_reader *, int,
 						 const char *, long, long,
 						 const char *, va_list));
 
@@ -38,7 +38,7 @@ static void v_cpp_message		PARAMS ((cpp_
    commands which led to the current file.  */
 
 static void
-cpp_print_containing_files (pfile, ip)
+print_containing_files (pfile, ip)
      cpp_reader *pfile;
      cpp_buffer *ip;
 {
@@ -86,7 +86,7 @@ cpp_print_containing_files (pfile, ip)
 }
 
 static void
-cpp_print_file_and_line (filename, line, column)
+print_file_and_line (filename, line, column)
      const char *filename;
      long line, column;
 {
@@ -104,7 +104,7 @@ cpp_print_file_and_line (filename, line,
    1 for error, 0 for warning.  */
 
 static void
-v_cpp_message (pfile, is_error, file, line, col, msg, ap)
+v_message (pfile, is_error, file, line, col, msg, ap)
      cpp_reader *pfile;
      int is_error;
      const char *file;
@@ -122,8 +122,8 @@ v_cpp_message (pfile, is_error, file, li
       if (line == -1)
 	cpp_buf_line_and_col (ip, &line, &col);
 
-      cpp_print_containing_files (pfile, ip);
-      cpp_print_file_and_line (file, line, col);
+      print_containing_files (pfile, ip);
+      print_file_and_line (file, line, col);
     }
   else
     fprintf (stderr, "%s: ", progname);
@@ -145,7 +145,7 @@ v_cpp_message (pfile, is_error, file, li
       pfile->errors = CPP_FATAL_LIMIT;
       break;
     default:
-      cpp_ice (pfile, "bad is_error(%d) in v_cpp_message", is_error);
+      cpp_ice (pfile, "bad is_error(%d) in v_message", is_error);
     }
 
   vfprintf (stderr, _(msg), ap);
@@ -173,7 +173,7 @@ cpp_ice VPARAMS ((cpp_reader *pfile, con
   msgid = va_arg (ap, const char *);
 #endif
 
-  v_cpp_message (pfile, 3, NULL, -1, -1, msgid, ap);
+  v_message (pfile, 3, NULL, -1, -1, msgid, ap);
   va_end(ap);
 }
 
@@ -199,7 +199,7 @@ cpp_fatal VPARAMS ((cpp_reader *pfile, c
   msgid = va_arg (ap, const char *);
 #endif
 
-  v_cpp_message (pfile, 2, NULL, -1, -1, msgid, ap);
+  v_message (pfile, 2, NULL, -1, -1, msgid, ap);
   va_end(ap);
 }
 
@@ -222,7 +222,7 @@ cpp_error VPARAMS ((cpp_reader * pfile, 
   if (CPP_OPTIONS (pfile)->inhibit_errors)
     return;
 
-  v_cpp_message (pfile, 1, NULL, -1, -1, msgid, ap);
+  v_message (pfile, 1, NULL, -1, -1, msgid, ap);
   va_end(ap);
 }
 
@@ -250,7 +250,7 @@ cpp_error_with_line VPARAMS ((cpp_reader
   if (CPP_OPTIONS (pfile)->inhibit_errors)
     return;
 
-  v_cpp_message (pfile, 1, NULL, line, column, msgid, ap);
+  v_message (pfile, 1, NULL, line, column, msgid, ap);
   va_end(ap);
 }
 
@@ -282,7 +282,7 @@ cpp_warning VPARAMS ((cpp_reader * pfile
   if (CPP_OPTIONS (pfile)->inhibit_warnings)
     return;
 
-  v_cpp_message (pfile, 0, NULL, -1, -1, msgid, ap);
+  v_message (pfile, 0, NULL, -1, -1, msgid, ap);
   va_end(ap);
 }
 
@@ -310,7 +310,7 @@ cpp_warning_with_line VPARAMS ((cpp_read
   if (CPP_OPTIONS (pfile)->inhibit_warnings)
     return;
 
-  v_cpp_message (pfile, 0, NULL, line, column, msgid, ap);
+  v_message (pfile, 0, NULL, line, column, msgid, ap);
   va_end(ap);
 }
 
@@ -335,7 +335,7 @@ cpp_pedwarn VPARAMS ((cpp_reader * pfile
       : CPP_OPTIONS (pfile)->inhibit_warnings)
     return;
 
-  v_cpp_message (pfile, CPP_OPTIONS (pfile)->pedantic_errors,
+  v_message (pfile, CPP_OPTIONS (pfile)->pedantic_errors,
 		 NULL, -1, -1, msgid, ap);
   va_end(ap);
 }
@@ -366,7 +366,7 @@ cpp_pedwarn_with_line VPARAMS ((cpp_read
       : CPP_OPTIONS (pfile)->inhibit_warnings)
     return;
 
-  v_cpp_message (pfile, CPP_OPTIONS (pfile)->pedantic_errors,
+  v_message (pfile, CPP_OPTIONS (pfile)->pedantic_errors,
 		 NULL, line, column, msgid, ap);
   va_end(ap);
 }
@@ -403,7 +403,7 @@ cpp_pedwarn_with_file_and_line VPARAMS (
       : CPP_OPTIONS (pfile)->inhibit_warnings)
     return;
 
-  v_cpp_message (pfile, CPP_OPTIONS (pfile)->pedantic_errors,
+  v_message (pfile, CPP_OPTIONS (pfile)->pedantic_errors,
 		 file, line, col, msgid, ap);
   va_end(ap);
 }
===================================================================
Index: cppexp.c
--- cppexp.c	2000/03/04 01:42:56	1.35
+++ cppexp.c	2000/03/07 20:45:18
@@ -1,4 +1,4 @@
-/* Parse C expressions for CCCP.
+/* Parse C expressions for cpplib.
    Copyright (C) 1987, 92, 94, 95, 97, 98, 1999, 2000 Free Software Foundation.
 
 This program is free software; you can redistribute it and/or modify it
@@ -65,11 +65,11 @@ Written by Per Bothner 1994.  */
 #endif
 
 #define MAX_CHAR_TYPE_MASK (MAX_CHAR_TYPE_SIZE < HOST_BITS_PER_WIDEST_INT \
-			    ? (~ (~ (HOST_WIDEST_INT) 0 << MAX_CHAR_TYPE_SIZE)) \
+			    ? (~(~(HOST_WIDEST_INT) 0 << MAX_CHAR_TYPE_SIZE)) \
 			    : ~ (HOST_WIDEST_INT) 0)
 
 #define MAX_WCHAR_TYPE_MASK (MAX_WCHAR_TYPE_SIZE < HOST_BITS_PER_WIDEST_INT \
-			     ? ~ (~ (HOST_WIDEST_INT) 0 << MAX_WCHAR_TYPE_SIZE) \
+			     ? ~(~(HOST_WIDEST_INT) 0 << MAX_WCHAR_TYPE_SIZE) \
 			     : ~ (HOST_WIDEST_INT) 0)
 
 /* Yield nonzero if adding two numbers with A's and B's signs can yield a
@@ -77,15 +77,20 @@ Written by Per Bothner 1994.  */
 #define possible_sum_sign(a, b, sum) ((((a) ^ (b)) | ~ ((a) ^ (sum))) < 0)
 
 static void integer_overflow PARAMS ((cpp_reader *));
-static HOST_WIDEST_INT left_shift PARAMS ((cpp_reader *, HOST_WIDEST_INT, int, unsigned HOST_WIDEST_INT));
-static HOST_WIDEST_INT right_shift PARAMS ((cpp_reader *, HOST_WIDEST_INT, int, unsigned HOST_WIDEST_INT));
-static struct operation parse_number PARAMS ((cpp_reader *, U_CHAR *, U_CHAR *));
-static struct operation parse_charconst PARAMS ((cpp_reader *, U_CHAR *, U_CHAR *));
+static HOST_WIDEST_INT left_shift PARAMS ((cpp_reader *, HOST_WIDEST_INT,
+					   int, unsigned HOST_WIDEST_INT));
+static HOST_WIDEST_INT right_shift PARAMS ((cpp_reader *, HOST_WIDEST_INT,
+					    int, unsigned HOST_WIDEST_INT));
+static struct operation parse_number PARAMS ((cpp_reader *, U_CHAR *,
+					      U_CHAR *));
+static struct operation parse_charconst PARAMS ((cpp_reader *, U_CHAR *,
+						 U_CHAR *));
 static struct operation parse_defined PARAMS ((cpp_reader *));
-static struct operation cpp_lex PARAMS ((cpp_reader *, int));
-extern HOST_WIDEST_INT cpp_parse_expr PARAMS ((cpp_reader *));
-static HOST_WIDEST_INT cpp_parse_escape PARAMS ((cpp_reader *, U_CHAR **, HOST_WIDEST_INT));
+static HOST_WIDEST_INT parse_escape PARAMS ((cpp_reader *, U_CHAR **,
+					     HOST_WIDEST_INT));
+static struct operation lex PARAMS ((cpp_reader *, int));
 
+
 #define ERROR 299
 #define OROR 300
 #define ANDAND 301
@@ -107,12 +112,13 @@ static HOST_WIDEST_INT cpp_parse_escape 
 #define SKIP_OPERAND 8
 /*#define UNSIGNEDP 16*/
 
-struct operation {
-    short op;
-    char rprio; /* Priority of op (relative to it right operand).  */
-    char flags;
-    char unsignedp;    /* true if value should be treated as unsigned */
-    HOST_WIDEST_INT value;        /* The value logically "right" of op.  */
+struct operation
+{
+  short op;
+  char rprio; /* Priority of op (relative to it right operand).  */
+  char flags;
+  char unsignedp;    /* true if value should be treated as unsigned */
+  HOST_WIDEST_INT value;        /* The value logically "right" of op.  */
 };
 
 /* Parse and convert an integer for #if.  Accepts decimal, hex, or octal
@@ -258,13 +264,7 @@ parse_charconst (pfile, start, end)
   int max_chars;
   U_CHAR *ptr = start;
 
-  /* FIXME: Should use reentrant multibyte functions.  */
-#ifdef MULTIBYTE_CHARS
-  wchar_t c = (wchar_t)-1;
-  (void) mbtowc (NULL_PTR, NULL_PTR, 0);
-#else
   int c = -1;
-#endif
 
   if (*ptr == 'L')
     {
@@ -277,22 +277,12 @@ parse_charconst (pfile, start, end)
 
   while (ptr < end)
     {
-#ifndef MULTIBYTE_CHARS
       c = *ptr++;
-#else
-      ptr += mbtowc (&c, ptr, end - ptr);
-#endif
       if (c == '\'' || c == '\0')
 	break;
       else if (c == '\\')
 	{
-	  /* Hopefully valid assumption: if mbtowc returns a backslash,
-	     we are in initial shift state.  No valid escape-sequence
-	     character can take us out of initial shift state or begin
-	     an unshifted multibyte char, so cpp_parse_escape doesn't
-	     need to know about multibyte chars.  */
-
-	  c = cpp_parse_escape (pfile, &ptr, mask);
+	  c = parse_escape (pfile, &ptr, mask);
 	  if (width < HOST_BITS_PER_INT
 	      && (unsigned int) c >= (unsigned int)(1 << width))
 	    cpp_pedwarn (pfile, "escape sequence out of range for character");
@@ -420,7 +410,7 @@ static const struct token tokentab2[] = 
 /* Read one token.  */
 
 static struct operation
-cpp_lex (pfile, skip_evaluation)
+lex (pfile, skip_evaluation)
      cpp_reader *pfile;
      int skip_evaluation;
 {
@@ -510,7 +500,7 @@ cpp_lex (pfile, skip_evaluation)
    after the zeros.  A value of 0 does not mean end of string.  */
 
 static HOST_WIDEST_INT
-cpp_parse_escape (pfile, string_ptr, result_mask)
+parse_escape (pfile, string_ptr, result_mask)
      cpp_reader *pfile;
      U_CHAR **string_ptr;
      HOST_WIDEST_INT result_mask;
@@ -681,7 +671,7 @@ right_shift (pfile, a, unsignedp, b)
    Returns the value of the expression.  */
 
 HOST_WIDEST_INT
-cpp_parse_expr (pfile)
+_cpp_parse_expr (pfile)
      cpp_reader *pfile;
 {
   /* The implementation is an operator precedence parser,
@@ -710,7 +700,7 @@ cpp_parse_expr (pfile)
       char flags = 0;
 
       /* Read a token */
-      op =  cpp_lex (pfile, skip_evaluation);
+      op =  lex (pfile, skip_evaluation);
 
       /* See if the token is an operand, in which case go to set_value.
 	 If the token is an operator, figure out its left and right
@@ -719,7 +709,7 @@ cpp_parse_expr (pfile)
       switch (op.op)
 	{
 	case NAME:
-	  cpp_ice (pfile, "cpp_lex returns a NAME");
+	  cpp_ice (pfile, "lex returns a NAME");
 	  goto syntax_error;
 	case INT:  case CHAR:
 	  goto set_value;
@@ -1027,7 +1017,7 @@ cpp_parse_expr (pfile)
 	  else
 	    {
 	      new_stack = (struct operation *) xmalloc (new_size);
-	      bcopy ((char *) stack, (char *) new_stack, old_size);
+	      memcpy (new_stack, stack, old_size);
 	    }
 	  stack = new_stack;
 	  top = (struct operation *) ((char *) new_stack + old_size);
===================================================================
Index: cppfiles.c
--- cppfiles.c	2000/03/04 19:42:04	1.40
+++ cppfiles.c	2000/03/07 20:45:19
@@ -29,11 +29,8 @@ Foundation, 59 Temple Place - Suite 330,
 #include "cpplib.h"
 #include "intl.h"
 
-/* The entry points to this file are: find_include_file,
-   cpp_read_file, finclude, include_hash, append_include_chain, and
-   file_cleanup.  file_cleanup is only called through
-   CPP_BUFFER(pfile)->cleanup, so it's static anyway. */
-
+static struct include_hash *include_hash PARAMS ((cpp_reader *,
+						  const char *, int));
 static struct include_hash *redundant_include_p
 					PARAMS ((cpp_reader *,
 						 struct include_hash *,
@@ -83,7 +80,7 @@ static void hack_vms_include_specificati
    how?) and possibly preload the include hash. */
 
 void
-merge_include_chains (opts)
+_cpp_merge_include_chains (opts)
      struct cpp_options *opts;
 {
   struct file_name_list *prev, *cur, *other;
@@ -208,7 +205,7 @@ merge_include_chains (opts)
  #include name (there are at least three ways this can happen).  The
  hash function could probably be improved a bit. */
 
-struct include_hash *
+static struct include_hash *
 include_hash (pfile, fname, add)
      cpp_reader *pfile;
      const char *fname;
@@ -293,6 +290,19 @@ redundant_include_p (pfile, ihash, ilist
   return 0;
 }
 
+/* Return 1 if the file named by FNAME has been included before in
+   any context, 0 otherwise.  */
+int
+cpp_included (pfile, fname)
+     cpp_reader *pfile;
+     const char *fname;
+{
+  struct include_hash *ptr;
+
+  ptr = include_hash (pfile, fname, 0);
+  return (ptr != NULL);
+}
+
 static int
 file_cleanup (pbuf, pfile)
      cpp_buffer *pbuf;
@@ -316,7 +326,7 @@ file_cleanup (pbuf, pfile)
    *BEFORE is 1 if the file was included before (but needs to be read
    again). */
 int
-find_include_file (pfile, fname, search_start, ihash, before)
+_cpp_find_include_file (pfile, fname, search_start, ihash, before)
      cpp_reader *pfile;
      const char *fname;
      struct file_name_list *search_start;
@@ -362,6 +372,7 @@ find_include_file (pfile, fname, search_
     }
   *before = 0;
   *ihash = ih;
+  ih->name = NULL;
   ih->nshort = xstrdup (fname);
   ih->control_macro = NULL;
   
@@ -383,7 +394,7 @@ find_include_file (pfile, fname, search_
       bcopy (l->name, name, l->nlen);
       name[l->nlen] = '/';
       strcpy (&name[l->nlen+1], fname);
-      simplify_pathname (name);
+      _cpp_simplify_pathname (name);
       if (CPP_OPTIONS (pfile)->remap)
 	name = remap_filename (pfile, name, l);
 
@@ -626,10 +637,11 @@ cpp_read_file (pfile, fname)
     }
 
   /* Open the file in nonblocking mode, so we don't get stuck if
-     someone clever has asked cpp to process /dev/rmt0.  finclude()
-     will check that we have a real file to work with.  Also take
-     care not to acquire a controlling terminal by mistake (this can't
-     happen on sane systems, but paranoia is a virtue).  */
+     someone clever has asked cpp to process /dev/rmt0.
+     _cpp_read_include_file will check that we have a real file to
+     work with.  Also take care not to acquire a controlling terminal
+     by mistake (this can't happen on sane systems, but paranoia is a
+     virtue).  */
   else if ((f = open (fname, O_RDONLY|O_NONBLOCK|O_NOCTTY, 0666)) < 0)
     {
       cpp_notice_from_errno (pfile, fname);
@@ -651,7 +663,7 @@ cpp_read_file (pfile, fname)
   ih_fake->control_macro = 0;
   ih_fake->buf = (char *)-1;
   ih_fake->limit = 0;
-  if (!finclude (pfile, f, ih_fake))
+  if (!_cpp_read_include_file (pfile, f, ih_fake))
     goto failed_finclude;
 
   return 1;
@@ -672,7 +684,7 @@ cpp_read_file (pfile, fname)
    The caller is responsible for the cpp_push_buffer.  */
 
 int
-finclude (pfile, fd, ihash)
+_cpp_read_include_file (pfile, fd, ihash)
      cpp_reader *pfile;
      int fd;
      struct include_hash *ihash;
@@ -1245,7 +1257,7 @@ initialize_input_buffer (pfile, fd, st)
    of the string.
  */
 void
-simplify_pathname (path)
+_cpp_simplify_pathname (path)
     char *path;
 {
     char *from, *to;
===================================================================
Index: cpphash.c
--- cpphash.c	2000/03/07 08:34:34	1.47
+++ cpphash.c	2000/03/07 20:45:19
@@ -116,7 +116,7 @@ hashf (s, len)
    Otherwise, compute the length by scanning the entire name.  */
 
 HASHNODE *
-cpp_lookup (pfile, name, len)
+_cpp_lookup (pfile, name, len)
      cpp_reader *pfile;
      const U_CHAR *name;
      int len;
@@ -147,7 +147,7 @@ cpp_lookup (pfile, name, len)
    do_define when redefining macros.  */
 
 void
-free_definition (d)
+_cpp_free_definition (d)
      DEFINITION *d;
 {
   struct reflist *ap, *nextap;
@@ -169,7 +169,7 @@ free_definition (d)
  */
 
 void
-delete_macro (hp)
+_cpp_delete_macro (hp)
      HASHNODE *hp;
 {
   if (hp->prev != NULL)
@@ -183,7 +183,7 @@ delete_macro (hp)
     *hp->bucket_hdr = hp->next;
 
   if (hp->type == T_MACRO)
-    free_definition (hp->value.defn);
+    _cpp_free_definition (hp->value.defn);
 
   free (hp);
 }
@@ -202,7 +202,7 @@ delete_macro (hp)
    Otherwise, compute the hash code.  */
 
 HASHNODE *
-cpp_install (pfile, name, len, type, value)
+_cpp_install (pfile, name, len, type, value)
      cpp_reader *pfile;
      const U_CHAR *name;
      int len;
@@ -698,7 +698,7 @@ collect_formal_parameters (pfile)
    macro.  */
 
 DEFINITION *
-create_definition (pfile, funlike)
+_cpp_create_definition (pfile, funlike)
      cpp_reader *pfile;
      int funlike;
 {
@@ -959,7 +959,7 @@ special_symbol (hp, pfile)
    an argument list follows; arguments come from the input stack.  */
 
 void
-macroexpand (pfile, hp)
+_cpp_macroexpand (pfile, hp)
      cpp_reader *pfile;
      HASHNODE *hp;
 {
@@ -1484,7 +1484,7 @@ push_macro_expansion (pfile, xbuf, xbuf_
 /* Return zero if two DEFINITIONs are isomorphic.  */
 
 int
-compare_defs (pfile, d1, d2)
+_cpp_compare_defs (pfile, d1, d2)
      cpp_reader *pfile;
      DEFINITION *d1, *d2;
 {
@@ -1576,7 +1576,7 @@ comp_def_part (first, beg1, len1, beg2, 
    to be read back in again. */
 
 void
-dump_definition (pfile, sym, len, defn)
+_cpp_dump_definition (pfile, sym, len, defn)
      cpp_reader *pfile;
      const U_CHAR *sym;
      long len;
===================================================================
Index: cpphash.h
--- cpphash.h	2000/03/01 00:57:09	1.17
+++ cpphash.h	2000/03/07 20:45:19
@@ -92,17 +92,18 @@ struct hashnode {
   union hashval value;		/* pointer to expansion, or whatever */
 };
 
-extern HASHNODE *cpp_install	  PARAMS ((cpp_reader *, const U_CHAR *, int,
+extern HASHNODE *_cpp_install	  PARAMS ((cpp_reader *, const U_CHAR *, int,
 					   enum node_type, const char *));
-extern HASHNODE *cpp_lookup	  PARAMS ((cpp_reader *, const U_CHAR *, int));
-extern void free_definition	  PARAMS ((DEFINITION *));
-extern void delete_macro	  PARAMS ((HASHNODE *));
+extern HASHNODE *_cpp_lookup	  PARAMS ((cpp_reader *, const U_CHAR *, int));
+extern void _cpp_free_definition  PARAMS ((DEFINITION *));
+extern void _cpp_delete_macro	  PARAMS ((HASHNODE *));
 
-extern DEFINITION *create_definition PARAMS ((cpp_reader *, int));
-extern int compare_defs		  PARAMS ((cpp_reader *, DEFINITION *,
+extern DEFINITION *_cpp_create_definition
+				  PARAMS ((cpp_reader *, int));
+extern int _cpp_compare_defs		  PARAMS ((cpp_reader *, DEFINITION *,
 					   DEFINITION *));
-extern void macroexpand		  PARAMS ((cpp_reader *, HASHNODE *));
-extern void dump_definition	  PARAMS ((cpp_reader *, const U_CHAR *, long,
+extern void _cpp_macroexpand	  PARAMS ((cpp_reader *, HASHNODE *));
+extern void _cpp_dump_definition  PARAMS ((cpp_reader *, const U_CHAR *, long,
 					   DEFINITION *));
 
 #endif
===================================================================
Index: cppinit.c
--- cppinit.c	2000/03/06 18:03:54	1.52
+++ cppinit.c	2000/03/07 20:45:19
@@ -183,6 +183,7 @@ static void initialize_dependency_output
 static void initialize_standard_includes PARAMS ((cpp_reader *));
 static void new_pending_define		PARAMS ((struct cpp_options *,
 						 const char *));
+static int handle_option		PARAMS ((cpp_reader *, int, char **));
 
 /* Fourth argument to append_include_chain: chain to use */
 enum { QUOTE = 0, BRACKET, SYSTEM, AFTER };
@@ -293,7 +294,7 @@ append_include_chain (pfile, pend, dir, 
   struct stat st;
   unsigned int len;
 
-  simplify_pathname (dir);
+  _cpp_simplify_pathname (dir);
   if (stat (dir, &st))
     {
       /* Dirs that don't exist are silently ignored. */
@@ -428,6 +429,7 @@ cpp_cleanup (pfile)
 	  struct include_hash *next = imp->next;
 
 	  free ((PTR) imp->name);
+	  free ((PTR) imp->nshort);
 	  free (imp);
 	  imp = next;
 	}
@@ -437,7 +439,7 @@ cpp_cleanup (pfile)
   for (i = HASHSIZE; --i >= 0;)
     {
       while (pfile->hashtab[i])
-	delete_macro (pfile->hashtab[i]);
+	_cpp_delete_macro (pfile->hashtab[i]);
     }
   free (pfile->hashtab);
 }
@@ -507,7 +509,7 @@ initialize_builtins (pfile)
       val = (b->flags & ULP) ? user_label_prefix : b->value;
       len = strlen (b->name);
 
-      cpp_install (pfile, b->name, len, b->type, val);
+      _cpp_install (pfile, b->name, len, b->type, val);
       if ((b->flags & DUMP) && CPP_OPTIONS (pfile)->debug_output)
 	dump_special_to_buffer (pfile, b->name);
     }
@@ -719,7 +721,7 @@ cpp_start_read (pfile, fname)
   if (! opts->no_standard_includes)
     initialize_standard_includes (pfile);
 
-  merge_include_chains (opts);
+  _cpp_merge_include_chains (opts);
 
   /* With -v, print the list of dirs to search.  */
   if (opts->verbose)
@@ -876,7 +878,8 @@ cpp_finish (pfile)
 	  for (h = pfile->hashtab[i]; h; h = h->next)
 	    if (h->type == T_MACRO)
 	      {
-		dump_definition (pfile, h->name, h->length, h->value.defn);
+		_cpp_dump_definition (pfile, h->name, h->length,
+				      h->value.defn);
 		CPP_PUTC (pfile, '\n');
 	      }
 	}
@@ -901,8 +904,8 @@ new_pending_define (opts, text)
    Can be called multiple times, to handle multiple sets of options.
    Returns number of strings consumed.  */
 
-int
-cpp_handle_option (pfile, argc, argv)
+static int
+handle_option (pfile, argc, argv)
      cpp_reader *pfile;
      int argc;
      char **argv;
@@ -1493,7 +1496,7 @@ cpp_handle_options (pfile, argc, argv)
   int strings_processed;
   for (i = 0; i < argc; i += strings_processed)
     {
-      strings_processed = cpp_handle_option (pfile, argc - i, argv + i);
+      strings_processed = handle_option (pfile, argc - i, argv + i);
       if (strings_processed == 0)
 	break;
     }
===================================================================
Index: cpplib.c
--- cpplib.c	2000/03/04 19:42:04	1.125
+++ cpplib.c	2000/03/07 20:45:20
@@ -41,10 +41,6 @@ Foundation, 59 Temple Place - Suite 330,
    case CPP_BUMP_LINE must not be called.  */
 #define ACTIVE_MARK_P() (CPP_BUFFER (pfile)->mark != -1)
 
-/* External declarations.  */
-
-extern HOST_WIDEST_INT cpp_parse_expr PARAMS ((cpp_reader *));
-
 /* `struct directive' defines one #-directive, including how to handle it.  */
 
 struct directive
@@ -259,7 +255,7 @@ cpp_defined (pfile, id, len)
      const U_CHAR *id;
      int len;
 {
-  HASHNODE *hp = cpp_lookup (pfile, id, len);
+  HASHNODE *hp = _cpp_lookup (pfile, id, len);
   if (hp && hp->type == T_POISON)
     {
       cpp_error (pfile, "attempt to use poisoned `%s'", hp->name);
@@ -686,17 +682,17 @@ do_define (pfile, keyword)
        as an object-like macro if this happens, with a warning.  */
     cpp_pedwarn (pfile, "missing white space after `#define %.*s'", len, sym);
 
-  def = create_definition (pfile, funlike);
+  def = _cpp_create_definition (pfile, funlike);
   if (def == 0)
     return 0;
 
-  if ((hp = cpp_lookup (pfile, sym, len)) != NULL)
+  if ((hp = _cpp_lookup (pfile, sym, len)) != NULL)
     {
       int ok;
 
       /* Redefining a macro is ok if the definitions are the same.  */
       if (hp->type == T_MACRO)
-	ok = ! compare_defs (pfile, def, hp->value.defn);
+	ok = ! _cpp_compare_defs (pfile, def, hp->value.defn);
       /* Redefining a constant is ok with -D.  */
       else if (hp->type == T_CONST || hp->type == T_STDC)
         ok = ! CPP_OPTIONS (pfile)->done_initializing;
@@ -721,17 +717,17 @@ do_define (pfile, keyword)
 	{
 	  /* Replace the old definition.  */
 	  if (hp->type == T_MACRO)
-	    free_definition (hp->value.defn);
+	    _cpp_free_definition (hp->value.defn);
 	  hp->type = T_MACRO;
 	  hp->value.defn = def;
 	}
     }
   else
-    cpp_install (pfile, sym, len, T_MACRO, (char *) def);
+    _cpp_install (pfile, sym, len, T_MACRO, (char *) def);
 
   if (CPP_OPTIONS (pfile)->debug_output
       || CPP_OPTIONS (pfile)->dump_macros == dump_definitions)
-    dump_definition (pfile, sym, len, def);
+    _cpp_dump_definition (pfile, sym, len, def);
   else if (CPP_OPTIONS (pfile)->dump_macros == dump_names)
     pass_thru_directive (sym, len, pfile, keyword);
 
@@ -1201,7 +1197,7 @@ do_include (pfile, keyword)
       return 0;
     }
 
-  fd = find_include_file (pfile, ftok, search_start, &ihash, &before);
+  fd = _cpp_find_include_file (pfile, ftok, search_start, &ihash, &before);
 
   if (fd == -2)
     return 0;
@@ -1280,7 +1276,7 @@ do_include (pfile, keyword)
   if (angle_brackets)
     pfile->system_include_depth++;   /* Decremented in file_cleanup. */
 
-  if (finclude (pfile, fd, ihash))
+  if (_cpp_read_include_file (pfile, fd, ihash))
     {
       output_line_command (pfile, enter_file);
       pfile->only_seen_white = 2;
@@ -1479,7 +1475,7 @@ do_undef (pfile, keyword)
   }
   CPP_SET_WRITTEN (pfile, here);
 
-  while ((hp = cpp_lookup (pfile, name, len)) != NULL)
+  while ((hp = _cpp_lookup (pfile, name, len)) != NULL)
     {
       /* If we are generating additional info for debugging (with -g) we
 	 need to pass through all effective #undef commands.  */
@@ -1491,7 +1487,7 @@ do_undef (pfile, keyword)
 	{
 	  if (hp->type != T_MACRO)
 	    cpp_warning (pfile, "undefining `%s'", hp->name);
-	  delete_macro (hp);
+	  _cpp_delete_macro (hp);
 	}
     }
 
@@ -1705,7 +1701,6 @@ do_pragma_implementation (pfile)
 {
   /* Be quiet about `#pragma implementation' for a file only if it hasn't
      been included yet.  */
-  struct include_hash *ptr;
   enum cpp_token token;
   long written = CPP_WRITTEN (pfile);
   U_CHAR *name;
@@ -1723,9 +1718,8 @@ do_pragma_implementation (pfile)
   name = pfile->token_buffer + written + 1;
   copy = xstrdup (name);
   copy[strlen(copy)] = '\0';  /* trim trailing quote */
-  
-  ptr = include_hash (pfile, copy, 0);
-  if (ptr)
+
+  if (cpp_included (pfile, copy))
     cpp_warning (pfile,
 	 "`#pragma implementation' for `%s' appears after file is included",
 		 copy);
@@ -1766,18 +1760,19 @@ do_pragma_poison (pfile)
 
       p = pfile->token_buffer + written;
       len = strlen (p);
-      if ((hp = cpp_lookup (pfile, p, len)))
+      if ((hp = _cpp_lookup (pfile, p, len)))
 	{
 	  if (hp->type != T_POISON)
 	    {
 	      cpp_warning (pfile, "poisoning existing macro `%s'", p);
-	      free_definition (hp->value.defn);
+	      if (hp->type == T_MACRO)
+		_cpp_free_definition (hp->value.defn);
 	      hp->value.defn = 0;
 	      hp->type = T_POISON;
 	    }
 	}
       else
-	cpp_install (pfile, p, len, T_POISON, 0);
+	_cpp_install (pfile, p, len, T_POISON, 0);
       if (writeit)
 	CPP_PUTC (pfile, ' ');
     }
@@ -1952,7 +1947,7 @@ eval_if_expression (pfile)
   long old_written = CPP_WRITTEN (pfile);
 
   pfile->parsing_if_directive++;
-  value = cpp_parse_expr (pfile);
+  value = _cpp_parse_expr (pfile);
   pfile->parsing_if_directive--;
 
   skip_rest_of_line (pfile);
@@ -2683,7 +2678,7 @@ cpp_get_token (pfile)
 	      return CPP_NAME;
 	    ident = pfile->token_buffer + before_name_written;
 	    ident_len = CPP_PWRITTEN (pfile) - ident;
-	    hp = cpp_lookup (pfile, ident, ident_len);
+	    hp = _cpp_lookup (pfile, ident, ident_len);
 	    if (!hp)
 	      return CPP_NAME;
 	    if (hp->type == T_DISABLED)
@@ -2751,7 +2746,7 @@ cpp_get_token (pfile)
 	    /* This is now known to be a macro call.
 	       Expand the macro, reading arguments as needed,
 	       and push the expansion on the input stack.  */
-	    macroexpand (pfile, hp);
+	    _cpp_macroexpand (pfile, hp);
 	    CPP_SET_WRITTEN (pfile, before_name_written);
 	  }
 	  goto get_next;
@@ -3085,16 +3080,16 @@ do_assert (pfile, keyword)
 
   thislen = strlen (sym);
   baselen = index (sym, '(') - sym;
-  this = cpp_lookup (pfile, sym, thislen);
+  this = _cpp_lookup (pfile, sym, thislen);
   if (this)
     {
       cpp_warning (pfile, "`%s' re-asserted", sym);
       goto error;
     }
 
-  base = cpp_lookup (pfile, sym, baselen);
+  base = _cpp_lookup (pfile, sym, baselen);
   if (! base)
-    base = cpp_install (pfile, sym, baselen, T_ASSERT, 0);
+    base = _cpp_install (pfile, sym, baselen, T_ASSERT, 0);
   else if (base->type != T_ASSERT)
   {
     /* Token clash - but with what?! */
@@ -3102,7 +3097,7 @@ do_assert (pfile, keyword)
     goto error;
   }
 
-  this = cpp_install (pfile, sym, thislen, T_ASSERT,
+  this = _cpp_install (pfile, sym, thislen, T_ASSERT,
 		      (char *)base->value.aschain);
   base->value.aschain = this;
   
@@ -3143,7 +3138,7 @@ do_unassert (pfile, keyword)
   thislen = strlen (sym);
   if (ret == 1)
     {
-      base = cpp_lookup (pfile, sym, thislen);
+      base = _cpp_lookup (pfile, sym, thislen);
       if (! base)
 	goto error;  /* It isn't an error to #undef what isn't #defined,
 			so it isn't an error to #unassert what isn't
@@ -3152,16 +3147,16 @@ do_unassert (pfile, keyword)
       for (this = base->value.aschain; this; this = next)
         {
 	  next = this->value.aschain;
-	  delete_macro (this);
+	  _cpp_delete_macro (this);
 	}
-      delete_macro (base);
+      _cpp_delete_macro (base);
     }
   else
     {
       baselen = index (sym, '(') - sym;
-      base = cpp_lookup (pfile, sym, baselen);
+      base = _cpp_lookup (pfile, sym, baselen);
       if (! base) goto error;
-      this = cpp_lookup (pfile, sym, thislen);
+      this = _cpp_lookup (pfile, sym, thislen);
       if (! this) goto error;
 
       next = base;
@@ -3169,10 +3164,10 @@ do_unassert (pfile, keyword)
 	next = next->value.aschain;
 
       next->value.aschain = this->value.aschain;
-      delete_macro (this);
+      _cpp_delete_macro (this);
 
       if (base->value.aschain == NULL)
-	delete_macro (base);  /* Last answer for this predicate deleted. */
+	_cpp_delete_macro (base);  /* Last answer for this predicate deleted. */
     }
   
   pfile->limit = (unsigned char *) sym; /* Pop */
===================================================================
Index: cpplib.h
--- cpplib.h	2000/03/04 19:42:04	1.64
+++ cpplib.h	2000/03/07 20:45:20
@@ -64,7 +64,6 @@ enum cpp_token
 typedef enum cpp_token (*parse_underflow_t) PARAMS((cpp_reader *));
 typedef int (*parse_cleanup_t) PARAMS((cpp_buffer *, cpp_reader *));
 
-extern int cpp_handle_option PARAMS ((cpp_reader *, int, char **));
 extern int cpp_handle_options PARAMS ((cpp_reader *, int, char **));
 extern enum cpp_token cpp_get_token PARAMS ((cpp_reader *));
 extern enum cpp_token cpp_get_non_space_token PARAMS ((cpp_reader *));
@@ -694,16 +693,21 @@ extern void output_line_command		PARAMS 
 						 enum file_change_code));
 
 /* In cppfiles.c */
-extern void simplify_pathname		PARAMS ((char *));
-extern void merge_include_chains	PARAMS ((struct cpp_options *));
-extern int find_include_file		PARAMS ((cpp_reader *, const char *,
+extern int cpp_included			PARAMS ((cpp_reader *, const char *));
+extern int cpp_read_file		PARAMS ((cpp_reader *, const char *));
+
+extern void _cpp_simplify_pathname	PARAMS ((char *));
+extern void _cpp_merge_include_chains	PARAMS ((struct cpp_options *));
+extern int _cpp_find_include_file	PARAMS ((cpp_reader *, const char *,
 						struct file_name_list *,
 						struct include_hash **,
 						int *));
-extern int finclude			PARAMS ((cpp_reader *, int,
+extern int _cpp_read_include_file	PARAMS ((cpp_reader *, int,
 					        struct include_hash *));
-extern int cpp_read_file		PARAMS ((cpp_reader *, const char *));
-extern struct include_hash *include_hash PARAMS ((cpp_reader *, const char *, int));
+
+/* In cppexp.c */
+extern HOST_WIDEST_INT _cpp_parse_expr	PARAMS ((cpp_reader *));
+
 
 #ifdef __cplusplus
 }

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]