2006-02-03  Jim Meyering  <jim@meyering.net>

	* Version 6.0-cvs.

	* configure.ac: Require automake-1.9.6, not 1.8.3.

2006-02-01  Paul Eggert  <eggert@cs.ucla.edu>

	* src/od.c (usage): Mention that -t a ignores high order bit.
	Documentation problem reported by Ed Avis.

2006-02-01  Jim Meyering  <jim@meyering.net>

	* src/pwd.c (find_dir_entry): Remove unused local, `ent_sb_valid'.

2006-01-30  Paul Eggert  <eggert@cs.ucla.edu>

	* src/head.c (main): Use a better diagnostic when someone uses a
	trailing numeric option in an invalid way.  Problem reported by
	Karl Berry.
	* src/tail.c (parse_options): Likewise.

2006-01-30  Jim Meyering  <jim@meyering.net>

	* man/wc.x: Include `count' keyword in man page synopsis,
	per suggestion from http://bugs.debian.org/181585.

2006-01-24  Paul Eggert  <eggert@cs.ucla.edu>

	* src/df.c (show_dev): If the file system claims to have
	more available than total blocks, report the number of used
	blocks as being total - available (a negative number) rather
	than as garbage.  Problem reported by Toralf Foerster.

2006-01-24  Jim Meyering  <jim@meyering.net>

	* src/tail.c (tail_forever): Don't exit-nonzero when an attempt
	to put a regular file in O_NONBLOCK mode fails with EPERM.
	That happens on Linux when using tail -f on a file with the
	append-only attribute.  Reported by Dean Gaudet.  For details,
	see http://savannah.gnu.org/bugs/?func=detailitem&item_id=15473.
	* NEWS: Mention this fix.
	* tests/tail-2/append-only: New file.  Test for the above.
	* tests/tail-2/Makefile.am (TESTS): Add append-only.
	* tests/Makefile.am (check-root): Add tail-2/append-only

2006-01-21  Jim Meyering  <jim@meyering.net>

	* NEWS: Mention fts-related improvements and bug fixes.

2006-01-19  Jim Meyering  <jim@meyering.net>

	* tests/fmt/basic (pfx-1, pfx-2): New tests, to demonstrate the bug
	reported as http://bugs.debian.org/147577.  Forwarded by Thomas Hood.

2006-01-18  Jim Meyering  <jim@meyering.net>

	* tests/du/Makefile.am (TESTS): Add long-from-unreadable.

2006-01-17  Jim Meyering  <jim@meyering.net>

	Now that fts no longer changes the current working directory, adjust
	its clients accordingly -- note that du.c uses fts but doesn't need
	any adjustment, since it doesn't operate on the actual files,
	but rather just uses the stat buffers provided by fts.

	* src/chown-core.c: Include "openat.h".
	Don't include "lchown.h".
	(restricted_chown): Accept a new parameter, CWD_FD, and use it in
	calling openat, lchownat, chownat, rather than open, lchown, chown.
	Update caller.
	* src/chmod.c: Include "openat.h".
	(process_file): Use chmodat (fts->fts_cwd_fd,... in place of chmod (...

	* tests/du/long-from-unreadable: New test, to exercise one small
	corner of fts.c.

2006-01-13  Jim Meyering  <jim@meyering.net>

	* tests/Makefile.am (SUBDIRS): Add comments discouraging the
	addition of new directories under tests/.

	* tests/acl: Redirect stdin to /dev/null.  Otherwise, FreeBSD 5.0's
	getfacl would hang.

2006-01-12  Jim Meyering  <jim@meyering.net>

	* tests/du/long-sloop: Adjust not to hard-code the expected
	diagnostic corresponding to ELOOP.  Solaris' diagnostic differs
	from that of GNU libc.  Reported by Paul Eggert.

	* tests/du/long-sloop: Create file at end of symlink chain.

	* tests/misc/test: New file, with a test for one of the
	bugs fixed by yesterday's test.c changes.
	* tests/misc/Makefile.am (TESTS): Add test.

2006-01-11  Jim Meyering  <jim@meyering.net>

	* tests/du/long-sloop: New file.  Test for today's fts.c bug fix.
	That bug could make du -L, chgrp -L, or chown -L fail to diagnose
	a very long sequence of symbolic links (not necessarily a loop).
	* tests/du/Makefile.am (TESTS): Add long-sloop.

2006-01-11  Paul Eggert  <eggert@cs.ucla.edu>

	* src/test.c (test_syntax_error): Append a newline.  All callers
	changed, except for the ones that didn't already append a newline.
	Bug reported by Eric Blake.

2006-01-11  Jim Meyering  <jim@meyering.net>

	* src/system.h (X2NREALLOC): Now that verify_true is no longer
	void, cast its result to void, to avoid gcc's warning that
	``left-hand operand of comma expression has no effect''.
	(DECIMAL_DIGIT_ACCUMULATE, X2REALLOC): Likewise.

2006-01-10  Jim Meyering  <jim@meyering.net>

	* tests/chmod/no-x: Add a test for today's fts.c fix.

2006-01-10  Jim Meyering  <jim@meyering.net>  (tiny change)

	* src/ls.c (gobble_file): Use DTTOIF only if it's defined.
	This is necessary for Dragonfly.  Patch by Joerg Sonnenberger.

2006-01-10  Paul Eggert  <eggert@cs.ucla.edu>

	* src/system.h (X2NREALLOC, X2REALLOC, DECIMAL_DIGIT_ACCUMULATE):
	Use verify_true instead of verify_expr, to sync with gnulib.

2006-01-08  Jim Meyering  <jim@meyering.net>

	* src/date.c (usage): Adjust the formatting of the entries for
	%::z and %:::z (separate with two spaces, not one) so that help2man
	formats them properly.  Reported by Philip Rowlands.

2006-01-06  Paul Eggert  <eggert@cs.ucla.edu>

	* configure.ac (gl_IGNORE_UNUSED_LIBRARIES): Add.

2006-01-06  Jim Meyering  <jim@meyering.net>

	* Makefile.maint (copyright-check): Use date +%Y in place of
	hard-coded 2005.

	* src/remove.c (rm_1): Remove `static' attribute on local `status'.
	First off, the attribute should have been `volatile' (not static)
	to avoid longjmp-related risk of clobber.  Secondly, now there is
	no longer any risk of a local variable being clobbered, so there's
	no need for any attribute at all.

2006-01-05  Jim Meyering  <jim@meyering.net>

	* src/remove.c: Give a few functions the inline attribute.
	(AD_pop_and_chdir): Use gotos to avoid some duplication.
	(AD_push): Rewrite an assertion so that the entire computation
	goes away when assertions are turned off.

	* src/tail.c (ENOSYS) [!defined ENOSYS]: Don't define here.
	It's already defined in "system.h".
	* Makefile.maint: Add a FIXME comment.

2006-01-04  Jim Meyering  <jim@meyering.net>

	* ChangeLog: Remove entries from 2005-10-22 and earlier.
	* ChangeLog-2005: New file, for entries up to version 5.92.

2006-01-03  Jim Meyering  <jim@meyering.net>

	* tests/du/no-x: Also allow a slightly different diagnostic -- the
	one you get when using openat-enabled fts.c and du (coming soon).
	* tests/chmod/no-x: Likewise.
	* tests/chgrp/no-x: Likewise.

	* src/system.h (O_DIRECTORY) [!defined O_DIRECTORY]: Define.

2006-01-02  Paul Eggert  <eggert@cs.ucla.edu>

	* src/chown-core.c (RC_do_ordinary_chown): New enum value.
	(restricted_chown): Return it, if the file cannot be accessed due
	to EPERM, or if no uid or gid are required, or if the file is
	neither a directory nor a regular file.  Rewrite to avoid gotos.
	(change_file_owner): Handle RC_do_ordinary_chown case.
	Rewrite to avoid gotos.
	* tests/chgrp/basic: Make sure we can change the group of
	inaccessible files.

	* src/date.c (usage): Explain %g, %G, and %V a bit better.

2006-01-02  Jim Meyering  <jim@meyering.net>

	* src/copy.c (set_owner): Correct a comment.

	* src/tail.c (parse_options): Change warning to say that --retry
	is useful `mainly' (not `only') when following by name.
	Reported here: http://bugs.debian.org/273781

2006-01-01  Paul Eggert  <eggert@cs.ucla.edu>

	* NEWS: Document that mkfifo and mknod -m no longer set special bits.
	* src/copy.c: Include lchmod.h.
	(copy_internal): Use lchmod rather than chmod.
	* src/cp.c: Include lchmod.h.
	(re_protect, make_dir_parents_private): Use lchmod rather than chmod.
	* src/mkdir.c: Include lchmod.h.
	(usage): Clarify -m's operation.
	(main): Use lchmod rather than chmod.  Don't use lchmod unless the
	new mode contains bits outside the 777 range.
	* src/mkfifo.c (usage): Clarify -m's operation.
	(main): If -m is given, don't invoke chmod; use umask 0 instead.
	Report an error if -m asks for bits outside the 777 range.
	* src/mknod.c (usage, main): Likewise.

	* src/mkdir.c, src/mkfifo.c, src/mknod.c: Undo 2005-12-19 changes.

2005-12-27  Jim Meyering  <jim@meyering.net>

	* Makefile.maint (sc_obsolete_symbols): Prohibit use of O_NDELAY.
	(sc_prohibit_assert_without_use): New rule.
	(syntax-check-rules): Add it to the list.
	* .x-sc_prohibit_assert_without_use: New empty file.
	* Makefile.am (EXTRA_DIST): Add it.

	* Makefile.maint (CVS_LIST): Define in terms of $(srcdir).

	* cp.c, df.c, link.c, mknod.c, nice.c, sleep.c, unlink.c:
	Don't include <assert.h>; it wasn't used.

2005-12-26  Paul Eggert  <eggert@cs.ucla.edu>

	* src/chown-core.c (restricted_chown):
	Don't try O_WRONLY unless O_RDONLY failed wth EACCES.
	* src/remove.c (fd_to_subdirp): Open with O_DIRECTORY | O_NOCTTY
	| O_NOFOLLOW too, for consistency with other dir-openers.
	Use POSIX-preferred O_NONBLOCK rather than O_NDELAY.
	(is_empty_dir): Likewise.
	* src/shred.c (wipename): Likewise.  Don't bother trying to open
	dir for writing, since POSIX prohibits it.

2005-12-22  Jim Meyering  <jim@meyering.net>

	* tests/help-version: Redirect stderr to /dev/full, to suppress
	write error diagnostic.

2005-12-19  Jim Meyering  <jim@meyering.net>

	* src/mkdir.c, src/mknod.c, src/mkfifo.c (main)
	Avoid a minor race condition when `-m MODE' is specified, by using
	open, fchown, and close rather than just chown.  To do that reliably --
	even with an overly restrictive umask -- ensure that each mkdir,
	mknod and mkfifo call uses a mode including at least owner-read access.
	* src/mknod.c (main): When `-m MODE' is specified, exit nonzero if
	the subsequent chown (or equivalent open,fchown,close) fails.
	* tests/misc/mknod: New tests.
	* tests/misc/Makefile.am (TESTS): Add mknod.

2005-12-17  Jim Meyering  <jim@meyering.net>

	* src/remove.c (is_empty_dir): Open with O_NDELAY, so we don't hang,
	e.g., on a named pipe.
	(OPEN_NO_FOLLOW_SYMLINK): Remove definition.  Use O_NOFOLLOW in
	place of all uses, since it is guaranteed (system.h) to be defined.

2005-12-05  Andreas Gruenbacher  <agruen@suse.de>

	Add POSIX ACL support
	* src/ls.c: Switch back from HAVE_ACL to USE_ACL: The acl() syscall
	is no requirement for ACL support; particularly, it does not exist
	on systems that have POSIX ACLs.
	* src/copy.h (cp_option_init) [umask_kill]: Remove member.
	* src/cp.c (umask_kill): With default acls, the umask is not to be
	applied.  Remove umask_kill, don't change the process umask, and let
	the kernel apply the umask where appropriate.
	* src/cp.c (make_dir_parents_private): Fix logic for POSIX ACLs.
	* src/copy.c (get_dest_mode): Remove; it is obsolete after removing
	umask_kill.
	(copy_reg, copy_internal): Use copy_acl and set_acl
	instead of fchown/chown. Fix the logic for POSIX ACLs.
	(chown_succeded): Remove; we now always copy acls and
	preserve S_ISUID, S_ISGID, and S_ISVTX when needed, no matter if we
	did a chown before or not.
	* src/mv.c, src/install.c (cp_option_init): Don't set umask_kill member.
	* src/Makefile.am (dir_LDADD, ls_LDADD, vdir_LDADD, cp_LDADD,
	mv_LDADD, ginstall_LDADD): On systems with an ACL library, arrange
	to link with it via $(LIB_ACL), for the utilities that need it.

2005-12-16  Paul Eggert  <eggert@cs.ucla.edu>

	* src/remove.c (OPENAT_CWD_RESTORE__REQUIRE): Remove.
	(OPENAT_CWD_RESTORE__ALLOW_FAILURE): Likewise.
	(fd_to_subdirp): Remove openat_cwd_restore_allow_failure arg; its
	value is now signified by whether cwd_errno is null.
	(fd_to_subdirp, remove_dir, rm_1); Change cwd failure indicator from
	pointer-to-bool to pointer-to-errno-value.  All callers changed.
	(rm_1): Don't bother setting a local cwd failure flag and then
	ORing it into the caller's.  Just set the caller's.
	(rm): Use cwd failure errno value to print a slightly-better
	diagnostic.

2005-12-15  Jim Meyering  <jim@meyering.net>

	* src/stat.c (print_it): Properly handle a backslash at the
	end of a --printf format string.  Reported by Paul Eggert.
	* tests/misc/stat-printf (end-bs): Add a test for the above.

2005-12-15  Paul Eggert  <eggert@cs.ucla.edu>

	* tests/acl: Port to pre-POSIX shells like Solaris 8 /bin/sh.
	Don't assume /etc/passwd contains user names; use 'id' instead.

2005-12-15  Jim Meyering  <jim@meyering.net>

	stat: revert behavior of --format=FMT (-c)
	stat: add new option: --printf=FMT
	* NEWS: Mention this.
	* src/stat.c (isodigit, octtobin, hextobin): Define.
	(PRINTF_OPTION): Define.
	(interpret_backslash_escapes, trailing_delim): New globals.
	(usage): Document them.  Alphabetize on long option names.
	(print_esc_char): New function.
	(print_it): Rewrite, in order to handle backslash escapes.
	(main): Handle new option.  Set globals for --format, too.

	* tests/misc/stat-printf: Test --printf and --format.
	* tests/misc/Makefile.am (TESTS): Add stat-printf.

2005-12-14  Paul Eggert  <eggert@cs.ucla.edu>

	* NEWS: sort now reports incompatible options.
	* src/sort.c (incompatible_options, check_ordering_compatibility):
	New functions.
	(main): Use them.  Don't bother with a usage message for
	"sort -c a b", for consistency with other error diagnostics.
	* tests/sort/Test.pm (incompat1, incompat2, incompat3, incompat4):
	New tests.

	* src/cat.c (main): Undo previous change.  close_stdout already
	does the check, so the previous change wasn't necessary.

2005-12-13  Paul Eggert  <eggert@cs.ucla.edu>

	* src/cat.c (main): Check for close (STDOUT_FILENO) failure.

2005-12-12  Paul Eggert  <eggert@cs.ucla.edu>

	Install a more-conservative approach for sort -R.  It's the
	same basic idea as the existing code, except it uses the full ISAAC
	approach (called the "more kosher" approach in the existing comments).
	This makes "sort -R" quite a bit slower (about a factor of 2 on my
	little tests involving 10000 lines on a 2.4 GHz P4), but I think it's
	better to be conservative here at first, and review any performance
	improvements carefully.
	* .x-sc_require_config_h: Add src/rand-isaac.c.
	* src/rand-isaac.h: Remove.  All uses now simply include rand-isaac.c.
	* src/Makefile.am (noinst_HEADERS): Remove rand-isaac.h.
	(shred_SOURCES, sort_SOURCES): Remove.
	(EXTRA_DIST): Add rand-isaac.c.
	* src/rand-isaac.c: Revert to what used to be in shred.c, without
	changing it to allow for varying numbers of words in the state.
	Alter so that we include rand-isaac.c directly rather than
	compiling it and linking to it.  Don't include config.h or
	system.h; that's the includer's responsibility.
	Omit functions that are specific to shred.
	(ISAAC_LOG, ISAAC_WORDS, ISAAC_BYTES, struct isaac_state, ind):
	(isaac_step, struct irand_state):
	Resurrect these, with the same defns that used to be in shred.c.
	(ISAAC_SIZE, isaac_new, isaac_copy): Remove.
	(isaac_refill, isaac_seed_start, isaac_seed_data, irand_init, irand32):
	static again.
	(struct isaac_state, isaac_refill, isaac_mix, isaac_init):
	(isaac_seed_start, isaac_seed_data, isaac_seed_finish, isaac_seed):
	(irand_init, irand32, irand_mod):
	Number of words is constant again.
	(struct irand_state, irand_init, irand32, irand_mod): Move to shred.c.
	* src/shred.c: Include rand-isaac.c rather than rand-isaac.h.
	* src/sort.c: Likewise.
	* src/shred.c (fillrand, dopass, main): Undo previous change.
	(struct irand_state, irand_init, irand32, irand_mod): Moved back here,
	from rand-isaac.c.
	* src/sort.c: Don't include md5.h; it wasn't needed.
	(struct keyfield): Rename random_hash to random, for consistency
	with the other member names.  All uses changed.
	(usage): Tweak wording to mention STRING for --seed option.
	(short_options): Rorder for consistency with other programs.
	(rand_state): Now a struct, not a pointer to one.  All uses changed.
	(HASH_WORDS, HASH_SIZE): Remove.
	(get_hash): Remove comments around resbuf size, since we can assume C89.
	Use a "more-kosher" (but slower) approach of invoking isaac_refill.
	(keycompare): Adjust to the new get_hash.
	Add a FIXME.
	(badfieldspec): Omit recently-introduced comment; it isn't needed.
	(main): Don't set need_random simply because gkey has it set; that
	doesn't necessarily mean we'll need random numbers.
	Redo seeding to match new get_hash approach.

2005-12-10  Jim Meyering  <jim@meyering.net>

	* src/Makefile.am (noinst_HEADERS): Add rand-isaac.h.

	Avoid shred segfault on 64-bit systems.
	* src/rand-isaac.c (isaac_refill): Don't try to negate a
	local of type uint32_t.  Make the local an `int' instead.

	* NEWS: Mention sort's new options.

	* src/rand-isaac.c (isaac_mix): Declare to be static.
	Mark all other functions as `extern' so the tight-scope
	part of `make distcheck' passes once again.
	* src/rand-isaac.h (isaac_mix): Remove declaration.

	* src/sort.c (get_hash): Change position of `*' in parameter
	type to conform with convention.
	(main): Split a long line so it fits in 80 columns.
	(keycompare): Remove stray SPACE before TAB that was
	causing `make distcheck' to fail.

	* src/shred.c: Don't include gethrxtime.h.  No longer needed.

	* tests/misc/sort-rand: New file: basic tests for the new options.
	* tests/misc/Makefile.am (TESTS): Add sort-rand.

2005-12-10  Frederik Eaton  <frederik@ofb.net>

	* src/Makefile.am (sort_LDADD): Add $(LIB_GETHRXTIME).
	(shred_SOURCES, sort_SOURCES): New macros, so we compile rand-isaac.c.
	* src/rand-isaac.c: New file, containing ISAAC code that was in shred.c.
	Make state size runtime-configurable.
	(isaac_new, isaac_copy): New functions.
	* src/rand-isaac.h: New file.
	* src/shred.c: Include rand-isaac.h.  Move ISAAC code to rand-isaac.c.
	(fillrand, main): Adjust to the fact that the state size is now
	runtime-configurable.
	* src/sort.c (short_options, long_options, WORDS, keycompare, main):
	(usage): Add options --random-sort and --seed to implement a random
	shuffle.
	Include md5.h and rand-isaac.h.
	(get_hash): New function.
	(rand_state): New var.
	(HASH_WORDS, HASH_SIZE): New macros.

2005-12-09  Paul Eggert  <eggert@cs.ucla.edu>

	* tests/dd/misc: Add test for dd iflags=noatime.

2005-12-09  Jim Meyering  <jim@meyering.net>

	* src/sort.c (usage): Mention white space vs -b and -t options.
	From The Wanderer.

2005-12-09  Eric Blake  <ebb9@byu.net>

	* src/test.c (main): Fix misleading comment.

2005-12-07  Paul Eggert  <eggert@cs.ucla.edu>

	* NEWS: Mention dd's new noatime flag.
	* src/system.h (O_NOATIME): Define to 0 if not already defined.
	* src/dd.c (flags, usage): Add support for noatime flag.

2005-12-07  Jim Meyering  <jim@meyering.net>

	Distribute the cvsu script, used only by `make syntax-check'.
	* Makefile.am (EXTRA_DIST): Add build-aux/cvsu.
	* Makefile.maint (CVS_LIST): Use build-aux/cvsu, now that we
	distribute a copy of this script.
	* .x-sc_unmarked_diagnostics: Add build-aux/cvsu.

	* tests/mv/acl: exit-77 before the trap, not after, if we fail
	to create a temporary directory on another partition.
	From Andreas Gruenbacher.

2005-12-06  Tomas Pospisek  <tpo@sourcepole.ch>  (tiny change)

	* man/basename.x: Cross-reference to dirname and readlink.
	* man/dirname.x: Cross-reference to basename and readlink.

2005-12-05  Andreas Gruenbacher

	* src/copy.c [!HAVE_FCHOWN]: Define fchown(...) to -1.
	(set_owner, preserve_author): New functions, factored out of copy_reg.
	(copy_reg): Use them.
	(copy_internal): Use them here, too.

2005-12-04  Jim Meyering  <jim@meyering.net>

	* src/sleep.c (usage): Say what happens with two or more arguments.
	Suggested by Justin Pryzby.

	* src/uptime.c (print_uptime): Move decl of `upsecs' into scope
	where it's used.

2005-12-03  Jim Meyering  <jim@meyering.net>

	* src/rm.c (long_opts): Change the name of each undocumented, for-
	testing-only option to start with `-', so that it cannot render
	ambiguous any prefix it happens to share with some other option name.
	Problem reported by Eric Blake.
	* src/head.c (long_options): Likewise.
	* src/tail.c (long_options): Likewise.

	* tests/misc/head-elide-tail: Update uses of undocumented, for-
	testing-only --presume* options to start with `---'.
	* tests/rm/dangling-symlink: Likewise.
	* tests/rm/dir-no-w: Likewise.
	* tests/rm/isatty: Likewise.

2005-11-30  Jim Meyering  <jim@meyering.net>

	* Makefile.maint: Add a comment about cvsu.

2005-11-25  Paul Eggert  <eggert@cs.ucla.edu>

	* NEWS: df updates for "none", "proc", inaccessible file systems.
	* src/df.c (show_point): Ignore inaccessible file systems.
	(usage): -a includes dummy file systems, not size-0 file systems.

	* src/od.c (unsigned_long_long_int): Renamed from ulonglong_t,
	to avoid collision with POSIX name space.  All uses changed.

2005-11-24  Jim Meyering  <jim@meyering.net>

	* tests/Makefile.am (EXTRA_DIST): Add acl to the list.
	* tests/acl: Add `$0: ' prefix to diagnostics.

	* .x-sc_require_config_h: Add lib/buffer-lcm.c to the list.

2005-11-23  Paul Eggert  <eggert@cs.ucla.edu>

	* src/copy.c: Improve performance a bit by optimizing away
	unnecessary system calls and going to a block size of at least
	8192 (on normal hosts, anyway).  This improved performance 5% on my
	Debian stable host (2.4.27 kernel, x86, copying from root
	ext3 file system to itself).
	Include "buffer-lcm.h".
	(copy_reg): Omit last argument.  All callers changed.
	Use xmalloc to allocate rather than trusting alloca
	(which is unwise with large block sizes).
	Declare locals more locally, if possible.
	Use uintptr_t words instead of int words, for a bit more speed
	when looking for null blocks on 64-bit hosts.
	Optimize away reads of zero bytes on regular files.
	In the typical case, insist on 8 KiB buffers, at least.
	Avoid unnecessary extra call to fstat when checking for sparse files.
	Avoid now-unnecessary cast to off_t, and "0L".
	Avoid unnecessary test of *new_dst when checking for same owner
	and group.

2005-11-22  Paul Eggert  <eggert@cs.ucla.edu>

	* src/remove.c (rm): Don't assume C99 for-loop syntax.

2005-11-22  Jim Meyering  <jim@meyering.net>

	* src/remove.c (AD_push): Remove debugging cruft.

	* tests/rm/unread2 (rm): Change expected diagnostic,
	`cannot open directory' to `cannot remove', to align with
	new version of rm.
	* tests/rm/rm2: Ensure that rm now continues removing entries
	even after certain types of failure.

	* src/remove.c: Rewrite.  Now, this module is reentrant on systems
	that provide openat (Solaris), and on systems like Linux+procfs
	where our openat emulation code is reentrant.  This also fixes a
	few low-probability leaks and eliminates some code that could,
	in very unusual circumstances, cause rm() (via a callee) to exit.
	* NEWS: Mention this.

	* configure.ac: Put copyright dates all on one line so the
	emacs function that updates them works properly.

2005-11-18  Paul Eggert  <eggert@cs.ucla.edu>

	* configure.ac (AM_PROG_CC_C_O): Add.  Needed for CVS Automake.
	Problem reported by Eric Blake.
	(AC_PROG_CC_STDC): Use this instead of AC_PROG_CC, so that
	we get a standard-conforming compiler.  This relies on the new
	m4/c.m4 file.  Note that it's a bit tricky, since c.m4 doesn't
	define AC_PROG_CC_STDC; we are relying on Autoconf 2.59 internals.
	m4/c.m4 can go away with Autoconf 2.60 comes out.

2005-11-17  Jim Meyering  <jim@meyering.net>

	* src/remove.c (AD_mark_helper): Make a `char *' parameter `const'.
	(AD_mark_current_as_unremovable): Likewise, but for a local.
	(rm_1): Likewise.

	* tests/mv/acl: Let traps handle removing temporary directories.

	Expect acl-related tests to fail, until the corresponding
	patches are committed.
	* tests/mv/Makefile.am (XFAIL_TESTS): Add acl.
	* tests/cp/Makefile.am (XFAIL_TESTS): Likewise.

	ACL tests, from Andreas Gruenbacher.
	* tests/acl, tests/mv/acl, tests/cp/acl: New files.
	* tests/mv/Makefile.am (TESTS): Add acl.
	* tests/cp/Makefile.am (TESTS): Add acl.

	* src/ls.c (basename_is_dot_or_dotdot): Correct wording in comment.

2005-11-16  Paul Eggert  <eggert@cs.ucla.edu>

	* NEWS: Improve quality of ln's diagnostics.
	* src/ln.c (do_link, usage): Likewise.
	(do_link): Don't use alloca on a buffer of unbounded size.

2005-11-16  Jim Meyering  <jim@meyering.net>

	* tests/cp/fail-perm: Accommodate HPUX.  It appears to fail
	with EACCES rather than EPERM.  Reported by Peter O'Gorman here:
	http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/5766

2005-11-14  Jim Meyering  <jim@meyering.net>

	* NEWS (sort): Mention consequences of today's mkstemp-safer.c fix.

2005-11-13  Jim Meyering  <jim@meyering.net>

	* announce-gen: Accept new option, --gpg-key-id=ID and
	emit a blurb telling how to use the .sig files.
	* Makefile.cfg (gpg_key_ID): Define.
	* Makefile.maint (announcement): Use new option and key.

	Require that most .c files include <config.h>.
	* Makefile.maint (sc_require_config_h): New rule.
	(syntax-check-rules): Add it.
	* .x-sc_require_config_h: New file listing exceptions to the
	above rule.  Some are legit, others are simply grandfathered in.
	* Makefile.am (EXTRA_DIST): Add .x-sc_require_config_h here, too.

2005-11-12  Jim Meyering  <jim@meyering.net>

	* src/checksum.h, src/md5.c, src/sha1sum.c: Remove now-unused files.

2005-11-11  Jim Meyering  <jim@meyering.net>

	* NEWS: Mention `readlink -f' bug fix in 5.3.0 news.
	Mention new readlink options in 5.3.0's `New features' section.
	Spotted by Thomas Hood.

2005-11-08  Jim Meyering  <jim@meyering.net>

	* NEWS: Merge in changes from b5_9x branch.

2005-11-08  Paul Eggert  <eggert@cs.ucla.edu>

	* NEWS: ls now defaults to --time-style='locale', which in turn acts
	like --time-style='posix-long-iso' if the locale settings are messed up.
	* src/ls.c (decode_switches): Implement this.

2005-11-08  Jim Meyering  <jim@meyering.net>

	* tests/du/2g: s/expensive/very expensive/ in a comment.
	From Paul Townsend.

2005-10-17  Eric Blake  <ebb9@byu.net>

	* src/ls.c (usage): Fix descriptions of --sort, --time.
	Reported by Vitaly A. Ostanin.

2005-11-04  Paul Eggert  <eggert@cs.ucla.edu>

	* src/ln.c: Include filenamecat.c.
	(FILE_BASENAME_CONCAT): Remove.
	(do_link): Remove last arg DEST_IS_DIR.  All callers changed.
	(main): Use file_name_concat, base_name, and strip_trailing_slashes
	instead of FILE_BASENAME_CONCAT.  This simplifies the code, and avoids
	the use of alloca.

2005-11-04  Jim Meyering  <jim@meyering.net>

	* src/du.c (process_file): Don't overflow for files of size >= 2^31
	on systems with stat.st_blocks of a signed 32-bit type.
	This bug causes trouble on some AIX 5.1 systems.
	Report and trivial patch from Paul Townsend:
	<http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00033.html>
	* NEWS: Mention this.

	* tests/du/2g: New (very-expensive) test for the above-fixed bug.
	* tests/du/Makefile.am (TESTS): Add it here.
	* tests/very-expensive: New file.
	* tests/Makefile.am (EXTRA_DIST): Add it here.
	* tests/cp/perm: Mark this test as `very-expensive', too.

2005-11-02  Paul Eggert  <eggert@cs.ucla.edu>

	* NEWS: Mention that rm -d and maybe ln -d are scheduled for
	removal in 2006.
	* src/remove.h (struct rm_options): Remove unlink_dirs.  All uses
	removed.
	* src/rm.c (usage): Don't mention rm -d.

2005-11-02  Jim Meyering  <jim@meyering.net>

	* tests/dd/skip-seek: Fix typo in comment: s/fileutils/coreutils.
	From Andreas Schwab.

	* tests/dd/unblock-sync: Redirect stderr to /dev/null so the
	`M+N records in/out' lines don't pollute `make check' output.

	* tests/dd/skip-seek (sk-seek4): New test, to exercise the bug
	fixed on 2005-10-31.  This test uses the new, IN_PIPE specifier.
	* tests/Coreutils.pm: Accept a new type of input specifier: IN_PIPE,
	to indicate that the input file should be piped into the command
	under test (via `cat FILE | $prog ...').

	* src/remove.c (remove_entry): Emit a better diagnostic when rm
	(without -r) fails to remove a directory on a non-Linux system.
	This change affects only newer Solaris systems (with priv_*
	functions like priv_allocset).  Reported by Keith Thompson.

	* tests/rm/dir-nonrecur: New file/test for the above fix.
	* tests/rm/Makefile.am (TESTS): Add dir-nonrecur.

2005-11-01  Paul Eggert  <eggert@cs.ucla.edu>

	* NEWS: "tail -c 2 FILE" and "touch 0101000000" now operate as
	POSIX 1002.1-2001 requires.
	* src/tail.c (parse_obsolete_option): Implement this.
	Problem reported by Vincent Lefevre.
	* src/touch.c (main): Pass PDS_PRE_2000 to posixtime.
	* tests/tail/Test.pm (c-2, c-2-minus, c2, c2-minus): New tests.
	(test_vector): Add special cases for _POSIX2_VERSION, and
	regularize the old ones a bit.
	* tests/touch/obsolescent: Add y2000 test.

2005-10-31  Paul Eggert  <eggert@cs.ucla.edu>

	* src/dd.c (skip): Fix off-by-one error reported by
	Theodoros V. Kalamatianos.

2005-10-30  Paul Eggert  <eggert@cs.ucla.edu>

	* tests/mkdir/p-3: Require that the test be run as non-root.
	Problem and trivial fix reported by Theodoros V. Kalamatianos.

2005-10-28  Paul Eggert  <eggert@cs.ucla.edu>

	* src/ln.c (FILE_BASENAME_CONCAT): Omit unnecessary slashes in the
	boundary between DEST and SOURCE in the result.

2005-10-26  Dmitry V. Levin  <ldv@altlinux.org>

	* src/md5sum.c (main) [!O_BINARY]: Changed default read mode
	back to text, to sync with documentation and for backwards
	compatibility.

2005-10-25  Jim Meyering  <jim@meyering.net>

	* tests/dircolors/simple (other-wr): Add an explicit test for
	the dircolors bug (NULL-dereference) fixed yesterday.

2005-10-24  Jim Meyering  <jim@meyering.net>

	* src/tac.c (tac_file): When determining whether a file is seekable,
	also test whether it is a tty.  Using only the lseek-based test would
	give a false positive on Solaris.  Reported by Peter Fales.

2005-10-24  Dmitry V. Levin  <ldv@altlinux.org>

	* tests/install/d-slashdot: New test, for "install -d" failure.
	* tests/install/Makefile.am (TESTS): Add d-slashdot.
	* tests/mkdir/p-slashdot: New test, for "mkdir -p" failure.
	* tests/mkdir/Makefile.am (TESTS): Add p-slashdot.

2005-10-24  Jim Meyering  <jim@meyering.net>

	* src/dircolors.c (ls_codes): Add missing comma.
	Anonymous report and patch from
	http://savannah.gnu.org/bugs/?func=detailitem&item_id=14849

	* src/dircolors.c: Add compile-time assertion that the slack_codes
	and ls_codes arrays have the same number of elements.  This would
	have prevented the above-fixed bug.

	* src/expand.c (parse_tab_stops): Add a comment to make this function
	identical to the one in unexpand.c.
	* src/unexpand.c (parse_tab_stops): Adjust syntax to make this function
	identical to the one in expand.c.

	* src/expand.c (next_file): Don't assume fopen cannot return stdin.

2005-10-23  Jim Meyering  <jim@meyering.net>

	* src/md5sum.c (digest_check, main): Use ptr_align rather than
	a dangerous pointer-value-to-`unsigned' cast.
	* NEWS: mention the new sha* programs.
	* AUTHORS: Add new sha* programs.

2005-08-28  David Madore  <david.madore@ens.fr>

	Add new programs: sha224sum, sha256sum, sha384sum, sha512sum.
	* README: Add their names to the list.
	* src/md5sum.c: Provide framework for computing sha-2 hashes.
	* src/Makefile.am (sha224sum, sha256sum, sha384sum, sha512sum):
	Rules for compiling sha-2 utilities
	(noinst_HEADERS): Remove checksum.h.
	* man/sha512sum.x, man/sha384sum.x, man/sha256sum.x, man/sha224sum.x:
	New files.
	* man/Makefile.am (dist_man_MANS): Add the corresponding .1 names.
	(sha224sum.1, sha256sum.1, sha384sum.1, sha512sum.1): New dependencies.
	* tests/misc/sha224sum, tests/misc/sha256sum: New files.
	* tests/misc/sha384sum, tests/misc/sha512sum: New files.
	* tests/misc/Makefile.am (TESTS): Add new sha224sum, sha256sum,
	sha384sum, sha512sum test scripts here rather that each in its
	own directory.

2005-08-28  David Madore  <david.madore@ens.fr>

	* tests/sha1sum/basic-1 (million-a): Add the "million a's" test (one
	of the FIPS test vectors).

2005-10-23  Jim Meyering  <jim@meyering.net>

	* configure.ac: Use 6.0-cvs as the version string.
	* NEWS: Adjust accordingly.