diff options
author | Denis Vlasenko | 2008-10-20 07:52:33 +0000 |
---|---|---|
committer | Denis Vlasenko | 2008-10-20 07:52:33 +0000 |
commit | d1660cb9ad3adb4b99c098de88f79cbeb74c3a5d (patch) | |
tree | cddc476b03fc1eb2eb95f16399b55348b306885e /libbb/getopt32.c | |
parent | 802a7be54ffcf6e45808d72e2562456bba564028 (diff) | |
download | busybox-d1660cb9ad3adb4b99c098de88f79cbeb74c3a5d.zip busybox-d1660cb9ad3adb4b99c098de88f79cbeb74c3a5d.tar.gz |
ash: fix a bug in standalone mode (corrupted getopt() state)
Diffstat (limited to 'libbb/getopt32.c')
-rw-r--r-- | libbb/getopt32.c | 22 |
1 files changed, 0 insertions, 22 deletions
diff --git a/libbb/getopt32.c b/libbb/getopt32.c index 43fb6eb..49fb533 100644 --- a/libbb/getopt32.c +++ b/libbb/getopt32.c @@ -515,28 +515,6 @@ getopt32(char **argv, const char *applet_opts, ...) } } - /* In case getopt32 was already called: - * reset the libc getopt() function, which keeps internal state. - * - * BSD-derived getopt() functions require that optind be set to 1 in - * order to reset getopt() state. This used to be generally accepted - * way of resetting getopt(). However, glibc's getopt() - * has additional getopt() state beyond optind, and requires that - * optind be set to zero to reset its state. So the unfortunate state of - * affairs is that BSD-derived versions of getopt() misbehave if - * optind is set to 0 in order to reset getopt(), and glibc's getopt() - * will core dump if optind is set 1 in order to reset getopt(). - * - * More modern versions of BSD require that optreset be set to 1 in - * order to reset getopt(). Sigh. Standards, anyone? - */ -#ifdef __GLIBC__ - optind = 0; -#else /* BSD style */ - optind = 1; - /* optreset = 1; */ -#endif - /* optarg = NULL; opterr = 0; optopt = 0; - do we need this?? */ pargv = NULL; /* Note: just "getopt() <= 0" will not work well for |