* verify.h (verify_true): Provide alternative definition for C++.
[gnulib.git] / lib / ChangeLog
index 840b6b8..c490d5b 100644 (file)
@@ -1,3 +1,364 @@
+2005-10-04  Bruno Haible  <bruno@clisp.org>
+
+       * verify.h (verify_true): Provide alternative definition for C++.
+
+2005-10-04  Simon Josefsson  <jas@extundo.com>
+
+       * getaddrinfo.h: Move sys/types.h include first, reported by "Mark
+       D. Baushke" <mdb@gnu.org>.
+
+2005-10-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * getdelim.c: Include getdelim.h first.  Include <limits.h>.
+       (SSIZE_MAX): New macro, if not already defined.
+       (getdelim): Fix buffer overrun on 64-bit hosts with lines longer
+       than 2 GiB.
+
+2005-10-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * exclude.c: Include verify.h.
+       (verify): Remove.  All callers changed to use verify.h's version.
+       * strtoimax.c: Likewise.
+       * utimecmp.c: Likewis.e
+
+       Sync from coreutils.
+       * .cppi-disable: Add getaddrinfo.h, getdelim.h, getline.h, getpass.c
+       mbchar.h, mbuiter.h, strcase.h, strnlen.h, strnlen1.h.
+       * .cvsignore: Add fts.h, search.h, t-fpending.
+       * settime.c (settime): Fix { typo in previous patch.  Also, don't
+       bother returning ENOSYS if settimeofday or stime fails; just let
+       them return whatever errno they want to return.
+       * utimens.c: Include unistd.h, for dup2.
+       (futimens): Fix typo: HAVE_FUTIMESAT was misspelled in an #if.
+       (futimens) [! HAVE_FUTIMESAT]: If !file, set errno before returning -1.
+
+2005-10-02  Jim Meyering  <jim@meyering.net>
+
+       Sync from coreutils.
+       * fts-cycle.c [HAVE_CONFIG_H]: Include <config.h>.
+       * openat-die.c: Use `#ifdef HAVE_CONFIG_H', not `#if HAVE_CONFIG_H'.
+       * openat.c (fdopendir): Do not define if HAVE_FDOPENDIR.
+       Remove AT_FDCWD test.
+       Do not consume the fd unless successful.
+       * openat.h (fdopendir): Do not define if HAVE_FDOPENDIR.
+       * settime.c (settime): Move the HAVE_STIME block `up' into an #elif
+       block, so that we don't even try to compile it if settimeofday is
+       available.  This works around a compilation failure on OSF1 V5.1,
+       due to stime requiring a `long int*' while tv_sec is `int'.
+
+2005-09-30  Eric Blake  <ebb9@byu.net>  (tiny change)
+
+       * getdelim.c (getdelim): Remove unused variables.
+
+2005-10-01  Simon Josefsson  <jas@extundo.com>
+
+       * getaddrinfo.h: Protect #include's of sys/socket.h and netdb.h.
+       Only define struct addrinfo if !HAVE_STRUCT_ADDRINFO.  Protect
+       AI_* and EAI_* definitions.  Protect function declarations.
+
+2005-09-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * xtime.h (XTIME_PRECISION): Now of type int, not long long int,
+       so that the code works even with ancient cpp.  Portability problem
+       with GCC 2.7.2.1 reported by Thomas M.Ott.
+
+2005-09-27  Jim Meyering  <jim@meyering.net>
+
+       * getcwd.c: Change #ifdef<TAB>HAVE_CONFIG_H to #ifdef HAVE_CONFIG_H.
+
+       * intprops.h (signed_type_or_expr__): Define.
+       (INT_STRLEN_BOUND) [__GNUC__]: Use a slightly tighter bound
+       for unsigned types.
+
+2005-09-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * verify.h (verify_expr): Remove, replacing with:
+       (verify_true): New macro that returns true instead of void.
+       (verify_type__): Remove.
+       (verify): Use verify_true rather than verify_type__.
+
+2005-09-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * utimens.c (ENOSYS): Define if not already defined.
+       (futimens): Support having a null PATH if the file descriptor
+       is nonnegative.
+
+       * regex_internal.h (__GNUC_PREREQ, always_inline, inline, pure):
+       Remove.
+       (__attribute): Define to empty unless GCC 3.1 or later.
+       This works around a core dump on OpenBSD 3.4, which has GCC
+       2.95.3, which dumps core when given __attribute__(()).  It also
+       simplifies other tests, since we really don't want to bother with
+       worrying about which ancient version of GCC supported what.
+       Original problem reported by Yoann Vandoorselaere, with part of
+       the fix suggested by Derek Price.
+
+2005-09-24  Jim Meyering  <jim@meyering.net>
+
+       * verify.h (verify_type__): Use `unsigned int' as the bitfield type
+       so we can once again use a positive bitfield width of 1 -- now we
+       don't have to explain why we were using a bitfield width of 2.
+
+2005-09-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * getaddrinfo.c [HAVE_NETINET_IN_H]: Include <netinet/in.h>.
+       Problem reported by Eric Blake.
+       (getaddrinfo): Initialize se so that it's not garbage.
+       Redo internal storage allocation so that it doesn't make unportable
+       assumptions about alignment.
+       Fix a memory leak.
+
+       * utimens.c (futimens): Use futimesat if available.
+       Prefer it to futimes since it doesn't have the futimes bug.
+
+       * verify.h (GL_CONCAT0, GL_CONCAT): Remove.
+       (verify): Don't use the __LINE__ trick, as it doesn't work in general.
+       Instead, declare a function that returns a pointer to an array,
+       and use verify_type__ to declare the size of the array.
+       Problem and germ of a solution reported by Bruno Haible.
+       (verify_type__): Use 2, not 1, for bitfield size, to avoid
+       a warning with Irix 6.5 cc.  Problem reported by Bruno Haible.
+
+2005-09-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Sync from coreutils.
+
+       * .cppi-disable: Add regcomp.c, regex_internal.c, regex_internal.h,
+       stat-time.h.
+       * argmatch.h: Include verify.h
+       (ARGMATCH_VERIFY): Use verify rather than rolling our own.
+       (ARGMATCH_ASSERT): Remove; unused.
+       * canonicalize.c: Assume STDC_HEADERS.
+       * exclude.c: Include "strcase.h".
+       * regex_internal.h [!defined _LIBC]: Likewise.
+       * getusershell.c: Include stdio--.h rather than stdio.h
+       and stdio-safer.h.
+       (getusershell): Call fopen, not fopen_safer.
+       * save-cwd.c: Include fcntl--.h rather than fcntl.h.
+       Do not include unistd-safer.h.
+       (save_cwd): Don't call fd_safer; no longer needed
+       now that we include fcntl--.h.
+
+       * getdate.y (relative_time): New type.
+       (RELATIVE_TIME_0): New constant.
+       (parser_control): Use relative_time instead of doing it ourselves.
+       (%union): Add new relative_time rel member.
+       (tYEAR_UNIT, tMONTH_UNIT, tHOUR_UNIT, tMINUTE_UNIT, tSEC_UNIT):
+       Now typeless.
+       (relunit, relunit_snumber): Now of type rel.
+       (zone, rel, relunit, get_date): Adjust to above changes.
+
+       * getloadavg.c: Include fcntl--.h rather than fcntl.h.
+       Do not include unistd-safer.h.
+       (getloadavg): Don't call fd_safer; no longer needed
+       now that we include fcntl--.h.
+
+       * mkdir-p.c (ENOSYS): Define to EEXIST if not defined.
+       (make_dir_parents): Treat ENOSYS like EEXIST.
+
+       Improve quality of diagnostics on restore_cwd failure.
+       * mkdir-p.h (make_dir): Remove.  All uses replaced by mkdir.
+       (make_dir_parents): Last arg is now int * (for errno), not bool *.
+       * mkdir-p.c (make_dir, make_dir_parents): Likewise.
+       Rewrite "mkdir -p" algorithm to avoid the need for "stat"
+       each time through the loop.  Do not diagnose restore_cwd failure;
+       that is the caller's job (and perhaps the caller does not care).
+
+       * mkdir-p.c (CLEANUP_CWD, CLEANUP): Remove.
+       (make_dir_parents): Revamp to avoid need for CLEANUP_CWD, CLEANUP.
+       If the file already exists but is not a directory, don't bother
+       to try to make its parents.
+       Close potential file descriptor leak if we can't chdir("/") (!).
+       Don't always return true if chdir($PWD) fails; return true only
+       if the requested action was done successfully (except for the
+       chdir($PWD)).
+       Don't log final directory unless we actually made it.
+       Refactor to avoid duplicate code to fix up permissions.
+       Don't attempt to fix up parent permissions if chdir($PWD) fails.
+
+       * strftime.c (my_strftime): Rewrite the previous change slightly,
+       to make it a bit faster and (I hope) clearer.
+       * strftime.c (my_strftime): Add support for %:z, %::z, %:::z.
+       Fix bug in formats like %2N.
+
+       * verify.h: New file.
+
+2005-09-22  Jim Meyering  <jim@meyering.net>
+
+       Sync from coreutils.
+
+       * backupfile.c: Use ARGMATCH_VERIFY, just in case.
+
+       * posixtm.c (posixtime) [lint]: Initialize *all* of tm0, not just
+       the .tm_year member, since otherwise gcc-4.0 would now warn about
+       tm_zone, tm_gmtoff, tm_isdst, tm_yday, tm_wday.
+
+       * quotearg.c (quotearg_n_options): Change code to be suboptimal, in
+       order to avoid an unsuppressible warning from gcc on 64-bit systems.
+
+       * getdate.y (get_date): Undo part of the 2005-04-04 change, so that
+       the command "date -d'2005-03-27 +1 day'" succeeds once again, even
+       when run in a time zone for which daylight savings time is in effect
+       for the starting date.
+
+       * mkdir-p.c (make_dir_parents): Don't let a failed chdir($PWD)
+       stop us from restricting permissions of just-created absolute-named
+       directories.
+       * mkdir-p.c (CLEANUP_CWD): Return *true*, not false when failing
+       to restore initial working directory.
+       * mkdir-p.c (make_dir_parents): New parameter: different_working_dir,
+       to tell caller if/when we change the working directory and are
+       unable to return to the initial one.
+       * mkdir-p.h (make_dir_parents): Update prototype.
+       * mkdir-p.c (CLEANUP_CWD): Change one more `return 1' to
+       `return false'.  This fixes a bug introduced on 2004-07-30.
+
+       * openat.c (fdopendir): Be sure to close the supplied
+       file descriptor before returning.  This makes our replacement
+       implementation a little closer to Solaris's, where fdopendir
+       ties the file descriptor to the returned DIR* pointer.
+       * openat.c (unlinkat): New function.
+       * openat.h (unlinkat): Add prototype.
+       * openat-die.c (openat_save_fail): Rename from openat_save_die.
+       (openat_restore_fail): Rename from openat_restore_die.
+       * openat.c, openat.h: Reflect s/_die/_fail/ renaming.
+
+       Provide an alternative to exiting immediately upon save_cwd or
+       restore_cwd failure.  Now, an application can arrange e.g.,
+       to perform a longjump in that case.
+       * openat.c: Include dirname.h.
+       Use IS_ABSOLUTE_FILE_NAME rather than testing for leading slash.
+       (rpl_openat, fdopendir, fstatat): Call openat_save_die
+       and openat_restore_die rather than calling error directly.
+       Don't include "error.h" or "exitfail.h"; they're no longer needed.
+
+       * openat-die.c (openat_save_die, openat_restore_die): New file.
+       * openat.h (openat_save_die, openat_restore_die): Declare and define.
+
+       * strftime.c [FPRINTFTIME] (fprintftime): Provide a new interface:
+       size_t fprintftime (FILE *fp, char const *fmt, struct tm const *tm,
+                           int utc, int nanoseconds);
+       Background:
+       date should not have to allocate a megabyte of virtual memory to
+       handle a format argument like +%1048575T.  When implemented with
+       strftime, it must allocate such a buffer, use strftime to fill it
+       in, print it, then free it.
+       With fprintftime, it simply prints everything and exits.
+       With no need for memory allocation, that's one fewer way to fail.
+       * strftime.c (my_strftime): Parse the colons of %:::z *after* the
+       optional field width, not before, so we accept %9:z, not %:9z.
+       (my_strftime): Be sure to use L_('x') for literals.
+
+       * backupfile.c, canon-host.c, canonicalize.c, chown.c, cloexec.c:
+       * dup-safer.c, dup2.c, euidaccess.c, fd-safer.c, fileblocks.c:
+       * fopen-safer.c, fsusage.c, ftruncate.c, getcwd.c, getcwd.h:
+       * getloadavg.c, getopt_.h, getpagesize.h, getugroups.c, group-member.c:
+       * human.h, idcache.c, mkdir-p.c, mountlist.c, nanosleep.c, pathmax.h:
+       * physmem.c, posixver.c, putenv.c, raise.c, safe-read.c, same.c:
+       * save-cwd.c, setenv.c, settime.c, tempname.c, unlinkdir.c:
+       * unsetenv.c, userspec.c, xgethostname.c, xreadlink.c:
+       Assume HAVE_UNISTD_H, i.e., include <unistd.h> unconditionally.
+
+       * chown.c, cloexec.c, dup-safer.c, dup2.c, fsusage.c, getcwd.c:
+       * getloadavg.c, mountlist.c, openat.h, save-cwd.c, tempname.c:
+       Assume HAVE_FCNTL_H (i.e., include <fcntl.h> unconditionally,
+       and don't include <sys/file.h>).
+
+2005-09-22  Eric Blake  <ebb9@byu.net>  (tiny change)
+
+       Sync from coreutils.
+
+       * getloadavg.c (getloadavg) [__CYGWIN__]: Port to cygwin.
+       [__linux__]: Allocate a big enough buffer for /proc/loadavg.
+       [!LDAV_DONE]: Avoid unused variable warning.
+
+2005-09-21  Bruno Haible  <bruno@clisp.org>
+
+       * unicodeio.h (unicode_to_mb): New declaration.
+
+2005-09-20  Derek Price  <derek@ximbiot.com>
+
+       * getaddrinfo.c: Don't include <netdb.h> included from getaddrinfo.h.
+
+2005-09-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       Use a consistent style for including <config.h>.
+       * __fpending.c, acl.c, argmatch.c,
+       argp-help.c, argp-parse.c,
+       argp-pvh.c, backupfile.c, basename.c, c-stack.c,
+       calloc.c, check-version.c, cloexec.c, closeout.c, copy-file.c,
+       creat-safer.c, cycle-check.c, dirfd.c, dirname.c, dup-safer.c,
+       dup2.c, euidaccess.c, exclude.c, exitfail.c, fatal-signal.c,
+       fd-safer.c, file-type.c, fileblocks.c, filemode.c,
+       filenamecat.c, findprog.c, fnmatch.c, fopen-safer.c, free.c,
+       fsusage.c, ftruncate.c, full-write.c, fwriteerror.c,
+       getaddrinfo.c, getcwd.c, getdelim.c, getline.c, getlogin_r.c,
+       getndelim2.c, getnline.c, getopt1.c, getpass.c, group-member.c,
+       hard-locale.c, hash-pjw.c, hash.c, human.c, idcache.c,
+       inet_ntop.c, isdir.c, long-options.c, malloc.c, memcasecmp.c,
+       memcmp.c, memcoll.c, memcpy.c, memmove.c, mkdir-p.c,
+       modechange.c, mountlist.c, open-safer.c, physmem.c,
+       pipe-safer.c, pipe.c, poll.c, posixver.c, progname.c,
+       progreloc.c, putenv.c, quote.c, quotearg.c, readline.c,
+       readlink.c, realloc.c, regex.c, rename.c, rmdir.c, rpmatch.c,
+       safe-read.c, same.c, save-cwd.c, savedir.c, sig2str.c,
+       strcspn.c, strerror.c, stripslash.c, strncasecmp.c, strndup.c,
+       strnlen.c, strnlen1.c, strsep.c, strstr.c, strtod.c,
+       strtoimax.c, strtol.c, strverscmp.c, tempname.c, time_r.c,
+       userspec.c, utimecmp.c, version-etc-fsf.c,
+       version-etc.c, wait-process.c, xalloc-die.c, xgetcwd.c,
+       xmalloc.c, xmemcoll.c, xnanosleep.c, xreadlink.c, xsetenv.c,
+       xstrndup.c, xstrtoimax.c, xstrtol.c, xstrtoumax.c, yesno.c:
+       Standardize inclusion of config.h.
+       * __fpending.h, dirfd.h, getdate.h, human.h,
+       inttostr.h:  Removed inclusion of config.h from header files.
+       * inttostr.c:  Adjusted in-tree users.
+       * timespec.h: Remove superfluous warning to include config.h.
+       * atexit.c, chdir-long.c chown.c, fchown-stub.c, getgroups.c,
+       gettimeofday.c, lchown.c, lstat.c, mkdir.c, mkstemp.c,
+       nanosleep.c, openat.c, raise.c, readtokens0.c, readutmp.c,
+       unlinkdir.c: Guard inclusion of config.h with HAVE_CONFIG_H.
+
+2005-09-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * stat-time.h: New file.
+       * timespec.h (ST_TIME_CMP_NS, ST_TIME_CMP, ATIME_CMP, CTIME_CMP):
+       (MTIME_CMP, TIMESPEC_NS): Remove.  Now done by stat-time.h,
+       in a different way.
+       (timespec_cmp): New function.
+       * utimecmp.c: Include stat-time.h.
+       (SYSCALL_RESOLUTION): Depend on whether various struct stat
+       members exist, not on the obsolescent ST_MTIM_NSEC.
+       (utimecmp): Use the new stat-time functions rater than TIMESPEC_NS.
+
+2005-09-15  Derek Price  <derek@ximbiot.com>
+           Paul Eggert  <eggert@cs.ucla.edu>
+
+       * regcomp.c, regexec.c, regex_internal.c: Back out previous
+       changes, consolidating in...
+       * regex_internal.h: ...this file.
+
+2005-09-15  Derek Price  <derek@ximbiot.com>
+
+       * regex_internal.h: Blank `pure' for GNUC < 3.
+       * regex_internal.c: Ditto, using this...
+       (__GNUC_PREREQ): ...new macro.
+       * regcomp.c, regexec.c: Blank `always_inline' for GNUC < 3.1 using...
+       (__GNUC_PREREQ): ...this new macro.
+
+       * strstr.h: Include string.h. Define strstr as a macro here.
+
+2005-09-13  Derek Price  <derek@ximbiot.com>
+
+       * canon-host.c (canon_host_r): Set *cherror on memory allocation
+       failure.
+       Reported by Jim Meyering  <jim@meyering.net>.
+
+2005-09-13  Jim Meyering  <jim@meyering.net>
+
+       * canon-host.c: Filter through gnu indent and reword comments slightly.
+       * canon-host.h (ch_strerror_r): Tweak cpp indentation and spacing.
+
 2005-09-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>  (tiny change)
 
        * lib/base64.c: Typo.