diff options
Diffstat (limited to 'client')
-rw-r--r-- | client/cmd_line_parser.cpp | 7 |
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 |