From 58afe2395276989bf30d2986b76a32b11400113e Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Tue, 14 Oct 2014 00:47:02 -0400 Subject: [PATCH] CLI - Implemented ::aliasExpansion. --- src/CLI.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/CLI.cpp b/src/CLI.cpp index 61bae23d2..449c25f0a 100644 --- a/src/CLI.cpp +++ b/src/CLI.cpp @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -108,6 +109,35 @@ void CLI::extractOverrides () //////////////////////////////////////////////////////////////////////////////// void CLI::aliasExpansion () { + bool action; + int counter = 0; + do + { + action = false; + std::vector reconstructed; + + std::vector ::iterator i; + for (i = _args.begin (); i != _args.end (); ++i) + { + if (_aliases.find (*i) != _aliases.end ()) + { + std::vector lexed; + Lexer::token_split (lexed, _aliases[*i]); + + std::vector ::iterator l; + for (l = lexed.begin (); l != lexed.end (); ++l) + reconstructed.push_back (*l); + + action = true; + } + else + reconstructed.push_back (*i); + } + + _args = reconstructed; + } + while (action && counter++ < safetyValveDefault); + dump ("CLI::aliasExpansion"); }