Ideally, this should be done by m4_quotearg.
* src/scan-skel.l: Include quotearg.h.
Quote __ofile__.
* src/output.c (symbol_printers_output)
(symbol_destructors_output): Quote the file name.
+2002-11-06 Akim Demaille <akim@epita.fr>
+
+ #line should have quoted strings.
+ Ideally, this should be done by m4_quotearg.
+
+ * src/scan-skel.l: Include quotearg.h.
+ Quote __ofile__.
+ * src/output.c (symbol_printers_output)
+ (symbol_destructors_output): Quote the file name.
+
2002-11-06 Akim Demaille <akim@epita.fr>
* tests/regression.at (Invalid inputs): Adjust to the recent
* --no-line works properly.
-Changes in version 1.75a, 2002-10-24:
-
-* Bison can no longer be built by a K&R C compiler; it requires C89 or
- later to be built. This change originally took place a few versions
- ago, but nobody noticed until we recently asked someone to try
- building Bison with a K&R C compiler.
-
* %error-verbose
This new directive is preferred over YYERROR_VERBOSE.
* #line
Bison now recognizes #line in its input, and forwards them.
+* #line
+ File names are properly escaped. E.g. foo\bar.y give #line 123 "foo\\bar.y".
+
+Changes in version 1.75a, 2002-10-24:
+
+* Bison can no longer be built by a K&R C compiler; it requires C89 or
+ later to be built. This change originally took place a few versions
+ ago, but nobody noticed until we recently asked someone to try
+ building Bison with a K&R C compiler.
+
Changes in version 1.75, 2002-10-14:
* Bison should now work on 64-bit hosts.
destructor, typename. */
fprintf (out, "%s[[[%s]], [[%d]], [[%s]], [[%d]], [[%s]], [[%s]]]",
first ? "" : ",\n",
- symbol->destructor_location.file,
+ quotearg_style (escape_quoting_style,
+ symbol->destructor_location.file),
symbol->destructor_location.first_line,
symbol->tag,
symbol->number,
printer, typename. */
fprintf (out, "%s[[[%s]], [[%d]], [[%s]], [[%d]], [[%s]], [[%s]]]",
first ? "" : ",\n",
- symbol->printer_location.file,
+ quotearg_style (escape_quoting_style,
+ symbol->printer_location.file),
symbol->printer_location.first_line,
symbol->tag,
symbol->number,
%{
#include "system.h"
+#include "quotearg.h"
#include "error.h"
#include "getargs.h"
#include "files.h"
+
int skel_lex (void);
+
static int yylineno = 1;
static char *yyoutname = NULL;
+
%}
%%
/* This is an approximation, but we don't need more. */
"@:>@" fputc (']', yyout);
"__oline__" fprintf (yyout, "%d", yylineno+1);
-"__ofile__" fprintf (yyout, "%s", yyoutname);
+"__ofile__" fprintf (yyout, "%s", quotearg_style (escape_quoting_style, yyoutname));
[^@_\n]+ ECHO;
\n+ yylineno += yyleng; ECHO;
. ECHO;