]> git.saurik.com Git - bison.git/commitdiff
("@output ".*\n): Don't close standard output.
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 1 Jan 2005 09:23:16 +0000 (09:23 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 1 Jan 2005 09:23:16 +0000 (09:23 +0000)
src/scan-skel.l

index 3191f819204281932f00740e24485cf78d13ec53..d860c08a55313db2a1f6c576a9d853115615c390 100644 (file)
@@ -1,6 +1,6 @@
 /* Scan Bison Skeletons.                                       -*- C -*-
 
 /* Scan Bison Skeletons.                                       -*- C -*-
 
-   Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
 
 
    This file is part of Bison, the GNU Compiler Compiler.
 
@@ -59,9 +59,12 @@ int skel_lex (void);
        fatal ("invalid token in skeleton: %s", yytext);
     }
 
        fatal ("invalid token in skeleton: %s", yytext);
     }
 
-  free (outname);
+  if (outname)
+    {
+      free (outname);
+      xfclose (yyout);
+    }
   outname = xstrdup (filename);
   outname = xstrdup (filename);
-  xfclose (yyout);
   yyout = xfopen (outname, "w");
   lineno = 1;
 }
   yyout = xfopen (outname, "w");
   lineno = 1;
 }
@@ -73,14 +76,14 @@ int skel_lex (void);
 "@oline@"  fprintf (yyout, "%d", lineno + 1);
 "@ofile@"  QPUTS (outname);
 "@output_parser_name@" QPUTS (parser_file_name);
 "@oline@"  fprintf (yyout, "%d", lineno + 1);
 "@ofile@"  QPUTS (outname);
 "@output_parser_name@" QPUTS (parser_file_name);
-"@output_header_name@"  QPUTS (spec_defines_file);
+"@output_header_name@" QPUTS (spec_defines_file);
 
   /* This pattern must not match more than the previous @ patterns. */
 @[^{}@\n]* fatal ("invalid @ in skeleton: %s", yytext);
 \n        lineno++; ECHO;
 [^@\n]+           ECHO;
 
 
   /* This pattern must not match more than the previous @ patterns. */
 @[^{}@\n]* fatal ("invalid @ in skeleton: %s", yytext);
 \n        lineno++; ECHO;
 [^@\n]+           ECHO;
 
-<<EOF>>           xfclose (yyout); free (outname); return EOF;
+<<EOF>>           free (outname); xfclose (yyout); return EOF;
 %%
 
 /*------------------------.
 %%
 
 /*------------------------.