I may have found an issue with this API. When a double hyphen is encountered the API is supposed to return a -1 but I'm seeing a '?'. My reference is from the Solaris docs which say: "The special option "--" can be used to delimit the end of the options; when it is encountered, -1 is returned and "--" is skipped. I attached a test case to show the problem. I made the following change it will cause the code to punt to getopt when just a "--" is found: argv[optind][0] == '-' argv[optind][1] == '-' argv[optind][2] == NULL diff --git a/src/misc/getopt_long.c b/src/misc/getopt_long.c index 480c001..9764f56 100644 --- a/src/misc/getopt_long.c +++ b/src/misc/getopt_long.c @@ -53,7 +53,7 @@ static int __getopt_long_core(int argc, char *const *argv, con { optarg = 0; if (longopts && argv[optind][0] == '-' && - ((longonly && argv[optind][1]) || + ((longonly && argv[optind][1]) && (argv[optind][1] == '-' && argv[optind][2]))) { int colon = optstring[optstring[0]=='+'||optstring[0]=='-']==':' Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation