Bladeren bron

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.)

dtrg 19 jaren geleden
bovenliggende
commit
779fe568fc
1 gewijzigde bestanden met toevoegingen van 6 en 3 verwijderingen
  1. 6 3
      util/ceg/EM_parser/common/scan.c

+ 6 - 3
util/ceg/EM_parser/common/scan.c

@@ -29,17 +29,19 @@ int yylineno = 1;
 static char buf[BUF_SIZE],	/* Bufer to save backc()-characters */
             *bufptr = buf;	/* Pointer to space for backc()-character */
 
-static FILE *infile = stdin;
+static FILE *infile = NULL;
 
 
 
 
 static char nextc()
 {
+	FILE* fp = infile ? infile : stdin;
+	
 	if ( bufptr > buf)
 		return( *--bufptr);
 	else
-		return( getc( infile));
+		return( getc( fp));
 }
 
 
@@ -93,11 +95,12 @@ FILE *new;
  */
 
 {
+	FILE* fp = infile ? infile : stdin;
 	char *ptr; FILE *old;
 
 	/* Clean buf[] */
 	for ( ptr = buf; ptr < bufptr; ptr++)
-		if ( ungetc( *ptr, infile) == EOF && *ptr != EOF)
+		if ( ungetc( *ptr, fp) == EOF && *ptr != EOF)
 			return( NULL);
 
 	bufptr = buf;