aboutsummaryrefslogtreecommitdiff
path: root/base
diff options
context:
space:
mode:
Diffstat (limited to 'base')
-rw-r--r--base/commandLine.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/base/commandLine.cpp b/base/commandLine.cpp
index 70f06031a7..8372b976fb 100644
--- a/base/commandLine.cpp
+++ b/base/commandLine.cpp
@@ -261,12 +261,15 @@ void registerDefaults() {
// Use this for options which have an *optional* value
#define DO_OPTION_OPT(shortCmd, longCmd, defaultVal) \
- if (isLongCmd ? (!memcmp(s+2, longCmd"=", sizeof(longCmd"=") - 1)) : (tolower(s[1]) == shortCmd)) { \
+ if (isLongCmd ? (!strcmp(s+2, longCmd) || !memcmp(s+2, longCmd"=", sizeof(longCmd"=") - 1)) : (tolower(s[1]) == shortCmd)) { \
s += 2; \
- if (isLongCmd) \
- s += sizeof(longCmd"=") - 1; \
+ if (isLongCmd) { \
+ s += sizeof(longCmd) - 1; \
+ if (*s == '=') \
+ s++; \
+ } \
const char *option = s; \
- if (*s == '\0') { option = s2; i++; } \
+ if (*s == '\0' && !isLongCmd) { option = s2; i++; } \
if (!option) option = defaultVal; \
if (option) settings[longCmd] = option;