OSDN Git Service

Use C fixincludes for UnixWare 7.
[pf3gnuchains/gcc-fork.git] / gcc / scan.c
index 9f89d67..4af6a43 100644 (file)
@@ -1,5 +1,5 @@
 /* Utility functions for scan-decls and fix-header programs.
-   Copyright (C) 1993, 1994 Free Software Foundation, Inc.
+   Copyright (C) 1993, 1994, 1998 Free Software Foundation, Inc.
 
 This program is free software; you can redistribute it and/or modify it
 under the terms of the GNU General Public License as published by the
@@ -35,10 +35,7 @@ make_sstring_space (str, count)
   if (new_size <= cur_size)
     return;
   
-  if (str->base == NULL)
-    str->base = xmalloc (new_size);
-  else
-    str->base = xrealloc (str->base, new_size);
+  str->base = xrealloc (str->base, new_size);
   str->ptr = str->base + cur_size;
   str->limit = str->base + new_size;
 }
@@ -65,13 +62,13 @@ scan_ident (fp, s, c)
      int c;
 {
   s->ptr = s->base;
-  if (isalpha(c) || c == '_')
+  if (ISALPHA(c) || c == '_')
     {
       for (;;)
        {
          SSTRING_PUT(s, c);
          c = getc (fp);
-         if (c == EOF || !(isalnum(c) || c == '_'))
+         if (c == EOF || !(ISALNUM(c) || c == '_'))
            break;
        }
     }
@@ -210,18 +207,18 @@ get_token (fp, s)
     }
   if (c == EOF)
     return EOF;
-  if (isdigit (c))
+  if (ISDIGIT (c))
     {
       do
        {
          SSTRING_PUT(s, c);
          c = getc (fp);
-       } while (c != EOF && isdigit(c));
+       } while (c != EOF && ISDIGIT(c));
       ungetc (c, fp);
       c = INT_TOKEN;
       goto done;
     }
-  if (isalpha (c) || c == '_')
+  if (ISALPHA (c) || c == '_')
     {
       c = scan_ident (fp, s, c);
       ungetc (c, fp);
@@ -239,3 +236,18 @@ get_token (fp, s)
   *s->ptr = 0;
   return c;
 }
+
+unsigned int
+hashstr (str, len)
+     const char *str;
+     unsigned int len;
+{
+  unsigned int n = len;
+  unsigned int r = 0;
+  const unsigned char *s = (const unsigned char *)str;
+
+  do
+    r = r * 67 + (*s++ - 113);
+  while (--n);
+  return r + len;
+}