summaryrefslogtreecommitdiff
path: root/cli/source.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'cli/source.cxx')
-rw-r--r--cli/source.cxx13
1 files changed, 9 insertions, 4 deletions
diff --git a/cli/source.cxx b/cli/source.cxx
index 180cea8..9c88014 100644
--- a/cli/source.cxx
+++ b/cli/source.cxx
@@ -938,13 +938,18 @@ namespace
<< "const char* o = s.peek ();";
if (sep)
+ {
os << endl
<< "if (std::strcmp (o, \"" << opt_sep << "\") == 0)"
<< "{"
- << "s.skip ();" // We don't want to remove the separator.
- << "opt = false;"
- << "continue;"
- << "}";
+ << "opt = false;";
+ if (!options.keep_separator ())
+ {
+ os << "s.skip ();" // We don't want to erase the separator.
+ << "continue;";
+ }
+ os << "}";
+ }
os << "if (" << (sep ? "opt && " : "") << "_parse (o, s));";