Commit c5168e64 by Nick Clifton Committed by Nick Clifton

Change HANDLE_PRAGMA macro so that it supports USE_CPPLIB

From-SVN: r22167
parent ae4d12ca
Wed Sep 02 09:25:29 1998 Nick Clifton <nickc@cygnus.com>
* lex.c (check_newline): Change how HANDLE_PRAGMA is called.
Generate warning messages if unknown pragmas are encountered.
(pragma_getc): New function: retrieves characters from the
input stream. Defined when HANDLE_PRAGMA is defined.
(pragma_ungetc): New function: replaces characters back into the
input stream. Defined when HANDLE_PRAGMA is defined.
Mon Aug 31 15:35:16 1998 Dave Brolley <brolley@cygnus.com> Mon Aug 31 15:35:16 1998 Dave Brolley <brolley@cygnus.com>
* decl.c (layout_chill_variants): Calculate nlables properly. * decl.c (layout_chill_variants): Calculate nlables properly.
......
/* Lexical analyzer for GNU CHILL. -*- C -*- /* Lexical analyzer for GNU CHILL. -*- C -*-
Copyright (C) 1992, 93, 1994 Free Software Foundation, Inc. Copyright (C) 1992, 93, 1994, 1998 Free Software Foundation, Inc.
This file is part of GNU CC. This file is part of GNU CC.
...@@ -1495,6 +1495,22 @@ getlc (file) ...@@ -1495,6 +1495,22 @@ getlc (file)
return c; return c;
} }
#if defined HANDLE_PRAGMA
/* Local versions of these macros, that can be passed as function pointers. */
static int
pragma_getc ()
{
return getc (finput);
}
static void
pragma_ungetc (arg)
int arg;
{
ungetc (arg, finput);
}
#endif /* HANDLE_PRAGMA */
/* At the beginning of a line, increment the line number and process /* At the beginning of a line, increment the line number and process
any #-directive on this line. If the line is a #-directive, read any #-directive on this line. If the line is a #-directive, read
the entire line and return a newline. Otherwise, return the line's the entire line and return a newline. Otherwise, return the line's
...@@ -1553,10 +1569,28 @@ check_newline () ...@@ -1553,10 +1569,28 @@ check_newline ()
&& (isspace (c = getlc (finput)))) && (isspace (c = getlc (finput))))
{ {
#ifdef HANDLE_PRAGMA #ifdef HANDLE_PRAGMA
return HANDLE_PRAGMA (finput, c); static char buffer [128];
#else char * buff = buffer;
goto skipline;
/* Read the pragma name into a buffer. */
while (isspace (c = getlc (finput)))
continue;
do
{
* buff ++ = c;
c = getlc (finput);
}
while (c != EOF && ! isspace (c) && c != '\n'
&& buff < buffer + 128);
pragma_ungetc (c);
* -- buff = 0;
(void) HANDLE_PRAGMA (pragma_getc, pragma_ungetc, buffer);
#endif /* HANDLE_PRAGMA */ #endif /* HANDLE_PRAGMA */
goto skipline;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment