-/* scan.c - Utility functions for scan-decls and patch-header programs.
- Copyright (C) 1993 Free Software Foundation, Inc.
+/* Utility functions for scan-decls and fix-header programs.
+ Copyright (C) 1993, 1994 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
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
-Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "scan.h"
+#include "hconfig.h"
#include <ctype.h>
int lineno = 1;
*d = 0;
}
-memory_full ()
-{
- abort();
-}
-
-char *
-xmalloc (size)
- unsigned size;
-{
- register char *ptr = (char *) malloc (size);
- if (ptr != 0) return (ptr);
- memory_full ();
- /*NOTREACHED*/
- return 0;
-}
-
-
-char *
-xrealloc (old, size)
- char *old;
- unsigned size;
-{
- register char *ptr = (char *) realloc (old, size);
- if (ptr != 0) return (ptr);
- memory_full ();
- /*NOTREACHED*/
- return 0;
-}
-
int
scan_ident (fp, s, c)
register FILE *fp;
return c;
}
-/* Skip horizontal white spaces (spaces, tabs, and C-style comments). */
+/* Skip horizontal white spaces (spaces, tabs, and C-style comments). */
int
skip_spaces (fp, c)
s->ptr = s->base;
retry:
c = ' ';
- again:
c = skip_spaces (fp, c);
if (c == '\n')
{
c = get_token (fp, s);
if (c == INT_TOKEN)
{
- source_lineno = atoi (s->base);
+ source_lineno = atoi (s->base) - 1; /* '\n' will add 1 */
get_token (fp, &source_filename);
}
for (;;)
if (c == EOF)
return EOF;
if (c == '\n')
+ {
+ source_lineno++;
+ lineno++;
goto retry;
+ }
}
}
if (c == EOF)
}
if (c == '\'' || c == '"')
{
- int quote = c;
c = scan_string (fp, s, c);
ungetc (c, fp);
return c == '\'' ? CHAR_TOKEN : STRING_TOKEN;
*s->ptr = 0;
return c;
}
-
-unsigned long
-hash (str)
- char *str;
-{
- int h = 0;
- /* Replace this with something faster/better! FIXME! */
- while (*str) h = (h << 3) + *str++;
- return h & 0x7FFFFFFF;
-}