From 579e75001d1a1efe629e6d88d54ddd977ea1771d Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A1n=20Kupec?= Date: Wed, 3 Feb 2010 13:29:04 +0100 Subject: [PATCH] exit if missing required option argument --- src/Zypper.cc | 6 +++--- src/utils/getopt.cc | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Zypper.cc b/src/Zypper.cc index aff053a..b8891ca 100644 --- a/src/Zypper.cc +++ b/src/Zypper.cc @@ -345,7 +345,7 @@ void Zypper::processGlobalOptions() // parse global options parsed_opts gopts = parse_options (_argc, _argv, global_options); - if (gopts.count("_unknown")) + if (gopts.count("_unknown") || gopts.count("_missing_arg")) { setExitCode(ZYPPER_EXIT_ERR_SYNTAX); return; @@ -2397,10 +2397,10 @@ void Zypper::processCommandOptions() // parse command options ::copts = _copts = parse_options (argc(), argv(), specific_options); - if (copts.count("_unknown")) + if (copts.count("_unknown") || gopts.count("_missing_arg")) { setExitCode(ZYPPER_EXIT_ERR_SYNTAX); - ERR << "Unknown option, returning." << endl; + ERR << "Unknown option or missing argument, returning." << endl; return; } diff --git a/src/utils/getopt.cc b/src/utils/getopt.cc index 9944767..33f0cef 100644 --- a/src/utils/getopt.cc +++ b/src/utils/getopt.cc @@ -82,11 +82,12 @@ parsed_opts parse_options (int argc, char **argv, cerr << "'" << endl; - // tell the caller there have been uknown options encountered + // tell the caller there have been unknown options encountered result["_unknown"].push_back(""); break; case ':': cerr << _("Missing argument for ") << argv[optind - 1] << endl; + result["_missing_arg"].push_back(""); break; default: const char *mapidx = optc? short2long[optc] : longopts[option_index].name; -- 2.7.4