ash: fix a bug in standalone mode (corrupted getopt() state)

This commit is contained in:
Denis Vlasenko 2008-10-20 07:52:33 +00:00
parent 802a7be54f
commit d1660cb9ad
5 changed files with 43 additions and 33 deletions

View file

@ -142,7 +142,8 @@ static const char *normalize(const char *arg)
* Other settings are found in global variables.
*/
#if !ENABLE_GETOPT_LONG
#define generate_output(argv,argc,optstr,longopts) generate_output(argv,argc,optstr)
#define generate_output(argv,argc,optstr,longopts) \
generate_output(argv,argc,optstr)
#endif
static int generate_output(char **argv, int argc, const char *optstr, const struct option *longopts)
{
@ -156,14 +157,6 @@ static int generate_output(char **argv, int argc, const char *optstr, const stru
if (quiet_errors) /* No error reporting from getopt(3) */
opterr = 0;
/* 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 =
#if ENABLE_GETOPT_LONG