From c55bf919ccad3e0eff30da09c3d3e9f81cc123ad Mon Sep 17 00:00:00 2001 From: EricSharkey Date: Sun, 21 May 2017 16:09:42 -0400 Subject: [PATCH] scanner: add optionn to specify backup filename. In a directory containing multiple scanners, we want to allow specifying the name of the backup file else the backup files will be overwritten. --- src/main.c | 10 ++++++++-- src/options.c | 2 ++ src/options.h | 1 + 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main.c b/src/main.c index 337c40d..1f12cba 100644 --- a/src/main.c +++ b/src/main.c @@ -117,7 +117,7 @@ struct yytbl_writer tableswr; char *program_name = "flex"; static const char outfile_template[] = "lex.%s.%s"; -static const char backing_name[] = "lex.backup"; +static const char *backing_name = "lex.backup"; static const char tablesfile_template[] = "lex.%s.tables"; /* From scan.l */ @@ -1035,6 +1035,11 @@ void flexinit (int argc, char **argv) backing_up_report = true; break; + case OPT_BACKUP_FILE: + backing_up_report = true; + backing_name = arg; + break; + case OPT_DONOTHING: break; @@ -1827,7 +1832,8 @@ void usage (void) " -t, --stdout write scanner on stdout instead of %s\n" " --yyclass=NAME name of C++ class\n" " --header-file=FILE create a C header file in addition to the scanner\n" - " --tables-file[=FILE] write tables to FILE\n" "\n" + " --tables-file[=FILE] write tables to FILE\n" + " --backup-file=FILE write backing-up information to FILE\n" "\n" "Scanner behavior:\n" " -7, --7bit generate 7-bit scanner\n" " -8, --8bit generate 8-bit scanner\n" diff --git a/src/options.c b/src/options.c index 8e42adb..e98159c 100644 --- a/src/options.c +++ b/src/options.c @@ -62,6 +62,8 @@ optspec_t flexopts[] = { , {"--backup", OPT_BACKUP, 0} , /* Generate backing-up information to lex.backup. */ + {"--backup-file=FILE", OPT_BACKUP_FILE, 0} + , /* Generate backing-up information to FILE. */ {"-B", OPT_BATCH, 0} , {"--batch", OPT_BATCH, 0} diff --git a/src/options.h b/src/options.h index 5016680..acee275 100644 --- a/src/options.h +++ b/src/options.h @@ -46,6 +46,7 @@ enum flexopt_flag_t { OPT_ALWAYS_INTERACTIVE, OPT_ARRAY, OPT_BACKUP, + OPT_BACKUP_FILE, OPT_BATCH, OPT_BISON_BRIDGE, OPT_BISON_BRIDGE_LOCATIONS, -- 2.50.1