diff options
Diffstat (limited to 'src/support/command-line.cpp')
-rw-r--r-- | src/support/command-line.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/support/command-line.cpp b/src/support/command-line.cpp index 355d704bb..d9b7170f5 100644 --- a/src/support/command-line.cpp +++ b/src/support/command-line.cpp @@ -124,16 +124,18 @@ void Options::parse(int argc, const char* argv[]) { assert(argc > 0 && "expect at least program name as an argument"); size_t positionalsSeen = 0; auto dashes = [](const std::string& s) { - for (size_t i = 0;; ++i) { + for (size_t i = 0; i < s.size(); ++i) { if (s[i] != '-') { return i; } } + return s.size(); }; for (size_t i = 1, e = argc; i != e; ++i) { std::string currentOption = argv[i]; - if (dashes(currentOption) == 0) { + // "-" alone is a positional option + if (dashes(currentOption) == 0 || currentOption == "-") { // Positional. switch (positional) { case Arguments::Zero: |