From 05fdfafd2afef1572615fec4a91563f6fef00b33 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Tue, 14 Oct 2014 01:42:37 -0400 Subject: [PATCH] CLI - Preserves original args. --- src/CLI.cpp | 8 +++++++- src/CLI.h | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/CLI.cpp b/src/CLI.cpp index 8541ecf54..5cb2263bb 100644 --- a/src/CLI.cpp +++ b/src/CLI.cpp @@ -72,7 +72,9 @@ void CLI::initialize (int argc, const char** argv) { _program = argv[0]; for (int i = 1; i < argc; ++i) - _args.push_back (argv[i]); + _original_args.push_back (argv[i]); + + _args = _original_args; dump ("CLI::initialize"); extractOverrides (); @@ -81,6 +83,7 @@ void CLI::initialize (int argc, const char** argv) //////////////////////////////////////////////////////////////////////////////// void CLI::add (const std::string& arg) { + _original_args.push_back (arg); _args.push_back (arg); dump ("CLI::add"); @@ -274,6 +277,9 @@ void CLI::dump (const std::string& label) const << "# _program '" << _program << "'\n"; std::vector ::const_iterator i; + for (i = _original_args.begin (); i != _original_args.end (); ++i) + std::cout << "# _original_args '" << *i << "'\n"; + for (i = _args.begin (); i != _args.end (); ++i) std::cout << "# _args '" << *i << "'\n"; diff --git a/src/CLI.h b/src/CLI.h index a15da5458..44cb41fe7 100644 --- a/src/CLI.h +++ b/src/CLI.h @@ -53,6 +53,7 @@ public: std::multimap _entities; std::map _aliases; std::string _program; + std::vector _original_args; std::vector _args; std::string _rc; std::map _overrides;