From 70460e9723acb8547f688930a41f0a941fd8796b Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Thu, 21 Jul 2016 14:38:24 +0200 Subject: getopt: Add support for '--' to stop option parsing In some cases when commands have optional arguments it is necessary to explicitly stop option parsing after the last nonpositonal option. Add support for '--' to accomplish this as done in getopt(3) aswell. Signed-off-by: Sascha Hauer --- lib/getopt.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/getopt.c b/lib/getopt.c index fd12a886ec..847830c22b 100644 --- a/lib/getopt.c +++ b/lib/getopt.c @@ -64,6 +64,11 @@ int getopt(int argc, char *argv[], const char *optstring) while(1) { debug("optindex: %d nonopts: %d optind: %d\n", optindex, nonopts, optind); + if (optindex == 1 && argv[optind] && !strcmp(argv[optind], "--")) { + optind++; + return -1; + } + /* first put nonopts to the end */ while (optind + nonopts < argc && *argv[optind] != '-') { int i; -- cgit v1.2.3