summaryrefslogtreecommitdiff
path: root/lib/ChangeLog-2007
diff options
context:
space:
mode:
authorJim Meyering <meyering@redhat.com>2009-04-04 12:39:44 +0200
committerJim Meyering <meyering@redhat.com>2009-04-04 12:40:58 +0200
commit8e8b025c9000b781bee81cecd68f863d51c254a7 (patch)
tree2a314000a6288ed05905c201655ebddcbf61839d /lib/ChangeLog-2007
parent7008e33441567ba87b3fb7538bd051e0bde2d155 (diff)
downloadcoreutils-8e8b025c9000b781bee81cecd68f863d51c254a7.tar.xz
maint: clean up Makefile.am, rename remaining ChangeLog files
* Makefile.am (changelog_etc, syntax_check_exceptions): Define. (EXTRA_DIST): Use. Remove names that are now automatically included: build-aux/git-version-gen, build-aux/vc-list-files. * build-aux/ChangeLog-2007: Rename from */ChangeLog. * doc/ChangeLog-2007: Likewise. * lib/ChangeLog-2007: Likewise. * m4/ChangeLog-2007: Likewise. * po/ChangeLog-2007: Likewise.
Diffstat (limited to 'lib/ChangeLog-2007')
-rw-r--r--lib/ChangeLog-20078754
1 files changed, 8754 insertions, 0 deletions
diff --git a/lib/ChangeLog-2007 b/lib/ChangeLog-2007
new file mode 100644
index 000000000..99eba6641
--- /dev/null
+++ b/lib/ChangeLog-2007
@@ -0,0 +1,8754 @@
+2007-05-31 Jim Meyering <jim@meyering.net>
+
+ * printf-parse.c, vasnprintf.c, unicodeio.c: Remove local
+ copies, so we now get these files from gnulib.
+
+2007-03-20 Jim Meyering <jim@meyering.net>
+
+ Fix a typo in the handling of %x and %X.
+ * vasnprintf.c (VASNPRINTF): When adding 2 to buffer length,
+ don't double it.
+
+2007-03-04 Jim Meyering <jim@meyering.net>
+
+ * vasnprintf.c (VASNPRINTF): Add missing semicolon.
+
+2007-03-02 Jim Meyering <jim@meyering.net>
+
+ * vasnprintf.c (VASNPRINTF): Remove cast of alloca return value.
+
+2007-03-01 Jim Meyering <jim@meyering.net>
+
+ Merge in changes from gnulib:
+ * vasnprintf.c: Add a comment explaining why coreutils has its own
+ version of this file.
+ Include <stdint.h>.
+ (SIZE_MAX): Remove definition (now, stdint.h covers that).
+ (EOVERFLOW): Remove definition (now done via the eoverflow module).
+ Update some #ifdef to #if.
+ Use HAVE_LONG_LONG_INT, not HAVE_LONG_LONG.
+ * printf-parse.c: Likewise.
+
+2007-02-28 Jim Meyering <jim@meyering.net>
+
+ * tsearch.c: Remove unused file.
+
+2007-02-23 Jim Meyering <jim@meyering.net>
+
+ * randperm.c (randperm_new): Comment: say that this function
+ returns a pointer to malloc'd storage.
+
+2007-02-18 Jim Meyering <jim@meyering.net>
+
+ * xfts.c: Include <stdlib.h> rather than exit.h, now that stdlib.h
+ is guaranteed to provide a valid definition of EXIT_FAILURE.
+
+2007-01-19 Jim Meyering <jim@meyering.net>
+
+ * .cvsignore, .gitignore: Add sys, as well as more
+ bootstrap-inserted file names.
+
+2007-01-14 Jim Meyering <jim@meyering.net>
+
+ * fchdir-stub.c: Remove file. No longer needed.
+
+2006-12-03 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (libcoreutils_a_SOURCES): Remove xmemcoll.c and
+ xmemcoll.h. Now, they're handled by the gnulib xmemcoll module.
+
+2006-11-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ * randread.c (__attribute__): Don't define if __attribute__ is
+ already defined. Otherwise, the code won't conform to C99, since
+ the macro arg is spelled differently by some include file, and the
+ compilation fails with pedantic GCC.
+
+2006-11-22 Jim Meyering <jim@meyering.net>
+
+ * .cvsignore, .gitignore: Add fstat.c.
+
+2006-11-14 Jim Meyering <jim@meyering.net>
+
+ * readlink-stub.c, lstat-stub.c: Remove now-unused files.
+
+2006-10-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ Port sha512sum to hosts where uintmax_t is only 32 bits, e.g.,
+ HP/Tandom NonStop OSS circa 2005 has 32-bit uintmax_t, 64-bit intmax_t.
+ * u64.h: New file.
+ * sha512.c (SWAP, sha512_init_ctx, sha384_init_ctx, sha512_read_ctx):
+ (sha384_read_ctx, sha512_conclude_ctx, sha512_process_bytes):
+ (sha512_round_constants, F2, F1, sha512_process_block):
+ (S0, S1, SS0, SS1, M, R):
+ Rewrite to use u64.h instead of assuming uint64_t.
+ * sha512.h: Include u64.h rather than stdint.h.
+ (rol64): Remove; moved to u64.h and renamed to u64rol.
+
+2006-10-12 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (libcoreutils_a_LIBADD): Append $(LIBOBJS),
+ to accommodate the latest version of gnulib-tool.
+ (libcoreutils_a_DEPENDENCIES): Likewise.
+ From Bruno Haible.
+
+2006-10-06 Jim Meyering <jim@meyering.net>
+
+ Avoid a compiler warning: const'ify and remove a cast.
+ * randread.c (struct randread_source) [handler]: Make parameter "const".
+ [handler_arg]: Add "const" attribute.
+ (randread_error): Make parameter "const".
+ (simple_new, randread_set_handler, randread_set_handler_arg): Likewise.
+ (randread_new): Remove now-unnecessary cast.
+ * randread.h: Adjust prototypes.
+
+2006-09-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ * .cvsignore: Add openat-proc.c.
+
+2006-09-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * .cvsignore: Add fchmodat.c.
+
+2006-09-25 Jim Meyering <jim@meyering.net>
+
+ * fchmodat.c: Remove file. gnulib's copy is identical.
+
+2006-09-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ * .cvsignore: Add fcntl.h, fcntl_.h, inttypes_.h, isapipe.c,
+ isapipe.h.
+
+2006-08-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * euidaccess-stat.c: Include <config.h> unconditionally, since
+ we now assume config.h exists.
+ * fchmodat.c: Likewise.
+ * fd-reopen.c: Likewise.
+ * fdopendir-glibc.c: Likewise.
+ * memxfrm.c: Likewise.
+ * printf-parse.c: Likewise.
+ * rand-isaac.c: Likewise.
+ * randint.c: Likewise.
+ * randperm.c: Likewise.
+ * randread.c: Likewise.
+ * root-dev-ino.c: Likewise.
+ * sha256.c: Likewise.
+ * sha512.c: Likewise.
+ * stdopen.c: Likewise.
+ * strintcmp.c: Likewise.
+ * strnumcmp.c: Likewise.
+ * t-chdir-long: Likewise.
+ * tsearch.c: Likewise.
+ * unicodeio.c: Likewise.
+ * vasnprintf.c: Likewise.
+ * xfts.c: Likewise.
+ * xmemxfrm.c: Likewise.
+
+ * .cvsignore: Add configmake.h, stamp-h1.
+
+2006-08-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ * .cvsignore: Add config.h, config.hin.
+ * Makefile.am (AM_CPPFLAGS): Remove; we no longer need '-I..'.
+
+2006-08-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ * .cvsignore: Add Makefile.in, getdate.tab.h.
+ Remove stat.c, sysexit.h.
+
+2006-08-22 Jim Meyering <jim@meyering.net>
+
+ * .cvsignore: Add files that are now generated by ../bootstrap.
+
+2006-08-21 Eric Blake <ebb9@byu.net>
+
+ * Makefile.am (LDADD): Restore this line; it is still needed for
+ t-fpending on platforms without __fpending.
+
+2006-08-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ Add a bootstrap procedure, so that the CVS version contains fewer
+ files and we bootstrap the rest from gnulib, gettext, etc.
+ * Makefile.am: include gnulib.mk, so that we can remove most of
+ this file.
+ (AM_CPPFLAGS): Don't mention -I$(srcdir), since that's now done
+ for us.
+ (noinst_LIBRARIES, LDDADD, DEFS): Remove.
+ (libcoreutils_a_SOURCES): Trim down greatly, just to the files
+ that aren't in gnulib.
+ (libcoreutils_a_LIBADD, lib_OBJECTS, BUILT_SOURCES, CLEANFILES):
+ (MAINTAINERCLEANFILES, MOSTLYCLEANDIRS, MOSTLYCLEANFILES):
+ (SUFFIXES, EXTRA_DIST, all-local, charset_alias, charset_tmp):
+ (install-exec-local, uninstall-local, charset.alias, .sin.sed):
+ (stdbool.h, stdint.h, fnmatch.h, arpa/inet.h, netinet/in.h):
+ (sys/socket.h, getopt.h): Remove.
+
+ * Makefile.in, README, __fpending.c, __fpending.h, acl.c, acl.h:
+ * alloca.c, alloca_.h, allocsa.c, allocsa.h, argmatch.c, argmatch.h:
+ * asnprintf.c, asprintf.c, at-func.c, atexit.c, backupfile.c:
+ * backupfile.h, base64.c, base64.h, basename.c, bcopy.c, c-strtod.c:
+ * c-strtod.h, c-strtold.c, calloc.c, canon-host.c, canon-host.h:
+ * canonicalize.c, canonicalize.h, chdir-long.c, chdir-long.h:
+ * chdir-safer.c, chdir-safer.h, chown.c, cloexec.c, cloexec.h:
+ * close-stream.c, close-stream.h, closeout.c, closeout.h:
+ * config.charset, creat-safer.c, cycle-check.c, cycle-check.h:
+ * dev-ino.h, diacrit.c, diacrit.h, dirchownmod.c, dirchownmod.h:
+ * dirfd.c, dirfd.h, dirname.c, dirname.h, dup-safer.c, dup2.c:
+ * error.c, error.h, euidaccess.c, euidaccess.h, exclude.c:
+ * exclude.h, exit.h, exitfail.c, exitfail.h, fchown-stub.c:
+ * fcntl--.h, fcntl-safer.h, fd-safer.c, file-type.c, file-type.h:
+ * fileblocks.c, filemode.c, filemode.h, filenamecat.c:
+ * filenamecat.h, fnmatch.c, fnmatch_.h, fnmatch_loop.c:
+ * fopen-safer.c, fprintftime.c, fprintftime.h, free.c, fsusage.c:
+ * fsusage.h, ftruncate.c, fts-cycle.c, fts.c, fts_.h, full-read.c:
+ * full-read.h, full-write.c, full-write.h, gai_strerror.c:
+ * getaddrinfo.c, getaddrinfo.h, getcwd.c, getcwd.h, getdate.h:
+ * getdate.y, getdelim.c, getdelim.h, getgroups.c, gethostname.c:
+ * gethrxtime.c, gethrxtime.h, getline.c, getline.h, getloadavg.c:
+ * getndelim2.c, getndelim2.h, getopt.c, getopt1.c, getopt_.h:
+ * getopt_int.h, getpagesize.h, getpass.c, getpass.h, gettext.h:
+ * gettime.c, gettimeofday.c, getugroups.c, getusershell.c:
+ * group-member.c, group-member.h, hard-locale.c, hard-locale.h:
+ * hash-pjw.c, hash-pjw.h, hash.c, hash.h, human.c, human.h:
+ * idcache.c, imaxtostr.c, inet_ntop.c, inet_ntop.h, intprops.h:
+ * inttostr.c, inttostr.h, lchmod.h, lchown.c, lchown.h:
+ * linebuffer.c, linebuffer.h, localcharset.c, localcharset.h:
+ * long-options.c, long-options.h, lstat.c, lstat.h, malloc.c:
+ * mbchar.c, mbchar.h, mbswidth.c, mbswidth.h, mbuiter.h, md5.c:
+ * md5.h, memcasecmp.c, memcasecmp.h, memchr.c, memcmp.c, memcoll.c:
+ * memcoll.h, memcpy.c, memmove.c, mempcpy.c, mempcpy.h, memrchr.c:
+ * memrchr.h, memset.c, mkancesdirs.c, mkancesdirs.h, mkdir-p.c:
+ * mkdir-p.h, mkdir.c, mkdirat.c, mkstemp-safer.c, mkstemp.c:
+ * mktime.c, modechange.c, modechange.h, mountlist.c, mountlist.h:
+ * nanosleep.c, obstack.c, obstack.h, offtostr.c, open-safer.c:
+ * openat-die.c, openat-priv.h, openat.c, openat.h, pathmax.h:
+ * physmem.c, physmem.h, pipe-safer.c, posixtm.c, posixtm.h:
+ * posixver.c, posixver.h, printf-args.c, printf-args.h:
+ * printf-parse.h, putenv.c, quote.c, quote.h, quotearg.c:
+ * quotearg.h, raise.c, readlink.c, readtokens.c, readtokens.h:
+ * readtokens0.c, readtokens0.h, readutmp.c, readutmp.h, realloc.c:
+ * ref-add.sin, ref-del.sin, regcomp.c, regex.c, regex.h:
+ * regex_internal.c, regex_internal.h, regexec.c, rename.c, rmdir.c:
+ * rpmatch.c, safe-read.c, safe-read.h, safe-write.c, safe-write.h:
+ * same-inode.h, same.c, same.h, save-cwd.c, save-cwd.h, savedir.c:
+ * savedir.h, setenv.c, setenv.h, settime.c, sha1.c, sha1.h:
+ * sig2str.c, sig2str.h, snprintf.c, snprintf.h, socket_.h:
+ * stat-macros.h, stat-time.h, stdbool_.h, stdint_.h, stdio--.h:
+ * stdio-safer.h, stdlib--.h, stdlib-safer.h, stpcpy.c, strcase.h:
+ * strcasecmp.c, strcspn.c, strdup.c, strdup.h, strftime.c:
+ * strftime.h, stripslash.c, strncasecmp.c, strndup.c, strndup.h:
+ * strnlen.c, strnlen.h, strnlen1.c, strnlen1.h, strpbrk.c, strstr.c:
+ * strstr.h, strtod.c, strtoimax.c, strtol.c, strtoll.c, strtoul.c:
+ * strtoull.c, strtoumax.c, strverscmp.c, strverscmp.h, tempname.c:
+ * time_r.c, time_r.h, timespec.h, umaxtostr.c, unicodeio.h:
+ * unistd--.h, unistd-safer.h, unlinkdir.c, unlinkdir.h:
+ * unlocked-io.h, unsetenv.c, userspec.c, userspec.h, utime.c:
+ * utimecmp.c, utimecmp.h, utimens.c, utimens.h, vasnprintf.h:
+ * vasprintf.c, vasprintf.h, verify.h, version-etc-fsf.c:
+ * version-etc.c, version-etc.h, wcwidth.h, xalloc-die.c, xalloc.h:
+ * xgetcwd.c, xgetcwd.h, xgethostname.c, xgethostname.h, xmalloc.c:
+ * xmemcoll.c, xmemcoll.h, xnanosleep.c, xnanosleep.h, xreadlink.c:
+ * xreadlink.h, xstrndup.c, xstrndup.h, xstrtod.c, xstrtod.h:
+ * xstrtoimax.c, xstrtol.c, xstrtol.h, xstrtold.c, xstrtoul.c:
+ * xstrtoumax.c, xtime.h, yesno.c, yesno.h:
+ Remove from CVS, since ../bootstrap generates them automatically.
+
+2006-08-18 Bruno Haible <bruno@clisp.org>
+
+ * mountlist.c [MOUNTED_GETMNTINFO2]: Include sys/statvfs.h.
+ (ME_DUMMY): Treat "kernfs" as a dummy.
+ (read_file_system_list) [MOUNTED_GETMNTINFO2]: Implement.
+
+2006-08-17 Paul Eggert <eggert@cs.ucla.edu>
+
+ * ChangeLog: Add copyright notice.
+ * .gdb-history: Likewise.
+ * TODO: Likewise.
+ * __fpending.h: Likewise.
+ * fdopendir-glibc.c: Likewise.
+ * fprintftime.h: Likewise.
+ * root-dev-ino.h: Likewise.
+ * search_.h: Likewise.
+ * t-chdir-long: Likewise.
+ * t-fpending.c: Likewise.
+ * savedir.c: Use (C) in copyright notice.
+ * savedir.h: Likewise.
+
+2006-08-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ * memcoll.c (memcoll): Set errno = 0 in the shortcut case, too.
+ Problem and fix reported by Pádraig Brady in
+ <http://lists.gnu.org/archive/html/bug-coreutils/2006-08/msg00099.html>.
+
+2006-08-16 Jim Meyering <jim@meyering.net>
+
+ * fts.c (fts_children): Remove obsolete "// FIXME ..." comment.
+ Reported by Bruno Haible.
+
+2006-08-15 Jim Meyering <jim@meyering.net>
+
+ * at-func.c: New file, with the logic of all emulated at-functions.
+ * openat-priv.h: Include <errno.h> and define ENOSYS,
+ in support of the EXPECTED_ERRNO macro.
+ * openat.c (fstatat, unlinkat, fchownat): Remove function definitions.
+ Instead, define the appropriate symbols and include "at-func.c".
+ * mkdirat.c (mkdirat): Likewise.
+ * fchmodat.c (fchmodat): Likewise.
+ (ENOSYS): Remove definition.
+ * openat.c: Don't include <errno.h>, now that "openat-priv.h" does it.
+ Don't include "unistd--.h" -- it wasn't ever used.
+
+2006-08-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ * memcoll.c (memcoll): Optimize for the common case where the
+ arguments are bytewise equal.
+
+2006-08-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ * pipe-safer.c (pipe_safer): Fix misspelling: HAVE_FUNC_PIPE ->
+ HAVE_PIPE. Fix a file descriptor leak when fd_safer fails.
+
+ * regex_internal.c (re_string_skip_chars): Don't assume WEOF fits
+ in wchar_t. Problem reported by Eric Blake.
+
+ * snprintf.c (snprintf): memcpy LEN bytes, not SIZE - 1, when
+ LEN is smaller than SIZE. Suggested by Bruno Haible.
+ Also, help the compiler to keep LEN in a register.
+
+2006-08-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ Import the following changes from libc:
+
+ 2006-06-02 Jakub Jelinek <jakub@redhat.com>
+
+ * posix/regex_internal.c (re_string_skip_chars): If no character has
+ been converted at all, set *last_wc to WEOF. If mbrtowc failed, set wc
+ to the byte which couldn't be converted.
+ (re_string_reconstruct): Don't clear valid_raw_len before calling
+ re_string_skip_chars. If wc is WEOF after re_string_skip_chars, set
+ tip_context using re_string_context_at.
+
+ 2006-05-02 Ulrich Drepper <drepper@redhat.com>
+
+ * posix/regex.h: g++ still cannot handled [restrict].
+
+ 2006-04-21 Ulrich Drepper <drepper@redhat.com>
+
+ * posix/regex.h: Remove special handling for VMS.
+
+ Accommodate new getaddrinfo implementation in gnulib.
+ * inet_ntop.c, inet_ntop.h, snprintf.c, snprintf.h, socket_.h:
+ New files, from gnulib.
+ * .cppi-disable: Add snprintf.h, socket_.h.
+ * Makefile.am (libcoreutils_a_SOURCES): Add inet_ntop.h, snprintf.h.
+ (MOSTLYCLEANDIRS): New macro.
+ (BUILT_SOURCES): Add $(ARPA_INET_H), $(SYS_SOCKET_H), $(NETINET_IN_H).
+ (arpa/inet.h, netinet/in.h, sys/socket.h): New rules.
+ (MOSTLYCLEANFILES): Add arpa/inet.h, arpa/inet.h-t, netinet/in.h,
+ netinet/in.h-t, sys/socket.h, sys/socket.h-t.
+ (EXTRA_DIST): Add socket_.h.
+
+2006-08-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * allocsa.h, config.charset, error.c, error.h, exitfail.c, full-write.c:
+ * getaddrinfo.c, getaddrinfo.h, gettext.h, localcharset.c, mbchar.h:
+ * mbswidth.c, mkstemp-safer.c, pipe-safer.c, printf-args.c, quote.c:
+ * readlink.c, regex_internal.h, setenv.c, stdint_.h, stdio--.h:
+ * stdio-safer.h, stpcpy.c, strcspn.c, strtoimax.c, vasnprintf.h:
+ * version-etc.c, wcwidth.h:
+ Update from gnulib.
+
+2006-08-09 Jim Meyering <jim@meyering.net>
+
+ * rand-isaac.c: Include <config.h>.
+
+2006-08-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ * Makefile.am (libcoreutils_a_SOURCES): Add xmemxfrm.c, xmemxfrm.h.
+ * memxfrm.c, memxfrm.h, randint.c, randint.h, randperm.c, randperm.h:
+ * randread.c, randread.h, xmemxfrm.c, xmemxfrm.h: New files.
+ * rand-isaac.h: New file.
+ * rand-isaac.c: New file, mostly taken from ../src/rand-isaac.c.
+
+2006-07-28 Paul Eggert <eggert@cs.ucla.edu>
+
+ * modechange.c (mode_compile): Numeric modes now affect setuid and
+ setgid on directories only if they set these bits.
+ * modechange.h: Remove obsolete comment about masks.
+
+2006-07-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ * close-stream.c, close-stream.h: New files.
+ * closeout.c (close_stdout): Use new function close_stream.
+
+2006-07-19 Mike Frysinger <vapier@gentoo.org>
+
+ * mountlist.c [ME_REMOTE]: Filter out cifs.
+ Reported by Toralf Förster in <http://bugs.gentoo.org/141012>.
+
+2006-07-20 Jim Meyering <jim@meyering.net>
+
+ * mountlist.c (ME_REMOTE): Compare strchr's result to NULL, not 0,
+ for better readability.
+
+2006-07-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ * dirchownmod.c, dirchownmod.h, mkancesdirs.c, mkancesdirs.h:
+ New files.
+ * mkdir-p.c: Don't include alloca.h, stdio.h, sys/types.h,
+ unistd.h, string.h, chdir-safer.h, dirname.h, lchmod.h, lchown.h,
+ save-cwd.h. Instead, include dirchownmod.h and mkancesdirs.h.
+ (make_dir_parents): New args MAKE_ANCESTOR, OPTIONS, ANNOUNCE,
+ MODE_BITS. Remove options VERBOSE_FMT_STRING, CWD_ERRNO. All
+ callers changed. Revamp internals significantly, by not
+ attempting to create directories that are temporarily more
+ permissive than the final results. Do not attempt to use
+ save_cwd/restore_cwd; it isn't worth it for mkdir and install.
+ This removes some race conditions, fixes some bugs, and simplifies
+ things. Use new dirchownmod function to do owner and mode changes.
+ * mkdir-p.h: Likewise.
+ * modechange.c (octal_to_mode): New function.
+ (struct mode_change): New member mentioned.
+ (make_node_op_equals): New arg mentioned. All callers changed.
+ (mode_compile): Keep track of which mode bits the user has explicitly
+ mentioned.
+ (mode_adjust): New arg DIR, so that we implement the X op correctly.
+ New arg PMODE_BITS, to keep track of which mode bits the user
+ mentioned; it treats S_ISUID and S_ISGID speciall.
+ All callers changed.
+ * modechange.h: Likewise.
+
+2006-07-16 Jim Meyering <jim@meyering.net>
+
+ * userspec.c (parse_with_separator): Say "invalid spec" rather than
+ the sometimes erroneous "cannot get the login group of a numeric UID"
+ for a spec like "not-a-username:" or "1:". Reported by
+ suckfish@ihug.co.nz in https://bugzilla.redhat.com/bugzilla/199027.
+
+2006-07-10 Derek R. Price <derek@ximbiot.com>
+
+ * backupfile.c, dirfd.h, fts.c, getcwd.c:
+ Ignore the obsolescent !HAVE_DIRENT_H case. Consolidate NAMLEN
+ macros into the GNU _D_EXACT_NAMLEN.
+ * savedir.c: Likewise.
+ (savedirstream): Use _D_EXACT_NAMLEN in preference to strlen.
+
+2006-07-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ * Makefile.am (stdint.h): FULL_PATH_STDINT_H -> ABSOLUTE_STDINT_H,
+ to accommodate update from gnulib.
+
+ Update from gnulib, as follows:
+
+ 2006-07-06 Jim Hyslop <jhyslop@dreampossible.ca> (tiny change)
+
+ * getaddrinfo.c: Changes to compile under MSVC6: changed
+ '#if WIN32_NATIVE' to '#ifdef' & moved WSAAPI macro inside
+ brackets. Other minor changes to suppress some compiler
+ warnings.
+
+ 2006-07-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ * getloadavg.c: Use __VMS, not VMS.
+ * getopt.c: Likewise.
+ * getpagesize.h: Likewise.
+
+ 2006-07-06 Derek R. Price <derek@ximbiot.com>
+ and Paul Eggert <eggert@cs.ucla.edu>
+
+ * backupfile.c [HAVE_DIRENT_H && ! HAVE_NDIR_H]:
+ Don't worry about this obsolete case any more.
+ (HAVE_DIR): Remove. All uses removed; we now assume you can read
+ directories.
+ * dirfd.h [HAVE_DIRENT_H && ! HAVE_NDIR_H]: Don't
+ worry about this obsolete case any more.
+ * fts.c: Likewise.
+ * getcwd.c: Likewise.
+ * savedir.c: Likewise.
+
+ 2006-07-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ * fnmatch.c (ISBLANK): Remove. All uses changed to isblank.
+ (isblank) [! (defined isblank || HAVE_DECL_ISBLANK)]: New macro.
+ (ISGRAPH): Remove. All uses changed to isgraph.
+ (FOLD) [!defined _LIBC]: Remove special case.
+ * getdate.y (lookup_word): Remove no-longer-needed call to islower.
+ * regext_internal.h (isblank): Depend on HAVE_DECL_ISBLANK, not
+ HAVE_ISBLANK.
+ * strftime.c (TOLOWER, TOUPPER) [!defined _LIBC]: Remove special case.
+
+ 2006-07-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * strtod.c (strtod): cast the argument of tolower to unsigned char.
+
+ 2006-07-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ * memcasecmp.c: Include <limits.h>.
+ (memcasecmp): Don't assume UCHAR_MAX <= INT_MAX.
+ * strtod.c (strtod): Don't assume isspace works on negative chars.
+ Don't assume isdigit succeeds only on '0' through '9'.
+
+ 2006-07-05 Derek R. Price <derek@ximbiot.com>
+
+ * exclude.c (IN_CTYPE_DOMAIN, is_space): Remove; no longer needed.
+ All uses of is_space replaced by isspace.
+ * exit.h: Don't talk about STDC_HEADERS.
+ * fnmatch.c (ISASCII): Remove; no longer needed. All uses removed.
+ (ISPRINT, ISDIGIT, ISALNUM, ISALPHA, ISCNTRL, ISLOWER, ISPUNCT):
+ (ISSPACE, ISUPPER, ISXDIGIT): Remove; no longer needed. All uses
+ replaced by isprint etc.
+ * getdate.y (IN_CTYPE_DOMAIN, ISSPACE, ISALPHA, ISLOWER): Likewise.
+ * getusershell.c (IN_CTYPE_DOMAIN, ISSPACE): Likewise.
+ * memcasecmp.c (IN_CTYPE_DOMAIN, ISLOWER, TOUPPER): Likewise.
+ * strtod.c (IN_CTYPE_DOMAIN, ISSPACE, ISDIGIT, TOLOWER): Likewise.
+ * strtol.c (IN_CTYPE_DOMAIN): Likewise.
+ * xstrtol.c (IN_CTYPE_DOMAIN, ISSPACE): Likewise.
+
+ 2006-07-05 Eric Blake <ebb9@byu.net>
+
+ * getaddrinfo.h (NI_NUMERICHOST, NI_NUMERICSERV): Define if
+ missing from netdb.h.
+ * getaddrinfo.c (includes): Include inet_ntop and snprintf.
+
+ 2006-06-27 Bruno Haible <bruno@clisp.org>
+
+ Assume ANSI C header files and <ctype.h> functions.
+ * mbswidth.c (IN_CTYPE_DOMAIN, ISPRINT, ISCNTRL): Remove macros.
+ (mbsnwidth): Use isprint, iscntrl instead.
+
+2006-07-08 Jim Meyering <jim@meyering.net>
+
+ * getndelim2.h (getndelim2): Remove doubled "after" in comment.
+
+2006-07-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ * Makefile.am (libcoreutils_a_SOURCES): Add setenv.h, wcwidth.h,
+ to accommodate sync from gnulib.
+
+ Sync from gnulib.
+
+ 2006-06-30 Jim Hyslop <jhyslop@dreampossible.ca> (tiny change)
+
+ * getaddrinfo.c: fixed typo
+
+ 2006-06-28 Bruno Haible <bruno@clisp.org>
+
+ * getaddrinfo.h: Fix POSIX URL.
+ * getaddrinfo.c (WIN32_NATIVE): New macro. Use it instead of _WIN32.
+ (use_win32_p): Make static.
+ (getaddrinfo): Reject service name if it is empty or does not consist
+ solely of decimal digits, or if its value is > 65535.
+ (getnameinfo): Remove useless casts.
+
+ 2006-06-28 Eric Blake <ebb9@byu.net>
+
+ * mbchar.h (wcwidth): Include wcwidth.h.
+ * mbswidth.c (wcwidth): Move from here...
+ * wcwidth.h: ...to this new file.
+
+ 2006-06-28 Simon Josefsson <jas@extundo.com>
+
+ * getaddrinfo.c: Try to load ws2_32.dll on Windows, to find the
+ functions there. It will succeed on Windows XP, but on Windows
+ 2000 and (presumably) earlier, it will fail, and use the internal
+ re-implementation.
+ (use_win32_p): New function.
+ (getaddrinfo): Use strtoul on servname, to support numeric ports.
+ Support AI_NUMERICSERV to disable getservbyname.
+ (getnameinfo): New function, only supports
+ NI_NUMERICHOST|NI_NUMERICSERV for now.
+
+ * getaddrinfo.h: Test and check for AI_* flags separately, MinGW
+ only have some of them. Add AI_NUMERICSERV. Add prototype for
+ getnameinfo.
+
+ 2006-06-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ * base64.c (B64): Use _ as the formal parameter, not x, to avoid
+ bug in IBM C V6 for AIX. Problem reported by Larry Jones in
+ <http://lists.gnu.org/archive/html/bug-gnulib/2006-06/msg00181.html>.
+
+ 2006-06-21 Simon Josefsson <jas@extundo.com>
+
+ * getaddrinfo.c (getaddrinfo): Set ai_family in the return
+ variable.
+
+ 2006-06-19 Paul Eggert <eggert@cs.ucla.edu>
+
+ * alloca_.h (alloca) [defined alloca]: Don't define or declare.
+
+ 2006-06-16 Eric Blake <ebb9@byu.net>
+
+ * unsetenv.c [!defined errno]: Assume errno.h declares errno.
+ * unicodeio.c [!defined errno]: Likewise.
+ * strtol.c [!defined errno]: Likewise.
+ * strtod.c [!defined errno]: Likewise.
+
+ 2006-05-26 Martin Lambers <marlam@marlam.de>
+
+ * getpass.c: Updates the test for the native W32 API, and adds
+ missing includes, thus fixing compilation warnings.
+
+ 2006-05-25 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * exclude.c (exclude_fnmatch): New function.
+ (excluded_file_name): Call exclude_fnmatch.
+ * exclude.h (excluded_file_name): New prototype
+
+ 2006-05-19 Jim Meyering <jim@meyering.net>
+
+ * getugroups.c: Correct an outdated comment. From Bruno Haible.
+
+ 2006-05-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ * sha1.c (rol): Cast right-shift arg to uint32_t to prevent
+ unwanted sign propagation, e.g., on hosts with 64-bit int.
+ There still are some problems with reeelly weird theoretical hosts
+ (e.g., 33-bit int) but it's not worth worrying about now.
+ (K1, K2, K3, K4): Remove unnecessary L suffix.
+
+ 2006-03-24 Simon Josefsson <jas@extundo.com>
+
+ * base64.c: Fix problems reported by Eric Blake <ebb9@byu.net>,
+ including some doc fixes.
+ (base64_encode_alloc): Fix +1 bug on allocation failures.
+
+ 2006-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * base64.c (base64_encode): Do not read past end of array with
+ unsanitized input on systems with CHAR_BIT > 8.
+
+ 2006-03-24 Eric Blake <ebb9@byu.net>
+
+ * time_r.c (copy_string_result): Remove, as it is no longer used.
+
+2006-07-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ * stdint_.h: Include <sys/types.h> after @FULL_PATH_STDINT_H@, for
+ MacOS X 10.4.6. Don't mention <sys/int_types.h>. Problems
+ reported by Mark D. Baushke, one in
+ <http://lists.gnu.org/archive/html/bug-gnulib/2006-07/msg00015.html>.
+
+2006-07-03 Jim Meyering <jim@meyering.net>
+
+ * cycle-check.h (CYCLE_CHECK_REFLECT_CHDIR_UP): Abort if this
+ macro is used before the first cycle_check call.
+
+2006-07-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ * stdint_.h (intmax_t, uintmax_t): Prefer long to long long if
+ both are 64 bits, since this seems to be the tradition, and this
+ prevents gcc -Wformat from warning about usages with PRIuMAX. If
+ we ever run into a host that prefers long long to long in this
+ case, we'll need another configure-time test. Problem reported by
+ Jim Meyering.
+
+2006-07-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ * Makefile.am (stdint.h): Sync from gnulib.
+ * stdint_.h: Sync from gnulib.
+
+2006-06-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ * xstrtod.c (XSTRTOD, DOUBLE): New macros, so that we can support
+ both double and long double versions.
+ (XSTRTOD): Renamed from xstrtod. Use DOUBLE internally.
+ * xstrtold.c: New file.
+ * xstrtod.h (xstrtold): New decl.
+
+2006-06-29 Derek R. Price <derek@ximbiot.com>
+
+ * strftime.c: Assume strftime exists.
+
+2006-06-28 Derek R. Price <derek@ximbiot.com>
+
+ * savedir.c (CLOSEDIR): Remove. All uses changed to closedir.
+ Autoconf 2.60 says this stuff was obsolete.
+
+2006-06-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ * openat.c (openat): Use ?:, not if, to work around GCC bug 4210
+ <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=4210>.
+ Problem reported by Denis Excoffier in
+ <http://lists.gnu.org/archive/html/bug-tar/2006-06/msg00023.html>.
+
+2006-06-19 Jim Meyering <jim@meyering.net>
+
+ Apply this change from gnulib:
+ 2006-06-16 Eric Blake <ebb9@byu.net>
+ * unsetenv.c [!defined errno]: Assume errno.h declares errno.
+
+2006-06-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ * getdate.y (__attribute__): Don't define if already defined.
+ Problem reported by Larry Jones.
+ * utimens.c (__attribute__): Likewise.
+
+2006-06-10 Jim Meyering <jim@meyering.net>
+
+ Apply this change from gnulib:
+
+ 2006-05-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ Bruno Haible <bruno@clisp.org>
+
+ * strndup.c (strndup) [!_LIBC]: Don't undefine macro definition.
+
+2006-06-04 Paul Eggert <eggert@cs.ucla.edu>
+
+ * regexec.c (group_nodes_into_DFAstates): Fix a buffer overrun
+ reported by Andreas Schwab.
+
+2006-05-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * tempname.c (small_open, large_open): New macros.
+ (__open, __open64) [!_LIBC]: Remove.
+ (__gen_tempname): Use small_open and large_open instead of __open
+ and __open64. This fixes a portability bug on HP-UX 11.11i
+ reported by Simon Wing-Tang in
+ <http://lists.gnu.org/archive/html/bug-coreutils/2006-05/msg00114.html>.
+
+2006-05-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ * filemode.c: Don't include <string.h>; this include was
+ inadvertently put into the previous patch. Problem noted
+ by Jim Meyering.
+
+2006-05-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ * filemode.c (setst): Remove.
+ (strmode): Rewrite to avoid setst. This makes the code shorter,
+ (arguably) clearer, and the generated code is a bit smaller on my
+ Debian GNU/Linux stable x86 host.
+
+ Import from gnulib.
+ * verify.h: Document the internals better. Most of this change
+ was written by Bruno Haible.
+
+2006-05-21 Jim Meyering <jim@meyering.net>
+
+ * fts.c (fts_open): Fail with EINVAL if a caller violates this rule:
+ Either FTS_LOGICAL or FTS_PHYSICAL must be provided to the
+ fts_open() function.
+
+2006-05-19 Paul Eggert <eggert@cs.ucla.edu>
+
+ * nanosleep.c [HAVE_SYS_SELECT_H]: Include <sys/select.h>.
+ Use the usual Autoconf way to include <time.h> and/or sys/time.h.
+ (my_usleep): Don't mishandle maximum value.
+
+2006-05-15 Jim Meyering <jim@meyering.net>
+
+ Avoid the expense of an fstat, when possible.
+ * fts.c (O_NOFOLLOW, STREQ): Define.
+ (diropen_fd): Remove function. Merge it into sole caller...
+ (diropen): ...here. Use O_NOFOLLOW when appropriate.
+ (fts_safe_changedir): Call fstat for dev/inode check, only if the
+ previous open/openat call may have opened the wrong directory.
+
+2006-05-13 Jim Meyering <jim@meyering.net>
+
+ * xfts.c (xfts_open): Always use FTS_CWDFD.
+
+ Restore the parts of fts that were removed on 2006-01-17, so that
+ it's easier for legacy applications designed for the version
+ of fts in glibc or BSD to convert to this more robust version.
+ Add a new mode, FTS_CWDFD, by which to enable the improved
+ (openat- based -- aka no-chdir) semantics.
+ * fts_.h (FTS_CWDFD): Define. Callers must use this fts_open
+ option to enable the more robust behavior.
+ (FTS_OPTIONMASK): Widen accordingly.
+ * fts.c: Restore removed code, reverting the default behavior.
+
+2006-05-11 Jim Meyering <jim@meyering.net>
+
+ * sha1.c (sha1_buffer): Correct comment: s/MD5/SHA1/. From James Lemley.
+
+2006-04-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * getdate.y (get_date): When adding relative date, start with the
+ initial time, not with the result of the first mktime call.
+
+2006-04-17 Paul Eggert <eggert@cs.ucla.edu>
+
+ * filemode.c: Include "filemode.h" first, to test the interface.
+ Assume that filemode.h includes sys/types.h and sys/stat.h.
+ (HAVE_ST_DM_MODE): New macro, moved here from ls.c.
+ (ftypelet): Reorder to put common cases first, for efficiency.
+ Add 'P', 'w'. Remove 'M', since it's now the caller's responsibility
+ to do 'M'.
+ (strmode): Renamed from mode_string, and now stores 12 bytes instead
+ of 10, for compatibility with FreeBSD. All callers changed.
+ (filemodestring): Now stores 12 bytes instead of 10, and sets file types
+ that can't be deduced solely from st_mode. First arg is now a const
+ pointer.
+ * filemode.h (HAVE_DECL_STRMODE): Include <string.h> for strmode.
+ (strmode): Renamed from mode_string.
+ (filemodestring): New decl.
+ * stat-macros.h: Don't undef S_ISDOOR, since it's never buggy.
+ (S_ISDOOR): Don't bother with S_IFDOOR, since that code is never needed.
+ (S_ISPORT, S_ISWHT): New macros, if not already defined.
+
+ * openat.h (openat_needs_fchdir) [ ! defined __OPENAT_PREFIX]:
+ Turn this into a macro that always returns false.
+
+2006-04-15 Paul Eggert <eggert@cs.ucla.edu>
+
+ * utimens.c (futimens): glibc futimesat messes up if /proc
+ isn't mounted. Problem reported by Kir Kolyshkin.
+
+2006-04-14 Jim Meyering <jim@meyering.net>
+
+ Remove unreachable code and plug leaks in code that handles degenerate
+ input and some failure cases.
+ * fts.c (fts_build): #if-0-out a block of unused code. Patch from glibc.
+ (fts_build): Remove just-#if-0'd code and the code that
+ declares and sets cderrno.
+ (fts_build): Free `head' before returning NULL, in two places,
+ to avoid leaks. Patch from glibc.
+ (fts_open): Don't allocate parent if *argv==NULL. Patch from glibc.
+
+2006-04-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ * regcomp.c (init_dfa): Don't use wchar_t or wctype_t if RE_ENABLE_I18N
+ is not defined. Problem reported by Mark D. Baushke via Derek R. Price.
+ * regex.h (RE_DUP_MAX): Update comment to match current implementation.
+
+2006-04-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ * fsusage.c: Don't include <inttypes.h> or <stdint.h>, since
+ fsusage.h now does that. Include fsusage.h first, to test interface.
+ Prefer statvfs if it works, since it's blessed by POSIX. Attempt
+ at most one method (the old code could have generated decls that
+ didn't conform to C89, not that this was ever exercised).
+ * fsusage.h: Include <inttypes.h> and <stdint.h> if they exist.
+
+2006-04-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ Merge regex changes from libc, removing some of our
+ POSIX-conformance changes that were rejected and redoing them in a
+ less-intrusive way.
+
+ * regcomp.c (re_compile_internal, init_dfa):
+ Length arg is now size_t, not Idx. All uses changed.
+ (peek_token): Forward decl now says internal_function.
+ (__re_error_msgid, __re_error_msgid_idx):
+ Now static rather than extern with attribute_hidden.
+ (re_compile_pattern) [!defined _LIBC]: Use K&R-style defn.
+ For some reason libc prefers K&R style defns for external functions.
+ (regerror) [!defined _LIBC]: Likewise.
+ (re_set_syntax, re_compile_fastmap, regcomp, regfree, re_comp):
+ (seek_collating_symbol_entry, lookup_collation_sequence_value):
+ (build_range_exp, build_collating_symbol):
+ Use K&R-style defn.
+ (re_compile_fastmap): Use '\0' to memset, not 0.
+ (utf8_sb_map): Make the calculations more obvious.
+ (init_dfa, parse_bracket_exp, build_charclass_op):
+ Call calloc and cast result, as glibc does.
+ (init_word_char, fetch_token, peek_token, peek_token_bracket):
+ (build_range_exp, build_collating_symbol):
+ Now internal functions.
+
+ * regex.c [!defined _LIBC]: Allow compiling with C++ compilers.
+
+ * regex.h (__USE_GNU_REGEX): New macro. Don't depend on
+ _REGEX_SOURCE any more; depend on _GNU_SOURCE instead.
+ Don't depend on VMS; depend on __VMS instead, for POSIX
+ namespace cleanness.
+ (regoff_t): Define to ssize_t, not long int.
+
+ Remove the REG_ macros named below. Instead, make the old names
+ (e.g., RE_BACKSLASH_ESCAPE_IN_LISTS) visible only if
+ __USE_GNU_REGEX.
+ (REG_BACKSLASH_ESCAPE_IN_LISTS):
+ (REG_BK_PLUS_QM, REG_CHAR_CLASSES, REG_CONTEXT_INDEP_ANCHORS):
+ (REG_CONTEXT_INDEP_OPS, REG_CONTEXT_INVALID_OPS):
+ (REG_DOT_NEWLINE, REG_DOT_NOT_NULL, REG_HAT_LISTS_NOT_NEWLINE):
+ (REG_INTERVALS, REG_LIMITED_OPS, REG_NEWLINE_ALT):
+ (REG_NO_BK_BRACES, REG_NO_BK_PARENS, REG_NO_BK_REFS):
+ (REG_NO_BK_VBAR, REG_NO_EMPTY_RANGES):
+ (REG_UNMATCHED_RIGHT_PAREN_ORD, REG_NO_POSIX_BACKTRACKING):
+ (REG_NO_GNU_OPS, REG_DEBUG, REG_INVALID_INTERVAL_ORD):
+ (REG_IGNORE_CASE, REG_CARET_ANCHORS_HERE):
+ (REG_CONTEXT_INVALID_DUP, REG_NO_SUB, REG_SYNTAX_EMACS):
+ (REG_SYNTAX_AWK, REG_SYNTAX_GNU_AWK, REG_SYNTAX_POSIX_AWK):
+ (REG_SYNTAX_GREP, REG_SYNTAX_EGREP, REG_SYNTAX_POSIX_EGREP):
+ (REG_SYNTAX_ED, REG_SYNTAX_SED, _REG_SYNTAX_POSIX_COMMON):
+ (REG_SYNTAX_POSIX_BASIC, REG_SYNTAX_POSIX_MINIMAL_BASIC):
+ (REG_SYNTAX_POSIX_EXTENDED, REG_SYNTAX_POSIX_MINIMAL_EXTENDED):
+ (REG_DUP_MAX, REG_UNALLOCATED, REG_REALLOCATE, REG_FIXED):
+ (REG_NREGS):
+ Remove. All uses replaced by the old RE_* names.
+ (RE_BACKSLASH_ESCAPE_IN_LISTS):
+ (RE_BK_PLUS_QM, RE_CHAR_CLASSES, RE_CONTEXT_INDEP_ANCHORS):
+ (RE_CONTEXT_INDEP_OPS, RE_CONTEXT_INVALID_OPS):
+ (RE_DOT_NEWLINE, RE_DOT_NOT_NULL, RE_HAT_LISTS_NOT_NEWLINE):
+ (RE_INTERVALS, RE_LIMITED_OPS, RE_NEWLINE_ALT):
+ (RE_NO_BK_BRACES, RE_NO_BK_PARENS, RE_NO_BK_REFS):
+ (RE_NO_BK_VBAR, RE_NO_EMPTY_RANGES):
+ (RE_UNMATCHED_RIGHT_PAREN_ORD, RE_NO_POSIX_BACKTRACKING):
+ (RE_NO_GNU_OPS, RE_DEBUG, RE_INVALID_INTERVAL_ORD):
+ (RE_IGNORE_CASE, RE_CARET_ANCHORS_HERE):
+ (RE_CONTEXT_INVALID_DUP, RE_NO_SUB):
+ Don't bother having these macros be independent of each others'
+ values, since they no longer exist in the POSIX name space.
+
+ Rename the following member names back to their old names,
+ unless !__USE_GNU_REGEX. All uses changed back.
+ (buffer): Renamed from re_buffer.
+ (allocated): Renamed from re_allocated.
+ (used): Renamed from re_used.
+ (syntax): Renamed from re_syntax.
+ (fastmap): Renamed from re_fastmap.
+ (translate): Renamed from re_translate.
+ (can_be_null): Renamed from re_can_be_null.
+ (regs_allocated): Renamed from re_regs_allocated.
+ (fastmap_accurate): Renamed from re_fastmap_accurate.
+ (no_sub): Renamed from re_no_sub.
+ (not_bol): Renamed from re_not_bol.
+ (not_eol): Renamed from re_not_eol.
+ (newline_anchor): Renamed from re_newline_anchor.
+ (num_regs): Renamed from rm_num_regs.
+ (start): Renamed from rm_start.
+ (end): Renamed from rm_end.
+
+ (free_state): Move up a bit.
+
+ * regex_internal.h (inline) [__GNUC__ < 3 && defined _LIBC]:
+ #define to be empty.
+ (ASCII_CHARS): New macro, replacing all uses of 0x80 and/or SBC_MAX / 2
+ when that is what is intended.
+ (SBC_MAX): Define to UCHAR_MAX + 1, not 256.
+ (__re_error_msgid, __re_error_msgid_idx): Remove decls; not needed.
+ (MAX): New macro.
+ (re_xmalloc, re_calloc, re_xrealloc, re_x2realloc): Remove.
+ All uses changed back to re_malloc, etc. It's now the caller's
+ responsibility to check for overflow; all callers changed.
+ (re_alloc_oversized, re_x2alloc_oversized, re_xnmalloc, re_xnrealloc):
+ (re_x2nrealloc): Remove.
+ (free_state): Remove decl.
+
+ * regexc.c (regexec, re_match, re_search, re_match_2, re_search_2):
+ (re_set_registers, re_exec):
+ Use K&R-style defn.
+
+ 2006-01-31 Roland McGrath <roland@redhat.com>
+
+ * regcomp.c (calc_eclosure_iter): Remove dead variables.
+ Reported by Mike Frysinger <vapier@gentoo.org>.
+
+ 2006-01-15 Andreas Jaeger <aj@suse.de>
+
+ [BZ #1950]
+ * regex_internal.c (re_string_reconstruct): Adjust for
+ build_wcs_upper_buffer change.
+ (build_wcs_upper_buffer): Change return type.
+
+ 2005-12-10 Ulrich Drepper <drepper@redhat.com>
+
+ * regex_internal.h: Include <stdint.h> if available.
+
+ 2005-12-06 Paolo Bonzini <bonzini@gnu.org>
+
+ * regex_internal.h (SIZE_MAX): Provide a default definition.
+
+ 2005-10-14 Ulrich Drepper <drepper@redhat.com>
+
+ * regcomp.c: Adjust for changed secondary hash function.
+
+ 2005-09-30 Ulrich Drepper <drepper@redhat.com>
+
+ * regex.h: Pretty printing.
+ Clean up namespace a bit.
+
+ 2005-09-30 Jakub Jelinek <jakub@redhat.com>
+
+ * regexec.c (update_cur_sifted_state, check_arrival,
+ check_arrival_add_next_nodes): Avoid using uninitialized variable.
+
+ 2005-09-06 Paul Eggert <eggert@cs.ucla.edu>
+ Ulrich Drepper <drepper@redhat.com>
+
+ [BZ #1302]
+ * regex_internal.h (bitset_t): Renamed from bitset. All uses changed.
+ (bitset_word_t): Renamed from bitset_word. All uses changed.
+
+ 2005-09-22 Ulrich Drepper <drepper@redhat.com>
+
+ [BZ #281]
+ * regex.h: Define RE_TRANSLATE_TYPE as unsigned char *.
+ * regcomp.c: Remove unnecessary uses of
+ unsigned RE_TRANSLATE_TYPE.
+ * regex_internal.h: Likewise.
+ * regex_internal.c: Likewise.
+ * regexec.c: Likewise.
+ Based on a patch by Stepan Kasal <kasal@ucw.cz>.
+
+ 2005-09-07 Ulrich Drepper <drepper@redhat.com>
+
+ * regexec.c (find_recover_state): Remove unnecessary
+ initialization.
+ (transit_state_bkref): Make DFA a const pointer.
+ (get_subexp): Likewise.
+ (check_arrival): Likewise.
+ (update_cur_sifted_state): Likewise.
+ (re_search_internal): Likewise.
+ (prune_impossible_nodes): Likewise.
+ (acquire_init_state_context): Likewise.
+ (proceed_next_node): Likewise.
+ (set_regs): Likewise.
+ (free_fail_stack_return): Likewise.
+ (check_arrival_expand_ecl): Mark DFA parameter as const.
+ (check_arrival_expand_ecl_sub): Likewise.
+ (check_subexp_limits): Likewise.
+ (sub_epsilon_src_nodes): Likewise.
+ (add_epsilon_src_nodes): Likewise.
+ (merge_state_array): Likewise.
+ (update_regs): Likewise.
+ (build_trtable): Likewise.
+ (sift_states_backward): Mark MCTX parameter as const.
+ (build_sifted_states): Likewise.
+ (update_cur_sifted_state): Likewise.
+ (sift_states_mkref): Likewise.
+ (check_arrival_expand_ecl): Mark eclosure as const.
+ (check_dst_limits_calc_pos_1): Likewise.
+ * regex_internal.h (re_match_context_t): Make dfa a const
+ pointer.
+
+ 2005-09-06 Ulrich Drepper <drepper@redhat.com>
+
+ * regexec.c (merge_state_with_log): Define dfa as const pointer.
+ (transit_state_sb): Likewise.
+ (transit_state_mb): Likewise.
+ (sift_states_iter_mb): Likewise.
+ (check_arrival_add_next_nodes): Likewise.
+ (check_node_accept_bytes): Change first parameter to pointer-to-const.
+ [_LIBC] (re_search_2_stub): Use mempcpy.
+
+ * regex_internal.c (re_string_reconstruct): Avoid calling
+ mbrtowc for very simple UTF-8 case.
+
+ * regex_internal.c (re_acquire_state): Make DFA pointer arg
+ a pointer-to-const.
+ (re_acquire_state_context): Likewise.
+ * regex_internal.h: Adjust prototypes.
+
+ * regex.c: Prevent using C++ compilers.
+
+ * regex_internal.c (re_acquire_state): Minor code rearrangement.
+ (re_acquire_state_context): Likewise.
+
+2006-03-11 Eric Blake <ebb9@byu.net>
+
+ * same.c (same_name): s/base_name/last_component/
+ * backupfile.c (check_extension, numbered_backup): Likewise.
+ * filenamecat.c (file_name_concat): Likewise.
+
+2006-03-11 Eric Blake <ebb9@byu.net>,
+ Paul Eggert <eggert@cs.ucla.edu>
+
+ * dirname.h (FILE_SYSTEM_PREFIX_LEN): Move here from dos.m4.
+ [FILE_SYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX]: Don't treat 1: as a
+ drive prefix.
+ (IS_ABSOLUTE_FILE_NAME): Treat all drive letters as absolute on
+ platforms like cygwin with FILE_SYSTEM_DRIVE_PREFIX_IS_ABSOLUTE.
+ (last_component): New method.
+ * dirname.c (dir_len): Determine when drive letters need a
+ subsequent slash. Preserve // when it is special.
+ (dir_name): Don't append dot when drive letter is absolute.
+ [TEST_DIRNAME]: Move into a full-blown gnulib test.
+ * basename.c (base_name): New semantics - malloc the result.
+ Preserve // when it is special. Preserve relative files that look
+ like drive letters.
+ (base_len): Preserve // when it is special.
+ (last_component): New method, similar to old base_name semantics.
+ * stripslash.c (strip_trailing_slashes): Use last_component, not
+ base_name. Strip redundant slashes from ///.
+
+2006-03-19 Jim Meyering <jim@meyering.net>
+
+ Work even in a chroot where d_ino values for entries in "/"
+ don't match the stat.st_ino values for the same names.
+ * getcwd.c (__getcwd): When no d_ino value matches the target inode
+ number, iterate through all entries again, using lstat instead.
+ Reported by Kenshi Muto in http://bugs.debian.org/355810, and by
+ Zouhir Hafidi in https://bugzilla.redhat.com/bugzilla/190656.
+
+ * getcwd.c (__getcwd): Clarify a comment.
+ Use memcpy in place of a call to strcpy.
+
+2006-03-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ * regex.h (regoff_t) [defined _REGEX_LARGE_OFFSETS]:
+ Typedef to long int, not to off_, as POSIX will likely change
+ in that direction.
+
+2006-03-12 Jim Meyering <jim@meyering.net>
+
+ * fts-cycle.c (leave_dir): If cycle-check's saved dev-ino pair matches
+ that of the current directory (which we're about to chdir ".." out of),
+ then save the dev-ino of the parent, instead.
+
+ * same-inode.h (SAME_INODE): New file/macro.
+ * chdir-safer.c (SAME_INODE): Remove definition.
+ Include "same-inode.h", instead.
+ * same.c: Likewise.
+ * cycle-check.h: Include "same-inode.h".
+ (CYCLE_CHECK_REFLECT_CHDIR_UP): Define.
+ * cycle-check.c (SAME_INODE): Remove definition.
+ * root-dev-ino.h: Include "same-inode.h".
+
+2006-03-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ * Makefile.am (libcoreutils_a_SOURCES): Remove time_r.c, time_r.h,
+ as this is now done in m4.
+ * time_r.h (asctime_r, ctime_r): Remove. These functions can
+ overrun buffers and shouldn't be used (much as gets shouldn't be
+ used).
+ * time_r.c (asctime_r, ctime_r): Likewise.
+
+2006-02-17 Simon Josefsson <jas@extundo.com>
+
+ * base64.h, base64.c: New files.
+ * Makefile.am (libcoreutils_a_SOURCES): Add base64.h and base64.c.
+
+2006-02-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ * getcwd.c (AT_FDCWD): Work around a bug in Solaris 9 and 10, where
+ AT_FDCWD exceeds INT_MAX.
+ * openat.h (AT_FDCWD): Likewise.
+
+2006-02-17 Jim Meyering <jim@meyering.net>
+
+ * openat.c: Include lstat.h, so that uses of lstat are converted
+ to uses of rpl_lstat, e.g., on Solaris 9. Otherwise, programs like
+ du (which now uses the openat-enabled fts and hence fstatat) would
+ mistakenly fail to dereference a symlink-to-directory specified
+ with a trailing slash.
+
+2006-02-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ * vasnprintf.c (VASNPRINTF): Rewrite the computation so that we
+ need not use xsum.
+
+2006-02-14 Bruno Haible <bruno@clisp.org>
+
+ Sync from gnulib.
+
+ * vasnprintf.c (VASNPRINTF): In the computation of the size of the
+ temporary buffer for sprintf, take into account the precision also
+ for 'd', 'i', 'u', 'o', 'x', 'X'.
+
+2006-02-14 Simon Josefsson <jas@extundo.com>
+
+ Sync from gnulib.
+
+ * getaddrinfo.h: Define EAI_ADDRFAMILY and EAI_SYSTEM if not set,
+ for mingw32.
+
+ * gai_strerror.c, getaddrinfo.h: Protect netdb.h #include (for
+ mingw32).
+
+2006-02-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ * closeout.c (close_stdout): Don't assume 'bool' converts nonzero
+ ints to 0 or 1, as this isn't true for the stdbool.h substitute.
+
+2006-02-02 Jim Meyering <jim@meyering.net>
+
+ Eliminate the unwelcome (albeit unlikely) possibility of xmalloc
+ failure on deficient systems, and simplify gnulib lgpl dependencies.
+ * lstat.c (rpl_lstat): Rewrite to use stat() in place of the
+ xmalloc/lstat combination. Based on a patch from Bruno Haible.
+
+2006-01-27 Paul Eggert <eggert@cs.ucla.edu>
+
+ * fnmatch.c (L_): Renamed from L, to work around a bug in
+ Mac OS X 10.3.9 with GCC 3 reported by Claudio Fontana in
+ <http://lists.gnu.org/archive/html/bug-gnulib/2006-01/msg00074.html>.
+ All uses changed.
+
+2006-01-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ * stdbool_.h: Sync from gnulib.
+ Use signed char with all non-GCC compilers.
+
+2006-01-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * stdbool_.h: Merge from gnulib; we still don't quite match exactly,
+ but we're getting closer.
+ (true, false) [defined __BEOS__]: undef, as before.
+ (_Bool) [!@HAVE__BOOL@ && defined __GNUC__]: Use an enum
+ rather than a #define.
+
+2006-01-25 Jim Meyering <jim@meyering.net>
+
+ * fileblocks.c: Remove useless parentheses in cpp directive.
+ * readutmp.h: Likewise.
+
+2006-01-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ Work around porting bugs reported by Dieter in
+ <http://lists.gnu.org/archive/html/bug-bison/2006-01/msg00049.html>.
+ * getopt.c (_NOPROTO): Remove; no longer needed.
+ Include <stdlib.h> and <unistd.h> in all environments; it's safe now.
+ Include "getopt.h" first, to check interface.
+ (getenv): Declare only if defined HAVE_DECL_GETENV &&
+ !HAVE_DECL_GETENV.
+ * strndup.c [!_LIBC]: Include "strndup.h" to get prototype.
+ (__strndup): Revert to K&R-style function dfns, the glibc style.
+ * strnlen.c: Don't claim it's taken from glibc; it's not.
+ (strnlen, __strnlen): Remove #defines and #undefs; not needed.
+ Include strnlen.h first, to get prototype properly.
+ (strnlen): Renamed from __strnlen.
+ Remove weak alias.
+
+2006-01-23 Ulrich Drepper <drepper@redhat.com>
+
+ These changes imported from libc.
+ * getopt.c: Use __fxprintf instead of inline stream orientation
+ test and two separate function calls.
+ * strndup.c (__strndup): Add libc_hidden_def.
+
+2006-01-23 Jim Meyering <jim@meyering.net>
+
+ * xalloc-die.c: Remove unused definition of N_.
+
+2006-01-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ * quotearg.c (quotearg_buffer_restyled): Add "default: break;"
+ to pacify gcc -Wswitch-default.
+
+2006-01-17 Jim Meyering <jim@meyering.net>
+
+ Rewrite fts.c not to change the current working directory,
+ by using openat, fstatat, fdopendir, etc..
+
+ * fts.c [! _LIBC]: Include "openat.h" and "unistd--.h".
+ (HAVE_OPENAT_SUPPORT): Define.
+ [_LIBC] (fchdir): Don't undef or define; no longer used.
+ (FCHDIR): Define in terms of cwd_advance_fd rather than fchdir.
+ Now, this `function' always succeeds, and consumes its file descriptor
+ parameter -- so callers must not close such FDs. Update callers.
+ (diropen_fd, opendirat, cwd_advance_fd): New functions.
+ (diropen): Add parameter, SP. Adjust all callers.
+ Implement using diropen_fd, rather than open.
+ (fts_open): Initialize new member, fts_cwd_fd.
+ Remove fts_rft-setting code.
+ (fts_close): Close fts_cwd_fd, if necessary.
+ (__opendir2): Define in terms of opendir or opendirat,
+ depending on whether the FST_NOCHDIR flag is set.
+ (fts_build): Since fts_safe_changedir consumes its FD, and since
+ this code must do `closedir(dirp)', dup the dirfd(dirp) argument,
+ and close the dup'd file descriptor upon failure.
+ (fts_stat): Use fstatat(...AT_SYMLINK_NOFOLLOW) in place of lstat.
+ (fts_safe_changedir): Tweak semantics to reflect that this function
+ now calls cwd_advance_fd and hence consumes its FD argument.
+ * fts_.h [struct FTS] (fts_cwd_fd): New member.
+ [struct FTS] (fts_rft): Remove now-unused member.
+ [struct FTS] (fts_cycle.state): Improve comment.
+
+ * openat.c (openat_needs_fchdir): New function.
+ * openat.h (openat_needs_fchdir): Declare it.
+
+2006-01-12 Jim Meyering <jim@meyering.net>
+
+ * stdint_.h: Remove useless parentheses in cpp directives, so that
+ this file passes coreutils' `make syntax-check' tests.
+
+2006-01-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ * .cvsignore: Add stdint.h.
+ * Makefile.am (BUILT_SOURCES, EXTRA_DIST, stdint.h, MOSTLYCLEANFILES):
+ Add gnulib snippet.
+ * md5.c: Fix commentary typos.
+ (alignof, UNALIGNED_P): No need for a GCC-specific version.
+ * md5.h (__attribute__): Remove; unused.
+ * sha1.c, sha256.c, sha256.c: Fix commentary to match md5 better.
+ * sha1.h (struct sha1_ctx): Use a word buffer, not a byte buffer,
+ so that we don't need to worry about alignment. All uses changed.
+ This merges the 2005-10-28 md5 change into sha1.
+ * sha256.h (struct sha256_ctx): Likewise.
+ * sha512.h (struct sha512_ctx): Likewise.
+ * sha256.h: Include stdint.h rather than md5.h.
+ * sha512.h: Include stdint.h uniformly, since we now have the
+ stdint module.
+ * stdint_.h: New file, from gnulib.
+
+2006-01-11 Jim Meyering <jim@meyering.net>
+
+ * fts.c (fts_stat): When following a symlink-to-directory,
+ don't necessarily interpret stat-fails+lstat-succeeds as indicating
+ a dangling symlink. That can also happen at least for ELOOP.
+ The fix: return FTS_SLNONE only when the stat errno is ENOENT.
+ FYI, this bug predates the inclusion of fts.c in coreutils.
+
+2006-01-11 Jim Meyering <jim@meyering.net>
+
+ * fts.c [!_LIBC]: Include "fcntl--.h", to map open to open_safer.
+ (fts_open): Put new (2006-01-04) maxarglen declaration and uses
+ in their own block, so pre-c99 compilers don't object.
+
+ * openat.c (fchownat): New function.
+ * openat.h (fchmodat, fchownat): Declare.
+ (chmodat, lchmodat): Define convenience functions.
+ (chownat, lchownat): Likewise.
+ * fchmodat.c (fchmodat): New file and function.
+
+ * md5.c (OP): Remove useless space-before-TAB.
+
+2006-01-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ * localcharset.c, md5.c, md5.h, savedir.c, savedir.h, sha1.c, sha1.h
+ * strcasecmp.c, strncasecmp.c, verify.h, regex_internal.h:
+ Sync from gnulib.
+ * sha256.c, sha256.h, sha512.c, sha512.h:
+ Replace all instances of md5_uint32_t with uint32_t, to accommodate
+ gnulib change.
+
+2006-01-10 Jim Meyering <jim@meyering.net>
+
+ Avoid the double-free (first in fts_read, second in fts_close) that
+ would occur when an `active' directory is made inaccessible (e.g.,
+ via chmod a-x) during a traversal.
+ * fts.c (fts_read): After a failed fchdir, update sp->fts_cur
+ before returning. Reproduce this failure by
+ mkdir -p a/b; cd a; chmod a-x . b
+ Reported by Stavros Passas.
+
+2006-01-06 Jim Meyering <jim@meyering.net>
+
+ * version-etc.c (COPYRIGHT_YEAR): Update to 2006.
+
+2006-01-04 Paul Eggert <eggert@cs.ucla.edu>
+
+ * strftime.c (tzname): Don't declare if it is already #defined.
+ Problem reported for Mingw by Mark Junker.
+
+2006-01-04 Jim Meyering <jim@meyering.net>
+
+ Merge from glibc.
+ * fts.c (fts_open): Avoid function call in MAX macro use.
+
+2006-01-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ * xtime.h (xtime_make, xtime_nonnegative_nsec, xtime_nsec): Use
+ long int, not int, for nanosecond counts, so that people who are
+ used to POSIX struct timespec won't be surprised. Reported by Jim
+ Meyering.
+
+2006-01-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ * chmod-safer.c, chmod-safer.h: Remove.
+ * lchmod.h: New file.
+ * mkdir-p.c: Include lchmod.h, lchown.h.
+ (make_dir_parents): Use lchown rather than chown, and
+ lchmod rather than chmod.
+
+2005-12-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ * chdir-long.c (cdb_free): Don't bother trying to open directory
+ for write access: POSIX says that must fail.
+ * chdir-safer.c (chdir_no_follow): Likewise.
+ * fts.c (diropen): Likewise.
+ * save-cwd.c (save_cwd): Likewise.
+ * chdir-long.c (cdb_free): Open with O_NOCTTY | O_NONBLOCK as
+ well, for minor improvements on hosts that lack O_DIRECTORY.
+ * chmod-safer.c (defined_S_IFMT): New macro.
+ Include stat-macros.h.
+ Include stdlib.h, for abort().
+ Don't include stdio.h or assert.h; no longer needed.
+ (same_file_type): Don't assume S_IFMT is defined, as POSIX
+ does not require this. Don't assume S_IFCHR and S_IFBLK have
+ their usual sort of bit pattern.
+ (fchmod_new): Open with O_NOCTTY for as well, for minor
+ improvement on hosts where that matters. Don't bother to assert,
+ since the caller (in this source file) checks the same thing.
+ Discard any errno from a close failure, for consistency with other
+ code.
+ * chown.c (rpl_chown) [CHOWN_MODIFIES_SYMLINK]:
+ Don't try O_WRONLY unless O_RDONLY failed wth EACCES.
+ Fall back on chown if open failed with EACCES.
+
+2005-12-26 Jim Meyering <jim@meyering.net>
+
+ * chdir-safer.c (chdir_no_follow): Move declaration of local,
+ sb2, `down' into the scope where it is used.
+ Note that on some systems this function also fails when DIR
+ is a writable-yet-unreadable directory.
+
+2005-12-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * chdir-safer.h (FCHMOD_SAFER_H): Remove: it was misnamed, and
+ wasn't needed anyay.
+ * chdir-safer.c (chdir_no_follow): Don't include stdio.h, assert.h,
+ fcntl--.h; not needed.
+ (O_DIRECTORY): Define if not already defined.
+ (chdir_no_follow): Revamp describing comment to match code more
+ closely. Redo use of internal vars to avoid lint complaints.
+ Work even if directory is writeable but not readable.
+ Open with O_DIRECTORY | O_NOCTTY, for benefit of hosts that
+ don't have O_NOFOLLOW. Use O_NONBLOCK (POSIX spelling) rather
+ than O_NDELAY. Don't bother invoking fstat if open does not
+ dereference symlink, since the result isn't used then.
+ Don't assume file descriptor is positive; it might be zero
+ now that we no longer include fcntl--.h (we don't need fcntl--.h
+ since we immediately close the descriptor).
+
+2005-12-25 Jim Meyering <jim@meyering.net>
+
+ * chdir-safer.c (chdir_no_follow): Remove unnecessary
+ test of S_ISDIR (sb_init.st_mode).
+
+2005-12-23 Jim Meyering <jim@meyering.net>
+
+ * mkdir-p.c (make_dir_parents): Use chdir_no_follow only
+ if we've just created the directory.
+
+ * chdir-safer.c (chdir_no_follow): Rewrite to use fchdir even
+ when O_NOFOLLOW is not defined. Suggested by James Youngman.
+
+ * chmod-safer.c (O_NOFOLLOW): Define, if necessary.
+ * chdir-safer.c (O_NOFOLLOW): Likewise.
+ Reported by Eric Blake.
+
+2005-12-22 Jim Meyering <jim@meyering.net>
+
+ * openat.c: Include "fcntl--.h" and "unistd--.h", to map open
+ and dup to open_safer and dup_safer, respectively.
+ (openat_permissive): Fix typo in comment.
+
+2005-12-21 Jim Meyering <jim@meyering.net>
+
+ Like chdir(2), but safer, if possible.
+ * chdir-safer.c, chdir-safer.h: New files.
+
+2005-12-20 Jim Meyering <jim@meyering.net>
+
+ * mkdir-p.c (RW_USR): Remove definition.
+ (make_dir_parents): Use S_IRWXU, now that read access is also required.
+
+ Avoid a race condition, on systems where open honors O_NOFOLLOW.
+ * mkdir-p.c (make_dir_parents): Include chdir-safer.h.
+ Use chdir_no_follow in place of chdir.
+
+ * mkdir-p.c (make_dir_parents): Remove unnecessary casts of alloca,
+ since now it's guaranteed to be (void *).
+
+ * chmod-safer.c (fchmod_new): Don't try to close fd if it's < 0.
+
+2005-12-19 Jim Meyering <jim@meyering.net>
+
+ * chmod-safer.c, chmod-safer.h: New files.
+
+2005-12-05 Andreas Gruenbacher <agruen@suse.de>
+
+ Add POSIX ACL support
+ * acl.h (copy_acl, set_acl): Add declarations.
+ * acl.c (acl_entries): Add fallback implementation for POSIX ACL
+ systems other than Linux.
+ (chmod_or_fchmod): New function: use fchmod when possible,
+ and chmod otherwise.
+ (file_has_acl): Add a POSIX ACL implementation, with a
+ Linux-specific subcase.
+ (copy_acl): Add: copy an acl and S_ISUID, S_ISGID, and
+ S_ISVTX from one file to another. Fall back to fchmod/chmod when
+ acls are unsupported.
+ (set_acl): Add: set a file's acl and S_ISUID, S_ISGID, and
+ S_ISVTX to a defined value. Fall back to fchmod/chmod when acls
+ are unsupported.
+
+2005-12-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ * openat.c: Don't include <stdlib.h>, <unistd.h>, <fcntl.h>,
+ "gettext.h"; either no longer needed or are guaranteed by openat.h.
+ (_): Remove; no longer needed.
+ (openat): Renamed from rpl_openat; no need for rpl_openat
+ since openat.h renames openat for us.
+ Replace most of the body with a call to openat_permissive,
+ to avoid duplicate code.
+ Port to (probably hypothetical) environments were mode_t is
+ wider than int.
+ (openat_permissive): Require mode arg, so that we can check
+ types better. Put it just after flags. Change cwd failure
+ indicator from pointer-to-bool to pointer-to-errno-value.
+ All callers changed.
+ Invoke openat_save_fail and/or openat_restore_fail if
+ cwd_errno is null, so that openat can call us.
+ (openat_permissive, fdopendir, fstatat, unlinkat):
+ Simplify errno handling to avoid some duplicate code,
+ as it's OK to set errno on success.
+ * openat.h: Revamp code so that function macros depend on
+ __OPENAT_PREFIX only, not also on AT_FDCWD.
+ (openat_ro): Remove. Caller changed to use openat_permissive.
+ (openat_permissive): Now a macro, if not a function.
+ (openat_restore_fail, openat_save_fail): Now always functions,
+ since mkdirat needs them even if __OPENAT_PREFIX is defined.
+
+2005-12-14 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (libcoreutils_a_SOURCES): Remove fprintftime.c
+ and fprintftime.h. Now they're pulled in via the .m4 file.
+
+2005-12-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ * Makefile.am (stdbool.h): Resurrect the 'sed' that goes along
+ with '#if !@HAVE_BOOL@".
+ * stdbool_.h (_Bool): Resurrect the "#if !@HAVE__BOOL@" check, to
+ work around compilers that have a (possibly-broken) _Bool but lack
+ a working <stdbool.h>.
+
+2005-12-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ * stat-time.h (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
+ TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC, to fix IRIX 5.3
+ porting problem reported by Georg Schwarz in
+ <http://lists.gnu.org/archive/html/bug-coreutils/2005-12/msg00083.html>.
+
+2005-12-04 Jim Meyering <jim@meyering.net>
+
+ * openat-priv.h (EXPECTED_ERRNO): Add ENOSYS, for Solaris 8.
+ Paul Eggert reported that unlink/rmdir vs. e.g., /proc/self/fd/N/FILE
+ fails with ENOSYS. This makes openat revert to using save-cwd.c
+ functions in that case.
+
+2005-12-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ Sync from gnulib.
+
+ * exclude.c: Include verify.h.
+ (verify): Remove. All callers changed to use verify.h's version.
+ * strtoimax.c: Likewise.
+ * utimecmp.c: Likewis.e
+
+ * obstack.c [defined _LIBC && defined USE_IN_LIBIO]: Don't
+ include <wchar.h>; no longer needed.
+
+2005-12-01 Jim Meyering <jim@meyering.net>
+
+ Sync from gnulib.
+
+ * intprops.h (signed_type_or_expr__): Define.
+ (INT_STRLEN_BOUND) [__GNUC__]: Use a slightly tighter bound
+ for unsigned types.
+
+2005-12-01 Jakub Jelinek <jakub@redhat.com>
+ and Ulrich Drepper <drepper@redhat.com>
+
+ Import from libc via gnulib.
+ * obstack.c (print_and_abort) [defined _LIBC]: Use __fxprintf
+ instead of inline stream orientation test and two separate
+ function calls. Pay no attention to USE_IN_LIBIO.
+
+2005-12-01 Roland McGrath <roland@redhat.com>
+
+ Import from libc via gnulib. [BZ #1331]
+ * obstack.h [!__STDC__] (obstack_int_grow_fast): Fix misnamed
+ macro argument.
+ Reported by Matej Vela <vela@debian.org>.
+
+2005-11-30 Jim Meyering <jim@meyering.net>
+
+ * openat-priv.h: New file, defining macros used by mkdirat.c
+ and openat.c.
+ * mkdirat.c: Include openat-priv.h.
+ Remove definitions of macros defined therein.
+ * openat.c: Likewise.
+
+ * mkdirat.c (mkdirat): New file and function.
+ * openat.h (mkdirat): Declare.
+
+2005-11-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * mountlist.c (ME_DUMMY): "none" and "proc" file systems are dummies
+ too. Problem with "none" reported by Bob Proulx. Problem with
+ "proc" reported by n0dalus.
+
+ * mountlist.c: Include <limits.h>.
+ (dev_from_mount_options)
+ [defined MOUNTED_GETMNTENT1 || defined MOUNTED_GETMNTENT2]:
+ New function. It no longer assumes "dev=" has the System V meaning
+ on Linux (since it doesn't). It also parses "dev=" more carefully.
+ (read_file_system_list)
+ [defined MOUNTED_GETMNTENT1 || defined MOUNTED_GETMNTENT2]: Use it.
+ MOUNTED_GETMNTENT2 is new here; the code didn't used to look for
+ dev= in that case.
+
+ * Makefile.am (stdbool.h): Just copy stdbool_.h; no need to sed
+ any more.
+
+ * stdbool_.h: Simplify greatly, under the assumption that these
+ days most people use C99-compatible compilers to debug, so it's
+ not worth worrying about catering to older compilers for that.
+ This works around some porting problems with HP-UX compilers.
+ (false, true) [defined __BEOS__]: Don't #undef; no longer needed.
+ (_Bool): typedef to bool if C++ or BeOS, and #define to signed char
+ otherwise.
+
+ * gettime.c (gettime) [!defined OK_TO_USE_1S_CLOCK]:
+ Report an error at compile-time if only a 1-second nominal clock
+ resolution is found.
+
+2005-11-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ * Makefile.am (libcoreutils_a_SOURCES): Add buffer-lcm.c, buffer-lcm.h.
+ * buffer-lcm.c, buffer-lcm.h: New files, from diffutils.
+
+2005-11-23 Jim Meyering <jim@meyering.net>
+
+ * openat.c (fdopendir): Don't change errno when returning non-NULL.
+
+2005-11-22 Jim Meyering <jim@meyering.net>
+
+ * openat.h (openat_permissive): Declare.
+ (openat_ro): Define.
+
+ * openat.c (EXPECTED_ERRNO): New macro.
+ (openat_permissive): New function -- used in remove.c rewrite.
+ (all functions): Set errno just before returning, only if there
+ was an actual failure.
+ Use EXPECTED_ERRNO rather than comparing against only ENOTDIR.
+
+2005-11-20 Jim Meyering <jim@meyering.net>
+
+ * euidaccess-stat.c: New file, mostly from euidaccess.c.
+ * euidaccess-stat.h: New file.
+
+2005-11-15 Paul Eggert <eggert@cs.ucla.edu>
+
+ * xstrtod.c: Don't bother with #pragma STDC FENV_ACCESS ON, as
+ coreutils no longer futzes with rounding modes.
+
+2005-11-08 Eric Blake <ebb9@byu.net>
+
+ * getaddrinfo.h: Use #if !, not #ifndef, for AC_CHECK_DECLS.
+
+2005-11-13 Jim Meyering <jim@meyering.net>
+
+ * mkstemp-safer.c: Include <config.h>, required for possible
+ replacement of mkstemp.
+
+2005-11-12 Jim Meyering <jim@meyering.net>
+
+ Emulate openat-family functions using Linux's procfs, if possible.
+ Idea and some code based on Ulrich Drepper's glibc changes.
+
+ * openat.c: (BUILD_PROC_NAME): New macro.
+ Include <stdio.h>, <string.h>, "alloca.h" and "intprops.h".
+ (rpl_openat): Emulate by trying to open /proc/self/fd/%d/%s,
+ before falling back on save_cwd and restore_cwd.
+ (fdopendir, fstatat, unlinkat): Likewise.
+
+2005-11-11 Jim Meyering <jim@meyering.net>
+
+ * openat.c (fstatat, unlinkat): Perform the syscall directly,
+ skipping the save_cwd...restore_cwd overhead, if FILE is absolute.
+
+2005-11-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ * gethrxtime.c: Include "timespec.h" rather than the sys/time / time
+ business.
+ (gethrxtime) [! (HAVE_NANOUPTIME
+ || (defined CLOCK_MONOTONIC && HAVE_CLOCK_GETTIME)
+ || HAVE_MICROUPTIME)]: Fall back on gettime rather than rolling
+ our own approximation.
+
+2005-11-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ * posixtm.h (PDS_PRE_2000): New macro.
+ * posixtm.c (year): Arg is now syntax_bits rather than allow_century.
+ All usages changed. Reject dates outside the range 1969-1999 if
+ PDS_PRE_2000 is used.
+
+2005-10-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix porting problems reported by Theodoros V. Kalamatianos.
+ * fd-reopen.c [defined HAVE_CONFIG_H]: Include <config.h>,
+ so that large files can be opened.
+ * utimens.c (futimens) [HAVE_WORKING_UTIMES && HAVE_FUTIMES]:
+ Don't assume that futimes failing means we must fail.
+
+2005-10-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ * getcwd.c (__getcwd): Don't assume that system calls after readdir
+ leave errno alone. Problem reported by Dmitry V. Levin.
+
+2005-10-28 Paul Eggert <eggert@cs.ucla.edu>
+
+ * savedir.c (savedir): Don't assume that xrealloc etc. leave
+ errno alone. Problem reported by Frederic Jolliton.
+
+2005-10-24 Jim Meyering <jim@meyering.net>
+
+ * mkdir-p.c (make_dir_parents): Like the code above, don't rely
+ on mkdir failing with a particular errno value (EEXIST).
+ Based on a patch by Dmitry V. Levin.
+
+ * mkdir-p.c (make_dir_parents): Make the preceding fix a little
+ more robust, e.g., when the final component is created as a non-
+ directory by another process just before `mkdir -p's final mkdir.
+
+ A command like `mkdir -p nonexistent/.' would create the
+ directory but exit nonzero with a diagnostic. This could also be
+ triggered with a non-`.' component, e.g., in a race with another
+ process running the same `mkdir -p nonexistent/sub' command.
+
+ * mkdir-p.c (make_dir_parents): Handle the case of an
+ existing final component.
+ Reported by Matthias Andree here:
+ http://savannah.gnu.org/bugs/?func=detailitem&item_id=14848
+
+2005-10-23 Jim Meyering <jim@meyering.net>
+
+ * sha512.h: Remove no-longer-relevant comment.
+
+2005-08-27 David Madore <david.madore@ens.fr>
+
+ * sha256.h, sha256.c, sha512.h, sha512.c: New files - sha-2
+ implementation.
+
+2005-10-20 Jim Meyering <jim@meyering.net>
+
+ * modechange.c (mode_compile): Reject an invalid mode string
+ that starts with an octal digit. From Andreas Gruenbacher.
+
+2005-10-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ * mkdir-p.c (make_dir_parents): Don't report an error if an
+ intermediate directory is in a read-only file system. Problem
+ reported by Eric Blake.
+
+2005-10-08 Jim Meyering <jim@meyering.net>
+
+ * openat.c (rpl_openat): Use the promoted type (int), not mode_t,
+ as second argument to va_arg. Otherwise, some versions of gcc
+ warn that `if this code is reached, the program will abort'.
+
+ Update from gnulib.
+ * getdelim.c: (SIZE_MAX): New macro, if not already defined.
+
+2005-10-05 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (libcoreutils_a_DEPENDENCIES): Remove definition.
+ Once it's gone, automake generates an equivalent one.
+ Suggestion from Stepan Kasal.
+
+ * getaddrinfo.h: Merge from gnulib.
+
+2005-10-04 Jim Meyering <jim@meyering.net>
+
+ Merge from gnulib.
+ * getaddrinfo.h: Include sys/types.h before other headers.
+
+2005-10-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ * getdelim.c: Import from gnulib (to fix unused var warnings) then
+ apply the following fixes:
+ 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-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>
+
+ * 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.
+
+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.
+
+ * 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.
+
+2005-09-29 Jim Meyering <jim@meyering.net>
+
+ * 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-27 Jim Meyering <jim@meyering.net>
+
+ * fprintftime.c [HAVE_CONFIG_H]: Include <config.h> conditionally,
+ to be consistent with gnulib.
+ * getcwd.c: Change #ifdef<TAB>HAVE_CONFIG_H to #ifdef HAVE_CONFIG_H.
+ * fts-cycle.c [HAVE_CONFIG_H]: Include <config.h>.
+ * strnumcmp.c [HAVE_CONFIG_H]: Include <config.h> here, now that
+ strnumcmp-in.h no longer includes it.
+
+2005-09-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ * 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-09-25 Jim Meyering <jim@meyering.net>
+
+ * strnumcmp-in.h: Protect against multiple inclusion.
+
+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.
+
+ * Makefile.am (libcoreutils_a_SOURCES): Remove mbchar.c, since
+ it doesn't build in OpenBSD 3.4. See
+ <http://lists.gnu.org/archive/html/bug-gnulib/2005-09/msg00242.html>.
+
+ * 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>
+
+ * openat-die.c, root-dev-ino.c, setenv.c, stdopen.c:
+ * tsearch.c, unsetenv.c, xfts.c: Use `#ifdef HAVE_CONFIG_H',
+ not `#if HAVE_CONFIG_H', for consistency with gnulib.
+
+ * strintcmp.c: Include <config.h> here, ...
+ * strnumcmp-in.h: ..., not here.
+
+ Sync from gnulib.
+
+ * 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>
+
+ * 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-23 Jim Meyering <jim@meyering.net>
+
+ * strnumcmp-in.h: Include <config.h>. Otherwise builds with strict
+ C89 (e.g., Sun's /opt/SUNWspro/bin/c89) would fail due to the use
+ of `inline'.
+
+2005-09-22 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.
+
+2005-09-21 Paul Eggert <eggert@cs.ucla.edu>
+
+ Sync from gnulib.
+
+ * Makefile.am (libcoreutils_a_SOURCES): Add getaddrinfo.h,
+ mbchar.c, mbchar.h, mbuiter.h, strcase.h, strlen1.c, strnlen1.h,
+ strstr.h.
+
+ * argmatch.h (GL_CONCAT): Remove.
+ Include "verify.h" instead.
+ (ARGMATCH_CONSTRAINT, ARGMATCH_ASSERT): Remove.
+ (ARGMATCH_VERIFY): Rewrite in terms of new verify macros.
+
+ * xalloc.h (VERIFY_EXPR, X2NREALLOC, X2REALLOC): Remove.
+ The latter two macros are moving to ../src/system.h for now.
+ This reverts this file to the gnulib version.
+
+ * xanstrftime.c, xanstrftime.h: Remove; no longer used.
+
+ * .cppi-disable: Add getaddrinfo.h, getdelim.h, mbchar.h,
+ mbuiter.h, strcase.h, strnlen.h, strnlen1.h.
+
+ * canon-host.h, gai_strerror.c, getaddrinfo.c, getaddrinfo.h:
+ * getdelim.c, getdelim.h, mbchar.c, mbchar.h, mbuiter.h:
+ * strcase.h, strnlen.h, strnlen1.c, strnlen1.h, strstr.h:
+ New files, from gnulib.
+
+ * __fpending.c, __fpending.h, acl.c, argmatch.c, atexit.c:
+ * backupfile.c, basename.c, calloc.c, canonicalize.c:
+ * chdir-long.c, chown.c, cloexec.c, closeout.c, creat-safer.c:
+ * cycle-check.c, dirfd.c, dirfd.h, dirname.c, dup-safer.c:
+ * dup2.c, euidaccess.c, exclude.c, exitfail.c, fchown-stub.c:
+ * fd-safer.c, file-type.c, fileblocks.c, filemode.c:
+ * filenamecat.c, fnmatch.c, fopen-safer.c, free.c, fsusage.c:
+ * ftruncate.c, full-write.c, getcwd.c, getcwd.h, getdate.h:
+ * getgroups.c, getndelim2.c, getopt1.c, getopt_.h:
+ * gettimeofday.c, getugroups.c, group-member.c, hard-locale.c:
+ * hash-pjw.c, hash.c, human.c, human.h, idcache.c, inttostr.c:
+ * inttostr.h, lchown.c, long-options.c, lstat.c, malloc.c:
+ * memcasecmp.c, memchr.c, memcmp.c, memcoll.c, memcpy.c:
+ * memmove.c, mkdir.c, mkstemp.c, mktime.c, modechange.c:
+ * mountlist.c, nanosleep.c, open-safer.c, openat.c, physmem.c:
+ * pipe-safer.c, posixtm.c, posixver.c, putenv.c, quote.c:
+ * quotearg.c, raise.c, readlink.c, readtokens0.c, readutmp.c:
+ * realloc.c, regex.c, regex_internal.h, rename.c, rmdir.c:
+ * rpmatch.c, safe-read.c, same.c, save-cwd.c, savedir.c:
+ * settime.c, sig2str.c, strcspn.c, stripslash.c, strndup.c:
+ * strnlen.c, strtod.c, strtoimax.c, strtol.c, strverscmp.c:
+ * tempname.c, time_r.c, time_r.h, timespec.h, unicodeio.h:
+ * unistd--.h, unlinkdir.c, userspec.c, utimecmp.c:
+ * version-etc-fsf.c, version-etc.c, xalloc-die.c, xgetcwd.c:
+ * xgethostname.c, xmalloc.c, xmemcoll.c, xnanosleep.c:
+ * xreadlink.c, xstrndup.c, xstrtoimax.c, xstrtol.c:
+ * xstrtoumax.c, yesno.c:
+ Sync from gnulib.
+
+ * canon-host.c, getline.c, getline.h, getpass.c, strcasecmp.c:
+ * strncasecmp.c, strstr.c:
+ Nontrivial sync from gnulib.
+
+ * .cvsignore: Sort entries.
+
+ * mkdir-p.c (ENOSYS): Define to EEXIST if not defined.
+ (make_dir_parents): Treat ENOSYS like EEXIST.
+
+2005-09-20 Jim Meyering <jim@meyering.net>
+
+ * 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.
+
+2005-09-19 Jim Meyering <jim@meyering.net>
+
+ * openat.c (unlinkat): New function.
+ * openat.h (unlinkat): Add prototype.
+
+2005-09-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ Import from gnulib.
+ * 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.
+
+ * .cppi-disable: Add stat-time.h.
+
+2005-09-16 Jim Meyering <jim@meyering.net>
+
+ * 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.
+
+ * fprintftime.c, fprintftime.h: New files.
+ * Makefile.am (libcoreutils_a_SOURCES):
+ Add fprintftime.c and fprintftime.h.
+
+2005-09-15 Paul Eggert <eggert@cs.ucla.edu>
+
+ * strftime.c (my_strftime): Rewrite the previous change slightly,
+ to make it a bit faster and (I hope) clearer.
+
+2005-09-14 Jim Meyering <jim@meyering.net>
+
+ * 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.
+
+2005-09-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ Merge md5 from libc, and clean up some sha1 glitches.
+ * md5.h (__GNUC_PREREQ, __THROW, __attribute__): New macros.
+ (__md5_buffer): Renamed from md5_buffer. Add a macro undoing this
+ if _LIBC is not defined. Add __THROW.
+ (__md5_finish_ctx, __md5_init_ctx, __md5_process_block):
+ (__md5_process_bytes, __md5_read_ctx, __md5_stream): Likewise.
+ (struct md5_ctx): Mark buffer as being aligned.
+ (rol): Remove; all uses changed to CYCLIC.
+ * md5.c (CYCLIC): New macro. All uses of rol changed to use CYCLIC.
+ Redo comment to minimize changes from libc.
+ * sha1.h (struct sha1_ctx): Mark buffer as being aligned.
+ * sha1.c (SWAP): Renamed from NOTSWAP, to avoid a horrible misnaming.
+ All uses changed. Remove the old SWAP.
+ Remove obvious comment about BLOCKSIZE.
+ (rol): New macro, moved here from md5.h.
+ (sha1_process_block): Remove an incoherent FIXME comment.
+
+ * strftime.c (my_strftime): Add support for %:z, %::z, %:::z.
+ Fix bug in formats like %2N.
+
+2005-09-13 Jim Meyering <jim@meyering.net>
+
+ * xalloc.h: Revert unintended change that removed definitions
+ of X2REALLOC and X2NREALLOC.
+
+ * backupfile.c: Use ARGMATCH_VERIFY, just in case.
+
+2005-09-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * regcomp.c, regex.c, regex.h, regex_internal.c, regex_internal.h:
+ * regexec.c: Import from gnulib, to fix some 64-bit bugs.
+
+2005-09-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ * verify.h (__builtin_constant_p): Remove, undoing previous change.
+ (verify_type__): Solve the problem by using a bit-field rather
+ than an array.
+
+2005-09-05 Jim Meyering <jim@meyering.net>
+
+ * verify.h (__builtin_constant_p) [__GNUC__ <= 2]: Define to 1.
+ (verify_type__) [verify_error_if_non_const__]: New member/test,
+ to help detect when verify or verify_expr is mistakenly passed
+ a non-constant argument within a function.
+
+2005-08-31 Jim Meyering <jim@meyering.net>
+
+ * quotearg.c (quotearg_n_options): Change code to be suboptimal, in
+ order to avoid an unsuppressible warning from gcc on 64-bit systems.
+
+ * localcharset.c (get_charset_aliases): Add `void' in parameter list
+ to placate gcc's -Wstrict-prototypes.
+
+2005-08-27 Jim Meyering <jim@meyering.net>
+
+ * md5.c: Use `#error' rather than a string literal to provoke failure.
+ * sha1.c: Likewise.
+
+2005-08-25 Jim Meyering <jim@meyering.net>
+
+ * open-safer.c: Include <config.h>.
+ Otherwise, we'd lose LARGEFILE support in any file using
+ e.g. "fcntl--.h"
+
+2005-08-24 Jim Meyering <jim@meyering.net>
+
+ * stdopen.c (stdopen): Revert to iterating over descriptors, but
+ rather than using fstat, use fcntl with its F_GETFD flag, which
+ is more efficient. Unlike the 2-syscall dup-close approach,
+ this one doesn't apply any unnecessary pressure on the file
+ descriptor pool -- thus there is one fewer way to fail.
+
+2005-08-23 Jim Meyering <jim@meyering.net>
+
+ * regcomp.c, regex.c, regex.h, regex_internal.c: Update from gnulib.
+ * regex_internal.h, regexec.c: Likewise.
+
+2005-08-19 Jim Meyering <jim@meyering.net>
+
+ * stdopen.c (stdopen): Return `bool' so caller can detect failure.
+
+2005-08-17 Jim Meyering <jim@meyering.net>
+
+ Make the %s format (seconds since the epoch) work for a negative
+ number and when used with a zero-padded field width, e.g. %015s.
+
+ * strftime.c (my_strftime): Move the `do_number_sign_and_padding'
+ label so that it precedes the code to set `digits'. Otherwise,
+ %0Ns wouldn't work. Before this change, `date -d @-22 +%05s' would
+ print `00-22'. Now, it prints `-0022', as it should.
+
+2005-08-15 Bruno Haible <bruno@clisp.org>
+
+ Import from gnulib.
+ * regex.h (__restrict_arr): Don't define to __restrict if __cplusplus
+ is defined.
+
+2005-08-13 Jim Meyering <jim@meyering.net>
+
+ * 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.
+
+2005-08-12 Jim Meyering <jim@meyering.net>
+
+ * regcomp.c (duplicate_node) [lint]: Set *new_idx to -1, to avoid
+ warnings (unfounded) in caller that it may be used uninitialized.
+
+ * regex.c (IF_LINT): Define.
+
+ * regex_internal.c (re_string_realloc_buffers): Rename local-shadowed
+ variable: s/new_array/offsets/.
+ (re_acquire_state) [lint]: Set *err, to avoid warnings in caller.
+
+ * regexec.c (regexec, re_search_stub) [!_LIBC]: Omit declaration
+ of unused local, dfa.
+ (proceed_next_node): Remove outer declaration and
+ unnecessary initialization of local-shadowed `dest_node'.
+ Declare it in inner scopes, nearer its uses instead.
+
+ * regex.h (RE_SYNTAX_POSIX_AWK): Remove useless space-before-TAB.
+
+ * fts-cycle.c (setup_dir, enter_dir, leave_dir, free_dir):
+ Use the hash-table-based cycle-detection code not just when
+ FTS_TIGHT_CYCLE_CHECK if specified, but also with FTS_LOGICAL.
+ Reported by James Youngman in
+ <http://lists.gnu.org/archive/html/bug-gnulib/2005-08/msg00011.html>.
+ * fts_.h: Mention that with FTS_LOGICAL, we use FTS_TIGHT_CYCLE_CHECK.
+
+ * fts.c (fts_cross_check) [FTS_DEBUG]: s/active_dir_ht/fts_cycle.ht/.
+ This lets us compile with -DFTS_DEBUG, once again.
+
+2005-08-02 Jim Meyering <jim@meyering.net>
+
+ * xanstrftime.c, xanstrftime.h: New files.
+
+2005-07-21 Paul Eggert <eggert@cs.ucla.edu>
+
+ * 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.
+
+2005-07-12 Jim Meyering <jim@meyering.net>
+
+ * xalloc.h (X2NREALLOC): Define.
+
+2005-07-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ * verify.h (verify_expr): Use ((verify_type__ (R) *) 0), not
+ sizeof (verify_type__ (R)), to pacify C++ compilers. Problem
+ reported by Bruno Haible.
+
+ * version-etc-fsf.c (version_etc_copyright): Parameterize the
+ copyright symbol and the year.
+ * version-etc.c (COPYRIGHT_YEAR): New constant.
+ (version_etc_va): Use parameterized copyright notice.
+ Reword to conform to the current GNU coding standards.
+
+2005-07-08 Eric Blake <ebb9@byu.net> (tiny change)
+
+ * getloadavg.c (getloadavg) [__CYGWIN__]: Port to cygwin.
+ [__linux__]: Allocate a big enough buffer for /proc/loadavg.
+ [!LDAV_DONE]: Avoid unused variable warning.
+
+2005-07-08 Eric Blake <ebb9@byu.net> (tiny change)
+ and Paul Eggert <eggert@cs.ucla.edu>
+
+ * regcomp.c (init_dfa, build_range_exp): Store __btowc value
+ in wint_t, not wchar_t. Remove now-unnecessary cast.
+
+2005-07-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ Switch to Isamu Hasegawa's implementation of regex, which is
+ now in gnulib.
+ * regcomp.c, regex_internal.c, regex_internal.h, regexec.c:
+ New files, from gnulib.
+ * regex.h, regex.c: Sync from gnulib.
+ * Makefile.am (libcoreutils_a_SOURCES): Remove regex.h; gnulib
+ now does this automatically for us.
+ * .cppi-disable: Add regcomp.c, regex_internal.c, regex_internal.h.
+
+2005-07-04 Paul Eggert <eggert@cs.ucla.edu>
+
+ * verify.h (GL_CONCAT0, GL_CONCAT): Define unconditionally; don't
+ depend on whether verify_decl is defined.
+ (verify): Renamed from verify_decl. All uses changed.
+ Use an extern function decl, as it can't possibly collide with other
+ decls.
+ (verify_expr): Renamed from verify. All uses changed.
+ (verify_type__): New private macro.
+ (verify, verify_expr): Use it.
+
+2005-07-04 Jim Meyering <jim@meyering.net>
+
+ * verify.h (verify, verify_decl): New file/macros.
+ * Makefile.am (libcoreutils_a_SOURCES): Add verify.h here, temporarily.
+ Eventually, it'll be pulled in via AC_LIBSOURCES.
+
+ * argmatch.h (verify_dcl): Rename from VERIFY. Update use.
+
+2005-07-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ Remove the dependency of the strftime module on the tzset module.
+ * strftime.c (my_strftime) [! defined _LIBC && ! HAVE_RUN_TZSET_TEST]:
+ Copy the input structure, to work around some of the bug with
+ Solaris 2.5.1 and Solaris 2.6.
+
+2005-07-03 Jim Meyering <jim@meyering.net>
+
+ * 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.
+
+2005-07-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ * Makefile.am (libcoreutils_a_SOURCES): Undo previous change.
+
+ * Makefile.am (libcoreutils_a_SOURCES): Add fcntl--.h, stdio--h,
+ stdlib--.h, unistd--.h.
+ * fts.c [! _LIBC]: Include "lstat.h" rather than rolling our own.
+ * lstat.c: Sync from gnulib.
+ * lstat.h: New file, from gnulib.
+ * stat.c: Remove.
+
+2005-07-03 Jim Meyering <jim@meyering.net>
+
+ * fd-reopen.c: Include <unistd.h> for declaration of close.
+
+2005-07-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ Cleanup to isolate "safer" functions to a small part of the code.
+ * fcntl--.h, stdio--.h, stdlib--.h, unistd--.h, fcntl-safer.h:
+ * open-safer.c, stdlib-safer.h, mkstemp-safer.c, fd-reopen.h:
+ * fd-reopen.c: New files.
+ * fopen-safer.c: Include stdio-safer.h first, to check interface.
+ Don't bother including stdio.h, since stdio-safer.h does.
+ * fts.c (fd_safer): Remove decl.
+ Include fcntl--.h rather than unistd-safer.h
+ (fts_safe_changedir): Don't call fd_safer; no longer needed
+ now that we include fcntl--.h.
+ * 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.
+ * 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.
+
+2005-07-02 Jim Meyering <jim@meyering.net>
+
+ * getopt_.h: Assume HAVE_UNISTD_H, i.e., include <unistd.h>
+ unconditionally.
+
+ * fnmatch.c: Update from gnulib.
+
+ * 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.
+
+2005-07-01 Jim Meyering <jim@meyering.net>
+
+ * 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-07-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ * xnanosleep.c: Include timespec.h, since OpenBSD 3.4 <time.h>
+ declares only 'struct timespec;' (!).
+
+2005-06-30 Jim Meyering <jim@meyering.net>
+
+ * stdopen.c: Add copyright.
+ Include <fcntl.h> and <unistd.h> unconditionally --
+ it seems to be ok to do this, these days.
+
+ * stdopen.c: Rewritten by Paul Eggert.
+ Now, the minimum overhead is just two system calls: dup and close.
+
+ * stdopen.c: New file. As yet unused.
+ The minimum overhead is three fstat calls.
+ * stdopen.h: New file.
+
+ * argmatch.h [!VERIFY] (VERIFY): Define.
+ (ARGMATCH_VERIFY): Use it, so this macro may be used more than
+ once in any given scope.
+
+ * xalloc.h (VERIFY_EXPR): Undef before defining, and add a comment.
+
+2005-06-29 Jim Meyering <jim@meyering.net>
+
+ * mkdir-p.c (make_dir_parents): Don't apply sizeof to a hard-coded
+ type name. Use the variable name instead.
+ * idcache.c (getuser, getuidbyname, getgroup, getgidbyname): Likewise.
+
+ * xalloc.h (VERIFY_EXPR): Define.
+ (X2REALLOC): New macro, to make using x2realloc a little safer.
+
+2005-06-26 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (libcoreutils_a_SOURCES): Remove diacrit.c and diacrit.h.
+
+2005-06-25 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (libcoreutils_a_SOURCES): Remove
+ root-dev-ino.c and root-dev-ino.h.
+ (libcoreutils_a_SOURCES): Remove dev-ino.h too, now that we
+ get it via root-dev-ino.m4
+ (libcoreutils_a_SOURCES): Remove version-etc.c version-etc.h
+ and version-etc-fsf.c.
+
+2005-06-24 Paul Eggert <eggert@cs.ucla.edu>
+
+ * canon-host.c (canon_host) [HAVE_GETADDRINFO]: Use `= { 0, };' to
+ initialize local `hint'. This undoes the previous change, and
+ syncs with gnulib.
+
+2005-06-23 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (libcoreutils_a_SOURCES): Remove xreadlink.c
+ and xreadlink.h.
+ (libcoreutils_a_SOURCES): Remove xstrtod.c and xstrtod.h.
+
+ * backupfile.c (backup_args): Change a `0' to NULL.
+
+2005-06-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ * mktime.c: Include <string.h> even if !DEBUG. (From glibc.)
+ (ranged_convert): Don't save conversion in a temporary struct.
+ This causes a warning with GCC 4.0.0, and anyway in the typical
+ case it's not worth the extra 100 bytes or so of code.
+ (ranged_convert, __mktime_internal): When calling a function via a
+ pointer P, use P () rather than (*P) (), as we now assume C89 or better.
+
+ * readutmp.c (desirable_utmp_entry): Fix bug where "who -b" and
+ "who -r" failed to give output. Problem reported by Tim Waugh.
+
+2005-06-22 Jim Meyering <jim@meyering.net>
+
+ * xmalloc.c: Update from gnulib.
+
+2005-06-19 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (libcoreutils_a_SOURCES): Remove xgetcwd.c, xgetcwd.h,
+ xfts.c and xfts.h.
+
+2005-06-16 Jim Meyering <jim@meyering.net>
+
+ * calloc.c (rpl_calloc): Allocate a 1-byte buffer (not 1xS or Nx1)
+ when either N or S is zero.
+
+2005-06-15 Jim Meyering <jim@meyering.net>
+
+ * mkdir-p.c (make_dir_parents): Don't let a failed chdir($PWD)
+ stop us from restricting permissions of just-created absolute-named
+ directories.
+
+2005-06-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ 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.
+
+2005-06-14 Jim Meyering <jim@meyering.net>
+
+ * 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.
+
+ * mkdir-p.c (CLEANUP_CWD): Return *true*, not false when failing
+ to restore initial working directory.
+
+ 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.
+
+2005-06-13 Jim Meyering <jim@meyering.net>
+
+ * 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.
+
+2005-06-12 Jim Meyering <jim@meyering.net>
+
+ * mkdir-p.c (CLEANUP_CWD): Change one more `return 1' to
+ `return false'. This fixes a bug introduced on 2004-07-30.
+
+2005-06-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ Use "file name" when talking about file names, instead of "filename"
+ or "path", as per the GNU coding standards.
+ * mkdir-p.c: Renamed from makepath.c.
+ (make_dir_parents): Renamed from make_path. All callers changed.
+ * mkdir-p.h: Likewise. All includers changed.
+ * filenamecat.c: Renamed from path-concat.c.
+ (file_name_concat): Renamed from path_concat. All callers changed.
+ [TEST_FILE_NAME_CONCAT]: Renamed from TEST_PATH_CONCAT.
+ * filenamecat.h: Likewise. All includers changed.
+ * acl.c: Don't use "path" or "filename" to mean "file name"
+ in comments or local variable names.
+ * basename.c: Likewise.
+ * canonicalize.c, canonicalize.h: Likewise.
+ * dirname.c, dirname.h: Likewise.
+ * euidaccess.c: Likewise.
+ * exclude.c: Likewise
+ * fnmatch_.h, fnmatch_loop.c: Likewise.
+ * fsusage.c, fsuage.h: Likewise.
+ * fts.c, fts_.h: Likewise.
+ * getcwd.c: Likewise.
+ * getloadavg.c: Likewise.
+ * mkstemp.c: Likewise.
+ * mountlist.c, mountlist.h: Likewise.
+ * openat.c, openat.h: Likewise.
+ * readlink-stub.c: Likewise.
+ * readutmp.c, readutmp.h: Likewise.
+ * rename.c: Likewise.
+ * rmdir.c: Likewise.
+ * same.c: Likewise.
+ * savedir.c: Likewise.
+ * stripslash.c: Likewise.
+ * tempname.c: Likewise.
+ * xreadlink.c: Likewise.
+ * exclude.c (excluded_file_name): Renamed from excluded_filename.
+ All uses changed.
+ * exclude.h: Likewise.
+
+2005-05-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ * euidaccess.c (getuid, getgid, getuid, getegid)
+ [!defined _POSIX_VERSION]: Remove decls; not needed these days.
+ * idcache.c (getpwuid, getpwnam, getgrgid, getgrnam)
+ [!defined _POSIX_VERSION]: Remove decls; not needed these days.
+ * pathmax.h: Include <limits.h> unconditionally, since other
+ files have been getting away with it for years (MORE/BSD 4.3
+ is extinct now).
+ * userspec.c (getpwnam, getgrnam, getgrgid)
+ [!defined _POSIX_VERSION]: Remove decls; not needed these days.
+
+2005-05-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ * pathmax.h (_POSIX_PATH_MAX) [!defined _POSIX_PATH_MAX]:
+ Define to 256, not 255, as per modern POSIX.
+
+2005-05-27 Paul Eggert <eggert@cs.ucla.edu>
+
+ * fts.c: Don't worry about debugging on pre-C99-comopatible hosts;
+ the configuration hassle isn't worth it.
+ Include inttypes.h and stdint.h unconditionally if FTS_DEBUG.
+ (LONGEST_MODIFIER, PRIuMAX): Remove.
+
+ * strnumcmp.c, strnumcmp.h, strnumcmp-in.h, strintcmp.c:
+ New files.
+
+2005-05-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ * fts.c (fd_safer) [_LGPL_PACKAGE]: New static function,
+ so that unistd-safer.h (GPL'ed code) need not be included.
+
+2005-05-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ Split the fts code into GPL'ed and LGPL'ed parts, and fix some
+ minor memory-allocation bugs.
+
+ * fts.c: Don't include "cycle-check.h" or "hash.h".
+ (setup_dir, free_dir): New functions.
+ (enter_dir, leave_dir): Define trivial
+ alternatives of _LGPL_PACKAGE. Move to fts-cycle.c if !_LGPL_PACKAGE.
+ (HT_INITIAL_SIZE, ENTER_DIR): Remove. All uses removed.
+ (LEAVE_DIR): Fix typo: pass Fts and Ent to leave_dir.
+ (struct Active_dir, AD_compare, AD_hash, enter_dir, leave_dir):
+ Move to fts-cycle.c.
+ (fts_open): Use setup_dir.
+ (fts_close): Use free_dir.
+ (fts_read): Have just one copy of the ENTER_DIR code rather than three.
+ This adds a label and some gotos, but the alternatives were messier.
+ Check for memory allocation failure when entering a dir.
+ (fts_stat) [_LGPL_PACKAGE]: Bring back glibc cycle detection code.
+ * fts_.h (_LGPL_PACKAGE) [defined _LIBC]: New macro.
+ (FTS): New member fts_cycle, that is a union that contains the
+ old active_dir_ht and cycle_state. All uses changed to mention
+ fts_cycle.ht and fts_cycle.state.
+ * fts-cycle.c: New file, containing GPL'ed code migrated out of
+ fts.c, with the following changes:
+ (setup_dir, free_dir): New functions.
+ (enter_dir): Now returns bool. Return true if successful, false
+ if memory exhausted. All callers changed.
+ Do not bother partly cleaning up on
+ memory allocation failure; that is free_dir's job.
+ However, free ad if hash_insert fails, to avoid memory leak.
+ (enter_dir, leave_dir): Accommodate change to FTS by inspecting
+ fts->fts_options to see which union member to use.
+
+2005-05-20 Eric Blake <ebb9@byu.net> (tiny change)
+
+ * chown.c (rpl_chown): Return -1 on failure.
+
+2005-05-20 Jim Meyering <jim@meyering.net>
+
+ * fts.c (fts_open): Remove useless but otherwise harmless malloc call.
+ Spotted by Paul Eggert.
+
+2005-05-19 Jim Meyering <jim@meyering.net>
+
+ * unlinkdir.h (cannot_unlink_dir) [UNLINK_CANNOT_UNLINK_DIR]:
+ Use #define rather than a static function, to avoid a warning
+ when the function was not used.
+
+2005-05-18 Paul Eggert <eggert@cs.ucla.edu>
+
+ * canonicalize.c: Include canonicalize.h first, to test interface.
+ Include <stddef.h> unconditionally, since we assume C89 now.
+ All uses of PTR_INT_TYPE replaced by ptrdiff_t.
+ * fts.c: Include fts_.h first, to check interface.
+ Do not include intprops.h; no longer needed.
+ Include cycle-check.h and hash.h, since fts_.h no longer does.
+ Remove unnecessary casts of closedir to void.
+ (fts_build): Use a simpler method (not involving TYPE_SIGNED) to
+ decide whether to decrement nlinks.
+ * fts_.h: Do not include hash.h or cycle-check.h; no longer needed.
+ (FTS): Use struct hash_table * instead of Hash_table, so that
+ we no longer need to include hash.h here.
+
+2005-05-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ * unlinkdir.c, unlinkdir.h: New files.
+
+2005-05-14 Jim Meyering <jim@meyering.net>
+
+ * unlocked-io.h, gethrxtime.c, gethrxtime.h, mountlist.h,
+ * xtime.h, path-concat.c: Correct cpp indentation.
+
+2005-05-14 Jim Meyering <jim@meyering.net>
+
+ Update FSF postal mail address everywhere.
+
+2005-05-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * fts_.h (FTS): Use correct type for fts_compar member.
+ (FTSENT): New member fts_fts. Remove members fts_ino, fts_dev,
+ fts_nlink; no longer needed now that fts_statp is always there.
+ All uses changed to use fts_statp instead.
+ * fts.c (__P): Remove. All uses rewritten to assume C89 or better.
+ (fts_open): Don't cast a function value in a possibly-unsafe way.
+ (fts_compar): New function.
+ (fts_sort): Use it. But optimize the common case where all
+ pointers smell the same.
+
+2005-05-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ * yesno.c: Include getline.h, not ctype.h.
+ (yesno): Don't remove leading white space; POSIX doesn't allow it.
+ Use getline to remove arbitrary restriction on response length.
+
+2005-05-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ * makepath.c (make_path): chdir to "//", not "/", if the file name
+ starts with exactly two slashes. This doesn't solve the problem
+ in general but it's better than nothing. Problem reported by
+ Pierre A. Humblet via Eric Blake.
+
+2005-05-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ * 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.
+
+ * mbswidth.c, regex.c, strtol.c: Sync from gnulib.
+
+2005-04-28 Paul Eggert <eggert@cs.ucla.edu>
+
+ * tempname.c (S_ISDIR, S_IRUSR, S_IRUSR, S_IWUSR, S_IXUSR): Remove.
+ [!_LIBC] Include "stat-macros.h" instead.
+
+ * file-type.c: Include file-type.h first.
+ * filetype.h: Don't assume <sys/stat.h> was included first.
+
+ * 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.
+
+2005-04-18 Paul Eggert <eggert@cs.ucla.edu>
+
+ * Makefile.am (noinst_LIBRARIES): fetish -> coreutils.
+ (libcoreutils_a_SOURCES): Renamed from libfetish_a_SOURCES.
+ All uses changed.
+ (libcoreutils_a_LIBADD): Renamed from libfetish_a_LIBADD.
+ All uses changed.
+ (libcoreutils_a_DEPENDENCIES): Renamed from libfetish_a_DEPENDENCIES.
+ All uses changed.
+ * chdir-long.c: fetish->coreutils in comment.
+ * t-chdir-long: fetish->coreutils in compilation command.
+
+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-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ Add bulletproofing for cases where stdin, stdout, or stderr are closed.
+ * fcntl-safer.h, open-safer.c: Remove.
+ * fd-safer.c: New file.
+ * dup-safer.c: Include unistd-safer.h first, to test interface.
+ (dup_safer) [!deefined F_DUPD]: Use new fd_safer function instead of
+ rolling our own code.
+ * fts.c: Include unistd-safer.h.
+ (fts_safe_changedir): Use fd_safer.
+ * getloadavg.c: Include unistd-safer.h.
+ (getloadavg): Use fd_safer.
+ * getusershell.c: Include stdio-safer.h.
+ (getusershell): Use fopen_safer.
+ * save-cwd.c: Include unistd-safer.h.
+ (save_cwd): Use fd_safer.
+ * unistd-safer.h (fd_safer): New decl.
+ * Makefile.am (libfetish_a_SOURCES): Remove dup-safer.c,
+ fcntl-safer.h, fopen-safer.c, open-safer.c, stdio-safer.h,
+ unistd-safer.h.
+
+2005-04-09 Jim Meyering <jim@meyering.net>
+
+ * fts.c (__attribute__, ATTRIBUTE_UNUSED): Define.
+ Mark parameter `sp' with ATTRIBUTE_UNUSED.
+
+ Avoid warnings from gcc-4.
+ * canon-host.c (canon_host) [HAVE_GETADDRINFO]: Use memset
+ rather than `= { 0 };' to initialize local `hint'.
+ * unicodeio.c (__attribute__, ATTRIBUTE_UNUSED): Define.
+ (exit_failure_callback, fallback_failure_callback): Mark unused
+ parameters with ATTRIBUTE_UNUSED.
+
+ * posixtm.c (posixtime) [lint]: Avoid spurious warning from gcc-4's
+ -Wuninitialized: initialize tm0.tm_year.
+
+ * human.c (humblock): Set *options even when returning due to
+ xstrtoumax conversion failure. Thanks to a used-uninitialized
+ warning from gcc-4.
+
+2005-04-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ * 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.
+
+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-03-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ * 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.
+
+2005-03-29 Jim Meyering <jim@meyering.net>
+
+ * long-options.c (long_options): Use NULL, not `0'.
+
+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 Paul Eggert <eggert@cs.ucla.edu>
+
+ * Makefile.am (libfetish_a_SOURCES): Remove stat-macros.h, xstrtoul.c,
+ as they are now done by Autoconf macros.
+
+2005-03-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ * gettext.h, regex.c, setenv.c, vasprintf.c: Sync from gnulib.
+ * vasnprintf.c (EOVERFLOW): Define if not already defined.
+ This merges a change from gnulib.
+
+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-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-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 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-11 Jim Meyering <jim@meyering.net>
+
+ * getdate.c: Regenerate using bison-2.0.
+
+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.
+
+ * Makefile.am (libfetish_a_SOURCES): Remove xstrtol.c and xstrtol.h.
+
+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.
+ * fts.c: Include intprops.h.
+ (TYPE_SIGNED): Remove.
+
+2005-03-09 Jim Meyering <jim@meyering.net>
+
+ More migration to AC_LIBSOURCES/AC_LIBOBJ.
+ * Makefile.am (libfetish_a_SOURCES): Remove two more pairs of files:
+ cycle-check.c, cycle-check.h and argmatch.c, argmatch.h.
+
+ * cycle-check.c: Don't include "xalloc.h". It's not used.
+
+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-27 Jim Meyering <jim@meyering.net>
+
+ * xnanosleep.c (xnanosleep): Work around bug in Linux-2.6.8.1's
+ nanosleep whereby it fails without setting errno upon being resumed
+ after being suspended.
+
+2005-02-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * vasnprintf.c (VASNPRINTF) [!USE_SNPRINTF]: Correct the test for
+ integer overflow again. Actually, neither this nor the 2005-01-23
+ change fixes any bug on any plausible platform; it's more of a
+ code-clarity thing.
+
+ * config.charset, gettext.h, localcharset.c: Sync from gnulib.
+
+2005-02-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ * 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-02-21 Paul Eggert <eggert@cs.ucla.edu>
+
+ * Makefile.am (libfetish_a_SOURCES): Remove xnanosleep.c,
+ xnanosleep.h; now done by ../m4/xnanosleep.m4 automatically.
+
+2005-02-20 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-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-20 Jim Meyering <jim@meyering.net>
+
+ More of the same.
+ * Makefile.am (libfetish_a_SOURCES): Remove
+ linebuffer.[ch] and stripslash.c.
+
+2005-02-11 Jim Meyering <jim@meyering.net>
+
+ Remove names of files that are now mentioned in AC_LIBSOURCES
+ and AC_LIBOBJ uses in inttostr.m4.
+ * Makefile.am (libfetish_a_SOURCES): Remove imaxtostr.c,
+ offtostr.c, and umaxtostr.c.
+ (EXTRA_DIST): Remove inttostr.c and inttostr.h.
+
+2005-02-08 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (libfetish_a_SOURCES): Remove memcasecmp.c
+ and memcasecmp.h.
+
+2005-02-07 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (libfetish_a_SOURCES): Remove fts.c, fts_.h, and
+ getcwd.h now that they're mentioned in AC_LIBSOURCES and AC_LIBOBJ
+ uses in the corresponding ../m4/*.m4.
+
+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-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 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (libfetish_a_SOURCES): Remove many files from this
+ list, now that automake determines their names automatically,
+ thanks to the new AC_LIBSOURCES and AC_LIBOBJ uses in the
+ corresponding ../m4/*.m4 files.
+ (EXTRA_DIST): Add getdate.c here, so that we continue to distribute it.
+
+2005-01-25 Jim Meyering <jim@meyering.net>
+
+ * 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-01-23 Jim Meyering <jim@meyering.net>
+
+ * vasnprintf.c (VASNPRINTF) [!USE_SNPRINTF]: Correct the test for
+ integer overflow.
+
+2005-01-21 Paul Eggert <eggert@cs.ucla.edu>
+
+ Sync from gnulib.
+ * error.c [!_LIBC && !ENABLE_NLS]: Do not include "gettext.h";
+ not needed. This removes a dependency on the gettext module.
+ [defined _LIBC]: Do not include <libintl.h>; not needed.
+
+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.
+
+ * Makefile.am (libfetish_a_SOURCES): Add version-etc-fsf.c.
+
+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.
+
+2005-01-19 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.
+ * t-chdir-long: A test harness to exercize chdir-long.c's
+ sample main program.
+
+ * 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-04 Paul Eggert <eggert@cs.ucla.edu>
+
+ * human.c (SIZE_MAX, UINTMAX_MAX): Move these conditional
+ definitions to be after all include files, to avoid collisions.
+ Problem reported by Bob Proulx.
+
+2005-01-04 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-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ * utimens.c (futimens): Robustify the previous patch, by checking
+ for known valid error numbers rather than observed invalid ones.
+
+2005-01-03 Jim Meyering <jim@meyering.net>
+
+ * utimens.c (futimens): Account for the fact that futimes
+ can also fail with errno == ENOSYS in that case.
+ Patch from Dmitry V. Levin.
+
+2005-01-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ * utimens.c (futimens) [HAVE_FUTIMES]: Fall back on utimes if
+ futimes fails with errno == ENOENT. Problem reported by
+ Dmitry V. Levin.
+
+2005-01-02 Jim Meyering <jim@meyering.net>
+
+ * version-etc.c (version_etc_copyright): Update copyright date.
+
+2004-12-31 Jim Meyering <jim@meyering.net>
+
+ * openat.c (rpl_openat): Correct comment.
+ Call free_cwd, to avoid leaking a file descriptor.
+
+2004-12-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ * getdate.y (YYSTACK_USE_ALLOCA): Define to 0, since there's no
+ need to extend the stack.
+ (YYINITDEPTH): New macro, so that the initial stack isn't overly
+ large.
+
+2004-12-19 Paul Eggert <eggert@cs.ucla.edu>
+
+ * c-strtod.c (STRTOD): Depend on HAVE_C99_STRTOLD, not
+ HAVE_DECL_STRTOLD.
+
+ * alloca_.h: Conditionalize on _GNULIB_ALLOCA_H, not _ALLOCA_H.
+ Remove now-obsolete comment about AIX.
+ * getdate.y: Include <alloca.h> only if HAVE_ALLOCA.
+ (YYSTACK_USE_ALLOCA): Define to 0 if !HAVE_ALLOCA.
+ (YYMAXDEPTH): New macro.
+
+2004-12-11 Jim Meyering <jim@meyering.net>
+
+ * chdir-long.c: Fail via #error if PATH_MAX is not defined, since
+ this file is now compiled only on systems that define PATH_MAX.
+
+2004-12-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ * getdate.y (textint): New member "negative".
+ (time_zone_hhmm): New function.
+ Expect 14 shift-reduce conflicts, not 13.
+ (o_colon_minutes): New rule.
+ (time, zone): Use it to add support for +HH:MM, UTC+HH:MM.
+ (yylex): Set the "negative" member of signed numbers.
+
+2004-12-06 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (libfetish_a_SOURCES): Begin removing .c and .h file
+ names, as they are added to AC_LIBSOURCES directives in the
+ corresponding m4/*.m4 files.
+
+2004-12-05 Jim Meyering <jim@meyering.net>
+
+ Currently, fpending.m4 punts (by defining PENDING_OUTPUT_N_BYTES
+ to 1) if it doesn't find a valid expression for the replacement
+ function. Before this change, that might have gone undetected
+ for some time. Now, we'll catch it close to the source.
+
+ * t-fpending.c: New file. Test the __fpending function.
+ This ensures that if there is an error in the definition of the
+ PENDING_OUTPUT_N_BYTES expression, we'll find about it right away;
+ that value is used only in the rare event that close_stdout's
+ fclose fails with EBADF.
+ * Makefile.am (unit-test): New target.
+ (check): Depend on it.
+ (noinst_PROGRAMS): Define.
+ (LDADD): Define.
+ * Makefile.am (unit-test): Depend on t-fpending.
+ Make the target .PHONY.
+
+2004-12-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ * openat.c: Include "openat.h" before other include files.
+ Include "exitfail.h".
+ (openat): Remove #undef; no longer needed now that we include openat.h
+ first.
+ (rpl_openat): Add comment about mode_t promotion. Simplify
+ code a bit by moving initializations around. Use exit_failure
+ rather than EXIT_FAILURE.
+ * openat.h: Add copyright and authorship notice.
+ (AT_FDCWD): Use the same value Solaris 9 uses, except of type
+ 'int' not 'unsigned int'.
+
+ * 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.
+
+2004-12-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ * hard-locale.c: Assume <locale.h> exists.
+ Include "strdup.h".
+ (GLIBC_VERSION): New macro.
+ (hard_locale): Assume setlocale exists.
+ Rewrite to avoid #ifdef.
+ Use strdup rather than malloc + strcpy.
+ * human.c: Assume <locale.h> exists.
+ (human_readable): Assume localeconv exists.
+
+2004-11-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ * getcwd.c (is_ENAMETOOLONG): New macro.
+ (__getcwd.c): Don't restore errno; glibc doesn't.
+ [HAVE_PARTLY_WORKING_GETCWD && !defined AT_FDCWD]: Try system getcwd
+ first, falling back to our code only if its results look suspicious.
+ Ensure that the resulting buffer is only as large as necessary.
+
+ * readutmp.c: Include readutmp.h first.
+ Include <errno.h>, since readutmp.h no longer does that.
+ * readutmp.h: Don't include <errno.h>,
+ <sys/param.h>, <time.h>; not needed to establish interface.
+ (errno): Remove decl.
+ (HAVE_STRUCT_XTMP_UT_TYPE): Remove; no longer needed.
+ (UT_TYPE_EQ, UT_TYPE_NOT_DEFINED, UT_TYPE_BOOT_TIME,
+ UT_TYPE_USER_PROCESS, IS_USER_PROCESS): New macros.
+
+2004-11-30 Jim Meyering <jim@meyering.net>
+
+ 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.
+ * Makefile.am (libfetish_a_SOURCES): Reflect name changes.
+
+ * chdir.c (O_DIRECTORY): Define, if necessary.
+ (memchrcspn): Tiny wrapper around memchr.
+ (rpl_chdir): Use memchrcspn rather than strcspn.
+
+2004-11-28 Jim Meyering <jim@meyering.net>
+
+ * openat.c (rpl_openat): Also accept optional mode parameter.
+ * openat.h (rpl_openat): Adjust prototype.
+
+ * save-cwd.c: Include "chdir.h", so that if save_cwd/getcwd
+ saves a name longer than PATH_MAX, restore_cwd's chdir can use it.
+
+ * Makefile.am (libfetish_a_SOURCES): Add chdir.h and openat.h.
+
+ This is a robust version of chdir, in that it can handle directory
+ names longer than PATH_MAX.
+ * chdir.c, chdir.h: New file.
+ * openat.c, openat.h: New files.
+
+2004-11-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix problems reported by Scott S. Tinsley for HP-UX 11.11 using
+ HP's ANSI C compiler.
+ * fsusage.c (statvfs) [HAVE_SYS_STATVFS_H]: Remove decl.
+ Declaring int functions causes warnings on some modern systems and
+ shouldn't be needed to compile on ancient ones.
+ * same.c (MIN) [defined MIN]: Don't define, since it's already
+ defined.
+
+ * mempcpy.c, mempcpy.h: New files, taken from gnulib.
+ * Makefile.am: (libfetish_a_SOURCES): Add getcwd.h, mempcpy.h.
+ * getcwd.c: Replace by a copy of glibc/sysdeps/posix/getcwd.c, but
+ with the following changes.
+ (__set_errno): Parenthesize properly.
+ Include <stdbool.h>.
+ (MIN, MAX, MATCHING_INO): New macros.
+ (__getcwd): Define with prototype, not K&R form.
+ Use heuristics to allocate default buffer on stack if possible.
+ If AT_FDCWD is defined, use openat and fstatat to avoid O(N**2)
+ behavior, and to avoid the PATH_MAX limit when computing
+ ../../../../...
+ Use MATCHING_INO to compare inode number to file.
+ Check for arithmetic overflow in size calculations.
+ Fix bug in reallocation of dot array that caused getcwd to fail
+ on directories nested deeper than 75.
+ Be more careful about saving errno on error.
+ Do not use realloc; use only free+malloc, as this is a bit
+ more flexible and avoids a needless copy operation.
+ Do not inspect st_dev and st_ino for symbolic links; POSIX
+ doesn't specify the latter.
+ Check for closedir errors.
+ Avoid needless casts.
+ Use "#ifdef weak_alias" around weak_alias, to be like other
+ glibc code.
+ The following changes to getcwd.c have effect only when used in
+ gnulib; they have no effect inside glibc proper.
+ (#pragma alloca) [defined _AIX && !defined __GNUC__]: Remove,
+ as alloca isn't used.
+ (alloca, __alloca): Likewise.
+ [!_LIBC]: Include "getcwd.h", "mempcpy.h".
+ Include <stddef.h>, <stdlib.h>, <string.h>, <limits.h>
+ unconditionally, as gnulib assumes C89 or better.
+ Do not include <sys/param.h>.
+ (errno) [!defined __GNU_LIBRARY__ && !defined STDC_HEADERS]: Remove
+ no-longer-necessary 'extern int errno' decl; gnulib assumes C89 or
+ better.
+ (NULL) [!defined NULL]: Remove; we assume C89 or better.
+ Include <dirent.h> in a way that is compatible with modern Autoconf.
+ (_D_ALLOC_NAMELEN, _D_EXACT_NAMLEN):
+ New macros, if not already defined.
+ Include <unistd.h> if _LIBC, not if __GNU_LIBRARY__.
+ Use "_LIBC", not "defined _LIBC", for consistency.
+ (HAVE_MEMPCPY): Remove; no longer needed now that gnulib has
+ a mempcpy module.
+ (__lstat, __closedir, __opendir, __readdir) [!_LIBC]: New macros.
+ (GETCWD_RETURN_TYPE): Remove. All uses replaced by char *.
+ * xgetcwd.c: David MacKenzie's old code was removed, so give
+ credit only to Jim Meyering and adjust the copyright dates.
+ Do not include <limits.h>, <stdio.h>, <sys/types.h>,
+ <stdlib.h>, <unistd.h>, "pathmax.h".
+ Instead, include "xgetcwd.h" (first) and "getcwd.h".
+ (INITIAL_BUFFER_SIZE): Remove.
+ (xgetcwd): Rely on getcwd, since we now depend on a reliable one.
+
+2004-11-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ * utimens.c (__attribute__, ATTRIBUTE_UNUSED): New macros.
+ (futimens): New function, which uses futimes if available.
+ (futimens, utimens): Support timespec==NULL, with same semantics
+ as utime and utimens.
+ * utimens.h (futimens): New decl.
+
+2004-11-23 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * getopt_.h: Re-addition of __getopt_argv_const caused
+ redefinition warnings. To avoid them, include the defines
+ in `#if !defined __need_getopt ... #endif'. The only place
+ where __getopt_argv_const is used is in definitions
+ of getopt_long and getopt_long_only below, which are as well
+ protected by `#ifndef __need_getopt'.
+ [defined __GETOPT_PREFIX && !defined __need_getopt]: Undef
+ __need_getopt after including <stdio.h> and <unistd.h> These
+ headers might have defined it.
+
+2004-11-23 Jim Meyering <jim@meyering.net>
+
+ * closeout.c: Revert last change, since it seems EBADF is always
+ defined.
+
+2004-11-22 Jim Meyering <jim@meyering.net>
+
+ * closeout.c (EBADF): Fail with `#error ...' if it's not defined,
+ asking the user to report the problem.
+
+2004-11-17 Paul Eggert <eggert@cs.ucla.edu>
+
+ * realloc.c (rpl_realloc): Call 'free' if n==0, since realloc
+ might fail. Problem reported by Yoann Vandoorselaere.
+ * calloc.c (rpl_calloc): Defend against buggy calloc implementations
+ that mishandle size_t overflow.
+
+2004-11-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ * xgetcwd.c: Include <limits.h>, for PATH_MAX.
+ (xgetcwd): Set errno correctly when failing.
+ Work around Solaris 9 bug: getcwd sets errno==ERANGE even though
+ the failure is actually due to a PATH_MAX problem.
+
+ Further getopt changes to make it more likely that glibc will
+ buy the changes back.
+ * getopt.c (POSIXLY_CORRECT): New constant.
+ (getopt): Use it, so to preserve glibc semantic
+ * getopt1.c (getopt_long, getopt_long_only): Arg is char * const *
+ when compiling for libc.
+ * getopt_.h (__getopt_argv_const): Bring it back.
+ (getopt_long, getopt_long_only): Use it.
+
+ * getopt.c (_getopt_initialize, _getopt_internal_r, _getopt_internal):
+ New arg POSIXLY_CORRECT. All callers changed.
+ (getopt): Argv is now char * const *, as per standard.
+ (_getopt_internal_r, _getopt_internal): Argv is now char **,
+ not char *__getopt_argv_const *.
+ * getopt1.c (getopt_long, _getopt_long_r, getopt_long_only,
+ _getopt_long_only_r): Likewise.
+ * getopt_.h (getopt, getopt_long, geopt_long_only): Likewise.
+ * getopt_int.h (_getopt_internal, _getopt_internal_r,
+ _getopt_long_r, _getopt_long_only_r): Likewise.
+ * getopt_.h (__getopt_argv_const): Remove.
+ (getopt): Argv is now char * const *, as per standard.
+
+ * canon-host.c: Include "strdup.h".
+ (canon_host): Use getaddrinfo if available, so that IPv6 works.
+ Use strdup instead of malloc/strcpy to duplicate strings.
+
+ * getdate.y (tORDINAL): New token.
+ (day, relunit): Allow it for relative times.
+ (relative_time_table): Use tORDINAL for ordinals.
+
+2004-11-15 Paul Eggert <eggert@cs.ucla.edu>
+
+ * human.h (LONGEST_HUMAN_READABLE): Add 1 for space before unit.
+ (human_space_before_unit): New constant.
+ * human.c (human_readable): Support it.
+
+2004-11-14 Jim Meyering <jim@meyering.net>
+
+ * closeout.c (close_stdout): Don't fail just because stdout was
+ closed initially, since some programs don't write to stdout in the
+ normal course of operation (other than --version and --help), and
+ we don't want this function to make e.g. `cp 1 2 >&-' fail.
+ But do fail if it was closed and someone has tried to write to it.
+ E.g., printf foo >&-
+
+ * __fpending.c, __fpending.h: Restore these files.
+ They're useful after all.
+ * Makefile.am (libfetish_a_SOURCES): Add __fpending.h.
+
+2004-11-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ * getopt.c, getopt1.c, getopt_.h, getopt_int.h:
+ Sync from gnulib.
+
+2004-11-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ * allocsa.h, mbswidth.c, mktime.c, readlink.c, getdate.y,
+ quotearg.c, strftime.c: Sync from gnulib.
+
+2004-11-06 Jim Meyering <jim@meyering.net>
+
+ * __fpending.c, __fpending.h: Remove files.
+
+ * Makefile.am (libfetish_a_SOURCES): Remove __fpending.h, now
+ that it's no longer used.
+
+ Ensure that no close failure goes unreported.
+ * closeout.c (close_stdout): Always close stdout. I.e., don't
+ return early when it seems there's nothing to flush.
+ Don't include __fpending.h.
+
+2004-11-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ * unsetenv.c: New file, from gnulib. Needed for new getdate.y.
+ * Makefile.am (libfetish_a_SOURCES): Remove setenv.c.
+ * xreadlink.c: Sync from gnulib.
+
+2004-11-03 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (libfetish_a_SOURCES): Add setenv.c and setenv.h.
+
+2004-11-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ * getdate.y, getpass.c, setenv.h: Sync from gnulib.
+
+2004-10-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ * getdate.y, getpagesize.h, mktime.c: Sync from gnulib.
+
+2004-10-24 Paul Eggert <eggert@cs.ucla.edu>
+
+ * mktime.c (leapyear): Arg is long int, not int.
+ Change imported from gnulib.
+
+2004-10-17 Paul Eggert <eggert@cs.ucla.edu>
+
+ Sync from gnulib.
+ * diacrit.c, diacrit.h: Add copyright notice.
+ * getpass.c (fflush_unlocked, flockfile, funlockfile)
+ (fputs_unlocked, putc_unlocked) [!_LIBCS && !USE_UNLOCKED_IO]: Map
+ to real functions.
+
+2004-10-13 Jim Meyering <jim@meyering.net>
+
+ * fts.c (fts_read): When about to fail (by returning NULL) due
+ to a failed fchdir or failed fts_safe_changedir call, set
+ `sp->fts_cur = p'. Do this by removing the explicit `return NULL;'
+ statements and setting p->fts_errno so execution falls through
+ to the common-case code below. Otherwise, after such a failure,
+ calling fts_close would attempt to free an already-freed buffer.
+ Reported by Luis Lopez Lopez in http://bugs.debian.org/276352.
+
+2004-10-04 Paul Eggert <eggert@cs.ucla.edu>
+
+ Sync from gnulib.
+
+ * xalloc.h (xmemdup): Renamed from xclone.
+ * xmalloc.c (xmemdup): Likewise.
+ * xalloc.h (CCLONE, CLONE, NEW, XCALLOC, XMALLOC, XREALLOC,
+ XFREE): Remove these long-obsolescent macros.
+ * xmalloc.c (xstrdup): Implementation moved here from xstrdup.c
+ * xstrdup.c: Remove.
+
+ * argmatch.c, closeout.c, error.c, exclude.c, getdate.y,
+ getndelim2.c, getpass.c, getusershell.c, linebuffer.c,
+ md5.c, mountlist.c, posixtm.c, readtokens.c, readutmp.c,
+ regex.c, sha1.c, version-etc.c, yesno.c:
+ Include "unlocked-io.h" only if USE_UNLOCKED_IO.
+ * unlocked-io.h: Don't worry about USE_UNLOCKED_IO; that's now
+ the includer's responsibility.
+
+2004-10-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ Sync from gnulib.
+ * dirfd.h, getpagesize.h: Add copyright notice.
+ * vasnprintf.c: (VASNPRINTF): Set errno=EOVERFLOW if the output is
+ too long.
+ * vasnprintf.h: Doc fix.
+ * vasprintf.c: Don't include <limits.h>.
+ (vasprintf): Rely on vasnprintf to set errno=EOVERFLOW.
+
+2004-09-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ * modechange.c (mode_compile): Don't decrement a pointer that
+ points to the start of a string, as the C Standard says the
+ resulting behavior is undefined.
+
+2004-09-22 Jim Meyering <jim@meyering.net>
+
+ * getopt.c: Remove extraneous spaces before TAB.
+ * getopt_.h: Likewise.
+
+ * backupfile.c: Remove trailing blanks.
+ * euidaccess.c: Likewise.
+
+2004-09-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ * backupfile.h (enum backuptype): Rename none -> no_backups,
+ simple -> simple_backups, numbered_existing ->
+ numbered_existing_backups, numbered -> numbered_backups
+ to avoid shadowing problems. All uses changed.
+ * argmatch.c (enum backuptype): Likewise.
+ * backupfile.c (check_extension, numbered_backup):
+ Rename locals to avoid shadowing 'basename'.
+ * backupfile.h (VALID_BACKUP_TYPE): Don't evaluate arg more than
+ once.
+
+2004-09-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ Port to diet libc. Problem reported by Felix von Leitner in
+ <http://lists.gnu.org/archive/html/bug-coreutils/2004-08/msg00171.html>
+ * fts.c (fts_stat, fts_open, fts_read): Use "unsigned short int"
+ rather than the unportable "u_short", and similarly for u_int.
+ * fts_.h (FTSENT): Likewise.
+
+2004-08-19 Paul Eggert <eggert@cs.ucla.edu>
+
+ * getopt.c, getopt1.c: Sync from gnulib.
+ * getopt_.h: Renamed from getopt.h (this syncs from gnulib).
+ * Makefile.am (libfetish_a_SOURCES): Remove getopt.c, getopt.h,
+ getopt1.c, getopt_int.h.
+ (BUILT_SOURCES, EXTRA_DIST, all-local, $(lib_OBJECTS), getopt.h,
+ MOSTLYCLEANFILES): Add current gnulib snippet for getopt.
+ * .cppi-disable: Add getopt_.h, getopt_int.h.
+ * .cvsignore: Add getopt.h.
+
+2004-08-18 Paul Eggert <eggert@cs.ucla.edu>
+
+ * userspec.c: Don't use <alloca.h>, so that we don't use alloca on
+ strings on unbounded length. alloca's performance benefits aren't
+ that important here.
+ (V_STRDUP): Remove.
+ (parse_with_separator): New function, with most of the internals
+ of the old parse_user_spec. Allow user to omit both user and group,
+ for compatibility with FreeBSD.
+ Clone only the user name, not the entire spec.
+ Do not set *uid, *gid unless entirely successful.
+ Avoid memory leak in some failing cases.
+ Fix regression for USER.GROUP reported by Dmitry V. Levin in
+ <http://lists.gnu.org/archive/html/bug-coreutils/2004-08/msg00102.html>
+ (parse_user_spec): Rewrite to use parse_with_separator.
+
+2004-08-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ * fts.c (O_DIRECTORY): Define to 0 if the system doesn't define.
+
+ * settime.c (settime): Recode to avoid warning with Sun Forte C 6U2.
+
+ * obstack.c: Include <inttypes.h> and <stdint.h> if available.
+ (union fooround): Use uintmax_t, not long int.
+ The rest is a merge from libc:
+ [defined _LIBC]: Include <shlib-compat.h>.
+ (_obstack) [defined _LIBC]: Remove after 2.3.4.
+
+ * xgethostname.c: Do not include error.h. (merge from gnulib).
+
+ * fnmatch.c (WIDE_CHAR_SUPPORT): Don't set to 1 if missing
+ wmemchr or wmemcpy. Problem reported by Robert Dahlem
+ for Reliant Unix 5.43.
+
+2004-08-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * Makefile.am (libfetish_a_SOURCES): Add getpass.h.
+ * getpass.h: New file.
+ * .cpp-disable: Add it.
+ * getpass.c [!_LIBC]: Include it.
+
+ * obstack.h (obstack_empty_p):
+ Don't assume that chunk->contents is suitably aligned.
+ * obstack.c (_obstack_begin, _obstack_begin_1, _obstack_newchunk):
+ Likewise. Problem reported by Benno in
+ <http://sources.redhat.com/ml/libc-alpha/2004-08/msg00055.html>.
+
+ * chown.c (rpl_chown): Work even if the file is writeable but not
+ readable. This could be improved further but it'd take some work.
+ * fts.c (diropen): New function.
+ (fts_open, fts_read, fts_children, fts_safe_changedir):
+ Use it, so that the code works even if the directory
+ is writeable but not readable. We'd like it to work even if
+ the directory is merely executable, but I don't know how to do
+ that portably.
+
+ * xalloc-die.c: New file.
+ * xalloc.h (xalloc_fail_func, xalloc_msg_memory_exhausted): Remove.
+ All uses removed.
+ * xmalloc.c (xalloc_fail_func, xalloc_msg_memory_exhausted): Likewise.
+ Move inclusions of gettext.h, error.h, exitfail.h to xalloc-die.c.
+ (_, N_, xalloc_die): Move to xalloc-die.c.
+ * userspec.c (parse_user_spaec): Use xstrdup rather than strdup,
+ so that we needn't mess with xalloc_msg_memory_exhausted.
+
+ * sha1.h (sha1_ctx): Renamed from sha_ctx.
+ (sha1_init_ctx): Renamed from sha_init_ctx.
+ (sha1_process_block): Renamed from sha_process_block.
+ (sha1_process_bytes): Renamed from sha_process_bytes.
+ (sha1_finish_ctx): Renamed from sha_finish_ctx.
+ (sha1_read_ctx): Renamed from sha_read_ctx.
+ (sha1_stream): Renamed from sha_stream.
+ (sha1_buffer): Renamed from sha_buffer.
+ * sha1.c: Likewise.
+
+2004-08-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ * canonicalize.h, cycle-check.h, stat-macros.h, strdup.h,
+ strftime.h, xnanosleep.c: Merge from gnulib.
+
+2004-08-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ Merge with gnulib and deal with some minor cleanups resulting.
+
+ * .cppi-disable: Change fnmatch.h to fnmatch_.h.
+ * .cvsignore: Add fnmatch.h, poll.h, stdbool.h, sysexit.h.
+ Remove safe-lstat.c, safe-lstat.h, safe-stat.c, safe-stat.h.
+
+ * backupfile.h, closeout.h, full-write.h, mbswidth.h, xalloc.h:
+ Add extern "C" wrappers for C++.
+
+ * dirname.h (IS_ABSOLUTE_FILE_NAME): Port to DOS.
+
+ * gettime.c (gettime): Fall back on `time' if `gettimeofday'
+ doesn't work.
+ * settime.c: Include <unistd.h>, for stime (on Solaris 8, anyway).
+ (ENOSYS): Define if not defined.
+ (settime): Fall back on stime if it exists and settimeofday fails.
+ But don't bother with fallbacks if a method fails with errno == EPERM.
+
+ * obstack.h: Add white space.
+
+ * printf-parse.c, printf-parse.h, vasnprintf.c: Merge changes from
+ gnulib, but rewrite to avoid "xsize.h".
+
+2004-08-04 Paul Eggert <eggert@cs.ucla.edu>
+
+ * mountlist.c (SIZE_MAX): Define after including files, to avoid
+ a collision on OpenBSD 3.4.
+
+ * fts.c (LONGEST_MODIFIER): New macro.
+ (PRIuMAX) [!PRI_MACROS_BROKEN && !defined PRIuMAX]: New macro.
+ (find_matching_ancestor): Use it for dev_t and ino_t.
+
+ * getndelim2.c: Sync from gnulib.
+
+ * error.c: Work around bug in OpenBSD 3.4 sterror_r: it
+ sometimes returns a positive errno value even when it succeeds.
+ (print_errno_message) [!LIBC]: Fall back on strerror if
+ __strerror_r fails.
+
+2004-08-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ * canonicalize.c (errno): Remove decl; we now assume C89 or better.
+ * chown.c (errno): Likewise.
+ * closeout.c (errno): Likewise.
+ * dup-safer.c (errno): Likewise.
+ * dup2.c (errno): Likewise.
+ * exclude.c (errno): Likewise.
+ * fopen-safer.c (errno): Likewise.
+ * ftruncate.c (errno): Likewise.
+ * full-write.c (errno): Likewise.
+ * getcwd.c (errno): Likewise.
+ * lchown.c (errno): Likewise.
+ * memcoll.c (errno): Likewise.
+ * nanosleep.c (errno): Likewise.
+ * putenv.c (errno): Likewise.
+ * rmdir.c (errno): Likewise.
+ * same.c (errno): Likewise.
+ * savedir.c (errno): Likewise.
+ * setenv.c (errno): Likewise.
+ * stat.c (errno): Likewise.
+ * utime.c (errno): Likewise.
+ * xgetcwd.c (errno): Likewise.
+ * xmemcoll.c (errno): Likewise.
+ * xreadlink.c (errno): Likewise.
+ * xstrtol.c (errno): Likewise.
+ * canonicalize.h (enum canonicalize_mode_t): Reformat comments to
+ fit in 80 columns.
+ * fileblocks.c (textutils_fileblocks_unused): Make it a typedef
+ instead of an int, to save a few bytes in the object file.
+ * getdate.y (lookup_word): Rewrite to avoid cast.
+ * getloadavg.c: Include <stdbool.h>.
+ (getloadavg_initialized): Use bool for booleans.
+ * hard-locale.c (hard_locale): Return bool, not int.
+ * hard-locale.h (hard_locale): Likewise. Include <stdbool.h>.
+ * hash.c (hash_string): Rewrite to avoid cast.
+ * human.h: Use Autoconf-suggested pattern for inttypes and stdint.
+ * strtiomax.c: Likewise.
+ * xstrtol.h: Likewise.
+ * nanosleep.c: Include stdbool.h.
+ (rpl_nanosleep): Usee bool for booleans.
+ * quotearg.c: Include stdbool.h.
+ (quotearg_buffer_restyled): Use bool for booleans.
+ * readtokens.c (readtoken): Rewrite to avoid casts.
+ * same.c (same_name): Return bool, not int.
+ * same.h (same_name): Likewise. Include <stdbool.h>.
+ * version-etc.c (version_etc_va): Use size_t for sizes.
+ * xnanosleep.c: Include limits.h, stdbool.h.
+ (CHAR_BIT): Remove.
+ (timespec_subtract, xnanosleep): Use bool for booleans.
+ * xstrtoimax.c: Just include xstrtol.h rather than rolling our
+ own include pattern.
+ * xstrtoumax.c: Likewise.
+ * xstrtol.c (__xstrtol): Rewrite to avoid casts.
+ * yesno.c: Include yesno.h first.
+ (yesno): Return bool, not int.
+ * yesno.h (yesno): Likewise. Include <stdbool.h>.
+
+ * xstrtod.h (xstrtod): Return bool, not int. Invert the
+ sense of the boolean. All uses changed.
+ * xstrtod.c (xstrtod): Likewise.
+ * nanosleep.c: Include stdbool.h. Use bool for booleans.
+
+ * xgethostname.c: Don't include <sys/types.h> or "exit.h";
+ no longer needed.
+ (errno): Remove decl; we now assume C89 or better.
+ Include unistd.h if available, for gethostname.
+ (ENAMETOOLONG): Define to 0, not 9999, to avoid colliding with
+ existing errno values if any.
+ (gethostname): Remove decl, since unistd.h declares it (or doesn't,
+ in which case it's an older system and it should just work).
+ (xgethostname): Don't assume host name length is less than INT_MAX.
+ Exit if malloc fails, just as the comment says.
+
+ * save-cwd.c: Include <stdbool.h>.
+ (errno): Remove decl; we now assume C89 or better.
+ (save_cwd): Use bool for booleans.
+ (save_cwd, restore_cwd): Return -1 on failure, not 1, since we set
+ errno on failure.
+
+ * readutmp.h (UT_USER): Parenthesize properly.
+ (UT_USER_SIZE): New constant.
+ (read_utmp): Don't assume that the number of users is less than
+ INT_MAX.
+ * readutmp.c (read_utmp): Likewise.
+ Check for integer overflow in size calculations.
+ Return -1 (not 1) on failure, since we set errno in that case.
+
+ * posixtm.c (posix_time_parse): Don't assume that the length of
+ the string being parsed is <= UINT_MAX.
+
+ * mountlist.h (read_file_system_list): Accept bool flag, not int.
+ * mountlist.c (read_file_system_list): Likewise.
+ * mountlist.h: Include <stdbool.h>.
+ * mountlist.c (errno): Remove decl; we now assume C89 or better.
+ (xatoi): Remove; replaced by strtoul. Hence device numbers can now
+ go up to ULONG_MAX.
+
+ * isdir.c: Remove; no longer needed.
+ * Makefile.am (libfetish_a_SOURCES): Remove isdir.c.
+
+ * fts_.h: Add an FSF copyright notice, since our changes are becoming
+ nontrivial.
+ * fts.c: Likewise.
+ * fts_.h: Include stddef.h, for ptrdiff_t.
+ (FTS.fts_nitems): Now size_t, not int, for hosts that allow more
+ than INT_MAX entries in a directory.
+ (FTS_ROOTPARENTLEVEL): Parenthesize properly.
+ (FTSENT.fts_level): Now ptrdiff_t, not int, to allow recursing more
+ than INT_MAX levels deep on 64-bit hosts.
+ (FTSENT.fts_namelen): Now size_t, not u_short, to support hosts like
+ the Hurd that don't have arbitrary limits on directory entry lengths.
+ (FTSENT.fts_statp): Now an array, not a pointer, so that we don't
+ have to play unportable games with pointer arithmetic. Keep it array
+ for the benefit of user code that assumes it is a pointer.
+ * fts.c: Include stdint.h if available, as Autoconf suggests.
+ (ALIGNBYTES, ALIGN): Remove; no longer needed now that fts_statp
+ is an array.
+ (fts_alloc, fts_palloc, fts_sort, fts_load, fts_build):
+ Use size_t for sizes.
+ (fts_stat, fts_safe_changedir, fts_debug, fts_read, fts_build,
+ fts_palloc):
+ Use bool when appropriate.
+ (SIZE_MAX, TYPE_SIGNED): New macros.
+ (fts_read): Use u_short for instructions.
+ (fts_build): Use ptrdiff_t for levels. Don't assume file name lengths
+ fit into int. Don't assume nlink_t is signed.
+ (find_matching_ancestor): Don't assume dev, ino fit in int.
+ (fts_stat): Use function prototype; required for bool arg.
+ (fts_sort): Detect integer overflow in size calculations.
+ (fts_alloc): Simplify allocation code, now that fts_statp is an array
+ and not a pointer.
+
+ * fsusage.h: Include <stdbool.h>.
+ (struct fs_usage): Use uintmax_t for block sizes, so that they're
+ not limited to INT_MAX.
+ Use bool for booleans.
+ * fsusage.c: Use Autoconf-suggested pattern for inttypes and stdint.
+ Include unistd.h, for lseek.
+
+ * fnmatch.c: Include <stdbool.h>.
+ (errno): Remove decl; we now assume C89 or better.
+ * fnmatch_loop.c (EXT, FCT): Use bool when appropriate.
+ (FCT): Use size_t, not unsigned int, for sizes.
+ (EXT): Use size_t, not int, for sizes.
+
+ * stripslash.c (strip_trailing_slashes): Now returns bool.
+ * dirname.h (strip_trailing_slashes): Likewise.
+ Include <stdbool.h>.
+ * dirname.c (dir_name): Use bool when appropriate.
+
+ * argmatch.h (argmatch, __xargmatch_internal, argmatch_invalid):
+ Use ptrdiff_t, not int, when counting arguments, to allow more
+ than INT_MAX arguments.
+ * argmatch.c: Likewise. Use bool when appropriate.
+
+2004-08-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ * safe-read.c (errno): Remove decl; we now assume C89 or better.
+ (safe_rw): Don't work around Tru64 bug unless the bug symptoms
+ manifest themselves. This allows us to do proper reads and writes
+ on other hosts, e.g., "dd" with a block size greater than 2**31.
+
+ * md5.c (UNALIGNED_P): Use size_t; in practice, this is just as
+ good as uintptr_t in checking for alignments, and has fewer
+ configuration hassles.
+ * sha1.c (UNALIGNED_P): Likewise.
+ * md5.h: Don't include <limits.h>. Include <inttypes.h> if available,
+ as it defines symbols like UINT32_MAX on Solaris 8.
+ (md5_uint32): Assume uint32_t exists; Autoconf will define it
+ otherwise (if the host has a 32-bit unsigned type, anyway).
+ * memchr.c: Don't include inttypes.h or stdint.h.
+ (UNALIGNED_P): Remove.
+ (__memchr): Use size_t, not uintptr_t, to test alignment.
+ * memrchr.c: Likewise, for __memrchr.
+
+2004-07-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ * makepath.h: Include <stdbool.h>.
+ (make_path, make_dir): Use bool, not int, since we're not setting
+ errno.
+ Use mode_t for modes, not int. All uses changed.
+ * makepath.c: Likewise.
+ (errno): Remove decl; no longer needed since we assume C89.
+
+2004-07-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ * modechange.c: Include <stdbool.h>.
+ (mode_compile): Use bool when appropriate.
+
+ * memchr.c (UNALIGNED_P): Use sizeof, not alignof, for better
+ performance on m68k-linux. Reported by Andreas Schwab in
+ <http://lists.gnu.org/archive/html/bug-coreutils/2004-07/msg00104.html>.
+ * memrchr.c (UNALIGNED_P): Likewise.
+
+2004-07-28 Paul Eggert <eggert@cs.ucla.edu>
+
+ * userspec.c: Include <stdbool.h>, "inttostr.h".
+ (V_STRDUP): Don't assume the string's length fits in int.
+ (ISDIGIT): unsigned -> unsigned int
+ (is_number): Define only ifdef __DJGPP__; not needed elsewhere.
+ Use bool instead of int where appropriate.
+ Do not allow empty strings.
+ (parse_user_spec): Parse numbers as decimal integers, even if
+ they have a leading 0. Don't assume uids and gids fit in int.
+
+ * memchr.c: Include <stddef.h>, not <stdlib.h> and <sys/types.h>.
+ (LONG_MAX_32_BITS): Remove.
+ Include <inttypes.h> and <stdint.h> if available.
+ (alignof, UNALIGNEDP): New macro, portable to all C89 hosts.
+ (__memchr): Don't assume unsigned long int is either 4 or 8 bytes;
+ let it be any number of bytes greater than or equal to 4.
+ * memrchr.c: Likewise, with __memrchr.
+
+ * md5.h: Include <stdint.h> if HAVE_STDINT_H || _LIBC, not
+ ifdef _LIBC.
+ (md5_uint32): Use uint32_t if available. Simplify fallback ifdefs.
+ * md5.c: Don't include <sys/types.h> or <stdlib.h>; <stddef.h>
+ suffices with C89 or better.
+ (alignof): New macro, portable to all C89 hosts.
+ (UNALIGNED): Use it. Use uintptr_t if available, and assume
+ everything is unaligned otherwise; this is more portable than
+ assuming 'unsigned long int' will always work.
+ * sha1.c: Likewise.
+
+ * getugroups.c: Include <errno.h>.
+ (EOVERFLOW): Define if not defined.
+ (getgroups): Return -1 with errno=EOVERFLOW if an integer overflow
+ occurs.
+
+2004-07-27 Paul Eggert <eggert@cs.ucla.edu>
+
+ * euidaccess.c [HAVE_LIBGEN_H]: Include <libgen.h>, for
+ eaccess on Solaris and SVR4-like systems.
+ (euidaccess): Use HAVE_EACCESS, not HAVE_DECL_EACCESS.
+
+ cycle-check integer overflow fixup.
+
+ * cycle-check.h: Remove now-inaccurate comment about the files
+ you need to include first. You don't need to include any files
+ other than the usual config.h.
+ Include <inttypes.h> and <stdint.h> if available, for uintmax_t.
+ Remove 'struct stat;' not needed since we know sys/stat.h has
+ been included by dev-ino.h.
+ (struct cycle_check_state): Change chdir_counter to uintmax_t,
+ not size_t, since it isn't limited by object sizes.
+ Change magic from long unsigned int to int; that's good enough
+ for our use.
+ * cycle-check.c (is_zero_or_power_of_two): Renamed from
+ is_power_of_two, to reflect better what it really does.
+ All uses changed. Arg is now uintmax_t, not unsigned int
+ (it should have been unsigned long int -- that was a bug).
+ (cycle_check): Check for integer overflow in cycle count,
+ and report a cycle if that happens, as it must be a cycle
+ by this point.
+
+ backupfile.c rewrite to avoid arbitrary limits on lengths of
+ numeric backup extensions.
+
+ * addext.c: Remove; no longer needed.
+ * Makefile.am (libfetish_a_SOURCES): Remove addext.c.
+ * backupfile.h (addext): Remove decl.
+ * backupfile.c: Include "backupfile.h" first.
+ Include errno.h, stdbool.h, limits.h, unistd.h, xalloc.h.
+ (CLOSEDIR, INT_STRLEN_BOUND): Remove.
+ (pathconf) [! (HAVE_PATHCONF && defined _PC_NAME_MAX)]: New macro.
+ (_POSIX_NAME_MAX) [!defined _POSIX_NAME_MAX]: New macro.
+ (NAME_MAX_MAXIMUM): New macro. Unlike the old addext.c, we
+ also look at _XOPEN_NAME_MAX, for better performance on modern
+ hosts that support only file names of length 255 or more.
+ (ISDIGIT): unsigned -> unsigned int
+ (max_backup_version, version_number): Remove.
+ (check_extension): New function. Similar to the old addext, but
+ static, assumes that the extension has already been added,
+ and a bit more careful on DOS hosts.
+ (numbered_backup): New function. It does what max_backup_version
+ and version_number used to do, but it doesn't use integer arithmetic
+ to calculate extensions so it doesn't overflow.
+ (find_backup_file_name): Rewrite to use these new functions.
+ This has a new optimization: we needn't call pathconf if the
+ new numbered backup name has the same length as the old.
+ Also, use xmalloc rather than malloc, so that the caller
+ needn't worry about memory exhaustion.
+
+2004-07-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * euidaccess.c [!defined LIBC]: Included group-member.h, stat-macros.h.
+ (S_IXUSR, S_IXGRP, S_IXOTH, S_IROTH, S_IWOTH, S_IXOTH):
+ Remove; now done by stat-macros.h.
+ (NGROUPS_MAX, group_member): Remove; now done by group-member.h.
+ No need to include <limits.h>.
+ (errno): Remove decl; we now assume C89 or better.
+ (access, getuid, getgid, geteuid, getegid, stat) [defined _LIBC]:
+ New macros.
+ (uid, gid, have_ids): Remove these static variables.
+ They weren't accurate for programs that also invoked setreuid etc.
+ (euidaccess) [defined EFF_ONLY_OK || defined ACC_SELF ||
+ HAVE_DECL_EACCSS]: Use builtin substitutes.
+ [defined _LIBC]: Ignore __libc_enable_secure; it's not a
+ correct optimization for programs run as root that later
+ invoke setreuid.
+ [no builtin substitutes && HAVE_DECL_SETREGID &&
+ PREFER_NONREENTRANT_EUIDACCESS]:
+ Use setreuid+setregid to get the correct answer.
+ [no builtin substitutes && ! (HAVE_DECL_SETREGID &&
+ PREFER_NONREENTRANT_EUIDACCESS)]:
+ Don't assume that the stat macros have their historical values,
+ as POSIX doesn't require this.
+ [defined TEST]: Include <stdlib.h>; don't include errno.h
+ twice; include <error.h> rather than "error.h".
+
+2004-07-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ * Makefile.am (libfetish_a_SOURCES): Add fcntl-safer.h,
+ open-safer.c.
+ * fcntl-safer.h, open-safer.c: New files.
+
+2004-07-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ * c-strtod.c (STRTOD_L): New macro.
+ (C_STRTOD) [defined LC_ALL_MASK]: Use it, so that the
+ code is reentrant on platforms that have strtod_l.
+
+ * getloadavg.c: Include <errno.h>, <stdio.h>, <stdlib.h> even
+ if HAVE_GETLOADAVG is defined, so that the test program can work.
+ (errno): Remove declaration; not needed in C89 or later.
+ Include "c-strtod.h".
+ Do not include locale.h or define setlocale; no longer needed.
+ Include <limits.h>.
+ (INT_STRLEN_BOUND): New macro.
+ (getloadavg): Use it to compute buffer size.
+ Don't assume that buffer will be properly terminated by 'read'.
+ Use c_strtod instead of setlocale.
+ (main) [defined TEST]: Return int, not void.
+
+2004-07-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ * Makefile.am (libfetish_a_SOURCES): Add c-strtold.c.
+ * c-strtold.c: New file.
+ * c-strtod.c: Include <config.h> first.
+ (C_STRTOD, DOUBLE, STRTOD): New macros.
+ (c_strtod): Use them.
+ * c-strtod.h (c_strtold): New decl.
+
+2004-07-07 Jim Meyering <jim@meyering.net>
+
+ Don't infloop when MAXSYMLINKS is not defined.
+ Detect symlink loops much earlier (albeit lazily) on systems
+ with MAXSYMLINKS defined to a large value.
+
+ * canonicalize.c: Include "cycle-check.h".
+ (canonicalize_filename_mode): Don't try to detect loops by counting
+ symlink-hops. Instead, use the cycle-check module.
+
+ * cycle-check.h: Include stdbool.h.
+ Forward-declare `struct stat'.
+
+ * canonicalize.c (canonicalize_filename_mode): Remove do-while(0) loop.
+ Replace each corresponding `break' stmt with `continue'.
+
+2004-07-06 Jim Meyering <jim@meyering.net>
+
+ * canonicalize.c: Include "stat-macros.h".
+ (canonicalize_filename_mode): Remove #ifdef S_ISLNK, now that
+ S_ISLNK is guaranteed to be defined (via stat-macros.h).
+
+2004-04-03 Dmitry V. Levin <ldv@altlinux.org>
+
+ * Makefile.am (libfetish_a_SOURCES): Add canonicalize.c
+ unconditionally.
+ * canonicalize.h (canonicalize_mode_t): New type.
+ * canonicalize.c: Include "file-type.h".
+ (canonicalize_filename_mode): New function, based on
+ canonicalize_file_name, supports three canonicalize modes.
+ (canonicalize_file_name)
+ [!HAVE_CANONICALIZE_FILE_NAME && !HAVE_RESOLVEPATH]: Use it.
+
+2004-07-05 Jim Meyering <jim@meyering.net>
+
+ * path-concat.c (path_concat): Improve comment. From Paul Eggert.
+
+2004-07-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ * canonicalize.c (canonicalize_file_name): Assume that path_concat
+ never returns NULL.
+ * path-concat.c (mempcpy): Don't define if a system header defines it.
+ Don't include stdio.h, stdlib.h, unistd.h, strdup.h.
+ (longest_relative_suffix): New function.
+ (path_concat): Use it. Assume first argument is not NULL.
+ Port to DOS. Omit redundant separators.
+ Report an error instead of returning NULL.
+ Use mempcpy instead of memcpy.
+ (xpath_concat): Remove: not declared or used.
+
+2004-06-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ * dirname.h (FILE_SYSTEM_PREFIX_LEN): Renamed from
+ FILESYSTEM_PREFIX_LEN. All uses changed.
+ * mountlist.h (read_file_system_list): Renamed from
+ read_filesystem_list. All definitions and uses changed.
+
+2004-06-24 Jim Meyering <jim@meyering.net>
+
+ * obstack.h (obstack_base): Fix parentheses. From Paul Eggert.
+
+2004-06-20 Jim Meyering <jim@meyering.net>
+
+ * obstack.h (obstack_base): Cast to (void *), per documentation.
+
+ * yesno.h: New file.
+ * yesno.c: Include "yesno.h".
+ * Makefile.am (libfetish_a_SOURCES): Add yesno.h.
+
+2004-06-19 Jim Meyering <jim@meyering.net>
+
+ * filemode.c: Remove all S_IS* and S_IF* definitions.
+ Instead, just include "stat-macros.h".
+ * stat.c: Likewise.
+ * rmdir.c: Likewise.
+ * makepath.c: Likewise.
+ * lchown.c: Likewise.
+ * isdir.c: Likewise.
+ * canonicalize.c: Likewise.
+
+ Add S_IS* definitions from filemode.c.
+ * stat-macros.h (S_ISCTG): Define to zero if not already defined.
+ (S_ISOFD): Likewise.
+ (S_ISOFL): Likewise.
+
+2004-06-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ * readutmp.c (extract_trimmed_name): Don't apply strchr to a
+ non-string; this leads to undefined behavior.
+
+2004-05-18 Paul Eggert <eggert@cs.ucla.edu>
+
+ * fts.c (fts_stat, fts_alloc): Always allocate and use a struct
+ stat, even if the user isn't interested in the results.
+ This prevents a core dump in cycle_check when FTS_NOSTAT is set.
+ * lchown.c (lchown): Return EOPNOTSUPP if not supported; this
+ is what POSIX-2004 specifies.
+ * lchown.h (EOPNOTSUPP): Define if not defined.
+ (ENOSYS): Remove.
+
+2004-06-06 Jim Meyering <jim@meyering.net>
+
+ * getdate.y: Update from gnulib.
+
+2004-05-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * xreadlink.c: Include xreadlink.h first, to catch .h file
+ dependency problems.
+ (xreadlink): Accept new arg SIZE, for efficiency.
+ All decls and uses changed.
+ * xreadlink.h: Include <stddef.h>, for size_t.
+ * canonicalize.c (canonicalize_file_name): Update use of xreadlink.
+
+2004-06-01 Jim Meyering <jim@meyering.net>
+
+ * xmalloc.c: Update from gnulib.
+
+2004-05-30 Jim Meyering <jim@meyering.net>
+
+ * alloca_.h: Remove trailing blank.
+
+2004-05-29 Jim Meyering <jim@meyering.net>
+
+ * dirname.h (IS_ABSOLUTE_FILE_NAME, IS_RELATIVE_FILE_NAME): Define.
+
+ * calloc.c: New file.
+
+2004-05-21 Jim Meyering <jim@meyering.net>
+
+ * alloca.c, alloca_.h, fnmatch.c: Update from gnulib.
+ * localcharset.c, regex.c: Likewise.
+
+2004-05-20 Jim Meyering <jim@meyering.net>
+
+ * obstack.c, obstack.h: Update from gnulib.
+
+2004-05-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ * getline.c, getndelim2.c, getndelim2.h: Sync with gnulib.
+
+2004-05-11 Jim Meyering <jim@meyering.net>
+
+ Prior to this change, rm required read access to the current
+ directory on most systems (ones with the fchdir function).
+
+ * save-cwd.c (save_cwd) [HAVE_FCHDIR]: If opening `.' read-only
+ fails, try write-only, and finally, resort to using xgetcwd.
+
+2004-05-07 Jim Meyering <jim@meyering.net>
+
+ Update from gnulib.
+ * obstack.c (_): Define only if not already defined.
+ * obstack.h (obstack_finish): Rename local: s/value/__value/.
+
+2004-05-03 Jim Meyering <jim@meyering.net>
+
+ * lchown.c (lchown) [CHOWN_MODIFIES_SYMLINK]: Just call chown.
+
+2004-05-01 Jim Meyering <jim@meyering.net>
+
+ * chown.c (rpl_chown) [CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE]:
+ Wrap old code with this conditional.
+ [CHOWN_MODIFIES_SYMLINK]: Try to work around a chown
+ function that does not dereference symlinks.
+
+2004-04-18 Paul Eggert <eggert@twinsun.com>
+
+ * nanosleep.c (suspended): Change its type from int to
+ sig_atomic_t volatile.
+ (first_call): Make it private to rpl_nanosleep, and have it
+ be zero initially as that's a bit faster.
+ (my_usleep): Round up fractional times instead of truncating them,
+ as this is the usual meaning for 'sleep'.
+
+2004-04-20 Jim Meyering <jim@meyering.net>
+
+ * getndelim2.c (getndelim2): Upon realloc failure, don't leak memory.
+
+2004-04-18 Jim Meyering <jim@meyering.net>
+
+ * readutmp.c (read_utmp) [UTMP_NAME_FUNCTION]: Upon realloc failure,
+ don't leak memory and do call END_UTMP_ENT.
+
+2004-04-13 Jim Meyering <jim@meyering.net>
+
+ * quotearg.c, quotearg.h: Remove trailing blanks.
+
+2004-04-12 Jim Meyering <jim@meyering.net>
+
+ * inttostr.h: Update from gnulib.
+
+2004-03-27 Paul Eggert <eggert@twinsun.com>
+
+ * utimecmp.c, utimecmp.h: New files.
+ * Makefile.am (libfetish_a_SOURCES): Add utimecmp.c, utimecmp.h.
+
+2004-04-09 Jim Meyering <jim@meyering.net>
+
+ * stat-macros.h: New file, with contents from file-type.h
+ and coreutils' system.h.
+ * Makefile.am (libfetish_a_SOURCES): Add stat-macros.h.
+ * file-type.c: Include "stat-macros.h".
+ * file-type.h (file_type): Move all macro defiitions to new file,
+ stat-macros.h.
+
+2004-03-30 Paul Eggert <eggert@twinsun.com>
+
+ * cloexec.c, cloexec.h, config.charset, file-type.c, file-type.h:
+ * getloadavg.c, getndelim2.c, getusershell.c, group-member.c:
+ * human.c, path-concat.c, printf-args.c, printf-args.h:
+ * quotearg.c, quotearg.h, setenv.c, strdup.c:
+ * userspec.c, userspec.h, vasprintf.c: Sync from gnulib.
+
+ * allocsa.c, allocsa.h, strdup.h: New files, from gnulib.
+ * Makefile.am (libfetish_a_SOURCES): Add allocsa.c, allocsa.h,
+ and strdup.h.
+
+2004-03-30 Jim Meyering <jim@meyering.net>
+
+ * getloadavg.c: Merge changes from emacs (via gnulib).
+
+2004-03-28 Paul Eggert <eggert@twinsun.com>
+
+ Fix some gotchas encountered when porting to Solaris 8, using
+ the Forte 6u2 compiler.
+
+ * canonicalize.c [HAVE_UNISTD_H]: Include <unistd.h>,
+ for resolvepath declaration.
+ * fts.c: Include dirfd.h, for dirfd.
+
+2004-02-25 Paul Eggert <eggert@twinsun.com>
+
+ * human.c (humblock): Support BLOCKSIZE as well as BLOCK_SIZE.
+
+2004-03-23 Paul Eggert <eggert@twinsun.com>
+
+ * readtokens0.c (readtokens0): Return true on success rather
+ than on failure. All callers changed. This also happens to fix a
+ portability bug on pre-C99 hosts, where (bool) INTEGER sometimes
+ returns false even when INTEGER is nonzero.
+
+2004-03-23 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (libfetish_a_SOURCES): Add getopt_int.h.
+ * getopt_int.h: New file, from gnulib.
+ * getopt.c, getopt.h, getopt1.c: Sync from gnulib.
+ * getopt.c, getopt.h: Remove space(s) before TAB.
+
+ * mbswidth.c, mbswidth.h: Sync from gnulib.
+
+2004-03-21 Jim Meyering <jim@meyering.net>
+
+ * readtokens0.c, readtokens0.h: New files.
+ * Makefile.am (libfetish_a_SOURCES): Add readtokens0.c and readtokens0.h
+
+ * readtokens.c (readtoken): Don't leak 64 bytes when reading
+ an empty input stream.
+
+ * readtokens.c: Include <stdbool.h>.
+ (readtoken): Use `size_t' rather than int/long.
+ All callers adjusted.
+ Use `bool' rather than `int' where appropriate.
+ Use memset rather than an explicit loop.
+ Use x2nrealloc rather than xrealloc.
+ Allow the use of `\0' as a delimiter.
+ (readtokens): Likewise.
+ * readtokens.h (readtoken, readtokens): Update prototypes.
+
+2004-02-29 Paul Eggert <eggert@twinsun.com>
+
+ * getdate.h: Include stdbool.h, and timespec.h instead of
+ the usual <time.h> dance.
+ (get_date): Change signature to support fractional time stamps.
+ All callers changed.
+ * getdate.y: Include "getdate.h" first, as we can now
+ assume C89 and don't need to worry about 'const'.
+ Similarly, include "unlocked-io.h" near start, not in middle.
+ Include <limits.h>.
+ (textint.value): Use long int rather than int.
+ (textint.digits): Use size_t rather than int.
+ (BILLION, LOG10_BILLION): New constants.
+ (parser_control): New member rel_ns. Members day_ordinal,
+ time_zone, month, day, hour, minutes, rel_year, rel_month,
+ rel_day, rel_hour, rel_minutes, rel_seconds
+ are now long int, not int. Member seconds is now struct timespec,
+ not int. New member timespec_seen. Members dates_seen, days_seen,
+ local_zones_seen, rels_seen, times_seen, zones_seen are now size_t,
+ not int.
+ (%union.intval): Now long int, not int.
+ New member timespec.
+ (tSDECIMAL_NUMBER, tUDECIMAL_NUMBER): New tokens.
+ (seconds, signed_seconds, unsigned_seconds): New nonterminals.
+ (spec): Now is a timespec or an item list.
+ (timespec, items): New nonterminals.
+ (time, rel, relunit, number, get_date):
+ Add support for fractional seconds.
+ (time): Fix bug: seconds weren't cleared in "00:00 +0000" syntax.
+ (gmtime, localtime, mktime): Remove decls; not needed with C89.
+ (to_hour): First arg is now long int, not int.
+ (to_year): Returns long int, not int.
+ Don't treat year -70 like 70.
+ (tm_diff): Returns long int, not int.
+ (lookup_word): Use bool instead of int when appropriate.
+ (yylex): Use size_t for count, not int.
+ Detect overflow when parsing large integer constants.
+ Add support for fractions.
+ (get_date): Make pointers 'const' if possible.
+ Use more-portable code to detect integer overflow.
+ (main) [TEST]: Adjust to above changes. Test for localtime failure.
+ Don't use ctime; it's not reliable if the year has >4 digits.
+
+2004-03-15 Jim Meyering <jim@meyering.net>
+
+ `date --date="21:04 +0100" +%S' would print the seconds value
+ from the current time, rather than `00'.
+ * getdate.y: For a date string like `10:23 +0100',
+ set the number of seconds to zero. Reported by Marc Haber.
+
+2004-03-04 Jim Meyering <jim@meyering.net>
+
+ * cloexec.c (set_cloexec_flag) [ ! (F_GETFD && F_SETFD)]:
+ Return true, not false.
+
+2004-03-03 Paul Eggert <eggert@twinsun.com>
+
+ * cloexec.c: Include "cloexec.h" first, and <unistd.h> before <fcntl.h>.
+ (set_cloexec_flag): Use bool for booleans. All uses changed.
+ If F_GETFD returns a negative number (not just -1), report a
+ failure. Don't use F_SETFD if the flags are already right.
+ Don't report a failure with F_SETFD unless it returns -1.
+ * cloexec.h: Include <stdbool.h>.
+ Adjust signature to use `bool' rather than `int'.
+ * getloadavg.c (getloadavg): Use `true', not `1'.
+
+2004-03-02 Dmitry V. Levin <ldv@altlinux.org>
+
+ * cloexec.c: New file.
+ The set_cloexec_flag implementation imported from GNU C Library
+ Reference Manual.
+ * cloexec.h: New file.
+ * getloadavg.c: Include "cloexec.h".
+ (getloadavg): Use set_cloexec_flag instead of manual fcntl call.
+ * Makefile.am (libfetish_a_SOURCES): Add cloexec.c, cloexec.h.
+
+2004-02-23 Paul Eggert <eggert@twinsun.com>
+
+ * userspec.c: Don't include "posixver.h".
+ (parse_user_spec): Fall back on USER.GROUP parsing, regardless
+ of POSIX version, as POSIX 1003.1-2001 allows that behavior as a
+ compatible extension. Simplify code by removing a boolean int
+ that was always nonzero if a string was nonnull.
+
+2004-02-05 Jim Meyering <jim@meyering.net>
+
+ * timespec.h (ST_TIME_CMP_NS, ST_TIME_CMP): Define.
+ (ATIME_CMP, CTIME_CMP, MTIME_CMP, TIMESPEC_NS): Likewise.
+ From coreutils' system.h.
+
+2004-01-29 Jim Meyering <jim@meyering.net>
+
+ * mountlist.c [HAVE_SYS_UCRED_H]: Include grp.h before sys/ucred.h.
+
+2004-01-21 Paul Eggert <eggert@twinsun.com>
+
+ * argmatch.c (ARGMATCH_DIE) [! defined ARGMATCH_DIE]:
+ Include "exitfail.h", and use exit_failure rather than EXIT_FAILURE.
+ * argmatch.h: Comment fix to match the above.
+ * long-options.c (parse_long_options): Use prototype
+ for usage function arg. Pass it EXIT_SUCCESS rather than 0,
+ for clarity.
+ * obstack.c (obstack_exit_failure) [!defined _LIBC]:
+ Now a macro referring to exit_failure, instead of a separate
+ variable. Include "exitfail.h" to get it.
+ * xstrtol.h: Include "exitfail.h".
+ (STRTOL_FATAL_ERROR): Exit with status exit_failure, not 2.
+
+2004-01-21 Jim Meyering <jim@meyering.net>
+
+ * mktime.c (__mktime_internal) [!_LIBC]: Define to mktime_internal
+ so as not to conflict with a different-sized __mktime_internal
+ function in GNU libc.
+
+2004-01-16 Jim Meyering <jim@meyering.net>
+
+ Merge from gnulib.
+ * localcharset.c: Test HAVE_DECL_GETC_UNLOCKED,
+ rather than HAVE_GETC_UNLOCKED.
+
+2003-10-08 Paul Eggert <eggert@twinsun.com>
+
+ Merge from gnulib.
+
+ * unlocked-io.h: Include <stdio.h>, so that the caller
+ doesn't have to include <stdio.h> before us.
+ (clearerr_unlocked, feof_unlocked, ferror_unlocked,
+ fflush_unlocked, fgets_unlocked, fputc_unlocked, fputs_unlocked,
+ fread_unlocked, fwrite_unlocked, getc_unlocked, getchar_unlocked,
+ putc_unlocked, putchar_unlocked): Define to the unlocked counterpart
+ if not declared, so that we can use getpass.c code from libc without
+ rewriting it.
+ (flockfile, ftrylockfile, funlockfile): New macros.
+
+2004-01-14 Paul Eggert <eggert@twinsun.com>
+
+ Merge from gnulib.
+
+ * fnmatch_loop.c (ALLOCA_LIMIT): Remove macro, which collided
+ with like-named macro in fnmatch.c.
+ (EXT): Use an internal constant instead.
+
+ Merge fnmatch patches from glibc.
+ * fnmatch.c (mbsinit): Remove define.
+ Add libc_hidden_ver (__fnmatch, fnmatch).
+ * fnmatch_loop.c (FCT): Cast to int32_t and UCHAR when appropriate.
+ Adjust to renaming of collseq_table_lookup to __collseq_table_lookup.
+
+2003-11-24 Paul Eggert <eggert@twinsun.com>
+
+ Merge from gnulib.
+
+ * alloca.c: Remove dependency on xalloc module.
+ (xalloc_die): Remove.
+ (memory_full) [!defined emacs]: New macro.
+ [!defined emacs]: Don't include xalloc.h.
+ (alloca): Invoke memory_full, not xalloc_die, if malloc fails or
+ address arithmetic overflows. Change datatypes a bit to avoid
+ unnecessary casts.
+
+2004-01-14 Paul Eggert <eggert@twinsun.com>
+
+ * posixver.c: Include posixver.h.
+
+2004-01-12 Jim Meyering <jim@meyering.net>
+
+ * posixver.c (DEFAULT_POSIX2_VERSION): Use definition of new,
+ optional configure-time default.
+
+2004-01-10 Jim Meyering <jim@meyering.net>
+
+ * version-etc.c (version_etc_copyright): Update copyright date.
+
+2003-12-20 Jim Meyering <jim@meyering.net>
+
+ * fts.c [!_LIBC]: Undefine, then define-away __P.
+
+2003-12-19 Jim Meyering <jim@meyering.net>
+
+ Rewrite fts to use a hash table or O(1)-mem cycle-detection
+ code rather than the tree-based tsearch functions.
+ * fts_.h: Include hash.h and cycle-check.h.
+ (FTS_TIGHT_CYCLE_CHECK): New value.
+ (FTS_OPTIONMASK): Adjust to include the new value.
+ (FTS_NAMEONLY, FTS_STOP): Increase to allow room for new value.
+ (struct FTS) [active_dir_ht]: New member. Replaces fts_dir_signatures.
+ (struct FTS) [cycle_state]: New member.
+ * fts.c: Don't include <search.h>.
+ [HAVE_INTTYPES_H]: Include <inttypes.h>.
+ (tdestroy, tfind, tsearch): Remove definitions.
+ (struct Active_dir): Rename from `known_object'.
+ (AD_compare, AD_hash): New functions.
+ (enter_dir, leave_dir): Rewrite to manipulate a hash table
+ rather than a tree.
+ (fts_open): Initialize hash table or cycle_state buffer.
+ (free_node): Remove function.
+ (find_matching_ancestor): Renamed/rewritten from look_up_active_dir.
+ (fts_cross_check): Adapt to use new data structure.
+
+ * Makefile.am (libfetish_a_SOURCES): Remove search_.h.
+ (DISTCLEANFILES): Remove definition.
+
+2003-12-18 Jim Meyering <jim@meyering.net>
+
+ Rewrite cycle detection code to work properly.
+ Add some framework (compiled out by default) to test it.
+ * fts.c (Dprintf, ENTER_DIR, LEAVE_DIR): Define.
+ (add_object): Remove function. Rewritten as...
+ (enter_dir): New function.
+ (leave_dir, free_node): New functions.
+ (fts_read): Ensure that we call ENTER_DIR or LEAVE_DIR,
+ as appropriate, before returning.
+ (look_up_active_dir, fts_cross_check) [FTS_DEBUG]: New functions.
+ (fts_stat): Don't perform the cycle check here.
+ Now it's done via enter_dir.
+
+2003-12-12 Jim Meyering <jim@meyering.net>
+
+ * fts_.h (FTS) [fts_dir_signatures]: Add comment.
+
+2003-12-03 Paul Eggert <eggert@twinsun.com>
+
+ * getgroups.c (getgroups): xmalloc takes one argument, not two.
+ Bug reported by Alfred M. Szmidt.
+
+2003-12-02 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (libfetish_a_SOURCES): Reflect sha -> sha1 renaming.
+
+ * sha1.c: File renamed from sha.c.
+ * sha1.h: File renamed from sha.h.
+ Use SHA1_H, not _SHA_H in #ifndef condition.
+
+ * sha.c: Add FSF Copyright.
+ * sha.h: Correct stale references to MD5 and `16 bytes'.
+ Patch by Ulrich Drepper.
+
+ * sha.h: Add FSF Copyright. Remove reference to Scott Miller,
+ since this file is now nearly identical to md5.h.
+
+ * md5.h (rol) [__GNUC__ && __i386__]: Don't use `asm' code. These
+ days, gcc-3.x does better all by itself. Patch from Dean Gaudet:
+ http://mail.gnu.org/archive/html/bug-coreutils/2003-11/msg00144.html
+
+2003-11-29 Jim Meyering <jim@meyering.net>
+
+ * c-strtod.c (c_strtod): Save and restore original LC_NUMERIC setting,
+ in case it was different from the environment-derived value.
+ Patch by Paul Eggert.
+ Include "xalloc.h" for declaration of xstrdup.
+
+2003-11-24 Paul Eggert <eggert@twinsun.com>
+
+ Parse floating-point operands and options in the C locale.
+ POSIX requires this for printf, and we might as well be
+ consistent elsewhere (tail, sleep, seq).
+
+ * Makefile.am (libfetish_a_SOURCES): Add c-strtod.c, c-strtod.h.
+ * c-strtod.c, c-strtod.h: New files.
+ * xstrtod.h (xstrtod): Accept an extra arg, specifying the
+ conversion function.
+ * xstrtod.c (xstrtod): Likewise. All callers changed to
+ include c-strtod.h and use c_strtod. Don't include stdlib.h; no
+ longer needed.
+
+ * xnanosleep.c: Don't include xstrtod.h; it's not needed.
+
+2003-11-22 Jim Meyering <jim@meyering.net>
+
+ * xmalloc.c (x2nrealloc_inline): Fix typos in comments: s/size/size_t/.
+
+2003-11-21 Jim Meyering <jim@meyering.net>
+
+ * xreadlink.c (xreadlink): Correct outdated comment.
+
+2003-11-17 Jim Meyering <jim@meyering.net>
+
+ On systems without utime and without a utimes function capable of
+ dealing with a NULL struct utimbuf* argument, this utime replacement
+ could -- in unusual circumstances -- leak a file descriptor.
+ * utime.c: Include <unistd.h> and <errno.h>.
+ (utime_null): Be sure to close `fd' and to preserve errno.
+ Reported by Geoff Collyer via Arnold Robbins.
+
+2003-11-13 Jim Meyering <jim@meyering.net>
+
+ * xalloc.h, xstrtol.c: Update from gnulib.
+
+2003-11-11 Jim Meyering <jim@meyering.net>
+
+ * ftw.c, ftw_.h: Remove files. No longer used.
+
+2003-11-09 Jim Meyering <jim@meyering.net>
+
+ * root-dev-ino.c, root-dev-ino.h: New files.
+ * Makefile.am (libfetish_a_SOURCES): Add root-dev-ino.c root-dev-ino.h.
+
+ * dev-ino.h: Include <sys/types.h> and <sys/stat.h>.
+
+2003-11-06 Jim Meyering <jim@meyering.net>
+
+ * free.c: New file, from gnulib.
+
+2003-10-31 Paul Eggert <eggert@twinsun.com>
+
+ * mountlist.h (struct mount_entry.me_type_malloced): New member.
+ * mountlist.c (SIZE_MAX): Define if not defined already.
+ (read_filesystem_list): Set and use me_type_malloced.
+ Use "sizeof *me" rather than "sizeof (struct mount_entry)" (or
+ whatever the type happens to be), for brevity and consistency.
+ Check for size calculation overflow on Alphas running OSF/1.
+
+2003-10-31 Jim Meyering <jim@meyering.net>
+
+ * hash.c: Include "xalloc.h" for use of xalloc_oversized.
+
+ * linebuffer.c: Include <string.h> for declaration of memset.
+
+ * alloca.c, linebuffer.c, xmalloc.c, xalloc.h: Update from gnulib.
+ * exclude.c, getgroups.c, quotearg.c, stdbool_.h: Update from gnulib.
+ * hash.c, hash-pjw.h: Update from gnulib.
+
+2003-10-25 Jim Meyering <jim@meyering.net>
+
+ * hash.c, hash.h: Update from gnulib.
+ * hash-pjw.c, hash-pjw.h: Likewise.
+ * obstack.c, obstack.h: Likewise.
+
+2003-10-25 Jim Meyering <meyering@lucent.com>
+
+ * fts_.h: Include <features.h> only if _LIBC.
+ [!_LIBC]: Define-away __THROW, __BEGIN_DECLS, __END_DECLS.
+
+2003-10-19 Jim Meyering <jim@meyering.net>
+
+ * vasnprintf.c (vasnprintf): Work around losing snprintf on
+ e.g. HPUX 10.20.
+
+2003-09-25 Jim Meyering <jim@meyering.net>
+ Bruno Haible <bruno@clisp.org>
+
+ [Update from gnulib]
+ This lets translators provide better translations for the
+ "Written by ..." part of --version output.
+ * version-etc.h: Include stdarg.h.
+ (version_etc_copyright): Declare as readonly.
+ (version_etc): Make this function variadic with a NULL-terminated list
+ of author name strings.
+ (version_etc_va): New declaration.
+ * version-etc.c: Include stdarg.h, stdlib.h.
+ (version_etc_copyright): Declare as readonly.
+ (version_etc_va): New function. Provide a different translatable string
+ for each possible number of authors < 10. Abbreviate when there are 10
+ authors or more.
+ (version_etc): Make this function variadic. Call version_etc_va.
+ Suggestion from Gary V. Vaughan.
+
+ * long-options.h (parse_long_options): Change prototype: the authors
+ string is moved to the end and becomes variadic.
+ * long-options.c: Include stdarg.h.
+ (parse_long_options): Make this function variadic, too.
+ Call version_etc_va, not version_etc.
+
+2003-10-17 Jim Meyering <jim@meyering.net>
+
+ * xfts.c, xfts.h: New files.
+ This factors out code used by du.c, chmod.c, and chown-core.c.
+ * Makefile.am (libfetish_a_SOURCES): Add xfts.c and xfts.h.
+
+ * error.h: Update from gnulib.
+ * getpass.c: Likewise.
+ * fnmatch.c: Likewise.
+ * fnmatch_loop.c: Likewise.
+
+2003-10-16 Jim Meyering <jim@meyering.net>
+
+ * xmalloc.c: Include <string.h>, for declarations of memset and memcpy.
+
+ * getgroups.c: Update from gnulib.
+ * readutmp.c: Fix indentation, from gnulib.
+ * exclude.c: Update from gnulib.
+ * xgethostname.c: Include xgethostname.h.
+ * xgethostname.h: New file, from gnulib.
+ * Makefile.am (libfetish_a_SOURCES): Add xgethostname.h.
+
+2003-10-15 Jim Meyering <jim@meyering.net>
+
+ * userspec.h: New file.
+ * userspec.c: Include "userspec.h".
+ * Makefile.am (libfetish_a_SOURCES): Add userspec.h.
+
+2003-10-14 Paul Eggert <eggert@twinsun.com>
+
+ Fix some number-parsing bugs, e.g., "head -n 100k@" wasn't
+ properly diagnosed.
+ * human.c, xstrtoimax.c, xstrtol.c, xstrtol.h, xstrtoul.c, xstrtoumax.c:
+ Sync with gnulib.
+
+2003-10-13 Paul Eggert <eggert@twinsun.com>
+
+ * xalloc.h, xmalloc.c, xstrdup.c: Import latest version from gnulib.
+
+2003-09-29 Paul Eggert <eggert@twinsun.com>
+
+ * Makefile.am (libfetish_a_SOURCES): Add xstrtoimax.c.
+
+2003-10-02 Jim Meyering <jim@meyering.net>
+
+ Don't require that the maximum length of a file name
+ encountered in a traversal fit in an `unsigned short',
+ and fix some portability bugs (don't depend on gcc).
+
+ * fts.c: Include "fts_.h", not <fts.h>.
+ (ALIGNBYTES) [!(__GNUC__ >= 2)]: Add a definition that works with
+ compilers that don't have __alignof__.
+ (MAX): Use a definition that doesn't depend on gcc.
+ (fts_build): Make `len' and `maxlen' be of type size_t, not int.
+ Test for overflow in a less type-dependent manner.
+ Test HAVE_STRUCT_DIRENT_D_TYPE, rather than
+ defined DT_DIR && defined _DIRENT_HAVE_D_TYPE.
+ (fts_palloc): Test for overflow in a less type-dependent manner.
+ (fts_safe_changedir): Use stat, not stat64.
+ Use fstat, not __fxstat64(_STAT_VER.
+
+ * fts_.h [FTS] (fts_pathlen): Change type from int to size_t.
+ [FTSENT] (fts_pathlen): Change type from u_short to size_t.
+ (fts_level): Change type from u_short to int.
+
+ * Makefile.am (libfetish_a_SOURCES): Add fts.c fts_.h.
+ Remove ftw_.h.
+
+2003-09-29 Paul Eggert <eggert@twinsun.com>
+
+ * strftime.c (tm_diff) [! HAVE_TM_GMTOFF]:
+ Fix arg typo in previous patch.
+
+2003-09-28 Jim Meyering <jim@meyering.net>
+
+ * error.c: Update from gnulib.
+
+2003-09-19 Jim Meyering <jim@meyering.net>
+
+ * version-etc.h: (version_etc): Rename parameter, authors,
+ to written_by.
+ * version-etc.c: (version_etc): Likewise.
+ Combine fprintf and following putc('\n'.
+
+ * version-etc.c, version-etc.h: Revert yesterday's changes.
+ * long-options.c, long-options.h: Likewise.
+
+2003-09-18 Jim Meyering <jim@meyering.net>
+
+ This lets translators provide better translations for the
+ `Written by ...' part of --version output.
+ * version-etc.c: Include stdarg.h, stdlib.h, string.h, and xalloc.h.
+ (version_etc): Make this function variadic,
+ with a NULL-terminated list of author name strings.
+ (version_etc_va): New function.
+ Suggestion from Gary V. Vaughan.
+ * version-etc.h (version_etc_va): Declare it.
+
+ * long-options.c: Include stdarg.h.
+ (parse_long_options): Make this function variadic (authors), too.
+ Call version_etc_va, not version_etc.
+ * long-options.h (parse_long_options): Update prototype.
+
+2003-09-16 Paul Eggert <eggert@twinsun.com>
+
+ * linebuffer.c (readlinebuffer): Return NULL immediately upon
+ input error, instead of returning NULL the next time we are called
+ (and therefore losing track of errno).
+
+2003-09-15 Paul Eggert <eggert@twinsun.com>
+
+ * getndelim2.c (getndelim2): Don't trash errno when a read
+ fails, so that the caller gets the proper errno.
+
+ * readutmp.c (read_utmp): Likewise.
+ Check for fstat error. Close stream and free storage
+ when failing.
+
+2003-09-14 Jim Meyering <jim@meyering.net>
+
+ * argmatch.c: Update from gnulib.
+
+ * Makefile.am (libfetish_a_SOURCES): Add exit.h, strndup.h,
+ time_r.c, time_r.h.
+
+2003-09-13 Jim Meyering <jim@meyering.net>
+
+ * setenv.c, strcspn.c, strdup.c, strndup.c, strnlen.c, strpbrk.c:
+ * strstr.c, strtod.c, strtoimax.c, tempname.c, unicodeio.c, userspec.c:
+ * vasprintf.h, xgethostname.c, xreadlink.c, xstrdup.c, xstrndup.c:
+ * xstrndup.h, xstrtod.c, xstrtol.c, yesno.c: Update from gnulib.
+ * strndup.h: New file, from gnulib.
+ * exit.h: New file, from GNU gettext, via gnulib.
+
+2003-09-06 Paul Eggert <eggert@twinsun.com>
+
+ * time_r.c, time_r.h: New files.
+
+ * mktime.c (my_mktime_localtime_r): Remove; all uses changed to
+ __localtime_r.
+ (__localtime_r) [!defined _LIBC]: New macro. Include <time_r.h>.
+ (__mktime_internal) [!defined _LIBC]: Now extern, not static.
+
+ * strftime.c (my_strftime_gmtime_r): Remove; all uses changed to
+ __gmtime_r.
+ (my_strftime_localtime_r): Remove; all uses changed to __localtime_r.
+ (__gtime_r, __localtime_r) [!HAVE_TM_GMTOFF]: New macros.
+ Include <time_r.h>.
+
+2003-09-13 Jim Meyering <jim@meyering.net>
+
+ * strtol.c: Update from gnulib.
+
+2003-09-12 Paul Eggert <eggert@twinsun.com>
+
+ * argmatch.c, xgethostname.c, xmalloc.c: Include exit.h.
+ * obstack.c [!defined _LIBC]: Likewise.
+ * argmatch.c (EXIT_FAILURE): Remove; now done by exit.h
+ * exitfail.c, fatal.c, xgethostname.c, xmalloc.c: Likewise.
+ * exitfail.c: Don't include stdlib.h; no longer needed.
+
+2003-09-12 Paul Eggert <eggert@twinsun.com>
+
+ * error.c (error_tail): Assume vprintf.
+
+2003-09-09 Paul Eggert <eggert@twinsun.com>
+
+ More K&R removal.
+
+ * getloadavg.c (getloadavg, main): Define via prototypes.
+
+ * getopt.h (struct option.name): Assume C89, and use 'const'.
+ (getopt, etopt_long, getopt_long_only, _getopt_internal)
+ [defined __GNU_LIBRARY__]: Assume C89, so we can always declare
+ with a prototype.
+ * getopt.c (const): Remove macro.
+ Include <string.h> unconditionally.
+ (my_index): Remove; all uses changed to strchr.
+ (strlen): Remove decl.
+ (exchange): Remove forward decl; no longer needed.
+ (exchange, _getopt_initialize, _getopt_internal, getopt, main):
+ Define with prototype.
+ * getopt1.c (const): Remove macro.
+ (getopt_long, getopt_long_only, main): Define with prototype.
+
+ * getugroups.c: Include <string.h> unconditionally.
+
+ * getusershell.c: Include <stdlib.h> unconditionally.
+ (getusershell, setusershell, endusershell, readname, main):
+ Define with prototypes.
+
+ * group-member.c: Include group-member.h first.
+ Include <stdlib.h> unconditionally.
+
+ * hard-locale.c: Include hard-locale.h first.
+ Include <stdlib.h>, <string.h> unconditionally.
+
+ * hash.c (free, malloc): Remove decls.
+ Include <stdlib.h> unconditionally.
+
+ * human.c: Include <stdlib.h>, <string.h> unconditionally.
+ (getenv): Do not declare.
+
+ * idcache.c: Include <string.h> unconditionally.
+
+ * long-options.c: Include long-options.h first, to test interface.
+ Include <stdlib.h> unconditionally.
+
+ * makepath.c: Include makepath.h first, to test interface.
+ Include <stdlib.h> and <string.h> unconditionally.
+
+ * linebuffer.c: Include <stdlib.h>.
+ (free): Remove decl.
+
+ * malloc.c: Include <stdlib.h>, for malloc; don't bother with stddef.h.
+ rpl_malloc returns void *, not char *.
+ * realloc.c (rpl_realloc): Likewise. Also, define with a prototype.
+
+ * md5.h: Include <limits.h> unconditionally.
+ (UINT_MAX_32_BITS): Don't worry about non-__STDC__ case.
+ (__P): Remove; all uses removed.
+ * md5.c: Include "md5.h" first.
+ (md5_init_ctx, md5_read_ctx, md5_finish_ctx, md5_stream,
+ md5_buffer, md5_process_bytes, md5_process_block):
+ Define with prototypes.
+ * sha.h (__P): Remove all uses. (It wasn't defined??)
+ * sha.c: Include "sha.h" first.
+ Include <stdlib.h>, <string.h> unconditionally.
+
+ * memchr.c (__ptr_t): Remove; all uses changed to void *.
+ * memcmp.c (__ptr_t): Likewise.
+ * memrchr.c (__ptr_t): Likewise.
+ * memchr.c, memcmp.c, memcoll.c, memrchr.c:
+ Include <string.h> unconditionally.
+ * memchr.c, memrchr.c: Include <limits.h> unconditionally.
+ * memchr.c: Include <stdlib.h> unconditionally.
+ * memchr.c (LONG_MAX): Remove.
+ * memrchr.c (LONG_MAX): Likewise.
+ * memchr.c (__memchr): Define via a prototype.
+ * memrchr.c (__memrchr): Likewise.
+ * memcmp.c (__P): Remove, and remove all uses.
+ (memcmp_bytes, memcmp_common_alignment, memcmp_not_common_alignment):
+ Remove forward decls; no longer needed.
+ * memcpy.c, memmove.c, memset.c: Include <stddef.h>.
+ Use types required by C89 in prototype.
+
+ * mkdir.c: Include <stdlib.h>, <string.h> unconditionally.
+ * savedir.c: Likewise.
+ * mkdir.c (free): Remove decl.
+ * rmdir.c (rmdir): Define with a prototype.
+ * savedir.c: Include savedir.h first, to test interface.
+
+ * mktime.c (STDC_HEADERS): Remove.
+ Include <stdlib.h>, <string.h> unconditionally.
+
+ * modechange.c: Include <stdlib.h> unconditionally.
+ (malloc): Remove decl.
+
+ * mountlist.c: Include <stdlib.h>, <string.h> unconditionally.
+ (free): Remove decl.
+
+ * obstack.h (PTR_INT_TYPE) [!defined __PTRDIFF_TYPE__]:
+ Define to ptrdiff_t, without bothering to check HAVE_STDDEF_H.
+ (This type really should be intptr_t, but that's a C99ism.)
+ (_obstack_memcpy): Remove: all uses changed to memcpy.
+ Include <string.h> unconditionally.
+ (struct obstack): Assume __STDC__ for types of members
+ chunkfun, freefun, extra_arg.
+ (_obstack_newchunk, _obstack_free, _obstack_begin, _obstack_begin_1,
+ _obstack_memory_used, obstack_alloc_failed_handler, obstack_init,
+ obstack_begin, obstack_specify_allocation,
+ obstack_specify_allocation_with_arg, obstack_chunkfun,
+ obstack_freefun, obstack_free) [! (defined __STDC__ && __STDC__)]:
+ Remove unprototyped decls and the macros that use them.
+ * obstack.c (POINTER): Remove. All uses changed to void *.
+ (obstack_alloc_failed_handler, CALL_CHUNKFUN, CALL_FREEFUN,
+ _obstack_begin, _obstack_begin_1, _obstack_allocated_p)
+ (defined __STDC__ && __STDC__)]:
+ Remove nonprototyped code.
+ Include <stdlib.h> unconditionally.
+ (_obstack_begin, _obstack_begin_1, _obstack_newchunk,
+ _obstack_allocated_p, _obstack_free, obstack_free,
+ _obstack_memory_used, print_and_abort):
+ Define using prototypes.
+ (obstack_1grow, obstack_1grow_fast, obstack_alloc, obstack_base,
+ obstack_blank, obstack_blank_fast, obstack_copy, obstack_copy0,
+ obstack_finish, obstack_grow, obstack_grow0, obstack_make_room,
+ obstack_next_free, obstack_object_size, obstack_room) [0]:
+ Remove unused, unprototyped code.
+
+ * path-concat.c: Include <stdlib.h>, <string.h> unconditionally.
+
+ * physmem.c (physmem_total, physmem_available, main): Define
+ with prototypes.
+
+ * posixtm.c: Include <stdlib.h>, <string.h> unconditionally.
+ (main): Define with a prototype.
+
+ * posixver.c (getenv): Remove decl.
+
+ * putenv.c (malloc): Returns void *, not char *.
+ Include <string.h> unconditionally.
+ (strchr, memcpy, NULL): Do not define.
+
+ * readtokens.c: Include readtokens.h first, to test interface.
+ Include <stdlib.h>, <string.h> unconditionally.
+ (init_tokenbuffer): Define with a prototype.
+
+ * regex.c (PARAMS): Remove. All uses removed.
+ All uses of _RE_ARGS removed, too.
+ Include <stddef.h>, <stdlib.h>, <string.h>, <limits.h>
+ unconditionally.
+ (bzero): Assume memset exists.
+ (memcmp, memcpy, NULL): Remove.
+ (SIGN_EXTEND_CHAR): Remove; all uses replaced by casts to signed
+ char, or assignments to local vars of type signed char.
+ (init_syntax_once, PREFIX(extract_number_and_incr),
+ PREFIX(print_partial_compiled_pattern),
+ PREFIX(print_compiled_pattern), PREFIX(print_double_string),
+ convert_mbs_to_wcs, print_fastmap, re_set_syntax,
+ PREFIX(regex_grow_registers), PREFIX(regex_compile),
+ PREFIX(store_op1), PREFIX(store_op2), PREFIX(insert_op1),
+ PREFIX(insert_op2), PREFIX(at_begline_loc_p),
+ PREFIX(at_endline_loc_p), group_in_compile_stack, insert_space,
+ wcs_compile_range, byte_compile_range, truncate_wchar,
+ PREFIX(re_compile_fastmap), re_compile_fastmap, re_set_registers,
+ re_search, re_search_2, PREFIX(re_search_2), re_match, re_match_2,
+ count_mbs_length, wcs_re_match_2_internal,
+ byte_re_match_2_internal, PREFIX(group_match_null_string_p),
+ PREFIX(alt_match_null_string_p),
+ PREFIX(common_op_match_null_string_p), PREFIX(bcmp_translate),
+ re_compile_pattern, re_comp, re_exec, regcomp, regexec, regerror,
+ regfree, PREFIX(extract_number)): Define with prototype. Remove
+ now-unnecessary declaration, if any.
+ (byte_compile_range, PREFIX(regex_compile), re_comp, re_exec,
+ regcomp, regexec):
+ Remove now-unnecessary casts among pointer types.
+ * regex.h (_RE_ARGS): Remove. All uses removed.
+
+ * rename.c: Include <stdlib.h>, <string.h> unconditionally.
+ (free): Remove decl.
+
+ * rpmatch.c: Include <stdlib.h> unconditionally.
+
+ * save-cwd.c: Include <stdlib.h> unconditionally.
+ * xgetcwd.c: Likewise.
+
+ * stat.c: Include <stdlib.h>, <string.h> unconditionally.
+ (free): Remove decl.
+
+ The following changes are not K&R related:
+
+ * group-member.h: Include <sys/types.h>, so that this file is
+ self-contained.
+ * makepath.h: Likewise.
+
+ * getusershell.c (readname, default_index, line_size, readname):
+ Use size_t, not int, for sizes.
+ (readname): If the size overflows, report an error instead of
+ looping forever.
+
+2003-09-09 Derek Robert Price <derek@ximbiot.com>
+
+ * getndelim2.c: Assume stdlib.h per the C89 spec.
+
+2003-09-08 Paul Eggert <eggert@twinsun.com>
+
+ Assume C89 or better; remove K&R cruft.
+ A few of these changes were first proposed by Derek Robert Price
+ in <http://mail.gnu.org/archive/html/bug-gnulib/2003-07/msg00105.html>.
+
+ * addext.c: Include <string.h> unconditionally.
+ * backupfile.c: Include <string.h>, <stdlib.h> unconditionally.
+ Don't declare getenv or malloc.
+
+ * alloca.c: Include <string.h>, <stdlib.h> unconditionally.
+ (POINTER_TYPE, pointer): Remove; all uses changed to void *.
+ (NULL): Remove.
+ (find_stack_direction, alloca): Use prototypes.
+
+ * atexit.c (atexit): Define using a prototype.
+
+ * basename.c, dirname.c, stripslash.c:
+ Include <string.h> unconditionally.
+
+ * bcopy.c: Include <stddef.h>.
+ (bcopy): Define with prototype, using 'const' and 'void' and 'size_t'.
+
+ * canon-host.c: Include <stdlib.h>, <string.h> unconditionally.
+
+ * error.h (error, error_at_line, error_print_progname)
+ [! (defined (__STDC__) && __STDC__)]: Remove decls.
+ * error.c: Include error.h first, to check interface.
+ Include <stdarg.h>, <stdlib.h>, <string.h> unconditionally.
+ (VA_START): Remove; all uses changeed to va_start.
+ (exit, strerror): Remove decls.
+ (error_print_progname): Prototype uncondionally.
+ Don't include <errno.h>; no longer needed.
+ (private_strerror): Remove.
+ (error_tail): Always define.
+ (error, error_at_line): Assume C89 or better; always use prototypes.
+
+ * euidaccess.c (main): Define with a prototype.
+
+ * exclude.c: Include <stdlib.h>, <string.h> unconditionally.
+
+ * exitfail.c: Include <stdlib.h> unconditionally.
+
+ * fnmatch_.h (__P): Remove. All uses changed to assume prototypes.
+ * fnmatch.c: Include fnmatch.h first, to test interface.
+ Include <string.h>, <stddef.h>, <stdlib.h> unconditionally.
+ (getenv): Remove decl.
+ (fnmatch): Define using a prototype.
+ * fnmatch_loop.c (FCT): Remove forward decl; no longer needed.
+ (FCT): Define using a prototype.
+
+ * getdate.y: Include <stdlib.h>, <string.h> unconditionally.
+
+ * gethostname.c: Include <stddef.h>.
+ (gethostname): Define with prototype. Length is size_t, not int.
+
+2003-09-08 Paul Eggert <eggert@twinsun.com>
+
+ * utime.c [!HAVE_UTIMES_NULL]: Include <sys/stat.h>, <fcntl.h>.
+ (utime_null): Fix typo: 'st' was sometimes called 'sb'.
+
+2003-09-09 Jim Meyering <jim@meyering.net>
+
+ * getversion.c: Remove unused file. Reported by Paul Eggert.
+
+2003-09-03 Paul Eggert <eggert@twinsun.com>
+
+ * human.c (human_readable): Fix bug that rounded 10501 to 10k.
+ Bug reported by Lute Kamstra in
+ <http://mail.gnu.org/archive/html/bug-gnulib/2003-09/msg00003.html>.
+
+ * getdate.y (relative_time_table): Use tDAY_UNIT for "tomorrow",
+ "yesterday", "today", and "now" rather than tMINUTE_UNIT. Of
+ course with correspondingly smaller numbers for tomorrow and
+ yesterday. From Tadayoshi Funaba. Originally installed into
+ sh-utils on 1999-08-07, but the patch was mistakenly reverted by
+ the next change to that shared file (but this time in fileutils)
+ on 1999-08-29.
+
+2003-08-18 Paul Eggert <eggert@twinsun.com>
+
+ * same.c: Include <stdlib.h> and <string.h> unconditionally,
+ as we're now assuming that part of hosted C89.
+ (free) [!HAVE_DECL_FREE]: Remove decl; no longer needed.
+ (same_name): Invoke pathconf on destination, not source, as
+ that's a bit clearer even if they are the same dir.
+
+2003-08-18 Jim Meyering <jim@meyering.net>
+
+ * getopt.h: Remove space before TAB.
+
+2003-08-17 Paul Eggert <eggert@twinsun.com>
+
+ * same.c: Include <stdbool.h>, <limits.h>.
+ (_POSIX_NAME_MAX): Define if not defined.
+ (MIN): New macro.
+ (same_name): If file names are silently truncated, report
+ that the file names are the same if they are the same after
+ the silent truncation.
+
+2003-08-16 Paul Eggert <eggert@twinsun.com>
+
+ Merge from gnulib.
+ * Makefile.am (libfetish_a_SOURCES): Remove getndelim2.c,
+ getndelim2.h, xstrtoimax.c. Add localcharset.h.
+ (CLEANFILES, SUFFIXES): Initialize to empty.
+ (EXTRA_DIST): Add getndelim2.c, getndelim2.h.
+ (install-exec-local): Use $(GLIBC21), not @GLIBC21@.
+ Do not mkdir libdir if not glibc21.
+ (charset.alias): @host@ -> $(host).
+ (SUFFIXES, .sin.sed, CLEANFILES): Reorder rules
+ to match gnulib module suggestions.
+ * localcharset.h, readlink.c: New files, from gnulib.
+ * asnprintf.c, asnprintf.c, asprintf.c, backupfile.h,
+ canon-host.c, config.charset, dirname.h, euidaccess.c, exclude.c,
+ fsusage.h, full-write.c, getloadavg.c, getndelim2.h, gettext.h,
+ group-member.h, hard-locale.h, hash.c, hash.h, hash-pjw.c,
+ localcharset.c, long-options.h, makepath.h, malloc.c, mbswidth.c,
+ mbswidth.h, md5.h, memcasecmp.c, memcasecmp.h, memcoll.h,
+ mkstemp.c, modechange.h, mountlist.h, path-concat.h, pathmax.h,
+ physmem.h, posixtm.h, printf-args.c, printf-args.h,
+ printf-parse.c, printf-parse.h, putenv.c, quote.h, readutmp.h,
+ ref-add.sin, ref-del.sin, safe-read.c, savedir.h, setenv.c,
+ setenv.h, stdbool_.h, strnlen.c, strpbrk.c, strtoimax.c,
+ strverscmp.h, tempname.c, unicodeio.c, unicodeio.h,
+ unistd-safer.h, unlocked-io.h, vasnprintf.c, vasnprintf.h,
+ vasprintf.c, vasprintf.h, version-etc.h, xgethostname.c,
+ xmemcoll.c, xstrtoimax.c, xstrtoumax.c: Sync with gnulib.
+
+2003-08-15 Paul Eggert <eggert@twinsun.com>
+
+ * physmem.c: Include "physmem.h" before system includes.
+
+2003-08-10 Jim Meyering <jim@meyering.net>
+
+ * utimens.c (utimens): Revert most of last change.
+ Test HAVE_WORKING_UTIMES instead of HAVE_UTIMES.
+
+2003-08-09 Jim Meyering <jim@meyering.net>
+
+ * utimens.c (utimens): Test HAVE_UTIME, not HAVE_UTIMES.
+ Prefer utime, since it works and utimes doesn't on some systems.
+ FIXME: Revert the above change once we have a working utimes
+ replacement function.
+
+2003-08-06 Paul Eggert <eggert@twinsun.com>
+
+ * Makefile.am (libeftish_a_SOURCES): Add utimens.c, utimens.h.
+ * utimens.c, utimens.h: New files.
+
+2003-08-09 Jim Meyering <jim@meyering.net>
+
+ * unicodeio.c (unicode_to_mb): Change to `Solaris 5.7' in comment.
+ * putenv.c: Likewise.
+
+ * fatal.c, fatal.h: Remove unused files.
+
+ * Makefile.am: Use the e.g., `$(FNMATCH_H)' notation for AC_SUBST'd
+ variable names, rather than @FNMATCH_H@.
+ Likewise for $(ALLOCA_H).
+ (fnmatch.h): Use `$@' in the commands, in place of the three copies
+ of the literal target, `fnmatch.h'.
+ (alloca.h): Likewise.
+
+2003-08-08 Paul Eggert <eggert@twinsun.com>
+
+ * Makefile.am (libfetish_a_SOURCES): Remove fnmatch_.h.
+ (lib_OBJECTS): New macro, for convenience when cutting and
+ pasting Makefile.am templates from gnulib.
+ (EXTRA_DIST): Remove fnmatch_loop.c.
+ (BUILT_SOURCES): Append $(FNMATCH_H).
+ * Makefile.am: Import the following changes from gnulib templates
+ for alloca and fnmatch):
+ (all-local $(lib_OBJECTS)): New dependencies.
+ (alloca.h): Use alloca.h-t for temporary.
+ (EXTRA_DIST): Append fnmatch_.h, fnmatch_loop.c.
+ (fnmatch.h): New rule.
+ (MOSTLYCLEANFILES): Add fnmatch.h, fnmatch.h-t.
+ (DISTCLEANFILES): Remove fnmatch.h
+
+2003-08-08 Jim Meyering <jim@meyering.net>
+
+ * mountlist.c (read_filesystem_list) [MOUNTED_GETFSSTAT]:
+ Use MNT_NOWAIT, rather than MNT_WAIT. Otherwise, `df DIR' could
+ hang on OSF/1 5.1 for DIR on both local and remote file systems.
+ Reported by (and fix confirmed by) Nelson H. F. Beebe.
+
+2003-08-07 Jim Meyering <jim@meyering.net>
+
+ * regex.h (RE_SYNTAX_POSIX_AWK): Remove SPACE in SPACE-TAB sequence.
+
+2003-08-05 Paul Eggert <eggert@twinsun.com>
+
+ Merge getline from gnulib.
+ * getline.h, getline.c: Merge from gnulib.
+ * getndelim2.h, getndelim2.c: New files, from gnulib.
+ * getdelim2.c, getdelim2.h: Remove.
+ * Makefile.am (libfetish_a_SOURCES): Change getdelim2.c and
+ getdelim2.h to getndelim2.c and getndelim2.h.
+
+2003-08-04 Paul Eggert <eggert@twinsun.com>
+
+ * regex.c, regex.h: Sync with gnulib.
+
+2003-08-03 Paul Eggert <eggert@twinsun.com>
+
+ * stdbool_.h (_Bool): Use a #define, not a typedef.
+
+2003-07-31 Paul Eggert <eggert@twinsun.com>
+
+ * bumpalloc.h: Remove.
+ * Makefile.am (libfetish_a_SOURCES): Remove bumpalloc.h.
+
+2003-07-28 Jim Meyering <jim@meyering.net>
+
+ * stdbool_.h: Renamed from stdbool.hin.
+ * Makefile.am: Reflect renaming: stdbool.hin -> stdbool_.h.
+ * stdbool.hin: Remove file.
+
+2003-07-28 Paul Eggert <eggert@twinsun.com>
+
+ * stdbool.hin (_Bool): Make it signed char, instead of
+ an enum type, so that it's guaranteed to promote to int.
+
+2003-07-23 Jim Meyering <jim@meyering.net>
+
+ * xstrndup.h: New file.
+ * xstrndup.c: New file, factored out of dircolors.c from coreutils.
+ * Makefile.am (libfetish_a_SOURCES): Add xstrndup.c and xstrndup.h.
+
+2003-07-23 Jim Meyering <jim@meyering.net>
+
+ * lstat.c, save-cwd.c, stat.c, utime.c, xgethostname.c: Normalize
+ naming of Sun operating systems in comments, e.g., SunOS4 -> SunOS 4,
+ Solaris5.9 -> Solaris 9. From Paul Eggert.
+
+2003-07-22 Paul Eggert <eggert@twinsun.com>
+
+ * xalloc.h (XCALLOC, XREALLOC, CCLONE): Fix under- and
+ over-parenthesization in macros.
+
+2003-07-18 Paul Eggert <eggert@twinsun.com>
+
+ * closeout.h (close_stdout_set_status, close_stdout_status): Remove.
+ * closeout.c: Likewise. Include "closeout.h" right after config.h,
+ to test that it can stand by itself. Include "exitfail.h".
+ Clients should set exit_failure instead.
+ (EXIT_FAILURE): Remove; no longer needed. Do not include <stdlib.h>.
+
+2003-07-18 Andreas Schwab <schwab@suse.de>
+
+ * memcoll.c (memcoll) [!HAVE_STRCOLL]: Clear errno.
+
+2003-07-17 Paul Eggert <eggert@twinsun.com>
+
+ * xalloca.h, xmalloc.c, xmemcoll.c, xmemcoll.h:
+ Merge with gnulib. Use a single exit_failure variable rather
+ than a separate one for each module.
+
+2003-07-16 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (AM_CPPFLAGS): Rename from `INCLUDES', to avoid
+ warning from automake -Wall.
+
+2003-07-14 Jim Meyering <jim@meyering.net>
+
+ * save-cwd.h: Add copyright.
+
+2003-07-13 Jim Meyering <jim@meyering.net>
+
+ * xgethostname.c: Include <stdlib.h> for declaration of free.
+ (xgethostname): Return NULL, rather than exiting, upon any
+ non-malloc/realloc error.
+
+2003-07-12 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (BUILT_SOURCES): Use `BUILT_SOURCES += $(STDBOOL_H)'
+ rather than `all-local: $(STDBOOL_H)'. The latter didn't force
+ creation of stdbool.h before most other targets.
+ Likewise for $(ALLOCA_H).
+
+ Don't emit diagnostics. Let callers do that.
+ * save-cwd.c: Don't include "error.h".
+ (save_cwd): Don't call error. Ensure that errno is valid
+ when returning nonzero.
+
+ * obstack.h: Update from gnulib.
+
+ * makepath.c (make_path): Enclose diagnostic in _(...).
+
+2003-07-10 Jim Meyering <jim@meyering.net>
+
+ * userspec.c: Include "posixver.h".
+ (parse_user_spec): Accept `.' as a separator only
+ in pre-POSIX-200112 mode.
+
+ * Makefile.am (libfetish_a_SOURCES): Add these:
+ printf-args.h, printf-parse.h, vasprintf.h, vasnprintf.h.
+
+ Now that a program (`who') uses asprintf, we need all of these:
+ * asnprintf.c, asprintf.c, printf-args.c, printf-args.h, printf-parse.c:
+ * printf-parse.h, vasnprintf.c, vasnprintf.h, vasprintf.c, vasprintf.h:
+ New files, from gnulib.
+
+ * alloca_.h, getpass.c, memrchr.c, obstack.h, posixver.c,
+ strftime.c, strnlen.c, strverscmp.c: Switch from LGPL to GPL.
+
+2003-07-09 Jim Meyering <jim@meyering.net>
+
+ * mktime.c: Update from gnulib.
+ FIXME: but still need to adjust m4/mktime.c so that this fixed
+ version is used when needed.
+
+ Fix the bug that would make `du /' omit the `/' on the last line.
+ E.g., `du --exclude '[^/]*' -x /' would print only "4\t\n" for me.
+ * ftw.c (ftw_dir): Don't clobber the leading `/'.
+ Reported by Chris Lesniewski as http://bugs.debian.org/200542.
+
+2003-07-04 Jim Meyering <jim@meyering.net>
+
+ Update from gnulib.
+ * xreadlink.c: Include <sys/types.h> unconditionally, instead of
+ having it depend on HAVE_SYS_TYPES_H.
+
+2003-06-18 Jim Meyering <jim@meyering.net>
+
+ * inttostr.h (PARAMS): Remove. All uses removed.
+
+ Merge in change from gnulib.
+ * makepath.c: Remove block of alloca-related code in favor
+ of an unconditional `#include <alloca.h>'.
+
+ * xalloc.h: Include <stddef.h>.
+ Remove unnecessary parentheses.
+ Use `1990-2000' notation in Copyright line until Emacs'
+ copyright-update function learns how to handle a comma-separated
+ list of years that spans a line boundary.
+
+ * Makefile.am (libfetish_a_SOURCES): Add getdelim2.c and getdelim2.h.
+
+ * getline.c (getdelim2): Move this function into its own file.
+ * getdelim2.c: Extracted from getline.c.
+
+ * linebuffer.c, linebuffer.h: Update from gnulib.
+
+ * getdelim2.c, getdelim2.h: New files.
+ * getstr.c, getstr.h: Remove files.
+
+ * same.h: Update from gnulib.
+ * xstrtol.h: Update from gnulib.
+
+2003-06-17 Paul Eggert <eggert@twinsun.com>
+
+ Assume C89, so PARAMS isn't needed.
+ * backupfile.h (PARAMS): Remove. All uses removed.
+ * closeout.h, dirname.h, filemode.h, fsusage.h, getdate.h, getline.h,
+ group-member.h, hard-locale.h, hash.h, linebuffer.h, long-options.h,
+ makepath.h, memcasecmp.h, memcoll.h, modechange.h, mountlist.h,
+ path-concat.h, physmem.h, posixtm.h, quote.h, readutmp.h, same.h,
+ save-cwd.h, savedir.h, stdio-safer.h, strtoimax.c, strverscmp.h,
+ unistd-safer.h, version-etc.h, xalloc.h, xreadlink.h, xstrtod.h,
+ xstrtol.h: Likewise.
+ * filemode.h, hard-locale.h, memcoll.h, modechange.h, physmem.h, same.h,
+ * strverscmp.h: Do not include config.h; no longer needed.
+ Anyway, config.h should always be included before any other file.
+
+2003-06-17 Jim Meyering <jim@meyering.net>
+
+ * getline.c: Update from gnulib.
+
+ Merge in changes from gnulib.
+ * hash.c: Include <stdbool.h> unconditionally.
+ Include <limits.h>.
+ (CHAR_BIT): Don't define.
+
+2003-06-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * acl.c: Include <sys/types.h> before <sys/stat.h>.
+ Required on Ultrix 4.3.
+
+2003-05-20 Derek Price <derek@ximbiot.com>
+
+ * stat.c [LSTAT]: Compile/use slash_aware_lstat only if it is necessary.
+
+2003-06-10 Jim Meyering <jim@meyering.net>
+
+ * getdate.y: Also accept dates of the form May-23-2003.
+ Suggestion from Karl Berry.
+
+2003-06-09 Jim Meyering <jim@meyering.net>
+
+ * gettimeofday.c: Also undefine gmtime.
+ (rpl_gmtime): New function. Suggestion from Paul Eggert.
+
+2003-06-08 Jim Meyering <jim@meyering.net>
+
+ * getline.h: Update from gnulib.
+
+ Clean up, as part of merge with emacs version of strftime.c.
+ * strftime.c (my_strftime) [!_LIBC && HAVE_TZNAME && HAVE_TZSET]:
+ Remove function, now that we can rely on a working tzset function.
+ [!_LIBC]: Ensure that the required autoconf test has been run.
+ * gettimeofday.c: Also undef tzset.
+ (rpl_tzset): New function, for use by new macro, gl_FUNC_TZSET_CLOBBER.
+
+2003-06-07 Jim Meyering <jim@meyering.net>
+
+ * readtokens.h: Add copyright notice.
+ Include <stdio.h>.
+ Remove definition and uses of __P.
+
+ * readtokens.c: Put `Free Software Foundation, Inc.' in place of
+ my name in the copyright comment.
+ (init_tokenbuffer): Remove unnecessary parentheses around malloc.
+
+ Update from gnulib.
+ * getdate.y: Include alloca.h unconditionally.
+ * xmemcoll.h: Include <stddef.h>.
+
+ * Makefile.am (MOSTLYCLEANFILES): Add alloca.h and alloca.ht.
+ (MOSTLYCLEANFILES): Add stdbool.ht.
+
+ * human.c: Include <stdio.h>, once again, for declaration of sprintf.
+
+ Update from gnulib.
+ * tempname.c: Include <stddef.h> unconditionally.
+ Include <inttypes.h> as an alternative to <stdint.h>.
+ * strtoimax.c: Include <stdint.h> as an alternative to <inttypes.h>.
+ * xstrtol.h: Likewise.
+ * xstrtoimax.c: Likewise.
+ * xstrtoumax.c: Likewise.
+
+ Update from gnulib.
+ * strcasecmp.c: Include <stddef.h>, not <sys/types.h>.
+ * savedir.c: Include <stddef.h>.
+ (NULL): Don't define, since <stddef.h> does that.
+
+2003-06-06 Jim Meyering <jim@meyering.net>
+
+ Update from gnulib.
+ * rpmatch.c: Include <limits.h> without checking for HAVE_LIMITS_H.
+ Include <stddefs.h> unconditionally.
+ (NULL): Don't define, since <stddef.h> does that.
+ * rename.c: #undef rename before defining rpl_rename.
+ [HAVE_CONFIG_H]: Guard inclusion of config.h.
+ * putenv.c: Include <stddef.h> rather than <sys/types.h>,
+ as we merely need size_t.
+ * realloc.c: Likewise.
+ * quote.c: Don't include <stddef.h> or <sys/types.h>; not needed.
+ * modechange.c: Include <stddef.h>.
+ (NULL): Don't define, since <stddef.h> does that.
+ * memcoll.h: Include <stddef.h>, to get size_t.
+ * memcoll.c: Include "memcoll.h", which gets us size_t and checks
+ our interface, instead of including <sys/types.h>
+ (memcoll): Fall back on a simple algorithm using
+ memcmp if strcoll doesn't work.
+ * memcasecmp.h: Include <stddef.h>.
+ * memcasecmp.c: Don't include <sys/types.h>.
+
+ From gnulib.
+ * alloca_.h: New file.
+ * Makefile.am (EXTRA_DIST): Add alloca_.h.
+ (all-local $(lib_OBJECTS)): Depend on $(ALLOCA_H).
+ (alloca.h): New rule.
+
+ * addext.c: Update from gnulib.
+ * backupfile.c: Likewise.
+ * config.charset: Likewise.
+ * dirname.h: Likewise.
+ * fsusage.c: Likewise.
+ * userspec.c: Likewise.
+ * xreadlink.c: Likewise.
+ * xstrtol.c: Likewise.
+ * __fpending.h: Likewise.
+
+ * md5.c: Include <string.h> and <stdlib.h> unconditionally.
+ (memcpy): Remove definition.
+
+ * posixtm.c: Include <stdbool.h> unconditionally.
+
+2003-06-05 Jim Meyering <jim@meyering.net>
+
+ From gnulib.
+ * mktime.c: Assume freestanding C89 or better.
+ (HAVE_LIMITS_H): Remove. Assume it's 1.
+ (__P): Remove; not used.
+ (CHAR_BIT, INT_MIN, INT_MAX): Remove; <limits.h> defines them.
+ (mktime, not_equal_tm, print_tm, check_result,
+ main): Use prototypes. Use const * where appropriate.
+ (main): Fix typo in testing code that uncovered by above changes.
+ (Local Variables): Remove -DHAVE_LIMITS_H from compile-command.
+
+2003-06-04 Paul Eggert <eggert@twinsun.com>
+
+ Merge human.c etc. from gnulib.
+ * exclude.c, human.c, human.h: Merge from gnulib.
+ * cycle-check.c, cycle-check.h, src/system.h:
+ Include <stdbool.h> unconditionally.
+
+2003-06-02 Jim Meyering <jim@meyering.net>
+
+ * stdbool.hin: New file. From gnulib.
+ * Makefile.am (MOSTLYCLEANFILES): Initialize.
+ (stdbool.h): New rule.
+ (all-local $(lib_OBJECTS)): Depend on $(STDBOOL_H)
+ (MOSTLYCLEANFILES): Add stdbool.h.
+ (EXTRA_DIST): Add stdbool.h.
+
+2003-05-30 Jim Meyering <jim@meyering.net>
+
+ * addext.c: Update from gnulib.
+ * mktime.c: Likewise.
+
+2003-05-29 Jim Meyering <jim@meyering.net>
+
+ Make the %r format directive honor any locale setting.
+ * strftime.c: (my_strftime) [!defined _NL_CURRENT && HAVE_STRFTIME]:
+ Use underlying_strftime for %r.
+
+2003-05-15 Jim Meyering <jim@meyering.net>
+
+ * getopt.h: Remove a space before a TAB.
+
+2003-05-13 Jim Meyering <jim@meyering.net>
+
+ * setenv.c (setenv): Don't apply cast to argument of free.
+ * putenv.c (rpl_putenv): Likewise.
+ * alloca.c (alloca): Likewise.
+
+2003-05-12 Jim Meyering <jim@meyering.net>
+
+ * ftw.c (ftw_startup): Always call free_cwd after restore_cwd.
+ Reported by Matti Aarnio as
+ https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=90563.
+ Forwarded by Tim Waugh.
+
+ * strftime.c (my_strftime): Let the `-' (no-pad) flag affect
+ the space-padded-by-default conversion specifiers, %e, %k, %l.
+
+2003-05-07 Paul Eggert <eggert@twinsun.com>
+
+ * xnanosleep.c (timespec_subtract): Don't modify the 2nd arg.
+ Work even if X-Y overflows when subtracting. Make explicit the
+ assumption that tv_nsec must be in range.
+ (clock_get_realtime): Remove. All callers changed to invoke gettime,
+ for simplicity.
+ (xnanosleep): Check for gettime failure every time.
+
+2003-05-06 Jim Meyering <jim@meyering.net>
+
+ * xnanosleep.c (clock_get_realtime): Use gettime.c's gettime function,
+ rather than an inferior, open-coded version that would fail on
+ AIX systems due to clock_gettime failing with errno == ENOSYS.
+ Reported by Jérôme Zago.
+
+2003-05-05 Jim Meyering <jim@meyering.net>
+
+ Avoid array overrun.
+ * ftw.c (nftw_arr): Update to reflect complete list of members.
+ (ftw_arr): Likewise
+ Reported by Olatunji Oluwabukunmi Ruwase.
+
+ Make it less likely that the above can happen again.
+ * ftw.c (struct dummy): Ensure that at least the number of
+ initializers matches the number of members in the corresponding enum.
+ * ftw_.h (enum Ftw_option): Name this previously-anonymous enum.
+ (enum Ftw_option) [FTW_N_MEMBERS]: New member.
+
+2003-05-04 Jim Meyering <jim@meyering.net>
+
+ * setenv.c (__set_errno, LOCK, UNLOCK): Define.
+ (unsetenv): Update from GNU libc.
+ Ifdef-out this function, since the only caller
+ is putenv.c and that file now has its own copy.
+
+ This avoids a core dump on systems without GNU putenv,
+ when running `env -u SOME_ALREADY_UNSET_VARIABLE'.
+ * putenv.c (__set_errno, LOCK, UNLOCK): Define.
+ (unsetenv): New static function, from GNU libc.
+ (rpl_putenv): Use it.
+
+2003-05-02 Jim Meyering <jim@meyering.net>
+
+ * canonicalize.c (canonicalize_file_name) [!HAVE_RESOLVEPATH]:
+ A memory-allocation error could result in heap corruption. Fix it
+ by also updating `dest' when rpath may be changed by xrealloc.
+
+2003-04-15 Jim Meyering <jim@meyering.net>
+
+ * getloadavg.c: Remove (or replace-with-TAB(s) to retain alignment)
+ each sequence of spaces before a TAB character.
+ * md5.c, getopt.c, getopt.h, obstack.h, strftime.c: Likewise.
+
+2003-04-11 Jim Meyering <jim@meyering.net>
+
+ * readutmp.c: Include <string.h> and <stdlib.h> unconditionally.
+
+ * canonicalize.c, exclude.c, getgroups.c, getusershell.c:
+ * group-member.c, idcache.c, mountlist.c, readtokens.c, readutmp.c:
+ * bumpalloc.h: Remove anachronistic casts of xmalloc, xrealloc,
+ and xcalloc return values.
+
+ * xalloc.h (PARAMS): Remove definitions and uses.
+ (XMALLOC, XCALLOC, XREALLOC): Remove unnecessary casts.
+
+ * xmalloc.c: Remove use of PARAMS.
+
+2003-04-10 Jim Meyering <jim@meyering.net>
+
+ * canonicalize.c (canonicalize_file_name) [HAVE_RESOLVEPATH]: Remove
+ stray semicolon that caused `readlink --canonical RELATIVE_NAME' to
+ fail on e.g., Solaris systems. Reported by Bruce Korb.
+ (canonicalize_file_name): Return NULL immediately if resolvepath fails.
+ Otherwise, `readlink --canonical /no-such-file' would exhaust
+ virtual memory on some systems (e.g. Solaris).
+ (canonicalize_file_name): Always free `extra_buf' before returning.
+ (canonicalize_file_name): NUL-terminate the result.
+
+2003-04-05 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (DEFS): Use += notation rather than `DEFS = ... @DEFS@'.
+ Use $(VAR) rather than @VAR@, now that we can rely on automake to
+ emit a definition for each substituted variable.
+
+2003-03-26 Richard Dawe <rich@phekda.freeserve.co.uk>
+
+ * dirname.c [TEST_DIRNAME]: Update build instructions for test.
+ Add test-cases for DOS filenames. Declare program_name.
+ (main): Set up program_name.
+
+2003-03-22 Jim Meyering <jim@meyering.net>
+
+ * strftime.c (widen): Cast alloca return value to proper type.
+
+ * fnmatch_loop.c
+ (NEW_PATTERN): Cast alloca return value to proper type.
+ Otherwise, it wouldn't compile with at least /bin/cc on
+ ymp-cray-unicos9.0.2.X.
+ Combine two mostly-identical uses of alloca into one.
+ Thanks to the Cray-Cyber project for access to a Cray Y-MP.
+
+2003-03-19 Jim Meyering <jim@meyering.net>
+
+ DJGPP doesn't have S_ISLNK, so provide a replacement.
+ * ftw.c (S_IFMT): Define, if necessary.
+ [STAT_MACROS_BROKEN]: Undefine S_ISLNK.
+ (S_ISLNK): Define, if necessary.
+ Based on a patch from Rich Dawe.
+
+ * exclude.h (PARAMS): Remove definition and uses.
+ * exclude.c: Remove uses of `PARAMS'.
+
+ * fnmatch_.h: Don't define __const.
+ (fnmatch): Use const, not __const in prototype.
+ From Paul Eggert.
+
+2003-03-17 Richard Dawe <rich@phekda.freeserve.co.uk>
+
+ * fchdir-stub.c: New file: trivial stub for fchdir.
+
+2003-03-18 Jim Meyering <jim@meyering.net>
+
+ * mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Detect any
+ error from mntctl.
+ Use mntctl's return value to drive the entry-processing loop, since
+ we can't rely on the value of the vmt_length member in the last
+ entry. On some systems doing so could result in exhausting
+ virtual memory. Based in part on a patch from Mike Jetzer.
+
+ * quote.c (quote_n): Fix typo in comment.
+
+2003-03-17 Jim Meyering <jim@meyering.net>
+
+ * raise.c (raise): Rename from rpl_raise.
+ Without that change, systems lacking raise (SunOS 4) would not be
+ able to link programs using raise. Reported by Volker Borchert.
+
+ * ftw.c (FTW_STAT): Rename from `STAT', to avoid conflict
+ with STAT definition from <sys/dir.h> on AIX 5.1.
+ Suggestion from Mike Jetzer and Petter Reinholdtsen.
+
+ * fchown-stub.c (fchown): Put function type on its own line.
+ * readlink-stub.c (readlink): Likewise.
+ * lstat-stub.c (lstat): Likewise.
+
+2003-03-14 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (AUTOMAKE_OPTIONS): Remove definition --
+ before it pointed to ../src/ansi2knr. Some of these files
+ have required an ANSI (c89) compiler for a year or two.
+ (libfetish_a_SOURCES): Remove unused files: c-stack.c, c-stack.h.
+
+2003-02-04 Dmitry V. Levin <ldv@altlinux.org>
+
+ * stat.c: Include "xalloc.h".
+
+2003-03-13 Paul Eggert <eggert@twinsun.com>
+
+ Merge changes from Bison.
+ * obstack.h: (__INT_TO_PTR) [__STDC__]: Cast result to
+ (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
+ when compiling Bison 1.875's `bitset bset = obstack_alloc
+ (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
+
+2003-01-30 Richard Dawe <rich@phekda.freeserve.co.uk>
+
+ * fchown-stub.c: New file: trivial stub for fchown.
+ * lstat-stub.c: New file: trivial stub for lstat.
+ * readlink-stub.c: New file: trivial stub for readlink.
+
+2003-03-09 Paul Eggert <eggert@twinsun.com>
+
+ * argmatch.c (EXIT_FAILURE): Define if the system doesn't.
+ Reported by Bruce Becker; see:
+ http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00017.html
+
+2003-03-03 Paul Eggert <eggert@twinsun.com>
+ Bruno Haible <bruno@clisp.org>
+
+ * mbswidth.h: Include <wchar.h>. Needed for UnixWare 7.1.1.
+ Reported by John Hughes, see
+ http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00030.html
+
+2003-03-09 Jim Meyering <jim@meyering.net>
+
+ * ftw.c: Include "save-cwd.h".
+ (ftw_startup): Avoid use of getcwd, if possible.
+ Instead, use fopen/fchdir via save_cwd/restore_cwd.
+
+2003-03-08 Jim Meyering <jim@meyering.net>
+
+ * xnanosleep.c: Don't use `defined' in a #define directive.
+
+2003-03-07 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (libfetish_a_SOURCES): Remove mmap-stack.h.
+
+ * mmap-stack.c, mmap-stack.h: Remove files.
+
+ * getcwd.c: #undef getcwd only after *all* included header files.
+ Declare getcwd unconditionally. The problem was that same.h
+ included config.h, and that defined getcwd to rpl_getcwd a second
+ time (after the original #undef), and led to the rpl_getcwd
+ function calling itself endlessly. This was the cause of at least
+ the `du' test failures on IRIX 6.5, reported by Nelson Beebe.
+
+ * same.h (same_name): Remove unnecessary inclusion of config.h.
+ It also happened to lead to infinite recursion in getcwd.c.
+ (PARAMS): Remove definition and use.
+
+2003-03-06 Jim Meyering <jim@meyering.net>
+
+ * ftw.c (ftw_startup): Declare `func' parameter to be of type
+ NFTW_FUNC_T, not void* which may be smaller on 64-bit systems.
+ Remove now-unnecessary cast.
+ (FTW_NAME): Cast func argument to type `NFTW_FUNC_T'.
+
+2003-03-05 Jim Meyering <jim@meyering.net>
+
+ * physmem.c (ARRAY_SIZE): Define it.
+
+2003-03-04 Jim Meyering <jim@meyering.net>
+
+ * makepath.c (CLEANUP_CWD): Call error here, now that restore_cwd
+ no longer does it.
+
+ * save-cwd.h (restore_cwd): Update prototype.
+ * save-cwd.c (restore_cwd): Remove two parameters.
+ Simplify. Don't call error upon failure. Let callers do that.
+ (save_cwd): Mention that Irix 5.3 has the same problem as SunOS 4
+ when auditing is enabled. But don't bother updating the #if.
+
+ * xgetcwd.c (xgetcwd): Improve comment.
+
+ * getcwd.c: New file.
+
+2003-02-28 Jim Meyering <jim@meyering.net>
+
+ * ftw.c (ftw_startup): Return -1 if alloca fails.
+
+2003-02-28 Jim Meyering <jim@meyering.net>
+
+ * fts.c (fts_children): If opening `.' fails, set the fts_child
+ member to NULL before returning. From NetBSD.
+
+ * fts.c (fts_children): If fchdir fails, close file descriptor
+ before returning. From NetBSD.
+
+2003-02-27 Jim Meyering <jim@meyering.net>
+
+ * physmem.c (physmem_total, physmem_available): Add comments.
+ From Kaveh Ghazi.
+
+ * physmem.c: Merge in portability changes from gcc/libiberty
+ to support AIX, Tru64, and Windows. See the ChangeLog there
+ for credits and details. Thanks to Kaveh Ghazi for helping
+ to keep these files in sync.
+
+2003-02-24 Jim Meyering <jim@meyering.net>
+
+ * fts_.h [__USE_FILE_OFFSET64]: Remove #error directive.
+
+ (fts_open): Initialize local, tmp, to pacify gcc.
+
+ * fts_.h [struct FTS] (fts_dir_signatures): New, opaque member.
+ * fts.c: Include <search.h>.
+ (struct known_object): Define.
+ (object_compare, add_object, find_object): New functions, like
+ those in ftw.c.
+ (fts_open): Initialize new member.
+ (fts_close): Free memory allocated for new member.
+ (fts_stat): Detect a cycle in O(logN) time per directory processed.
+
+ * fts.c [HAVE_CONFIG_H]: Include <config.h>.
+ Conditionalize inclusion of <sys/param.h>.
+ Conditionalize inclusion of <include/sys/stat.h> vs <sys/stat.h>.
+ Include autoconf-recommended block of dirent/NAMELEN-related
+ definitions and includes. Use NAMLEN throughout, rather than
+ _D_EXACT_NAMLEN.
+ [_LIBC] (close, closedir, fchdir, open, opendir): Define.
+ [_LIBC] (readdir, tdestroy, tfind, tsearch): Define.
+ Remove `__' prefix from all uses of the above. This will help
+ to merge *BSD changes.
+ [!_LIBC] (internal_function): Define.
+ [! _LIBC && ! LSTAT_FOLLOWS_SLASHED_SYMLINK]: Define lstat.
+ (__set_errno): Define if not already defined.
+
+ * fts.c: (fts_open): If fts_alloc returns NULL, don't dereference it.
+ (fts_read): If fts_safe_changedir fails because it is not
+ able to chdir into a subdirectory, then inform the caller.
+
+ * fts.c, fts_.h: New files, directly from glibc.
+
+2003-02-23 Jim Meyering <jim@meyering.net>
+
+ * fts_.h (struct _ftsent) [fts_level]: Change type from short to int,
+ so it can handle a root-relative file name longer than 32K bytes.
+ [fts_pathlen, fts_namelen]: Rearrange members to decrease size of
+ this struct from 84 to 80 bytes.
+
+2003-02-21 Jim Meyering <jim@meyering.net>
+
+ * mmap-stack.h: Undefine HAVE_MMAP_STACK, thus disabling
+ this code on all systems.
+
+ Merge in some changes from GNU libc.
+ * md5.h (md5_uintptr): Define.
+
+ * ftw.c: Include <sys/types.h> before <dirent.h>.
+ This is required for Apple Darwin 6.3 (MacOS 10.2.3).
+ Patch by Nelson Beebe.
+
+2003-02-19 Jim Meyering <jim@meyering.net>
+
+ * md5.c: Merge in some clean-up and optimization changes from glibc.
+ * sha.c: Apply those same changes here, too.
+
+2003-02-18 Jim Meyering <jim@meyering.net>
+
+ * md5.c (md5_stream) [BLOCKSIZE]: Move definition to top of file.
+ Ensure that it is a multiple of 64.
+ Rearrange loop exit tests so as to avoid performing an
+ additional fread after encountering an error or EOF.
+ * sha.c (sha_stream): Likewise.
+ Reported by Michael Bacarella.
+
+ * Makefile.am (CLEANFILES): Remove ftw.h and search.h.
+ (DISTCLEANFILES): Add them here.
+ Add fnmatch.h, too.
+
+ * sha.c (sha_stream): Rearrange loop exit tests so as to avoid
+ performing an additional fread after encountering an error or EOF.
+
+2003-02-17 Jim Meyering <jim@meyering.net>
+
+ * mmap-stack.h (RUN_WITH_BIG_STACK_4): Define.
+
+ * physmem.c: Undo most of last change.
+ Use sysmp instead, since it provides a cleaner interface.
+ From Kaveh Ghazi.
+
+2003-02-16 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (libfetish_a_SOURCES): Add mmap-stack.h.
+
+ * mmap-stack.c (MAP_ANONYMOUS): Use MAP_ANON, if possible.
+ Initialize `fd' to -1, so Solaris' mmap works with MAP_ANON.
+
+2003-02-15 Jim Meyering <jim@meyering.net>
+
+ * mmap-stack.c, mmap-stack.h: New files.
+ Let the caller run a function with a larger (mmap'd) stack.
+
+ Add Irix6 support to physmem.c.
+ * physmem.c (irix_sysget): New function.
+ (IRIX_SYSGET_TOTAL, IRIX_SYSGET_AVAILABLE): New macros.
+ (physmem_total, physmem_available): Use them.
+ (main) [DEBUG]: New function.
+
+2003-02-11 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (libfetish_a_SOURCES): Add euidaccess.h.
+ * euidaccess.c: Include "euidaccess.h".
+ * euidaccess.h: New file.
+
+2003-02-08 Jim Meyering <jim@meyering.net>
+
+ * ftw.c (ftw_startup): Don't shadow outer declaration of save_err.
+ Merge inconsequential changes from libc.
+
+ * ftw.c (ftw_startup): When using FTW_CHDIR, always remember
+ the current directory, not just when DIR contains a slash.
+ Reported by Manoj Srivastava via Michael Stone as Debian bug #180228.
+
+2003-02-07 Jim Meyering <jim@meyering.net>
+
+ Merge inconsequential changes from libc.
+ * ftw.c: Include limits.h earlier.
+ Move PATH_MAX definition `down' a little; add comment.
+ Rename local, saved_errno to save_err.
+
+2003-02-06 Jim Meyering <jim@meyering.net>
+
+ Support for pruning.
+ * ftw_.h (FTW_DPRE) [enum]: New member and definition.
+ (struct FTW) [skip]: New member.
+
+ * search_.h (__restrict): Define to `restrict' or to nothing.
+
+ * fsusage.c: Remove declaration of statfs.
+ It conflicted with one from OSF/1 5.1 in <sys/mount.h>.
+ Reported by Nelson Beebe.
+
+2003-02-05 Jim Meyering <jim@meyering.net>
+
+ Fix a heap-corruption bug that affected Solaris systems.
+ * ftw.c: Include <limits.h>.
+ (PATH_MAX): Define to 1024, if not already defined.
+ (process_entry): Allocate enough space to hold the resulting
+ file name. Don't presume that 2*dirbufsize is enough.
+ (ftw_startup): Always use PATH_MAX to compute buffer size, now that
+ it is guaranteed to be defined.
+ Nelson Beebe reported that du would sometimes segfault on Solaris.
+
+ * ftw.c (process_entry): When using FTW_DEPTH, call `func', the
+ user-supplied callback, once for the current directory before calling
+ ftw_dir, in case that part of the hierarchy should be pruned.
+ `func' does that by setting `data->skip'.
+ (ftw_startup): Likewise.
+
+2003-02-02 Jim Meyering <jim@meyering.net>
+
+ * ftw.c (lstat) [!_LIBC && !LSTAT_FOLLOWS_SLASHED_SYMLINK]:
+ Define to rpl_lstat.
+
+2003-01-25 Jim Meyering <jim@meyering.net>
+
+ * ftw.c (ISSLASH, FILESYSTEM_PREFIX_LEN) [_LIBC]: Define.
+ (base_name): New function.
+ (ftw_startup): Don't strip trailing slashes.
+ Use base_name to find the offset of the basename.
+
+2003-01-25 Jim Meyering <jim@meyering.net>
+
+ * ftw.c (object_compare): Compare inode numbers before device numbers.
+ The former is much more likely to differ for any two given file objects.
+
+2003-01-23 Jim Meyering <jim@meyering.net>
+
+ * tsearch.c [HAVE_CONFIG_H]: Include <config.h>.
+ Add autoconf-recommended block of alloca-related code.
+ Cast each use of alloca to the required type, (node**).
+
+ * ftw.c: Add autoconf-recommended block of alloca-related code.
+ [!_LIBC] (__getcwd): Define to xgetcwd and declare xgetcwd.
+
+2003-01-22 Jim Meyering <jim@meyering.net>
+
+ * ftw.c (find_object): Don't use c99-style struct initializer.
+
+ * ftw_.h: Change all uses of __const to const.
+ * search_.h: Likewise.
+
+ * Makefile.am (CLEANFILES): Add generated files: ftw.h search.h.
+
+ * ftw.c (process_entry): Handle FTW_DCHP.
+ (ftw_dir): Handle FTW_DCH.
+
+ * ftw_.h [!_LIBC && !__USE_XOPEN_EXTENDED]: Define __USE_XOPEN_EXTENDED
+ and FTW_H_STANDALONE.
+ [anon enum] (FTW_DCH, FTW_DCHP): New members.
+ (FTW_DCH, FTW_DCHP): Define.
+
+ * ftw.c: Include autoconf-recommended block of dirent/NAMELEN
+ related definitions and includes. Use NAMELEN throughout,
+ rather than _D_EXACT_NAMLEN.
+ [_LIBC]: Define NAMELEN to _D_EXACT_NAMLEN.
+ (stpcpy): Declare, if necessary.
+ (mempcpy): Define, if necessary.
+ [!_LIBC] (__stpcpy, __mempcpy): Define.
+ [!_LIBC] (LXSTAT, XSTAT): Define.
+
+2003-01-21 Jim Meyering <jim@meyering.net>
+
+ * tsearch.c: New file, from GNU libc.
+ [! weak_alias]: Define __-prefixed names to publicized ones.
+ [! defined _LIBC] (weak_alias, internal_function): Define-away.
+ [defined weak_alias]: Guard each use of weak_alias.
+
+2003-01-20 Jim Meyering <jim@meyering.net>
+
+ * canonicalize.c: Include "path-concat.h".
+
+ * search_.h: New file, from GNU libc.
+
+ * Makefile.am (libfetish_a_SOURCES): Use ftw_.h here, too.
+ (libfetish_a_SOURCES): Add search_.h.
+ * ftw_.h: Rename from ftw.h.
+
+ * obstack.h (obstack_object_size): Declare temporary, __o,
+ to be const, in order to avoid warnings.
+ (obstack_room): Likewise.
+ (obstack_empty_p): Likewise.
+
+ Merge in changes from GNU libc
+ * error.c: Eliminate many `#ifdef USE_IN_LIBIO' conditionals.
+
+2003-01-19 Ulrich Drepper <drepper@redhat.com>
+
+ From GNU libc.
+ * strftime.c (my_strftime): Handle very large width
+ specifications for numeric values correctly. Improve checks for
+ overflow.
+
+2003-01-19 Jim Meyering <jim@meyering.net>
+
+ * strftime.c (widen) [COMPILE_WIDE]: Merge nearly-identical definitions.
+ (nl_get_alt_digit) [! defined my_strftime]: Define.
+ (my_strftime) [_NL_CURRENT]: Merge nearly-identical uses of
+ _nl_get_alt_digit and _nl_get_walt_digit.
+
+ * strftime.c (my_strftime): Merge in locale-related changes from libc.
+ These changes have no effect outside of _LIBC.
+
+2003-01-14 Jim Meyering <jim@meyering.net>
+
+ * same.c (same_name): Declare *_basename locals to be `const'.
+ Consolidate declarations and initializations of *_base* locals.
+
+2003-01-11 Bruno Haible <bruno@clisp.org>
+
+ * same.c (same_name): Reorder tests so as to avoid calling stat()
+ when a string comparison is sufficient.
+
+2003-01-11 Bruno Haible <bruno@clisp.org>
+
+ * readtokens.c (readtoken): Cast character to 'unsigned char', not
+ 'unsigned int'.
+
+2003-01-14 Jim Meyering <jim@meyering.net>
+
+ * ftw.c: Merge in Ulrich's and my changes from libc.
+
+2003-01-12 Jim Meyering <jim@meyering.net>
+
+ * ftw.c (ftw_startup): Rename local-shadowing local to pacify gcc.
+ Also work on systems that have `struct direct', using autoconf's
+ AC_HEADER_DIRENT.
+ Tweak comments.
+
+ * ftw.h, ftw.c: New files, from glibc/io.
+
+ * Makefile.am (libfetish_a_SOURCES): Add ftw.h.
+
+2003-01-11 Jim Meyering <jim@meyering.net>
+
+ * makepath.c: Don't test HAVE_ERRNO_H. It's not necessary.
+
+ * canonicalize.c: Don't test HAVE_ERRNO_H. It's not necessary.
+ Don't test HAVE_STDDEF_H. It's not necessary.
+ Use definition of PTR_INT_TYPE from obstack.h.
+
+2002-12-01 Dmitry V. Levin <ldv@altlinux.org>
+
+ * canonicalize.c: New file.
+ The readlink-based implementation imported from GNU C Library.
+ The resolveip-based implementation imported from src/df.c (show_point).
+ * canonicalize.h: New file.
+ * Makefile.am (libfetish_a_SOURCES): Add canonicalize.h.
+
+2003-01-10 Jim Meyering <jim@meyering.net>
+
+ * save-cwd.h: Remove uses of PARAMS.
+
+2002-11-30 Dmitry V. Levin <ldv@altlinux.org>
+
+ * xgetcwd.h: New file.
+ * Makefile.am (libfetish_a_SOURCES): Add xgetcwd.h.
+ * save-cwd.c: Include "xgetcwd.h".
+ * xgetcwd.c: Likewise.
+
+2002-11-30 Dmitry V. Levin <ldv@altlinux.org>
+
+ * getgroups.c: Don't declare functions declared by xalloc.h.
+ Include "xalloc.h" instead.
+ * group-member.c: Likewise.
+ * idcache.c: Likewise.
+ * readutmp.c: Likewise.
+
+2003-01-08 Jim Meyering <jim@meyering.net>
+
+ * full-write.c: Undefine and define-away `const' after inclusion
+ of errno.h, not before. Suggestion from Bruno Haible.
+
+2003-01-06 Jim Meyering <jim@meyering.net>
+
+ * full-write.c: Rework so that it may serve to define full_read, too.
+ * full-read.c: Simply #define FULL_READ and include full-write.c.
+
+ * Makefile.am (libfetish_a_SOURCES): Add full-read.c and full-read.h.
+ * full-read.c, full-read.h: New files.
+
+ Update from gnulib.
+
+ 2002-12-10 Paul Eggert <eggert@twinsun.com>
+ Port exclude.c and exclude.h to more non-GNU systems, e.g. Solaris 7.
+ * exclude.h (EXCLUDE_ANCHORED, EXCLUDE_INCLUDE, EXCLUDE_WILDCARDS):
+ Choose values that are less likely to collide with system fnmatch
+ options.
+ * exclude.c (FNM_CASEFOLD, FNM_LEADING_DIR): Define to 0 if not
+ defined (e.g., a pure POSIX system).
+ (EXCLUDE_macros_do_not_collide_with_FNM_macros): Use FNM_PATHNAME
+ instead of FNM_FILE_NAME, for compatibility with pure POSIX systems.
+
+ Update from gnulib.
+
+ * utime.c (utime_null): Use SAFE_READ_ERROR.
+ (utime_null): No need to call ftruncate if the file was nonempty.
+ * getdate.y (get_date): Test HAVE_STRUCT_TM_TM_ZONE, not HAVE_TM_ZONE.
+ * canon-host.c (strdup): Remove unused declaration.
+ * fsusage.c: Include full_read.h.
+ (get_fs_usage): Use full_read instead of safe_read.
+ Patches by Bruno Haible.
+
+2003-01-04 Jim Meyering <jim@meyering.net>
+
+ * version-etc.c: Update copyright date.
+
+2002-12-31 Jim Meyering <meyering@lucent.com>
+
+ * dev-ino.h: New file.
+ * cycle-check.c: New file.
+ * cycle-check.h: New file.
+ * Makefile.am (libfetish_a_SOURCES): Add cycle-check.c, cycle-check.h,
+ and dev-ino.h.
+
+2002-12-21 Jim Meyering <jim@meyering.net>
+
+ * stime.c: Remove file (for real, this time).
+
+2002-12-15 Jim Meyering <jim@meyering.net>
+
+ * strftime.h: New file, for declaration of nstrftime.
+ * Makefile.am (libfetish_a_SOURCES): Add strftime.h.
+
+2002-12-09 Jim Meyering <jim@meyering.net>
+
+ * unlocked-io.h: Sync from gnulib.
+
+2002-12-06 Jim Meyering <jim@meyering.net>
+
+ * unlocked-io.h: New file, but with proper copyright notice and
+ attribution. Note: this is *not* the same as the file in gnulib.
+ This uses #if HAVE_FUNC_UNLOCKED for each `FUNC', rather than
+ HAVE_DECL_FUNC_UNLOCKED. This usage is consistent with the autoconf
+ macro in ../m4/jm-glibc-io.m4. Modulo comments, this file still
+ contains exactly what was generated by gen-uio.
+
+2002-12-04 Paul Eggert <eggert@twinsun.com>
+
+ Do not generate unlocked-io.h automatically, since it's easier to
+ maintain it by hand.
+
+ * gen-uio: Remove.
+ * Makefile.am: Add copyright notice.
+ (libfetish_a_SOURCES): Add unlocked-io.h.
+ (BUILT_SOURCES, all-local): Remove unlocked-io.h.
+ (DISTCLEANFILES, io_functions): Remove macros.
+ (EXTRA_DIST): Remove gen_uio.
+ (unlocked-io.h): Remove rule.
+
+2002-12-05 Paul Eggert <eggert@twinsun.com>
+
+ * alloca.c [defined emacs]: Include "lisp.h".
+ (xalloc_die) [defined emacs]: New macro.
+ (free) [defined emacs && defined EMACS_FREE]: Define to EMACS_FREE.
+ [! defined emacs]: Include <xalloc.h>.
+ (POINTER_TYPE) [!defined POINTER_TYPE]: New macro.
+ (pointer): Typedef to POINTER_TYPE *.
+ (malloc): Remove decl; we now always use xmalloc.
+ (alloca): Use old-style definition, since Emacs needs this.
+ Check for arithmetic overflow when computing combined size.
+
+2002-12-04 Jim Meyering <jim@meyering.net>
+
+ Reflect the fact that stat.c and lstat.c are no longer generated.
+ * Makefile.am (BUILT_SOURCES): Remove stat.c and lstat.c.
+ (DISTCLEANFILES): Likewise.
+ (EXTRA_DIST): Likewise.
+ (all_local): Don't depend on stat.c or lstat.c.
+ (stat.c, lstat.c): Remove rules.
+ (EXTRA_DIST): Remove xstat.in.
+
+ * xstat.in: Remove file. Contents moved into stat.c.
+ * stat.c: Rework so that it may serve to define rpl_lstat, too.
+ * lstat.c: Simply #define LSTAT and include stat.c.
+
+ * safe-read.c: Rework so that it may serve to define safe_write, too.
+ * safe-write.c: Simply #define SAFE_WRITE and include safe-read.c.
+
+2002-12-03 Jim Meyering <jim@meyering.net>
+
+ * safe-read.h: Update from gnulib (add comments, include stddef.h).
+
+2002-12-02 Jim Meyering <jim@meyering.net>
+
+ * safe-read.c (EINTR): Define.
+ (safe_read): Rewrite to iterate IFF the read fails with EINTR.
+
+2002-12-01 Jim Meyering <jim@meyering.net>
+
+ * safe-read.c: Merge from gnulib.
+ (safe_read): Also exit the loop when read returns zero.
+ (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM, INT_MAX): Define.
+
+ * Makefile.am (libfetish_a_SOURCES): Add safe-write.c and safe-write.h.
+
+ * strtoll.c: Update from gnulib (trivial changes).
+ * strdup.c: Likewise.
+ * strpbrk.c: Likewise.
+ * strstr.c: Likewise.
+ * tempname.c: Likewise.
+ * obstack.c: Likewise.
+ * getopt.c: Likewise.
+ * getopt1.c: Likewise.
+ * getopt.h: Likewise.
+ * quote.h: Update from gnulib: add Copyright comment.
+ * quote.c: Likewise.
+
+2002-11-28 Jim Meyering <jim@meyering.net>
+
+ * mktime.c: Merge from gnulib/libc, for a slightly uglier solution.
+
+ Merge some more, in preparation for merge back into libc.
+ * error.c (_): Define only if not already defined.
+ Move definition to follow all #include directives.
+ Include unlocked-io.h only if !_LIBC.
+
+ Merge in changes from libc.
+ * error.c [_LIBC]: Include <libio/libioP.h>.
+ [USE_IN_LIBIO]: Include <libio/iolibio.h>
+ (fflush): Tweak definition to use INTUSE.
+ (putc): Define.
+
+2002-11-23 Jim Meyering <jim@meyering.net>
+
+ From gnulib, by Bruno Haible
+ * closeout.c: Include gettext.h instead of <libintl.h>.
+ * makepath.c: Likewise.
+ * rpmatch.c: Likewise.
+ * userspec.c: Likewise.
+ * version-etc.c: Likewise.
+ * xmemcoll.c: Likewise.
+ * error.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
+
+ * mbswidth.h: Update from gnulib.
+ * mbswidth.c: Likewise.
+ * localcharset.c: Likewise.
+ * config.charset: Likewise.
+ * unicodeio.c: Likewise.
+
+2002-11-22 Paul Eggert <eggert@twinsun.com>
+
+ * quotearg.h: Allow multiple inclusion by surrounding with
+ "#ifndef QUOTEARG_H_". Include <stddef.h>, for size_t,
+ so that we can be included first.
+ (PARAMS): Remove; we now assume C89 or later. All uses removed.
+ * quotearg.c: Include quotearg.h immediately after config.h.
+ No need to include stddef.h or sys/types.h any more.
+ Surround local include files with "", not "<>".
+ Assume HAVE_LIMITS_H unconditionally, as we assume C89.
+ Similarly, assume HAVE_C_BACKSLASH_A, CHAR_BIT, UCHAR_MAX, UINT_MAX,
+ HAVE_STDLIB_H, HAVE_STRING_H, STDC_HEADERS.
+ (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
+ (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
+ (ISPRINT): Remove; no longer needed now that we assume C89.
+
+ (clone_quoting_options, quotearg_buffer, quotearg_n_options):
+ Preserve errno.
+
+ (quotearg_buffer_restyled, quotearg_n, quotearg_n_style,
+ quotearg_char): Use SIZE_MAX rather than
+ (size_t) -1 when we are talking about "infinity".
+
+ (quotearg_buffer_restyled): Fix bug when quoting trigraphs.
+
+2002-11-22 Jim Meyering <jim@meyering.net>
+
+ From gnulib.
+ * strstr.c: Don't include <sys/types.h>. It's unnecessary.
+
+2002-11-21 Bruno Haible <bruno@clisp.org>
+
+ Remove case insensitive option matching.
+ * argmatch.h (argcasematch): Remove declaration.
+ (ARGCASEMATCH): Remove macro.
+ (__xargmatch_internal): Remove case_sensitive argument.
+ (XARGMATCH): Update.
+ (XARGCASEMATCH): Remove macro.
+ * argmatch.c (argmatch): Renamed from __argmatch_internal. Remove
+ case_sensitive argument.
+ (argcasematch): Remove function.
+ (__xargmatch_internal): Remove case_sensitive argument.
+ (main): Use XARGMATCH instead of XARGCASEMATCH.
+
+ * argmatch.c: Include gettext.h instead of <locale.h> and <libintl.h>.
+
+2002-11-21 Bruno Haible <bruno@clisp.org>
+
+ * xmalloc.c: Change compile-time error message. Add comment about
+ required autoconf version.
+ * xmalloc.c: Include gettext.h instead of <libintl.h>.
+ (textdomain): Remove definition.
+
+2002-11-21 Jim Meyering <jim@meyering.net>
+
+ * strdup.c (strdup): Merge in changes from gnulib; mainly to
+ use memcpy rather than strcpy.
+
+ * strcspn.c: Update from gnulib.
+
+ * sig2str.c (str2signum): Use unsigned, not size_t, for type of index.
+
+ * quotearg.c: Use `"'s when including quotearg.h and xalloc.h,
+ not the `<...>' notation.
+ Include <errno.h> and declare errno if necessary.
+
+ * README: Update from gnulib.
+
+2002-11-20 Paul Eggert <eggert@twinsun.com>
+
+ Merge argmatch cleanups from Bison. Assume C89.
+
+ * argmatch.c: Include config.h here, not in argmatch.h.
+ Include stdlib.h, for EXIT_FAILURE.
+ Always include <string.h>, since we assume C89.
+ (EXIT_FAILURE): Remove pre-C89 bug workaround.
+ * argmatch.h: Do not include <config.h> or <sys/types.h>.
+ Include <stddef.h> instead, since it's all we need for size_t.
+ (PARAMS): Remove. All uses removed.
+ (ARRAY_CARDINALITY): Do not bother to #undef.
+ (ARRAY_CARDINALITY, ARGMATCH, ARGCASEMATCH, invalid_arg,
+ ARGMATCH_VALID, XARGMATCH, XARGCASEMATCH):
+ Remove unnecessary parentheses.
+ (ARGMATCH_VALID, XARGMATCH, XARGCASEMATCH):
+ Insert necessary parentheses.
+ (ARGMATCH_CONSTRAINT, ARGMATCH_VERIFY): New macros.
+ (ARGMATCH_ASSERT): Use ARGMATCH_CONSTRAINT.
+
+2002-11-19 Jim Meyering <jim@meyering.net>
+
+ Be careful not to clobber errno.
+ * quotearg.c (quotearg_buffer_restyled): If mbrtowc returns
+ `(size_t) -1' (at which point it would also set errno to EILSEQ),
+ then restore errno to its previous value.
+ Reported by Phillip Jones via Tim Waugh as
+ https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=76334.
+
+ Avoid a link-time failure on some Linux systems.
+ * mktime.c (STATIC): Define to be empty (_LIBC) or `static' (otherwise).
+ (__mon_yday): Declare with the STATIC attribute.
+ (__mktime_internal): Likewise.
+ Based on a report from Greg Schafer.
+
+2002-11-14 Jim Meyering <jim@meyering.net>
+
+ * long-options.c: Don't include libintl.h, and don't define `_' --
+ they're not used.
+ * same.c: Likewise.
+
+2002-11-10 Jim Meyering <jim@meyering.net>
+
+ * raise.c: New file.
+
+2002-11-08 Paul Eggert <eggert@twinsun.com>
+
+ * human.c (human_readable): Revamp to avoid warning about unused
+ variable 'amt'. Unfortunately this means using some gotos.
+
+2002-11-08 Jim Meyering <jim@meyering.net>
+
+ * human.c (human_readable): Avoid warnings from gcc -Wshadow.
+
+2002-11-06 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (EXTRA_DIST): Add inttostr.h.
+
+2002-10-07 Paul Eggert <eggert@twinsun.com>
+
+ * Makefile.am (libfetish_a_SOURCES): Add imaxtostr.c, offtostr.c,
+ umaxtostr.c.
+ (EXTRA_DIST): Add inttostr.c.
+ * inttostr.c, inttostr.h, imaxtostr.c, offtostr.c, umaxtostr.c:
+ New files, taken from GNU tar.
+
+ * human.c, human.h: Rewrite to support locale-specific
+ notations like thousands separators.
+ Specify what includer of include.h must include beforehand.
+ (human_group_digits, human_suppress_point_zero, human_autoscale,
+ human_base_1024, human_SI, human_B): New enum values.
+ (human_readable): Rename from human_readable_inexact; put the
+ options before the sizes. All uses changed. The old human_readable
+ function has been removed; use inttostr.h instead.
+ (human_options): Renamed from human_block_size, with new signature
+ that allows block sizes up to UINTMAX_MAX. All callers changed.
+
+2002-10-13 Jim Meyering <jim@meyering.net>
+
+ * xnanosleep.c (initialized): Remove declaration now that it's unused.
+
+2002-10-12 Paul Eggert <eggert@twinsun.com>
+
+ * xnanosleep.c: There's no need to futz with the rounding mode,
+ since the code should work properly even in the default rounding mode.
+ (<fenv.h>): Do not include.
+ (#pragma STDC FENV_ACCESS ON): Remove.
+ (xnanosleep): Don't futz with rounding state.
+
+2002-10-06 Jim Meyering <jim@meyering.net>
+
+ * safe-read.c (safe_read): Change type of function
+ from ssize_t to size_t.
+ * safe-read.h: Update prototype.
+ (SAFE_READ_ERROR): Define.
+
+2002-09-28 Jim Meyering <jim@meyering.net>
+
+ * makepath.c (make_path): Restore umask *before* creating the final
+ component.
+
+2002-09-25 Paul Eggert <eggert@twinsun.com>
+
+ * fsusage.c [! HAVE_INTTYPES_H && HAVE_STDINT_H] Include <stdint.h>.
+ (UINTMAX_MAX) [!defined UINTMAX_MAX]: New macro.
+ (PROPAGATE_ALL_ONES): Work even if X is unsigned and narrower than
+ int. Work more efficiently if X is the same width as uintmax_t.
+ Do not compare X to -1, to avoid bogus compiler warning.
+ (get_fs_usage): (uintmax_t) -1 -> UINTMAX_MAX to avoid a cast.
+ Don't assume that f_frsize and f_bsize are the same type.
+
+2002-09-25 Jim Meyering <jim@meyering.net>
+
+ * fsusage.c: Remove unneeded parentheses around operands of `defined'.
+
+ * safe-read.c (safe_read): Make comment more precise:
+ upon error, it returns -1.
+
+2002-09-22 Jim Meyering <jim@meyering.net>
+
+ * makepath.c (make_path): Minor reformatting.
+
+2002-09-14 Paul Eggert <eggert@twinsun.com>
+
+ * xnanosleep (xnanosleep): Return -1 on failure, not 1,
+ for consistency with nanosleep. Check errno after nanosleep
+ returns -1.
+
+2002-09-11 Jim Meyering <jim@meyering.net>
+
+ * xnanosleep.c, xnanosleep.h: New files, factored out of sleep.c.
+ * Makefile.am (libfetish_a_SOURCES): Add them.
+
+2002-09-04 Jim Meyering <jim@meyering.net>
+
+ * addext.c (addext): Add a cast to avoid gcc's warning about
+ `comparison between signed and unsigned'.
+
+ * sig2str.c (str2signum, sig2str): Declare loop index variables to be
+ of type size_t so that they match type of upper bound, thus avoiding
+ warning about `comparison between signed and unsigned'.
+
+2002-08-31 Jim Meyering <jim@meyering.net>
+
+ * mktime.c: Update from GNU libc.
+ * obstack.c: Likewise.
+ * getopt.c: Likewise.
+ * getopt1.c: Likewise.
+
+2002-08-05 Paul Eggert <eggert@twinsun.com>
+
+ Fix some minor time-related bugs with POSIX time arguments.
+ Some valid time stamps were being rejected (notably -1, and
+ time stamps before 1900 on 64-bit hosts). And some invalid
+ time stamps were being accepted, e.g. September 31.
+
+ * posixtm.h (posixtime): Return bool instead of time_t, so
+ that we can return (time_t) -1 successfully.
+ * posixtm.c: Likewise.
+ [HAVE_STDBOOL_H]: Include <stdbool.h>.
+ (bool, false, true) [!HAVE_STDBOOL_H]: New type.
+ (t): Remove static var.
+ (year, posix_time_parse): Now takes struct tm * arg to modify, instead
+ of static var. All uses changed.
+ (year): Do not reject years before 1900; they can occur with
+ 64-bit time_t.
+ (posix_time_parse): Do not check for out-of-range components;
+ that is now the caller's responsibility, since our checks were
+ only approximations.
+ (posixtime): Use mktime to check for out-of-range components,
+ since it knows them exactly.
+ If mktime returns (time_t) -1, check whether an error actually occurred
+ by invoking localtime on -1.
+ (main) [TEST_POSIXTIME]: Check for input data errors, and report
+ posixtime failures better.
+ Improve the test data (in comments only).
+
+2002-07-27 Jim Meyering <jim@meyering.net>
+
+ * readutmp.h: If we have both utmpx.h and utmp.h, and there exists
+ the utmp.ut_exit member, but not the utmpx.ut_exit member, then
+ undefine HAVE_UTMPX_H. For AIX 4.3.3. Doing all this in cpp is
+ a big kludge; someday we'll put the brains in an autoconf macro.
+ (UT_EXIT_E_TERMINATION, UT_EXIT_E_EXIT): Define.
+
+2002-07-20 Jim Meyering <jim@meyering.net>
+
+ * xmalloc.c: Adjust to work with new autoconf macros, AC_FUNC_MALLOC
+ and AC_FUNC_REALLOC: test #ifndef HAVE_MALLOC/HAVE_REALLOC.
+
+ * gettext.h: Upgrade to gettext-0.11.3.
+
+2002-07-13 Bruno Haible <bruno@clisp.org>
+
+ * xstat.in: Include <string.h>.
+ * mountlist.c: #undef MNT_IGNORE before defining it, to avoid warning
+ on FreeBSD.
+
+2002-07-09 Jim Meyering <jim@meyering.net>
+
+ * mountlist.h (ME_DUMMY): Don't count entries of type `auto' as dummy
+ ones. At least on GNU/Linux systems, `auto' means something else.
+ From Michael Stone.
+
+2002-07-01 Jim Meyering <jim@meyering.net>
+
+ * c-stack.c: Include sys/time.h.
+ From Volker Borchert.
+
+2002-06-11 Paul Eggert <eggert@twinsun.com>
+
+ * fnmatch.c, fnmatch_loop.c (WIDE_CHAR_SUPPORT):
+ New macro. Use it uniformly instead of
+ (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H).
+ It also uses HAVE_BTOWC, to fix a porting bug on Solaris 2.5.1
+ reported by Vin Shelton.
+
+2002-06-22 Jim Meyering <jim@meyering.net>
+
+ * fnmatch.c (ISASCII, ISPRINT): Undefine, to avoid warning about
+ redefinition due to Solaris 2.6's definition in /usr/include/sys/euc.h.
+
+2002-06-22 Paul Eggert <eggert@twinsun.com>
+
+ * c-stack.h (segv_handler, c_stack_action) [! defined SA_SIGINFO]:
+ Do not assume SA_SIGINFO behavior.
+ Bug reported by Jim Meyering on NetBSD 1.5.2.
+
+2002-06-22 Jim Meyering <jim@meyering.net>
+
+ * c-stack.c, c-stack.h: New files, from diffutils-2.8.2.
+
+ * exitfail.c, exitfail.h: Likewise.
+ * Makefile.am (libfetish_a_SOURCES): Add exitfail.c and exitfail.h.
+
+ * Makefile.am (libfetish_a_SOURCES): Add fnmatch_.h in place
+ of fnmatch.h.
+ (EXTRA_DIST): Add fnmatch_loop.c.
+ (libfetish_a_SOURCES): Add c-stack.c and c-stack.h.
+
+ * fnmatch_loop.c: New file, from diffutils-2.8.2.
+ * fnmatch.c: Update from diffutils-2.8.2.
+ * fnmatch_.h: New file. From diffutils-2.8.2.
+ * fnmatch.h: Remove file.
+
+2002-06-18 Paul Eggert <eggert@twinsun.com>
+
+ * file-type.h: Report an error if neither S_ISREG nor
+ S_IFREG is defined, instead of using a test specific to glibc
+ 2.2. This should be safe, since POSIX requires S_ISREG and
+ Unix Version 7 had S_IFREG. We don't need to check for
+ <sys/types.h> since we don't use any symbols that it defines.
+
+2002-06-15 Jim Meyering <jim@meyering.net>
+
+ * file-type.h (FILE_TYPE_H): Guard entire contents with #ifndef.
+ For GNU libc 2.2 and newer, ensure that <sys/types.h> and <sys/stat.h>
+ have been included before this file.
+
+2002-06-13 Richard Dawe <richdawe@bigfoot.com>
+
+ * Makefile.am (lstat.c, stat.c, .sin.sed): Use t-$@, rather than $@-t,
+ so that each temporary file name is unique and valid in the first
+ 8 characters, for operation under DOS.
+
+2002-06-15 Jim Meyering <jim@meyering.net>
+
+ Work even with DJGPP 2.03, which lacks support for symlinks.
+ From Richard Dawe.
+ * xstat.in (S_ISLNK): Define to 0 if neither S_ISLNK nor S_IFLNK
+ is defined.
+ * lchown.c (S_ISLNK): Likewise.
+
+2002-06-14 Jim Meyering <jim@meyering.net>
+
+ * file-type.h: Use the version from diffutils-2.8.2.
+ * file-type.c: Likewise.
+
+2002-05-27 Jim Meyering <jim@meyering.net>
+
+ Fix a problem seen only on nonconforming systems whereby ls.c's
+ use of localtime, and then of gettimeofday would cause trouble:
+ the localtime call used to initialize rpl_gettimeofday's save
+ mechanism would clobber ls's current local time information so
+ that in any long listing the first file would always be listed
+ with date 1970-01-01. Analysis by Volker Borchert.
+
+ * gettimeofday.c (localtime): Undefine.
+ (rpl_localtime): New function.
+
+2002-05-22 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (libfetish_a_SOURCES): Add file-type.c and file-type.h.
+ * file-type.h: New file.
+ * file-type.c (file_type): New file/function. Extracted from diffutils.
+
+2002-04-29 Paul Eggert <eggert@twinsun.com>
+
+ * hard-locale.c: Upgrade to version used in GNU Diffutils 2.8.1.
+
+2002-04-28 Paul Eggert <eggert@twinsun.com>
+
+ * sig2str.h (SIGNUM_BOUND): Do not use WTERMSIG, to avoid
+ depending on <sys/wait.h> and WTERMSIG. Default to 64 instead
+ of 127, since 64 is the largest conceivable number for ancient
+ nonstandard hosts.
+ * sig2str.c: Do not include <sys/wait.h>; no longer needed.
+
+2002-04-28 Jim Meyering <jim@meyering.net>
+
+ * sig2str.c (WTERMSIG): Remove definition (unused).
+
+2002-04-28 Paul Eggert <eggert@twinsun.com>
+
+ * sig2str.h, sig2str.c: New files.
+ * Makefile.am (libfetish_a_SOURCES): Add sig2str.h.
+
+2002-04-24 Jim Meyering <jim@meyering.net>
+
+ * gettext.h: New file, from Gettext.
+ * Makefile.am (INCLUDES): Remove -I../intl.
+ (libfetish_a_SOURCES): Add gettext.h.
+
+2002-04-16 Jim Meyering <jim@meyering.net>
+
+ * readutmp.h (UT_TYPE): Remove definition (now in who.c).
+ (HAVE_STRUCT_XTMP_UT_EXIT, HAVE_STRUCT_XTMP_UT_ID): Define.
+ (HAVE_STRUCT_XTMP_UT_PID, HAVE_STRUCT_XTMP_UT_TYPE): Define.
+
+2002-04-12 Jim Meyering <jim@meyering.net>
+
+ * dirfd.h (dirfd): Elide prototype if dirfd is a macro.
+
+2002-03-10 Jim Meyering <jim@meyering.net>
+
+ * makepath.c (make_path): Remove a comma from a diagnostic.
+ Suggestion from Santiago Vila.
+
+2002-03-08 Jim Meyering <jim@meyering.net>
+
+ * rename.c: Mention that this wrapper is needed also on
+ mips-dec-ultrix4.4 systems.
+
+2002-03-02 Jim Meyering <jim@meyering.net>
+
+ * gettime.c (gettime): Test HAVE_CLOCK_GETTIME,
+ not HAVE_CLOCK_SETTIME.
+
+2002-02-27 Paul Eggert <eggert@twinsun.com>
+
+ * nanosleep.h: Rename to....
+ * timespec.h: New name for nanosleep.h. All uses changed.
+
+ * gettime.c: New file.
+ * settime.c: New file.
+ * stime.c: Remove.
+
+ * Makefile.am (libfetish_a_SOURCES): Add gettime.c, settime.c,
+ timespec.h. Remove nanosleep.h.
+
+2002-02-25 Paul Eggert <eggert@twinsun.com>
+
+ * acl.c, acl.h: New files.
+ * Makefile.am (libfetish_a_SOURCES): Add acl.h, acl.c.
+
+2002-02-24 Jim Meyering <jim@meyering.net>
+
+ * strnlen.c (strnlen): Define-away/undef so that an inconsistent
+ prototype in string.h (on at least AIX4.3.2.0 w/gcc-2.95.3) doesn't
+ cause trouble. Reported by Nelson Beebe.
+
+2002-02-23 Paul Eggert <eggert@twinsun.com>
+
+ * path-concat.c (xpath_concat): Reorder code to pacify
+ compilers that don't know that xalloc_die never returns.
+
+2002-02-20 Jim Meyering <jim@meyering.net>
+
+ * getdate.c: Regenerate using bison-1.33.
+
+2002-02-15 Paul Eggert <eggert@twinsun.com>
+
+ * posixver.c, posixver.h: New files.
+ * Makefile.am (libfetish_a_SOURCES): Add them.
+
+2002-02-02 Paul Eggert <eggert@twinsun.com>
+ Bruno Haible <bruno@clisp.org>
+
+ * unicodeio.h (print_unicode_char): Add exit_on_error argument.
+ (fwrite_success_callback): New declaration.
+ * unicodeio.c (unicode_to_mb): New function, extracted from
+ print_unicode_char. Call failure callback instead of error.
+ (fwrite_success_callback): New function.
+ (exit_failure_callback): New function.
+ (fallback_failure_callback): New function.
+ (print_unicode_char): Call unicode_to_mb.
+
+2002-01-26 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (getdate$U.o): Depend on unlocked-io.h.
+
+2002-01-22 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (Makefile): Don't depend on $(BUILT_SOURCES).
+ Otherwise, some versions of automake would omit the rule that makes
+ Makefile from Makefile.in.
+
+2001-01-21 Paul Eggert <eggert@twinsun.com>
+
+ * xmemcoll.h, xmemcoll.c: New files.
+ * Makefile.am (libfetish_a_SOURCES): Add them.
+ * memcoll.c: Include errno.h, and declare errno if not defined.
+ (memcoll): Set errno to zero if there is no error.
+
+ * quotearg.c (quotearg_buffer_restyled):
+ Fix bug with quoting buffers containing NUL when backslashing escapes.
+ This bug was exposed by the other changes in this patch.
+ (quotearg_n_options): New arg ARGSIZE.
+ All callers changed.
+ (quoting_options_from_style): New function.
+ (quotearg_n_style): Use it.
+ (quotearg_n_style_mem): New function.
+
+ * quotearg.h (quotearg_n_style_mem): New function.
+
+2002-01-16 Jim Meyering <jim@meyering.net>
+
+ * getdate.y: Add three semicolons, each just before a closing brace.
+ Bison (as of version 1.31) no longer papers over that mistake.
+
+2002-02-14 Paul Eggert <eggert@twinsun.com>
+
+ * backupfile.c (ISDIGIT): Comment fix.
+ * getdate.y (ISDIGIT): Likewise.
+ * posixtm.c (ISDIGIT, year): Likewise.
+ * strverscmp.c (ISDIGIT): Likewise.
+ * userspec.c (ISDIGIT): Likewise.
+
+2002-01-05 Jim Meyering <jim@meyering.net>
+
+ * version-etc.c (version_etc_copyright): Update copyright year.
+
+2001-01-19 Paul Eggert <eggert@twinsun.com>
+
+ * closeout.c (close_stdout_status): If ferror (stdout), do
+ not silently exit merely because the output buffer happens to
+ have nothing pending.
+
+2001-12-18 Paul Eggert <eggert@twinsun.com>
+
+ See the big note in ../ChangeLog.
+ * human.c (suffixes): Prefer K to k for 1024.
+ (generate_suffix_backwards): New function.
+ (human_readable_inexact): Use it.
+ * xstrtol.c (__xstrtol): If there is no number but there
+ is a valid suffix, assume 1. "MB" now means decimal, "MiB" binary.
+ Accept 'K' as well as 'k'.
+
+2001-12-15 Jim Meyering <jim@meyering.net>
+
+ * regex.h (__restrict_arr): Update from libc.
+
+ * mountlist.h (ME_REMOTE): Recognize file systems of type smbfs
+ as `remote' if the name starts with `//'. Suggested by Michael Stone.
+ (STREQ): Define.
+
+2001-12-10 Jim Meyering <jim@meyering.net>
+
+ * linebuffer.c: Remove explicit declarations of xmalloc and xrealloc,
+ Instead, include "xalloc.h".
+ (initbuffer): Don't cast xmalloc return value to char*.
+ (readline): Reword comment.
+ Don't cast xrealloc return value to char*
+ Return NULL, not 0.
+
+2001-12-09 Jim Meyering <jim@meyering.net>
+
+ * modechange.c (mode_compile): Add cast to avoid pedantic warning about
+ `signed and unsigned type in conditional expression'.
+ * posixtm.c (posix_time_parse): Likewise.
+
+ * xreadlink.c (xreadlink): Add cast to avoid a pedantic warning.
+
+ * readtokens.c (readtoken): Declare an index to be of type unsigned
+ to avoid a pedantic warning.
+
+ * getstr.c: Don't include assert.h.
+ (getstr): Remove warning-evoking assertions.
+ Return -1 if offset parameter is out of bounds.
+ Change the type of a local from int to size_t.
+
+ * strftime.c (my_strftime_localtime_r): Include this function
+ definition in the `#if ! HAVE_TM_GMTOFF' block.
+
+ * xgethostname.c: Remove declarations of xmalloc and xrealloc.
+ Include xalloc.h instead.
+
+2001-12-02 Jim Meyering <jim@meyering.net>
+
+ * tempname.c: Don't declare getenv, thus reverting the change of
+ 2001-11-18. It's no longer necessary, now that stdlib.h is always
+ included.
+
+ * regex.c [!__BOUNDED_POINTERS__]: Define away __bounded,
+ __unbounded, and __ptrvalue. Reported by Uwe H. Steinfeld.
+
+2001-11-30 Akim Demaille <akim@epita.fr>
+
+ * xstrdup.c: Include xalloc.h, so that xstrdup is declared
+ before being defined.
+
+2001-11-27 Paul Eggert <eggert@twinsun.com>
+
+ * quotearg.h (quotearg_n, quotearg_n_style):
+ First arg is int, not unsigned.
+ * quotearg.c (quotearg_n, quotearg_n_style): Likewise.
+ (SIZE_MAX, UINT_MAX): New macros.
+ (quotearg_n_options): Abort if N is negative.
+ Avoid overflow check on hosts where size_t is 64 bits and int
+ is 32 bits, as overflow is impossible there.
+ Fix off-by-one typo that caused unnecessary reallocation.
+
+2001-11-27 Jim Meyering <jim@meyering.net>
+
+ * tempname.c: Merge with version from libc.
+ * regex.c: Likewise.
+
+ * tempname.c: Include stdlib.h unconditionally. On some old systems
+ for which STDC_HEADERS is 0, it was not included, resulting in a
+ warning about an integer-to-pointer conversion problem with getenv.
+ Reported by Volker Borchert.
+
+2001-11-26 Jim Meyering <jim@meyering.net>
+
+ * gtod.h: Remove file.
+ * Makefile.am (libfetish_a_SOURCES): Remove gtod.h.
+ * gettimeofday.c: Don't include gtod.h.
+ (GTOD_init): Remove function.
+ (rpl_gettimeofday): Do its job here instead, rather than aborting.
+ Suggestion from Volker Borchert.
+
+2001-11-23 Jim Meyering <jim@meyering.net>
+
+ * hash.h (struct hash_table): Don't define here. Merely declare it.
+ * hash.c (struct hash_table): Define it here instead.
+
+2001-11-22 Jim Meyering <jim@meyering.net>
+
+ * hash.h: Bracket contents of file with #ifndef HASH_H_ ... #endif.
+
+2001-11-18 Paul Eggert <eggert@twinsun.com>
+
+ * tempname.c (TMP_MAX): Remove; no longer needed.
+ (TEMPORARIES): New macro.
+ (__gen_tempname): Use TEMPORARIES rather than TMP_MAX. This
+ removes an artificial limitation (e.g. HP-UX 10.20, where
+ TMP_MAX is 17576).
+
+2001-11-18 Jim Meyering <jim@meyering.net>
+
+ * tempname.c [!HAVE_DECL_GETENV]: Declare getenv to avoid warning
+ on SunOS 4.
+
+ * Makefile.am (Makefile): Depend on $(BUILT_SOURCES), so those
+ files will be created before anything else.
+
+2001-11-17 Jim Meyering <jim@meyering.net>
+
+ * modechange.c (mode_adjust): Fix error introduced on 1999-04-26
+ that made e.g., `chmod a=,o=w,g=o F' cause F to be group readable
+ rather than group writable. Patch by Juan F. Codagnone.
+
+ * readtokens.c: Remove explicit declarations of xmalloc and xrealloc,
+ Instead, include "xalloc.h".
+
+ * mountlist.c: Include unlocked-io.h after all system headers.
+ Remove explicit declarations of xmalloc, xrealloc,
+ and xstrdup. Instead, include "xalloc.h".
+
+ * argmatch.c, closeout.c, error.c, exclude.c: Include unlocked-io.h.
+ * fatal.c, getdate.y, getpass.c, getstr.c, getusershell.c: Likewise.
+ * mountlist.c, posixtm.c, readtokens.c, readutmp.c: Likewise.
+
+ * regex.c, sha.c, version-etc.c, yesno.c: Likewise.
+ Reported by Padraig Brady.
+
+ * mkstemp.c: #undef mkstemp.
+ Include config.h.
+ (rpl_mkstemp): Rename from mkstemp.
+ Protoize.
+
+2001-11-16 Jim Meyering <jim@meyering.net>
+
+ * physmem.c [HAVE_SYS_PSTAT_H]: Include <sys/pstat.h>.
+ (physmem_total) [HAVE_PSTAT_GETSTATIC]: If sysconf couldn't be used to
+ determine the amount of total physical memory, use pstat_getstatic.
+ HPUX-11 doesn't define _SC_PHYS_PAGES.
+ (physmem_available) [HAVE_PSTAT_GETSTATIC && HAVE_PSTAT_GETDYNAMIC]:
+ If sysconf couldn't be used to determine the amount of available
+ physical memory, use both pstat_getstatic and pstat_getdynamic.
+ Based on a patch from Bob Proulx.
+
+2001-11-05 Jim Meyering <jim@meyering.net>
+
+ * xstat.in (slash_aware_lstat): Correct a misleading comment.
+
+2001-11-03 Jim Meyering <jim@meyering.net>
+
+ * argmatch.h (ARGMATCH_TO_ARGUMENT): Remove casts of first two args
+ in argmatch_to_argument call.
+
+ * dirfd.c (dirfd): Reflect the fact that DIR_TO_FD now takes an
+ argument.
+
+ * hash.c (hash_clear): Fix a bug that could lead to an infloop or
+ e.g., a fault due to an attempt to free a NULL pointer.
+
+2001-11-01 Jim Meyering <jim@meyering.net>
+
+ * dirfd.c, dirfd.h: New files.
+ * Makefile.am (libfetish_a_SOURCES): Add dirfd.h.
+
+ * hash.c (hash_print) [TESTING]: Clean up.
+
+2001-10-22 Paul Eggert <eggert@twinsun.com>
+
+ * hard-locale.c (alloca): Define to __builtin_alloca if __GNUC__,
+ to avoid a warning if -Wall.
+
+2001-10-21 Paul Eggert <eggert@twinsun.com>
+
+ * regex.c (uintptr_t): Remove macro and decl; it's config.h's job.
+
+2001-10-21 Jim Meyering <jim@meyering.net>
+
+ * obstack.c (_): Honor the setting of ENABLE_NLS. Otherwise,
+ this code would end up calling gettext even in packages built
+ with --disable-nls.
+ * getopt.c (_): Likewise.
+ * regex.c (_): Likewise.
+
+2001-10-20 Paul Eggert <eggert@twinsun.com>
+
+ * error.c (strerror_r): Do not declare unless !_LIBC.
+ Do not check for HAVE_DECL_STRERROR_R missing unless STRERROR_R_CHAR_P.
+ Use strerror_r that is only a macro, even if it is not a function.
+ (strerror): Check for HAVE_DECL_STRERROR before declaring.
+ (private_strerror): Use prototypes, not old-style function definition.
+ (print_errno_message): New function.
+ Support the POSIX 'int'-flavored strerror_r, as well as the traditional
+ char*-flavored one.
+ (error_tail, error, error_at_line): Use it.
+
+2001-10-11 Jim Meyering <jim@meyering.net>
+
+ * argmatch.c (argmatch_invalid): Use quotearg_n_style (0, ...
+ and quote_n (1, ... to avoid clobbering a buffer.
+
+2001-10-05 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am: (libfetish_a_SOURCES): Add hash-pjw.c and hash-pjw.h.
+ * hash-pjw.c: New file (factored out of fileutils' remove.c).
+ * hash-pjw.h: New file.
+
+2001-09-30 Jim Meyering <jim@meyering.net>
+
+ * mountlist.c [MOUNTED_GETFSSTAT]:
+ Include <sys/ucred.h>, for Apple Darwin.
+ Include sys/mount.h and sys/fs_types.h only if available.
+ (FS_TYPE): Define.
+ (read_filesystem_list): Use FS_TYPE.
+
+2001-09-29 Paul Eggert <eggert@twinsun.com>
+
+ * exclude.c (excluded_filename): 0 -> false, since it's
+ a boolean context.
+
+2001-09-28 Paul Eggert <eggert@twinsun.com>
+
+ Fix bug reported by Petter Reinholdtsen for HP-UX 10.20, which
+ #defines strtoimax. Also treat the other strto* functions
+ like strtoimax.
+
+ * xstrtol.c (strtol): Do not declare if HAVE_DECL_STRTOL.
+ (strtoul): Do not declare if HAVE_DECL_STRTOUL.
+ (strtoimax, strtoumax): Do not declare if already defined as a macro.
+
+2001-09-26 Jim Meyering <jim@meyering.net>
+
+ Most macros in unlocked-io.h had the wrong number of arguments.
+ * gen-uio: New script.
+ (USE_UNLOCKED_IO): Define to 1 if not already defined.
+ * unlocked-io.hin: Remove file.
+ * Makefile.am (unlocked-io.h): Rewrite to use a separate script,
+ rather than trying to embed it here.
+ (EXTRA_DIST): Add gen-uio. Remove unlocked-io.hin
+ Reported by Padraig Brady.
+
+2001-09-25 Volker Borchert <bt@teknon.de>
+
+ * gettimeofday.c (rpl_gettimeofday): Declare local variable `result'.
+
+2001-09-23 Jim Meyering <jim@meyering.net>
+
+ * mountlist.c: Remove useless parentheses in #if directives.
+ (MOUNTED) [!defined MOUNTED]: Define to _PATH_MOUNTED, for when
+ the deprecated MOUNTED symbol is no longer defined in mntent.h.
+
+2001-09-22 Jim Meyering <jim@meyering.net>
+
+ * localcharset.c: Update from latest gettext.
+ * config.charset: Likewise.
+
+2001-09-20 Jim Meyering <jim@meyering.net>
+
+ * xstrtol.c (strtoimax): Guard declaration with
+ `#if !HAVE_DECL_STRTOIMAX', rather than just `#ifndef strtoimax'.
+ The latter fails because some systems (at least rs6000-ibm-aix4.3.3.0)
+ have their own, conflicting declaration of strtoimax in sys/inttypes.h.
+ (strtoumax): Likewise, for completeness (it wasn't necessary).
+
+2001-09-06 Paul Eggert <eggert@twinsun.com>
+
+ * strtoimax.c (HAVE_LONG_LONG):
+ Redefine to HAVE_UNSIGNED_LONG_LONG if unsigned.
+ (strtoimax): Use sizeof (long), not sizeof strtol (ptr, endptr, base),
+ to work around bug in IBM C compiler.
+
+2001-09-16 Jim Meyering <jim@meyering.net>
+
+ * mkdir.c: New file.
+
+2001-09-04 Paul Eggert <eggert@twinsun.com>
+
+ * xgetcwd.c: Revert some of the previous change; intead,
+ fix the HAVE_GETCWD_NULL code to behave more like the
+ !HAVE_GETCWD_NULL code used to.
+
+ Include "xalloc.h".
+ (xgetcwd): Do not return NULL when memory is exhausted; instead,
+ invoke xalloc_die.
+
+2001-09-04 Paul Eggert <eggert@twinsun.com>
+
+ * xreadlink.c (xreadlink): Omit size_t* arg. All uses changed.
+ Use ssize_t, not int, to store result of readlink.
+ Check for ssize_t overflow as well as size_t overflow,
+ as POSIX says the result of readlink is implementation-defined
+ when ssize_t overflows.
+ Remove unnecessary cast to char*.
+ Use free+malloc instead of realloc, as the storage doesn't need
+ to be preserved and it's clearer and can be more efficient that way.
+ (SIZE_MAX, SSIZE_MAX): New macros, if <limits.h> doesn't declare.
+ * xreadlink.h (xreadlink): Update prototype.
+
+2001-09-03 Paul Eggert <eggert@twinsun.com>
+
+ * exclude.c (fnmatch_no_wildcards): Fix confusion between
+ usage of FNM_CASEFOLD and FNM_LEADING_DIR. The bug was
+ spotted by Jim Meyering.
+
+2001-09-03 Jim Meyering <jim@meyering.net>
+
+ * xreadlink.c (xreadlink): Preserve errno around `free' during failure.
+
+2001-09-03 Paul Eggert <eggert@twinsun.com>
+
+ * xgetcwd.c: Fix the !HAVE_GETCWD_NULL code to behave more
+ like the HAVE_GETCWD_NULL code.
+ Include pathmax.h if not HAVE_GETCWD.
+ Do not include xalloc.h.
+ (INITIAL_BUFFER_SIZE): New symbol.
+ Do not use xmalloc / xrealloc, since the caller is responsible for
+ handling errors. Preserve errno around `free' during failure.
+ Do not overrun buffer when using getwd.
+
+2001-09-03 Paul Eggert <eggert@twinsun.com>
+
+ * xgetcwd.c (xgetcwd): Use HAVE_GETCWD_NULL, not (defined
+ __GLIBC__ && __GLIBC__ >= 2), to decide whether to use getcwd (NULL, 0).
+
+2001-09-02 Jim Meyering <jim@meyering.net>
+
+ * error.c: Update from GNU libc.
+
+2001-09-01 Jim Meyering <jim@meyering.net>
+
+ * xreadlink.c: New file.
+ * xreadlink.h: New file.
+ * Makefile.am (libfetish_a_SOURCES): Add xreadlink.c and xreadlink.h.
+
+ * regex.c (uintptr_t) [!_LIBC]: Define to private_uintptr_t, so it
+ doesn't conflict with sparc Solaris 7's definition in
+ /usr/include/sys/int_types.h.
+
+ * exclude.c: Use `""', not `<>' to #include non-system header files.
+ (fnmatch_no_wildcards): Rewrite not to use function names, strcasecmp
+ and strncasecmp as r-values. Unixware didn't have declarations.
+
+2001-08-31 Jim Meyering <jim@meyering.net>
+
+ * xgetcwd.c (xgetcwd): Reorganize to avoid some duplication.
+ Use an initial, malloc'd, buffer of length 128 rather than
+ a statically allocated one of length 1024.
+
+2001-08-30 Paul Eggert <eggert@twinsun.com>
+
+ * xgetcwd.c: Don't include pathmax.h.
+ Include stdlib.h and unistd.h if available.
+ Include xalloc.h.
+ (xmalloc, xstrdup, free): Remove decls.
+ (xgetcwd): Don't assume sizes fit in unsigned.
+ Check for overflow when computing sizes.
+ Simplify reallocation code.
+
+2001-08-28 Paul Eggert <eggert@twinsun.com>
+
+ * Makefile.am (libfetish_a_SOURCES): Remove strtoxmax.c.
+
+ * strtoimax.c: Renamed from strtoxmax.c, removing the
+ old strtoimax.c.
+
+ Also, make the following further changes to make this file's
+ configuration more similar to that of strtol.c:
+ (UNSIGNED): Renamed from STRTOUXMAX_UNSIGNED. All uses changed.
+ (strtoumax, uintmax_t, strtoull, strtol): Remove.
+ (intmax_t, strtoimax, strtol, strtoll): New macros, if UNSIGNED.
+ (strtoimax): Renamed from strtoumax. All uses of unsigned values
+ changed to signed values.
+
+ And make the following changes as well:
+ Fix copyright notice, as 1999 was missing.
+ (verify): New macro.
+ (strtoimax): Check sizes at compile-time, not run-time.
+ Prefer strtol to strtoll if both work.
+ (main): Remove; it was not that useful and was a pain to maintain.
+
+ * strtoumax.c: Include strtoimax.c, not strtouxmax.c.
+
+2001-08-30 Paul Eggert <eggert@twinsun.com>
+
+ * savedir.c (savedir): Remove size parameter, as POSIX says that
+ a directory's st_size can have an arbitrary value, so the old
+ usage could waste an arbitrary amount of memory. All uses
+ changed.
+ * savedir.h: Update prototype.
+
+2001-08-30 Paul Eggert <eggert@twinsun.com>
+
+ * xstrtol.c (strtoimax): New decl.
+
+2001-08-28 Paul Eggert <eggert@twinsun.com>
+
+ * xstrtol.h: Add copyright notice.
+ (_DECLARE_XSTRTOL): Improve quality of diagnostic for
+ LONGINT_INVALID_SUFFIX_CHAR.
+
+2001-08-30 Paul Eggert <eggert@twinsun.com>
+
+ * quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
+ tm to be declared.
+
+2001-08-30 Paul Eggert <eggert@twinsun.com>
+
+ * hash.c: Remove '2001' from copyright notice.
+
+2001-08-30 Paul Eggert <eggert@twinsun.com>
+
+ * full-write.h: New file.
+ * Makefile.am (libfetish_a_SOURCES): Add full-write.h.
+ * full-write.c: Correct credits, as cccp.c no longer
+ exists and anyway it was so heavily changed from the old cccp
+ code as to be unrecognizable. Include full-write.h.
+ (full_write) Return size_t, with short writes meaning failure.
+ All callers changed. This fixes a bug with large buffers
+ on 64-bit hosts.
+ * utime.c: Include full-write.h.
+
+2001-08-30 Paul Eggert <eggert@twinsun.com>
+
+ Merge 'exclude' changes from tar 1.13.22.
+ This fixes one or two unlikely storage allocation overflow bugs,
+ but doesn't change user-visible behavior otherwise.
+
+2001-08-30 Paul Eggert <eggert@twinsun.com>
+
+ * exclude.c (bool): Declare, perhaps by including stdbool.h.
+ (<sys/types.h>): Include only if HAVE_SYS_TYPES_H.
+ (<stdlib.h>, <string.h>, <strings.h>, <inttypes.h>, <stdint.h>):
+ Include if available.
+ (<xalloc.h>): Include
+ (SIZE_MAX): Define if <stdint.h> or <inttypes.h> doesn't.
+ (verify): New macro. Use it to verify that EXCLUDE macros do not
+ collide with FNM macros.
+ (struct patopts): New struct.
+ (struct exclude): Use it, as exclude patterns now come with options.
+ (new_exclude): Support above changes.
+ (new_exclude, add_exclude_file):
+ Initial size must now be a power of two to simplify overflow checking.
+ (free_exclude, fnmatch_no_wildcards): New function.
+ (excluded_filename): No longer requires options arg, as the options
+ are determined by add_exclude. Now returns bool, not int.
+ (excluded_filename, add_exclude):
+ Add support for the fancy new exclusion options.
+ (add_exclude, add_exclude_file): Now takes int options arg.
+ Check for arithmetic overflow when computing sizes.
+ (add_exclude_file): xrealloc might modify errno, so don't
+ realloc until after errno might be used.
+
+ * exclude.h (EXCLUDE_ANCHORED, EXCLUDE_INCLUDE,EXCLUDE_WILDCARDS):
+ New macros.
+ (free_exclude): New decl.
+ (add_exclude, add_exclude_file): Now takes int options arg.
+ (excluded_filename): No longer requires options arg, as the options
+ are determined by add_exclude. Now returns bool, not int.
+
+2001-08-30 Paul Eggert <eggert@twinsun.com>
+
+ * alloca.c (alloca): Arg is of type size_t, not unsigned.
+
+2001-08-27 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (libfetish_a_SOURCES): Add strtoxmax.c
+
+ * version-etc.c (N_): Remove definition.
+ Revert most of last change.
+ Instead, simply don't mark the `Copyright...' string for translation.
+ Based on advice from Paul Eggert.
+
+ * strtoxmax.c: Tweak comment.
+
+2001-08-26 Jim Meyering <jim@meyering.net>
+
+ * version-etc.c (version_etc_copyright_fmt): Replace literal year
+ of copyright with `%s' so translators don't get an untranslated
+ message in 2002.
+ (COPYRIGHT_YEAR): Define.
+ (version_etc): Use fprintf rather than fputs.
+ Suggestion from Ulrich Drepper.
+
+ * Makefile.am (libfetish_a_SOURCES): Add xstrtoimax.c.
+
+ * strtoll.c: New file, from GNU libc.
+ * xstrtoimax.c: New file.
+
+ * xstrtol.h: Add xstrtoimax.
+ * strtoumax.c: New file. Simply include "strtoumax.c".
+ * strtoimax.c: New file. Likewise, but first define STRTOUXMAX_SIGNED.
+
+ * strtoumax.c: Factor to work both for unsigned and signed types, ...
+ * strtoxmax.c: ... then renamed to this.
+
+2001-08-13 Paul Eggert <eggert@twinsun.com>
+
+ * Makefile.am (unlocked-io.h): Do not append "_unlocked" twice.
+ Port to Solaris 8, where 'sed' requires a space after the 'r'
+ command, and where sh dislikes "$/". Clean up the spacing a bit.
+ Redirect output to $tmp just once.
+
+2001-08-12 Paul Eggert <eggert@sic.twinsun.com>
+
+ * addext.c (<errno.h>): Include.
+ (errno): Declare if not defined.
+ (addext): Work correctly when pathconf returns -1 and leaves
+ errno alone because there is no limit. Also, work even if
+ pathconf returns a value greater than SIZE_MAX.
+
+2001-08-12 Jim Meyering <jim@meyering.net>
+
+ * xgetcwd.c (xgetcwd) [defined __GLIBC__ && __GLIBC__ >= 2]:
+ Simply `return getcwd (NULL, 0);'.
+ [! (defined __GLIBC__ && __GLIBC__ >= 2)]:
+ Use 1300 as initial value for length, not PATH_MAX.
+
+ * pathmax.h: Clean up cpp syntax.
+
+2001-08-12 Jim Meyering <jim@meyering.net>
+
+ * gettimeofday.c: New file.
+ * gtod.h: New file.
+ * Makefile.am (libfetish_a_SOURCES): Add gtod.h.
+
+2001-08-04 Jim Meyering <jim@meyering.net>
+
+ * error.h (__attribute__): Remove `|| __STRICT_ANSI__' from #if stmt,
+ to get in sync with glibc.
+
+2001-08-03 Paul Eggert <eggert@twinsun.com>
+
+ The following changes are from gettext 0.10.39 as maintained by
+ Bruno Haible.
+
+ * mbswidth.h (MBSW_REJECT_UNPRINTABLE, MBSW_REJECT_INVALID):
+ Renamed from MBSW_ACCEPT_UNPRINTABLE and MBSW_ACCEPT_INVALID
+ with inverted sense. All uses changed.
+
+ * mbswidth.c: Don't include <limits.h>.
+ Include <stdlib.h> and <string.h> unconditionally.
+ (iswcntrl, mbsinit, ISCNTRL): New macros.
+ (mbsnwidth): Use K&R style function declarations.
+ Don't bother checking for MB_LEN_MAX == 1, since the compiler
+ can optimize it when MB_CUR_MAX == 1.
+ The width of control characters is zero, not 1.
+
+2001-07-15 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (EXTRA_DIST): Add unlocked-io.hin.
+ (BUILT_SOURCES): Add unlocked-io.h.
+ (io_functions): Define.
+ (unlocked-io.h): New rule.
+ (DISTCLEANFILES): Add unlocked-io.h.
+ (all-local): Depend on unlocked-io.h, to ensure it is created.
+
+ * unlocked-io.hin: New file
+
+ * regex.c: Update from glibc.
+
+2001-07-05 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (noinst_HEADERS): Remove definition, per new automake
+ recommendation.
+ (libfetish_a_SOURCES): Put all .h files here instead.
+ Remove a thus-exposed (better checks in automake) duplicate and
+ two unnecessary .h files.
+
+2001-06-11 Jim Meyering <jim@meyering.net>
+
+ * regex.c: Update from GNU libc.
+
+2001-05-27 Jim Meyering <jim@meyering.net>
+
+ * readutmp.h (UT_TYPE): Define.
+
+2001-05-24 Jim Meyering <jim@meyering.net>
+
+ * argmatch.c: Include "quote.h".
+ (argmatch_invalid): Remove explicit `' quotes. Instead, use the
+ quote function. Reported by Göran Uddeborg.
+
+2001-05-20 Alexandre Duret-Lutz <duret_g@epita.fr>
+
+ * dirname.c (dir_name): Compute append_dot using path, not newpath
+ which is not yet declared.
+
+2001-05-11 Paul Eggert <eggert@twinsun.com>
+
+ * Makefile.am (libfetish_a_SOURCES):
+ Add strftime.c, since we now compile it on all hosts.
+
+ * strftime.c (my_strftime):
+ Define to nstrftime if emacs, but only if my_strftime is not defined.
+ (extra_args, extra_args_spec, extra_args_spec_iso): Rename from
+ ut_argument, ut_argument_spec, ut_argument_spec_iso, respectively.
+ Add one more extra argument: a nanoseconds value.
+ All uses changed.
+ (ns): New macro.
+ (my_strftime function): Add %N format.
+ (emacs_strftimeu): Renamed from emacs_strftime,
+ with extra ut argument.
+
+2001-05-11 Paul Eggert <eggert@twinsun.com>
+
+ dirname code cleanup. base_name now behaves more compatibly
+ with POSIX basename when given file names that have trailing
+ slashes, and similarly for dir_name. Add new primitives
+ base_len and dir_len. Put the directory-name-related decls
+ into dirname.h.
+
+ * addext.c (ISSLASH, base_name): Remove; now in dirname.h.
+ * backupfile.c (base_name): Likewise.
+ * basename.c (FILESYSTEM_PREFIX_LEN, PARAMS, ISSLASH): Likewise.
+ * dirname.c (FILESYSTEM_PREFIX_LEN, ISSLASH): Likewise.
+ * makepath.c (strip_trailing_slashes): Likewise.
+ * path-concat.c (DIRECTORY_SEPARATOR, FILESYSTEM_PREFIX_LEN, ISSLASH):
+ Likewise.
+ * rename.c (strip_trailing_slashes): Likewise.
+ * same.c (base_name): Likewise.
+ * stripslash.c (ISSLASH): Likewise.
+
+ * addext.c: Include <dirname.h> after size_t is defined.
+ * backupfile.c: Likewise.
+
+ * addext.c (addext): Use base_len to trim redundant
+ trailing slashes instead of doing it ourselves.
+ But do not trim the last slash if it is not redundant.
+
+ * backupfile.c (find_backup_file_name,
+ max_backup_version): Use base_len instead of rolling it ourselves.
+ Handle the case of "" and (on DOS) "C:" correctly.
+
+ * basename.c: Do not include <stdio.h>, <assert.h>; no longer needed.
+ Include <string.h>, <dirname.h>.
+ (base_name): Allow file names ending in slashes, other than names
+ that are all slashes. In this case, return the basename followed
+ by the slashes. This is more general, and can be used in places
+ where the original base_name purposely had an assertion failure.
+ (base_len): New function.
+
+ * dirname.c: Include <string.h> instead of <stdlib.h>.
+ Do not include <assert.h>; no longer needed.
+ Include xalloc.h.
+ (memrchr): Remove decl.
+ (dir_name_r): Remove.
+ (dir_len): Renamed from dirlen. All callers changed.
+ Rewrite in terms of base_name, for simplicity and consistency.
+ (dir_name): Never return NULL. All callers changed.
+ Do not include <stdlib.h> in test program; no longer needed.
+ return 0; is fine for test program.
+
+ * dirname.h (DIRECTORY_SEPARATOR, ISSLASH, FILESYSTEM_PREFIX_LEN):
+ New macros.
+ (base_name, base_len, dir_len, strip_trailing_slashes): New decls.
+
+ * path-concat.c (path_concat): Use base_len to compute
+ base length, not strlen; this means we cannot rely on memcpy
+ to null-terminate.
+
+ * same.c (STREQ): Remove.
+ (same_name): Handle the case where the basename ends in trailing '/'.
+
+ * stripslash.c (strip_trailing_slashes): Return nonzero if
+ a slash was stripped. Do not strip the last slash after a
+ file system prefix.
+
+2001-04-08 Jim Meyering <jim@meyering.net>
+
+ * getdate.y (get_date): Set tm_isdst to -1 to ensure that it is
+ recomputed; that's necessary when the offset spans a DST transition.
+ Patch by David J. MacKenzie. Reported by Hon-Yin Kok.
+
+2001-04-02 Jim Meyering <jim@meyering.net>
+
+ * regex.h, regex.c: Update from GNU libc.
+
+2001-03-19 Paul Eggert <eggert@twinsun.com>
+
+ * version-etc.c (version_etc_copyright): Update to 2001.
+
+2001-03-16 Paul Eggert <eggert@twinsun.com>
+
+ * tempname.c (uint64_t): Define to uintmax_t if
+ not defined, and if UINT64_MAX is not defined.
+ Required at least for Vax Ultrix4.3, which doesn't define uint64_t.
+ Reported by John David Anglin.
+
+2001-03-10 Bruno Haible <haible@clisp.cons.org>
+
+ * localcharset.c (locale_charset): Allow wildcard syntax. Also resolve
+ alias if codeset is empty.
+ * config.charset (BeOS): Use wildcard syntax.
+
+2001-03-13 Jim Meyering <jim@meyering.net>
+
+ * path-concat.c (path_concat) [FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX]:
+ Don't insert a backslash when concatenating e.g., `C:' and `foo'.
+ From Bruno Haible.
+
+2001-03-06 Bruno Haible <haible@clisp.cons.org>
+
+ * localcharset.c (locale_charset): Don't use setlocale(LC_CTYPE,NULL).
+ Don't return NULL.
+ * unicodeio.c (print_unicode_char): Simplify accordingly.
+
+2001-03-06 Bruno Haible <haible@clisp.cons.org>
+
+ * config.charset: Update for FreeBSD 4.2 and OSF/1 5.1. Add
+ support for DOS/DJGPP.
+
+2001-02-28 Paul Eggert <eggert@twinsun.com>
+
+ * Makefile.am (libfetish_a_SOURCES):
+ Add dup-safer.c, fopen-safer.c.
+ (noinst_HEADERS): Add stdio-safer.h, unistd-safer.h.
+
+ * dup-safer.c, fopen-safer.c, stdio-safer.h, unistd-safer.h: New files.
+
+2001-02-25 Paul Eggert <eggert@twinsun.com>
+
+ The mkstemp replacement is taken from glibc 2.2.2, with some
+ portability fixes for use outside glibc, as follows:
+
+ * tempname.c (struct_stat64): New macro.
+ (direxists, __gen_tempname): Use it.
+ This avoids a portability problem with Solaris 8.
+
+ * tempname.c (<config.h>): Include if HAVE_CONFIG_H.
+ (<stddef.h>, <stdint.h>, <string.h>):
+ Include only if STDC_HEADERS || _LIBC.
+ (<fcntl.h>): Include only if HAVE_FCNTL_H || _LIBC.
+ (<unistd.h>): Include only if HAVE_UNISTD_H || _LIBC.
+ (<sys/time.h>): Include only if HAVE_SYS_TIME_H || _LIBC.
+ (__set_errno): Define this macro if <errno.h> doesn't.
+ (P_tmpdir, TMP_MAX, __GT_FILE, __GT_BIGFILE, __GT_DIR, __GT_NOCREATE):
+ Define these macros if <stdio.h> doesn't.
+ (S_ISDIR, S_IRUSR, S_IWUSR, S_IXUSR):
+ Define these macros if <sys/stat.h>
+ doesn't. Ignore <sys/stat.h> S_ISDIR if STAT_MACROS_BROKEN.
+ (stat64, __getpid, __gettimeofday, __mkdir, __open, __open64, lxstat64,
+ __xstat64): Define if not _LIBC.
+ (__secure_getenv): Define if ! (HAVE___SECURE_GETENV || _LIBC).
+ (__gen_tempname): Invoke gettimeofday only if
+ HAVE_GETTIMEOFDAY || _LIBC;
+ otherwise, fall back on plain "time".
+ Use macros like S_IRUSR | S_IWUSR rather than octal values like 0600.
+
+ * mkstemp.c (__GT_FILE): Define to zero if not defined.
+
+ * mkstemp.c, tempname.c: New files, taken from glibc 2.2.2.
+
+2001-02-17 Jim Meyering <jim@meyering.net>
+
+ * strtoul.c: Sync from GNU libc. Use double quotes, not <...>
+ around included file name.
+
+ * strnlen.c (__strnlen): Merge in a change from GNU libc.
+
+ * strftime.c: Update from GNU libc (the only changes were to comments).
+
+2001-02-13 Bruno Haible <haible@clisp.cons.org>
+
+ * mbswidth.h (mbswidth): Also define as macro, to avoid prototype clash.
+
+2001-02-17 Paul Eggert <eggert@twinsun.com>
+
+ * mbswidth.c, quotearg.c (mbrtowc, mbsinit):
+ Remove workaround macros for hosts that have mbrtowc but not
+ mbstate_t, as we now insist on proper declarations for both
+ before using mbrtowc.
+
+2001-02-17 Jim Meyering <jim@meyering.net>
+
+ * regex.c: Update from libc.
+
+2001-02-16 Paul Eggert <eggert@twinsun.com>
+
+ * alloca.c (malloc): Undef before defining, since stdlib.h
+ may have defined it. Needed for Encore Umax-3.0.9.16b systems.
+ Reported by Mark Hounschell via Paul Eggert.
+
+2001-01-30 Bruno Haible <haible@clisp.cons.org>
+
+ * config.charset: Update for FreeBSD 4.2.
+
+2001-01-26 Jim Meyering <jim@meyering.net>
+
+ * quotearg.c: Include stddef.h.
+ * quote.c: Include stddef.h.
+ Reported by Axel Kittenberger.
+
+ * xmalloc.c [HAVE_DONE_WORKING_MALLOC_CHECK]: Enclose error-evoking
+ line in double quotes so that it evokes a better diagnostic.
+ [HAVE_DONE_WORKING_REALLOC_CHECK]: Likewise.
+ Reported by Axel Kittenberger.
+
+2001-01-15 Bruno Haible <haible@clisp.cons.org>
+
+ * unicodeio.c (print_unicode_char): Cast the second iconv() arg,
+ to avoid a warning. Add back 'const' to inptr.
+
+2001-01-16 Jim Meyering <jim@meyering.net>
+
+ * basename.c: Include <stdio.h>, needed by assert on SunOS 4.
+ From Bruno Haible.
+
+2001-01-14 Jim Meyering <jim@meyering.net>
+
+ * rename.c: New file. From Volker Borchert.
+ Include stdlib.h, string.h or strings.h, and xalloc.h.
+ Use strip_trailing_slashes rather than open-coding it.
+
+2001-01-03 Paul Eggert <eggert@twinsun.com>
+
+ * strftime.c: Sync with glibc time/strftime.c 1.81.
+
+2001-01-03 Jim Meyering <jim@meyering.net>
+
+ * unicodeio.c (print_unicode_char): Remove `const' from declaration of
+ local `inptr' to avoid warning with some system declarations of iconv.
+
+2000-12-29 Paul Eggert <eggert@twinsun.com>
+
+ * modechange.c: Do not assume that mode_t uses the
+ traditional octal encoding. E.g. "chmod 1 FOO" should set
+ the other-execute bit of FOO even if S_IXOTH != 1.
+
+ (SUID, SGID, SVTX, RUSR, WUSR, XUSR, RGRP, WGRP, XGRP, ROTH,
+ WOTH, XOTH, ALLM): New macros.
+ (S_ISUID, S_ISGID, S_ISVTX, S_IRUSR, S_IWUSR, S_IXUSR,
+ S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH):
+ Use them.
+ (S_ISGID): Fix typo; it was defaulting to the same value as S_ISUID.
+ (S_IRWXU, S_IRWXG, S_IRWXO): Specify defaults in terms of the above.
+ (mode_compile):
+ No need to use uintmax_t; unsigned long is long enough.
+ Don't bother to get suffix since we don't use it.
+
+2000-12-24 Jim Meyering <jim@meyering.net>
+
+ * hash.c (is_prime): Return explicit boolean values.
+ (hash_get_first): Return NULL to appease Irix5.6's 89.
+ Reported by Nelson Beebe.
+
+2000-10-31 Bruno Haible <haible@clisp.cons.org>
+
+ * localcharset.c (locale_charset): Add support for Win32.
+
+2000-12-18 Paul Eggert <eggert@twinsun.com>
+
+ * physmem.h, physmem.c: New files.
+
+ * Makefile.am (libfetish_a_SOURCES): Add physmem.c.
+ (noinst_HEADERS): Add physmem.h.
+
+ * xstrtol.c (__xstrtol): Add undocumented suffixes 'g' and
+ 't' for compatibility with Solaris 8 sort.
+
+2000-12-18 Bruno Haible <haible@clisp.cons.org>
+
+ * config.charset: Add support for BeOS.
+
+2000-12-16 Jim Meyering <jim@meyering.net>
+
+ * getusershell.c [!SHELLS_FILE && __DJGPP__]: Define
+ SHELLS_FILE to a file name that's useful on djgpp systems.
+ Include stdlib.h.
+ (ADDITIONAL_DEFAULT_SHELLS): Define.
+ (default_shells): Prepend ADDITIONAL_DEFAULT_SHELLS.
+ Based mostly on a patch from Prashant TR.
+
+2000-12-16 Jim Meyering <jim@meyering.net>
+
+ This bug had a serious impact on chown: `chown N:M FILE' (for integer
+ N and M) would have treated it like `chown N:N FILE'.
+
+ * userspec.c (parse_user_spec): Fix typo: s/u/g/.
+
+2000-10-31 Bruno Haible <haible@clisp.cons.org>
+
+ * config.charset: Add ISO-8859-3, BIG5HKSCS, GB18030, JOHAB, VISCII,
+ CP874, CP949, CP950, CP1250, CP1253, CP1254, CP1255, CP1256, CP1257
+ to the list of canonical encodings. Rename EUC-CN to GB2312.
+
+2000-12-08 Andreas Schwab <schwab@suse.de>
+
+ * mbswidth.c (mbsnwidth): Don't loop endlessly when called with an
+ invalid mulitbyte sequence and with the MBSW_ACCEPT_INVALID flag set.
+
+2000-12-07 Jim Meyering <jim@meyering.net>
+
+ * stripslash.c (ISSLASH): Define.
+ (strip_trailing_slashes): Use ISSLASH rather than comparing against `/'.
+ From Prashant TR.
+
+ * dirname.c (FILESYSTEM_PREFIX_LEN): Define.
+ (dir_name_r): Declare this function as static.
+ [BACKSLASH_IS_PATH_SEPARATOR]: Fix a bug that'd
+ manifest itself on a name containing a mix of slashes and
+ backslashes.
+ Make this function work with names starting with a DOS-style
+ drive letter and colon prefix.
+ (dir_name): Append `.' if necessary.
+ Based mostly on patches from Prashant TR and Eli Zaretskii.
+
+ * dirname.h (dir_name_r): Remove prototype.
+
+2000-12-05 Jim Meyering <jim@meyering.net>
+
+ * dirname.c (dir_name_r): Add `const' in a few local declarations.
+
+2000-12-04 Jim Meyering <jim@meyering.net>
+
+ * path-concat.c: [!HAVE_DECL_MALLOC]: Declare malloc.
+ Also include memory.h, stdlib.h, unistd.h if appropriate.
+ Reported by Andreas Jaeger (conflicting declaration of malloc).
+
+2000-12-02 Jim Meyering <jim@meyering.net>
+
+ * closeout.h: Make idempotent, to avoid some obscure warnings.
+
+2000-12-01 Paul Eggert <eggert@twinsun.com>
+
+ * memrchr.c: Include <config.h> before any system include file.
+
+2000-11-29 Paul Eggert <eggert@twinsun.com>
+
+ * dirname.c (dir_name_r): Fix typo: int -> size_t.
+
+2000-11-26 Jim Meyering <jim@meyering.net>
+
+ * memcoll.c: Include sys/types.h. From Werner Almesberger.
+
+2000-11-22 Paul Eggert <eggert@twinsun.com>
+
+ * strftime.c (my_strftime): Do not invoke mbrlen with a
+ size of (size_t) -1; it's not portable.
+
+2000-11-17 Akim Demaille <akim@epita.fr>
+
+ * obstack.h: Formatting changes.
+ (obstack_grow, obstack_grow0): Don't cast WHERE at all: that would
+ prevent type checking.
+ (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
+ cast the value to (void *): assigning a `foo *' to a `void *'
+ variable is valid.
+ (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
+
+2000-11-17 Jim Meyering <jim@meyering.net>
+
+ * strstr.c: Update from GNU libc.
+
+2000-11-16 Jim Meyering <jim@meyering.net>
+
+ * strverscmp.c: Incorporate weak-alias-related changes from glibc.
+
+2000-11-11 Jim Meyering <jim@meyering.net>
+
+ * error.c: Add a couple #includes, merging from GNU libc version.
+
+2000-11-10 Jim Meyering <jim@meyering.net>
+
+ * obstack.h: Update from GNU libc.
+ * obstack.c: Likewise.
+
+2000-11-06 Paul Eggert <eggert@twinsun.com>
+
+ * getusershell.c (setusershell): Use rewind rather than
+ fseek/fseeko, to avoid configuration hassles with fseeko.
+ Don't bother opening SHELLS_FILE if shellstream is NULL;
+ it's not necessary.
+
+2000-11-05 Jim Meyering <jim@meyering.net>
+
+ * makepath.h (make_dir): Declare.
+ * makepath.c (make_dir): Remove `static' attribute.
+ Tweak a comment.
+
+2000-11-04 Alexandre Duret-Lutz <duret_g@epita.fr>
+
+ * hash.c (hash_get_next): Fix a thinko: when ENTRY is the
+ last one in a bucket, advance to the next bucket.
+
+2000-11-02 Vesselin Atanasov <vesselin@bgnet.bg>
+
+ * fnmatch.c: Do not comment out all the code if we are using
+ the GNU C library, because in some cases we are replacing buggy
+ code in the GNU C library itself.
+
+2000-10-30 Paul Eggert <eggert@twinsun.com>
+
+ * error.h, getline.h, modechange.h:
+ Remove "2000" from Copyright line, as the file hasn't been
+ changed this year other than in the copyright notice.
+
+ * xalloc.h: Add "2000" to Copyright line, as this file
+ was changed this year.
+
+2000-10-30 Paul Eggert <eggert@twinsun.com>
+
+ * fnmatch.c (FOLD): Do not assume that characters are unsigned.
+ (fnmatch): Fix some FNM_FILE_NAME and FNM_LEADING_DIR bugs,
+ e.g. fnmatch("d*/*1", "d/s/1", FNM_FILE_NAME) incorrectly yielded zero.
+
+2000-10-29 Greg Louis <glouis@dynamicro.on.ca>
+
+ * regex.h (__restrict_arr): Move definition out of #ifndef block.
+ Required because egcs-2.91.66 (aka 1.1.2) defines __restrict, but
+ doesn't define __restrict_arr.
+
+2000-10-29 Jim Meyering <jim@meyering.net>
+
+ * xstat.in: Fix grammar in comment.
+
+2000-10-28 Jim Meyering <jim@meyering.net>
+
+ * memchr.c: Update from libc.
+ Adjust for portability:
+ [HAVE_STDLIB_H]: Include stdlib.h.
+ [HAVE_BP_SYM_H || _LIBC]: Guard inclusion of bp-sym.h.
+ Undef __memchr, too.
+ [!weak_alias]: Define __memchr to memchr.
+
+ * regex.c: Update from libc.
+ * regex.h: Likewise.
+ * getopt1.c: Likewise.
+ * memcmp.c: Likewise.
+
+ * getusershell.c (setusershell) [HAVE_FSEEKO]: Use fseeko.
+ Avoid using fseek, when possible -- it's broken by design.
+ Patch by Ulrich Drepper.
+
+2000-10-26 Jim Meyering <jim@meyering.net>
+
+ * strftime.c: Update from libc.
+
+2000-10-25 Jim Meyering <jim@meyering.net>
+
+ * obstack.c: Update from libc.
+
+2000-10-23 Jim Meyering <jim@meyering.net>
+
+ * hard-locale.c (hard_locale): Revert last change -- it was simply
+ wrong. That set_locale call must not have any side effects.
+ From Paul Eggert.
+
+2000-10-22 Jim Meyering <jim@meyering.net>
+
+ * md5.c (md5_process_block) [OP]: Use `rol', not CYCLIC.
+ [CYCLIC]: Remove now-unused definition.
+
+ * save-cwd.c (O_DIRECTORY): Define, if needed.
+ (save_cwd) [HAVE_FCHDIR]: Use O_DIRECTORY when opening ".".
+ Suggestion from Ulrich Drepper.
+
+2000-10-21 Jim Meyering <jim@meyering.net>
+
+ * dirname.c (dir_name_r): New function, factored out of dir_name.
+ (dir_name): Use dir_name_r.
+ * dirname.h (dir_name_r): Declare it.
+
+2000-10-21 Jim Meyering <jim@meyering.net>
+
+ * dirname.c (memrchr): Declare if necessary.
+ (dir_name): Remove the restriction that there be no
+ trailing slashes. Now, this code skips past them, effectively
+ ignoring them.
+ [TEST_DIRNAME] (main): New unit tests.
+
+ * memrchr.c: New file from GNU libc.
+ Undef __memrchr, too.
+ [!weak_alias]: Define __memrchr to memrchr.
+ Guard weak_alias use with `#ifdef weak_alias'.
+
+2000-10-17 Jim Meyering <jim@meyering.net>
+
+ * quote.h (PARAMS): Define and use.
+ Reported by Akim Demaille.
+
+ * getopt.c: Update from libc.
+
+2000-10-16 Jim Meyering <jim@meyering.net>
+
+ * hard-locale.c (hard_locale): Use "", not 0 as 2nd arg to setlocale.
+ From Jan Fedak.
+
+2000-09-25 Jim Meyering <jim@meyering.net>
+
+ * md5.h (rol): Define (from GnuPG).
+
+ * sha.c: Give credit (GnuPG) where due.
+ (M): Use rol rather than open-coding it.
+ Add a FIXME comment.
+
+2000-09-21 Jim Meyering <jim@meyering.net>
+
+ * userspec.c (parse_user_spec): Remove debugging printf I'd added.
+ Reported by Michael Stone.
+
+2000-09-20 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (libfetish_a_SOURCES): Add sha.c.
+ (noinst_HEADERS): Add sha.h.
+ Based on code from Scott G. Miller and from GnuPG.
+
+2000-09-15 Jim Meyering <jim@meyering.net>
+
+ * regex.c: Update from libc.
+
+2000-09-10 Jim Meyering <jim@meyering.net>
+
+ * getopt.c (_getopt_internal): Update from glibc.
+
+2000-09-09 Jim Meyering <jim@meyering.net>
+
+ * quotearg.c: Rename ISASCII to IN_CTYPE_DOMAIN, so people don't
+ think it should be used as a general replacement for isascii.
+ * fnmatch.c: Likewise.
+ * mbswidth.c: Likewise
+ * regex.c: Likewise.
+
+ Don't use atoi.
+ * userspec.c: Include sys/param.h and limits.h.
+ Include xstrtol.h.
+ (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Define.
+ (UID_T_MAX, GID_T_MAX, MAXUID, MAXGID): Define.
+ (parse_user_spec): Use xstrtoul, not atoi when converting numeric
+ UID, GID. Check range.
+
+2000-09-06 Jim Meyering <jim@meyering.net>
+
+ * getopt.c (_getopt_internal): Update from glibc.
+
+2000-08-30 Jim Meyering <jim@meyering.net>
+
+ * strftime.c: Merge in changes from GNU libc.
+
+2000-08-26 Jim Meyering <jim@meyering.net>
+
+ * closeout.c: Include "__fpending.h".
+ (close_stdout_status): Return right away if there's nothing to flush.
+
+ * Makefile.am (noinst_HEADERS): Add __fpending.h.
+ * __fpending.c: New file.
+ * __fpending.h: New file.
+
+2000-08-07 Paul Eggert <eggert@twinsun.com>
+
+ Standardize on "memory exhausted" instead of "Memory exhausted"
+ or "virtual memory exhausted".
+ * obstack.c (print_and_abort): Use "memory exhausted", not
+ "virtual memory exhausted".
+ * same.c (same_name): Invoke xalloc_die instead of printing
+ our own message.
+ * userspec.c (parse_user_spec): Likewise.
+ * bumpalloc.h: comment fix
+ * same.c, userspec.c: Include xalloc.h.
+
+ * xalloc.h (xalloc_msg_memory_exhausted): Now char const[],
+ not char *const and pointing to a constant array.
+ * xmalloc.c (xalloc_msg_memory_exhausted): Likewise.
+ (xrealloc): Comment fix.
+
+ * userspec.c (parse_user_spec):
+ Don't translate a message until just before returning,
+ to avoid unnecessary translation.
+
+2000-08-07 Jim Meyering <jim@meyering.net>
+
+ * addext.c, argmatch.c, argmatch.h, backupfile.h, bumpalloc.h,
+ chown.c, diacrit.h, dirname.h, dup2.c, exclude.h, fileblocks.c,
+ fnmatch.c, fnmatch.h, fsusage.c, fsusage.h, getdate.h,
+ getgroups.c, gethostname.c, getopt.h, group-member.c,
+ hard-locale.c, hash.h, isdir.c, lchown.c, linebuffer.c,
+ linebuffer.h, long-options.h, malloc.c, md5.c, md5.h, memchr.c,
+ memcmp.c, memcoll.c, memset.c, mktime.c, modechange.h, obstack.h,
+ pathmax.h, realloc.c, rmdir.c, safe-read.c, save-cwd.c, stime.c,
+ stpcpy.c, strcasecmp.c, strcspn.c, strdup.c, stripslash.c,
+ strstr.c, strtod.c, strtol.c, strtoul.c, strtoull.c, strtoumax.c,
+ utime.c, version-etc.h, xalloc.h, xstrdup.c, xstrtoumax.c,
+ yesno.c: Back out Copyright date changes for each file with no change
+ this year. This eases coordination with other programs using the same
+ source code modules. From Paul Eggert.
+
+2000-08-03 Greg McGary <greg@mcgary.org>
+
+ * regex.c (SET_HIGH_BOUND, MOVE_BUFFER_POINTER,
+ ELSE_EXTEND_BUFFER_HIGH_BOUND): New macros.
+ (EXTEND_BUFFER): Use them.
+
+2000-08-01 Jim Meyering <jim@meyering.net>
+
+ * dirname.c (ISSLASH): Define.
+ (BACKSLASH_IS_PATH_SEPARATOR): Define.
+ (dir_name) [BACKSLASH_IS_PATH_SEPARATOR]: Handle the case in which
+ both `\' and `/' may be use as path separators.
+ Based on a patch from Prashant TR.
+
+2000-07-31 Paul Eggert <eggert@twinsun.com>
+
+ * quotearg.c (quotearg_n_options): Don't make the initial
+ slot vector a constant, since it might get modified.
+
+2000-07-31 Jim Meyering <jim@meyering.net>
+
+ * xmalloc.c: Use `virtual memory exhausted', not `Memory exhausted'.
+ * obstack.c (print_and_abort): Likewise.
+
+2000-07-30 Paul Eggert <eggert@twinsun.com>
+
+ * quotearg.c (quotearg_n_options): Preallocate a slot 0
+ buffer, so that the caller can always quote one small
+ component of a "memory exhausted" message in slot 0.
+ From a suggestion by Jim Meyering.
+
+2000-07-30 Jim Meyering <jim@meyering.net>
+
+ * makepath.c (make_path): Quote the other instance, too.
+
+ * quotearg.c (N_STATIC_SLOTVECS): Define.
+ (STATIC_BUF_SIZE): Define.
+ (quotearg_n_options): Use only statically allocated storage when
+ N < N_STATIC_SLOTVECS and the length of the quoted result is smaller
+ than STATIC_BUF_SIZE.
+
+2000-07-29 Jim Meyering <jim@meyering.net>
+
+ * diacrit.c (diacrit_diac): Use __MSDOS__ in favor of MSDOS.
+ * dirname.c (dir_name): Likewise.
+
+ * basename.c (base_name): Use ISSLASH rather than comparing against `/'.
+
+ * dirname.c (dir_name) [MSDOS]: Declare `lim' to be const.
+ (dir_name): Assert that there are no trailing slashes.
+
+2000-07-18 Bruno Haible <haible@clisp.cons.org>
+
+ * mbswidth.h (mbswidth): Add a flags argument.
+ (mbswidth): New declaration.
+ (MBSW_ACCEPT_INVALID, MBSW_ACCEPT_UNPRINTABLE): New macros.
+ * mbswidth.c (mbswidth): Add a flags argument.
+ (mbsnwidth): New function.
+
+2000-07-24 Jim Meyering <jim@meyering.net>
+
+ * mbswidth.c: Remove useless #else. From Bruno Haible.
+
+2000-07-23 Paul Eggert <eggert@twinsun.com>
+
+ * mbswidth.c (_XOPEN_SOURCE):
+ Don't define; this causes problems on Solaris 7.
+ (wcwidth) [!HAVE_DECL_WCWIDTH]: Declare.
+
+2000-07-23 Paul Eggert <eggert@twinsun.com>
+
+ * quotearg.c:
+ Include <wchar.h> even if ! (HAVE_MBRTOWC && 1 < MB_LEN_MAX),
+ so that mbstate_t is always defined.
+
+ Do not inspect MB_LEN_MAX, since it's incorrectly defined to
+ be 1 in at least one GCC installation, and this configuration
+ error is likely to be common. Ignoring MB_LEN_MAX hurts
+ performance on hosts that have mbrtowc but have only unibyte
+ locales, but I assume these hosts are rare.
+
+2000-07-23 Paul Eggert <eggert@twinsun.com>
+
+ * quotearg.c: Streamline by invoking multibyte code only if needed.
+ <wchar.h>: Include only if HAVE_MBRTOWC && 1 < MB_LEN_MAX.
+ (MB_CUR_MAX): Redefine to 1 if ! (HAVE_MBRTOWC && 1 < MB_LEN_MAX).
+ (quotearg_buffer_restyled): If a unibyte locale, don't bother to
+ invoke multibyte primitives.
+
+2000-07-23 Jim Meyering <jim@meyering.net>
+
+ * basename.c (base_name): Add an assertion.
+
+2000-07-15 Bruno Haible <clisp.cons.org>
+
+ * quotearg.c: When the system forces us to redefine mbstate_t,
+ shadow its mbsinit function.
+
+2000-07-16 Bruno Haible <haible@clisp.cons.org>
+
+ * mbswidth.h: New file.
+ * mbswidth.c: New file.
+ * Makefile.am (libfetish_a_SOURCES): Add mbswidth.c.
+ (noinst_HEADERS): Add mbswidth.h.
+
+2000-07-17 Bruno Haible <haible@clisp.cons.org>
+
+ * config.charset: Add support for FreeBSD. Improve support for HP-UX
+ and IRIX 6.
+
+2000-07-15 Jim Meyering <jim@meyering.net>
+
+ * makepath.c: Include quote.h.
+ (make_path): Convert "`%s'" in format strings to "%s", and wrap each
+ corresponding argument in a `quote (...)' call.
+ Give better diagnostics.
+
+ * Makefile.am (libfetish_a_SOURCES): Add quote.c.
+ (noinst_HEADERS): Add quote.h.
+
+ * quote.c (quote, quote_n): New file. Two functions taken verbatim
+ from tar's src/misc.c.
+ * quote.h: New file. Prototypes for same.
+
+2000-07-10 Paul Eggert <eggert@twinsun.com>
+
+ From a suggestion by Bruno Haible.
+ * quotearg.c (mbrtowc): Do not use HAVE_WCHAR_H in the definition.
+ Use defined mbstate_t, not HAVE_MBSTATE_T_OBJECT,
+ to decide whether to define the BeOS workaround macro;
+ this adjusts to the change to AC_MBSTATE_T.
+
+2000-07-13 Paul Eggert <eggert@twinsun.com>
+
+ * quotearg.h (enum quoting style): New enum clocale_quoting_style.
+
+ * quotearg.c (quoting_style_args, quoting_style_vals,
+ quotearg_buffer_restyled): Add support for
+ clocale_quoting_style. Undo previous change to
+ locale_quoting_style behavior, and undo the "{LEFT QUOTATION MARK}"
+ and "{RIGHT QUOTATION MARK}" msgids.
+
+2000-07-05 Paul Eggert <eggert@twinsun.com>
+
+ The old behavior of quoting `like this' doesn't look good with
+ newer, ISO-style fonts. See:
+ http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
+
+ Instead, quote "like this" by default. Let the translator
+ tailor the locale-specific quoting behavior by providing
+ translations for {LEFT QUOTATION MARK} and {RIGHT QUOTATION MARK}.
+
+ * quotearg.c (N_): New macro.
+ (gettext_default): New function.
+ (quotearg_buffer_restyled): Use
+ gettext_default ("{LEFT QUOTATION MARK}", "\"") for left quote, and
+ gettext_default ("{RIGHT QUOTATION MARK}", "\"") for right quote.
+
+2000-07-09 Jim Meyering <jim@meyering.net>
+
+ * Most files: Update copyright dates to include 2000.
+
+2000-07-08 Jim Meyering <jim@meyering.net>
+
+ * xgethostname.c (ENAMETOOLONG): Define to an unlikely value
+ if not defined.
+ (xgethostname): Remove now-unnecessary #ifdef.
+ Move declaration of `err' into loop where it's used.
+
+2000-07-05 Bruno Haible <haible@clisp.cons.org>
+
+ * xgethostname.c (xgethostname): Protect against the SunOS 5.5 bug
+ by allocating a larger buffer. Test the gethostname return value for
+ being >= 0, not == 0, for BeOS. Don't exhaust memory if gethostname
+ returns an error and ENAMETOOLONG isn't defined.
+
+2000-07-05 Paul Eggert <eggert@twinsun.com>
+ and Bruno Haible <haible@clisp.cons.org>
+
+ * quotearg.c (mbrtowc): Declare returned type, since BeOS doesn't.
+
+2000-07-05 Bruno Haible <haible@clisp.cons.org>
+
+ * quotearg.c (struct quoting_options): Simplify quote_these_too
+ dimension.
+
+2000-07-03 Jim Meyering <jim@meyering.net>
+
+ * strndup.c: [!HAVE_DECL_STRNLEN]: Declare strnlen.
+ Reported by Bruno Haible.
+
+2000-07-04 Jim Meyering <jim@meyering.net>
+
+ * quotearg.c: Make inclusion of <wchar.h> independent of whether
+ HAVE_MBRTOWC is set. Required at least for irix-5.6, which
+ lacks mbrtowc.
+
+2000-07-03 Paul Eggert <eggert@twinsun.com>
+ and Bruno Haible <haible@clisp.cons.org>
+
+ * quotearg.c (mbrtowc):
+ Assign to *pwc, and return 1 only if result is nonzero.
+ (iswprint): Use ISPRINT when substituting our own mbrtowc.
+
+2000-07-03 Jim Meyering <jim@meyering.net>
+
+ * readutmp.h: [HAVE_UTMPX_H]: Include <utmp.h> if HAVE_UTMP_H.
+ This is necessary to get a definition of e.g., UTMP_FILE on HP-UX 10.20.
+ From Bob Proulx.
+
+2000-07-02 Jim Meyering <jim@meyering.net>
+
+ * quotearg.c (mbstate_t): Don't define here.
+
+2000-07-02 Jim Meyering <jim@meyering.net>
+
+ * nanosleep.c (SIGCONT): Define if not already defined.
+
+2000-06-17 Bruno Haible <haible@clisp.cons.org>
+
+ * mountlist.c: Use MOUNTED_FS_STAT_DEV instead of MOUNTED_NEXT_DEV,
+ per change in ../m4/ls-mntd-fs.m4.
+ (read_filesystem_list): Ignore symbolic links.
+
+2000-06-29 Jim Meyering <jim@meyering.net>
+
+ * same.c: Include <string.h> or <strings.h>, as appropriate,
+ for declaration of strcmp.
+
+ * long-options.c: Include <stdlib.h>, for declaration of exit.
+
+ * mountlist.c (fsp_to_string) [HAVE_F_FSTYPENAME_IN_STATFS]:
+ Avoid warning by casting result to `char *' to remove `const'.
+
+2000-06-17 Bruno Haible <haible@clisp.cons.org>
+
+ * Makefile.am (libfetish_a_SOURCES): Remove readutmp.c.
+
+2000-06-26 Paul Eggert <eggert@twinsun.com>
+
+ savedir now sets errno on failure and invokes xmalloc to get memory.
+ Fix a couple of other minor bugs while we're at it.
+
+ * savedir.c (<unistd.h>): Do not include; there's no need.
+ (NAMLEN): Remove macro.
+ (malloc, realloc): Remove decls.
+ (stpcpy): Likewise.
+ ("xalloc.h"): Include.
+ (NAME_SIZE_DEFAULT): New macro.
+ (savedir): Use xmalloc / xrealloc to allocate memory.
+ Use NAME_SIZE_DEFAULT if name_size is negative or overflows to zero.
+ Skip "" directory entries.
+ Use strlen to calculate directory entry length, since the old method
+ is rarely used these days and isn't worth supporting.
+ Don't use a pointer after freeing it.
+ Check for integer overflow when calculating allocation size.
+ Use memcpy to copy entries, instead of stpcpy.
+ Set errno properly when returning NULL.
+ Check for readdir error.
+
+2000-06-26 Jim Meyering <jim@meyering.net>
+
+ * posixtm.c [HAVE_STDLIB_H]: Include stdlib.h, for decl of abort.
+
+2000-06-17 Bruno Haible <haible@clisp.cons.org>
+
+ * getusershell.c (xmalloc, xrealloc): Remove functions.
+ Include xalloc.h.
+ Don't include <stdlib.h>. Don't declare malloc, realloc.
+
+2000-06-23 Bruno Haible <haible@clisp.cons.org>
+
+ * unicodeio.c (print_unicode_char): Work around ansi2knr deficiency.
+
+2000-06-24 Jim Meyering <jim@meyering.net>
+
+ * error.c [!HAVE_DECL_STRERROR_R]: Declare strerror_r.
+
+2000-06-21 Jim Meyering <jim@meyering.net>
+
+ * getpass.c: New file, from Bruno Haible. Required for BeOS.
+
+2000-06-19 Paul Eggert <eggert@twinsun.com>
+
+ * quotearg.c: Include <wctype.h> after <wchar.h>, for Solaris 2.5.
+ (mbrtowc, mbstate_t): Define substitutes if
+ HAVE_MBRTOWC && HAVE_WCHAR_H && !HAVE_MBSTATE_T_OBJECT.
+ (iswprint): Define to 1 if !defined iswprint && !HAVE_ISWPRINT,
+ not if ! (HAVE_MBRTOWC && HAVE_WCHAR_H).
+
+2000-06-17 Bruno Haible <haible@clisp.cons.org>
+
+ * xgetcwd.c (xgetcwd): If the required pathname length is smaller
+ than 1024, return a memory chunk of least possible size, instead
+ of size PATH_MAX + 2. In the loop, increment the size proportionally.
+ Use free/xmalloc instead of xrealloc to avoid copying for very long
+ paths.
+
+2000-06-17 Bruno Haible <haible@clisp.cons.org>
+
+ * canon-host.c (canon_host): Use malloc and memcpy to copy an
+ address, not strdup. Include <stdlib.h> and don't declare free().
+
+2000-06-17 Bruno Haible <haible@clisp.cons.org>
+
+ * path-concat.c (path_concat): Don't access dir[-1] if dir is
+ the empty string.
+
+2000-06-21 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (libfetish_a_SOURCES): Add getstr.c.
+ (noinst_HEADERS): Add getstr.h.
+
+ * getline.c (getstr): Move into a separate file.
+ * getstr.c (getstr): New file, extracted from getline.c, with
+ the following changes: new parameter, delim2; both delim[12]
+ parameters have type `int', not `char'. The latter would lose
+ with 8-bit delimiters.
+ * getstr.h: New file.
+
+2000-06-19 Jim Meyering <jim@meyering.net>
+
+ * getloadavg.c [HAVE_NLIST_H] (NLIST_STRUCT): Define.
+
+2000-06-18 Jim Meyering <jim@meyering.net>
+
+ * mkdir.c: Remove file, due mainly to copyright incompatibility.
+ Besides, these days every porting target provides a mkdir function.
+
+ * strnlen.c: Include memory.h, string.h, and/or strings.h as needed.
+ (this snippet comes from src/system.h).
+
+2000-06-15 Paul Eggert <eggert@twinsun.com>
+
+ * human.c (adjust_value): New function.
+ (human_readable_inexact): Apply rounding style even when
+ printing approximate values.
+
+2000-06-14 Paul Eggert <eggert@twinsun.com>
+
+ * human.c (human_readable_inexact): Allow an input block
+ size that is not a multiple of the output block size, and vice versa.
+ Reported by Piergiorgio Sartor.
+
+2000-06-14 Paul Eggert <eggert@twinsun.com>
+
+ * getdate.y (get_date): Apply relative times after time
+ zone indicator, not before. Reported by Todd A. Jacobs.
+
+2000-06-13 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (all-local): Depend on lstat.c and stat.c.
+
+ * xstat.in [!HAVE_DECL_FREE]: Declare free in lstat.c.
+
+2000-06-12 Paul Eggert <eggert@twinsun.com>
+
+ * xstat.in: Include <stdlib.h> in lstat, to declare "free".
+
+2000-06-04 Paul Eggert <eggert@twinsun.com>
+
+ * strnlen.c: Include <config.h> if HAVE_CONFIG_H.
+
+2000-06-04 Jim Meyering <jim@meyering.net>
+
+ * getugroups.c (getugroups): Cast -1 to gid_t, for systems like
+ SunOS 4.1.4 for which gid_t is an unsigned type.
+
+2000-06-03 Jim Meyering <jim@meyering.net>
+
+ * strnlen.c [!HAVE_DECL_MEMCHR]: Declare memchr.
+
+2000-05-26 Bruno Haible <haible@clisp.cons.org>
+
+ * Makefile.am (install-exec-local): On systems with glibc-2.1 or
+ newer, don't install charset.alias.
+ * config.charset: Change the Linux/glibc rules so they become empty
+ on glibc-2.1 or newer.
+
+2000-06-02 Jim Meyering <jim@meyering.net>
+
+ * mountlist.c: Back out last change. Instead, do this...
+ * mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Set the me_dummy
+ member using the same `ignore'-testing code.
+ * mountlist.h (ME_DUMMY): Add `autofs' to the list of ignored
+ fs_type strings.
+ From Mark D. Roth.
+
+2000-05-29 Jim Meyering <jim@meyering.net>
+
+ * mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Ignore mounts
+ with the `ignore' attribute. Based on a patch from Mark D. Roth.
+
+2000-05-22 Jim Meyering <jim@meyering.net>
+
+ * makepath.c: Remove old, now-unnecessary `#ifdef __MSDOS__' block.
+
+2000-05-18 Jim Meyering <jim@meyering.net>
+
+ * hash.c (hash_rehash): Fix a nasty bug: copy the free entry list
+ back, too, since it may have been modified by allocate_entry.
+ (hash_delete): Rewrite to use neither the assignment operator
+ nor the comma operator in an if-expression.
+
+2000-05-15 Paul Eggert <eggert@twinsun.com>
+
+ * closeout.c:
+ <sys/stat.h>, <sys/types.h>, <unistd.h>, (STDOUT_FILENO):
+ Remove; no longer needed.
+ "quotearg.h": Add include.
+ (file_name): Do not bother to explicitly initialize to NULL; it's less
+ efficient on some hosts.
+ (close_stdout_status): Remove test as to whether stdout was already
+ closed; it breaks for the case "echo x | sort >&-".
+ Quote file name colons.
+ Do not assume that _("write error") lacks format strings.
+
+2000-05-15 Jim Meyering <jim@meyering.net>
+
+ * version-etc.c (version_etc_copyright): Update the copyright string
+ used in all --version output.
+
+2000-05-14 Jim Meyering <jim@meyering.net>
+
+ * closeout.c (close_stdout_set_file_name): New function.
+ (close_stdout_status): Use new file-scoped global.
+ Return right away if fstat says the stdout file descriptor is invalid.
+ * closeout.h (close_stdout_set_file_name): Declare.
+
+2000-05-10 Jim Meyering <jim@meyering.net>
+
+ * closeout.c [default_exit_status]: New file-scoped variable.
+ (close_stdout_set_status): New function.
+ * closeout.h (close_stdout_set_status): Declare.
+
+2000-05-08 Jim Meyering <jim@meyering.net>
+
+ * long-options.c: Don't include closeout.h.
+ (parse_long_options): Don't call close_stdout for --version.
+
+2000-05-06 Jim Meyering <jim@meyering.net>
+
+ * strnlen.c: Undefine __strnlen and strnlen.
+ [!weak_alias]: Define __strnlen to strnlen.
+
+ * atexit.c: New file, from libiberty.
+
+2000-05-06 Jim Meyering <jim@meyering.net>
+
+ * closeout.c (close_stdout_status): Also check for errors on the
+ stderr stream.
+
+2000-05-05 Bruno Haible <haible@clisp.cons.org>
+
+ * localcharset.c (get_charset_aliases): Use malloc, realloc and memcpy
+ instead of xmalloc, xrealloc, path_concat.
+ (locale_charset): Treat empty environment variables as absent.
+ (DIRECTORY_SEPARATOR, ISSLASH): New macros.
+
+2000-05-04 Jim Meyering <jim@meyering.net>
+
+ * getopt.c: Update from glibc.
+ * obstack.c: Likewise.
+ * obstack.h: Likewise.
+ * regex.c: Likewise. NB: K&R compiler support is dropped for this file
+
+ * regex.h: Likewise.
+ * strndup.c: Likewise.
+ * strnlen.c: New file, from glibc.
+
+2000-05-01 Jim Meyering <jim@meyering.net>
+
+ * full-write.c (full_write): Remove `FIXME' part of comment.
+
+2000-04-29 Jim Meyering <jim@meyering.net>
+
+ * path-concat.c: Declare strdup only if it's not defined.
+ * canon-host.c: Likewise.
+
+2000-04-28 Jim Meyering <jim@meyering.net>
+
+ * rpmatch.c [HAVE_LIMITS_H]: Include limits.h before regex.h to avoid
+ redefinition warning on some systems (HPUX). Otherwise, regex.h is
+ included first, then limits.h is included by locale.h by libintl.h.
+ From John David Anglin.
+
+2000-04-25 Jim Meyering <jim@meyering.net>
+
+ * makepath.c (S_IRWXUGO): Define.
+ (make_path): Always perform explicit chmod if MODE specifies any
+ of the `special' permission bits. Prompted by a bug report against
+ install from Mate Wierdl and Joost van Baal.
+
+2000-04-18 Jim Meyering <jim@meyering.net>
+
+ * README: New file.
+
+ * getpagesize.h [!getpagesize && HAVE_OS_H && B_PAGE_SIZE]: Define
+ getpagesize. For BeOS. Based on a patch from Bruno Haible.
+
+2000-04-17 Jim Meyering <jim@meyering.net>
+
+ * strftime.c (my_strftime) [strftime]: Declare strftime here, since
+ the definition of it to rpl_strftime also defined-away the system's
+ declaration.
+
+2000-04-15 Jim Meyering <jim@meyering.net>
+
+ Use `C' to denote so-called `contiguous' files, the same way
+ that tar does.
+ * filemode.c (S_ISCTG) [!S_ISCTG && S_IFCTG]: Define.
+ (ftypelet): Use S_ISCTG.
+ From Michael Deutschmann.
+
+2000-04-14 Jim Meyering <jim@meyering.net>
+
+ * strftime.c (my_strftime) [#ifdef strftime]: Declare strftime.
+
+2000-04-08 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (charset.alias): Use t-$@, not $@-t so the DOS 8.3
+ names don't conflict. Reported by Eli Zaretskii.
+
+2000-03-28 Bruno Haible <haible@clisp.cons.org>
+
+ * unicodeio.c (print_unicode_char): Avoid triggering Solaris iconv
+ bug. Deal with the different error behavior of Irix iconv.
+
+2000-04-07 Jim Meyering <jim@meyering.net>
+
+ * putenv.c: Move inclusion of errno.h so it follows that of sys/types.h,
+ to work around system header problems on AIX 3.2.5. From Bruno Haible.
+
+2000-04-05 Jim Meyering <jim@meyering.net>
+
+ Portability tweaks required for ultrix4.3.
+ * readutmp.h [HAVE_UTMPX_H && !HAVE_DECL_GETUTENT]: Declare getutent.
+ * readutmp.c: Include sys/types.h before sys/stat.h.
+ * canon-host.c: Declare strdup.
+ * path-concat.c: Likewise.
+ From John David Anglin.
+
+2000-04-04 Jim Meyering <jim@meyering.net>
+
+ Be more DOS 8.3-friendly.
+ * ref-add.sin: Renamed from ref-add.sed.in.
+ * ref-del.sin: Renamed from ref-del.sed.in.
+ * Makefile.am: Reflect renaming.
+ Reported by Eli Zaretskii.
+
+ Use a temporary file name that won't clash with `charset.alias'
+ in the DOS 8.3 name space.
+ * Makefile.am (charset_tmp): Define.
+ (install-exec-local): Use $(charset_tmp) instead of $(charset_alias)-t.
+ (uninstall-local): Likewise.
+ Reported by Eli Zaretskii.
+
+2000-03-29 Paul Eggert <eggert@twinsun.com>
+
+ * time/strftime.c (my_strftime): Make sure we call the system
+ strftime, not ourselves, when invoking the underlying strftime.
+
+2000-03-24 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (EXTRA_DIST): Add ref-add.sed.in and ref-del.sed.in.
+ (charset_alias): Define.
+ (install-exec-local): Factor out common code.
+ (uninstall-local): Split lines longer than 80.
+ (ref-add.sed, ref-del.sed): Remove rules... (do the following instead)
+ (SUFFIXES): Define.
+ (.sed.in.sed): New rule. Don't redirect directly to $@.
+ (CLEANFILES): Add ref-add.sed and ref-del.sed.
+
+2000-03-19 Bruno Haible <haible@clisp.cons.org>
+
+ * config.charset: Output a line containing "Packages using this file".
+ * ref-add.sed.in, ref-del.sed.in: New files.
+ * Makefile.am (install-exec-local, uninstall-local, ref-add.sed,
+ ref-del.sed): New rules.
+
+2000-03-17 Jim Meyering <jim@meyering.net>
+
+ * unicodeio.c (<string.h>): Include only #if HAVE_STRING_H.
+ Otherwise, include <strings.h>
+
+2000-03-17 Bruno Haible <haible@clisp.cons.org>
+
+ * unicodeio.c (utf8_wctomb): New function.
+ (print_unicode_char): Pass the Unicode character to iconv in UTF-8
+ format instead of in UCS-4 with platform dependent endianness.
+
+2000-03-07 Paul Eggert <eggert@twinsun.com>
+
+ * savedir.c (savedir): Work even if directory size is
+ negative; this can happen with some screwy NFS configurations.
+
+2000-03-06 Jim Meyering <jim@meyering.net>
+
+ * localcharset.c (get_charset_aliases): Don't try to free file_name
+ if it's NULL (because we ran out of memory). From Bruno Haible.
+
+2000-03-05 Jim Meyering <jim@meyering.net>
+
+ * localcharset.c ("path-concat.h"): Include.
+ (get_charset_aliases): Use path_concat instead of ANSI string
+ concatenation.
+
+ * unicodeio.h (PARAMS): Define.
+ Use it to guard prototype.
+
+2000-03-04 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (install-exec-local): Create $(libdir) before installing
+ into it.
+ (uninstall-local): Uncomment this rule so `make distcheck' works
+ once again.
+
+ * unicodeio.c (<errno.h>): Include it.
+ (errno): Declare if not defined.
+
+ * localcharset.c: Add Bruno's comment justifying use of volatile.
+
+ * config.charset: New version, incorporating remarks from a linux
+ i18n mailing list. From Bruno Haible.
+
+2000-03-02 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (EXTRA_DIST): Add config.charset.
+
+2000-03-01 Jim Meyering <jim@meyering.net>
+
+ * localcharset.c: Guard some #includes with `#if HAVE_...'.
+ * unicodeio.c: Likewise.
+
+2000-02-02 Bruno Haible <haible@clisp.cons.org>
+
+ * config.charset: New file.
+ * localcharset.c: New file.
+ * unicodeio.h, unicodeio.c: New files.
+ * Makefile.am (DEFS): Add -DLIBDIR=...
+ (libfetish_a_SOURCES): Add localcharset.c and unicodeio.c.
+ (noinst_HEADERS): Add unicodeio.h.
+ (all-local, install-exec-local, charset.alias): New targets.
+
+2000-02-28 Paul Eggert <eggert@twinsun.com>
+
+ * quotearg.c (ALERT_CHAR): New macro.
+ (quotearg_buffer_restyled): Use it.
+
+2000-02-27 Jim Meyering <jim@meyering.net>
+
+ * strtoumax.c: Fix typo in decl of strtoul: s/long long/long/.
+ Guard declaration of strtoull also with `&& HAVE_UNSIGNED_LONG_LONG'.
+
+ * backupfile.c: Guard inclusion of stdlib.h with `#if HAVE_STDLIB_H',
+ not `#if STDC_HEADERS'.
+ Declare malloc if needed.
+
+ * backupfile.c: Use `#if !HAVE_DECL...' instead of `#ifndef HAVE_DECL..'
+ now that autoconf always defines the HAVE_DECL_ symbols.
+ * human.c: Likewise.
+ * same.c: Likewise.
+ * strtoumax.c: Likewise.
+
+ * backupfile.c: Arrange for cpp to fail if the configure-time
+ declaration check was not run.
+ * hash.c: Likewise.
+ * human.c: Likewise.
+ * same.c: Likewise.
+ * strtoumax.c: Likewise.
+
+ * userspec.c (parse_user_spec): If there is no `:' but there is a `.',
+ then first look up the entire `.'-containing string as a login name.
+
+2000-02-18 Paul Eggert <eggert@twinsun.com>
+
+ * getdate.y: Handle two-digit years with leading zeros correctly.
+ (textint): New typedef.
+ (parser_control): Member year changed from int to textint.
+ All uses changed.
+ (YYSTYPE): Removed; replaced by %union with int and textint members.
+ (tDAY, tDAY_UNIT, tDAYZONE, tHOUR_UNIT, tID, tLOCAL_ZONE, tMERIDIAN,
+ tMINUTE_UNIT, tMONTH, tMONTH_UNIT tSEC_UNIT, tSNUMBER, tUNUMBER,
+ tYEAR_UNIT, tZONE, o_merid): Now of type <intval>.
+ (tSNUMBER, tUNUMBER): Now of type <textintval>.
+ (date, number, to_year): Use width of number in digits, not its value,
+ to determine whether it's a 2-digit year, or a 2-digit time.
+ (yylex): Store number of digits of numeric tokens.
+ Reported by John Kendall.
+
+ (parser_control): Changed from struct parser_control to typedef (for
+ consistency). All uses changed.
+
+ (tID): Removed; not used.
+ (yylex): Return '?' for unknown identifiers, rather than (unused) tID.
+
+2000-02-14 Paul Eggert <eggert@twinsun.com>
+
+ * getpagesize.h (getpagesize): Port to VMS for Alpha;
+ adapted from changes to grep getpagesize.h by Martin P.J. Zinser.
+
+2000-02-12 Jim Meyering <jim@meyering.net>
+
+ * userspec.c (ISDIGIT): Define it.
+ (isdigit): Remove definition.
+ (is_number): Use ISDIGIT, not isdigit.
+ <libintl.h>: Include.
+ (_ and N_): Define.
+ (parse_user_spec): Mark translatable strings.
+
+2000-02-10 Jim Meyering <jim@meyering.net>
+
+ With these changes, nanosleep.[ch] are finally enough like the other
+ lib/* replacement files to compile on a few more losing systems.
+
+ * nanosleep.h: Don't include config.h.
+ Remove prototype from declaration of nanosleep.
+ (PARAMS): Remove now-unneeded definition.
+ * nanosleep.c: #undef nanosleep.
+ (rpl_nanosleep): Rename from nanosleep.
+
+2000-02-03 Jim Meyering <jim@meyering.net>
+
+ * readutmp.c (read_utmp): Guard with `#ifdef UTMP_NAME_FUNCTION',
+ rather than with `#if HAVE_UTMPNAME'.
+
+2000-02-01 Jim Meyering <jim@meyering.net>
+
+ * readutmp.h (UT_USER): Add parens. From Andreas Schwab.
+
+2000-01-31 Jim Meyering <jim@meyering.net>
+
+ * nanosleep.h (nanosleep): Guard declaration with
+ `#if ! HAVE_DECL_NANOSLEEP'.
+ Without this, OFS gets a redeclaration error for rpl_nanosleep, due to
+ the declaration in that vendor's sys/timers.h.
+ Reported by Christian Krackowizer.
+
+ * quotearg.c (ISASCII): Add #undef and move definition to follow
+ inclusion of wctype.h to work around Solaris 2.6 namespace pollution.
+ (ISPRINT): Likewise.
+ Reported by Tom Tromey.
+
+2000-01-30 Jim Meyering <jim@meyering.net>
+
+ * readutmp.c (extract_trimmed_name): Use UT_USER instead of hard-coding
+ uses of ->ut_name. The latter doesn't work with new Linux header files
+ where only utmpx.ut_user is declared.
+
+ * readutmp.h (UT_USER): Define.
+
+2000-01-23 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (libfetish_a_SOURCES): Remove explicit mention of
+ obstack.c.
+
+2000-01-22 Jim Meyering <jim@meyering.net>
+
+ * strtoumax.c: [! HAVE_DECL_STRTOUL]: Declare strtoul.
+ [! HAVE_DECL_STRTOULL]: Declare strtoull.
+ Required for some AIX systems. Reported by Christian Krackowizer.
+ [TESTING] (main): New function.
+
+ 1997-10-17 Eli Zaretskii <eliz@is.elta.co.il>
+ * dirname.c (dir_name): Support for DOS-style file names with drive
+ letters.
+
+ * quotearg.c [HAVE_WCTYPE_H]: Include <wctype.h> for decl of iswprint.
+
+ * strverscmp.c (ISDIGIT): Define.
+ (strverscmp): Use ISDIGIT, not isdigit.
+
+2000-01-17 Paul Eggert <eggert@twinsun.com>
+
+ * nanosleep.c (nanosleep):
+ Don't use SA_INTERRUPT to decide whether to call sigaction, as
+ POSIX.1 doesn't require SA_INTERRUPT and some systems
+ (e.g. Solaris 7) don't define it. Use SA_NOCLDSTOP instead;
+ it's been part of POSIX.1 since day 1 (in 1988).
+
+2000-01-17 Jim Meyering <jim@meyering.net>
+
+ * interlock: Remove unused file. Reported by François Pinard.
+
+2000-01-16 Paul Eggert <eggert@twinsun.com>
+
+ * quotearg.c (quotearg_buffer_restyled): Do not quote
+ alert, backslash, formfeed, and vertical tab unnecessarily in
+ shell quoting style.
+
+
+ -----
+
+ Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 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.