On Thu, Aug 04, 2016 at 05:59:08PM +0200, Jilles Tjoelker wrote: > >From 23da600dcff616662a93f307420d9142598e2cae Mon Sep 17 00:00:00 2001 > From: Jilles Tjoelker <jilles@xxxxxxxx> > Date: Thu, 4 Aug 2016 17:51:12 +0200 > Subject: [PATCH 1/2] [HISTEDIT] Stop depending on getopt reset feature. > Instead, use our own nextopt() function. > --- > src/histedit.c | 7 +------ > 1 file changed, 1 insertion(+), 6 deletions(-) > > diff --git a/src/histedit.c b/src/histedit.c > index 94465d7..ec45065 100644 > --- a/src/histedit.c > +++ b/src/histedit.c > @@ -214,13 +214,8 @@ histcmd(int argc, char **argv) > if (argc == 1) > sh_error("missing history argument"); > > -#ifdef __GLIBC__ > - optind = 0; > -#else > - optreset = 1; optind = 1; /* initialize getopt */ > -#endif > while (not_fcnumber(argv[optind]) && > - (ch = getopt(argc, argv, ":e:lnrs")) != -1) > + (ch = nextopt(":e:lnrs")) != '\0') > switch ((char)ch) { > case 'e': > editor = optionarg; This is clearly wrong; not_fcnumber() should be passed *argptr instead of something bogus depending on optind. The fixed version is what FreeBSD sh has as of SVN r240541 but I have not tested it in dash. In any case, a side effect of this change is a small code size reduction. -- Jilles Tjoelker -- To unsubscribe from this list: send the line "unsubscribe dash" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html