Am 08.01.2019 um 15:51 hat Eric Blake geschrieben: > On 1/8/19 6:16 AM, Kevin Wolf wrote: > > Unconditionally setting optind = 1 looks fine. I would, however, quote a > > different part of the glibc man page (in addition or instead of the > > paragraph you already quoted): > > > > The variable optind is the index of the next element to be > > processed in argv. The system initializes this value to 1. The > > caller can reset it to 1 to restart scanning of the same argv, or > > when scanning a new argument vector. > > > > This makes it pretty clear that optind = 1 is fine for our case with > > glibc. The FreeBSD man page still suggests that we need optreset = 1, so > > I suppose we'd end up with something like: > > > > ... > > optind = 1; > > #ifdef __FreeBSD__ > > optreset = 1; > > #endif > > If you really want to set optreset for BSD systems, I'd do a configure > probe for whether optreset exists, and if so set it for ALL platforms > that have optreset, not just for __FreeBSD__. (That, and checkpatch.pl > will gripe if you don't do it that way). > > But I'm leaning towards not bothering with optreset UNLESS someone > proves they have a case where it actually matters.
I don't mind either way as long as it works. Using optreset would be following the spec by the letter. In fact, I had already applied this patch because it's correct even if possibly incomplete, depending on your interpretation, but I decided to reply instead because the commit message didn't really describe that optreset = 1 is correct for glibc, but that optreset = 0 is necessary in some other case (which is irrelevant here). So the commit message was my main point. Kevin
signature.asc
Description: PGP signature