diff options
author | Jim Meyering <meyering@redhat.com> | 2009-04-04 12:39:44 +0200 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2009-04-04 12:40:58 +0200 |
commit | 8e8b025c9000b781bee81cecd68f863d51c254a7 (patch) | |
tree | 2a314000a6288ed05905c201655ebddcbf61839d /lib/ChangeLog-2007 | |
parent | 7008e33441567ba87b3fb7538bd051e0bde2d155 (diff) | |
download | coreutils-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-2007 | 8754 |
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. |