summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--client/cmd_line_parser.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/client/cmd_line_parser.cpp b/client/cmd_line_parser.cpp
index a813629d..7c396ba1 100644
--- a/client/cmd_line_parser.cpp
+++ b/client/cmd_line_parser.cpp
@@ -346,10 +346,13 @@ int CmdLineParser::get_option(char** val)
}
#ifdef DISABLE_ABBREVIATE
- int name_pos = (opt_obj->type == REQUIRED_ARGUMENT) ? optind - 2 : optind - 1;
+ int name_pos =
+ (opt_obj->type == REQUIRED_ARGUMENT && optarg[-1] != '=')
+ ? optind - 2
+ : optind - 1;
std::string cmd_name(_argv[name_pos] + 2);
if (cmd_name.find(opt_obj->name) != 0) {
- Platform::term_printf("%s: invalid option '--%s'\n", _argv[0], cmd_name.c_str());
+ Platform::term_printf("%s: invalid abbreviated option '--%s'\n", _argv[0], cmd_name.c_str());
return OPTION_ERROR;
}
#endif