From: Akim Demaille Date: Tue, 12 Dec 2000 16:09:10 +0000 (+0000) Subject: * src/output.c (output_headers, output_program, output): Be sure X-Git-Tag: BISON-1_28b~63 X-Git-Url: https://git.saurik.com/bison.git/commitdiff_plain/14d3eb9bf4e5d1adac65dfc07420f5bc5805e801 * 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. --- diff --git a/ChangeLog b/ChangeLog index 6f138ef8..49b30cc4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2000-12-12 Akim Demaille + + * 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 * lib/obstack.h: Formatting changes. diff --git a/po/de.po b/po/de.po index 809f1218..1b7ff8fa 100644 --- a/po/de.po +++ b/po/de.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "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" "Last-Translator: Ulrich Drepper \n" "Language-Team: German \n" diff --git a/po/es.po b/po/es.po index 3e2547a3..86b1c979 100644 --- a/po/es.po +++ b/po/es.po @@ -30,7 +30,7 @@ msgid "" msgstr "" "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" "Last-Translator: Nicolás García-Pedrajas \n" "Language-Team: Spanish \n" diff --git a/po/et.po b/po/et.po index ae4ee20e..9a431423 100644 --- a/po/et.po +++ b/po/et.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "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" "Last-Translator: Toomas Soome \n" "Language-Team: Estonian \n" diff --git a/po/fr.po b/po/fr.po index c7317143..bd216100 100644 --- a/po/fr.po +++ b/po/fr.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "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" "Last-Translator: Dominique Boucher \n" "Language-Team: French \n" diff --git a/po/ja.po b/po/ja.po index 95f9a0e2..7f6729fa 100644 --- a/po/ja.po +++ b/po/ja.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "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" "Last-Translator: Daisuke Yamashita \n" "Language-Team: Japanese \n" diff --git a/po/nl.po b/po/nl.po index dd9911cf..8dead27f 100644 --- a/po/nl.po +++ b/po/nl.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "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" "Last-Translator: Erick Branderhorst \n" "Language-Team: Dutch \n" diff --git a/po/ru.po b/po/ru.po index 772a84a8..8327872d 100644 --- a/po/ru.po +++ b/po/ru.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "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" "Last-Translator: Dmitry S. Sivachenko \n" "Language-Team: Russian \n" diff --git a/src/output.c b/src/output.c index fbe007ea..27fcae4f 100644 --- a/src/output.c +++ b/src/output.c @@ -92,6 +92,7 @@ #include "system.h" #include "obstack.h" +#include "quotearg.h" #include "getargs.h" #include "xalloc.h" #include "files.h" @@ -182,9 +183,11 @@ output_short_table (struct obstack *oout, | certain files. | `--------------------------------------------------------------*/ +/* Don't put the `%s' insides quotes, since it quotearg puts them. */ + #define GUARDSTR \ "\n\ -#include \"%s\"\n\ +#include %s\n\ extern int yyerror;\n\ extern int yycost;\n\ extern char * yymsg;\n\ @@ -203,24 +206,7 @@ register YYLTYPE *yylsp;\n\ #define ACTSTR \ "\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\ +#include %s\n\ extern YYSTYPE yyval;\n\ extern int yychar;\n\ \n\ @@ -237,25 +223,18 @@ register YYLTYPE *yylsp;\n\ void output_headers (void) { + char *attrsfile_quoted = quotearg_style (c_quoting_style, attrsfile); + if (semantic_parser) - fprintf (fguard, GUARDSTR, attrsfile); + fprintf (fguard, GUARDSTR, attrsfile_quoted); if (no_parser_flag) return; if (semantic_parser) - { - obstack_grow_literal_string (&action_obstack, - ACTSTR_PROLOGUE); - obstack_grow (&action_obstack, - attrsfile, strlen (attrsfile)); - obstack_grow_literal_string (&action_obstack, - ACTSTR_EPILOGUE); - } + obstack_fgrow1 (&action_obstack, ACTSTR, attrsfile_quoted); else - { - obstack_grow_literal_string (&action_obstack, ACTSTR_SIMPLE); - } + obstack_grow_literal_string (&action_obstack, ACTSTR_SIMPLE); /* if (semantic_parser) JF moved this below fprintf(ftable, "#include \"%s\"\n", attrsfile); @@ -266,19 +245,19 @@ output_headers (void) if (spec_name_prefix) { obstack_fgrow1 (&table_obstack, - "#define yyparse %sparse\n", spec_name_prefix); + "#define yyparse %sparse\n", spec_name_prefix); obstack_fgrow1 (&table_obstack, - "#define yylex %slex\n", spec_name_prefix); + "#define yylex %slex\n", spec_name_prefix); obstack_fgrow1 (&table_obstack, - "#define yyerror %serror\n", spec_name_prefix); + "#define yyerror %serror\n", spec_name_prefix); obstack_fgrow1 (&table_obstack, - "#define yylval %slval\n", spec_name_prefix); + "#define yylval %slval\n", spec_name_prefix); obstack_fgrow1 (&table_obstack, - "#define yychar %schar\n", spec_name_prefix); + "#define yychar %schar\n", spec_name_prefix); obstack_fgrow1 (&table_obstack, - "#define yydebug %sdebug\n", spec_name_prefix); + "#define yydebug %sdebug\n", spec_name_prefix); 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; 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; 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 != EOF) - { - obstack_1grow (&table_obstack, c); - c = getc (finput); - } + while ((c = getc (finput)) != EOF) + obstack_1grow (&table_obstack, c); } @@ -1326,7 +1299,8 @@ output (void) \n"); 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) obstack_grow_literal_string (&table_obstack, "#include \n\n");