Removed an assumption that 'stdin' is a constant, which it's not on Linux. (You can't use it as an initialiser when declaring a global variable.)
This commit is contained in:
parent
9bc8c07deb
commit
779fe568fc
|
@ -29,17 +29,19 @@ int yylineno = 1;
|
||||||
static char buf[BUF_SIZE], /* Bufer to save backc()-characters */
|
static char buf[BUF_SIZE], /* Bufer to save backc()-characters */
|
||||||
*bufptr = buf; /* Pointer to space for backc()-character */
|
*bufptr = buf; /* Pointer to space for backc()-character */
|
||||||
|
|
||||||
static FILE *infile = stdin;
|
static FILE *infile = NULL;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static char nextc()
|
static char nextc()
|
||||||
{
|
{
|
||||||
|
FILE* fp = infile ? infile : stdin;
|
||||||
|
|
||||||
if ( bufptr > buf)
|
if ( bufptr > buf)
|
||||||
return( *--bufptr);
|
return( *--bufptr);
|
||||||
else
|
else
|
||||||
return( getc( infile));
|
return( getc( fp));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -93,11 +95,12 @@ FILE *new;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
{
|
{
|
||||||
|
FILE* fp = infile ? infile : stdin;
|
||||||
char *ptr; FILE *old;
|
char *ptr; FILE *old;
|
||||||
|
|
||||||
/* Clean buf[] */
|
/* Clean buf[] */
|
||||||
for ( ptr = buf; ptr < bufptr; ptr++)
|
for ( ptr = buf; ptr < bufptr; ptr++)
|
||||||
if ( ungetc( *ptr, infile) == EOF && *ptr != EOF)
|
if ( ungetc( *ptr, fp) == EOF && *ptr != EOF)
|
||||||
return( NULL);
|
return( NULL);
|
||||||
|
|
||||||
bufptr = buf;
|
bufptr = buf;
|
||||||
|
|
Loading…
Reference in a new issue