fsf address update
[gnulib.git] / lib / ChangeLog
index 0f72d0c..b65a5e8 100644 (file)
@@ -1,3 +1,527 @@
+2005-05-10  Yoann Vandoorselaere <yoann.v@prelude-ids.com>
+
+       * getaddrinfo.c: Don't fail when SOCK_STREAM or SOCK_DGRAM are
+       specified in ai_socktype. Fix invalid ai_protocol
+       check. ai_protocol is usually set to 0 or depending on
+       ai_family/ai_socktype to IPPROTO_TCP / IPPROTO_UDP.  Checking for
+       SOCK_STREAM / SOCK_DGRAM in ai_protocol was invalid.  Set
+       ai_socktype / ai_protocol in the returned addrinfo structure.
+
+2005-05-09  Yoann Vandoorselaere <yoann.v@prelude-ids.com>
+            Bruno Haible  <bruno@clisp.org>
+
+       * inet_ntop.h: New file.
+       * inet_ntop.c: New file, from glibc with modifications.
+
+2005-05-08  Jim Meyering  <jim@meyering.net>
+
+       * classpath.c (PATH_SEPARATOR): Remove insignificant trailing blank.
+
+2005-05-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Merge from coreutils.  Among other things,
+       add bulletproofing for cases where stdin, stdout, or stderr are closed.
+       * fd-safer.c: New file.
+       * fcntl-safer.h, open-safer.c: Remove.
+       * chdir-long.c: Fix comment "fetish" -> "coreutils".
+       * dup-safer.c: Include unistd-safer.h first.
+       Don't include errno.h.
+       (dup_safer) [!defined F_DUPFD]: Let fd_safer do the real work.
+       * file-type.h: Don't assume invoker included sys/stat.h first.
+       * file-type.c: Rely on file-type.h change.
+       * getloadavg.c: Include unistd-safer.h.
+       (getloadavg): Use safer open.
+       * getusershell.c: Include "stdio-safer.h".
+       (getusershell): Use safer fopen.
+       * long-options.c (long_options): Use NULL rather than 0.
+       * modechange.h (mode_free): Remove; all callers changed to invoke
+       'free'.
+       * modechange.c: Likewise.
+       xstrtol.h, stdbool.h, stddef.h: Don't include; no longer needed.
+       (MODE_DONE): New constant.
+       (struct mode_change): Remove 'next' member.
+       (make_node_op_equals): New function; like the old one of the
+       same name, except it allocates an array.
+       (mode_compile, mode_create_from_ref): Use it.
+       (mode_compile): Allocate result as an array, not a linked list.
+       Parse octal string ourself, so that we catch mistakes like "+0".
+       (mode_adjust): Arg is an array, not a linked list.
+       * modechange.c: Include stat-macros.h, xalloc.h.
+       (S_ISDIR, S_ISUID, S_ISGID, S_ISVTX, S_IRUSR, S_IWUSR, S_IXUSR):
+       (S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH, S_IRXWU):
+       (S_IRWXG, S_IRWXO, CHMOD_MODE_BITS):
+       Remove.  This is now stat-macros.h's job.
+       (talloc): Remove.  All callers replaced by xalloc, so that
+       our invokers don't have to worry about reporting memory failures.
+       (make_node_op_equals): Remove.
+       (MODE_ORDINARY_CHAGE, MODE_X_IF_ANY_X, MODE_COPY_EXISTING):
+       New constants.
+       (struct mode_change): Moved here from modechange.h.
+       (mode_append_entry): Remove.
+       (mode_compile): Remove MASKED_OPS arg, since it encouraged
+       apps to have incorrect behavior.  Use simpler algorithm for head
+       and tail.  Don't futz with umask; that's now the job of mode_adjust.
+       Detect more invalid usages rather than having somewhat-random behavior.
+       Don't insert an "a=" action, as that leads to incorrect behavior.
+       (mode_compile, mode_create_from_ref): Return NULL on error instead
+       of an enum, since now there's only one way to have an error.  All
+       callers changed.
+       (mode_adjust): Accept new arg UMASK_VALUE, and interpret it
+       at the correct time.  Simplify calculation of "+u" and its ilk.
+       Don't mishandle "+X".
+       (mode_free): Remove "register" and localize decls.
+       * modechange.h (MODE_X_IF_ANY_X, MODE_COPY_EXISTING):
+       (struct mode_change): Move to modechange.c; callers don't
+       need to see this stuff.
+       (MODE_MASK_EQUALS, MODE_MASK_PLUS, MODE_MASK_MINUS, MODE_MASK_ALL):
+       (MODE_INVALID, MODE_MEMORY_EXHAUSTED, MODE_BAD_REFERENCE): Remove.
+       (mode_change, mode_adjust): Reflect the new signatures noted above.
+       * nanosleep.c (rpl_nanosleep): Include "timespec.h" before macros
+       that might redefine system include files.
+       (siginterrupt) [!HAVE_SIGINTERRUPT]: New macro.
+       (my_usleep): Use NULL rather than (void *) 0.
+       (rpl_nanosleep) [!defined SA_NOCLDSTOP]:
+       Use siginterrupt to specify that system calls should be interrupted.
+       (rpl_nanosleep): Move initialization of suspended closer to call of
+       my_usleep.
+       * readutmp.h (read_utmp): New arg OPTIONS.  All uses changed.
+       * readutmp.c: Likewise.  Include signal.h, stdbool.h.
+       (desirable_utmp_entry): New function.
+       (read_utmp) [defined UTMP_NAME_FUNCTION]: Redo memory allocation
+       using x2nrealloc, to simplify logic.
+       (read_utmp) [!defined UTMP_NAME_FUNCTION]: Check for overflow in
+       size calculation.  Do not assume utmp file is a regular file.
+       * readutmp.h (UT_PID): Moved here from ../src/who.c.
+       (READ_UTMP_CHECK_PIDS): New constant.
+       * save-cwd.c: Include unistd-safer.h.
+       (save_cwd): Use fd_safer.
+       * tempname.c (S_ISDIR, S_IRUSR, S_IRUSR, S_IWUSR, S_IXUSR): Remove.
+       [!_LIBC] Include "stat-macros.h" instead.
+       * unistd-safer.h (fd_safer): New decl.
+
+2005-05-01  Oskar Liljeblad  <oskar@osk.mine.nu>
+
+       * byteswap_.h: New file.
+
+2005-04-25  Albert Chin  <china@thewrittenword.com>
+
+       * regex.c: Include <stdio.h>, as a workaround to a Compaq Desktop
+       Toolkit C bug.
+
+2005-04-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * getdate.y (zone): Allow relunit_snumber after tZONE, so
+       that "UTC +1 second" continues to work.  Problem reported
+       by Dmitry V. Levin.
+       (relunit_snumber): New rule.
+       (relunit): Use it.
+
+2005-04-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * getdate.y (universal_time_zone_table): New constant.
+       (time_zone_table): Remove GMT, UT, UTC entries; they're now in
+       universal_time_zone_table.
+       (lookup_zone): Prefer universal_time_zone_table to
+       local_time_zone_table, so that "GMT" time stamps are allowed in
+       London during the summer.  Problem reported by Ian Abbott.
+
+2005-04-12  Jim Meyering  <jim@meyering.net>
+
+       * human.c (humblock): Set *options even when returning due to
+       xstrtoumax conversion failure.  Thanks to a used-uninitialized
+       warning from gcc-4.
+
+2005-04-09  Jim Meyering  <jim@meyering.net>
+
+       * posixtm.c (posixtime) [lint]: Avoid spurious warning from gcc-4's
+       -Wuninitialized: initialize tm0.tm_year.
+
+2005-04-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * getdate.y (parser_control): rels_seen is now a boolean, not a
+       count, since there's no maximum.  All uses changed.
+       Add member dsts_seen.
+       (local_zone): Accumulate dsts_seen rather than relying on tm_isdst
+       not being INT_MAX.
+       (get_date): Initialize dsts_seen, and check that it doesn't go over 1.
+       Use pc_rels_seen to decide whther a date is absolute.
+
+       * getdate.y (number): Don't overwrite year.
+       (get_date): Initialize pc.year.digits to 0, not 4, to enable above
+       check.
+
+2005-04-02  Simon Josefsson  <jas@extundo.com>
+
+       * getaddrinfo.h: Fix OpenBSD compilation failure, inspired by tiny
+       patch from Yoann Vandoorselaere <yoann@prelude-ids.org>.
+
+2005-03-27  Jim Meyering  <jim@meyering.net>
+
+       * argmatch.c: Clarify comment: null-terminated -> NULL-terminated.
+
+2005-03-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * intprops.h (INT_STRLEN_BOUND, INT_BUFSIZE_BOUND):
+       "one's complement" -> "ones' complement" in comment, as per Knuth.
+       "value of type" -> "type or expression" in comment.
+       * mktime.c, strftime.c: Propagate intprops.h comment nits.
+
+2005-03-26  Jim Meyering  <jim@meyering.net>
+
+       Comment nits.
+       * intprops.h: Add the apostrophe in `(one|two)'s complement'.
+       Correct typos: s/or/of/.
+
+2005-03-23  Jim Meyering  <jim@meyering.net>
+
+       * canonicalize.c: Remove duplicate `#include "stat-macros.h"'.
+
+2005-03-21  Jim Meyering  <jim@meyering.net>
+
+       Changes imported from coreutils.
+
+       * cycle-check.c: Don't include xalloc.h.
+
+       * path-concat.c: Don't include assert.h.
+       (path_concat): Remove assertion that would have triggered
+       for ABASE starting with more than one slash.
+       Reported by Andreas Schwab.
+
+       * path-concat.c (path_concat): Set *BASE_IN_RESULT
+       properly when ABASE is an absolute file name.
+       Correct the description of this function.
+       Include <assert.h>.
+       Add an assertion and a test driver.
+       This fixes a bug introduced on 2004-07-02.
+       Andreas Schwab reported the resulting failure of cp --parents:
+       http://lists.gnu.org/archive/html/bug-coreutils/2005-01/msg00130.html
+
+2005-03-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * strftime.c (my_strftime): If the underlying strftime returns 0
+       (which shouldn't happen), generate nothing instead of returning 0
+       immediately, so that nstrftime (NULL, ...) doesn't return 0.
+
+2005-03-16  Bruno Haible  <bruno@clisp.org>
+
+       * stdint_.h: Use HAVE_LONG_LONG_64BIT instead of HAVE_LONGLONG_64BIT.
+
+2005-03-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * strftime.c (my_strftime): Prepend space to format so that we can
+       reliably distinguish strftime failure from empty output on POSIX
+       hosts.
+
+2005-03-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * iconvme.c (SIZE_MAX): New macro, if not already defined.
+       (iconv_string): Don't guess a size-zero buffer, as that might cause
+       buffer overrun.  Instead, avoid multiplying by MB_LEN_MAX if the
+       result would be 'too large', where 'too large' is (heuristically)
+       the square root of SIZE_MAX, divided by MB_LEN_MAX to allay
+       overflow concerns.  This will prevent some unwanted malloc failures
+       when the inputs are very large.
+
+2005-03-15  Bruno Haible  <bruno@clisp.org>
+
+       * regex.c (byte_re_match_2_internal): Rename local variable 'not' to
+       'negate'.
+
+       * regex.c (byte_re_match_2_internal): Reduce scope of same_str_p
+       variable.
+
+       * regex.c (EXTEND_BUFFER, regcomp): Cast the realloc/malloc results.
+
+2005-03-14  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * mktime.c (TYPE_TWOS_COMPLEMENT, TYPE_ONES_COMPLEMENT,
+       TYPE_SIGNED_MAGNITUDE, TYPE_MINIMUM, TYPE_MAXIMUM): Sync from
+       intprops.h.
+       * strtol.c: Likewise.
+
+2005-03-14  Simon Josefsson  <jas@extundo.com>
+
+       * timegm.h: Use proper prototype CPP guards, reported by Dave Love
+       <fx@gnu.org>.
+
+2005-03-14  Jim Meyering  <jim@meyering.net>
+
+       * strftime.c (my_strftime) [HAVE_STRFTIME && ! (_NL_CURRENT
+       && HAVE_STRUCT_ERA_ENTRY)]: Initialize the first byte of ubuf[]
+       to be nonzero so that we (and caller) can detect the difference
+       between a valid zero-length expansion and an error return, even
+       when the underlying strftime fails before writing anything into
+       that location.
+
+2005-03-10  Jim Meyering  <jim@meyering.net>
+
+       * save-cwd.c [!HAVE_FCHDIR]: Define open, fchdir, and chdir_long
+       so that this module works on systems without fchdir.
+
+2005-03-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Factor int-properties macros into a single file, except for
+       glibc-related files.
+       * intprops.h: New file.
+       * getloadavg.c: Include it instead of limits.h.
+       (INT_STRLEN_BOUND): Remove.
+       * human.c: Include intprops.h.
+       (group_number): Use INT_STRLEN_BOUND instead of rolling it ourself.
+       * human.h (LONGEST_HUMAN_READABLE): Use 146/485 rather than 302/1000.
+       * inttostr.h: Include intprops.h instead of limits.h.
+       (INT_STRLEN_BOUND, INT_BUFSIZE_BOUND): Remove.
+       * mktime.c (TYPE_IS_INTEGER, TYPE_TWOS_COMPLEMENT): New macros,
+       for consistency with intprops.h.
+       (time_t_is_integer, twos_complement_arithmetic): Use them.
+       * sig2str.h: Include <signal.h>, intprops.h.
+       (INT_STRLEN_BOUND): Remove.
+       * strftime.c (TYPE_SIGNED): Remove.
+       (INT_STRLEN_BOUND): Switch to same implementation as intprops.h.
+       * strtol.c: Adjust comments to match intprops.h.
+       * userspec.c: Include intprops.h.
+       (TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Remove.
+       * utimecmp.c, xnanosleep.c, xstrtol.c: Likewise.
+       * utimecmp.c (utimecmp): Use TYPE_IS_INTEGER, TYPE_TWOS_COMPLEMENT
+       instead of rolling our own expressions.
+       * xstrtol.c: Include xstrtol.h first, to test interface.
+
+       * strftime.c: Include <stdbool.h>.  Use bool where appropriate,
+       instead of int.
+       (my_strftime): Do not mishandle years close to INT_MAX, by doing
+       the right thing even if adding 1900 would overflow.  Similarly
+       for tm_mon + 1 and tm_yday + 1.
+       Make %Y always equivalent to %C%y, and similarly for %G and %g.
+       (DO_NUMBER, DO_NUMBER_SPACEPAD): Set digits to d, not a conditional.
+       (DO_SIGNED_NUMBER): New macro.
+       (my_strftime) [HAVE_TZNAME]: Don't dump core if tp->tm_dst > 1.
+
+2005-03-07  Bruno Haible  <bruno@clisp.org>
+
+       * pagealign_alloc.c (MAP_FILE, MAP_FAILED): Define fallbacks.
+
+2005-03-03  Derek R. Price  <derek@ximbiot.com>
+           Bruno Haible  <bruno@clisp.org>
+
+       * pagealign_alloc.h: New file.
+       * pagealign_alloc.c: New file.
+
+2005-01-28  Bruno Haible  <bruno@clisp.org>
+
+       * stpncpy.h (stpncpy): Define as a macro without arguments, so that
+       stpncpy.c uses it.
+
+2005-03-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Remove workaround for bug in Linux kernel 2.6.8 or thereabouts.
+       The workaround isn't strictly needed for POSIX conformance, and
+       it's too much of a pain to configure and maintain.  We'll ask
+       people to fix their kernels instead.
+       * xnanosleep.c: Don't include gethrxtime.h or xtime.h.
+       (NANOSLEEP_BUG_WORKAROUND): Remove.
+       (xnanosleep): Remove the workaround.
+
+2005-02-12  Bruno Haible  <bruno@clisp.org>
+
+       * vasnprintf.c (EOVERFLOW): Define to a fallback if needed.
+
+2005-02-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * gethrxtime.h, gethrxtime.c, xtime.h: New files.
+       * timespec.h (gettime): Return void, since it always
+       succeeds now.  All uses changed.
+       * gettime.c (gettime) Likewise.
+       [HAVE_NANOTIME]: Prefer nanotime.
+       Assume gettimeofday succeeds, as POSIX requires.
+       Assime time () succeeds, since other code already does.
+       * xnanosleep.c: Include xtime.h and gethrxtime.h, not xalloc.h.
+       (timespec_subtract): Remove.
+       (NANOSLEEP_BUG_WORKAROUND): New constant.
+       (xnanosleep): Use gethrxtime rather than gettime; this simplifies
+       things considerably.  Use it only on GNU/Linux hosts, since the
+       workaround shouldn't be needed elsewhere.
+
+2005-02-24  Bruno Haible  <bruno@clisp.org>
+
+       * gettext.h: Update from GNU gettext 0.14.2.
+
+2005-02-24  Bruno Haible  <bruno@clisp.org>
+
+       * localcharset.c: Update from GNU gettext 0.14.2.
+       * config.charset: Update from GNU gettext 0.14.2.
+
+2005-02-22  Simon Josefsson  <jas@extundo.com>
+
+       * iconvme.h, iconvme.c: New files, from libc.
+
+2005-02-20  Neil Conway  <neilc@samurai.com>
+
+       * xgethostname.c (xgethostname): Check for ENOMEM, which is
+       returned by OSX/Darwin if the specified buffer is not large
+       enough for the hostname.
+
+2005-02-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * memrchr.h: New file.
+       * chdir-long.c: Include it.
+       * memrchr.c [!defined _LIBC]: Include it rather than <string.h>
+       Don't bother including stddef.h.
+
+2005-02-03  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * argp-help.c (__argp_help): Create a fake struct argp_state and
+       pass it to _help, otherwise the latter coredumps trying to
+       dereference state.root_argp.
+
+2005-02-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * mountlist.h (MOUNTLIST_H_): New macro, to protect against double
+       inclusion.
+       Include <sys/types.h>, for dev_t.
+       (ME_DUMMY, ME_REMOTE): Move from here....
+       * mountlist.c (ME_DUMMY, ME_REMOTE): To here.
+       (ME_DUMMY): Count "subfs" as a dummy.  Problem reported by
+       Dmitry V. Levin.
+       Include mountlist.h first, to test the interface.
+
+2005-01-29  Bruno Haible  <bruno@clisp.org>
+
+       * progname.c (program_name): Initialize.
+       Needed when linking statically on MacOS X.
+
+2005-01-28  Bruno Haible  <bruno@clisp.org>
+
+       * javacomp.sh.in: New file, from GNU gettext.
+       * javacomp.h: New file, from GNU gettext.
+       * javacomp.c: New file, from GNU gettext.
+
+2005-01-26  Bruno Haible  <bruno@clisp.org>
+
+       * javaexec.sh.in: New file, from GNU gettext.
+       * javaexec.h: New file, from GNU gettext.
+       * javaexec.c: New file, from GNU gettext.
+
+2005-01-26  Simon Josefsson  <jas@extundo.com>
+
+       * gai_strerror.c: Use GPL in header.
+
+2005-01-24  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * argp-help.c (hol_entry_help): Avoid using non-constant
+       initializers for struct pentry_state.
+       (__argp_error): Check return value of __asprintf
+       (__argp_failure): Translate error message
+
+       * argp-parse.c: Removed braces around the expansion of N_()
+
+2005-01-21  Jim Meyering  <jim@meyering.net>
+
+       * openat.h (AT_SYMLINK_NOFOLLOW): Define to 4096, so it's the
+       same value as for Solaris 9.
+
+       * chdir-long.c (chdir_long): Rewrite to remove limitation on
+       component length.  This included changing the parameter to be
+       of type `char *' rather than `char const *'.
+       * chdir-long.h (chdir_long): Update prototype.
+
+       * openat.c (fdopendir, fstatat): New functions.
+       * openat.h: Include headers required for use of DIR and struct stat.
+       [AT_SYMLINK_NOFOLLOW]: Define.
+       (fdopendir, fstatat): Add prototypes.
+
+2005-01-21  Bruno Haible  <bruno@clisp.org>
+
+       * classpath.h: New file, from GNU gettext.
+       * classpath.c: New file, from GNU gettext.
+
+2005-01-20  Simon Josefsson  <jas@extundo.com>
+
+       * version-etc-fsf.c: New file, with version_etc_copyright.
+       * version-etc.c: Remove version_etc_copyright.
+       * version-etc.h (version_etc_copyright): Use [] instead of * in
+       prototype, suggested by Paul Eggert <eggert@CS.UCLA.EDU>.
+
+2005-01-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * save-cwd.c (save_cwd): Remove code to support the case
+       where fchdir is missing or flaky.
+
+2005-01-20  Simon Josefsson  <jas@extundo.com>
+
+       * base64.h (isbase64): Add.
+
+       * base64.c (isb64): Rename to isbase64, use to_uchar instead of
+       using a unsigned prototype, don't inline.
+       (base64_decode): Use it.
+
+2005-01-19  Bruno Haible  <bruno@clisp.org>
+
+       * sh-quote.h: New file, from GNU gettext.
+       * sh-quote.c: New file, from GNU gettext.
+
+2005-01-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Merge changes from coreutils, as described below in several
+       changelogs dated today.
+
+       * save-cwd.c: Include "save-cwd.h" before other include files.
+       (O_DIRECTORY): Remove; not needed here, since "." must be
+       a directory.  All uses removed.
+       (save_cwd): Use __sgi || __sun, not sun || __sun.  __sun is
+       universal on Suns, and we also need to test for IRIX.
+       Revamp code to use 'if' rather than '#if'.
+       Avoid unnecessary comparison of cwd->desc to 0.
+
+       * utimens.c (futimens): Robustify the previous patch, by checking
+       for known valid error numbers rather than observed invalid ones.
+
+2005-01-18  Jim Meyering  <jim@meyering.net>
+
+       * version-etc.c (version_etc_copyright): Update copyright date.
+
+       * utimens.c (futimens): Account for the fact that futimes
+       can also fail with errno == ENOSYS or errno == ENOENT.
+       Patch from Dmitry V. Levin.
+
+       Change the name of the robust chdir function from chdir to chdir_long.
+       * save-cwd.c: Include chdir-long.h rather than chdir.h.
+       (restore_cwd): Use chdir_long, not chdir.
+       * chdir-long.c: Renamed from chdir.c.
+       * chdir-long.h: Renamed from chdir.h.
+       [!defined PATH_MAX]: Define chdir_long to chdir on systems like the
+       Hurd.
+
+2005-01-18  Bob Proulx  <bob@proulx.com>
+
+       * obstack.c [DEFAULT_ALIGNMENT]: Use an intermediate type to simplify
+       offsetof() macro construct to avoid compile failure with native HP-UX
+       11.0 ANSI C compiler.
+
+2005-01-06  Bruno Haible  <bruno@clisp.org>
+
+       * stpncpy.c: Remove HAVE_STPNCPY and gnu_stpncpy renaming, redundant
+       because stpncpy.m4 takes care of it.
+
+2004-01-24  Bruno Haible  <bruno@clisp.org>
+
+       * progreloc.c (xstrdup): Define as strdup if no xmalloc should be used.
+
+2003-10-09  Bruno Haible  <bruno@clisp.org>
+
+       * progreloc.c: Include xalloc.h instead of xmalloc.h.
+
+2005-01-06  Bruno Haible  <bruno@clisp.org>
+
+       * fwriteerror.h (fwriteerror): Change specification to include fclose.
+       * fwriteerror.c: Include <stdbool.h>.
+       (fwriteerror): At the end, close the file stream. Record whether
+       stdout was already closed.
+
+2004-05-27  Bruno Haible  <bruno@clisp.org>
+
+       * execute.c (environ): Declare if needed.
+       * pipe.c (environ): Likewise.
+       Reported by Michael Schloh von Bennewitz <michael.schloh@cw.com>.
+
 2005-01-04  Paul Eggert  <eggert@cs.ucla.edu>
 
        * human.c (SIZE_MAX, UINTMAX_MAX): Move these conditional
 2004-12-24  Paul Eggert  <eggert@cs.ucla.edu>
 
        * c-strtod.c (STRTOD): Depend on HAVE_C99_STRTOLD, not
-        HAVE_DECL_STRTOLD.
+       HAVE_DECL_STRTOLD.
 
 2004-12-23  Paul Eggert  <eggert@cs.ucla.edu>
 
        with MAXSIZE.
 
 2004-11-02  Derek R. Price  <derek@ximbiot.com>
-       and  Paul Eggert  <eggert@cs.ucla.edu>
+       and  Paul Eggert  <eggert@cs.ucla.edu>
 
        * getdate.y [!TEST]: Include <stdio.h>, since we use sprintf now.
        (get_date): Overparenthesize to avoid GCC warning.
        * snprintf.c (snprintf): Handle size==0.
 
 2004-10-01  Simon Josefsson  <jas@extundo.com>
-            Bruno Haible  <bruno@clisp.org>
+           Bruno Haible  <bruno@clisp.org>
 
        * snprintf.c: Include <stdarg.h>, <stdlib.h>, <string.h>.
        (snprintf): Declare 'args'.
        Problem reported by Dan Jacobson.
 
 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
-       and  Jim Meyering  <jim@meyering.net>
+       and  Jim Meyering  <jim@meyering.net>
 
        Merge from coreutils CVS.
 
        * getndelim2.c (getndelim2): Upon realloc failure, don't leak memory.
 
 2004-04-20  Jim Meyering  <jim@meyering.net>
-            Bruno Haible  <bruno@clisp.org>
+           Bruno Haible  <bruno@clisp.org>
 
        * localcharset.c (get_charset_aliases) [!VMS && !WIN32]: Don't leak
        memory when realloc fails.
        * getopt.h: Sync with libc CVS.
 
 2004-03-18  Paul Eggert  <eggert@twinsun.com>
-            Bruno Haible  <bruno@clisp.org>
+           Bruno Haible  <bruno@clisp.org>
 
        * mbswidth.h: Include <wchar.h> only if HAVE_DECL_MBSWIDTH_IN_WCHAR_H,
        not on all platforms that have <wchar.h>.
        * argp-{help.c,parse.c,namefrob.h}, argp.h: update from libc.
 
 2003-11-23  Paul Eggert  <eggert@twinsun.com>
-            Bruno Haible  <bruno@clisp.org>
+           Bruno Haible  <bruno@clisp.org>
 
        * printf-parse.h: Don't include sys/types.h.
        (ARG_NONE): New macro.
        Reported by Geoff Collyer via Arnold Robbins.
 
 2003-11-16  Paul Eggert  <eggert@twinsun.com>
-            Bruno Haible  <bruno@clisp.org>
+           Bruno Haible  <bruno@clisp.org>
 
        Protect against address arithmetic overflow.
        * printf-args.h: Include stddef.h.
        * linebuffer.c: Include <string.h> for declaration of memset.
 
 2003-10-30  Paul Eggert  <eggert@twinsun.com>
-            Bruno Haible  <bruno@clisp.org>
+           Bruno Haible  <bruno@clisp.org>
 
        * vasprintf.c: Include <limits.h>, <stdlib.h>.
        (vasprintf): Fail if the resulting length doesn't fit in an 'int'.
        * version-etc-2.c: Remove file.
 
 2003-09-25  Jim Meyering  <jim@meyering.net>
-            Bruno Haible  <bruno@clisp.org>
+           Bruno Haible  <bruno@clisp.org>
 
        This lets translators provide better translations for the
        "Written by ..." part of --version output.
        * xgetdomainname.c: New file.
 
 2003-09-25  Simon Josefsson  <jas@extundo.com>
-            Bruno Haible  <bruno@clisp.org>
+           Bruno Haible  <bruno@clisp.org>
 
        * getdomainname.h: New file.
        * getdomainname.c: New file.
 
 
 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-  Free Software Foundation, Inc.
+Free Software Foundation, Inc.
 Copying and distribution of this file, with or without modification,
 are permitted provided the copyright notice and this notice are preserved.