1. 24 Dec, 2009 4 commits
    • Eric Blake's avatar
      tests: add signature checks · 89ae4589
      Eric Blake authored
      These tests will help catch problems similar to the one recently
      fixed for cygwin declaring getsubopt and symlinkat in the wrong header.
      
      * tests/signature.h (SIGNATURE_CHECK): New file.
      * modules/atexit-tests (Files): Use it.
      * modules/btowc-tests (Files): Likewise.
      * modules/canonicalize-lgpl-tests (Files): Likewise.
      * modules/ceilf-tests (Files): Likewise.
      * modules/ceill-tests (Files): Likewise.
      * modules/chown-tests (Files): Likewise.
      * modules/dprintf-posix-tests (Files): Likewise.
      * modules/dup2-tests (Files): Likewise.
      * modules/dup3-tests (Files): Likewise.
      * modules/duplocale-tests (Files): Likewise.
      * modules/fchdir-tests (Files): Likewise.
      * modules/fcntl-tests (Files): Likewise.
      * modules/fdopendir-tests (Files): Likewise.
      * modules/fflush-tests (Files): Likewise.
      * modules/flock-tests (Files): Likewise.
      * modules/floorf-tests (Files): Likewise.
      * modules/floorl-tests (Files): Likewise.
      * modules/fnmatch-tests (Files): Likewise.
      * modules/fopen-tests (Files): Likewise.
      * modules/fprintf-posix-tests (Files): Likewise.
      * modules/freopen-tests (Files): Likewise.
      * modules/frexp-nolibm-tests (Files): Likewise.
      * modules/frexp-tests (Files): Likewise.
      * modules/frexpl-nolibm-tests (Files): Likewise.
      * modules/frexpl-tests (Files): Likewise.
      * modules/fseek-tests (Files): Likewise.
      * modules/fseeko-tests (Files): Likewise.
      * modules/fsync-tests (Files): Likewise.
      * modules/ftell-tests (Files): Likewise.
      * modules/ftello-tests (Files): Likewise.
      * modules/futimens-tests (Files): Likewise.
      * modules/getaddrinfo-tests (Files): Likewise.
      * modules/getcwd-tests (Files): Likewise.
      * modules/getdelim-tests (Files): Likewise.
      * modules/getdtablesize-tests (Files): Likewise.
      * modules/getgroups-tests (Files): Likewise.
      * modules/gethostname-tests (Files): Likewise.
      * modules/getline-tests (Files): Likewise.
      * modules/getopt-posix-tests (Files): Likewise.
      * modules/gettimeofday-tests (Files): Likewise.
      * modules/glob-tests (Files): Likewise.
      * modules/iconv-tests (Files): Likewise.
      * modules/inet_ntop-tests (Files): Likewise.
      * modules/inet_pton-tests (Files): Likewise.
      * modules/isblank-tests (Files): Likewise.
      * modules/lchown-tests (Files): Likewise.
      * modules/ldexpl-tests (Files): Likewise.
      * modules/link-tests (Files): Likewise.
      * modules/linkat-tests (Files): Likewise.
      * modules/lseek-tests (Files): Likewise.
      * modules/lstat-tests (Files): Likewise.
      * modules/mbrtowc-tests (Files): Likewise.
      * modules/mbsinit-tests (Files): Likewise.
      * modules/mbsnrtowcs-tests (Files): Likewise.
      * modules/mbsrtowcs-tests (Files): Likewise.
      * modules/memchr-tests (Files): Likewise.
      * modules/memcmp-tests (Files): Likewise.
      * modules/memmem-tests (Files): Likewise.
      * modules/memrchr-tests (Files): Likewise.
      * modules/mkdir-tests (Files): Likewise.
      * modules/mkfifo-tests (Files): Likewise.
      * modules/mkfifoat-tests (Files): Likewise.
      * modules/mknod-tests (Files): Likewise.
      * modules/nanosleep-tests (Files): Likewise.
      * modules/nl_langinfo-tests (Files): Likewise.
      * modules/obstack-printf-tests (Files): Likewise.
      * modules/open-tests (Files): Likewise.
      * modules/openat-tests (Files): Likewise.
      * modules/perror-tests (Files): Likewise.
      * modules/pipe2-tests (Files): Likewise.
      * modules/poll-tests (Files): Likewise.
      * modules/popen-tests (Files): Likewise.
      * modules/posix_spawn-tests (Files): Likewise.
      * modules/posix_spawnp-tests (Files): Likewise.
      * modules/pread-tests (Files): Likewise.
      * modules/printf-posix-tests (Files): Likewise.
      * modules/pty-tests (Files): Likewise.
      * modules/random_r-tests (Files): Likewise.
      * modules/rawmemchr-tests (Files): Likewise.
      * modules/readlink-tests (Files): Likewise.
      * modules/remove-tests (Files): Likewise.
      * modules/rename-tests (Files): Likewise.
      * modules/renameat-tests (Files): Likewise.
      * modules/rmdir-tests (Files): Likewise.
      * modules/round-tests (Files): Likewise.
      * modules/roundf-tests (Files): Likewise.
      * modules/roundl-tests (Files): Likewise.
      * modules/select-tests (Files): Likewise.
      * modules/setenv-tests (Files): Likewise.
      * modules/sigaction-tests (Files): Likewise.
      * modules/sleep-tests (Files): Likewise.
      * modules/snprintf-posix-tests (Files): Likewise.
      * modules/snprintf-tests (Files): Likewise.
      * modules/sprintf-posix-tests (Files): Likewise.
      * modules/stat-tests (Files): Likewise.
      * modules/strcasestr-tests (Files): Likewise.
      * modules/strchrnul-tests (Files): Likewise.
      * modules/strerror-tests (Files): Likewise.
      * modules/strsignal-tests (Files): Likewise.
      * modules/strstr-tests (Files): Likewise.
      * modules/strtod-tests (Files): Likewise.
      * modules/strverscmp-tests (Files): Likewise.
      * modules/symlink-tests (Files): Likewise.
      * modules/symlinkat-tests (Files): Likewise.
      * modules/times-tests (Files): Likewise.
      * modules/trunc-tests (Files): Likewise.
      * modules/truncf-tests (Files): Likewise.
      * modules/truncl-tests (Files): Likewise.
      * modules/tsearch-tests (Files): Likewise.
      * modules/uname-tests (Files): Likewise.
      * modules/unlink-tests (Files): Likewise.
      * modules/unsetenv-tests (Files): Likewise.
      * modules/usleep-tests (Files): Likewise.
      * modules/utimensat-tests (Files): Likewise.
      * modules/vasprintf-tests (Files): Likewise.
      * modules/vdprintf-posix-tests (Files): Likewise.
      * modules/vfprintf-posix-tests (Files): Likewise.
      * modules/vprintf-posix-tests (Files): Likewise.
      * modules/vsnprintf-posix-tests (Files): Likewise.
      * modules/vsnprintf-tests (Files): Likewise.
      * modules/vsprintf-posix-tests (Files): Likewise.
      * modules/wcrtomb-tests (Files): Likewise.
      * modules/wcsnrtombs-tests (Files): Likewise.
      * modules/wcsrtombs-tests (Files): Likewise.
      * modules/wcwidth-tests (Files): Likewise.
      * tests/test-isfinite.c (isfinite): Ensure macro declaration.
      * tests/test-isinf.c (isinf): Likewise.
      * tests/test-isnan.c (isnan): Likewise.
      * tests/test-signbit.c (signbit): Likewise.
      * tests/test-select.c (FD_CLR, FD_ISSET, FD_SET, FD_ZERO): Ensure
      declaration, either as macro or with correct signature.
      (select): Ensure function under test is declared with correct
      signature in correct header.
      * tests/test-atexit.c (atexit): Likewise.
      * tests/test-btowc.c (btowc): Likewise.
      * tests/test-canonicalize-lgpl.c (realpath)
      (canonicalize_file_name): Likewise.
      * tests/test-ceilf1.c (ceilf): Likewise.
      * tests/test-ceill.c (ceill): Likewise.
      * tests/test-chown.c (chown): Likewise.
      * tests/test-dprintf-posix.c (dprintf): Likewise.
      * tests/test-dup2.c (dup2): Likewise.
      * tests/test-dup3.c (dup3): Likewise.
      * tests/test-duplocale.c (duplocale): Likewise.
      * tests/test-fchdir.c (fchdir): Likewise.
      * tests/test-fchownat.c (fchownat): Likewise.
      * tests/test-fcntl.c (fcntl): Likewise.
      * tests/test-fdopendir.c (fdopendir): Likewise.
      * tests/test-fflush.c (fflush): Likewise.
      * tests/test-flock.c (flock): Likewise.
      * tests/test-floorf1.c (floorf): Likewise.
      * tests/test-floorl.c (floorl): Likewise.
      * tests/test-fnmatch.c (fnmatch): Likewise.
      * tests/test-fopen.c (fopen): Likewise.
      * tests/test-fprintf-posix.c (fprintf): Likewise.
      * tests/test-freopen.c (freopen): Likewise.
      * tests/test-frexp.c (frexp): Likewise.
      * tests/test-frexpl.c (frexpl): Likewise.
      * tests/test-fseek.c (fseek): Likewise.
      * tests/test-fseeko.c (fseeko): Likewise.
      * tests/test-fstatat.c (fstatat): Likewise.
      * tests/test-fsync.c (fsync): Likewise.
      * tests/test-ftell.c (ftell): Likewise.
      * tests/test-ftello.c (ftello): Likewise.
      * tests/test-futimens.c (futimens): Likewise.
      * tests/test-getaddrinfo.c (getaddrinfo, freeaddrinfo)
      (gai_strerror): Likewise.
      * tests/test-getcwd.c (getcwd): Likewise.
      * tests/test-getdelim.c (getdelim): Likewise.
      * tests/test-getdtablesize.c (getdtablesize): Likewise.
      * tests/test-getgroups.c (getgroups): Likewise.
      * tests/test-gethostname.c (gethostname): Likewise.
      * tests/test-getline.c (getline): Likewise.
      * tests/test-getopt.c (getopt, getopt_long, getopt_long_only):
      Likewise.
      * tests/test-gettimeofday.c (gettimeofday): Likewise.
      * tests/test-glob.c (glob, globfree): Likewise.
      * tests/test-iconv.c (iconv, iconv_open, iconv_close): Likewise.
      * tests/test-inet_ntop.c (inet_ntop): Likewise.
      * tests/test-inet_pton.c (inet_pton): Likewise.
      * tests/test-isblank.c (isblank): Likewise.
      * tests/test-lchown.c (lchown): Likewise.
      * tests/test-ldexpl.c (ldexpl): Likewise.
      * tests/test-link.c (link): Likewise.
      * tests/test-linkat.c (linkat): Likewise.
      * tests/test-lseek.c (lseek): Likewise.
      * tests/test-lstat.c (lstat): Likewise.
      * tests/test-mbrtowc.c (mbrtowc): Likewise.
      * tests/test-mbsinit.c (mbsinit): Likewise.
      * tests/test-mbsnrtowcs.c (mbsnrtowcs): Likewise.
      * tests/test-mbsrtowcs.c (mbsrtowcs): Likewise.
      * tests/test-memchr.c (memchr): Likewise.
      * tests/test-memcmp.c (memcmp): Likewise.
      * tests/test-memmem.c (memmem): Likewise.
      * tests/test-memrchr.c (memrchr): Likewise.
      * tests/test-mkdir.c (mkdir): Likewise.
      * tests/test-mkdirat.c (mkdirat): Likewise.
      * tests/test-mkfifo.c (mkfifo): Likewise.
      * tests/test-mkfifoat.c (mkfifoat, mknodat): Likewise.
      * tests/test-mknod.c (mknod): Likewise.
      * tests/test-nanosleep.c (nanosleep): Likewise.
      * tests/test-nl_langinfo.c (nl_langinfo): Likewise.
      * tests/test-obstack-printf.c (obstack_printf, obstack_vprintf):
      Likewise.
      * tests/test-open.c (open): Likewise.
      * tests/test-openat.c (openat): Likewise.
      * tests/test-perror.c (perror): Likewise.
      * tests/test-pipe2.c (pipe2): Likewise.
      * tests/test-poll.c (poll): Likewise.
      * tests/test-popen.c (popen, pclose): Likewise.
      * tests/test-posix_spawn1.c (posix_spawnp, posix_spawnattr_init)
      (posix_spawnattr_destroy, posix_spawnattr_setsigmask)
      (posix_spawnattr_setflags, posix_spawn_file_actions_init)
      (posix_spawn_file_actions_destroy)
      (posix_spawn_file_actions_addclose)
      (posix_spawn_file_actions_addopen)
      (posix_spawn_file_actions_adddup2): Likewise.
      * tests/test-posix_spawn3.c (posix_spawn): Likewise.
      * tests/test-pread.c (pread): Likewise.
      * tests/test-printf-posix.c (printf): Likewise.
      * tests/test-pty.c (openpty, forkpty): Likewise.
      * tests/test-random_r.c (srandom_r, initstate_r, setstate_r)
      (random_r): Likewise.
      * tests/test-rawmemchr.c (rawmemchr): Likewise.
      * tests/test-readlink.c (readlink): Likewise.
      * tests/test-remove.c (remove): Likewise.
      * tests/test-rename.c (rename): Likewise.
      * tests/test-renameat.c (renameat): Likewise.
      * tests/test-rmdir.c (rmdir): Likewise.
      * tests/test-round1.c (round): Likewise.
      * tests/test-roundf1.c (roundf): Likewise.
      * tests/test-roundl.c (roundl): Likewise.
      * tests/test-setenv.c (setenv): Likewise.
      * tests/test-sigaction.c (sigaction): Likewise.
      * tests/test-sleep.c (sleep): Likewise.
      * tests/test-snprintf.c (snprintf): Likewise.
      * tests/test-sprintf-posix.c (sprintf): Likewise.
      * tests/test-stat.c (stat): Likewise.
      * tests/test-stpncpy.c (stpncpy): Likewise.
      * tests/test-strcasestr.c (strcasestr): Likewise.
      * tests/test-strchrnul.c (strchrnul): Likewise.
      * tests/test-strerror.c (strerror): Likewise.
      * tests/test-strsignal.c (strsignal): Likewise.
      * tests/test-strstr.c (strstr): Likewise.
      * tests/test-strtod.c (strtod): Likewise.
      * tests/test-strverscmp.c (strverscmp): Likewise.
      * tests/test-symlink.c (symlink): Likewise.
      * tests/test-symlinkat.c (symlinkat, readlinkat): Likewise.
      * tests/test-times.c (times): Likewise.
      * tests/test-trunc1.c (trunc): Likewise.
      * tests/test-truncf1.c (truncf): Likewise.
      * tests/test-truncl.c (truncl): Likewise.
      * tests/test-tsearch.c (tdelete, tfind, tsearch, twalk):
      Likewise.
      * tests/test-uname.c (uname): Likewise.
      * tests/test-unlink.c (unlink): Likewise.
      * tests/test-unlinkat.c (unlinkat): Likewise.
      * tests/test-unsetenv.c (unsetenv): Likewise.
      * tests/test-usleep.c (usleep): Likewise.
      * tests/test-utimensat.c (utimensat): Likewise.
      * tests/test-vasprintf.c (asprintf, vasprintf): Likewise.
      * tests/test-vdprintf-posix.c (vdprintf): Likewise.
      * tests/test-vfprintf-posix.c (vfprintf): Likewise.
      * tests/test-vprintf-posix.c (vprintf): Likewise.
      * tests/test-vsnprintf.c (vsnprintf): Likewise.
      * tests/test-vsprintf-posix.c (vsprintf): Likewise.
      * tests/test-wcrtomb.c (wcrtomb): Likewise.
      * tests/test-wcsnrtombs.c (wcsnrtombs): Likewise.
      * tests/test-wcsrtombs.c (wcsrtombs): Likewise.
      * tests/test-wcwidth.c (wcwidth): Likewise.
      Signed-off-by: default avatarEric Blake <ebb9@byu.net>
      89ae4589
    • Eric Blake's avatar
      build: pull in conditional headers during GNULIB_POSIXCHECK · d3e8c326
      Eric Blake authored
      Any time we conditionally include a header in order to satisfy
      prerequisites of one module, we must also include that header
      under GNULIB_POSIXCHECK to avoid compilation errors if that
      module is not in use.  If this is not done, then our link warning
      override can occur before the system's declaration, which
      causes a syntax error when the system header is finally included.
      
      * lib/stdio.in.h (includes): Using GNULIB_POSIXCHECK also requires
      definitions from any conditionally-included headers.
      * lib/stdlib.in.h (includes): Likewise.
      * lib/unistd.in.h (includes): Likewise.
      Signed-off-by: default avatarEric Blake <ebb9@byu.net>
      d3e8c326
    • Bruno Haible's avatar
    • Eric Blake's avatar
      unistd: work around cygwin bug · 86c22b43
      Eric Blake authored
      Cygwin 1.7.1 placed symlinkat and unlinkat in the wrong headers
      (due to a bug in the Linux man pages).
      
      * lib/unistd.in.h (includes): Pick up headers needed for cygwin.
      * doc/posix-functions/unlinkat.texi (unlinkat): Document the bug.
      * doc/posix-functions/symlinkat.texi (symlinkat): Likewise.
      Signed-off-by: default avatarEric Blake <ebb9@byu.net>
      86c22b43
  2. 23 Dec, 2009 8 commits
    • Bruno Haible's avatar
      localename: more tests · 2b59261c
      Bruno Haible authored
      2b59261c
    • Bruno Haible's avatar
      localename: Make aware of thread locale. · 85de14f6
      Bruno Haible authored
      85de14f6
    • Eric Blake's avatar
      va-args: new module · 744df8b1
      Eric Blake authored
      * modules/va-args: New file.
      * m4/va-args.m4 (gl_VA_ARGS): Likewise.
      * MODULES.html.sh (Core language properties): Mention it.
      Signed-off-by: default avatarEric Blake <ebb9@byu.net>
      744df8b1
    • Eric Blake's avatar
      gnulib-common: prefer _GL_UNUSED over _UNUSED_PARAMETER_ · 169ab5de
      Eric Blake authored
      There are more contexts where __attribute__((__unused__)) is
      useful than just parameter lists.  Also, naming the macro
      _GL_UNUSED fits with the recent addition of _GL_ARG_NONNULL.
      Preserve the name _UNUSED_PARAMETER_ for backwards-compatible
      use in external projects.
      
      * m4/gnulib-common.m4 (gl_COMMON): Create a more-appropriately
      named alias for __attribute__((__unused__)).
      * lib/chown.c: Update client.
      * lib/fchmodat.c: Likewise.
      * lib/fts.c: Likewise.
      * lib/getdate.y: Likewise.
      * lib/getgroups.c: Likewise.
      * lib/getopt.c: Likewise.
      * lib/getugroups.c: Likewise.
      * lib/mkdir.c: Likewise.
      * lib/mkfifo.c: Likewise.
      * lib/mkfifoat.c: Likewise.
      * lib/mknod.c: Likewise.
      * lib/mknodat.c: Likewise.
      * lib/readlink.c: Likewise.
      * lib/se-context.in.h: Likewise.
      * lib/se-selinux.in.h: Likewise.
      * lib/sockets.c: Likewise.
      * lib/symlink.c: Likewise.
      * lib/symlinkat.c: Likewise.
      * lib/unicodeio.c: Likewise.
      * lib/unistr.h: Likewise.
      * tests/test-areadlink.c: Likewise.
      * tests/test-areadlinkat.c: Likewise.
      * tests/test-filenamecat.c: Likewise.
      * tests/test-fseeko.c: Likewise.
      * tests/test-ftello.c: Likewise.
      * tests/test-getdate.c: Likewise.
      * tests/test-getgroups.c: Likewise.
      * tests/test-gethostname.c: Likewise.
      * tests/test-quotearg.c: Likewise.
      * tests/test-version-etc.c: Likewise.
      * tests/test-xalloc-die.c: Likewise.
      * tests/test-xfprintf-posix.c: Likewise.
      * tests/test-xprintf-posix.c: Likewise.
      * tests/test-xvasprintf.c: Likewise.
      Signed-off-by: default avatarEric Blake <ebb9@byu.net>
      169ab5de
    • Eric Blake's avatar
      tests: avoid compiler warnings · b72fe29b
      Eric Blake authored
      Silence more warnings during coreutils build.
      
      * tests/test-fcntl.c (main): Delete unused parameters.
      * tests/test-freopen-safer.c (main): Likewise.
      * tests/test-xalloc-die.c (main): Mark unused parameters.
      * tests/test-fseeko.c (main): Likewise.
      * tests/test-ftello.c (main): Likewise.
      * tests/test-nanosleep.c (main): Avoid declaration warning.
      * tests/test-sleep.c (main): Likewise.
      * tests/test-unsetenv.c (main): Silence warning about string
      literal.
      * m4/setenv.m4 (gl_FUNC_UNSETENV): Likewise.
      Signed-off-by: default avatarEric Blake <ebb9@byu.net>
      b72fe29b
    • Bruno Haible's avatar
      More localename tests. · 37a41419
      Bruno Haible authored
      37a41419
    • Bruno Haible's avatar
    • Bruno Haible's avatar
  3. 22 Dec, 2009 8 commits
    • Eric Blake's avatar
      math, unistd: avoid redundant includes · adbded99
      Eric Blake authored
      * lib/math.in.h (isnan): No need to re-include <math.h>.
      * lib/unistd.in.h (getcwd): Likewise, for <stdlib.h>.
      Signed-off-by: default avatarEric Blake <ebb9@byu.net>
      adbded99
    • Eric Blake's avatar
      getsubopt: work around cygwin bug · 4e86671a
      Eric Blake authored
      On cygwin, compiling with -DGNULIB_POSIXCHECK failed because
      the getsubopt link warning definition interfered with the
      inclusion of the system header.  The fix, as always in these
      types of problems, is to ensure that system headers are
      completely included before doing any overrides.
      
      * lib/stdlib.in.h (includes): Move unistd inclusion sooner, to
      avoid conflicting with system getsubopt.
      * doc/posix-functions/getsubopt.texi (getsubopt): Document the
      bug.
      Signed-off-by: default avatarEric Blake <ebb9@byu.net>
      4e86671a
    • Eric Blake's avatar
      getopt: synchronize from glibc · 2494f34b
      Eric Blake authored
      Make gnulib closer to glibc, to make tracking it easier to track
      extent of pending patches against glibc.
      
      * lib/getopt.c (_getopt_initialize, _getopt_internal_r): Swap
      parameter order.  Adjust all callers.
      (_getopt_internal_r, main): Adjust quoting in error messages.
      Drop considerations for outdated POSIX 1003.2 error message.
      * lib/getopt1.c (_getopt_long_r, _getopt_long_only_r): Adjust
      callers.
      * lib/getopt_int.h (_getopt_internal_r): Adjust prototype.
      Signed-off-by: default avatarEric Blake <ebb9@byu.net>
      2494f34b
    • Eric Blake's avatar
      test-getopt: test stderr behavior · 3c8bb39b
      Eric Blake authored
      Portions of this commit are commented out because they tickle
      glibc bugs.  For a real-life example of the bug:
      
      $ env -ua -:
      env: invalid option -- :
      Try `env --help' for more information.
      $ env -:
      env: invalid option -- :
      Try `env --help' for more information.
      $ env -+
      env: invalid option -- +
      Try `env --help' for more information.
      $ env -ua -+
      Try `env --help' for more information.
      
      Notice that when -+ is not given as the first argument, the
      error message is mistakenly suppressed.
      
      * modules/getopt-posix-tests (Depends-on): Add dup2.
      * tests/test-getopt.c (ASSERT): Avoid stderr.
      (main): Move stderr to a temporary file.
      * tests/test-getopt.h (getopt_loop): No longer manipulate opterr.
      Instead, add parameter to inform caller if output occurred.
      (test_getopt): Adjust all tests to expect silence, and add new
      tests of leading ":".
      * doc/glibc-functions/getopt_long.texi (getopt_long): Document
      glibc shortcomings with leading "-:" or "+:" in optstring.
      * doc/glibc-functions/getopt_long_only.texi (getopt_long_only):
      Likewise.
      * doc/posix-functions/getopt.texi (getopt): Likewise.
      Signed-off-by: default avatarEric Blake <ebb9@byu.net>
      3c8bb39b
    • Eric Blake's avatar
      test-getopt: enhance test · a8ec28b6
      Eric Blake authored
      Add coverage of optind==0 for getopt_long, since coreutils
      depends on it.  Also test an optstring containing "W;", since
      that tends to expose corner-case bugs (even in glibc, so the
      test is weaker than it could be).
      
      * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Require that getopt_long
      supports optind=0.
      * tests/test-getopt.c (OPTIND_MIN): Move...
      * tests/test-getopt.h (OPTIND_MIN): ...here.
      * tests/test-getopt_long.h (test_getopt_long): Add more coverage.
      Require that optind=0 works, since modern BSD supports it in
      addition to optreset, and since coreutils expects it.
      (test_getopt_long_only): New test.
      * doc/glibc-functions/getopt_long.texi (getopt_long): Document
      glibc shortcomings with 'W;', and enforcement of optind=0.
      * doc/glibc-functions/getopt_long_only.texi (getopt_long_only):
      Likewise.
      a8ec28b6
    • Bruno Haible's avatar
      Tweak last commit. · 2c77d283
      Bruno Haible authored
      2c77d283
    • Bruno Haible's avatar
      f4afe5ce
    • Bruno Haible's avatar
      38728392
  4. 21 Dec, 2009 1 commit
    • Eric Blake's avatar
      test-utimens: avoid spurious failure · c7362ef0
      Eric Blake authored
      Fixes a spurious failure on ext3, with one-second resolution,
      now that ctime effects are being tested for inequality.
      
      * tests/test-chown.h (nap): Factor...
      * tests/nap.h: ...into new file.
      * tests/test-lchown.h (nap): Avoid duplication.
      * tests/test-utimens-common.h (nap): Use shared implementation,
      necessary on file systems with 1-second resolution.
      * modules/chown-tests (Files): Include new file.
      * modules/fdutimensat-tests (Files): Likewise.
      * modules/futimens-tests (Files): Likewise.
      * modules/lchown-tests (Files): Likewise.
      * modules/openat-tests (Files): Likewise.
      * modules/utimens-tests (Files): Likewise.
      * modules/utimensat-tests (Files): Likewise.
      Signed-off-by: default avatarEric Blake <ebb9@byu.net>
      c7362ef0
  5. 19 Dec, 2009 11 commits
  6. 17 Dec, 2009 5 commits
    • Eric Blake's avatar
      fcntl: use to simplify other modules · e4ee1420
      Eric Blake authored
      Let fcntl do the work, instead of copying code into other modules.
      
      * modules/cloexec (Depends-on): Add fcntl.
      * modules/fchdir (Depends-on): Likewise.
      * modules/fd-safer-flag (Depends-on): Likewise.
      * modules/unistd-safer (Depends-on): Likewise.
      * modules/dup3 (configure.ac): Set module indicator.
      * m4/fchdir.m4 (gl_FUNC_FCHDIR): Replace fcntl if fchdir is
      missing.
      * lib/fchdir.c (_gl_register_dup): Fix comment.
      * lib/cloexec.c (dup_cloexec): Simplify, by relying on fcntl.
      * lib/dup-safer.c (dup_safer): Likewise.
      * lib/dup-safer-flag.c (dup_safer_flag): Likewise.
      * lib/dup3.c (dup3): Likewise.
      * tests/test-fchdir.c (main): Enhance test.
      Fixes a dup_cloexec bug reported by Ondřej Vašík.
      Signed-off-by: default avatarEric Blake <ebb9@byu.net>
      e4ee1420
    • Eric Blake's avatar
      fcntl: port portions of fcntl to mingw · 021c8619
      Eric Blake authored
      Borrow ideas from dup_cloexec and dup3 to implement F_DUPFD and
      F_DUPFD_CLOEXEC.  Support querying the inheritance status via
      F_GETFD, but for now, no support for changing with F_SETFD.
      The remaining portions of fcntl fail with EINVAL.
      
      * m4/fcntl.m4 (gl_FUNC_FCNTL): Also build fcntl.c on mingw.
      * lib/fcntl.c (fcntl) <F_DUPFD, F_DUPFD_CLOEXEC, F_GETFD>: Provide
      replacement for mingw.
      * modules/fcntl (Description): Update.
      (Depends-on): Add dup2.
      * m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Add witness.
      * modules/fcntl-h (Makefile.am): Substitute it.
      * lib/fcntl.in.h (fcntl): Update declaration.
      (F_DUPFD, F_GETFD): New macros, when needed.
      * doc/posix-headers/fcntl.texi (fcntl.h): Update documentation.
      * doc/posix-functions/fcntl.texi (fcntl): Likewise.
      * tests/test-fcntl.c (check_flags, main): Enhance test for items
      we now guarantee.
      Signed-off-by: default avatarEric Blake <ebb9@byu.net>
      021c8619
    • Eric Blake's avatar
      fcntl: work around cygwin bug in F_DUPFD · da91bb7d
      Eric Blake authored
      fcntl(0,F_DUPFD,10000000) mistakenly failed with EMFILE
      instead of EINVAL, and fcntl(0,F_DUPFD,-1) mistakenly passed.
      
      * m4/fcntl.m4 (gl_REPLACE_FCNTL): New macro.
      (gl_FUNC_FCNTL): Use it.  Test for F_DUPFD bug.
      * lib/fcntl.c (rpl_fcntl) <F_DUPFD>: Work around it.
      <F_DUPFD_CLOEXEC>: Reduce calls to _gl_register_dup.
      * doc/posix-functions/fcntl.texi (fcntl): Document it.
      Signed-off-by: default avatarEric Blake <ebb9@byu.net>
      da91bb7d
    • Eric Blake's avatar
      fcntl: support F_DUPFD_CLOEXEC on systems with fcntl · 38f87b03
      Eric Blake authored
      Implement F_DUPFD_CLOEXEC.  The unit test still fails on systems
      with other fcntl bugs (such as cygwin 1.5 mishandling F_DUPFD,
      or mingw lacking fcntl altogether).  Passes on Linux, both with
      and without kernel support, and on cygwin 1.7.
      
      * modules/fcntl (Files): List new files.
      (configure.ac): Run a test.
      * m4/fcntl.m4 (gl_FUNC_FCNTL): New file.
      * lib/fcntl.c (rpl_fcntl): Likewise.
      * m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Add witness defaults.
      (gl_FCNTL_H): Always replace fcntl.h.
      * modules/fcntl-h (Makefile.am): Substitute witnesses.
      * lib/fcntl.in.h (fcntl): Declare replacement.
      (F_DUPFD_CLOEXEC, GNULIB_defined_F_DUPFD_CLOEXEC): New macro when
      needed, plus a witness.
      * doc/posix-functions/fcntl.texi (fcntl): Document this.
      * doc/posix-headers/fcntl.texi (fcntl.h): Likewise.
      * tests/test-fcntl.c: New file.
      * modules/fcntl-tests: Likewise.
      Signed-off-by: default avatarEric Blake <ebb9@byu.net>
      38f87b03
    • Eric Blake's avatar
      binary-io: avoid potential compilation warning · 12126c14
      Eric Blake authored
      * lib/binary-io.h [__DJGPP__]: Avoid null preprocessor
      directives.
      Signed-off-by: default avatarEric Blake <ebb9@byu.net>
      12126c14
  7. 16 Dec, 2009 2 commits
    • Eric Blake's avatar
      fflush: avoid compilation error on NetBSD · 4215bcc7
      Eric Blake authored
      On NetBSD, the system <stdio.h> header contains:
      |#if (!defined(_ANSI_SOURCE) && !defined(__STRICT_ANSI__)) || defined(_LIBC)
      |typedef __off_t fpos_t;
      |#else
      |typedef struct __sfpos {
      |    __off_t _pos;
      |} fpos_t;
      |#endif
      
      Thus, based on compiler flags (such as using 'gcc -ansi' or the
      Intel compiler), it is an error to directly set fpos_t=off_t.
      
      * lib/fflush.c (update_fpos_cache): Use a union to safely convert
      between off_t and fpos_t, since the latter is sometimes a struct.
      * lib/fseeko.c (rpl_fseeko): Likewise.
      Reported by Alexander Nasonov <alnsn@yandex.ru>.
      Signed-off-by: default avatarEric Blake <ebb9@byu.net>
      4215bcc7
    • Eric Blake's avatar
      fcntl-h, stdio, sys_ioctl: fix declarations · c150f13d
      Eric Blake authored
      We cannot use a function-like macro to provide a link-time warning
      of a variadic function during GNULIB_POSIXCHECK; at least, not
      without assuming C99 variadic macros.  We can, however,
      use an object-like macro (as was already done for printf).
      
      On the other hand, this patch is only a stop-gap measure to fix
      an obvious bug; a more complete patch that switches from a
      link-time warning (specific to GNU ld, gcc, and ELF image) to
      a compile-time attribute is in the works.
      
      * lib/stdio.in.h (dprintf): Use of link warning on a variadic
      function must not take arguments.
      * lib/sys_ioctl.in.h (ioctl): Likewise.
      * lib/fcntl.in.h (openat): Likewise.  Declare extern.
      (open): Add a link warning.
      Signed-off-by: default avatarEric Blake <ebb9@byu.net>
      c150f13d
  8. 15 Dec, 2009 1 commit