diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2008-01-28 22:57:10 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2008-01-28 22:57:10 +0000 |
commit | 9772816570f0a63ac301f1885292b064e23f5310 (patch) | |
tree | a8e9c2947cd4dbc718989d508dfc742840a16e81 /libbb/vfork_daemon_rexec.c | |
parent | 73032ca04be49c096f745f0873d67d9c831642bd (diff) | |
download | busybox-w32-9772816570f0a63ac301f1885292b064e23f5310.tar.gz busybox-w32-9772816570f0a63ac301f1885292b064e23f5310.tar.bz2 busybox-w32-9772816570f0a63ac301f1885292b064e23f5310.zip |
*: move getopt reset code to better place(s)
Diffstat (limited to 'libbb/vfork_daemon_rexec.c')
-rw-r--r-- | libbb/vfork_daemon_rexec.c | 20 |
1 files changed, 0 insertions, 20 deletions
diff --git a/libbb/vfork_daemon_rexec.c b/libbb/vfork_daemon_rexec.c index 3a386c5c9..98339c930 100644 --- a/libbb/vfork_daemon_rexec.c +++ b/libbb/vfork_daemon_rexec.c | |||
@@ -137,26 +137,6 @@ int run_nofork_applet_prime(struct nofork_save_area *old, int applet_no, char ** | |||
137 | * die_sleep and longjmp here instead. */ | 137 | * die_sleep and longjmp here instead. */ |
138 | die_sleep = -1; | 138 | die_sleep = -1; |
139 | 139 | ||
140 | /* Reset the libc getopt() function, which keeps internal state. | ||
141 | * | ||
142 | * BSD-derived getopt() functions require that optind be reset to 1 in | ||
143 | * order to reset getopt() state. This used to be generally accepted | ||
144 | * way of resetting getopt(). However, glibc's getopt() | ||
145 | * has additional getopt() state beyond optind, and requires that | ||
146 | * optind be set zero to reset its state. So the unfortunate state of | ||
147 | * affairs is that BSD-derived versions of getopt() misbehave if | ||
148 | * optind is set to 0 in order to reset getopt(), and glibc's getopt() | ||
149 | * will core ump if optind is set 1 in order to reset getopt(). | ||
150 | * | ||
151 | * More modern versions of BSD require that optreset be set to 1 in | ||
152 | * order to reset getopt(). Sigh. Standards, anyone? | ||
153 | */ | ||
154 | #ifdef __GLIBC__ | ||
155 | optind = 0; | ||
156 | #else /* BSD style */ | ||
157 | optind = 1; | ||
158 | /* optreset = 1; */ | ||
159 | #endif | ||
160 | /* option_mask32 = 0; - not needed */ | 140 | /* option_mask32 = 0; - not needed */ |
161 | 141 | ||
162 | argc = 1; | 142 | argc = 1; |