[PATCH] getopt: Add support for '--' to stop option parsing
Sascha Hauer
s.hauer at pengutronix.de
Mon Jul 25 01:32:51 PDT 2016
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 <s.hauer at pengutronix.de>
---
lib/getopt.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/lib/getopt.c b/lib/getopt.c
index fd12a88..847830c 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;
--
2.8.1
More information about the barebox
mailing list