summaryrefslogtreecommitdiff
path: root/util-linux/getopt.c
diff options
context:
space:
mode:
Diffstat (limited to 'util-linux/getopt.c')
-rw-r--r--util-linux/getopt.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/util-linux/getopt.c b/util-linux/getopt.c
index 061750e..ee6c143 100644
--- a/util-linux/getopt.c
+++ b/util-linux/getopt.c
@@ -155,7 +155,14 @@ static int generate_output(char **argv, int argc, const char *optstr, const stru
if (quiet_errors) /* No error reporting from getopt(3) */
opterr = 0;
- optind = 0; /* Reset getopt(3) */
+
+ /* Reset getopt(3) (see libbb/getopt32.c for long rant) */
+#ifdef __GLIBC__
+ optind = 0;
+#else /* BSD style */
+ optind = 1;
+ /* optreset = 1; */
+#endif
while (1) {
opt =