From 64d4d659efd35092f0f821fee250674a547130b3 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Mon, 13 Oct 2014 23:23:45 -0400 Subject: [PATCH] CLI - ::initialize captures all args. --- src/CLI.cpp | 10 ++++++++++ src/CLI.h | 4 ++++ 2 files changed, 14 insertions(+) diff --git a/src/CLI.cpp b/src/CLI.cpp index d918de40b..bf1fb15b1 100644 --- a/src/CLI.cpp +++ b/src/CLI.cpp @@ -54,3 +54,13 @@ void CLI::entity (const std::string& name, const std::string& value) } //////////////////////////////////////////////////////////////////////////////// +// Capture the original, intact command line arguments. These will not be +// modified. +void CLI::initialize (int argc, const char** argv) +{ + _program = argv[0]; + for (int i = 1; i < argc; ++i) + _args.push_back (argv[i]); +} + +//////////////////////////////////////////////////////////////////////////////// diff --git a/src/CLI.h b/src/CLI.h index 1743b24bf..d743d0e5f 100644 --- a/src/CLI.h +++ b/src/CLI.h @@ -27,6 +27,7 @@ #define INCLUDED_CLI #include +#include #include class CLI @@ -36,12 +37,15 @@ public: ~CLI (); void alias (const std::string&, const std::string&); void entity (const std::string&, const std::string&); + void initialize (int, const char**); private: private: std::multimap _entities; std::map _aliases; + std::string _program; + std::vector _args; }; #endif