NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: lib/59828: getopt(3) GNU extension wrong behavior



"Michael van Elst via gnats" <gnats-admin%NetBSD.org@localhost> writes:

>  NetBSD date doesn't have an -I option.
>  
>  The coreutils package from pkgsrc contains a date command, but
>  which works the same as on Linux:
>  
>  NetBSD-10, coreutils-9.6nb1:
>  
>  % /usr/pkg/gnu/bin/date -I date
>  date: invalid date date

Sorry, copied that stupidly forgetting that the date tool might be
different. First contribution, so I didn't have that on my radar.

>  I don't think your interpretation of the manual page is correct,
>  but without an example for "x::" maybe misleading.

From a quick perusal it seems that sed ant syslogd for example are using
it.  On the ports side it might be more.

>  "If an individual character is followed by two colons, then the
>  option argument is optional; optarg is set to the rest of the
>  current argv word, or NULL if there were no more characters in the
>  current word."
>  
>  So, the option argument is "the rest of the current argv word" or "NULL".
>  It is never "the following word if that doesn't start with a dash".

The paragraph ends with

"It does not matter to getopt() if a following argument has leading
whitespace."

I guess that is the part I am unsure about and interpretet as also
counting for the double colon case.

>  No idea why FreeBSD calls it a "GNU extension" while NetBSD calls it
>  a "NetBSD extension" or who actually created it...

In the source code to getopt it is calledt a GNU extension.

If the consensus is that the wording about the whitespace doesn't apply
to the double colon case, then happy to drop it.  From a consistency or
UX viewpoint I would say it makes sense to allow the whitespace for
both, single and double colon.



Home | Main Index | Thread Index | Old Index