From f7af8bb99b41f3c201dcbe097e293689152c95b8 Mon Sep 17 00:00:00 2001 From: David Given Date: Tue, 2 Jul 2019 23:20:47 +0200 Subject: [PATCH] I... think it's done? That was suspiciously easy. --- lib/flags.cc | 11 +++++++---- lib/fluxsource/fluxsource.h | 4 ++++ lib/reader.cc | 2 +- lib/reader.h | 4 ++++ lib/writer.cc | 2 +- lib/writer.h | 4 ++++ src/fe-readadfs.cc | 2 +- src/fe-readaeslanier.cc | 2 +- src/fe-readamiga.cc | 2 +- src/fe-readampro.cc | 2 +- src/fe-readapple2.cc | 2 +- src/fe-readbrother.cc | 2 +- src/fe-readc64.cc | 2 +- src/fe-readdfs.cc | 2 +- src/fe-readf85.cc | 2 +- src/fe-readfb100.cc | 2 +- src/fe-readibm.cc | 2 +- src/fe-readmac.cc | 2 +- src/fe-readvictor9k.cc | 2 +- src/fe-readzilogmcz.cc | 2 +- src/fe-writebrother.cc | 2 +- src/fe-writeflux.cc | 2 +- src/fe-writetestpattern.cc | 2 +- 23 files changed, 38 insertions(+), 23 deletions(-) diff --git a/lib/flags.cc b/lib/flags.cc index 8bbada2e..ba7803a3 100644 --- a/lib/flags.cc +++ b/lib/flags.cc @@ -49,10 +49,12 @@ void FlagGroup::parseFlags(int argc, const char* argv[]) for (Flag* flag : group->_flags) { - const auto& name = flag->name(); - if (flags_by_name.find(name) != flags_by_name.end()) - Error() << "two flags use the name '" << name << "'"; - flags_by_name[name] = flag; + for (const auto& name : flag->names()) + { + if (flags_by_name.find(name) != flags_by_name.end()) + Error() << "two flags use the name '" << name << "'"; + flags_by_name[name] = flag; + } all_flags.push_back(flag); } @@ -60,6 +62,7 @@ void FlagGroup::parseFlags(int argc, const char* argv[]) group->_initialised = true; }; recurse(this); + recurse(&helpGroup); /* Now actually parse them. */ diff --git a/lib/fluxsource/fluxsource.h b/lib/fluxsource/fluxsource.h index 28289b74..de50fb79 100644 --- a/lib/fluxsource/fluxsource.h +++ b/lib/fluxsource/fluxsource.h @@ -1,6 +1,10 @@ #ifndef FLUXSOURCE_H #define FLUXSOURCE_H +#include "flags.h" + +extern FlagGroup hardwareFluxSourceFlags; + class Fluxmap; class DataSpec; diff --git a/lib/reader.cc b/lib/reader.cc index ae362f74..be294f0e 100644 --- a/lib/reader.cc +++ b/lib/reader.cc @@ -16,7 +16,7 @@ #include "track.h" #include "fmt/format.h" -FlagGroup readerFlags; +FlagGroup readerFlags { &hardwareFluxSourceFlags, &fluxmapReaderFlags }; static DataSpecFlag source( { "--source", "-s" }, diff --git a/lib/reader.h b/lib/reader.h index 4916f365..aaaf2919 100644 --- a/lib/reader.h +++ b/lib/reader.h @@ -1,11 +1,15 @@ #ifndef READER_H #define READER_H +#include "flags.h" + class Fluxmap; class FluxSource; class AbstractDecoder; class Track; +extern FlagGroup readerFlags; + extern void setReaderDefaultSource(const std::string& source); extern void setReaderRevolutions(int revolutions); diff --git a/lib/writer.cc b/lib/writer.cc index 6134c260..2306931f 100644 --- a/lib/writer.cc +++ b/lib/writer.cc @@ -10,7 +10,7 @@ #include "fluxsink.h" #include "fmt/format.h" -FlagGroup writerFlags; +FlagGroup writerFlags { &hardwareFluxSourceFlags }; static DataSpecFlag dest( { "--dest", "-d" }, diff --git a/lib/writer.h b/lib/writer.h index f0b77a22..ad331dcb 100644 --- a/lib/writer.h +++ b/lib/writer.h @@ -1,6 +1,10 @@ #ifndef WRITER_H #define WRITER_H +#include "flags.h" + +extern FlagGroup writerFlags; + class Fluxmap; extern void setWriterDefaultDest(const std::string& dest); diff --git a/src/fe-readadfs.cc b/src/fe-readadfs.cc index 0caa7feb..f67a12cb 100644 --- a/src/fe-readadfs.cc +++ b/src/fe-readadfs.cc @@ -10,7 +10,7 @@ #include "ibm.h" #include -FlagGroup flags; +FlagGroup flags { &readerFlags }; static StringFlag outputFilename( { "--output", "-o" }, diff --git a/src/fe-readaeslanier.cc b/src/fe-readaeslanier.cc index e54b9f90..7f20fe14 100644 --- a/src/fe-readaeslanier.cc +++ b/src/fe-readaeslanier.cc @@ -10,7 +10,7 @@ #include "aeslanier.h" #include -FlagGroup flags; +FlagGroup flags { &readerFlags }; static StringFlag outputFilename( { "--output", "-o" }, diff --git a/src/fe-readamiga.cc b/src/fe-readamiga.cc index e4c85d27..3434e1cf 100644 --- a/src/fe-readamiga.cc +++ b/src/fe-readamiga.cc @@ -11,7 +11,7 @@ #include #include -FlagGroup flags; +FlagGroup flags { &readerFlags }; static StringFlag outputFilename( { "--output", "-o" }, diff --git a/src/fe-readampro.cc b/src/fe-readampro.cc index 355e9114..1c135838 100644 --- a/src/fe-readampro.cc +++ b/src/fe-readampro.cc @@ -10,7 +10,7 @@ #include "ibm.h" #include -FlagGroup flags; +FlagGroup flags { &readerFlags }; static StringFlag outputFilename( { "--output", "-o" }, diff --git a/src/fe-readapple2.cc b/src/fe-readapple2.cc index b93a5f27..d9178a2f 100644 --- a/src/fe-readapple2.cc +++ b/src/fe-readapple2.cc @@ -11,7 +11,7 @@ #include #include -FlagGroup flags; +FlagGroup flags { &readerFlags }; static StringFlag outputFilename( { "--output", "-o" }, diff --git a/src/fe-readbrother.cc b/src/fe-readbrother.cc index d309438b..8438c41e 100644 --- a/src/fe-readbrother.cc +++ b/src/fe-readbrother.cc @@ -11,7 +11,7 @@ #include #include -FlagGroup flags; +FlagGroup flags { &readerFlags }; static StringFlag outputFilename( { "--output", "-o" }, diff --git a/src/fe-readc64.cc b/src/fe-readc64.cc index 594ce429..5a073cbd 100644 --- a/src/fe-readc64.cc +++ b/src/fe-readc64.cc @@ -11,7 +11,7 @@ #include #include -FlagGroup flags; +FlagGroup flags { &readerFlags }; static StringFlag outputFilename( { "--output", "-o" }, diff --git a/src/fe-readdfs.cc b/src/fe-readdfs.cc index 2ac6b0b7..f9316384 100644 --- a/src/fe-readdfs.cc +++ b/src/fe-readdfs.cc @@ -10,7 +10,7 @@ #include "ibm.h" #include -FlagGroup flags; +FlagGroup flags { &readerFlags }; static StringFlag outputFilename( { "--output", "-o" }, diff --git a/src/fe-readf85.cc b/src/fe-readf85.cc index a2889d77..98680bd4 100644 --- a/src/fe-readf85.cc +++ b/src/fe-readf85.cc @@ -11,7 +11,7 @@ #include #include -FlagGroup flags; +FlagGroup flags { &readerFlags }; static StringFlag outputFilename( { "--output", "-o" }, diff --git a/src/fe-readfb100.cc b/src/fe-readfb100.cc index 692f8184..4b006538 100644 --- a/src/fe-readfb100.cc +++ b/src/fe-readfb100.cc @@ -10,7 +10,7 @@ #include "fb100.h" #include -FlagGroup flags; +FlagGroup flags { &readerFlags }; static StringFlag outputFilename( { "--output", "-o" }, diff --git a/src/fe-readibm.cc b/src/fe-readibm.cc index e672e66d..5893e954 100644 --- a/src/fe-readibm.cc +++ b/src/fe-readibm.cc @@ -10,7 +10,7 @@ #include "ibm.h" #include -FlagGroup flags; +FlagGroup flags { &readerFlags }; static StringFlag outputFilename( { "--output", "-o" }, diff --git a/src/fe-readmac.cc b/src/fe-readmac.cc index 8b4e3762..e5b853cc 100644 --- a/src/fe-readmac.cc +++ b/src/fe-readmac.cc @@ -11,7 +11,7 @@ #include #include -FlagGroup flags; +FlagGroup flags { &readerFlags }; static StringFlag outputFilename( { "--output", "-o" }, diff --git a/src/fe-readvictor9k.cc b/src/fe-readvictor9k.cc index 0180420c..969523e1 100644 --- a/src/fe-readvictor9k.cc +++ b/src/fe-readvictor9k.cc @@ -11,7 +11,7 @@ #include #include -FlagGroup flags; +FlagGroup flags { &readerFlags }; static StringFlag outputFilename( { "--output", "-o" }, diff --git a/src/fe-readzilogmcz.cc b/src/fe-readzilogmcz.cc index 3da16a83..57de3ddd 100644 --- a/src/fe-readzilogmcz.cc +++ b/src/fe-readzilogmcz.cc @@ -10,7 +10,7 @@ #include "zilogmcz.h" #include -FlagGroup flags; +FlagGroup flags { &readerFlags }; static StringFlag outputFilename( { "--output", "-o" }, diff --git a/src/fe-writebrother.cc b/src/fe-writebrother.cc index 2292ffe6..2b51d767 100644 --- a/src/fe-writebrother.cc +++ b/src/fe-writebrother.cc @@ -11,7 +11,7 @@ #include #include -FlagGroup flags; +FlagGroup flags { &writerFlags }; static StringFlag inputFilename( { "--input", "-i" }, diff --git a/src/fe-writeflux.cc b/src/fe-writeflux.cc index 0c70b8f6..28803eed 100644 --- a/src/fe-writeflux.cc +++ b/src/fe-writeflux.cc @@ -10,7 +10,7 @@ #include #include -FlagGroup flags; +FlagGroup flags { &writerFlags }; int main(int argc, const char* argv[]) { diff --git a/src/fe-writetestpattern.cc b/src/fe-writetestpattern.cc index 14589ecb..20e8e3cc 100644 --- a/src/fe-writetestpattern.cc +++ b/src/fe-writetestpattern.cc @@ -8,7 +8,7 @@ #include #include -FlagGroup flags; +FlagGroup flags { &writerFlags }; static DoubleFlag interval( { "--interval" },