* src/output.c (output_headers, output_program, output): Be sure

to escape special characters when outputting filenames.
(ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
(output_headers): Don't depend on them, Use ACTSTR.
This commit is contained in:
Akim Demaille
2000-12-12 16:09:10 +00:00
parent d7045ec672
commit 14d3eb9bf4
9 changed files with 40 additions and 59 deletions

View File

@@ -1,3 +1,10 @@
2000-12-12 Akim Demaille <akim@epita.fr>
* src/output.c (output_headers, output_program, output): Be sure
to escape special characters when outputting filenames.
(ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
(output_headers): Don't depend on them, Use ACTSTR.
2000-11-17 Akim Demaille <akim@epita.fr> 2000-11-17 Akim Demaille <akim@epita.fr>
* lib/obstack.h: Formatting changes. * lib/obstack.h: Formatting changes.

View File

@@ -5,7 +5,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bison 1.25\n" "Project-Id-Version: bison 1.25\n"
"POT-Creation-Date: 2000-11-07 17:07+0100\n" "POT-Creation-Date: 2000-11-17 16:54+0100\n"
"PO-Revision-Date: 1996-10-10 17:54 MET DST\n" "PO-Revision-Date: 1996-10-10 17:54 MET DST\n"
"Last-Translator: Ulrich Drepper <drepper@gnu.ai.mit.edu>\n" "Last-Translator: Ulrich Drepper <drepper@gnu.ai.mit.edu>\n"
"Language-Team: German <de@li.org>\n" "Language-Team: German <de@li.org>\n"

View File

@@ -30,7 +30,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: GNU bison 1.25\n" "Project-Id-Version: GNU bison 1.25\n"
"POT-Creation-Date: 2000-11-07 17:07+0100\n" "POT-Creation-Date: 2000-11-17 16:54+0100\n"
"PO-Revision-Date: 1998-09-21 10:19+0200\n" "PO-Revision-Date: 1998-09-21 10:19+0200\n"
"Last-Translator: Nicolás García-Pedrajas <ngarcia-pedrajas@acm.org>\n" "Last-Translator: Nicolás García-Pedrajas <ngarcia-pedrajas@acm.org>\n"
"Language-Team: Spanish <es@li.org>\n" "Language-Team: Spanish <es@li.org>\n"

View File

@@ -5,7 +5,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bison 1.25\n" "Project-Id-Version: bison 1.25\n"
"POT-Creation-Date: 2000-11-07 17:07+0100\n" "POT-Creation-Date: 2000-11-17 16:54+0100\n"
"PO-Revision-Date: 2000-04-11 22:19+02:00\n" "PO-Revision-Date: 2000-04-11 22:19+02:00\n"
"Last-Translator: Toomas Soome <tsoome@ut.ee>\n" "Last-Translator: Toomas Soome <tsoome@ut.ee>\n"
"Language-Team: Estonian <et@li.org>\n" "Language-Team: Estonian <et@li.org>\n"

View File

@@ -5,7 +5,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bison 1.25\n" "Project-Id-Version: bison 1.25\n"
"POT-Creation-Date: 2000-11-07 17:07+0100\n" "POT-Creation-Date: 2000-11-17 16:54+0100\n"
"PO-Revision-Date: 1996-03-19 20:05 EST\n" "PO-Revision-Date: 1996-03-19 20:05 EST\n"
"Last-Translator: Dominique Boucher <boucherd@IRO.UMontreal.CA>\n" "Last-Translator: Dominique Boucher <boucherd@IRO.UMontreal.CA>\n"
"Language-Team: French <fr@li.org>\n" "Language-Team: French <fr@li.org>\n"

View File

@@ -5,7 +5,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: GNU bison 1.28\n" "Project-Id-Version: GNU bison 1.28\n"
"POT-Creation-Date: 2000-11-07 17:07+0100\n" "POT-Creation-Date: 2000-11-17 16:54+0100\n"
"PO-Revision-Date: 1999-09-28 21:10+0900\n" "PO-Revision-Date: 1999-09-28 21:10+0900\n"
"Last-Translator: Daisuke Yamashita <yamad@mb.infoweb.ne.jp>\n" "Last-Translator: Daisuke Yamashita <yamad@mb.infoweb.ne.jp>\n"
"Language-Team: Japanese <ja@li.org>\n" "Language-Team: Japanese <ja@li.org>\n"

View File

@@ -5,7 +5,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bison 1.25\n" "Project-Id-Version: bison 1.25\n"
"POT-Creation-Date: 2000-11-07 17:07+0100\n" "POT-Creation-Date: 2000-11-17 16:54+0100\n"
"PO-Revision-Date: 1996-08-27 15:34 MET DST\n" "PO-Revision-Date: 1996-08-27 15:34 MET DST\n"
"Last-Translator: Erick Branderhorst <branderh@debian.org>\n" "Last-Translator: Erick Branderhorst <branderh@debian.org>\n"
"Language-Team: Dutch <nl@li.org>\n" "Language-Team: Dutch <nl@li.org>\n"

View File

@@ -5,7 +5,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bison 1.28a\n" "Project-Id-Version: bison 1.28a\n"
"POT-Creation-Date: 2000-11-07 17:07+0100\n" "POT-Creation-Date: 2000-11-17 16:54+0100\n"
"PO-Revision-Date: 2000-04-12 13:16+04:00\n" "PO-Revision-Date: 2000-04-12 13:16+04:00\n"
"Last-Translator: Dmitry S. Sivachenko <dima@Chg.RU>\n" "Last-Translator: Dmitry S. Sivachenko <dima@Chg.RU>\n"
"Language-Team: Russian <ru@li.org>\n" "Language-Team: Russian <ru@li.org>\n"

View File

@@ -92,6 +92,7 @@
#include "system.h" #include "system.h"
#include "obstack.h" #include "obstack.h"
#include "quotearg.h"
#include "getargs.h" #include "getargs.h"
#include "xalloc.h" #include "xalloc.h"
#include "files.h" #include "files.h"
@@ -182,9 +183,11 @@ output_short_table (struct obstack *oout,
| certain files. | | certain files. |
`--------------------------------------------------------------*/ `--------------------------------------------------------------*/
/* Don't put the `%s' insides quotes, since it quotearg puts them. */
#define GUARDSTR \ #define GUARDSTR \
"\n\ "\n\
#include \"%s\"\n\ #include %s\n\
extern int yyerror;\n\ extern int yyerror;\n\
extern int yycost;\n\ extern int yycost;\n\
extern char * yymsg;\n\ extern char * yymsg;\n\
@@ -203,24 +206,7 @@ register YYLTYPE *yylsp;\n\
#define ACTSTR \ #define ACTSTR \
"\n\ "\n\
#include \"%s\"\n\ #include %s\n\
extern YYSTYPE yyval;\n\
extern int yychar;\n\
\n\
yyaction(n, yyvsp, yylsp)\n\
register int n;\n\
register YYSTYPE *yyvsp;\n\
register YYLTYPE *yylsp;\n\
{\n\
switch (n)\n\
{"
#define ACTSTR_PROLOGUE \
"\n\
#include \""
#define ACTSTR_EPILOGUE \
"\"\n\
extern YYSTYPE yyval;\n\ extern YYSTYPE yyval;\n\
extern int yychar;\n\ extern int yychar;\n\
\n\ \n\
@@ -237,25 +223,18 @@ register YYLTYPE *yylsp;\n\
void void
output_headers (void) output_headers (void)
{ {
char *attrsfile_quoted = quotearg_style (c_quoting_style, attrsfile);
if (semantic_parser) if (semantic_parser)
fprintf (fguard, GUARDSTR, attrsfile); fprintf (fguard, GUARDSTR, attrsfile_quoted);
if (no_parser_flag) if (no_parser_flag)
return; return;
if (semantic_parser) if (semantic_parser)
{ obstack_fgrow1 (&action_obstack, ACTSTR, attrsfile_quoted);
obstack_grow_literal_string (&action_obstack,
ACTSTR_PROLOGUE);
obstack_grow (&action_obstack,
attrsfile, strlen (attrsfile));
obstack_grow_literal_string (&action_obstack,
ACTSTR_EPILOGUE);
}
else else
{ obstack_grow_literal_string (&action_obstack, ACTSTR_SIMPLE);
obstack_grow_literal_string (&action_obstack, ACTSTR_SIMPLE);
}
/* if (semantic_parser) JF moved this below /* if (semantic_parser) JF moved this below
fprintf(ftable, "#include \"%s\"\n", attrsfile); fprintf(ftable, "#include \"%s\"\n", attrsfile);
@@ -266,19 +245,19 @@ output_headers (void)
if (spec_name_prefix) if (spec_name_prefix)
{ {
obstack_fgrow1 (&table_obstack, obstack_fgrow1 (&table_obstack,
"#define yyparse %sparse\n", spec_name_prefix); "#define yyparse %sparse\n", spec_name_prefix);
obstack_fgrow1 (&table_obstack, obstack_fgrow1 (&table_obstack,
"#define yylex %slex\n", spec_name_prefix); "#define yylex %slex\n", spec_name_prefix);
obstack_fgrow1 (&table_obstack, obstack_fgrow1 (&table_obstack,
"#define yyerror %serror\n", spec_name_prefix); "#define yyerror %serror\n", spec_name_prefix);
obstack_fgrow1 (&table_obstack, obstack_fgrow1 (&table_obstack,
"#define yylval %slval\n", spec_name_prefix); "#define yylval %slval\n", spec_name_prefix);
obstack_fgrow1 (&table_obstack, obstack_fgrow1 (&table_obstack,
"#define yychar %schar\n", spec_name_prefix); "#define yychar %schar\n", spec_name_prefix);
obstack_fgrow1 (&table_obstack, obstack_fgrow1 (&table_obstack,
"#define yydebug %sdebug\n", spec_name_prefix); "#define yydebug %sdebug\n", spec_name_prefix);
obstack_fgrow1 (&table_obstack, obstack_fgrow1 (&table_obstack,
"#define yynerrs %snerrs\n", spec_name_prefix); "#define yynerrs %snerrs\n", spec_name_prefix);
} }
} }
@@ -299,12 +278,9 @@ output_trailers (void)
return; return;
if (semantic_parser) if (semantic_parser)
{ obstack_grow_literal_string (&action_obstack, " }\n");
obstack_grow_literal_string (&action_obstack,
" }\n"); obstack_grow_literal_string (&action_obstack, "}\n");
}
obstack_grow_literal_string (&action_obstack,
"}\n");
} }
@@ -1275,14 +1251,11 @@ output_program (void)
int c; int c;
if (!no_lines_flag) if (!no_lines_flag)
obstack_fgrow2 (&table_obstack, "#line %d \"%s\"\n", lineno, infile); obstack_fgrow2 (&table_obstack, "#line %d %s\n",
lineno, quotearg_style (c_quoting_style, infile));
c = getc (finput); while ((c = getc (finput)) != EOF)
while (c != EOF) obstack_1grow (&table_obstack, c);
{
obstack_1grow (&table_obstack, c);
c = getc (finput);
}
} }
@@ -1326,7 +1299,8 @@ output (void)
\n"); \n");
if (semantic_parser) if (semantic_parser)
obstack_fgrow1 (&table_obstack, "#include \"%s\"\n", attrsfile); obstack_fgrow1 (&table_obstack, "#include %s\n",
quotearg_style (c_quoting_style, attrsfile));
if (!no_parser_flag) if (!no_parser_flag)
obstack_grow_literal_string (&table_obstack, "#include <stdio.h>\n\n"); obstack_grow_literal_string (&table_obstack, "#include <stdio.h>\n\n");