From 8cc75693a07fef7032a30e828b68a5fe62b5b3b5 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 27 Jun 2015 23:34:03 -0400 Subject: [PATCH] CLI2: Some args must avoid lexing - This now include rc:xxx and rc.xxx. --- src/CLI2.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/CLI2.cpp b/src/CLI2.cpp index 8676bd2ff..2f39ff1a7 100644 --- a/src/CLI2.cpp +++ b/src/CLI2.cpp @@ -343,15 +343,27 @@ void CLI2::lexArguments () bool terminated = false; for (unsigned int i = 1; i < _original_args.size (); ++i) { + // The terminator itself is captured. if (_original_args[i] == "--") { terminated = true; _args.push_back (A2 (_original_args[i], Lexer::Type::separator)); } + + // Any arguments that are after the terminator are captured as words. else if (terminated) { _args.push_back (A2 (_original_args[i], Lexer::Type::word)); } + + // rc: and rc.[:=] argumenst are captured whole. + else if (_original_args[i].substr (0, 3) == "rc:" || + _original_args[i].substr (0, 3) == "rc.") + { + _args.push_back (A2 (_original_args[i], Lexer::Type::pair)); + } + + // Everything else gets lexed. else { std::string lexeme;