From b72cd07f176b876aa51864d93aa8101477b1d732 Mon Sep 17 00:00:00 2001 From: Gianluca Anzolin Date: Tue, 25 Nov 2014 08:56:03 +0100 Subject: add support for non-option arguments extension to getopt this is a GNU extension, activated by including '-' as the first character of the options string, whereby non-option arguments are processed as if they were arguments to an option character '\1' rather than ending option processing. --- src/misc/getopt_long.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/misc/getopt_long.c') diff --git a/src/misc/getopt_long.c b/src/misc/getopt_long.c index 4ef5a5c7..3d318ce5 100644 --- a/src/misc/getopt_long.c +++ b/src/misc/getopt_long.c @@ -12,9 +12,10 @@ static int __getopt_long(int argc, char *const *argv, const char *optstring, con __optpos = 0; optind = 1; } - if (optind >= argc || !argv[optind] || argv[optind][0] != '-') return -1; - if ((longonly && argv[optind][1]) || - (argv[optind][1] == '-' && argv[optind][2])) + if (optind >= argc || !argv[optind]) return -1; + if (argv[optind][0] == '-' && + ((longonly && argv[optind][1]) || + (argv[optind][1] == '-' && argv[optind][2]))) { int i; for (i=0; longopts[i].name; i++) { -- cgit v1.2.1