From: Joel E. Denny Date: Sun, 18 Nov 2007 06:40:41 +0000 (+0000) Subject: Accept --report-file=FILE to override the default `.output' filename. X-Git-Tag: v2.3b~57 X-Git-Url: https://git.saurik.com/bison.git/commitdiff_plain/1bb2bd75f0185ca53c92f1c63cdc0b5ceef3f1f2 Accept --report-file=FILE to override the default `.output' filename. * NEWS (2.3a+): Mention. * doc/bison.texinfo (Bison Options): Add an entry. * src/files.c (compute_output_file_names): Don't override spec_verbose_file if already set. * src/getargs.c (usage): Document --report-file. (REPORT_FILE_OPTION): New anonymous enum member. (long_options): Add entry for it. (getargs): Add case for it setting spec_verbose_file. * build-aux/cross-options.pl: Don't record a short option just because there's an arg. * doc/.cvsignore: Add yacc.1. --- diff --git a/ChangeLog b/ChangeLog index 84c0195e..741f68ed 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,19 @@ +2007-11-18 Joel E. Denny + + Accept --report-file=FILE to override the default `.output' filename. + * NEWS (2.3a+): Mention. + * doc/bison.texinfo (Bison Options): Add an entry. + * src/files.c (compute_output_file_names): Don't override + spec_verbose_file if already set. + * src/getargs.c (usage): Document --report-file. + (REPORT_FILE_OPTION): New anonymous enum member. + (long_options): Add entry for it. + (getargs): Add case for it setting spec_verbose_file. + + * build-aux/cross-options.pl: Don't record a short option just because + there's an arg. + * doc/.cvsignore: Add yacc.1. + 2007-11-14 Akim Demaille * doc/yacc.1.in: New. diff --git a/NEWS b/NEWS index ad7903cc..afc35421 100644 --- a/NEWS +++ b/NEWS @@ -78,6 +78,8 @@ Changes in version 2.3a+ (????-??-??): bug affected only the `.output' file and not the generated parser source code. +* --report-file=FILE is a new flag to override the default `.output' file name. + * The `=' that used to be required in the following directives is now deprecated: diff --git a/build-aux/cross-options.pl b/build-aux/cross-options.pl index 4c941b04..cbd11888 100755 --- a/build-aux/cross-options.pl +++ b/build-aux/cross-options.pl @@ -17,7 +17,7 @@ while (<>) $arg = '@var{' . lc ($arg) . '}'; $arg = '[' . $arg . ']' if defined $opt; - $option{"$long=$arg"} = "$short $arg"; + $option{"$long=$arg"} = $short ? "$short $arg" : ''; } else { diff --git a/doc/.cvsignore b/doc/.cvsignore index f3d7a603..8365feab 100644 --- a/doc/.cvsignore +++ b/doc/.cvsignore @@ -13,11 +13,12 @@ bison.ps bison.toc bison.tp bison.vr +cross-options.texi +Makefile.in refcard.dvi refcard.log refcard.ps -Makefile.in *.info* stamp-vti version.texi -cross-options.texi +yacc.1 diff --git a/doc/bison.1 b/doc/bison.1 index 1d8ef3c8..d8305c06 100644 --- a/doc/bison.1 +++ b/doc/bison.1 @@ -107,6 +107,9 @@ also produce a header file \fB\-r\fR, \fB\-\-report\fR=\fITHINGS\fR also produce details on the automaton .TP +\fB\-\-report\-file\fR=\fIFILE\fR +write report to FILE +.TP \fB\-v\fR, \fB\-\-verbose\fR same as `\-\-report=state' .TP diff --git a/doc/bison.texinfo b/doc/bison.texinfo index 8268783f..9d0da773 100644 --- a/doc/bison.texinfo +++ b/doc/bison.texinfo @@ -7827,6 +7827,9 @@ Implies @code{state} and augments the description of the automaton with the full set of items for each state, instead of its core only. @end table +@item --report-file=@var{file} +Specify the @var{file} for the verbose description. + @item -v @itemx --verbose Pretend that @code{%verbose} was specified, i.e., write an extra output diff --git a/src/files.c b/src/files.c index c6aca453..0499a353 100644 --- a/src/files.c +++ b/src/files.c @@ -338,7 +338,8 @@ compute_output_file_names (void) if (report_flag) { - spec_verbose_file = concat2 (all_but_tab_ext, OUTPUT_EXT); + if (!spec_verbose_file) + spec_verbose_file = concat2 (all_but_tab_ext, OUTPUT_EXT); output_file_name_check (spec_verbose_file); } diff --git a/src/getargs.c b/src/getargs.c index 3e143aa3..c030db80 100644 --- a/src/getargs.c +++ b/src/getargs.c @@ -282,6 +282,7 @@ Parser:\n\ Output:\n\ -d, --defines[=FILE] also produce a header file\n\ -r, --report=THINGS also produce details on the automaton\n\ + --report-file=FILE write report to FILE\n\ -v, --verbose same as `--report=state'\n\ -b, --file-prefix=PREFIX specify a PREFIX for output files\n\ -o, --output=FILE leave output to FILE\n\ @@ -408,7 +409,8 @@ enum { LOCATIONS_OPTION = CHAR_MAX + 1, PRINT_LOCALEDIR_OPTION, - PRINT_DATADIR_OPTION + PRINT_DATADIR_OPTION, + REPORT_FILE_OPTION }; static struct option const long_options[] = @@ -431,6 +433,7 @@ static struct option const long_options[] = { "graph", optional_argument, 0, 'g' }, { "xml", optional_argument, 0, 'x' }, { "report", required_argument, 0, 'r' }, + { "report-file", required_argument, 0, REPORT_FILE_OPTION }, { "verbose", no_argument, 0, 'v' }, /* Hidden. */ @@ -536,6 +539,10 @@ getargs (int argc, char *argv[]) FLAGS_ARGMATCH (report, optarg); break; + case REPORT_FILE_OPTION: + spec_verbose_file = xstrdup (AS_FILE_NAME (optarg)); + break; + case 'T': FLAGS_ARGMATCH (trace, optarg); break;