New module 'nl_langinfo'.
[gnulib.git] / ChangeLog
index 73e6faa..a5e5aa9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,371 @@
+2009-12-11  Bruno Haible  <bruno@clisp.org>
+
+       New module 'nl_langinfo'.
+       * lib/nl_langinfo.c: New file.
+       * m4/nl_langinfo.m4: New file.
+       * modules/nl_langinfo: New file.
+       * doc/posix-functions/nl_langinfo.texi: Mention the new module.
+
+2009-12-11  Bruno Haible  <bruno@clisp.org>
+
+       Tests for module 'langinfo'.
+       * modules/langinfo-tests: New file.
+       * tests/test-langinfo.c: New file.
+
+       New module 'langinfo'.
+       * lib/langinfo.in.h: New file.
+       * m4/langinfo_h.m4: New file.
+       * modules/langinfo: New file.
+       * doc/posix-headers/langinfo.texi: Mention the new module.
+
+2009-12-11  Bruno Haible  <bruno@clisp.org>
+
+       * lib/config.charset: Untabify.
+
+2009-12-11  Bruno Haible  <bruno@clisp.org>
+
+       * modules/unistd-safer (configure.ac): Drop indicator macro.
+
+2009-12-11  Bruno Haible  <bruno@clisp.org>
+
+       Move pipe2-safer code to its own file.
+       * lib/pipe2-safer.c: New file, extracted from lib/pipe-safer.c.
+       * lib/pipe-safer.c (pipe2_safer): Remove function.
+       * modules/pipe2-safer (Files): Add lib/pipe2-safer.c.
+       (Makefile.am): Add it to lib_SOURCES.
+
+2009-12-10  Bruno Haible  <bruno@clisp.org>
+
+       * lib/recvfrom.c (rpl_recvfrom): Allow the from argument to be NULL.
+
+2009-12-10  Bruno Haible  <bruno@clisp.org>
+
+       Declare which arguments expect non-NULL values, for GCC and clang.
+       * build-aux/arg-nonnull.h: New file.
+       * modules/arg-nonnull: New file.
+       * lib/arpa_inet.in.h (_GL_ARG_NONNULL): New placeholder.
+       (inet_ntop, inet_pton): Use it.
+       * lib/dirent.in.h (_GL_ARG_NONNULL): New placeholder.
+       (closedir, dirfd, opendir, scandir, alphasort): Use it.
+       * lib/fcntl.in.h (_GL_ARG_NONNULL): New placeholder.
+       (open, openat): Use it.
+       * lib/fnmatch.in.h (_GL_ARG_NONNULL): New placeholder.
+       (fnmatch): Use it.
+       * lib/getopt.in.h (_GL_ARG_NONNULL): New placeholder.
+       (getopt, getopt_long, getopt_long_only): Use it.
+       * lib/glob.in.h (_GL_ARG_NONNULL): New placeholder.
+       * lib/glob-libc.h (glob, globfree, glob64, globfree64, glob_pattern_p):
+       Use it.
+       * lib/iconv.in.h (_GL_ARG_NONNULL): New placeholder.
+       (iconv_open): Use it.
+       * lib/inttypes.in.h (_GL_ARG_NONNULL): New placeholder.
+       (strtoimax, strtoumax): Use it.
+       * lib/locale.in.h (_GL_ARG_NONNULL): New placeholder.
+       (duplocale): Use it.
+       * lib/math.in.h (_GL_ARG_NONNULL): New placeholder.
+       (frexp, frexpl): Use it.
+       * lib/netdb.in.h (_GL_ARG_NONNULL): New placeholder.
+       (getaddrinfo, freeaddrinfo, getnameinfo): Use it.
+       * lib/search.in.h (_GL_ARG_NONNULL): New placeholder.
+       (tsearch, tfind, tdelete, twalk): Use it.
+       * lib/signal.in.h (_GL_ARG_NONNULL): New placeholder.
+       (sigismember, sigemptyset, sigaddset, sigdelset, sigfillset,
+       sigpending): Use it.
+       * lib/spawn.in.h (_GL_ARG_NONNULL): New placeholder.
+       (posix_spawn, posix_spawnp, posix_spawnattr_init,
+       posix_spawnattr_destroy, posix_spawnattr_getsigdefault,
+       posix_spawnattr_setsigdefault, posix_spawnattr_getsigmask,
+       posix_spawnattr_setsigmask, posix_spawnattr_getflags,
+       posix_spawnattr_setflags, posix_spawnattr_getpgroup,
+       posix_spawnattr_setpgroup, posix_spawnattr_getschedpolicy,
+       posix_spawnattr_setschedpolicy, posix_spawnattr_getschedparam,
+       posix_spawnattr_setschedparam, posix_spawn_file_actions_init,
+       posix_spawn_file_actions_destroy, posix_spawn_file_actions_addopen,
+       posix_spawn_file_actions_addclose, posix_spawn_file_actions_adddup2):
+       Use it.
+       * lib/stdio.in.h (_GL_ARG_NONNULL): New placeholder.
+       (dprintf, fclose, fopen, fprintf, fpurge, fputc, fputs, freopen,
+       rpl_fseek, fseeko, rpl_ftell, ftello, fwrite, getdelim, getline,
+       obstack_printf, obstack_vprintf, popen, printf, putc, puts, remove,
+       rename, renameat, snprintf, sprintf, asprintf, vasprintf, vdprintf,
+       vfprintf, vprintf, vsnprintf, vsprintf): Use it.
+       * lib/stdlib.in.h (_GL_ARG_NONNULL): New placeholder.
+       (atoll, canonicalize_file_name, getloadavg, getsubopt, mkdtemp,
+       mkostemp, mkostemps, mkstemp, mkstemps, putenv, srandom_r, initstate_r,
+       setstate_r, random_r, realpath, rpmatch, setenv, strtod, strtoll,
+       strtoull, unsetenv): Use it.
+       * lib/string.in.h (_GL_ARG_NONNULL): New placeholder.
+       (memchr, memmem, mempcpy, memrchr, rawmemchr, stpcpy, stpncpy,
+       strchrnul, strdup, strndup, strnlen, strpbrk, strsep, strstr,
+       strcasestr, strtok_r, mbslen, mbsnlen, mbschr, mbsrchr, mbsstr,
+       mbscasecmp, mbsncasecmp, mbspcasecmp, mbscasestr, mbscspn, mbspbrk,
+       mbsspn, mbssep, mbstok_r, strverscmp): Use it.
+       * lib/strings.in.h (_GL_ARG_NONNULL): New placeholder.
+       (strcasecmp, strncasecmp): Use it.
+       * lib/sys_socket.in.h (_GL_ARG_NONNULL): New placeholder.
+       (rpl_connect, rpl_bind, rpl_getpeername, rpl_getsockname,
+       rpl_getsockopt, rpl_recv, rpl_send, rpl_recvfrom, rpl_sendto,
+       rpl_setsockopt): Use it.
+       * lib/sys_stat.in.h (_GL_ARG_NONNULL): New placeholder.
+       (fchmodat, fstat, fstatat, lchmod, rpl_lstat, mkdir, mkdirat, mkfifo,
+       mkfifoat, mknod, mknodat, stat, utimensat): Use it.
+       * lib/sys_time.in.h (_GL_ARG_NONNULL): New placeholder.
+       (gettimeofday): Use it.
+       * lib/sys_times.in.h (_GL_ARG_NONNULL): New placeholder.
+       (times): Use it.
+       * lib/sys_utsname.in.h (_GL_ARG_NONNULL): New placeholder.
+       (uname): Use it.
+       * lib/time.in.h (_GL_ARG_NONNULL): New placeholder.
+       (nanosleep, mktime, localtime_r, gmtime_r, strptime, timegm): Use it.
+       * lib/unistd.in.h (_GL_ARG_NONNULL): New placeholder.
+       (chown, euidaccess, faccessat, _gl_register_fd, fchownat,
+       getdomainname, gethostname, getlogin_r, lchown, link, linkat, pipe2,
+       pread, readlink, readlinkat, rmdir, symlink, symlinkat, unlink,
+       unlinkat, write): Use it.
+       * lib/wchar.in.h (_GL_ARG_NONNULL): New placeholder.
+       (mbsrtowcs, mbsnrtowcs, wcsrtombs, wcsnrtombs): Use it.
+       * lib/argv-iter.h: Include arg-nonnull.h.
+       (_ATTRIBUTE_NONNULL_): Remove macro.
+       (argv_iter_init_argv, argv_iter_init_stream, argv_iter,
+       argv_iter_n_args, argv_iter_free): Use _GL_ARG_NONNULL.
+       * lib/canonicalize-lgpl.c (_GL_ARG_NONNULL): Define, to defeat gcc
+       optimization.
+       * lib/getaddrinfo.c (_GL_ARG_NONNULL): Likewise.
+       * lib/getdelim.c (_GL_ARG_NONNULL): Likewise.
+       * lib/glob.c (_GL_ARG_NONNULL): Likewise.
+       * lib/random_r.c (_GL_ARG_NONNULL): Likewise.
+       * lib/setenv.c (_GL_ARG_NONNULL): Likewise.
+       * lib/strtod.c (_GL_ARG_NONNULL): Likewise.
+       * lib/tsearch.c (_GL_ARG_NONNULL): Likewise.
+       * lib/unsetenv.c (_GL_ARG_NONNULL): Likewise.
+       * modules/arpa_inet (Depends-on): Add arg-nonnull.
+       (Makefile.am): Insert arg-nonnull.h into arpa/inet.h.
+       * modules/dirent (Depends-on): Add arg-nonnull.
+       (Makefile.am): Insert arg-nonnull.h into dirent.h.
+       * modules/fcntl-h (Depends-on): Add arg-nonnull.
+       (Makefile.am): Insert arg-nonnull.h into fcntl.h.
+       * modules/fnmatch (Depends-on): Add arg-nonnull.
+       (Makefile.am): Insert arg-nonnull.h into fnmatch.h.
+       * modules/getopt-posix (Depends-on): Add arg-nonnull.
+       (Makefile.am): Insert arg-nonnull.h into getopt.h.
+       * modules/glob (Depends-on): Add arg-nonnull.
+       (Makefile.am): Insert arg-nonnull.h into glob.h.
+       * modules/iconv_open (Depends-on): Add arg-nonnull.
+       (Makefile.am): Insert arg-nonnull.h into iconv.h.
+       * modules/inttypes (Depends-on): Add arg-nonnull.
+       (Makefile.am): Insert arg-nonnull.h into inttypes.h.
+       * modules/locale (Depends-on): Add arg-nonnull.
+       (Makefile.am): Insert arg-nonnull.h into locale.h.
+       * modules/math (Depends-on): Add arg-nonnull.
+       (Makefile.am): Insert arg-nonnull.h into math.h.
+       * modules/netdb (Depends-on): Add arg-nonnull.
+       (Makefile.am): Insert arg-nonnull.h into netdb.h.
+       * modules/search (Depends-on): Add arg-nonnull.
+       (Makefile.am): Insert arg-nonnull.h into search.h.
+       * modules/signal (Depends-on): Add arg-nonnull.
+       (Makefile.am): Insert arg-nonnull.h into signal.h.
+       * modules/spawn (Depends-on): Add arg-nonnull.
+       (Makefile.am): Insert arg-nonnull.h into spawn.h.
+       * modules/stdio (Depends-on): Add arg-nonnull.
+       (Makefile.am): Insert arg-nonnull.h into stdio.h.
+       * modules/stdlib (Depends-on): Add arg-nonnull.
+       (Makefile.am): Insert arg-nonnull.h into stdlib.h.
+       * modules/string (Depends-on): Add arg-nonnull.
+       (Makefile.am): Insert arg-nonnull.h into string.h.
+       * modules/strings (Depends-on): Add arg-nonnull.
+       (Makefile.am): Insert arg-nonnull.h into strings.h.
+       * modules/sys_socket (Depends-on): Add arg-nonnull.
+       (Makefile.am): Insert arg-nonnull.h into sys/socket.h.
+       * modules/sys_stat (Depends-on): Add arg-nonnull.
+       (Makefile.am): Insert arg-nonnull.h into sys/stat.h.
+       * modules/sys_time (Depends-on): Add arg-nonnull.
+       (Makefile.am): Insert arg-nonnull.h into sys/time.h.
+       * modules/sys_times (Depends-on): Add arg-nonnull.
+       (Makefile.am): Insert arg-nonnull.h into sys/times.h.
+       * modules/sys_utsname (Depends-on): Add arg-nonnull.
+       (Makefile.am): Insert arg-nonnull.h into sys/utsname.h.
+       * modules/time (Depends-on): Add arg-nonnull.
+       (Makefile.am): Insert arg-nonnull.h into time.h.
+       * modules/unistd (Depends-on): Add arg-nonnull.
+       (Makefile.am): Insert arg-nonnull.h into unistd.h.
+       * modules/wchar (Depends-on): Add arg-nonnull.
+       (Makefile.am): Insert arg-nonnull.h into wchar.h.
+       * modules/argv-iter (Depends-on): Add arg-nonnull.
+       * tests/test-canonicalize.c (null_ptr): New function.
+       (main): Use it.
+       * tests/test-canonicalize-lgpl.c (null_ptr): New function.
+       (main): Use it.
+       * tests/test-memmem.c (null_ptr): New function.
+       (main): Use it.
+       Reported by Jim Meyering.
+
+2009-12-10  Bruno Haible  <bruno@clisp.org>
+
+       Use spaces for indentation, not tabs.
+       * lib/**/*.[hcy] except lib/reg*.[hc]: Untabify.
+       * m4/*.m4: Untabify.
+       * build-aux/*.h: Untabify.
+       * tests/**/*.[hc]: Untabify.
+       * README: New section "Indent with spaces, not TABs", based on
+       coreutils/HACKING and comments by Pádraig Brady and Paolo Bonzini.
+       * NEWS: Mention the change.
+
+2009-12-10  Bruno Haible  <bruno@clisp.org>
+
+       pty test: Fix link error.
+       * modules/pty-tests (Makefile.am): Add the default LDADD value to
+       test_pty_LDADD.
+
+2009-12-07  Simon Josefsson  <simon@josefsson.org>
+
+       * modules/pty: New file.
+       * modules/pty-tests: New file.
+       * m4/pty.m4: New file.
+       * tests/test-pty.c: New file.
+       * doc/glibc-headers/pty.texi: Modified.
+       * doc/glibc-functions/forkpty.texi: Modified.
+       * doc/glibc-functions/openpty.texi: Modified.
+
+2009-12-10  Bruno Haible  <bruno@clisp.org>
+
+       Avoid syntax error in C++ mode.
+       * lib/stdio.in.h (rename): Don't use parameter name 'new'.
+
+2009-12-10  Bruno Haible  <bruno@clisp.org>
+
+       Use sed with option -e.
+       * gnulib-tool (func_version, func_emit_copyright_notice,
+       func_emit_initmacro_end, func_import, func_create_testdir): Pass
+       option -e to sed.
+       * modules/link-warning (Makefile.am): Likewise.
+
+2009-12-10  Jim Meyering  <meyering@redhat.com>
+
+       mgetgroups: do not write bytes beyond end of malloc'd buffer
+       * lib/mgetgroups.c: Fix an off-by-one error.  When we have no
+       username, we call getgroups with a one-element-shorter buffer,
+       but still told it the length was original, max_n_groups.
+
+2009-12-09  Eric Blake  <ebb9@byu.net>
+
+       cloexec: relax license
+       * modules/cloexec (Maintainer): Add myself.
+       (License): Use LGPL, not GPL.
+
+       link-warning: optimize generation
+       * modules/link-warning (Makefile.am): Reduce process usage.
+
+2009-12-09  Bruno Haible  <bruno@clisp.org>
+
+       * doc/posix-functions/unsetenv.texi: Mention Solaris 10 bug for which a
+       workaround was added on 2009-11-17.
+
+2009-12-09  Jim Meyering  <meyering@redhat.com>
+           Bruno Haible  <bruno@clisp.org>
+
+       link-warning: Allow extra lines at the top of build-aux/link-warning.h.
+       * modules/link-warning (Makefile.am): Make the comment-removing sed
+       command more robust in the face of bootstrap-prepended comment lines.
+
+2009-12-09  Bruno Haible  <bruno@clisp.org>
+
+       * lib/mgetgroups.c (mgetgroups): Don't remove duplicates if there is at
+       most one group.
+
+2009-12-09  Simon Josefsson <simon@josefsson.org>
+           Bruno Haible  <bruno@clisp.org>
+
+       * build-aux/link-warning.h: Add copyright notice.
+       * modules/link-warning (Makefile.am): Generate link-warning.h from
+       build-aux/link-warning.h. Update LINK_WARNING_H accordingly.
+       * NEWS: Mention change in link-warning module.
+       * modules/arpa_inet (Makefile.am): Add dependency to arpa/inet.h.
+       * modules/dirent (Makefile.am): Add dependency to dirent.h.
+       * modules/fcntl-h (Makefile.am): Add dependency to fcntl.h.
+       * modules/getopt-posix (Makefile.am): Add dependency to getopt.h.
+       * modules/inttypes (Makefile.am): Add dependency to inttypes.h.
+       * modules/math (Makefile.am): Add dependency to math.h.
+       * modules/search (Makefile.am): Add dependency to search.h.
+       * modules/signal (Makefile.am): Add dependency to signal.h.
+       * modules/spawn (Makefile.am): Add dependency to spawn.h.
+       * modules/stdio (Makefile.am): Add dependency to stdio.h.
+       * modules/stdlib (Makefile.am): Add dependency to stdlib.h.
+       * modules/string (Makefile.am): Add dependency to string.h.
+       * modules/strings (Makefile.am): Add dependency to strings.h.
+       * modules/sys_ioctl (Makefile.am): Add dependency to sys/ioctl.h.
+       * modules/sys_select (Makefile.am): Add dependency to sys/select.h.
+       * modules/sys_socket (Makefile.am): Add dependency to sys/socket.h.
+       * modules/sys_stat (Makefile.am): Add dependency to sys/stat.h.
+       * modules/sys_times (Makefile.am): Add dependency to sys/times.h.
+       * modules/sys_utsname (Makefile.am): Add dependency to sys/utsname.h.
+       * modules/sys_wait (Makefile.am): Add dependency to sys/wait.h.
+       * modules/unistd (Makefile.am): Add dependency to unistd.h.
+       * modules/wchar (Makefile.am): Add dependency to wchar.h.
+
+2009-12-09  Bruno Haible  <bruno@clisp.org>
+
+       fchdir: Optimize away rpl_fstat when possible.
+       * m4/fchdir.m4 (gl_FUNC_FCHDIR): Set REPLACE_FSTAT only together with
+       REPLACE_OPEN_DIRECTORY.
+       * lib/fchdir.c (rpl_fstat): Define only when REPLACE_OPEN_DIRECTORY.
+
+2009-12-09  Bruno Haible  <bruno@clisp.org>
+
+       * lib/fchdir.c: Update comment.
+
+2009-12-09  Bruno Haible  <bruno@clisp.org>
+
+       * lib/cloexec.c (set_cloexec_flag): Clarify intent of dup2 call.
+
+2009-12-08  Eric Blake  <ebb9@byu.net>
+
+       fchdir: avoid memory leak on re-registration.
+       * lib/fchdir.c (ensure_dirs_slot): Avoid memory leak.
+
+2009-12-08  Jim Meyering  <meyering@redhat.com>
+
+       init.sh: avoid Solaris 10 /bin/sh portability problem
+       Solaris 10's /bin/sh does not pass '.' arguments 2.. to the
+       sourced script:
+         $ printf 'echo "$@"\n' > f; /bin/sh -c '. ./f bar'
+         $ printf 'echo "$@"\n' > f; /bin/bash -c '. ./f bar'
+         bar
+       tests/init.sh relied on that, accepting a --set-path=DIR argument,
+       and two tests used that idiom.
+       * tests/init.sh: Update suggested usage comments.
+       (path_prepend_): New function, to be used in place
+       of the --src-path=DIR option.
+       (setup_): Move PATH-prepending code into path_prepend_.
+       * tests/test-pread.sh: Adapt to new usage.
+       * tests/test-xalloc-die.sh: Likewise.
+
+2009-12-08  Simon Josefsson  <simon@josefsson.org>
+
+       * doc/gnulib.texi (Glibc pty.h): Add.
+       * doc/glibc-functions/forkpty.texi: Add.
+       * doc/glibc-functions/openpty.texi: Add.
+       Suggested by Bruno Haible.
+
+2009-12-08  Eric Blake  <ebb9@byu.net>
+
+       fchdir: fix logic bugs
+       * m4/fchdir.m4 (gl_FUNC_FCHDIR): Fix logic bug.
+       * tests/test-fchdir.c (main): Enhance test.
+       * lib/fchdir.c (rpl_fstat): Always provide if fchdir replacement
+       is in use.
+
+       dup2: fix logic bugs
+       * lib/dup2.c (dup2): Fix logic bugs.  Use HAVE_DUP2 rather than
+       REPLACE_DUP2 to decide when rpl_dup2 is needed.
+       * m4/dup2.m4 (gl_REPLACE_DUP2): Only define REPLACE_DUP2 when dup2
+       exists.
+       (gl_FUNC_DUP2): Drop unneeded AC_DEFINE.
+
 2009-12-07  Eric Blake  <ebb9@byu.net>
 
+       unlink: fix m4 detection
+       * m4/unlink.m4 (gl_FUNC_UNLINK): Include correct header.
+
        unistd-safer: add unit test
        * modules/unistd-safer-tests: New file.
        * tests/test-dup-safer.c: Likewise.