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]

Re: cpplib: patch: three long-standing bugs


Per was removed from CC as his address was bouncing on this end.

cpplib code cleanup patch attached for comment.  Does it look ok?  make
bootstrap and gcc testsuite do not break/change.  Patch changelog,
against egcs HEAD:

o cppalloc.c - xstrdup(): remove unnecessary temp var
o remove "register" keyword
o mark many strings for translation
o const-ify several strings
o s/bcopy/memcpy/
o s/bzero/memset/
o s/rindex/strchr/
o remove unused cpp_reader members 'underflow' and 'get_token', and
associated parse_underflow_t type


-- 
Custom driver development	|    Never worry about theory as long
Open source programming		|    as the machinery does what it's
				|    supposed to do.  -- R. A. Heinlein
Index: cppalloc.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/cppalloc.c,v
retrieving revision 1.15
diff -u -r1.15 cppalloc.c
--- cppalloc.c	1999/01/27 01:42:04	1.15
+++ cppalloc.c	1999/09/05 01:54:42
@@ -39,7 +39,7 @@
 xmalloc (size)
   size_t size;
 {
-  register PTR ptr = (PTR) malloc (size);
+  PTR ptr = (PTR) malloc (size);
   if (ptr == 0)
     memory_full ();
   return ptr;
@@ -74,8 +74,7 @@
 xstrdup (input)
   const char *input;
 {
-  unsigned size = strlen (input);
-  char *output = xmalloc (size + 1);
+  char *output = xmalloc (strlen (input) + 1);
   strcpy (output, input);
   return output;
 }
Index: cpperror.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/cpperror.c,v
retrieving revision 1.16
diff -u -r1.16 cpperror.c
--- cpperror.c	1999/04/14 09:40:53	1.16
+++ cpperror.c	1999/09/05 01:54:42
@@ -63,7 +63,7 @@
 	  if (first)
 	    {
 	      first = 0;
-	      cpp_notice ("In file included from %s:%ld",
+	      cpp_notice (_("In file included from %s:%ld"),
 			  ip->nominal_fname, line);
 	    }
 	  else
@@ -81,7 +81,7 @@
 void
 cpp_file_line_for_message (pfile, filename, line, column)
      cpp_reader *pfile ATTRIBUTE_UNUSED;
-     char *filename;
+     const char *filename;
      int line, column;
 {
   if (column > 0)
@@ -114,7 +114,7 @@
       pfile->errors = CPP_FATAL_LIMIT;
       break;
     default:
-      cpp_fatal (pfile, "internal error: bad is_error(%d) in v_cpp_message", is_error);
+      cpp_fatal (pfile, _("internal error: bad is_error(%d) in v_cpp_message"), is_error);
     }
 
   vfprintf (stderr, _(msgid), ap);
Index: cppexp.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/cppexp.c,v
retrieving revision 1.24
diff -u -r1.24 cppexp.c
--- cppexp.c	1999/04/14 09:40:55	1.24
+++ cppexp.c	1999/09/05 01:54:42
@@ -27,6 +27,7 @@
 #include "config.h"
 #include "system.h"
 #include "cpplib.h"
+#include "intl.h"
 
 #ifdef MULTIBYTE_CHARS
 #include <locale.h>
@@ -161,7 +162,7 @@
 	{
 	  /* It's a float since it contains a point.  */
 	  cpp_error (pfile,
-		"floating point numbers are not allowed in #if expressions");
+		_("floating point numbers are not allowed in #if expressions"));
 	  goto error;
 	}
       else
@@ -198,32 +199,32 @@
 
   if (p != end)
     {
-      cpp_error (pfile, "invalid number in #if expression");
+      cpp_error (pfile, _("invalid number in #if expression"));
       goto error;
     }
   else if (spec_long > (CPP_OPTIONS (pfile)->c89 ? 1 : 2))
     {
-      cpp_error (pfile, "too many `l' suffixes in integer constant");
+      cpp_error (pfile, _("too many `l' suffixes in integer constant"));
       goto error;
     }
   else if (op.unsignedp > 1)
     {
-      cpp_error (pfile, "too many `u' suffixes in integer constant");
+      cpp_error (pfile, _("too many `u' suffixes in integer constant"));
       goto error;
     }
   
   if (base <= largest_digit)
-    cpp_pedwarn (pfile, "integer constant contains digits beyond the radix");
+    cpp_pedwarn (pfile, _("integer constant contains digits beyond the radix"));
 
   if (overflow)
-    cpp_pedwarn (pfile, "integer constant out of range");
+    cpp_pedwarn (pfile, _("integer constant out of range"));
 
   /* If too big to be signed, consider it unsigned.  */
   else if ((HOST_WIDEST_INT) n < 0 && ! op.unsignedp)
     {
       if (base == 10)
 	cpp_warning (pfile,
-		     "integer constant is so large that it is unsigned");
+		     _("integer constant is so large that it is unsigned"));
       op.unsignedp = 1;
     }
 
@@ -289,7 +290,7 @@
 	  c = cpp_parse_escape (pfile, (char **) &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");
+	    cpp_pedwarn (pfile, _("escape sequence out of range for character"));
 	}
 	  
       /* Merge character into result; ignore excess chars.  */
@@ -304,23 +305,23 @@
 
   if (num_chars == 0)
     {
-      cpp_error (pfile, "empty character constant");
+      cpp_error (pfile, _("empty character constant"));
       goto error;
     }
   else if (c != '\'')
     {
       /* cpp_get_token has already emitted an error if !traditional. */
       if (! CPP_TRADITIONAL (pfile))
-	cpp_error (pfile, "malformatted character constant");
+	cpp_error (pfile, _("malformatted character constant"));
       goto error;
     }
   else if (num_chars > max_chars)
     {
-      cpp_error (pfile, "character constant too long");
+      cpp_error (pfile, _("character constant too long"));
       goto error;
     }
   else if (num_chars != 1 && ! CPP_TRADITIONAL (pfile))
-    cpp_warning (pfile, "multi-character character constant");
+    cpp_warning (pfile, _("multi-character character constant"));
 
   /* If char type is signed, sign-extend the constant.  */
   num_bits = num_chars * width;
@@ -420,7 +421,7 @@
     case CPP_NUMBER:
       return parse_number (pfile, tok_start, tok_end);
     case CPP_STRING:
-      cpp_error (pfile, "string constants not allowed in #if expressions");
+      cpp_error (pfile, _("string constants not allowed in #if expressions"));
       op.op = ERROR;
       return op;
     case CPP_CHAR:
@@ -472,7 +473,7 @@
       return op;
 
     oops:
-      cpp_error (pfile, "`defined' without an identifier");
+      cpp_error (pfile, _("`defined' without an identifier"));
       return op;
 
     case CPP_OTHER:
@@ -484,7 +485,7 @@
 		&& tok_start[1] == toktab->operator[1])
 		break;
 	  if (toktab->token == ERROR)
-	    cpp_error (pfile, "`%s' not allowed in operand of `#if'",
+	    cpp_error (pfile, _("`%s' not allowed in operand of `#if'"),
 		       tok_start);
 	  op.op = toktab->token; 
 	  return op;
@@ -517,7 +518,7 @@
      char **string_ptr;
      HOST_WIDEST_INT result_mask;
 {
-  register int c = *(*string_ptr)++;
+  int c = *(*string_ptr)++;
   switch (c)
     {
     case 'a':
@@ -527,7 +528,7 @@
     case 'e':
     case 'E':
       if (CPP_OPTIONS (pfile)->pedantic)
-	cpp_pedwarn (pfile, "non-ANSI-standard escape sequence, `\\%c'", c);
+	cpp_pedwarn (pfile, _("non-ANSI-standard escape sequence, `\\%c'"), c);
       return 033;
     case 'f':
       return TARGET_FF;
@@ -554,8 +555,8 @@
     case '6':
     case '7':
       {
-	register HOST_WIDEST_INT i = c - '0';
-	register int count = 0;
+	HOST_WIDEST_INT i = c - '0';
+	int count = 0;
 	while (++count < 3)
 	  {
 	    c = *(*string_ptr)++;
@@ -570,14 +571,14 @@
 	if (i != (i & result_mask))
 	  {
 	    i &= result_mask;
-	    cpp_pedwarn (pfile, "octal escape sequence out of range");
+	    cpp_pedwarn (pfile, _("octal escape sequence out of range"));
 	  }
 	return i;
       }
     case 'x':
       {
-	register unsigned HOST_WIDEST_INT i = 0, overflow = 0;
-	register int digits_found = 0, digit;
+	unsigned HOST_WIDEST_INT i = 0, overflow = 0;
+	int digits_found = 0, digit;
 	for (;;)
 	  {
 	    c = *(*string_ptr)++;
@@ -597,11 +598,11 @@
 	    digits_found = 1;
 	  }
 	if (!digits_found)
-	  cpp_error (pfile, "\\x used with no following hex digits");
+	  cpp_error (pfile, _("\\x used with no following hex digits"));
 	if (overflow | (i != (i & result_mask)))
 	  {
 	    i &= result_mask;
-	    cpp_pedwarn (pfile, "hex escape sequence out of range");
+	    cpp_pedwarn (pfile, _("hex escape sequence out of range"));
 	  }
 	return i;
       }
@@ -615,7 +616,7 @@
      cpp_reader *pfile;
 {
   if (CPP_PEDANTIC (pfile))
-    cpp_pedwarn (pfile, "integer overflow in preprocessor expression");
+    cpp_pedwarn (pfile, _("integer overflow in preprocessor expression"));
 }
 
 static HOST_WIDEST_INT
@@ -700,7 +701,7 @@
   struct operation init_stack[INIT_STACK_SIZE];
   struct operation *stack = init_stack;
   struct operation *limit = stack + INIT_STACK_SIZE;
-  register struct operation *top = stack;
+  struct operation *top = stack;
   int lprio, rprio = 0;
   int skip_evaluation = 0;
 
@@ -721,7 +722,7 @@
       switch (op.op)
 	{
 	case NAME:
-	  cpp_fatal (pfile, "internal error: cpp_lex returns a NAME");
+	  cpp_fatal (pfile, _("internal error: cpp_lex returns a NAME"));
 	  goto syntax_error;
 	case INT:  case CHAR:
 	  top->value = op.value;
@@ -770,7 +771,7 @@
 	  rprio = lprio + 1;
 	  goto maybe_reduce;
 	default:
-	  cpp_error (pfile, "invalid character in #if");
+	  cpp_error (pfile, _("invalid character in #if"));
 	  goto syntax_error;
 	}
 
@@ -778,7 +779,7 @@
       /* Push a value onto the stack.  */
       if (top->flags & HAVE_VALUE)
 	{
-	  cpp_error (pfile, "syntax error in #if");
+	  cpp_error (pfile, _("syntax error in #if"));
 	  goto syntax_error;
 	}
       top->flags |= HAVE_VALUE;
@@ -794,13 +795,13 @@
 	  if ((top[1].flags & LEFT_OPERAND_REQUIRED)
 	      && ! (top[0].flags & HAVE_VALUE))
 	    {
-	      cpp_error (pfile, "syntax error - missing left operand");
+	      cpp_error (pfile, _("syntax error - missing left operand"));
 	      goto syntax_error;
 	    }
 	  if ((top[1].flags & RIGHT_OPERAND_REQUIRED)
 	      && ! (top[1].flags & HAVE_VALUE))
 	    {
-	      cpp_error (pfile, "syntax error - missing right operand");
+	      cpp_error (pfile, _("syntax error - missing right operand"));
 	      goto syntax_error;
 	    }
 	  /* top[0].value = (top[1].op)(v1, v2);*/
@@ -858,7 +859,7 @@
 		break;
 	      if (v2 == 0)
 		{
-		  cpp_error (pfile, "division by zero in #if");
+		  cpp_error (pfile, _("division by zero in #if"));
 		  v2 = 1;
 		}
 	      top->unsignedp = unsigned1 || unsigned2;
@@ -876,7 +877,7 @@
 		break;
 	      if (v2 == 0)
 		{
-		  cpp_error (pfile, "division by zero in #if");
+		  cpp_error (pfile, _("division by zero in #if"));
 		  v2 = 1;
 		}
 	      top->unsignedp = unsigned1 || unsigned2;
@@ -888,7 +889,7 @@
 	    case '!':
 	      if (top->flags & HAVE_VALUE)
 		{
-		  cpp_error (pfile, "syntax error");
+		  cpp_error (pfile, _("syntax error"));
 		  goto syntax_error;
 		}
 	      top->value = ! v2;
@@ -898,7 +899,7 @@
 	    case '~':
 	      if (top->flags & HAVE_VALUE)
 		{
-		  cpp_error (pfile, "syntax error");
+		  cpp_error (pfile, _("syntax error"));
 		  goto syntax_error;
 		}
 	      top->value = ~ v2;
@@ -951,7 +952,7 @@
 	      break;
 	    case ',':
 	      if (CPP_PEDANTIC (pfile))
-		cpp_pedwarn (pfile, "comma operator in operand of `#if'");
+		cpp_pedwarn (pfile, _("comma operator in operand of `#if'"));
 	      top->value = v2;
 	      top->unsignedp = unsigned2;
 	      break;
@@ -962,14 +963,14 @@
 	      if (top[0].op != '?')
 		{
 		  cpp_error (pfile,
-			     "syntax error ':' without preceding '?'");
+			     _("syntax error ':' without preceding '?'"));
 		  goto syntax_error;
 		}
 	      else if (! (top[1].flags & HAVE_VALUE)
 		       || !(top[-1].flags & HAVE_VALUE)
 		       || !(top[0].flags & HAVE_VALUE))
 		{
-		  cpp_error (pfile, "bad syntax for ?: operator");
+		  cpp_error (pfile, _("bad syntax for ?: operator"));
 		  goto syntax_error;
 		}
 	      else
@@ -986,7 +987,7 @@
 		  || top[0].op != '('
 		  || (top[-1].flags & HAVE_VALUE))
 		{
-		  cpp_error (pfile, "mismatched parentheses in #if");
+		  cpp_error (pfile, _("mismatched parentheses in #if"));
 		  goto syntax_error;
 		}
 	      else
@@ -1008,7 +1009,7 @@
       if (op.op == 0)
 	{
 	  if (top != stack)
-	    cpp_error (pfile, "internal error in #if expression");
+	    cpp_error (pfile, _("internal error in #if expression"));
 	  if (stack != init_stack)
 	    free (stack);
 	  return top->value;
Index: cppfiles.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/cppfiles.c,v
retrieving revision 1.25
diff -u -r1.25 cppfiles.c
--- cppfiles.c	1999/06/07 10:35:22	1.25
+++ cppfiles.c	1999/09/05 01:54:43
@@ -26,6 +26,7 @@
 #include "config.h"
 #include "system.h"
 #include "cpplib.h"
+#include "intl.h"
 
 /* The entry points to this file are: find_include_file, finclude,
    include_hash, append_include_chain, deps_output, and file_cleanup.
@@ -33,9 +34,9 @@
    so it's static anyway. */
 
 static struct include_hash *redundant_include_p
-					PROTO ((cpp_reader *,
-						struct include_hash *,
-						struct file_name_list *));
+				PROTO ((cpp_reader *,
+					struct include_hash *,
+					const struct file_name_list *));
 static struct file_name_map *read_name_map	PROTO ((cpp_reader *,
 							const char *));
 static char *read_filename_string	PROTO ((int, FILE *));
@@ -43,10 +44,10 @@
 						struct file_name_list *));
 static long read_and_prescan		PROTO ((cpp_reader *, cpp_buffer *,
 						int, size_t));
-static struct file_name_list *actual_directory PROTO ((cpp_reader *, char *));
-
+static struct file_name_list *actual_directory PROTO ((cpp_reader *,
+						       const char *));
 static void initialize_input_buffer	PROTO ((cpp_reader *, int,
-						struct stat *));
+						const struct stat *));
 
 #if 0
 static void hack_vms_include_specification PROTO ((char *));
@@ -122,7 +123,7 @@
 	    && cur->dev == other->dev)
           {
 	    if (opts->verbose)
-	      cpp_notice ("ignoring duplicate directory `%s'\n", cur->name);
+	      cpp_notice (_("ignoring duplicate directory `%s'\n"), cur->name);
 
 	    prev->next = cur->next;
 	    free (cur->name);
@@ -141,7 +142,7 @@
 	    && cur->dev == other->dev)
           {
 	    if (opts->verbose)
-	      cpp_notice ("ignoring duplicate directory `%s'\n", cur->name);
+	      cpp_notice (_("ignoring duplicate directory `%s'\n"), cur->name);
 
 	    prev->next = cur->next;
 	    free (cur->name);
@@ -159,7 +160,7 @@
 	  if (quote == qtail)
 	    {
 	      if (opts->verbose)
-		cpp_notice ("ignoring duplicate directory `%s'\n",
+		cpp_notice (_("ignoring duplicate directory `%s'\n"),
 			    quote->name);
 
 	      free (quote->name);
@@ -173,7 +174,7 @@
 		  cur = cur->next;
 	      cur->next = brack;
 	      if (opts->verbose)
-		cpp_notice ("ignoring duplicate directory `%s'\n",
+		cpp_notice (_("ignoring duplicate directory `%s'\n"),
 			    qtail->name);
 
 	      free (qtail->name);
@@ -199,12 +200,12 @@
 struct include_hash *
 include_hash (pfile, fname, add)
      cpp_reader *pfile;
-     char *fname;
+     const char *fname;
      int add;
 {
   unsigned int hash = 0;
   struct include_hash *l, *m;
-  char *f = fname;
+  const char *f = fname;
 
   while (*f)
     hash += *f++;
@@ -258,9 +259,9 @@
 redundant_include_p (pfile, ihash, ilist)
      cpp_reader *pfile;
      struct include_hash *ihash;
-     struct file_name_list *ilist;
+     const struct file_name_list *ilist;
 {
-  struct file_name_list *l;
+  const struct file_name_list *l;
   struct include_hash *i;
 
   if (! ihash->foundhere)
@@ -306,7 +307,7 @@
 int
 find_include_file (pfile, fname, search_start, ihash, before)
      cpp_reader *pfile;
-     char *fname;
+     const char *fname;
      struct file_name_list *search_start;
      struct include_hash **ihash;
      int *before;
@@ -379,7 +380,7 @@
 #ifdef EACCES
       if (f == -1 && errno == EACCES)
 	{
-	  cpp_error(pfile, "included file `%s' exists but is not readable",
+	  cpp_error(pfile, _("included file `%s' exists but is not readable"),
 		    name);
 	  return -1;
 	}
@@ -468,7 +469,7 @@
      cpp_reader *pfile;
      const char *dirname;
 {
-  register struct file_name_map_list *map_list_ptr;
+  struct file_name_map_list *map_list_ptr;
   char *name;
   FILE *f;
 
@@ -646,7 +647,7 @@
       if ((unsigned HOST_WIDEST_INT) st_size
 	  != (unsigned HOST_WIDEST_INT) st.st_size)
 	{
-	  cpp_error (pfile, "file `%s' is too large", ihash->name);
+	  cpp_error (pfile, _("file `%s' is too large"), ihash->name);
 	  goto fail;
 	}
     }
@@ -664,7 +665,7 @@
     }
   else
     {
-      cpp_error (pfile, "`%s' is not a file, pipe, or tty", ihash->name);
+      cpp_error (pfile, _("`%s' is not a file, pipe, or tty"), ihash->name);
       goto fail;
     }
 
@@ -715,7 +716,7 @@
 static struct file_name_list *
 actual_directory (pfile, fname)
      cpp_reader *pfile;
-     char *fname;
+     const char *fname;
 {
   char *last_slash, *dir;
   size_t dlen;
@@ -769,8 +770,8 @@
 /* Determine the current line and column.  Used only by read_and_prescan. */
 static void
 find_position (start, limit, linep, colp)
-     U_CHAR *start;
-     U_CHAR *limit;
+     const U_CHAR *start;
+     const U_CHAR *limit;
      unsigned long *linep;
      unsigned long *colp;
 {
@@ -1006,7 +1007,7 @@
 		    find_position (line_base, op, &line, &col);
 		    line_base = op - col;
 		    cpp_warning_with_line (pfile, line, col,
-					   "trigraph ??%c encountered", d);
+					   _("trigraph ??%c encountered"), d);
 		  }
 		if (CPP_OPTIONS (pfile)->trigraphs)
 		  {
@@ -1056,7 +1057,7 @@
     {
       unsigned long col;
       find_position (line_base, op, &line, &col);
-      cpp_warning_with_line (pfile, line, col, "no newline at end of file\n");
+      cpp_warning_with_line (pfile, line, col, _("no newline at end of file\n"));
       if (offset + 1 > len)
 	{
 	  len += 1;
@@ -1072,7 +1073,7 @@
   return op - buf;
 
  too_big:
-  cpp_error (pfile, "file is too large (>%lu bytes)\n", (unsigned long)offset);
+  cpp_error (pfile, _("file is too large (>%lu bytes)\n"), (unsigned long)offset);
   free (buf);
   return -1;
 
@@ -1091,7 +1092,7 @@
 initialize_input_buffer (pfile, fd, st)
      cpp_reader *pfile;
      int fd;
-     struct stat *st;
+     const struct stat *st;
 {
   long pipe_buf;
   U_CHAR *tmp;
@@ -1357,7 +1358,7 @@
 hack_vms_include_specification (fullname)
      char *fullname;
 {
-  register char *basename, *unixname, *local_ptr, *first_slash;
+  char *basename, *unixname, *local_ptr, *first_slash;
   int f, check_filename_before_returning, must_revert;
   char Local[512];
 
Index: cpphash.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/cpphash.c,v
retrieving revision 1.23
diff -u -r1.23 cpphash.c
--- cpphash.c	1999/08/04 20:39:32	1.23
+++ cpphash.c	1999/09/05 01:54:44
@@ -26,6 +26,7 @@
 #include "system.h"
 #include "cpplib.h"
 #include "cpphash.h"
+#include "intl.h"
 #undef abort
 
 static int comp_def_part	 PARAMS ((int, U_CHAR *, int, U_CHAR *,
@@ -90,11 +91,11 @@
 
 int
 hashf (name, len, hashsize)
-     register const U_CHAR *name;
-     register int len;
+     const U_CHAR *name;
+     int len;
      int hashsize;
 {
-  register int r = 0;
+  int r = 0;
 
   while (len--)
     r = HASHSTEP (r, *name++);
@@ -118,8 +119,8 @@
      int len;
      int hash;
 {
-  register const U_CHAR *bp;
-  register HASHNODE *bucket;
+  const U_CHAR *bp;
+  HASHNODE *bucket;
 
   if (len < 0)
     {
@@ -203,15 +204,15 @@
 HASHNODE *
 cpp_install (pfile, name, len, type, value, hash)
      cpp_reader *pfile;
-     U_CHAR *name;
+     const U_CHAR *name;
      int len;
      enum node_type type;
      const char *value;
      int hash;
 {
-  register HASHNODE *hp;
-  register int i, bucket;
-  register U_CHAR *p;
+  HASHNODE *hp;
+  int i, bucket;
+  const U_CHAR *p;
 
   if (len < 0)
     {
@@ -237,7 +238,7 @@
   hp->length = len;
   hp->value.cpval = value;
   hp->name = ((U_CHAR *) hp) + sizeof (HASHNODE);
-  bcopy (name, hp->name, len);
+  memcpy (hp->name, name, len);
   hp->name[len] = 0;
   return hp;
 }
@@ -276,7 +277,7 @@
      struct arglist *arglist;
 {
   DEFINITION *defn;
-  register U_CHAR *p, *lastp, *exp_p;
+  U_CHAR *p, *lastp, *exp_p;
   struct reflist *endpat = NULL;
   /* Pointer to first nonspace after last ## seen.  */
   U_CHAR *concat = 0;
@@ -292,7 +293,7 @@
 
   if (limit < buf)
     {
-      cpp_fatal (pfile, "internal error: limit < buf in collect_expansion");
+      cpp_fatal (pfile, _("internal error: limit < buf in collect_expansion"));
       limit = buf; /* treat it like a null defn */
     }
 
@@ -323,7 +324,7 @@
 
   if (limit - p >= 2 && p[0] == '#' && p[1] == '#')
     {
-      cpp_error (pfile, "`##' at start of macro definition");
+      cpp_error (pfile, _("`##' at start of macro definition"));
       p += 2;
     }
 
@@ -331,7 +332,7 @@
   while (p < limit)
     {
       int skipped_arg = 0;
-      register U_CHAR c = *p++;
+      U_CHAR c = *p++;
 
       *exp_p++ = c;
 
@@ -376,7 +377,7 @@
 		  SKIP_WHITE_SPACE (p);
 		  concat = p;
 		  if (p == limit)
-		    cpp_error (pfile, "`##' at end of macro definition");
+		    cpp_error (pfile, _("`##' at end of macro definition"));
 		}
 	      else if (nargs >= 0)
 		{
@@ -388,7 +389,7 @@
 		      || (*p == 'L' && p + 1 < limit && (p[1] == '\'' ||
 							 p[1] == '"')))
 		    cpp_error (pfile,
-		"`#' operator is not followed by a macro argument name");
+		_("`#' operator is not followed by a macro argument name"));
 		  else
 		    stringify = p;
 		}
@@ -462,7 +463,7 @@
 	  if (is_idstart[c]
 	      && !(id_len == 1 && c == 'L' && (*p == '\'' || *p == '"')))
 	    {
-	      register struct arglist *arg;
+	      struct arglist *arg;
 
 	      for (arg = arglist; arg != NULL; arg = arg->next)
 		{
@@ -478,13 +479,13 @@
 			  if (CPP_TRADITIONAL (pfile))
 			    {
 			      cpp_warning (pfile,
-				       "macro argument `%.*s' is stringified.",
+				       _("macro argument `%.*s' is stringified."),
 					   id_len, arg->name);
 			    }
 			  else
 			    {
 			      cpp_warning (pfile,
-		    "macro arg `%.*s' would be stringified with -traditional.",
+		    _("macro arg `%.*s' would be stringified with -traditional."),
 					   id_len, arg->name);
 			    }
 			}
@@ -513,7 +514,7 @@
 		      tpat->argno = arg->argno;
 		      tpat->nchars = exp_p - lastp;
 		      {
-			register U_CHAR *p1 = p;
+			U_CHAR *p1 = p;
 			SKIP_WHITE_SPACE (p1);
 			if (p1 + 2 <= limit && p1[0] == '#' && p1[1] == '#')
 			  tpat->raw_after = 1;
@@ -528,13 +529,13 @@
 	  /* If this was not a macro arg, copy it into the expansion.  */
 	  if (!skipped_arg)
 	    {
-	      register U_CHAR *lim1 = p;
+	      U_CHAR *lim1 = p;
 	      p = id_beg;
 	      while (p != lim1)
 		*exp_p++ = *p++;
 	      if (stringify == id_beg)
 		cpp_error (pfile,
-		"`#' operator should be followed by a macro argument name");
+		_("`#' operator should be followed by a macro argument name"));
 	    }
 	}
     }
@@ -636,11 +637,11 @@
 	  arg_ptrs = temp;
 
 	  if (rest_args)
-	    cpp_pedwarn (pfile, "another parameter follows `%s'",
+	    cpp_pedwarn (pfile, _("another parameter follows `%s'"),
 			 rest_extension);
 
 	  if (!is_idstart[*bp])
-	    cpp_pedwarn (pfile, "invalid character in macro parameter name");
+	    cpp_pedwarn (pfile, _("invalid character in macro parameter name"));
 
 	  /* Find the end of the arg name.  */
 	  while (is_idchar[*bp])
@@ -663,7 +664,7 @@
 	  if (temp->length == 0 || (*bp != ',' && *bp != ')'))
 	    {
 	      cpp_error (pfile,
-			 "badly punctuated parameter list in `#define'");
+			 _("badly punctuated parameter list in `#define'"));
 	      goto nope;
 	    }
 	  if (*bp == ',')
@@ -673,7 +674,7 @@
 	    }
 	  if (bp >= limit)
 	    {
-	      cpp_error (pfile, "unterminated parameter list in `#define'");
+	      cpp_error (pfile, _("unterminated parameter list in `#define'"));
 	      goto nope;
 	    }
 	  {
@@ -689,7 +690,7 @@
 		  (void) strncpy (name, temp->name, temp->length);
 		  name[temp->length] = '\0';
 		  cpp_error (pfile,
-			     "duplicate argument name `%s' in `#define'",
+			     _("duplicate argument name `%s' in `#define'"),
 			     name);
 		  goto nope;
 		}
@@ -737,7 +738,7 @@
 	    /* Per C9x, missing white space after the name in a #define
 	       of an object-like macro is always a constraint violation. */
 	    cpp_pedwarn (pfile,
-			 "missing white space after `#define %.*s'",
+			 _("missing white space after `#define %.*s'"),
 			 sym_length, symname);
 	}
       /* now everything from bp before limit is the definition.  */
@@ -833,10 +834,10 @@
      U_CHAR *start;
      int length;
 {
-  register U_CHAR *ibp;
-  register U_CHAR *obp;
-  register U_CHAR *limit;
-  register int c;
+  U_CHAR *ibp;
+  U_CHAR *obp;
+  U_CHAR *limit;
+  int c;
 
   ibp = start;
   limit = start + length;
@@ -1012,7 +1013,7 @@
       }
 
     default:
-      cpp_fatal (pfile, "cpplib internal error: invalid special hash type");
+      cpp_fatal (pfile, _("cpplib internal error: invalid special hash type"));
       return;
     }
 }
@@ -1032,7 +1033,7 @@
 {
   int nargs;
   DEFINITION *defn;
-  register U_CHAR *xbuf;
+  U_CHAR *xbuf;
   long start_line, start_column;
   int xbuf_len;
   struct argdata *args;
@@ -1041,7 +1042,7 @@
   int start_line = instack[indepth].lineno;
 #endif
   int rest_args, rest_zero;
-  register int i;
+  int i;
 
 #if 0
   /* This macro is being used inside a #if, which means it must be */
@@ -1110,7 +1111,7 @@
 	  if (token == CPP_EOF || token == CPP_POP)
 	    {
 	      cpp_error_with_line (pfile, start_line, start_column,
-				   "unterminated macro call");
+				   _("unterminated macro call"));
 	      return;
 	    }
 	  i++;
@@ -1120,8 +1121,8 @@
       /* If we got one arg but it was just whitespace, call that 0 args.  */
       if (i == 1)
 	{
-	  register U_CHAR *bp = ARG_BASE + args[0].raw;
-	  register U_CHAR *lim = bp + args[0].raw_length;
+	  U_CHAR *bp = ARG_BASE + args[0].raw;
+	  U_CHAR *lim = bp + args[0].raw_length;
 	  /* cpp.texi says for foo ( ) we provide one argument.
 	     However, if foo wants just 0 arguments, treat this as 0.  */
 	  if (nargs == 0)
@@ -1136,7 +1137,7 @@
       rest_zero = 0;
       if (nargs == 0 && i > 0)
 	{
-	  cpp_error (pfile, "arguments given to macro `%s'", hp->name);
+	  cpp_error (pfile, _("arguments given to macro `%s'"), hp->name);
 	}
       else if (i < nargs)
 	{
@@ -1147,9 +1148,9 @@
 	  else if (i == nargs - 1 && defn->rest_args)
 	    rest_zero = 1;
 	  else if (i == 0)
-	    cpp_error (pfile, "macro `%s' used without args", hp->name);
+	    cpp_error (pfile, _("macro `%s' used without args"), hp->name);
 	  else if (i == 1)
-	    cpp_error (pfile, "macro `%s' used with just one arg", hp->name);
+	    cpp_error (pfile, _("macro `%s' used with just one arg"), hp->name);
 	  else
 	    cpp_error (pfile, "macro `%s' used with only %d args",
 		       hp->name, i);
@@ -1170,12 +1171,12 @@
     }
   else
     {
-      register U_CHAR *exp = defn->expansion;
-      register int offset;	/* offset in expansion,
+      U_CHAR *exp = defn->expansion;
+      int offset;	/* offset in expansion,
 				   copied a piece at a time */
-      register int totlen;	/* total amount of exp buffer filled so far */
+      int totlen;	/* total amount of exp buffer filled so far */
 
-      register struct reflist *ap, *last_ap;
+      struct reflist *ap, *last_ap;
 
       /* Macro really takes args.  Compute the expansion of this call.  */
 
@@ -1186,7 +1187,7 @@
 	{
 	  if (ap->stringify)
 	    {
-	      register struct argdata *arg = &args[ap->argno];
+	      struct argdata *arg = &args[ap->argno];
 	      /* Stringify if it hasn't already been */
 	      if (arg->stringified_length < 0)
 		{
@@ -1302,7 +1303,7 @@
       for (last_ap = NULL, ap = defn->pattern; ap != NULL;
 	   last_ap = ap, ap = ap->next)
 	{
-	  register struct argdata *arg = &args[ap->argno];
+	  struct argdata *arg = &args[ap->argno];
 	  int count_before = totlen;
 
 	  /* Add chars to XBUF.  */
@@ -1417,7 +1418,7 @@
 
 	  if (totlen > xbuf_len)
 	    {
-	      cpp_fatal (pfile, "internal_error: buffer overrun in macroexpand");
+	      cpp_fatal (pfile, _("internal_error: buffer overrun in macroexpand"));
 	      return;
 	    }
 	}
@@ -1506,11 +1507,11 @@
 static void
 push_macro_expansion (pfile, xbuf, xbuf_len, hp)
      cpp_reader *pfile;
-     register U_CHAR *xbuf;
+     U_CHAR *xbuf;
      int xbuf_len;
      HASHNODE *hp;
 {
-  register cpp_buffer *mbuf = cpp_push_buffer (pfile, xbuf, xbuf_len);
+  cpp_buffer *mbuf = cpp_push_buffer (pfile, xbuf, xbuf_len);
   if (mbuf == NULL)
     return;
   mbuf->cleanup = macro_cleanup;
@@ -1560,9 +1561,9 @@
      cpp_reader *pfile;
      DEFINITION *d1, *d2;
 {
-  register struct reflist *a1, *a2;
-  register U_CHAR *p1 = d1->expansion;
-  register U_CHAR *p2 = d2->expansion;
+  struct reflist *a1, *a2;
+  U_CHAR *p1 = d1->expansion;
+  U_CHAR *p2 = d2->expansion;
   int first = 1;
 
   if (d1->nargs != d2->nargs)
@@ -1607,8 +1608,8 @@
      int len1, len2;
      int last;
 {
-  register U_CHAR *end1 = beg1 + len1;
-  register U_CHAR *end2 = beg2 + len2;
+  U_CHAR *end1 = beg1 + len1;
+  U_CHAR *end2 = beg2 + len2;
   if (first)
     {
       while (beg1 != end1 && is_space[*beg1])
Index: cpphash.h
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/cpphash.h,v
retrieving revision 1.12
diff -u -r1.12 cpphash.h
--- cpphash.h	1999/04/26 16:40:58	1.12
+++ cpphash.h	1999/09/05 01:54:44
@@ -48,7 +48,7 @@
 #define HASHSTEP(old, c) ((old << 2) + c)
 #define MAKE_POS(v) (v & 0x7fffffff) /* make number positive */
 
-extern HASHNODE *cpp_install	  PARAMS ((cpp_reader *, U_CHAR *, int,
+extern HASHNODE *cpp_install	  PARAMS ((cpp_reader *, const U_CHAR *, int,
 					   enum node_type, const char *, int));
 extern int hashf		  PARAMS ((const U_CHAR *, int, int));
 extern void delete_macro	  PARAMS ((HASHNODE *));
Index: cppinit.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/cppinit.c,v
retrieving revision 1.16
diff -u -r1.16 cppinit.c
--- cppinit.c	1999/08/04 20:39:32	1.16
+++ cppinit.c	1999/09/05 01:54:44
@@ -198,7 +198,7 @@
 static void print_help                  PARAMS ((void));
 static void path_include		PARAMS ((cpp_reader *,
 						 struct cpp_pending *,
-						 char *, int));
+						 const char *, int));
 static void initialize_builtins		PARAMS ((cpp_reader *));
 static void append_include_chain	PARAMS ((cpp_reader *,
 						 struct cpp_pending *,
@@ -383,10 +383,11 @@
 path_include (pfile, pend, list, path)
      cpp_reader *pfile;
      struct cpp_pending *pend;
-     char *list;
+     const char *list;
      int path;
 {
-  char *p, *q, *name;
+  const char *p, *q;
+  char *name;
 
   p = list;
 
@@ -426,19 +427,19 @@
    DOS and VMS paths on those systems.  */
 static char *
 base_name (fname)
-     const char *fname;
+     char *fname;
 {
-  char *s = (char *)fname;
+  char *s = fname;
   char *p;
 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
   if (ISALPHA (s[0]) && s[1] == ':') s += 2;
-  if ((p = rindex (s, '\\'))) s = p + 1;
+  if ((p = strchr (s, '\\'))) s = p + 1;
 #elif defined VMS
-  if ((p = rindex (s, ':'))) s = p + 1; /* Skip device.  */
-  if ((p = rindex (s, ']'))) s = p + 1; /* Skip directory.  */
-  if ((p = rindex (s, '>'))) s = p + 1; /* Skip alternate (int'n'l) dir.  */
+  if ((p = strchr (s, ':'))) s = p + 1; /* Skip device.  */
+  if ((p = strchr (s, ']'))) s = p + 1; /* Skip directory.  */
+  if ((p = strchr (s, '>'))) s = p + 1; /* Skip alternate (int'n'l) dir.  */
 #endif
-  if ((p = rindex (s, '/'))) s = p + 1;
+  if ((p = strchr (s, '/'))) s = p + 1;
   return s;
 }
      
@@ -463,7 +464,7 @@
       if (errno != ENOENT)
 	cpp_perror_with_name (pfile, dir);
       else if (CPP_OPTIONS (pfile)->verbose)
-	cpp_notice ("ignoring nonexistent directory `%s'\n", dir);
+	cpp_notice (_("ignoring nonexistent directory `%s'\n"), dir);
       return;
     }
 
@@ -519,14 +520,14 @@
 cpp_options_init (opts)
      cpp_options *opts;
 {
-  bzero ((char *) opts, sizeof (struct cpp_options));
+  memset (opts, 0, sizeof (struct cpp_options));
 
   opts->dollars_in_ident = 1;
   opts->cplusplus_comments = 1;
   opts->warn_import = 1;
 
   opts->pending = (struct cpp_pending *) xmalloc (sizeof (struct cpp_pending));
-  bzero ((char *) opts->pending, sizeof (struct cpp_pending));
+  memset (opts->pending, 0, sizeof (struct cpp_pending));
 }
 
 /* Initialize a cpp_reader structure. */
@@ -534,7 +535,7 @@
 cpp_reader_init (pfile)
      cpp_reader *pfile;
 {
-  bzero ((char *) pfile, sizeof (cpp_reader));
+  memset (pfile, 0, sizeof (cpp_reader));
 #if 0
   pfile->get_token = cpp_get_token;
 #endif
@@ -736,7 +737,7 @@
       /* Output P, but remove known suffixes.  */
       q = p + len;
       /* Point to the filename suffix.  */
-      r = rindex (p, '.');
+      r = strchr (p, '.');
       /* Compare against the known suffixes.  */
       for (x = 0; known_suffixes[x]; x++)
 	{
@@ -780,14 +781,14 @@
   if (opts->print_deps_missing_files
       && (opts->print_deps == 0 || !opts->no_output))
     {
-      cpp_fatal (pfile, "-MG must be specified with one of -M or -MM");
+      cpp_fatal (pfile, _("-MG must be specified with one of -M or -MM"));
       return 0;
     }
 
   /* Chill should not be used with -trigraphs. */
   if (opts->chill && opts->trigraphs)
     {
-      cpp_warning (pfile, "-lang-chill and -trigraphs are mutually exclusive");
+      cpp_warning (pfile, _("-lang-chill and -trigraphs are mutually exclusive"));
       opts->trigraphs = 0;
     }
 
@@ -951,14 +952,14 @@
   if (opts->verbose)
     {
       struct file_name_list *p;
-      cpp_message (pfile, -1, "#include \"...\" search starts here:\n");
+      cpp_message (pfile, -1, _("#include \"...\" search starts here:\n"));
       for (p = opts->quote_include; p; p = p->next)
 	{
 	  if (p == opts->bracket_include)
-	    cpp_message (pfile, -1, "#include <...> search starts here:\n");
+	    cpp_message (pfile, -1, _("#include <...> search starts here:\n"));
 	  fprintf (stderr, " %s\n", p->name);
 	}
-      cpp_message (pfile, -1, "End of search list.\n");
+      cpp_message (pfile, -1, _("End of search list.\n"));
     }
 
   /* Don't bother trying to do macro expansion if we've already done
@@ -1101,7 +1102,7 @@
 
   if (CPP_PREV_BUFFER (CPP_BUFFER (pfile)) != CPP_NULL_BUFFER (pfile))
     cpp_fatal (pfile,
-	       "cpplib internal error: buffers still stacked in cpp_finish");
+	       _("cpplib internal error: buffers still stacked in cpp_finish"));
   cpp_pop_buffer (pfile);
   
   if (opts->print_deps)
@@ -1122,7 +1123,7 @@
 	  if (opts->deps_file)
 	    {
 	      if (ferror (deps_stream) || fclose (deps_stream) != 0)
-		cpp_fatal (pfile, "I/O error on output");
+		cpp_fatal (pfile, _("I/O error on output"));
 	    }
 	}
     }
@@ -1164,7 +1165,7 @@
       if (opts->out_fname != NULL)
 	{
 	  print_help ();
-	  cpp_fatal (pfile, "Too many arguments");
+	  cpp_fatal (pfile, _("Too many arguments"));
 	}
       else if (opts->in_fname != NULL)
 	opts->out_fname = argv[i];
@@ -1204,7 +1205,7 @@
 	      }
 	    else
 	      {
-		cpp_fatal (pfile, "-I- specified twice");
+		cpp_fatal (pfile, _("-I- specified twice"));
 		return argc;
 	      }
 	  }
@@ -1341,7 +1342,7 @@
       case 'o':
 	if (opts->out_fname != NULL)
 	  {
-	    cpp_fatal (pfile, "Output filename specified twice");
+	    cpp_fatal (pfile, _("Output filename specified twice"));
 	    return argc;
 	  }
 	if (i + 1 == argc)
@@ -1567,7 +1568,7 @@
 	    o->arg = argv[i] + 2;
 	  else if (i + 1 == argc)
 	    {
-	      cpp_fatal (pfile, "Macro name missing after -D option");
+	      cpp_fatal (pfile, _("Macro name missing after -D option"));
 	      return argc;
 	    }
 	  else
@@ -1587,7 +1588,7 @@
 	    p = argv[i] + 2;
 	  else if (i + 1 == argc)
 	    {
-	      cpp_fatal (pfile, "Assertion missing after -A option");
+	      cpp_fatal (pfile, _("Assertion missing after -A option"));
 	      return argc;
 	    }
 	  else
@@ -1642,7 +1643,7 @@
 	    o->arg = argv[i] + 2;
 	  else if (i + 1 == argc)
 	    {
-	      cpp_fatal (pfile, "Macro name missing after -U option");
+	      cpp_fatal (pfile, _("Macro name missing after -U option"));
 	      return argc;
 	    }
 	  else
@@ -1704,10 +1705,10 @@
   return i + 1;
 
  missing_filename:
-  cpp_fatal (pfile, "Filename missing after `%s' option", argv[i]);
+  cpp_fatal (pfile, _("Filename missing after `%s' option"), argv[i]);
   return argc;
  missing_dirname:
-  cpp_fatal (pfile, "Directory name missing after `%s' option", argv[i]);
+  cpp_fatal (pfile, _("Directory name missing after `%s' option"), argv[i]);
   return argc;
 }
 
Index: cpplib.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/cpplib.c,v
retrieving revision 1.89
diff -u -r1.89 cpplib.c
--- cpplib.c	1999/08/31 19:46:18	1.89
+++ cpplib.c	1999/09/05 01:54:46
@@ -221,13 +221,6 @@
 }
 
 
-static enum cpp_token
-null_underflow (pfile)
-     cpp_reader *pfile ATTRIBUTE_UNUSED;
-{
-  return CPP_EOF;
-}
-
 static int
 null_cleanup (pbuf, pfile)
      cpp_buffer *pbuf ATTRIBUTE_UNUSED;
@@ -259,7 +252,7 @@
 	  c = GETC ();
 	  if (c == EOF)
 	    {
-	      cpp_error_with_line (pfile, line, col, "unterminated comment");
+	      cpp_error_with_line (pfile, line, col, _("unterminated comment"));
 	      return EOF;
 	    }
 	  else if (c == '\n' || c == '\r')
@@ -269,7 +262,7 @@
 	    return ' ';
 	  else if (c == '*' && prev_c == '/'
 		   && CPP_OPTIONS (pfile)->warn_comments)
-	    cpp_warning (pfile, "`/*' within comment");
+	    cpp_warning (pfile, _("`/*' within comment"));
 
 	  prev_c = c;
 	}
@@ -321,7 +314,7 @@
 	  c = GETC ();
 	  if (c == EOF)
 	    {
-	      cpp_error_with_line (pfile, line, col, "unterminated comment");
+	      cpp_error_with_line (pfile, line, col, _("unterminated comment"));
 	      /* We must pretend this was a legitimate comment, so that the
 		 output in token_buffer is not passed back tagged CPP_POP. */
 	      return ' ';
@@ -343,7 +336,7 @@
 	    return ' ';
 	  else if (c == '*' && prev_c == '/'
 		   && CPP_OPTIONS (pfile)->warn_comments)
-	    cpp_warning (pfile, "`/*' within comment");
+	    cpp_warning (pfile, _("`/*' within comment"));
 
 	  prev_c = c;
 	}
@@ -500,7 +493,7 @@
      cpp_reader *pfile;
 {
   int c;
-  register const struct directive *kt;
+  const struct directive *kt;
   int ident_length;
   U_CHAR *ident;
   long old_written = CPP_WRITTEN (pfile);
@@ -512,7 +505,7 @@
     {
       /* Handle # followed by a line number.  */
       if (CPP_PEDANTIC (pfile))
-	cpp_pedwarn (pfile, "`#' followed by integer");
+	cpp_pedwarn (pfile, _("`#' followed by integer"));
       do_line (pfile, NULL);
       return 1;
     }
@@ -562,7 +555,7 @@
      cpp_reader *pfile;
      const struct directive *keyword;
 {
-  register unsigned keyword_length = keyword->length;
+  unsigned keyword_length = keyword->length;
 
   CPP_RESERVE (pfile, 1 + keyword_length + len);
   CPP_PUTC_Q (pfile, '#');
@@ -696,7 +689,7 @@
   cpp_buffer *new;
   if (++pfile->buffer_stack_depth == CPP_STACK_MAX)
     {
-      cpp_fatal (pfile, "macro or `#include' recursion too deep");
+      cpp_fatal (pfile, _("macro or `#include' recursion too deep"));
       return NULL;
     }
 
@@ -704,7 +697,6 @@
 
   new->if_stack = pfile->if_stack;
   new->cleanup = null_cleanup;
-  new->underflow = null_underflow;
   new->buf = new->cur = buffer;
   new->alimit = new->rlimit = buffer + length;
   new->prev = buf;
@@ -786,16 +778,16 @@
 void
 cpp_expand_to_buffer (pfile, buf, length)
      cpp_reader *pfile;
-     U_CHAR *buf;
+     const U_CHAR *buf;
      int length;
 {
-  register cpp_buffer *ip;
+  cpp_buffer *ip;
   U_CHAR *buf1;
   int save_no_output;
 
   if (length < 0)
     {
-      cpp_fatal (pfile, "internal error: length < 0 in cpp_expand_to_buffer");
+      cpp_fatal (pfile, _("internal error: length < 0 in cpp_expand_to_buffer"));
       return;
     }
 
@@ -821,7 +813,7 @@
 
 void
 cpp_buf_line_and_col (pbuf, linep, colp)
-     register cpp_buffer *pbuf;
+     const cpp_buffer *pbuf;
      long *linep, *colp;
 {
   if (pbuf)
@@ -994,9 +986,9 @@
   if (CPP_PEDANTIC (pfile) && !CPP_BUFFER (pfile)->system_header_p)
     {
       if (importing)
-	cpp_pedwarn (pfile, "ANSI C does not allow `#import'");
+	cpp_pedwarn (pfile, _("ANSI C does not allow `#import'"));
       if (skip_dirs)
-	cpp_pedwarn (pfile, "ANSI C does not allow `#include_next'");
+	cpp_pedwarn (pfile, _("ANSI C does not allow `#include_next'"));
     }
 
   if (importing && CPP_OPTIONS (pfile)->warn_import
@@ -1005,7 +997,7 @@
     {
       pfile->import_warning = 1;
       cpp_warning (pfile,
-	   "#import is obsolete, use an #ifndef wrapper in the header file");
+	   _("#import is obsolete, use an #ifndef wrapper in the header file"));
     }
 
   pfile->parsing_include_directive++;
@@ -1023,7 +1015,7 @@
       /* Support '#include xyz' like VAX-C.  It is taken as
          '#include <xyz.h>' and generates a warning.  */
       cpp_warning (pfile,
-	       "`#include filename' is obsolete, use `#include <filename.h>'");
+	       _("`#include filename' is obsolete, use `#include <filename.h>'"));
       angle_brackets = 1;
 
       /* Append the missing `.h' to the name. */
@@ -1046,7 +1038,7 @@
 
   if (get_directive_token (pfile) != CPP_VSPACE)
     {
-      cpp_error (pfile, "junk at end of `#include'");
+      cpp_error (pfile, _("junk at end of `#include'"));
       skip_rest_of_line (pfile);
     }
 
@@ -1054,7 +1046,7 @@
 
   if (flen == 0)
     {
-      cpp_error (pfile, "empty file name in `#%s'", keyword->name);
+      cpp_error (pfile, _("empty file name in `#%s'"), keyword->name);
       return 0;
     }
 
@@ -1085,7 +1077,7 @@
 
   if (fp == CPP_NULL_BUFFER (pfile))
     {
-      cpp_fatal (pfile, "cpp internal error: fp == NULL_BUFFER in do_include");
+      cpp_fatal (pfile, _("cpp internal error: fp == NULL_BUFFER in do_include"));
       return 0;
     }
   
@@ -1101,7 +1093,7 @@
   else
     {
       if (skip_dirs)
-	cpp_warning (pfile, "#include_next in primary source file");
+	cpp_warning (pfile, _("#include_next in primary source file"));
       
       if (angle_brackets)
 	search_start = CPP_OPTIONS (pfile)->bracket_include;
@@ -1119,7 +1111,7 @@
 
   if (!search_start)
     {
-      cpp_error (pfile, "No include path in which to find %s", ftok);
+      cpp_error (pfile, _("No include path in which to find %s"), ftok);
       return 0;
     }
 
@@ -1167,7 +1159,7 @@
       else if (CPP_PRINT_DEPS (pfile)
 	       && (CPP_PRINT_DEPS (pfile)
 		   <= (angle_brackets || (pfile->system_include_depth > 0))))
-	cpp_warning (pfile, "No include path in which to find %s", ftok);
+	cpp_warning (pfile, _("No include path in which to find %s"), ftok);
       else
 	cpp_error_from_errno (pfile, ftok);
 
@@ -1234,7 +1226,7 @@
   else
     {
       if (token != CPP_VSPACE && token != CPP_EOF && token != CPP_POP)
-	cpp_error (pfile, "invalid format `#line' command");
+	cpp_error (pfile, _("invalid format `#line' command"));
       return 0;
     }
 }
@@ -1259,20 +1251,20 @@
 
   if (token != CPP_NUMBER)
     {
-      cpp_error (pfile, "token after `#line' is not an integer");
+      cpp_error (pfile, _("token after `#line' is not an integer"));
       goto bad_line_directive;
     }
 
   new_lineno = strtol (pfile->token_buffer + old_written, &x, 10);
   if (x[0] != '\0')
     {
-      cpp_error (pfile, "token after `#line' is not an integer");
+      cpp_error (pfile, _("token after `#line' is not an integer"));
       goto bad_line_directive;
     }      
   CPP_SET_WRITTEN (pfile, old_written);
 
   if (CPP_PEDANTIC (pfile) && new_lineno <= 0)
-    cpp_pedwarn (pfile, "line number out of range in `#line' command");
+    cpp_pedwarn (pfile, _("line number out of range in `#line' command"));
 
   token = get_directive_token (pfile);
 
@@ -1285,7 +1277,7 @@
       if (read_line_number (pfile, &action_number))
 	{
 	  if (CPP_PEDANTIC (pfile))
-	    cpp_pedwarn (pfile, "garbage at end of `#line' command");
+	    cpp_pedwarn (pfile, _("garbage at end of `#line' command"));
 
 	  if (action_number == 1)
 	    {
@@ -1339,7 +1331,7 @@
     }
   else if (token != CPP_VSPACE && token != CPP_EOF)
     {
-      cpp_error (pfile, "token after `#line %d' is not a string", new_lineno);
+      cpp_error (pfile, _("token after `#line %d' is not a string"), new_lineno);
       goto bad_line_directive;
     }
 
@@ -1376,7 +1368,7 @@
   c = GETC();
   if (! is_idstart[c])
   {
-      cpp_error (pfile, "token after #undef is not an identifier");
+      cpp_error (pfile, _("token after #undef is not an identifier"));
       skip_rest_of_line (pfile);
       return 1;
   }
@@ -1393,7 +1385,7 @@
   token = get_directive_token (pfile);
   if (token != CPP_VSPACE && token != CPP_POP)
   {
-      cpp_pedwarn (pfile, "junk on line after #undef");
+      cpp_pedwarn (pfile, _("junk on line after #undef"));
       skip_rest_of_line (pfile);
   }
 
@@ -1408,7 +1400,7 @@
       if (CPP_OPTIONS (pfile)->debug_output && keyword)
 	pass_thru_directive (name, sym_length, pfile, keyword);
       if (hp->type != T_MACRO)
-	cpp_warning (pfile, "undefining `%s'", hp->name);
+	cpp_warning (pfile, _("undefining `%s'"), hp->name);
       delete_macro (hp);
     }
 
@@ -1468,7 +1460,7 @@
   SKIP_WHITE_SPACE(text);
 
   if (CPP_PEDANTIC (pfile) && !CPP_BUFFER (pfile)->system_header_p)
-    cpp_pedwarn (pfile, "ANSI C does not allow `#warning'");
+    cpp_pedwarn (pfile, _("ANSI C does not allow `#warning'"));
 
   /* Use `pedwarn' not `warning', because #warning isn't in the C Standard;
      if -pedantic-errors is given, #warning should cause an error.  */
@@ -1489,7 +1481,7 @@
 {
   /* Allow #ident in system headers, since that's not user's fault.  */
   if (CPP_PEDANTIC (pfile) && !CPP_BUFFER (pfile)->system_header_p)
-    cpp_pedwarn (pfile, "ANSI C does not allow `#ident'");
+    cpp_pedwarn (pfile, _("ANSI C does not allow `#ident'"));
 
   CPP_PUTS (pfile, "#ident ", 7);
   cpp_skip_hspace (pfile);
@@ -1523,7 +1515,7 @@
       /* Allow #pragma once in system headers, since that's not the user's
 	 fault.  */
       if (!CPP_BUFFER (pfile)->system_header_p)
-	cpp_warning (pfile, "`#pragma once' is obsolete");
+	cpp_warning (pfile, _("`#pragma once' is obsolete"));
       
       for (ip = CPP_BUFFER (pfile); ; ip = CPP_PREV_BUFFER (ip))
         {
@@ -1534,7 +1526,7 @@
 	}
 
       if (CPP_PREV_BUFFER (ip) == CPP_NULL_BUFFER (pfile))
-	cpp_warning (pfile, "`#pragma once' outside include file");
+	cpp_warning (pfile, _("`#pragma once' outside include file"));
       else
 	ip->ihash->control_macro = "";  /* never repeat */
     }
@@ -1558,7 +1550,7 @@
       ptr = include_hash (pfile, fcopy, 0);
       if (ptr)
         cpp_warning (pfile,
-	  "`#pragma implementation' for `%s' appears after file is included",
+	  _("`#pragma implementation' for `%s' appears after file is included"),
 		     fcopy);
     }
 
@@ -1574,7 +1566,7 @@
      const struct directive *keyword ATTRIBUTE_UNUSED;
 {
   if (CPP_PEDANTIC (pfile))
-    cpp_pedwarn (pfile, "ANSI C does not allow `#sccs'");
+    cpp_pedwarn (pfile, _("ANSI C does not allow `#sccs'"));
   skip_rest_of_line (pfile);
   return 0;
 }
@@ -1690,11 +1682,11 @@
      const struct directive *keyword ATTRIBUTE_UNUSED;
 {
   if (pfile->if_stack == CPP_BUFFER (pfile)->if_stack) {
-    cpp_error (pfile, "`#elif' not within a conditional");
+    cpp_error (pfile, _("`#elif' not within a conditional"));
     return 0;
   } else {
     if (pfile->if_stack->type != T_IF && pfile->if_stack->type != T_ELIF) {
-      cpp_error (pfile, "`#elif' after `#else'");
+      cpp_error (pfile, _("`#elif' after `#else'"));
 #if 0
       fprintf (stderr, " (matches line %d", pfile->if_stack->lineno);
 #endif
@@ -1778,7 +1770,7 @@
     {
       skip = (keyword->type == T_IFDEF);
       if (! CPP_TRADITIONAL (pfile))
-	cpp_pedwarn (pfile, "`#%s' with no argument", keyword->name);
+	cpp_pedwarn (pfile, _("`#%s' with no argument"), keyword->name);
     }
   else if (token == CPP_NAME)
     {
@@ -1794,7 +1786,7 @@
     {
       skip = (keyword->type == T_IFDEF);
       if (! CPP_TRADITIONAL (pfile))
-	cpp_error (pfile, "`#%s' with invalid argument", keyword->name);
+	cpp_error (pfile, _("`#%s' with invalid argument"), keyword->name);
     }
 
   if (!CPP_TRADITIONAL (pfile))
@@ -1802,7 +1794,7 @@
       cpp_skip_hspace (pfile);
       c = PEEKC ();
       if (c != EOF && c != '\n')
-	cpp_pedwarn (pfile, "garbage at end of `#%s' argument", keyword->name);
+	cpp_pedwarn (pfile, _("garbage at end of `#%s' argument"), keyword->name);
     }
   skip_rest_of_line (pfile);
 
@@ -1929,7 +1921,7 @@
 
     /* Don't let erroneous code go by.	*/
     if (!CPP_OPTIONS (pfile)->lang_asm && CPP_PEDANTIC (pfile))
-	cpp_pedwarn (pfile, "invalid preprocessor directive name");
+	cpp_pedwarn (pfile, _("invalid preprocessor directive name"));
     return 0;
 }
 
@@ -2033,7 +2025,7 @@
   skip_rest_of_line (pfile);
 
   if (pfile->if_stack == CPP_BUFFER (pfile)->if_stack) {
-    cpp_error (pfile, "`#else' not within a conditional");
+    cpp_error (pfile, _("`#else' not within a conditional"));
     return 0;
   } else {
     /* #ifndef can't have its special treatment for containing the whole file
@@ -2073,7 +2065,7 @@
   skip_rest_of_line (pfile);
 
   if (pfile->if_stack == CPP_BUFFER (pfile)->if_stack)
-    cpp_error (pfile, "unbalanced `#endif'");
+    cpp_error (pfile, _("unbalanced `#endif'"));
   else
     {
       IF_STACK_FRAME *temp = pfile->if_stack;
@@ -2128,7 +2120,7 @@
   c = PEEKC ();
   if (c != EOF && c != '\n')
     cpp_pedwarn (pfile,
-		 "text following `%s' violates ANSI standard", directive);
+		 _("text following `%s' violates ANSI standard"), directive);
 }
 
 /* Get the next token, and add it to the text in pfile->token_buffer.
@@ -2138,7 +2130,7 @@
 cpp_get_token (pfile)
      cpp_reader *pfile;
 {
-  register int c, c2, c3;
+  int c, c2, c3;
   enum cpp_token token;
   struct cpp_options *opts = CPP_OPTIONS (pfile);
 
@@ -2328,7 +2320,7 @@
 		  if (c == '\n' || c == EOF)
 		    {
 		      cpp_error (pfile,
-				 "missing '>' in `#include <FILENAME>'");
+				 _("missing '>' in `#include <FILENAME>'"));
 		      break;
 		    }
 		  else if (c == '\r')
@@ -2346,7 +2338,7 @@
 			  int d = GETC();
 			  if (d != '-' && d != ' ')
 			    cpp_fatal (pfile,
-				  "internal error: unrecognized escape \\r%c",
+				  _("internal error: unrecognized escape \\r%c"),
 				       d);
 			  CPP_ADJUST_WRITTEN (pfile, -1);
 			}			  
@@ -2605,7 +2597,7 @@
 	      else
 		{
 		  cpp_fatal (pfile,
-			     "internal error: unrecognized escape \\r%c", c);
+			     _("internal error: unrecognized escape \\r%c"), c);
 		  goto get_next;
 		}
 	    }
@@ -2680,7 +2672,7 @@
       }
 
       if (c == '$' && CPP_PEDANTIC (pfile))
-	cpp_pedwarn (pfile, "`$' in identifier");
+	cpp_pedwarn (pfile, _("`$' in identifier"));
 
       CPP_RESERVE(pfile, 2); /* One more for final NUL.  */
       CPP_PUTC_Q (pfile, c);
@@ -2723,12 +2715,12 @@
 	  if (!CPP_TRADITIONAL (pfile))
 	    {
 	      cpp_error_with_line (pfile, start_line, start_column,
-				 "unterminated string or character constant");
+				 _("unterminated string or character constant"));
 	      if (pfile->multiline_string_line != start_line
 		  && pfile->multiline_string_line != 0)
 		cpp_error_with_line (pfile,
 				     pfile->multiline_string_line, -1,
-			       "possible real start of unterminated constant");
+			       _("possible real start of unterminated constant"));
 	      pfile->multiline_string_line = 0;
 	    }
 	  break;
@@ -2747,13 +2739,13 @@
 	  if (c == '\'')
 	    {
 	      cpp_error_with_line (pfile, start_line, start_column,
-				   "unterminated character constant");
+				   _("unterminated character constant"));
 	      return;
 	    }
 	  if (CPP_PEDANTIC (pfile) && pfile->multiline_string_line == 0)
 	    {
 	      cpp_pedwarn_with_line (pfile, start_line, start_column,
-				     "string constant runs past end of line");
+				     _("string constant runs past end of line"));
 	    }
 	  if (pfile->multiline_string_line == 0)
 	    pfile->multiline_string_line = start_line;
@@ -2764,7 +2756,7 @@
 	  if (CPP_BUFFER (pfile)->has_escapes)
 	    {
 	      cpp_fatal (pfile,
-			 "internal error: \\r escape inside string constant");
+			 _("internal error: \\r escape inside string constant"));
 	      FORWARD(1);
 	    }
 	  else
@@ -2802,7 +2794,7 @@
   c = PEEKC();
   if (! is_idstart[c])
     {
-      cpp_error (pfile, "assertion predicate is not an identifier");
+      cpp_error (pfile, _("assertion predicate is not an identifier"));
       return 0;
     }
   CPP_PUTC(pfile, '#');
@@ -2835,7 +2827,7 @@
       else if (c == '\n' || c == EOF)
 	{
 	  if (c == '\n') FORWARD(-1);
-	  cpp_error (pfile, "un-terminated assertion answer");
+	  cpp_error (pfile, _("un-terminated assertion answer"));
 	  return 0;
 	}
       else if (c == '\r')
@@ -2852,7 +2844,7 @@
     pfile->limit[-1] = ')';
   else if (pfile->limit[-1] == '(')
     {
-      cpp_error (pfile, "empty token sequence in assertion");
+      cpp_error (pfile, _("empty token sequence in assertion"));
       return 0;
     }
   else
@@ -2874,7 +2866,7 @@
 
   if (CPP_PEDANTIC (pfile) && CPP_OPTIONS (pfile)->done_initializing
       && !CPP_BUFFER (pfile)->system_header_p)
-    cpp_pedwarn (pfile, "ANSI C does not allow `#assert'");
+    cpp_pedwarn (pfile, _("ANSI C does not allow `#assert'"));
 
   cpp_skip_hspace (pfile);
   sym = (char *) CPP_PWRITTEN (pfile);	/* remember where it starts */
@@ -2883,7 +2875,7 @@
     goto error;
   else if (ret == 1)
     {
-      cpp_error (pfile, "missing token-sequence in `#assert'");
+      cpp_error (pfile, _("missing token-sequence in `#assert'"));
       goto error;
     }
 
@@ -2891,7 +2883,7 @@
   c = PEEKC();
   if (c != EOF && c != '\n')
     {
-      cpp_error (pfile, "junk at end of `#assert'");
+      cpp_error (pfile, _("junk at end of `#assert'"));
       goto error;
     }
 
@@ -2900,7 +2892,7 @@
   this = cpp_lookup (pfile, sym, thislen, -1);
   if (this)
     {
-      cpp_warning (pfile, "`%s' re-asserted", sym);
+      cpp_warning (pfile, _("`%s' re-asserted"), sym);
       goto error;
     }
 
@@ -2911,7 +2903,7 @@
   {
     /* Token clash - but with what?! */
     cpp_fatal (pfile,
-	       "cpp internal error: base->type != T_ASSERT in do_assert");
+	       _("cpp internal error: base->type != T_ASSERT in do_assert"));
     goto error;
   }
 
@@ -2940,7 +2932,7 @@
   
   if (CPP_PEDANTIC (pfile) && CPP_OPTIONS (pfile)->done_initializing
       && !CPP_BUFFER (pfile)->system_header_p)
-    cpp_pedwarn (pfile, "ANSI C does not allow `#unassert'");
+    cpp_pedwarn (pfile, _("ANSI C does not allow `#unassert'"));
 
   cpp_skip_hspace (pfile);
 
@@ -2952,7 +2944,7 @@
   cpp_skip_hspace (pfile);
   c = PEEKC ();
   if (c != EOF && c != '\n')
-      cpp_error (pfile, "junk at end of `#unassert'");
+      cpp_error (pfile, _("junk at end of `#unassert'"));
 
   thislen = strlen (sym);
   if (ret == 1)
@@ -3041,7 +3033,7 @@
   cpp_buffer *ip = CPP_BUFFER (pfile);
   if (ip->mark != -1)
       cpp_fatal (pfile,
-		 "cpp internal error: ip->mark != -1 in parse_set_mark");
+		 _("cpp internal error: ip->mark != -1 in parse_set_mark"));
 
   ip->mark = ip->cur - ip->buf;
 }
@@ -3055,7 +3047,7 @@
   cpp_buffer *ip = CPP_BUFFER (pfile);
   if (ip->mark == -1)
       cpp_fatal (pfile,
-		 "cpp internal error: ip->mark == -1 in parse_clear_mark");
+		 _("cpp internal error: ip->mark == -1 in parse_clear_mark"));
 
   ip->mark = -1;
 }
@@ -3070,7 +3062,7 @@
   cpp_buffer *ip = CPP_BUFFER (pfile);
   if (ip->mark == -1)
       cpp_fatal (pfile,
-		 "cpp internal error: ip->mark == -1 in parse_goto_mark");
+		 _("cpp internal error: ip->mark == -1 in parse_goto_mark"));
 
   ip->cur = ip->buf + ip->mark;
   ip->mark = -1;
Index: cpplib.h
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/cpplib.h,v
retrieving revision 1.39
diff -u -r1.39 cpplib.h
--- cpplib.h	1999/07/20 19:12:59	1.39
+++ cpplib.h	1999/09/05 01:54:46
@@ -69,7 +69,6 @@
   CPP_POP
 };
 
-typedef enum cpp_token (*parse_underflow_t) PARAMS((cpp_reader *));
 typedef int (*parse_cleanup_t) PARAMS((cpp_buffer *, cpp_reader *));
 
 extern void parse_set_mark	PARAMS ((cpp_reader *));
@@ -111,7 +110,6 @@
   long lineno; /* Line number at CPP_LINE_BASE. */
   long colno; /* Column number at CPP_LINE_BASE. */
   long mark;  /* Saved position for lengthy backtrack. */
-  parse_underflow_t underflow;
   parse_cleanup_t cleanup;
   void *data;
   
@@ -154,7 +152,6 @@
 
 struct cpp_reader
 {
-  parse_underflow_t get_token;
   cpp_buffer *buffer;
   cpp_options *opts;
 
@@ -558,7 +555,7 @@
 
 /* Name under which this program was invoked.  */
 
-extern char *progname;
+extern const char *progname;
 
 /* The structure of a node in the hash table.  The hash table
    has entries for all tokens defined by #define commands (type T_MACRO),
@@ -692,7 +689,7 @@
 };
 typedef struct if_stack IF_STACK_FRAME;
 
-extern void cpp_buf_line_and_col PARAMS((cpp_buffer *, long *, long *));
+extern void cpp_buf_line_and_col PARAMS((const cpp_buffer *, long *, long *));
 extern cpp_buffer* cpp_file_buffer PARAMS((cpp_reader *));
 extern void cpp_define PARAMS ((cpp_reader *, unsigned char *));
 extern void cpp_assert PARAMS ((cpp_reader *, unsigned char *));
@@ -735,7 +732,7 @@
 extern void cpp_finish PARAMS ((cpp_reader *));
 
 extern void quote_string		PARAMS ((cpp_reader *, const char *));
-extern void cpp_expand_to_buffer	PARAMS ((cpp_reader *, U_CHAR *, int));
+extern void cpp_expand_to_buffer	PARAMS ((cpp_reader *, const U_CHAR *, int));
 extern void cpp_scan_buffer		PARAMS ((cpp_reader *));
 extern int check_macro_name		PARAMS ((cpp_reader *, U_CHAR *, int));
 
@@ -749,22 +746,22 @@
   ATTRIBUTE_PRINTF_2;
 extern void cpp_message PVPROTO ((cpp_reader *, int, const char *, ...))
   ATTRIBUTE_PRINTF_3;
-extern void cpp_pfatal_with_name PROTO ((cpp_reader *, const char *));
-extern void cpp_file_line_for_message PROTO ((cpp_reader *, char *, int, int));
+extern void cpp_pfatal_with_name PROTO ((cpp_reader *, const char *)) ATTRIBUTE_NORETURN;
+extern void cpp_file_line_for_message PROTO ((cpp_reader *, const char *, int, int));
 extern void cpp_print_containing_files PROTO ((cpp_reader *));
 extern void cpp_notice PVPROTO ((const char *msgid, ...)) ATTRIBUTE_PRINTF_1;
 
 /* In cppfiles.c */
 extern void simplify_pathname		PROTO ((char *));
 extern void merge_include_chains	PROTO ((struct cpp_options *));
-extern int find_include_file		PROTO ((cpp_reader *, char *,
+extern int find_include_file		PROTO ((cpp_reader *, const char *,
 						struct file_name_list *,
 						struct include_hash **,
 						int *));
 extern int finclude			PROTO ((cpp_reader *, int,
 					        struct include_hash *));
 extern void deps_output			PROTO ((cpp_reader *, char *, int));
-extern struct include_hash *include_hash PROTO ((cpp_reader *, char *, int));
+extern struct include_hash *include_hash PROTO ((cpp_reader *, const char *, int));
 
 #ifndef INCLUDE_LEN_FUDGE
 #define INCLUDE_LEN_FUDGE 0
Index: cppmain.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/cppmain.c,v
retrieving revision 1.17
diff -u -r1.17 cppmain.c
--- cppmain.c	1999/08/04 20:39:33	1.17
+++ cppmain.c	1999/09/05 01:54:46
@@ -32,7 +32,7 @@
 #include "cpplib.h"
 #include "intl.h"
 
-char *progname;
+const char *progname;
 
 cpp_reader parse_in;
 cpp_options options;
@@ -65,7 +65,7 @@
   
   argi += cpp_handle_options (&parse_in, argc - argi , argv + argi);
   if (argi < argc && ! CPP_FATAL_ERRORS (&parse_in))
-    cpp_fatal (&parse_in, "Invalid option `%s'", argv[argi]);
+    cpp_fatal (&parse_in, _("Invalid option `%s'"), argv[argi]);
   if (CPP_FATAL_ERRORS (&parse_in))
     exit (FATAL_EXIT_CODE);
       
Index: cppspec.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/cppspec.c,v
retrieving revision 1.6
diff -u -r1.6 cppspec.c
--- cppspec.c	1999/08/24 05:31:03	1.6
+++ cppspec.c	1999/09/05 01:54:46
@@ -124,7 +124,7 @@
 		need_E = 0;
 	      else if (argv[i][1] == 'S' || argv[i][1] == 'c')
 		{
-		  (*errfn) ("`%s' is not a legal option to the preprocessor",
+		  (*errfn) (_("`%s' is not a legal option to the preprocessor"),
 			    argv[i]);
 		  return;
 		}
@@ -148,7 +148,7 @@
 	  seen_input++;
 	  if (seen_input == 3)
 	    {
-	      (*errfn) ("too many input files");
+	      (*errfn) (_("too many input files"));
 	      return;
 	    }
 	  else if (seen_input == 2)

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