mirror of
https://git.savannah.gnu.org/git/gnulib.git
synced 2025-08-17 12:41:05 +03:00
getopt-gnu: match recent glibc fixes and posix ruling
The POSIX folks admitted that codifying the behavior of GNU getopt on a leading '+' in optstring is worthwhile, for writing programs such as env(1) even when POSIXLY_CORRECT is not defined. http://austingroupbugs.net/view.php?id=191 However, the ruling is an enhancement request for the next version of POSIX, and is not binding on platforms that comply with POSIX 2008, so it should only be enforced for getopt-gnu. * tests/test-getopt.h (test_getopt): Strengthen tests of leading '+' handling, when requesting extensions. * tests/test-getopt_long.h (test_getopt_long): Strengthen test of 'W;' handling. * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Detect glibc 2.11 bug. * doc/posix-functions/getopt.texi (getopt): Document this. * doc/glibc-functions/getopt_long.texi (getopt_long): Likewise. * doc/glibc-functions/getopt_long_only.texi (getopt_long_only): Likewise.
This commit is contained in:
@@ -29,6 +29,10 @@ The function @code{getopt} does not support the @samp{+} flag in the options
|
||||
string on some platforms:
|
||||
MacOS X 10.5, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10.
|
||||
@item
|
||||
The function @code{getopt} does not obey the combination of @samp{+}
|
||||
and @samp{:} flags in the options string on some platforms:
|
||||
glibc 2.11.
|
||||
@item
|
||||
The function @code{getopt} does not obey the @samp{-} flag in the options
|
||||
string when @env{POSIXLY_CORRECT} is set on some platforms:
|
||||
Cygwin 1.7.0.
|
||||
@@ -58,10 +62,9 @@ testsuite.
|
||||
@item
|
||||
The glibc implementation allows a complete reset of the environment,
|
||||
including re-checking for @env{POSIXLY_CORRECT}, by setting
|
||||
@code{optind} to 0. Other implementations provide @code{optreset},
|
||||
@code{optind} to 0. Several BSD implementations provide @code{optreset},
|
||||
causing a reset by setting it non-zero, although it does not
|
||||
necessarily re-read @env{POSIXLY_CORRECT}.
|
||||
@item
|
||||
Mixing a leading @samp{-} or @samp{+} with a leading @samp{:} in the
|
||||
optstring argument has inconsistent effects across platforms.
|
||||
necessarily re-read @env{POSIXLY_CORRECT}. Solaris @code{getopt} does
|
||||
not support either reset method, but does not maintain state that
|
||||
needs the extra level of reset.
|
||||
@end itemize
|
||||
|
Reference in New Issue
Block a user