summaryrefslogtreecommitdiff
path: root/cli/source.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2018-03-24 13:00:05 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2018-03-24 13:00:05 +0200
commit74fff9901d9529cdde4ed42254aa21afe466ac3a (patch)
treeb95c93bc49e0ff9d9a1d7b26931f473f5e68aff9 /cli/source.cxx
parenta2884d0ae08c4c13998570aa0073b05dec82c543 (diff)
Add --keep-separator option
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));";