diff options
author | Mike Frysinger <vapier@gentoo.org> | 2005-03-04 04:33:17 +0300 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2005-03-04 04:33:17 +0300 |
commit | dcc40b7ecc582e5c613276f0a92b942bead8ccd6 (patch) | |
tree | a78b573197933a69b70adbe6225d9feffae96316 | |
parent | 9b9e5479e84a49df631c92192d76770ea016bb3e (diff) |
Shaun Jackman writes: Newlib uses both __getopt_initialized and optind to track initialization of getopt()
-rw-r--r-- | shell/lash.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/shell/lash.c b/shell/lash.c index f454e6990..c4655acd8 100644 --- a/shell/lash.c +++ b/shell/lash.c @@ -1277,11 +1277,17 @@ static int pseudo_exec(struct child_prog *child) name = child->argv[0]; { - char** argv_l=child->argv; - int argc_l; - for(argc_l=0;*argv_l!=NULL; argv_l++, argc_l++); - optind = 1; - run_applet_by_name(name, argc_l, child->argv); + char** argv_l=child->argv; + int argc_l; +#ifdef _NEWLIB_VERSION + /* newlib uses __getopt_initialized for getopt() in + * addition to optind, see newlib/libc/sys/linux/getopt.c + */ + extern int __getopt_initialized = 0; +#endif + for(argc_l=0;*argv_l!=NULL; argv_l++, argc_l++); + optind = 1; + run_applet_by_name(name, argc_l, child->argv); } #endif |