aboutsummaryrefslogtreecommitdiff
path: root/coreutils-5.3.0-bin/contrib/coreutils/5.3.0/coreutils-5.3.0-src/old/fileutils
diff options
context:
space:
mode:
Diffstat (limited to 'coreutils-5.3.0-bin/contrib/coreutils/5.3.0/coreutils-5.3.0-src/old/fileutils')
-rw-r--r--coreutils-5.3.0-bin/contrib/coreutils/5.3.0/coreutils-5.3.0-src/old/fileutils/ChangeLog8382
-rw-r--r--coreutils-5.3.0-bin/contrib/coreutils/5.3.0/coreutils-5.3.0-src/old/fileutils/NEWS748
2 files changed, 9130 insertions, 0 deletions
diff --git a/coreutils-5.3.0-bin/contrib/coreutils/5.3.0/coreutils-5.3.0-src/old/fileutils/ChangeLog b/coreutils-5.3.0-bin/contrib/coreutils/5.3.0/coreutils-5.3.0-src/old/fileutils/ChangeLog
new file mode 100644
index 0000000..5f12d1c
--- /dev/null
+++ b/coreutils-5.3.0-bin/contrib/coreutils/5.3.0/coreutils-5.3.0-src/old/fileutils/ChangeLog
@@ -0,0 +1,8382 @@
+2002-07-28 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.1.12.
+
+ * configure.ac: Require automake-1.6b.
+
+ * TODO: Remove entry that mentions rm's HAVE_WORKING_READDIR.
+ Since remove.c was rewritten, rm is no longer susceptible to that.
+
+2002-07-26 Jim Meyering <meyering@lucent.com>
+
+ * src/stat.c: Don't include malloc.h -- it was unnecessary.
+
+2002-07-22 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.1.11.
+
+ * src/stat.c (usage): The short form of --dereference is now -L, not -l.
+ Reported by Kalle Olavi Niemitalo.
+
+ * src/rm.c: Add new option, --presume-input-tty, for testing only.
+ Not documented.
+
+ This test might remove a file owned by the person running `make check'.
+ * tests/rm/fail-eperm: Hoist definition of $target_file, and use
+ that (not $f) in test for owner/dir/symlink. Patch by Michael Stone.
+
+ * tests/rm/fail-eperm: Handle the case in which rm produces no output.
+
+ rm would prompt for a symlink to an unwritable file
+ * src/remove.c (prompt): When not interactive, don't prompt
+ for a symlink. Reported by Dave Beckett. Patch by Michael Stone.
+ * tests/rm/dangling-symlink: Add a test for the above-fixed bug.
+
+2002-07-20 Jim Meyering <meyering@lucent.com>
+
+ * src/copy.c (copy_internal): Use file_name_lookup, not getdport.
+ Patch by Alfred M. Szmidt.
+
+ * Makefile.maint (news-r1, news-r2): Define. Better regexp.
+ (announcement): Use them here. Also makes the line length < 80.
+
+ * Upgrade to cvs automake -- required to work with 2.53b.
+ * configure.ac: Require automake-1.6a.
+
+ * Version 4.1.10.
+
+ * Upgrade to gettext-0.11.3.
+ * Upgrade to autoconf-2.53b.
+
+2002-07-19 Jim Meyering <meyering@lucent.com>
+
+ * src/dircolors.hin: Add .wav.
+
+ * tests/rm/fail-eperm: Don't expect `ARGV_0=$0 exec ...' to work.
+ It doesn't work with /bin/sh of Solaris5.6.
+ Use an explicit `export ARGV_0' instead.
+ [comparing actual and expected output]: Don't match the entire line,
+ but rather just the `rm: cannot remove `$dir/$f':' part.
+
+ * tests/rm/dangling-symlink: Use input-tty rather than
+ testing for /dev/stdin.
+
+ * tests/Makefile.am (EXTRA_DIST): Add input-tty.
+ * tests/input-tty: New file.
+
+2002-07-18 Jim Meyering <meyering@lucent.com>
+
+ * src/dircolors.hin: Add the following to the list of colorizable
+ TERM names: dtterm xterm-color Eterm.
+ New archive suffix: .jar
+ New image suffixes: .jpeg .pbm .pgm .tiff .mpeg .xcf .xwd
+ Audio suffixes: .ogg .mp3
+ From Michael Stone.
+
+2002-07-16 Jim Meyering <meyering@lucent.com>
+
+ * src/stat.c (print_it): Use memcpy and a little pointer arithmetic,
+ rather than stpncpy.
+
+2002-07-14 Jim Meyering <meyering@lucent.com>
+
+ Under some circumstances, rm would fail due to a lack of
+ permissions, but give a misleading diagnostic like this:
+ rm: cannot chdir from `.' to `foo': Not a directory
+ * src/remove.c (remove_dir): Detect the case in which unlinking a
+ non-directory fails with EPERM, and give an appropriate diagnostic.
+ Reported by Michael Stone.
+
+2002-07-13 Jim Meyering <meyering@lucent.com>
+
+ * tests/rm/fail-eperm: New file/test, for the above.
+ * tests/rm/Makefile.am (TESTS): Add fail-eperm.
+
+ * src/stat.c (print_it): Use xstrdup, not strdup.
+ Use strspn to avoid an explicit loop.
+ Use fputc rather than printf "\n".
+
+ * src/stat.c: Include quote.h.
+ (print_stat): Use xreadlink, rather than using readlink directly.
+ Use the quote function rather than hard-coded double quotes.
+ Use error, not perror.
+
+2002-07-09 Martin Michlmayr <tbm@cyrius.com>
+
+ * src/df.c (show_dev): Make the `Use%' column align with
+ its heading, even when -P is used with -h or -H.
+
+2002-07-10 Jim Meyering <meyering@lucent.com>
+
+ * man/du.x: Add a description of --exclude=PATTERN.
+ * src/du.c (usage) [--exclude]: Use PATTERN rather than PAT.
+ From Martin Michlmayr.
+
+2002-07-09 Jim Meyering <meyering@lucent.com>
+
+ I added stat.x, but didn't update the definition of dist_man_MANS.
+ * man/Makefile.am (dist_man_MANS): Add stat.1.
+ (stat.1): Add dependency.
+ Reported by Michael Stone.
+
+ Ensure that the above never happens again.
+ * man/Makefile.am (check-x-vs-1): New target.
+ (check-local): Depend on check-x-vs-1.
+
+ * src/mv.c (euidaccess): Remove declaration. It was unused.
+ From Michael Stone.
+ (yesno): Remove declaration. It too was unused.
+
+2002-07-08 Paul Eggert <eggert@twinsun.com:
+
+ * NEWS: df now rounds all quantities up, as per POSIX.
+ This fixes a bug where df would report Size < Used.
+ * doc/coreutils.texi: Likewise.
+ * src/df.c (df_readable): Omit last arg; we always round up now.
+ All callers changed.
+
+2002-07-07 Paul Eggert <eggert@twinsun.com>
+
+ NEWS, doc/coreutils.texi:
+ New ls time style: long-iso, which generates YYYY-MM-DD HH:MM.
+ Any time style can be preceded by "posix-".
+ The default time style is now posix-long-iso instead of posix-iso.
+
+ * src/ls.c (enum time_style): Remove posix_iso_time_style.
+ Add long_iso_time_style.
+ (time_style_args, time_style_types, decode_switches): Likewise.
+ (decode_switches): If a time style is prefixed by "posix-", ignore
+ it if in the POSIX locale. Default style is now posix-long-iso.
+ (usage): Explain the above.
+
+2002-07-06 Jim Meyering <meyering@lucent.com>
+
+ * tests/Makefile.am (envvar-check): Mark as `.PHONY'.
+
+ * src/stat.c: Remove everything associated with --secure option.
+
+2002-07-04 Jim Meyering <meyering@lucent.com>
+
+ * src/remove.c (prompt): Fix test for write-protectedness to also
+ check errno == EACCES. Otherwise, `rm dangling-symlink' would
+ mistakenly prompt. Reported by Mike Castle.
+
+ * tests/rm/Makefile.am (TESTS): Add dangling-symlink.
+ * tests/rm/dangling-symlink: New file/test, for the above fix.
+
+2002-07-03 Jim Meyering <meyering@lucent.com>
+
+ * src/stat.c (usage): Rename --link/-l to --dereference/-L.
+ Describe --secure.
+ Describe --format.
+ (main): Support -L. Deprecate -l.
+
+2002-07-02 Jim Meyering <meyering@lucent.com>
+
+ * src/chgrp.c, src/chmod.c, src/chown.c, src/cp.c, src/dd.c (usage):
+ Use the PACKAGE_BUGREPORT e-mail address, rather than hard-coding it.
+ * src/df.c, src/dircolors.c, src/du.c, src/install.c: Likewise.
+ * src/link.c, src/ln.c, src/ls.c, src/mkdir.c, src/mkfifo.c: Likewise.
+ * src/mknod.c, src/mv.c, src/rm.c, src/rmdir.c, src/shred.c: Likewise.
+ * src/stat.c, src/sync.c, src/touch.c, src/unlink.c: Likewise.
+
+2002-07-01 Jim Meyering <meyering@lucent.com>
+
+ * tests/touch/fail-diag: Handle yet another different diagnostic.
+ Report from Volker Borchert.
+
+2002-06-29 Jim Meyering <meyering@lucent.com>
+
+ * src/stat.c (print_statfs): Use `fputc ('*', stdout)'
+ instead of the combination of strcat and printf.
+ (print_statfs) [!FLASK_LINUX]: Print `*' for %S and %C,
+ rather than `S' and `C'.
+ (print_stat) [!FLASK_LINUX]: Likewise.
+
+ * src/remove.c (AD_mark_current_as_unremovable): Replace dead
+ code with an assertion.
+
+2002-06-26 Paul Eggert <eggert@twinsun.com>
+
+ * src/ls-test: Use grep, not egrep.
+
+2002-06-25 Jim Meyering <meyering@lucent.com>
+
+ * src/remove.c (prompt): Add a comment to help translators work
+ around the problem of making the translations of the adjective
+ `write-protected' and the corresponding run-time-variable noun
+ (e.g., file, directory, symlink, etc.) consistent. From Paul Eggert.
+
+2002-06-24 Jim Meyering <meyering@lucent.com>
+
+ * src/stat.c (usage): Add missing open-quote.
+ Reported by Michael Piefel.
+
+2002-06-22 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.1.9.
+
+ * configure.ac: Invoke AC_GNU_SOURCE very early.
+
+ * tests/rm/rm1: Accommodate the slightly different diagnostic we
+ get on some systems, due to `unlink (dir)' failing with EACCES
+ rather than EPERM. E.g. for ReiserFS on Linux-2.4.18.
+
+2002-06-21 Jim Meyering <meyering@lucent.com>
+
+ * Makefile.maint (wget-update): Checkout into config/.
+ Warn when skipping a file.
+
+ * src/stat.c: Include sys/statvfs.h.
+ [!HAVE_SYS_STATVFS_H && !HAVE_SYS_VFS_H]: Include sys/param.h
+ and sys/mount.h, to get decl of struct statfs on NetBSD 1.5.2.
+ (NAMEMAX_FORMAT, STRUCT_STATVFS): Define.
+ (HAVE_STRUCT_STATXFS_F_TYPE, SB_F_NAMEMAX): Define.
+ Remove `static' attribute from decl of program_name.
+ (human_fstype): Use f_basetype or f_fstypename if available.
+ (print_human_time): Use nstrftime and an ISO format string, in
+ place of strftime with `%c'. The latter is too locale-dependent.
+ (print_statfs): Deal with lots of portability issues: some fields
+ are available only with statfs, others only with statvfs, and
+ some are available in both, but with different types.
+ (do_statfs) [DEFAULT_FORMAT_TERSE]: Factor out.
+ [DEFAULT_FORMAT_VERBOSE]: Likewise.
+
+ * src/copy.c: Change all `preserving ...' diagnostics to
+ `failed to preserve ...' to make the failure clearer.
+ * src/cp.c: Likewise.
+
+2002-04-03 Alfred M. Szmidt <ams@kemisten.nu>
+
+ * src/copy.c Include hurd.h.
+ (copy_internal): Preserve the stat.st_author field.
+
+2002-06-21 Jim Meyering <meyering@lucent.com>
+
+ * src/ls.c (LOGIN_NAME_MAX): Define if not already defined.
+ (ID_LENGTH_MAX): Define.
+ (ST_DM_MODE): New macro. Code moved from...
+ (print_long_format): ...here.
+ (print_long_format): Itemize and comment the individual parts
+ of init_bigbuf. Use the above *_MAX macros.
+
+2002-06-20 Jim Meyering <meyering@lucent.com>
+
+ * src/system.h: Change `defined(X)' syntax to `defined X'
+ in cpp directives.
+
+2002-06-17 Jim Meyering <meyering@lucent.com>
+
+ * tests/setgid-check: Interpret a permissions string of
+ drwxr-xr-x (DOS/Windows) as meaning the cwd is not setgid.
+ Reported by Rich Dawe.
+
+2002-05-19 Paul Eggert <eggert@twinsun.com>
+
+ Add support for new ls option --author, for GNU/Hurd.
+ Derived from a suggestion by Alfred M. Szmidt.
+
+ * doc/coreutils.texi (ls invocation), NEWS: Document this.
+ * m4/jm-macros.m4 (jm_CHECK_ALL_TYPES): Check for st_author.
+ * src/ls.c (st_author) [! HAVE_STRUCT_STAT_ST_AUTHOR]: New macro.
+ (print_author): New var.
+ (AUTHOR_OPTION): New enum val.
+ (long_options, decode_switches, print_long_format, usage):
+ Support --author.
+ (format_user): New function.
+ (print_long_format): Use it. Make print buffer a bit bigger.
+
+2002-06-15 Jim Meyering <meyering@lucent.com>
+
+ * tests/sample-test (trap): Make sure the temporary hierarchy is
+ writable before removing it.
+
+ * tests/mv/perm-1: New file, to demonstrate fix of 2002-06-12.
+ * tests/mv/Makefile.am (TESTS): Add perm-1.
+
+ * src/system.h: For GNU libc 2.2 and newer, ensure that <sys/types.h>
+ has been included before this file.
+
+2002-06-13 Richard Dawe <richdawe@bigfoot.com>
+
+ Accommodate DOS file name limitations.
+ * tests/cp/same-file: Change temp. file name: s/\.err/_err/, for DOS.
+ * tests/mv/force: Similar.
+ * tests/mv/into-self: Similar.
+ * tests/touch/no-rights: Similar.
+ * tests/mv/mv-special-1: Remove leading `.' from temp. names.
+
+2002-06-15 Jim Meyering <meyering@lucent.com>
+
+ * src/sys2.h (S_ISNAM): Add to list of S_IS* macros.
+ Rearrange #if directives for each S_IS macro.
+ From diffutils-2.8.2.
+
+2002-06-12 Jim Meyering <meyering@lucent.com>
+
+ * src/mv.c (do_move): Give one diagnostic, not two, when unable to
+ unlink a destination file. This bug was introduced in fileutils-3.16l.
+
+2002-06-07 Jim Meyering <meyering@lucent.com>
+
+ * tests/mv/part-fail: Also accept the permission-denied diagnostic
+ issued by some losing systems. Reported by Volker Borchert.
+
+ * src/remove.c (remove_entry): Use DT_IS_DIR only if
+ HAVE_STRUCT_DIRENT_D_TYPE is defined.
+
+2002-06-02 Jim Meyering <meyering@lucent.com>
+
+ `rm' no longer uses explicit recursion, and as such is now able
+ to remove hierarchies of effectively unlimited depth. Prior to
+ this change, on typical systems, rm would fail (segfault) to remove
+ hierarchies of depth greater than about 25,000.
+
+ * src/remove.c: Merge in all changes from no-recursion branch.
+ See below for details.
+ * src/remove.h: Likewise.
+ * src/mv.c (do_move): Adapt to new calling sequence for rm.
+ * src/rm.c (main): Likewise.
+
+2002-06-02 Jim Meyering <meyering@lucent.com>
+
+ * tests/rm/r-2: Adjust, now that we no longer report
+ `removing all entries of directory ...'.
+ * tests/rm/r-1: Likewise.
+
+ * src/remove.c (enum Ternary): Define type.
+ (prompt): Add a parameter. Adjust callers.
+ (remove_entry): Attempt rmdir here, only if a directory is
+ `known' to be empty. Significant rework.
+ (remove_dir): Propagate failure `up' also when rmdir fails.
+
+2002-06-01 Jim Meyering <meyering@lucent.com>
+
+ * tests/rm/Makefile.am (TESTS): Add rm5.
+ * tests/rm/rm5: New test.
+
+2002-05-30 Jim Meyering <meyering@lucent.com>
+
+ In interactive mode, prompt only once about an empty directory.
+ * src/remove.c (enum Prompt_action): Define.
+ (prompt): Two new parameters. Adjust all callers.
+
+ Performance.
+ * src/remove.c (remove_entry) [!ROOT_CAN_UNLINK_DIRS]:
+ Don't call rmdir here.
+
+2002-05-29 Jim Meyering <meyering@lucent.com>
+
+ * src/remove.c (AD_pop_and_chdir): Don't use errno (it's not valid)
+ in diagnostic for changed dev/ino.
+ (remove_entry): Tweak diagnostic.
+
+2002-05-27 Jim Meyering <meyering@lucent.com>
+
+ * src/remove.c (ROOT_CAN_UNLINK_DIRS): Define.
+ (AD_pop_and_chdir): Propagate status as we traverse back `up' the tree.
+ (DO_UNLINK, DO_RMDIR): Define.
+ (remove_entry) [ROOT_CAN_UNLINK_DIRS]: Add code so this works also on
+ systems where root can use `unlink' to remove directories.
+
+2002-05-24 Jim Meyering <meyering@lucent.com>
+
+ * tests/mv/mv-special-1: Adapt for changed format of --verbose output.
+
+2002-05-22 Jim Meyering <meyering@lucent.com>
+
+ * src/remove.c: Include file-type.h.
+ Include file type in prompt when asking whether to remove file.
+ Based on a patch from Paul Eggert.
+
+ * src/remove.c (prompt): Add comment.
+
+ * src/remove.c (remove_dir): Fix another (known) leak.
+
+ * tests/rm/rm3: Don't depend on order of traversal of dir entries.
+ It is nondeterministic on some types of filesystems.
+
+ * src/remove.c (hash_freer): New function.
+ (AD_mark_helper): Use it.
+ (AD_mark_as_unremovable): xstrdup the filename argument.
+ (remove_dir): Free directory name.
+
+ * src/remove.c (remove_entry): Fail also when trying to remove a
+ directory without the --recursive option.
+ Change a diagnostic, s/unlink/remove/, now that it can apply also
+ to a directory.
+
+ * src/remove.c (is_empty_dir): New function.
+ (prompt): New function, factored out of...
+ (remove_entry): ...here. Call it.
+ (remove_dir): Call prompt before rmdir.
+
+ * src/remove.c (remove_entry): Add support for prompting (e.g., -i).
+
+ * src/remove.h (UPDATE_STATUS): New macro.
+ Include save-cwd.h.
+ (struct File_spec): Remove declaration.
+ Update prototypes.
+
+ * src/remove.c [AD_ent] (status): New member. This lets us propagate
+ the status from a subdirectory to its parent via AD_pop_and_chdir.
+ (AD_push_initial): Set it.
+ (AD_push): Likewise.
+ (remove_cwd_entries): Change return type to enum RM_status, and
+ adjust all callers.
+ (rm): Use UPDATE_STATUS rather than open-coding it.
+
+ * src/remove.c (remove_entry): New function, factored out of...
+ (remove_cwd_entries): ...here, and...
+ (rm_1): ...here.
+
+ * src/remove.c (remove_cwd_entries): Add support for --verbose.
+ (remove_dir): Likewise.
+ (rm_1): Likewise.
+
+2002-05-18 Jim Meyering <meyering@lucent.com>
+
+ * tests/rm/rm3: New file.
+ * tests/rm/rm4: New file.
+ * tests/rm/Makefile.am (TESTS): Add rm3 and rm4.
+
+2002-05-17 Jim Meyering <meyering@lucent.com>
+
+ * tests/rm/rm1: New file.
+ * tests/rm/rm2: New file.
+ * tests/rm/unread2: New file.
+ * tests/rm/Makefile.am (TESTS): Add rm1, rm2, and unread2.
+
+ * src/remove.h (enum RM_status) [RM_NONEMPTY_DIR]: New member.
+
+2002-05-13 Jim Meyering <meyering@lucent.com>
+
+ * src/remove.c (rm): Free cwd_state, if necessary.
+
+2002-05-01 Jim Meyering <meyering@lucent.com>
+
+ * src/remove.c (rm_1): Remove now useless (always true)
+ user_specified_name parameter. Adjust sole caller.
+
+ * src/remove.c (rm): New function. This interface allows
+ one to remove multiple arguments at a time. This is important in
+ that it allows us to hide the remove_init/remove_fini functions and
+ the cwd_state parameter.
+ (rm_1): Renamed from rm.
+ (remove_init, remove_fini): Remove functions. Each body is now
+ part of `rm'.
+ * src/remove.h (rm): Update prototype.
+
+2002-06-01 Jim Meyering <meyering@lucent.com>
+
+ * src/ls.c: Remove use of D_TYPE_IN_DIRENT, now that that symbol
+ has been renamed.
+
+2002-05-30 Jim Meyering <meyering@lucent.com>
+
+ * src/copy.c (copy_reg): Use a temporary to avoid a warning
+ from gcc -W about comparison between signed and unsigned.
+ (copy_internal): Likewise, but use a cast.
+
+2002-05-22 Jim Meyering <meyering@lucent.com>
+
+ * src/sys2.h (S_ISREG, S_ISDIR): Define if not already defined.
+ (S_TYPEISSEM, S_TYPEISSHM, S_TYPEISTMO): Likewise.
+
+ * src/ls.c (S_ISLNK, S_ISFIFO, S_ISSOCK, S_ISCHR, S_ISBLK, S_ISDOOR):
+ Remove definitions.
+ * src/sys2.c (S_ISLNK, S_ISFIFO, S_ISSOCK, S_ISCHR, S_ISBLK, S_ISDOOR):
+ Define here instead.
+
+2002-04-27 Jim Meyering <meyering@lucent.com>
+
+ * src/remove.c (cycle_check): New function containing code factored
+ out of remove_dir. The sole difference is that upon detecting a
+ cycle, rm now dies unconditionally. Before, in interactive mode,
+ it would ask the user whether to continue.
+ (remove_dir): Call cycle_check.
+
+2002-04-25 Jim Meyering <meyering@lucent.com>
+
+ Avoid new warnings from gcc.
+ * src/dd.c: Declare input_file and output_file to be `const'.
+ (skip): Declare `file' parameter to be `const', too.
+
+ Remove hash table, active_dir_map, used to detect directory cycles.
+ Instead, detect them lazily with just O(1) memory.
+ Suggestion from Andi Kleen.
+ * src/remove.c (is_power_of_two): New function.
+ (print_nth_dir, make_active_dir_ent): Remove functions.
+ (hash_active_dir_ent, hash_compare_active_dir_ents): Likewise.
+ (remove_dir): Check for cycles here, ...
+ (rm): ... and don't check for cycles here.
+
+ * src/remove.c (rm): Call fspec_get_full_mode here, rather than
+ fspec_get_filetype_mode. We want to get the dev/ino earlier, and
+ at the same time as when we get the file type, to avoid the risk
+ that an attacker would change e.g. a directory to a symlink before
+ we record its dev/ino.
+
+ * configure.ac (AC_CONFIG_FILES): Remove intl/Makefile.
+ (AM_GNU_GETTEXT): Add external arg.
+
+ * intl/: Remove directory.
+ * Makefile.am (SUBDIRS): Remove intl.
+ (DISTCLEANFILES): Remove definition.
+
+ * src/sys2.h: Remove ENABLE_NLS-related code.
+ (_, N_) Remove definitions.
+ Include "gettext.h" instead.
+
+ * src/Makefile.am (INCLUDES): Remove -I../intl.
+
+2002-04-22 Jim Meyering <meyering@lucent.com>
+
+ * src/remove.c (rm): Call exit with EXIT_FAILURE, not `1'.
+
+2002-04-19 Jim Meyering <meyering@lucent.com>
+
+ * tests/cp/*: Clean up.
+
+ * tests/sample-test: Use a temporary directory named
+ `basename $0`.tmp/$$. Create with mkdir -p.
+
+ * tests/cp/backup-1: Use better trap, etc.
+ * tests/mkdir/p-2: Use better trap.
+ * tests/mkdir/p-1: Likewise.
+ * tests/mkdir/concurrent-1: Likewise.
+
+ * tests/rm/deep-1: Set $tmp the new way.
+
+ * tests/rm/ir-1: Use `rm', not $RM. Use better trap.
+ * tests/rm/i-1: Likewise.
+ * tests/rm/f-1: Likewise.
+
+ * tests/sample-test: Use automatically-derived name for temporary
+ directory. This is more 8.3-friendly. Based on a suggestion from
+ Richard Dawe.
+
+ * tests/sample-test: New file.
+ * tests/Makefile.am (EXTRA_DIST): Add sample-test.
+
+2002-04-17 Jim Meyering <meyering@lucent.com>
+
+ * src/touch.c (touch): Don't report errors for nonexistent files
+ when --no-create is in effect. Based on a patch from TAKAI Kousuke.
+ * tests/touch/no-create-missing: New file/test for above.
+ * tests/touch/Makefile.am (TESTS): Add no-create-missing.
+
+2002-04-16 Jim Meyering <meyering@lucent.com>
+
+ * src/stat.c: Add copyright comment.
+ (human_fstype): Rename from print_human_fstype, and rework accordingly.
+ (print_statfs): Use human_fstype to honor format width on %T.
+
+2002-04-15 Jim Meyering <meyering@lucent.com>
+
+ Handle "lld" vs "ld" printf formats the same way Bash does.
+ * src/stat.c: Include inttypes.h.
+ (PRIdMAX, PRIuMAX): Define, if not already defined.
+ (print_statfs): Use those macros, not the literal strings.
+ (print_stat): Likewise.
+ Suggestion from Paul Eggert.
+
+ * src/stat.c (print_human_fstype): Add missing `break;'
+ for `case S_MAGIC_MINIX:'.
+
+2002-04-14 Jim Meyering <meyering@lucent.com>
+
+ * src/stat.c (statfs_secure): Define.
+ (print_stat): Remove another #ifdef.
+ (do_statfs): Likewise.
+ (print_statfs): Prefer/use fputs over printf.
+ (print_stat): Likewise.
+
+ * src/Makefile.am (bin_PROGRAMS): Add stat.
+ (noinst_HEADERS): Add fs.h.
+
+ * src/stat.c [HAVE_SYS_VFS_H]: Guard incluion of sys/vfs.h.
+ Constify many parameters.
+ (print_statfs): Fix typo: Use %u (to match %lu) for namelen, not %d.
+ (verbose_usage): Remove function. Move contents into usage.
+ Remove lots of #if directives involving FLASK_LINUX
+ [!FLASK_LINUX] (is_flask_enabled): Define.
+ (stat_secure, lstat_secure): Define.
+ (print_statfs): Remove lots of nested #if directives.
+ Instead, rely on support fo %llu and %lld printf formats --
+ but that is only temporary, since it's not porable enough.
+ (main): Hoist is_flask_enabled test to be done here, rather
+ than in each of do_stat and do_statfs for every argument.
+
+2002-04-13 Jim Meyering <meyering@lucent.com>
+
+ * src/stat.c: Include system.h, error.h, and many other headers.
+ [HAVE_SYS_SYSMACROS_H]: Guard inclusion of sys/sysmacros.h.
+ (PROGRAM_NAME, AUTHORS): Define.
+ (long_options): Declare/define.
+ (print_human_access): Rewrite to use mode_string.
+ (usage): Rewrite.
+ (main): Use getopt_long.
+ (print_human_type): Call fputs once rather than calling
+ printf many times.
+ (print_human_fstype): Revamp in a similar fashion. Don't use strdup.
+ Declare most functions to be `static'.
+
+2002-04-12 Jim Meyering <meyering@lucent.com>
+
+ * src/Makefile.am (LDADD): List ../lib/libfetish.a both before
+ and after @LIBINTL@. Thanks to Paul Eggert for the fix and to
+ Bruno Haible for diagnosing the problem.
+
+ * src/link.c: Include long-options.h.
+ [long_opts]: Remove.
+ (usage): Tweak --help output; use *_OPTION_DESCRIPTION macros.
+ (main): Don't use getopt directly. Use parse_long_options instead.
+ Tweak a diagnostic.
+ Use EXIT_FAILURE rather than a literal `1'.
+ * src/unlink.c: Likewise.
+ (main): If POSIXLY_CORRECT is set, don't recognize --help or --version,
+ so the program can operate on a file with one of those names.
+
+2002-04-11 Jim Meyering <meyering@lucent.com>
+
+ New programs link and unlink.
+
+ * src/Makefile.am (bin_PROGRAMS): Add link and unlink.
+ * src/link.c, src/unlink.c: New files, from Debian's fileutils_4.1-10.
+ Written by Michael Stone.
+
+ * man/link.x: New file.
+ * man/unlink.x: New file.
+ * man/Makefile.am: Add link and unlink.
+
+2002-04-07 Jim Meyering <meyering@lucent.com>
+
+ * tests/install/basic-1: Tweak comments to reflect reality.
+ * tests/cp/fail-perm: Add VERBOSE=yes support.
+ * tests/mv/mv-special-1: Fix typo in VERBOSE=yes handling.
+ Reported by Richard Dawe.
+
+2002-03-30 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.1.8.
+
+ * tests/mv/i-link-no: Use --reply=no rather than -i.
+ The latter depends on whether stdin is a tty and hence would
+ fail in some situations where --reply=no doesn't.
+
+ * src/mv.c (do_move): Correct a comment.
+
+ * src/copy.c (copy_internal): Move the block that sets `earlier_file'
+ down to just before the first use of that variable. Otherwise, it was
+ possible to make mv (and probably cp, too) malfunction when copying
+ hard-linked files into a directory containing at least one of the
+ source file names. Call forget_created everywhere thereafter where
+ this function returns without creating a destination file that might
+ subsequently be linked. Reported by Iida Yosiaki.
+ * src/cp-hash.c (forget_created): New function.
+ * src/cp-hash.h (forget_created): Prototype.
+
+ * tests/mv/i-link-no: New test for the above.
+ Based on an example from Iida Yosiaki.
+ * tests/mv/Makefile.am (TESTS): Add i-link-no.
+
+2002-03-17 Jim Meyering <meyering@lucent.com>
+
+ * src/copy.c (copy_internal) [move_mode]: Give a better diagnostic,
+ by using errno from the failed unlink, when a cross-device `mv'
+ fails, e.g., because the destination cannot be unlinked.
+ Prompted by a report from Karl Berry.
+ * tests/mv/part-fail: New test for the above.
+ * tests/mv/Makefile.am (TESTS): Add part-fail.
+
+2002-03-16 Jim Meyering <meyering@lucent.com>
+
+ * src/Makefile.am (datadir): Don't override $(datadir)
+ which might be set by --datadir and different from $(prefix)/share.
+ Patch from Albert Chin-A-Young.
+
+2002-03-10 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.1.7.
+
+ * src/ln.c (main): Change wording in diagnostic.
+ * src/cp.c (do_copy): Likewise.
+ * src/install.c (strip): Likewise.
+ Suggestions from Santiago Vila.
+
+ * Use autoconf-2.53. Regenerate dependent files.
+
+ * Makefile.maint (GZIP, BZIP2): Remove definitions.
+ ($(my_distdir).tar.bz2): Remove rule. Now, it's built by `make dist'.
+
+ * configure.ac (AM_INIT_AUTOMAKE): Specify the required version
+ of automake (1.6), and options (gnits dist-bzip2), rather than...
+ * Makefile.am (AUTOMAKE_OPTIONS): ...here. Remove definition.
+
+ * src/copy.c (copy_reg): Don't exit upon finding a replaced file.
+ Instead, just skip it like the diagnostic says.
+ Reported by Paul Eggert.
+
+2002-03-09 Paul Eggert <eggert@twinsun.com>
+
+ * src/copy.c (copy_reg): Use a more concise diagnostic for
+ reporting replaced files. This avoids a bug in the code,
+ which mishandled ino_t wider than long.
+ * src/remove.c (remove_dir): Likewise, twice.
+
+2002-03-09 Jim Meyering <meyering@lucent.com>
+
+ * Makefile.am (EXTRA_DIST): Remove config/config.rpath,
+ now that automake knows about it.
+
+2002-03-08 Jim Meyering <meyering@lucent.com>
+
+ Don't allow a malicious user to trick another user's rm process into
+ removing unintended files. In one scenario, if root is removing a
+ hierarchy that is writable by the malicious user, that user may trick
+ root into removing all of `/'. Reported by Wojciech Purczynski.
+
+ * src/remove.c (remove_dir): After chdir `..', call lstat to get the
+ dev/inode of "." and fail if they aren't the same as the old numbers.
+ (remove_cwd_entries): New parameter, `cwd_dev_ino'.
+ (remove_dir): Likewise.
+ (rm): Likewise.
+ Adjust all callers.
+ * src/mv.c (do_move): The first time we resort to copy/remove,
+ call lstat `.' to get the device/inode numbers now required for rm.
+ * src/rm.c (main): Call lstat `.' to get the device/inode numbers
+ now required for rm.
+ * src/remove.h (struct dev_ino): Declare new type.
+ (rm): Add a parameter to the prototype.
+
+2002-03-06 Jim Meyering <meyering@lucent.com>
+
+ * Use automake-1.6. Regenerate dependent files.
+
+2002-03-05 Jim Meyering <meyering@lucent.com>
+
+ * Makefile.am (EXTRA_DIST): Add config/config.rpath.
+
+2002-03-04 Jim Meyering <meyering@lucent.com>
+
+ * Makefile.maint (tgz-size): Also handle a suffix of `K', since
+ the sizes in the output of `du -h' now look like `29K'
+
+2002-03-03 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.1.6.
+
+2002-03-03 Paul Eggert <eggert@twinsun.com>
+
+ Make cp -r equivalent to cp -R. Add a new cp option --copy-contents
+ for people who want to emulate the traditional (and rarely desirable)
+ cp -r behavior.
+
+ * src/cp.c (COPY_CONTENTS_OPTION): New enum value.
+ (long_opts): Add --copy-contents.
+ (usage): Describe new behavior. Sort options.
+ (main): Implement new behavior. Remove diagnostics for -a and -r;
+ no longer needed.
+ * src/copy.c (copy_internal): Remove -r warning; no longer needed.
+
+ * NEWS: Document this.
+
+2002-03-02 Jim Meyering <meyering@lucent.com>
+
+ * src/copy.c (copy_internal): For each symlink copied by cp -r,
+ issue a warning that `cp -r' is not portable.
+
+ * src/cp.c (main): Revert change of 2001-12-29. With this change,
+ cp -r once again preserves symlinks.
+ (usage): Document the original (now-restored) behavior.
+ * tests/cp/r-vs-symlink: Reflect changed semantics of cp's -r option.
+
+ * src/cp.c (main): Warn when -r is specified before --archive (-a).
+ * src/cp.c (main): Fail when -r is specified after --archive (-a)
+ on the command line.
+
+ * src/copy.c (copy_reg): Detect abuse of a race condition
+ whereby an unprivileged user could gain read access to otherwise-
+ inaccessible files when root uses cp or mv to copy a hierarchy
+ belonging to that user.
+
+2002-02-27 Paul Eggert <eggert@twinsun.com>
+
+ * src/ls.c (decode_switches, usage): Add --time-style=+FORMAT.
+ * doc/coreutils.texi (Formatting file timestamps): Document it.
+
+2002-02-25 Paul Eggert <eggert@twinsun.com>
+
+ Add ACL support to 'ls' for HP-UX and Unixware, and try to
+ establish a framework for adding it for other hosts.
+ This builds on a suggestion of Andreas Gruenbacher.
+
+ * lib/Makefile.am (libfetish_a_SOURCES): Add acl.h, acl.c.
+ * lib/acl.h, lib/acl.c, m4/acl.m4: New files.
+ * m4/jm-macros.m4 (jm_MACROS): Require AC_FUNC_ACL.
+ Do not check for acl or sys/acl.h, as AC_FUNC_ACL does that now.
+ * src/ls.c: Include "acl.h" rather than <sys/acl.h>.
+ (USE_ACL): Remove; replaced by HAVE_ACL everywhere.
+ (gobble_file): Use file_has_acl rather than doing it ourselves.
+
+2002-02-20 Jim Meyering <meyering@lucent.com>
+
+ * src/touch.c: Include posixver.h.
+ (usage): Document only the intersection of the old and new behaviors,
+ to encourage portability.
+ (main): Use `posix2_version ()' in place of POSIX2_VERSION.
+
+2002-02-17 Jim Meyering <meyering@lucent.com>
+
+ * ABOUT-NLS, intl/*: Update to Gettext 0.11.
+ * INSTALL: Update to Autoconf 2.52h.
+
+ * src/Makefile.am (datadir): Use `share' in place of @DATADIRNAME@,
+ per Gettext-0.11.
+ (LDADD): Use @LIBINTL@ instead of @INTLLIBS@, per Gettext-0.11.
+
+ * configure.ac (AC_CONFIG_AUX_DIR): New macro invocation.
+ (ALL_LINGUAS): Remove: now in po/LINGUAS as per Gettext 0.11.
+
+ * config: New subdirectory, containing the following files from .:
+ config.guess, config.sub, depcomp, missing, install-sh, mkinstalldirs.
+ Move the following files here from doc: texinfo.tex, mdate-sh.
+
+2002-02-16 Jim Meyering <meyering@lucent.com>
+
+ * tests/ls/infloop: Use `head -n 7', not `head -7'.
+ * tests/rm/hash: Likewise.
+
+2002-02-10 Jim Meyering <meyering@lucent.com>
+
+ * configure.in (ALL_LINGUAS): Add Hungarian (hu).
+
+2002-02-02 Jim Meyering <meyering@lucent.com>
+
+ * src/shred.c: (VERBOSE_UPDATE): Update every 5 seconds, not every 10.
+ (wipename): Quote file names only when necessary.
+ (main): Copy quoted string into malloc'd storage so it doesn't
+ get clobbered when using -u and --verbose.
+
+ Minor clean-up.
+ * src/shred.c:
+ Use `NULL' rather than `(time_t *) 0'.
+ (dopass): Use STREQ in place of strcmp.
+ Add parentheses around use of nested ternary operator.
+
+2002-01-15 Paul Eggert <eggert@twinsun.com>
+
+ * src/shred.c (VERBOSE_UPDATE): Now counts seconds, not bytes.
+
+ (dopass): If verbose, output a line every VERBOSE_UPDATE seconds,
+ and suppress duplicate output lines. Output a percentage as well
+ as a count of bytes.
+
+ Also, fix comment/code typo regarding how many bytes have been
+ written; this typo was harmless before, but is no longer harmless with
+ the above change in effect.
+
+2002-02-02 Jim Meyering <meyering@lucent.com>
+
+ * src/remove.c (rm): Add a comment.
+
+2002-01-28 Jim Meyering <meyering@lucent.com>
+
+ * Makefile.am (AUTOMAKE_OPTIONS): Require automake-1.5d.
+ * configure.ac (AM_INIT_AUTOMAKE): Use zero-arg form of this macro.
+
+2002-01-21 Jim Meyering <meyering@lucent.com>
+
+ * po/POTFILES.in: Add lib/xmemcoll.c
+
+ * src/chown-core.c: Don't include "xalloc.h", as system.h already
+ does that via sys2.h.
+ * src/ls.c: Likewise.
+ * src/shred.c: Likewise.
+
+2002-01-20 Paul Eggert <eggert@twinsun.com>
+
+ * src/ls.c: Avoid undefined behavior when strcoll fails,
+ by resorting the directory with strcmp instead.
+
+ Include <setjmp.h>.
+ Include "quote.h".
+ (compare_atime, rev_cmp_atime, compare_ctime, rev_cmp_ctime,
+ compare_mtime, rev_cmp_mtime, compare_size, rev_comp_size,
+ compare_name, rev_cmp_name, compare_extension, rev_cmp_extension,
+ compare_version, rev_compare_version): Move before use, so that
+ we can remove the forward declaration. Reimplement in terms of
+ the new functions described below, using xstrcoll instead of strcoll.
+ (failed_strcoll): New var.
+ (xstrcoll): New function.
+ (V): New type.
+ (cmp_ctime, compstr_ctime, rev_str_ctime): New functions.
+ (cmp_mtime, compstr_mtime, rev_str_mtime): Likewise.
+ (cmp_atime, compstr_atime, rev_str_atime): Likewise.
+ (cmp_size, compstr_size, rev_str_size): Likewise.
+ (cmp_version): Likewise.
+ (cmp_name, compstr_name, rev_str_name): Likewise.
+ (cmp_extension, compstr_extension, rev_str_extension): Likewise.
+ (sort_files): Use prototype for internal function var.
+ If the strcoll-based comparison fails, fall back on a strcmp-based one.
+
+2002-01-19 Jim Meyering <meyering@lucent.com>
+
+ Ensure that the two version numbers in configure.ac remain in sync.
+ * Makefile.maint (local-check): Depend on ac-check.
+ (ac_p_pkg, AC_INIT_PKG): Define.
+ (ac_p_ver, AC_INIT_VER): Define.
+ (ac-check): New rule.
+
+2002-01-19 Jim Meyering <meyering@lucent.com>
+
+ * configure.ac: Remove code that set LIBOBJS in support of ansi2knr.
+ The latest version of autoconf objected to it, and besides, I don't
+ care too much about K&R support these days.
+
+2002-01-14 Paul Eggert <eggert@twinsun.com>
+
+ * src/touch.c (main): Issue a warning for obsolete usage, unless
+ POSIXLY_CORRECT.
+
+2002-01-14 Paul Eggert <eggert@twinsun.com>
+
+ Add support for POSIX 1003.1-2001, which requires removal for
+ support of the obsolete `touch [-acm] MMDDhhmm[YY] FILE...' syntax.
+
+ * NEWS: Document this.
+ * src/touch.c (usage, main): Implement this.
+
+2002-01-12 Jim Meyering <meyering@lucent.com>
+
+ Avoid giving a misleading diagnostic in some unusual cases.
+ Instead, give one that makes sense.
+
+ * src/copy.c (copy_reg): Don't treat errno==ENOENT as a special case.
+ (same_file_ok): Detect a case that would have lead to the errno==ENOENT
+ condition above (and a misleading diagnostic), and return 0 so we give
+ a diagnostic about the source and destination being the same file.
+ (copy_internal): Use an explicit test for errno==EXDEV to detect
+ that rename has failed because source and destination are on
+ different devices. This reverts part of a change from 1997-12-13,
+ and is to avoid letting a race condition evoke a bogus diagnostic.
+ Note that while POSIX has encouraged the errno==EXDEV test for
+ years, it was inadequate back in 1997. I'm hoping that many
+ more systems have conforming support these days.
+ Reported by Michael Gaughen <mgaughen@polyserve.com>
+
+ * src/shred.c (usage): Also mention Ext3.
+ Suggestion from Göran Uddeborg.
+
+2002-01-06 Bruno Haible <bruno@clisp.org>
+
+ * src/ls.c (long_time_format): Extend translator comments.
+
+2002-01-05 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.1.5.
+
+2001-12-29 Jim Meyering <meyering@lucent.com>
+
+ * src/cp.c (main): With -r, always dereference symlinks.
+ Reported by Christian Harkort. Patch by Chris J. Bednar.
+
+ * tests/cp/r-vs-symlink: New file to test for the above fix.
+ * tests/cp/Makefile.am (TESTS): Add r-vs-symlink.
+
+2001-12-21 Jim Meyering <meyering@lucent.com>
+
+ * src/shred.c [!HAVE_CONFIG_H]: Remove cpp block that duplicated
+ code in lib/ in order to facilitate compiling this program without
+ config.h.
+
+2001-12-19 Paul Eggert <eggert@twinsun.com>
+
+ * src/shred.c: Add FSF copyright notice.
+
+2001-12-18 Paul Eggert <eggert@twinsun.com>
+
+ Use notation compatible with SI and with IEC 60027-2.
+ For example, --block-size=1MB now means --block-size=1000000,
+ whereas --block-size=1MiB now means --block-size=1048576.
+ A trailing `B' now means decimal, not binary; this is a silent change.
+ -H or --si now outputs the trailing 'B', for consistency with this.
+ Programs now output trailing 'K' (not 'k') to mean 1024.
+ New df, du short option -B is short for --block-size.
+ You can omit an integer `1' before a block size suffix,
+ e.g. `df -BG' is equivalent to `df -B 1G' and to `df --block-size=1G'.
+
+ * NEWS, doc/coreutils.texi: Document this. Remove documentation
+ for obsolescent constructs MD, --kilobytes, -m or --megabytes.
+
+ * src/dd.c (usage, parse_integer): Prefer K to k for 1024.
+ * src/shred.c (usage, main): Likewise.
+
+ * src/shred.c (xstrtoumax): 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'.
+
+ * src/dd.c (usage): MD -> MB for decimal.
+
+ * src/df.c (BLOCK_SIZE_OPTION): Remove; no longer needed now that
+ we have 'B'.
+ (long_options, usage, main): Add -B.
+ (usage): Deprecate --kilobytes, -m, --megabytes.
+ Document size suffixes.
+ * src/du.c: Likewise.
+ * src/ls.c (usage): Deprecate --kilobytes. Document size suffixes.
+
+ * src/df.c (print_header, show_dev): Enlarge column widths for
+ trailing "B".
+
+2001-12-17 Jim Meyering <meyering@lucent.com>
+
+ * Makefile.maint (real_dir): Remove unused variable.
+ (url_dir_list): Don't set define it here, but...
+ * Makefile.cfg (url_dir_list): ...define it here instead.
+ (hosts, a_host, b_host): Remove now-unused variables.
+ (alpha_subdir, a_url_dir, b_url_dir): Remove now-unused variables.
+
+2001-12-15 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.1.4.
+
+ * tests/touch/fail-diag: Also accept SunOS4's `Not owner' diagnostic.
+ Reported by Volker Borchert.
+
+ * tests/help-version: Fail also if ./$i --version fails.
+ Run each --help and --version test with a few different settings
+ of LC_MESSAGES. Prompted by a report from Nelson Beebe.
+
+2001-12-11 Jim Meyering <meyering@lucent.com>
+
+ Include the word `fail' in some diagnostics to make it clearer
+ that they indicate a failure.
+ * src/chgrp.c (main): s/getting attributes/failed to get attributes/.
+ * src/chmod.c (change_file_mode, main): Likewise.
+ * src/chown-core.c (change_file_owner): Likewise.
+ * src/chown.c (main): Likewise.
+ * src/cp.c (re_protect): Likewise.
+ * src/touch.c (touch, main):Likewise.
+ Suggestion from Karl Berry.
+
+2001-12-10 Jim Meyering <meyering@lucent.com>
+
+ * src/dd.c (buggy_lseek_support): Remove function.
+ (skip_via_lseek) [__linux__]: New function.
+ (skip): Use skip_via_lseek, not buggy_lseek_support.
+ Based on an outline from Paul Eggert.
+
+2001-12-09 Jim Meyering <meyering@lucent.com>
+
+ * configure.in (ALL_LINGUAS): Add Estonian (et).
+
+2001-12-08 Jim Meyering <meyering@lucent.com>
+
+ * Makefile.cfg (wget_files): Remove ansi2knr.c, since it's
+ no longer available at that location.
+
+2001-12-04 Jim Meyering <meyering@lucent.com>
+
+ * tests/chgrp/basic: Don't use diff's -u option. It's not portable.
+ Besides, with GNU diff one can use the DIFF_OPTIONS envvar.
+ * tests/ls/no-arg: Likewise.
+ * tests/ls/recursive: Likewise.
+ * tests/ls/rt-1: Likewise.
+
+2001-12-02 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.1.3.
+
+ * src/sys2.h (HELP_OPTION_DESCRIPTION): New macro.
+ (VERSION_OPTION_DESCRIPTION): New macro.
+ * src/chgrp.c, src/chmod.c, src/chown.c, src/cp.c, src/dd.c,
+ * src/df.c, src/dircolors.c, src/du.c, src/install.c, src/ln.c,
+ * src/ls.c, src/mkdir.c, src/mkfifo.c, src/mknod.c, src/mv.c, src/rm.c,
+ * src/rmdir.c, src/shred.c, src/stat.c, src/sync.c, src/touch.c (usage):
+ Use new macros, HELP_OPTION_DESCRIPTION and VERSION_OPTION_DESCRIPTION
+ instead of hard-coding --help and --version descriptions.
+
+ * POTFILES.in: Add src/sys2.h.
+
+ * src/touch.c (touch): Extend the change of 2001-09-15 to work on
+ systems for which errno is set to EPERM in that case. Thus, e.g.,
+ `touch /' by non-root gives a better diagnostic on systems like SunOS4.
+ Reported by Volker Borchert.
+
+ Don't emulate dd's skip=N for *all* character devices; lseek works
+ just fine on non-tape character devices like /dev/mem and /dev/kmem.
+ * src/dd.c (buggy_lseek_support) [__linux__]: Emulate `skip=N'
+ behavior using reads, not lseek for Linux tape devices (major == 9).
+ Kernel lseek support for tapes is broken, up to and including
+ linux-2.4.16. Reported by Herbert Xu.
+
+2001-11-27 Jim Meyering <meyering@lucent.com>
+
+ * tests/ls/rt-1: Compare all lines of output.
+ Update code to use `trap' and more up to date infrastructure.
+
+ The change of 2001-11-01 introduced a bug whereby some recursive
+ listings didn't have a blank line between per-directory groups of files.
+ * src/ls.c (print_dir): Print a newline before each directory name
+ except the first one, rather than after each except the last, since
+ now (after the changes of 2001-11-01) detecting whether a `pending*'
+ is the last would involve more work. Reported by Andreas Schwab.
+ * tests/ls/recursive: New file. Test for the above.
+ * tests/ls/Makefile.am (TESTS): Add recursive.
+
+ This change has no net effect.
+ * src/ls.c (main): Remove always-true conjunct and add a comment.
+
+2001-11-26 Jim Meyering <meyering@lucent.com>
+
+ * src/shred.c: Don't include "gtod.h"
+ (main): Don't `call' GETTIMEOFDAY_INIT.
+ * src/ls.c: Likewise.
+
+2001-11-24 Jim Meyering <meyering@lucent.com>
+
+ * Makefile.maint: Include signatures for the xdelta file, too.
+
+ * Makefile.maint (emit-upload-commands): Rename from
+ emit-rsync-commands.
+ Output only the package name and the prev and current version numbers.
+
+ * Version 4.1.2.
+
+ * src/sync.c (usage): Make --help and --version strings
+ start in column 7.
+
+ * Makefile.cfg (move_if_change): Remove definition.
+ ($(srcdir)/m4/jm-glibc-io.m4): Use mv, not move-if-change.
+
+2001-11-23 Jim Meyering <meyering@lucent.com>
+
+ * cp.c, df.c, du.c, install.c, ln.c, ls.c, mkdir.c (usage):
+ * mkfifo.c, mknod.c, mv.c, shred.c, touch.c (usage):
+ Note that ``Mandatory arguments to long options are mandatory
+ for short options too.''
+
+ * src/shred.c (usage): Use `output', not `print' in description of
+ the --version option, so this message is consistent with all the rest.
+
+ * chgrp.c, chmod.c, chown.c, cp.c, dd.c, df.c, dircolors.c (usage):
+ * du.c, install.c, ln.c, ls.c, rm.c, rmdir.c, shred.c, touch.c (usage):
+ Split --help output into smaller pieces.
+ Use fputs, not printf.
+
+ * src/cp-hash.c: Use opaque type, Hash_table, not `struct hash_table'.
+ * src/du.c: Likewise.
+ * src/remove.c: Likewise.
+
+2001-11-22 Jim Meyering <meyering@lucent.com>
+
+ Don't fail for commands like this: cp a a d/
+ This change in behavior was introduced in 4.1.1, as part of the
+ 2001-09-28 change. cp and mv still fail for commands like this:
+ rm -rf a b c; mkdir a b c; touch a/f b/f; mv a/f b/f c
+
+ * src/copy.c (triple_hash_no_name): New function.
+ (src_info_init): New function.
+ (copy_internal): Warn and return early for the second and subsequent
+ occurrences of the same source file named on the command line.
+ * src/copy.h (struct cp_options) [src_info]: New member.
+ * src/install.c (cp_option_init): Initialize new member.
+ * src/mv.c (cp_option_init): Likewise.
+ * src/cp.c (cp_option_init): Likewise.
+ (do_copy): Call src_info_init.
+
+ * tests/mv/dup-source: New test for the above.
+ * tests/mv/Makefile.am (TESTS): Add dup-source.
+
+ * src/copy.c (seen_file): Change type of `stats' parameter to pointer.
+ (copy_internal): Update caller.
+
+ * src/copy.c (struct F_triple): Rename from dest_info.
+ (seen_file): Rename from seen_dest. Rename parameters accordingly.
+ (record_file): Rename from record_dest. Rename parameters accordingly.
+ (triple_hash): Rename from dest_info_hash.
+ (triple_compare): Rename from dest_info_compare.
+ (triple_free): Rename from dest_info_free.
+
+ * src/mknod.c (main): Add a literal format string to suppress
+ a warning from gcc's -Wformat-security.
+
+ copy.c shouldn't maintain static state.
+
+ * src/copy.c (dest_info): Remove declaration of file-scoped global.
+ (dest_info_init): Require a parameter.
+ Update all callers.
+ (seen_dest): Require a hash table parameter. Update callers.
+ (record_dest): Likewise.
+ * src/copy.h: Include hash.h.
+ (struct cp_options) [dest_info]: New member.
+ * src/install.c (cp_option_init): Initialize new member.
+ * src/mv.c (cp_option_init): Likewise.
+ * src/cp.c (cp_option_init): Likewise.
+ (do_copy): Remove const attribute from declaration of parameter, x.
+
+2001-11-17 Jim Meyering <meyering@lucent.com>
+
+ * tests/chmod/equals: New test for the just-fixed bug in
+ lib/modechange.c.
+ * tests/chmod/Makefile.am (TESTS): Add equals.
+
+ * configure.ac: Replace use of the one-arg form of AC_INIT
+ with a use of the 3-arg form and a use of AC_CONFIG_SRCDIR.
+
+2001-11-12 Jim Meyering <meyering@lucent.com>
+
+ * tests/rm/r-3: Clean up.
+
+2001-11-09 Jim Meyering <meyering@lucent.com>
+
+ * configure.ac: Use AC_CONFIG_FILES(...) and call AC_OUTPUT with no
+ arguments.
+
+2001-11-06 Jim Meyering <meyering@lucent.com>
+
+ * src/dircolors.hin: Remove duplicate entry for .png.
+ Reported by Frédéric L. W. Meunier.
+
+2001-11-03 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.1.1.
+
+ * src/ls.c (DEV_INO_PUSH): Avoid unnecessary copies.
+ (dev_ino_pop): Likewise.
+
+2001-11-02 Jim Meyering <meyering@lucent.com>
+
+ * src/ls.c: Rename global: s/trace_dirs/recursive/.
+ (extract_dirs_from_files): Rename parameter:
+ s/recursive/ignore_dot_and_dot_dot/.
+
+ * src/ls.c: (dev_ino_pop): Cast 2nd arg of obstack_blank to `int'
+ before negating to avoid warning from gcc on systems with 64-bit size_t.
+
+ * src/ls.c: Use XMALLOC and XREALLOC in a several places. It's cleaner.
+
+2001-11-01 Jim Meyering <meyering@lucent.com>
+
+ * src/ls.c: Include dirfd.h.
+ (print_dir): If dirfd fails, resort to using stat.
+
+ * tests/ls/infloop: Redirect cmp's stderr to /dev/null.
+
+ * src/ls.c (struct pending) [st_ino, st_dev]: Remove members.
+ (queue_directory): Remove just-added 3rd parameter
+ and associated code, and update callers.
+ (print_dir): Get dev/inode pair via `fstat (dirfd (reading), ...',
+ and call visit_dir to detect cycles here.
+ Push the dev/inode pair onto the new stack.
+ (dev_ino_obstack): New global.
+ (DEV_INO_PUSH): New macro.
+ (dev_ino_pop): New function.
+ (ASSERT_MATCHING_DEV_INO): New macro.
+ (visit_dir): Take two parameters (dev,ino), not one `pending'.
+ (main): Initialized the dev_ino_obstack.
+ Don't call visit_dir here.
+ Get the dev/ino pair from the new stack, not from the pending entry.
+
+ Make ls -R detect directory cycles.
+ Add loop detection without incurring an additional stat call per
+ directory processed. To detect loops efficiently (i.e., time: +O(1)
+ per directory processed by ls -R, total additional space:
+ O(max-tree-depth)), record the dev/ino of each `active' directory
+ in a hash table. To know when a directory is no longer active,
+ insert a marker (name == NULL) entry for it in the pending queue.
+ When a marker comes to the front of the queue, that directory is no
+ longer active, and must be removed from the hash table. To remove it,
+ we need to know its dev/ino again. Since by the time a directory
+ has become inactive its files[] info is long gone and it's DIR*
+ is closed, I must either save the dev/ino someplace (pending seemed
+ logical) or recompute them via stat.
+
+ The following change will convert to using a stack of dev/ino pairs
+ instead, pushing an entry when doing the opendir (use fstat on
+ dirfd (reading)), and popping (when encountering a marker) to get
+ the dev/ino pair to be removed from the hash table.
+
+ * src/ls.c: Include hash.h, same.h, and xalloc.h.
+ (INITIAL_TABLE_SIZE, LOOP_DETECT): Define.
+ (active_dir_set): New global.
+ (struct dev_ino): Declare.
+ (dev_ino_hash, dev_ino_compare, dev_ino_free): New functions.
+ (visit_dir, free_pending_ent): New functions.
+ (main): Initialize the active_dir_set hash table, if necessary.
+ Don't confuse a marker entry with a real one.
+ Detect loops.
+ Manage the set of active directories.
+ Free the hash table.
+ (queue_directory): Add a new parameter.
+ Ensure that we set the new dev/ino members for each enqueued directory.
+ Update all callers.
+ (print_dir): Don't confuse a marker entry with a real one.
+ (extract_dirs_from_files): Insert a marker entry before inserting
+ the entries for subdirectories.
+
+ Don't try to print a NULL pointer.
+ * src/ls.c (main): Don't use ARGMATCH_TO_ARGUMENT.
+ This reverts part of the 1998-12-31 change.
+ * tests/ls/dired: New test, for the above.
+ * tests/ls/Makefile.am (TESTS): Add dired.
+
+2001-10-24 Jim Meyering <meyering@lucent.com>
+
+ * src/cp.c (main): Free hash table storage.
+ * src/cp-hash.c (forget_all): Use hash_free, not hash_clear.
+
+2001-10-22 Paul Eggert <eggert@twinsun.com>
+
+ * src/sys2.h (alloca): Define to __builtin_alloca if __GNUC__,
+ to avoid a warning if -Wall.
+
+2001-10-21 Paul Eggert <eggert@twinsun.com>
+
+ * src/dd.c: Remove as many instances of 'unsigned' as
+ possible, as some of them were not conforming to ANSI C, and
+ they made the code hard to read. Avoiding 'unsigned' cuts
+ down on the number of casts.
+
+ (newline_character, space_character, save_char):
+ Now char, not unsigned char.
+ (obuf): Now char *, not unsigned char *.
+ (ascii_to_ebcdic, ascii_to_ibm, ebcdic_to_ascii):
+ Now char[], not unsigned char[].
+ (translate_charset, translate_buffer, swab_buffer, skip, copy_simple,
+ copy_with_block, copy_with_unblock):
+ Arg now points to char, not unsigned char.
+ All callers changed.
+ (translate_charset, parse_conversion, apply_translations):
+ Use int index, not unsigned int.
+ (bit_count): Arg is now int, not unsigned int.
+ Callers not changed, as they already assumed this.
+ (translate_buffer): Cast char to unsigned char before using
+ it as a subscript.
+ (swab_buffer): Returns char *, not unsigned char *.
+ (dd_copy): Use char, not unsigned char, for buffers.
+ Use size_t for possibly-large index, not unsigned int.
+
+2001-10-21 Jim Meyering <meyering@lucent.com>
+
+ * src/shred.c (isaac_seed_machdep): Handle SIGSEGV, too. Ick.
+
+ * tests/mv/Makefile.am (TESTS): Remove i-3. It's not portable.
+
+ * src/copy.c: Include xreadlink.h.
+ (copy_internal): Don't use PATH_MAX.
+ Rewrite the symlink-copying code to use xreadlink.
+
+2001-10-20 Jim Meyering <meyering@lucent.com>
+
+ * src/touch.c (touch): Extend last change to work on systems
+ for which errno is set to EINVAL.
+
+ * src/ls.c: Declare some local variables to be `const', where
+ appropriate.
+ (usage): Improve the description of --dereference (-L).
+
+ * src/rm.c (usage): Clarify description of --directory (-d).
+ Based on a patch from Michael Stone.
+
+ * man/chmod.x: Describe sticky files and directories.
+ From Michael Stone.
+
+ * tests/mv/partition-perm: Don't use a umask that removes owner
+ read/write. Use a stricter test for permissions.
+
+ * tests/cp/link-preserve: Don't use a umask that removes owner
+ read/write. That would induce spurious failures in a probably-
+ outdated version of purify.
+
+2001-10-18 Jim Meyering <meyering@lucent.com>
+
+ * src/mv.c (movefile): Now that remember_copied xstrdup's the file
+ name, free `new_dest'.
+
+ Plug a leak.
+ * src/cp-hash.c (remember_copied): Use src_to_dest_free to free
+ the entry we couldn't insert.
+
+ Don't use free'd memory.
+ * src/copy.c (dest_info_free): New function.
+ (dest_info_init): Make the hash table code use it.
+ (record_dest): Store each DEST in malloc'd memory. Hence the above.
+ Use dest_info_free to free the `ent' we couldn't insert.
+
+2001-10-14 Jim Meyering <meyering@lucent.com>
+
+ Now, -P is the same as --no-dereference, per POSIX.
+ Use --parents to get the old meaning.
+
+ * src/cp.c (enum) [NO_DEREFERENCE_OPTION]: Remove member.
+ (long_opts): Associate --no-dereference with `-P'.
+ (usage): Update description of -P.
+ (main): Remove local, used_P_option, and code to warn
+ that the meaning of -P would be changing.
+
+2001-10-13 Jim Meyering <meyering@lucent.com>
+
+ * src/copy.c (copy_internal): Tighten up and add comments
+ describing the test for when to record (via remember_copied)
+ a <dst_path, source_dev, source_ino> triple.
+ Relax the test that guards the hard-linked-dir check and
+ the hard-link-preserving code.
+
+ Remove the link-preserving semantics from cp_options.dereference.
+ Clean up the code that preserves links for `cp -d' and `mv'.
+ Introduce new options:
+ --preserve[={mode,ownership,timestamps,links,all}]
+ --no-preserve={mode,ownership,timestamps,links,all}
+ -p and --preserve remain unchanged and are equivalent to
+ `--preserve=mode,ownership,timestamps'
+
+ * src/cp.c (enum) [NO_DEREFERENCE_OPTION]: New member.
+ (enum) [NO_PRESERVE_ATTRIBUTES_OPTION]: New member.
+ (enum) [PRESERVE_ATTRIBUTES_OPTION]: New member.
+ (long_opts): Separate -d and --no-dereference options.
+ Add `no-preserve'.
+ Separate -p and --preserve options.
+ The long-named --preserve now accepts optional arguments; -p doesn't.
+ (usage): Describe additions and changes.
+ (cp_option_init): Initialize new member, preserve_links, to 0.
+ (decode_preserve_arg): New function.
+ (main) [case 'a']: Set preserve_links to 1.
+ [case 'd']: Set preserve_links to 1.
+ Add `case' for long-named --no-dereference.
+ Handle long-named --no-preserve and --preserve.
+
+ * src/copy.h (enum Dereference_symlink): Add comments.
+ (struct cp_options) [preserve_links]: New member.
+ * src/install.c (cp_option_init): Initialize new member to 0.
+ * src/mv.c (cp_option_init): Initialize new member to 1.
+
+ * tests/cp/link-preserve: Add tests for some of the above.
+
+2001-10-13 Jim Meyering <meyering@lucent.com>
+
+ * src/copy.h (struct cp_options) [failed_unlink_is_fatal]: Remove
+ unused member.
+ * src/mv.c (cp_option_init): Don't set it.
+ * src/cp.c (cp_option_init): Likewise.
+ * src/install.c (cp_option_init): Likewise.
+
+ * src/copy.h (struct cp_options): Rename members:
+ s/preserve_owner_and_group/preserve_ownership/, and
+ s/preserve_chmod_bits/preserve_mode/.
+ * src/copy.c, src/cp.c, src/install.c, src/mv.c: Update all uses.
+
+ * man/chown.x: Fix typo: s/Sh/SH/ before OPTIONS.
+ Reported by Eric S. Raymond.
+
+2001-10-12 Jim Meyering <meyering@lucent.com>
+
+ * tests/ls/Makefile.am (TESTS): Add infloop.
+ (XFAIL_TESTS): Mark it as a test that we expect to fail (temporarily).
+ * tests/ls/infloop: New file.
+
+2001-10-11 Jim Meyering <meyering@lucent.com>
+
+ * src/mknod.c (main): Tell what's wrong with `mknod c zero 1 5' rather
+ than saying just `Try `./mknod --help' for more information.'.
+ Suggestion from Karl Berry.
+
+2001-10-07 Jim Meyering <meyering@lucent.com>
+
+ * TODO: Remove items relating to cp-hash.c, now that they're done.
+
+ Allow cp -d (and mv when it resorts to copying) to preserve
+ hard links that span command line arguments.
+
+ * src/cp.c (do_copy): Don't clear the hash table after processing
+ each command line argument.
+ * tests/cp/link-preserve: New test for the above.
+ * tests/cp/Makefile.am (TESTS): Add link-preserve.
+
+ * src/cp-hash.c (remember_copied): Make a local copy of the file name.
+ (src_to_dest_free): New function (to free the above).
+ (hash_init): Register src_to_dest_free.
+ * src/copy.c (copy_dir): Now that remember_copied copies the
+ file name, free the temporary `dst_path' allocated here.
+
+2001-10-06 Jim Meyering <meyering@lucent.com>
+
+ Convert du.c to use the functions in lib/hash.c, not private,
+ slightly-modified copies of those that used to be in cp-hash.c.
+
+ * src/du.c (struct entry) [coll_link]: Remove member.
+ (struct htab): Remove.
+ (hash_reset, hash_init, hash_insert2, hash_insert): Remove functions.
+
+ * src/du.c: Include hash.h and same.h.
+ (htab): Change type of global to `struct hash';
+ (entry_hash, entry_compare, hash_ins): New functions.
+ (count_entry): Use hash_ins instead of hash_insert.
+
+2001-10-06 Jim Meyering <meyering@lucent.com>
+
+ Rewrite cp-hash.c to use the functions in lib/hash.c.
+
+ * src/cp-hash.c (hash_init): Die if hash_initialize fails.
+
+ * src/cp-hash.c: Rewrite to use the functions in lib/hash.c.
+ * src/cp-hash.h: Update prototype for hash_init.
+ * src/mv.c (do_move): Reflect that hash_init now takes no arguments.
+ * src/install.c (main): Likewise.
+ * src/cp.c (main): Likewise.
+
+2001-10-06 Jim Meyering <meyering@lucent.com>
+
+ * src/copy.c (record_dest): Avoid a small leak.
+
+2001-10-06 Jim Meyering <meyering@lucent.com>
+
+ This decreases the memory footprint a little, when copying
+ hierarchies containing many files.
+
+ * src/copy.c (copy_internal): Call remember_copied only if
+ the source file has 1 < st_nlink, or if it's a directory.
+ Now that EARLIER_FILE is set conditionally, initialize it to NULL.
+
+ * tests/mv/childproof: Redirect stderr on one test.
+
+2001-10-05 Jim Meyering <meyering@lucent.com>
+
+ * src/copy.c: Include hash-pjw.h and remove definition of hash_pjw.
+ * src/remove.c: Likewise.
+
+2001-10-01 Jim Meyering <meyering@lucent.com>
+
+ * src/remove.c (hash_pjw): Remove function.
+ * src/copy.c: Likewise.
+
+2001-09-29 Jim Meyering <meyering@lucent.com>
+
+ * src/copy.c (copy_internal): Call record_dest for all types of
+ files (for which this makes sense), not just regular ones.
+
+ * mkinstalldirs: Update from master.
+
+ * Makefile.maint (wget-update): Add mkinstalldirs.
+
+2001-09-28 Jim Meyering <meyering@lucent.com>
+
+ This mv command should fail (likewise for cp), rather than
+ silently clobbering one of the source files.
+ rm -rf a b c; mkdir a b c; touch a/f b/f; mv a/f b/f c
+ Reported by Dan Jacobson.
+
+ * src/cp.c (do_copy): Call dest_info_init if necessary.
+ * src/install.c (main): Likewise.
+ * src/mv.c (main): Likewise.
+ * src/copy.h (dest_info_init): Declare.
+ * src/copy.c: Include "hash.h" and "same.h".
+ (struct Dest_info): Define.
+ (dest_info): Declare global.
+ (DEST_INFO_INITIAL_CAPACITY): Define.
+ (hash_pjw): New function.
+ (dest_info_hash): Likewise.
+ (dest_info_compare): Likewise.
+ (dest_info_init): Likewise.
+ (seen_dest): Likewise.
+ (record_dest): Likewise.
+ (copy_internal): If the destination exists, fail if it's in the set
+ of files that have already been created as part of this mv or cp.
+ (copy_internal) [move_mode]: Record the destination dev/ino/filename.
+ (copy_internal) [!move_mode, regular file]: Likewise.
+
+ Accept new option: --reply={yes,no,query}
+ * src/cp.c: (enum) [REPLY_OPTION]: Define.
+ (usage): Describe new option.
+ Split long usage string into smaller pieces.
+ (main): Handle new option.
+
+ * missing: Update from master.
+ * config.guess: Likewise.
+ * config.sub: Likewise.
+
+ * configure.ac: Tell automake to use the file name `config.hin'
+ rather than the two-`.' config.h.in.
+
+2001-09-26 Jim Meyering <meyering@lucent.com>
+
+ * man/Makefile.am (common_dep): s/configure.in/configure.ac/.
+
+ * configure.ac: Renamed from configure.in.
+
+ * INSTALL, mkinstalldirs: Update to autoconf 2.50 version.
+
+2001-09-23 Jim Meyering <meyering@lucent.com>
+
+ * tests/mv/childproof: New test, for the above fix.
+ Based on a report from Dan Jacobson.
+ * tests/mv/Makefile.am (TESTS): Add childproof.
+
+ * Makefile.am (SUBDIRS): When using newer gettext (in which
+ intl/libintl.h is created by rules intl/Makefile)
+ `intl' must precede `lib'.
+
+2001-09-22 Jim Meyering <meyering@lucent.com>
+
+ Mostly clean-up (modulo the better diagnostic).
+ * src/copy.c (copy_internal): Rename parameter, move_mode, to
+ command_line_arg, and adjust caller. Now, move_mode is a local
+ that is derived from command_line_arg.
+ Factor some involved code to produce something slightly more readable.
+ Use x->move_mode, not move_mode in determining which diagnostic
+ to give (`backing up %s would destroy source; %s not moved').
+
+2001-09-16 Paul Eggert <eggert@twinsun.com>
+
+ * src/ls.c (usage): Fix typo in -g usage.
+ -H now means --dereference-command-line.
+
+2001-09-16 Jim Meyering <meyering@lucent.com>
+
+ * Makefile.am (AUTOMAKE_OPTIONS): Require automake-1.5.
+
+ * man/Makefile.am (*.1): Depend on *source* files, not binaries.
+ (.x.1): Add code to work around ginstall vs. install exception.
+
+ * man/Makefile.am (dist_man_MANS): Use dist_man_MANS, not man_MANS.
+
+2001-09-15 Jim Meyering <meyering@lucent.com>
+
+ Convert to a more conventional (e.g., like autoconf) Makefile.am.
+ * man/Makefile.am: Remove hacks.
+ * man/GNUmakefile: Remove file.
+ * man/Makefile.summ: Remove file.
+ * man/Makefile.maint: Remove file.
+ * man/ginstall.x: Remove. Renamed to ...
+ * man/install.x: ... this. New file.
+ Michael Stone reported that man pages weren't built in non-srcdir build.
+
+ * src/touch.c (EISDIR): Define to 0, if not already defined.
+ (touch): Give a better diagnostic for e.g., `touch /' by non-root.
+ Based on a patch from Michael Stone.
+ Reported by Jeff Sheinberg as Debian bug #101677.
+ * tests/touch/fail-diag: New test, for the above fix.
+ * tests/touch/Makefile.am (TESTS): Add fail-diag.
+
+ * src/copy.c (copy_internal) [move_mode]: Support the new
+ --reply=... option.
+ (UNWRITABLE): Define (factored out of copy_internal).
+ (copy_internal): Use UNWRITABLE.
+
+ Accept new option: --reply={yes,no,query}
+ * src/mv.c: Include argmatch.h.
+ (enum) [REPLY_OPTION]: Define.
+ (usage): Describe new option.
+ Split long usage string into smaller pieces.
+ (main): Handle new option.
+
+ * src/cp.c (main): Reflect renaming: s/I_ON/I_ASK_USER/.
+
+ * src/copy.h (enum Interactive): Remove members, I_OFF and I_ON.
+ Instead, add I_ALWAYS_YES, I_ALWAYS_NO, and I_ASK_USER.
+
+ * tests/mv/i-2: Clean up: use priv-check rather than open-coding it.
+
+2001-05-11 Paul Eggert <eggert@twinsun.com>
+
+ * src/chmod.c, src/chown.c, src/mkdir.c, src/rm.c, src/rmdir.c (main):
+ Don't strip trailing slashes; POSIX doesn't allow it here.
+ Don't include "dirname.h" when no longer needed.
+
+2001-09-08 Jim Meyering <meyering@lucent.com>
+
+ * src/copy.c (copy_internal): Add braces around now-multi-stmt
+ if-block. This fixes a bug introduced by my 2001-08-06 change.
+ * tests/mv/i-4: New test, for the above.
+ * tests/mv/Makefile.am (TESTS): Add i-4.
+
+2001-09-04 Paul Eggert <eggert@twinsun.com>
+
+ * src/ls.c (get_link_name): Update use of xreadlink.
+
+2001-09-02 Jim Meyering <meyering@lucent.com>
+
+ * tests/priv-check: Change usage not to use $1.
+ That's not portable to e.g., Solaris2.6's /bin/sh.
+ Communicate via an envvar instead.
+ * tests/mv/i-3: Don't pass an argument to a sourced script.
+ * tests/cp/special-bits: Likewise.
+ * tests/chown/basic: Likewise.
+
+ * Makefile.maint (alpha): Depend on local-check so that they run
+ a little earlier.
+
+2001-09-01 Jim Meyering <meyering@lucent.com>
+
+ * src/df.c (show_point): Use canonicalize_file_name, if possible.
+ [HAVE_RESOLVEPATH], [!HAVE_RESOLVEPATH]: Use malloc, not alloca,
+ so that these two paths also produce `resolved' in malloc'd storage.
+ Free that memory when done with it.
+
+ * src/ls.c: Include "xreadlink.h".
+ (get_link_name): Don't use PATH_MAX.
+ Rewrite to use xreadlink.
+
+2001-08-30 Paul Eggert <eggert@twinsun.com>
+
+ * src/chgrp.c: Do not include savedir.h; not used.
+ * src/chown.c: Likewise.
+
+ * src/chmod.c (change_dir_mode): Remove statp arg; no longer needed.
+ * src/chown-core.c (change_dir_owner): Likewise.
+ * src/du.c (count_entry): Remove st_size argument.
+ * src/copy.c (copy_dir): Likewise.
+
+2001-08-30 Paul Eggert <eggert@twinsun.com>
+
+ * src/copy.c: Include full-write.h.
+ * src/dd.c: Likewise.
+
+ * src/copy.c (full_write): Remove decl; not needed.
+ * src/dd.c: Likewise.
+ * src/install.c: Likewise.
+ * src/mv.c: Likewise.
+
+ * src/copy.c (copy_reg):
+ Don't assume read and write size fits in int.
+ * src/dd.c (open_fd): Likewise.
+
+2001-08-30 Paul Eggert <eggert@twinsun.com>
+
+ * src/remove.c (bool): Remove; moved to...
+ * src/system.h: ...here.
+
+ * src/du.c (count_entry, main): Reflect changes to the
+ exclude functions.
+
+2001-08-13 Jim Meyering <meyering@lucent.com>
+
+ * src/cp.c, src/dd.c, src/ln.c, src/ls.c, src/mv.c (AUTHORS): Mark
+ string for translation, since it contains the English word `and'.
+
+ * Makefile.maint (author_mark_check): New rule.
+ (local-check): Depend on it.
+
+ Change the rules governing when mv prompts before removing an
+ existing destination file so it is consistent with POSIX:
+ Now, in the absence of --force (-f), if stdin is a tty and an
+ existing destination is not writable mv will prompt before
+ overwriting the destination file.
+ Reported by Vin Shelton.
+
+ * src/copy.c (overwrite_prompt): New function.
+ (copy_internal): Separate the mv-specific and non-move_mode code
+ that determines whether to prompt the user.
+ [move_mode]: Don't make mv fail (i.e. don't return 1) just because
+ the user declined to remove one or more of the files.
+ * src/copy.h (enum Interactive): New type.
+ (struct cp_options) [interactive]: Change type to Interactive.
+ (struct cp_options) [stdin_tty]: New member.
+ * src/cp.c (cp_option_init): Adjust initialization of `interactive',
+ and initialize new member, stdin_tty.
+ * src/mv.c (cp_option_init): Likewise.
+ * src/install.c (cp_option_init): Likewise.
+ * src/cp.c (main): Adjust initialization(s) of `interactive',
+ * src/mv.c (main): Likewise.
+ * tests/mv/i-1: Change expected exit status to reflect the above.
+
+2001-08-12 Jim Meyering <meyering@lucent.com>
+
+ * tests/mk-script ($program_name): Define.
+ (main): Use $program_name, rather than long-inaccurate `build-script'.
+ (main): Iterate over the sorted keys (rather than `while...each...'),
+ so this script produces the same output regardless of which version
+ of perl (e.g., perl5.6) is used.
+
+ Work around non-compliant gettimeofday on Mac OS X 10.0.4,
+ (aka Darwin 1.3.7) that caused the date of the first file listed
+ in long output to be the current time rather than the file's mtime.
+ The real work is in m4/gettimeofday.m4 and the wrapper function,
+ lib/gettimeofday.c.
+ * src/ls.c: Include gtod.h.
+ (main): `Call' GETTIMEOFDAY_INIT.
+ (print_long_format): Add a comment about gettimeofday.
+ Report and diagnosis from Bernhard Baehr.
+
+ * src/shred.c: Include gtod.h.
+ (main): `Call' GETTIMEOFDAY_INIT, just in case the code ever changes
+ to make it necessary.
+
+2001-08-10 Paul Eggert <eggert@twinsun.com>
+
+ * src/ls.c (print_long_format): Simplify previous patch for
+ listing negative sizes, by adding OFF_T_MAX - OFF_T_MIN + 1
+ instead of doing a fancy conditional shift. This is simpler
+ and it avoids GCC's bogus compile-time warning about shift
+ counts. (As a bonus, it is portable to hosts that do not use
+ twos-complement arithmetic. :-)
+
+2001-08-10 Jim Meyering <meyering@lucent.com>
+
+ * ls.c (print_long_format): Multiply the shift width by zero
+ to avoid a warning from gcc on hosts with an unsigned type for the
+ st_size member.
+
+2001-08-06 Paul Eggert <eggert@twinsun.com>
+
+ * src/ls.c (print_long_format): If a file size is negative, assume
+ the typical case where it has wrapped around from a positive value.
+
+2001-08-07 Jim Meyering <meyering@lucent.com>
+
+ * Makefile.maint (m4-check): New rule.
+ (local-check): Depend on it.
+
+2001-08-06 Jim Meyering <meyering@lucent.com>
+
+ Fix the bug whereby `mv -uf source dest' would delete source,
+ even though it's older than dest.
+
+ * src/mv.c (usage): Correct the description of --update.
+ * src/copy.c (copy_internal): Set *rename_succeeded, so that
+ the caller (mv) doesn't remove the source file.
+ Reported by Phelippe Neveu.
+
+ * tests/mv/update: New test for the above.
+ * tests/mv/Makefile.am (TESTS): Add update.
+
+2001-08-05 Jim Meyering <meyering@lucent.com>
+
+ * tests/root-only: Generalize. Rename to ...
+ * tests/priv-check: ...this. New file. Renamed from the above.
+ * tests/Makefile.am (EXTRA_DIST): Reflect renaming.
+ * tests/mv/i-3: Reflect name and usage changes.
+ * tests/chown/basic: Likewise.
+ * tests/cp/special-bits: Likewise.
+ * tests/sample-test: Likewise.
+
+2001-08-04 Jim Meyering <meyering@lucent.com>
+
+ * tests/root-only: Remove *all* write access, not just that
+ of the owner.
+
+ * tests/mv/i-3: New test for the above fix.
+ * tests/mv/Makefile.am (TESTS): Add i-3.
+
+2001-08-03 Paul Eggert <eggert@twinsun.com>
+
+ * ls.c (quote_name): Pass 0 to mbsnwidth, since the default
+ got changed and we want the default now.
+
+2001-08-03 Paul Eggert <eggert@twinsun.com>
+
+ * ls.c (quote_name): Pass 0 to mbsnwidth, since the default
+ got changed and we want the default now.
+
+2001-07-15 Jim Meyering <meyering@lucent.com>
+
+ * src/Makefile.am (INCLUDES): Add -I../lib so sys2.h can include
+ the new, generated file, unlocked-io.h.
+
+ * src/sys2.h: Include "unlocked-io.h", rather than hard-coding the
+ HAVE_*_UNLOCKED macros.
+
+ * Makefile.cfg ($(srcdir)/m4/jm-glibc-io.m4): New rule.
+
+2001-07-14 Jim Meyering <meyering@lucent.com>
+
+ * Makefile.maint (tgz-size): Also work for sizes in the kilobyte range.
+
+ * Makefile.maint: More changes from autoconf.
+
+ Changes from autoconf.
+ * Makefile.maint (GZIP_ENV): Add --best.
+ (AMTAR): Define.
+ (writable-files): Factor out ../release/ constant, and work (by
+ creating it) even if such a directory doesn't exist.
+
+2001-07-08 Jim Meyering <meyering@lucent.com>
+
+ * src/copy.c (get_dest_mode): Clear set-user-ID and set-group-ID bits
+ when copying (i.e., not in move mode) and not preserving permissions.
+ Reported by kytek@cybercomm.net.
+ FIXME: add a test for this!!!
+
+2001-07-02 Jim Meyering <meyering@lucent.com>
+
+ * src/ln.c (do_link): Test the boolean symbolic_link, not the function,
+ symlink. Patch by Frederik Eaton.
+
+2001-06-17 Jim Meyering <meyering@lucent.com>
+
+ * Makefile.maint: Factor out definitions specific to fileutils,
+ sh-utils, and textutils, so that other packages can use the framework.
+ Patch by Akim Demaille.
+ * Makefile.cfg: New file with package-specific definitions.
+ * GNUmakefile: Include Makefile.cfg.
+ * Makefile.am (EXTRA_DIST): Add Makefile.cfg.
+
+2001-06-16 Jim Meyering <meyering@lucent.com>
+
+ * src/ls.c (main): Recheck global print_with_color after calling
+ parse_ls_color, since that function may have reset it.
+ Based on a patch from Richard Dawe.
+
+2001-06-16 Jim Meyering <meyering@lucent.com>
+
+ * config.sub: Update from master repository.
+ * config.guess: Likewise.
+
+2001-06-09 Jim Meyering <meyering@lucent.com>
+
+ * configure.in (ALL_LINGUAS): Add Turkish (tr).
+
+2001-05-25 Jim Meyering <meyering@lucent.com>
+
+ * src/ls.c (print_long_format): Don't truncate user names
+ or group names that are longer than 8 characters.
+
+ Add definitions that let me factor the wget rule while still letting
+ me accommodate the fact that these files reside in several different
+ directories and come from different places.
+ * Makefile.maint (wget-files): Define.
+ (get-targets, *-local_dir, *-url_prefix): Likewise.
+ (target, url, local_file): Convenience variables.
+ ($(get-targets)): The factored rule.
+
+2001-05-24 Jim Meyering <meyering@lucent.com>
+
+ * src/ansi2knr.c: Update from master source.
+
+ * Makefile.maint (wget-update): Have wget write to a temporary file,
+ and replace the original only if wget succeeds.
+ Also get ansi2nkr.c.
+ (move-if-change): Define.
+ (wget-update): Use it in place of mv.
+
+ * src/ls.c: Use `#if D_TYPE_IN_DIRENT && defined DTTOIF' to
+ determine whether to enable the DT_INIT definition, not the less
+ portable `#if defined _DIRENT_HAVE_D_TYPE || defined DTTOIF'.
+ Reported by Eli Zaretskii.
+
+ * src/mkfifo.c (main): Remove quotes around %s.
+ The argument is already quoted via the quote function.
+ * src/mknod.c (main): Likewise.
+ Reported by Göran Uddeborg.
+
+2001-05-21 Jim Meyering <meyering@lucent.com>
+
+ * Makefile.maint (wget-update): depcomp and missing are now in
+ automake's lib/ subdirectory.
+
+2001-05-11 Paul Eggert <eggert@twinsun.com>
+
+ Add new --time-style option.
+ Change --full-time to be equivalent to --time-style=full-iso.
+
+ * NEWS, doc/omni-utils.texi: Describe this change.
+
+ * src/ls.c: Include "hard-locale.h".
+ (nstrftime): New decl.
+ (enum time_style): New enum.
+ (time_style_args, time_style_types): New constants.
+ (full_time): Remove.
+ (long_time_format): Initialize to POSIX defaults.
+ (TIME_STYLE_OPTION): New constant.
+ (long_options, decode_switches, usage): Add --time-style support.
+ (long_time_expected_width): Use nstrftime, not strftime.
+ (print_long_format): Likewise.
+ Increase initial size to match new full-iso time style.
+
+ * tests/ls/time-1: Unset QUOTING_STYLE and TIME_STYLE. Set TZ.
+ Adjust to change in full-time format.
+ Fix typo in failure messages (-a and -m were interchanged).
+
+2001-05-20 Jim Meyering <meyering@lucent.com>
+
+ * doc/Makefile.am (EXTRA_DIST): Add constants.texi and doclicense.texi.
+ (info_TEXINFOS): s/fileutils/omni-utils/.
+ (check-texinfo): New rule.
+ (check): Depend on check-texinfo.
+
+ * doc/omni-utils.texi (uniq invocation): Document the new optional
+ arguments to the --all-repeated option.
+ Make all references to POSIX use @sc{posix}.
+
+2001-05-19 Jim Meyering <meyering@lucent.com>
+
+ * doc/fileutils.texi: Remove.
+
+ * doc/omni-utils.texi: Change a few uses of `timezone' to `time zone'.
+ Reported by Stephen Eglen.
+
+2001-05-16 Jim Meyering <meyering@lucent.com>
+
+ * Makefile.maint (my-distcheck): Remove work-around kludge and
+ associated comment, now that automake has ben fixed.
+
+2001-05-12 Paul Eggert <eggert@twinsun.com>
+
+ Clean up some of the places where the code assumed that random
+ types like 'mode_t' fit into 'int', which POSIX doesn't guarantee.
+
+ * src/ls.c (struct fileinfo.linkmode): Now st_mode.
+ (print_color_indicator, print_name_with_quoting, print_type_indicator,
+ length_of_file_name_and_frills):
+ Use mode_t, not unsigned int, to store modes.
+ (dired_dump_obstack): Do not assume size fits in 'int'.
+ (get_link_name): readlink returns ssize_t, not int.
+ (make_link_path): Store buffer size as size_t, not int.
+ (print_long_format): Use unsigned long, not unsigned, to print
+ nlink_t, uid_t, gid_t, major_t, minor_t.
+
+2001-05-13 Paul Eggert <eggert@sic.twinsun.com>
+
+ * src/mknod.c (main): Check for NODEV device only if NODEV is defined.
+ * src/system.h (NODEV): Remove, undoing previous change.
+
+2001-05-13 Jim Meyering <meyering@lucent.com>
+
+ * src/remove.c (dir_name, dir_len): Define to different names
+ to avoid shadowing warnings due to new declarations from dirname.h.
+
+ * tests/Fetish.pm (run_tests): Fail if any test name is longer
+ than 12 bytes.
+ * tests/ls-2/tests: Shorten test names so the length of a
+ resulting file name doesn't exceed 14.
+
+2001-05-12 Paul Eggert <eggert@twinsun.com>
+
+ * src/system.h (NODEV): New macro, if not already defined.
+
+ * src/mknod.c (main): Check for overflow when converting out
+ of uintmax_t. Do not assume that major_t and minor_t are no
+ wider than int. Check for makedev failures. Convert device
+ numbers via uintmax_t, not unsigned long, just in case.
+ Coalesce duplicate code in the block and character device
+ cases.
+
+2001-05-11 Paul Eggert <eggert@twinsun.com>
+
+ Add new --dereference-command-line option.
+ -H now means this instead of meaning --si, as POSIX requires.
+
+ * NEWS, doc/omni-utils.texi: Document this.
+
+ * src/ls.c (enum Dereference_symlink): New type.
+ (dereference): New var, replacing trace_links, which was removed.
+ (long_options, main, decode_switches, gobble_file, usage):
+ Implement the changes.
+
+ * tests/ls-2/tests:
+ Rename slink-dir test to slink-dir-dF. Add new tests
+ slink-dir-F, slink-dir-dFH, slink-dir-dFL.
+
+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.
+
+ * src/chmod.c (strip_trailing_slashes): Remove; now in dirname.h.
+ * src/chown.c (strip_trailing_slashes): Likewise.
+ * src/cp.c (strip_trailing_slashes): Likewise.
+ * src/df.c (strip_trailing_slashes): Likewise.
+ * src/ln.c (strip_trailing_slashes): Likewise.
+ * src/mkdir.c (strip_trailing_slashes): Likewise.
+ * src/rm.c (strip_trailing_slashes): Likewise.
+ * src/rmdir.c (strip_trailing_slashes): Likewise.
+
+ * src/dircolors.c, src/ls.c, src/remove.c:
+ Include "dirname.h", to get base_name.
+
+ * src/cp.c (make_path_private): Use dir_len instead of
+ dir_name, and avoid an extra mealloc call.
+
+ * src/df.c (find_mount_point): No need to strip trailing
+ slashes before invoking new dir_name.
+
+ * src/mv.c: Include "dirname.h".
+ (strip_trailing_slashes_2): Remove; now done by
+ strip_trailing_slashes. All callers changed.
+
+ * src/sys2.h (base_name): Remove decl; now in dirname.h.
+
+ * src/copy.c (copy_internal): Remove the code that tested for NULL
+ dir_name return value. That can't happen.
+
+2001-05-12 Jim Meyering <meyering@lucent.com>
+
+ * src/ls.c (usage): Wording changes related to -o, -n, and -g.
+ * doc/omni-utils.texi: Likewise.
+ From Paul Eggert.
+
+2001-05-11 Paul Eggert <eggert@twinsun.com>
+
+ * src/chmod.c (mode_changed, change_file_mode):
+ There's no need to invoke both lstat and stat here, so call just
+ one of the two functions.
+
+2001-05-11 Jim Meyering <meyering@lucent.com>
+
+ * doc/omni-utils.texi: New file. The union of fileutils.texi,
+ sh-utils.texi, and textutils.texi. Merged by Brian Youmans.
+
+ * src/shred.c (usage): Warn about backups and mirrors.
+ * doc/omni-utils.texi (shred invocation): Likewise.
+ From Nelson Beebe.
+
+2001-05-09 Jim Meyering <meyering@lucent.com>
+
+ * src/ls.c (main): Don't set `format_needs_stat' for --recursive (-R),
+ because that would make `ls -RF dir' stat unnecessarily all of the
+ files in dir/ on some systems.
+ Similarly, don't set `format_needs_stat' for --dereference (-L),
+ because that would make `ls -RLF dir' stat unnecessarily all non-symlink
+ files in dir/ on some systems.
+ Instead, ...
+ (gobble_file): ... also stat a file if `trace_dirs' (-R) is set and its
+ type is unknown.
+ ... also stat a file if `trace_links' (-L) is set and the file is a
+ symlink or its type is unknown.
+ (print_dir): Also recognize DT_REG and DT_LNK.
+
+2001-05-07 Jim Meyering <meyering@lucent.com>
+
+ * src/chown.c (main): Fix thinko that made --from=... fail:
+ s/argv[optind]/optarg/. Reported by Andrew Pham.
+
+ * tests/chown: New directory.
+ * tests/chown/basic: New (root-only) test for the above.
+ * tests/cp/special-bits: Factor out the root-only test into this ...
+ * tests/root-only: ... new file.
+ * tests/Makefile.am (EXTRA_DIST): Add root-only.
+ (SUBDIRS): Add chown.
+ * tests/chown/Makefile.am: New file.
+ * configure.in (AC_OUTPUT): Add tests/chown/Makefile.
+
+2001-05-05 Jim Meyering <meyering@lucent.com>
+
+ * src/ls.c (decode_switches): Complain if the envvar, QUOTING_STYLE,
+ is set to an invalid value.
+ Move some declarations of locals into scopes where they're used.
+
+2001-05-02 Jim Meyering <meyering@lucent.com>
+
+ * doc/texinfo.tex: Update from master repository.
+ * config.sub: Likewise.
+ * config.guess: Likewise.
+
+2001-05-01 Jim Meyering <meyering@lucent.com>
+
+ * Makefile.maint (tgz-size, xd-size): Compute sizes.
+ (announcement): Include sizes of .tar.gz and .xdelta files
+ in the announcement.
+
+ * src/ls.c (print_owner): New global variable.
+ (usage): Update the descriptions of -g.
+ (decode_switches): Honor the -g option (omit owner information),
+ now that POSIX specifies it.
+ (print_long_format): Don't print owner name if -g was specified.
+ Move declaration of `user_name' into the scope where it's used.
+ (print_group): Rename global from `inhibit_group'. Update all
+ uses accordingly.
+ * doc/fileutils.texi (What information is listed): Describe -g.
+ * TODO: Remove item for ls -g.
+
+ * src/ls.c (decode_switches): Make -n work just like -l, except
+ with numeric IDs, per POSIX. Before, to have any effect, -n had
+ to be used with -l. Reported by Dale Scheetz.
+ (usage): Update the description of -n.
+ Separate the descriptions of -n and --numeric-uid-gid.
+ Split string in --help output that had exceeded my limit of
+ 2048 bytes.
+
+2001-04-29 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.1.
+
+ * configure: Regenerate using a further-patched copy of autoconf-2.49e
+ to work around a bug in its test for ranlib. This is the change to
+ autoconf's acgeneral.m4 that was made on 2001-04-24.
+
+ * README: Don't mention mvdir. It is no longer provided.
+ Don't mention HP/UX vs. du blocksize problem. It's long gone.
+ Remove note about how cp, mv, and ln couldn't make backups
+ of files with names of maximum length. Now they can do that.
+ Thank the people who have provided access to their systems
+ for portability testing.
+ Warn about and describe autoconf/automake version requirements.
+ Use a better URL for the GNU Coding Standards.
+
+ * man/rm.x: Refer to shred.
+ Remove the example showing how to remove `-foo', since that is now
+ in the --help output (and hence automatically included).
+ * src/rm.c (usage): Mention shred.
+
+ * src/shred.c (usage): Include in --help output the warning about
+ some of the filesystem types on which shred is not effective.
+
+2001-04-25 Jim Meyering <meyering@lucent.com>
+
+ * Makefile.maint (my-distcheck): Add a comment.
+
+2001-04-23 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.0.45.
+
+2001-04-22 Jim Meyering <meyering@lucent.com>
+
+ * src/ls.c (decode_switches): Ensure that -1 has no effect when it
+ follows -l, per POSIX. Reported by Ulrich Drepper.
+
+ * src/dd.c (usage): Mention that sync makes dd pad with spaces (rather
+ than NULs) when used with block or unblock.
+ (dd_copy): When using sync with either block or unblock,
+ pad with spaces. Reported by Dale Scheetz.
+ * tests/dd/skip-seek (block-sync-1): New test, for this. Based on
+ a report from Dale Scheetz.
+ * doc/fileutils.texi (dd invocation): Document it here, too.
+
+ * configure: Regenerate using a patched copy of autoconf-2.49e to
+ work around a bug in its test for a working memcmp function.
+ This is the change to autoconf's acfunctions.m4 that was made
+ on 2001-04-22.
+
+ * tests/ls/no-arg: New file.
+ * tests/ls/Makefile.am (TESTS): Add no-arg.
+ * src/ls.c (main): Fix off-by-one error introduced with last change.
+
+2001-04-21 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.0.44.
+
+ * configure, aclocal.m4, etc.: Regenerate using autoconf-2.49e.
+
+ * doc/fileutils.texi (touch invocation): Discuss ctime.
+ Based on suggestions and contributions from Aharon Robbins
+ and Dan Jacobson.
+
+ * src/ls.c (main): When given two or more arguments but the only one
+ that exists is a directory, don't treat it as if it were the only
+ argument. Before, `mkdir d; ls no-dir d 2>/dev/null' would act like
+ `ls d' and produce no output. Now, it prints `d:'.
+ Report and patch from Stéphane Chazelas.
+ * tests/ls-2/tests: New tests, for the above fix.
+
+2001-04-08 Jim Meyering <meyering@lucent.com>
+
+ * depcomp: New version, from automake.
+
+2000-10-31 Bruno Haible <haible@clisp.cons.org>
+
+ * ls.c: Don't inspect MB_LEN_MAX. Paul Eggert says it's
+ not always defined correctly.
+
+2001-04-03 John David Anglin <dave@hiauly1.hia.nrc.ca>
+
+ * tests/chgrp/basic: Ensure that initial group id's are properly set
+ for `d' and `d/f3'.
+
+2001-04-02 Jim Meyering <meyering@lucent.com>
+
+ * tests/mv/setup: Skip nonexistent directories so we don't get
+ diagnostics from df about e.g., `/usr/tmp not found'.
+
+2001-03-24 Jim Meyering <meyering@lucent.com>
+
+ * configure.in: Don't require autoconf version here -- it's done in m4/.
+
+2001-03-23 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.0.43.
+
+ * configure, aclocal.m4, etc.: Regenerate using autoconf-2.49d.
+
+ * Makefile.maint (check-copyright): New target and rule.
+ (alpha): Depend on it.
+
+ * missing: Handle shell built-ins (only `:' and `cd' for now) to work
+ around brain damage in Ultrix's /bin/sh.
+
+2001-03-18 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.0.42.
+
+ * tests/Fetish.pm: If the $DJDIR envvar is defined, set SHELL
+ to $DJDIR/bin/bash.exe. Patch from Richard Dawe, based on a
+ suggestion from Eli Zaretskii.
+
+2001-03-17 Paul Eggert <eggert@twinsun.com>
+
+ * doc/fileutils.texi: Warn that touch DATE FILE will be withdrawn.
+
+2001-03-17 Jim Meyering <meyering@lucent.com>
+
+ * tests/install/basic-1: Add the standard $VERBOSE-handling hook.
+ This test currently fails for mips-dec-ultrix4.4.
+
+ * tests/install/create-leading: Use ../envvar-check rather than
+ open-coding the same tests.
+
+ * tests/envvar-check: Set/use $as_unset, for those shells
+ (like Ultrix4's /bin/sh) that don't accept `unset'.
+
+ * missing (--run): Use `eval' to run `"$@"'. Otherwise, Ultrix4.4's
+ /bin/sh fails and outputs garbage.
+
+ * src/touch.c (usage): Tweak the obsolescent usage line so that
+ help2man recognizes it as such. Reported by Dan Jacobson.
+
+2001-03-16 Jim Meyering <meyering@lucent.com>
+
+ * Makefile.maint (wget-update): Also get `missing'.
+ Use for-loops.
+
+ * missing: Update from automake.
+
+2001-03-11 Jim Meyering <meyering@lucent.com>
+
+ * tests/rm/isatty: Disable this test, for now.
+ It would block when run in the background.
+
+2001-03-09 Jim Meyering <meyering@lucent.com>
+
+ * config.guess: Update from master repository.
+
+ * Makefile.maint (my_distdir): Define new variable, and use this
+ in place of most old uses of $(distdir).
+
+ * src/Makefile.am (Makefile): Don't depend on $(BUILT_SOURCES).
+ Reported by Akim Demaille.
+
+ * tests/help-version: Ensure that /dev/full is a character device
+ (using test -c) as well as being writable, before trying to write to it.
+ Otherwise, the test could mistakenly append a newline to an existing,
+ regular, writable, /dev/full file.
+ Suggested by Ulrich Drepper.
+
+2001-03-06 Jim Meyering <meyering@lucent.com>
+
+ * src/dd.c (S_TYPEISSHM): Rename parameter to reflect its type.
+ (main): Pass a `struct stat *', not stat.st_mode to S_TYPEISSHM.
+ Patch by Alain Magloire.
+
+2001-03-04 Jim Meyering <meyering@lucent.com>
+
+ * src/dd.c (output_char): Reformat so each statement is on a
+ separate line.
+
+2001-02-21 Jim Meyering <meyering@lucent.com>
+
+ * src/mkdir.c (main): Remove assignment-in-if-expression.
+ In fact, remove t_errno altogether. Reported by Nelson Beebe.
+
+ * tests/ls-2/tests: Add two tests of existing behavior -- both will
+ have to be changed (soon after release), once ls is fixed.
+
+2001-02-20 Paul Eggert <eggert@twinsun.com>
+
+ * src/ls.c (FULL_TIME_OPTION): Renamed from FULL_TIME, for
+ consistency with the other enum values.
+
+2001-02-20 Paul Eggert <eggert@twinsun.com>
+
+ * NEWS, doc/fileutils.texi: ls -H is now obsolescent.
+ * src/ls.c (SI_OPTION): New enum value.
+ (long_options): Use it instead of 'H' for --si.
+ (decode_switches): Warn that -H will change soon.
+ (usage): Likewise.
+
+2001-02-18 Jim Meyering <meyering@lucent.com>
+
+ * tests/rm/Makefile.am (TESTS): Add isatty.
+ * tests/rm/isatty: New test, for the bug fixed below.
+
+ * Version 4.0.41.
+
+ * depcomp: New version, from automake.
+
+ `chmod 0 file; rm file' would no longer prompt before removal.
+ * src/remove.c (remove_file): Revert last change.
+ Reported by Vin Shelton.
+
+2001-02-17 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.0.40.
+
+ * src/chown.c (main): `quote' the offending argument.
+
+2001-02-17 Paul Eggert <eggert@twinsun.com>
+
+ Stop trying to support hosts that have nonstandard declarations for
+ mbrtowc and/or mbstate_t. It's not worth the portability hassle.
+
+ * m4/mbrtowc.m4: New file, defining jm_FUNC_MBRTOWC.
+ * m4/mbswidth.m4 (jm_PREREQ_MBSWIDTH):
+ Use jm_FUNC_MBRTOWC, not AC_CHECK_FUNCS(mbrtowc).
+ * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Likewise.
+ * lib/mbswidth.c, lib/quotearg.c, src/ls.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.
+ Reported by Matt Schalit.
+
+2001-02-17 Jim Meyering <meyering@lucent.com>
+
+ * config.sub: Update from master repository.
+ * config.guess: Likewise.
+
+2001-02-16 Paul Eggert <eggert@twinsun.com>
+
+ * doc/getdate.texi: Mention that only English is supported.
+ Show how to use "date" so that the output is acceptable to getdate.
+ Mention Z as an abbreviation for UTC.
+
+2001-02-11 Jim Meyering <meyering@lucent.com>
+
+ * Makefile.maint (emit-rsync-commands): Define.
+ (alpha): Use it here.
+
+2001-02-10 Jim Meyering <meyering@lucent.com>
+
+ * Makefile.maint (alpha): Fix previous, incomplete change.
+
+ * Version 4.0.39.
+
+ * depcomp: New version, from automake.
+
+2001-02-04 Jim Meyering <meyering@lucent.com>
+
+ * README: Remove note about now-ancient Sequents.
+
+2001-02-03 Jim Meyering <meyering@lucent.com>
+
+ * src/ln.c (main): Change type of index variable to `unsigned int'
+ to avoid a warning.
+
+ * config.guess: Update from master repository.
+
+ * Makefile.maint (a_host): Use fencepost.
+ (real_dir): Use the same name for both.
+ (alpha): Print commands for both hosts.
+
+ * src/mv.c (long_options): Use `strip-trailing-slashes',
+ per the documetation, not `strip-trailing-slash'.
+ * src/cp.c (long_opts): Likewise.
+ Reported by Oskar Liljeblad.
+
+ * doc/fileutils.texi (mv invocation): Add a warning about how a trailing
+ slash makes a difference. Prompted by a report from Oskar Liljeblad
+ via Michael Stone (Debian bug#83991).
+
+2001-01-31 Jim Meyering <meyering@lucent.com>
+
+ * config.sub: Update from master repository.
+ * config.guess: Likewise.
+
+2001-01-28 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.0.38.
+
+ * configure, aclocal.m4, etc.: Regenerate using autoconf-2.49c.
+
+ * src/ls.c (gobble_file): Add a FIXME comment.
+
+ * TODO: Add a few items.
+
+ * src/ls.c (enum) [FULL_TIME]: Define.
+ (long_options): Use it.
+ (decode_switches): Make --full-time imply -l.
+ Prompted by a report from Karl Eichwalder.
+
+2001-01-22 Jim Meyering <meyering@lucent.com>
+
+ * src/remove.c (remove_file): Correct an expression to avoid making
+ an unnecessary call to euidaccess for each file.
+
+2001-01-21 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.0.37.
+
+2001-01-20 Jim Meyering <meyering@lucent.com>
+
+ * configure.in: Remove jm_CHECK_ALL_TYPES.
+ Now it's invoked by jm_MACROS.
+
+2001-01-17 Jim Meyering <meyering@lucent.com>
+
+ * src/sys2.h (case_GETOPT_VERSION_CHAR): Use PACKAGE, not GNU_PACKAGE.
+ * src/sync.c (main): Likewise.
+ * src/shred.c (PACKAGE): Likewise.
+ * src/dd.c (main): Likewise.
+
+2001-01-14 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.0.36.
+
+ * src/shred.c (UINT_MAX_32_BITS): Define.
+ Use UINT_MAX_32_BITS in the cpp conditions that determine
+ the `word32' typedef. Using a literal `0xffffffff' failed with
+ HPUX10.20's /bin/cc.
+
+ * config.sub: Update from master repository.
+ * config.guess: Likewise.
+
+2001-01-02 Volker Borchert <bt@teknon.de>
+
+ Work around a broken rename system call, e.g. on SunOS 4.1.1_U1,
+ that fails when the source path has a trailing slash.
+ * src/copy.h [RENAME_TRAILING_SLASH_BUG]: Use the rename wrapper.
+ * tests/mv/trailing-slash: Test whether the workaround works.
+ * tests/m4/Makefile.am (TESTS): Add trailing-slash.
+
+2001-01-03 Alexandre Duret-Lutz <duret_g@epita.fr>
+
+ * po/Makefile.in.in (update-po): Merge po-files in temporary files
+ in the build directory, and update the source directory only when
+ the merged catalog differs from the original. This fixes the known
+ `make distcheck' failure due to `make update-po' being called
+ on up-to-date but read-only files.
+
+2001-01-13 Jim Meyering <meyering@lucent.com>
+
+ * src/copy.c (same_file_ok): When moving a symlink onto itself,
+ don't remove the symlink. Reported by David Luyer as Debian bug#82089,
+ via Michael Stone.
+ * tests/mv/into-self-4: New test for the above.
+ * tests/mv/Makefile.am (TESTS): Add into-self-4.
+
+ * tests/chmod/setgid: If `chmod g+s d' fails, then try to chgrp
+ to a group of which we're a member, then try the chmod again.
+
+2001-01-11 Jim Meyering <meyering@lucent.com>
+
+ * depcomp: New version, from automake.
+
+2001-01-10 Jim Meyering <meyering@lucent.com>
+
+ * src/copy.c (copy_internal): Add a comment.
+ Set *copy_into_self in the new code that detects that.
+ Make diagnostic more consistent: s/won't/will not/.
+ [move_mode, copy_into_self]: Give a diagnstic here, now that
+ we have the top_level_* globals. Remove the corresponding diagnostic
+ from mv.c.
+ Add a FIXME comment.
+ * src/mv.c (do_move): Remove diagnostic, now that copy.c issues it.
+ Set `fail' to nonzero in the primary `if (copy_into_self)' block
+ rather than in its own tiny one below.
+
+ * src/copy.c (copy_internal): Don't allow cp (or mv, when working
+ across a partition boundary) to overwrite a non-directory with a
+ directory. Reported by Michael J. Croghan.
+ * tests/cp/dir-vs-file: New test for the above.
+ * tests/cp/Makefile.am (TESTS): Add dir-vs-file.
+
+2001-01-09 Jim Meyering <meyering@lucent.com>
+
+ Give a better diagnostic for `cp -R a a'.
+ * src/copy.c (top_level_src_path, top_level_dst_path): New globals.
+ (copy_internal): Use them.
+ (copy): Set them.
+ * src/cp-hash.c [struct entry] (node): Describe how it's used,
+ now that we've overloaded it, in order to detect and diagnose
+ the copying-directory-into-self problem.
+ (new_file): Remove global.
+ (htab): Declare global to be static.
+ (remember_created): Insert file name instead of dummy pointer, so
+ that copy.c can use the just-created directory name to detect
+ the copying-directory-into-self problem.
+ * tests/cp/into-self: New test for the above.
+ * tests/cp/Makefile.am (TESTS): Add into-self.
+
+2001-01-07 Jim Meyering <meyering@lucent.com>
+
+ * src/cp.c (usage): Split a string that was longer than 2048 bytes.
+
+ * doc/perm.texi: s/can not/cannot/
+
+2001-01-07 Karl Eichwalder <ke@suse.de>
+
+ * src/chown.c (usage): Split long message string.
+
+2001-01-07 Karl Eichwalder <ke@suse.de>
+
+ * src/ls.c (usage): Untabify.
+
+ * src/chgrp.c (parse_group): Normalize spelling.
+
+2001-01-03 Paul Eggert <eggert@twinsun.com>
+
+ * NEWS: Document the planned --full-time change.
+ * doc/fileutils.texi: Likewise.
+ * NEWS: Document that time stamps depend on LC_TIME, not LC_MESSAGES.
+
+2001-01-03 Paul Eggert <eggert@twinsun.com>
+
+ Use the more precise algorithm of GNU "make" to decide whether
+ a file is in the future, by looking at high-resolution time
+ stamps if available.
+
+ * src/ls.c:
+ (TIMESPEC_NS): New macro.
+ (current_time): Initialize to the minimum value.
+ (current_time_ns): New var.
+ (main): Do not bother to initialize current_time;
+ it's no longer needed.
+ (get_current_time): New function.
+ (print_long_format): Use it when a file appears to be in the future.
+ Get the nanoseconds of the file's time stamp, if available,
+ and use that to decide whether the file appears to be in the future.
+
+ * src/Makefile.am (dir_LDADD, ls_LDADD, vdir_LDADD): New macros.
+
+2001-01-02 Paul Eggert <eggert@twinsun.com>
+
+ * src/ls.c (long_time_expected_width, print_long_format): Fix
+ bug: the initial byte passed to strftime wasn't initialized to
+ a nonzero value after the buffer was reallocated.
+
+2001-01-02 Paul Eggert <eggert@twinsun.com>
+
+ Make ls -l compatible with POSIX, which requires that the
+ behavior of time formats must depend only on LC_TIME, not on
+ LC_MESSAGES.
+
+ * po/Makefile.in.in (install-data-yes): If the package is
+ fileutils, install LC_TIME as an alias for LC_MESSAGES.
+ * src/sys2.h (dcgettext): New macro.
+ * src/ls.c (decode_switches): Use dcgettext with LC_TIME,
+ not plain gettext, to get the translations of time formats.
+
+2001-01-02 Paul Eggert <eggert@twinsun.com>
+
+ * src/ls.c (long_time_expected_width): New function.
+ (print_long_format): Use it, so that we don't assume a
+ particular width for time stamps in an internationalized
+ environment.
+
+2001-01-01 Paul Eggert <eggert@twinsun.com>
+
+ * doc/fileutils.texi, NEWS:
+ ls -l now reports the year for files even slightly in the future, as
+ POSIX requires. This helps warn users about clock skew problems.
+
+ * src/ls.c (print_long_format):
+ Report the year for files even slightly in the future.
+ Avoid overflow problems near Y2038 on 32-bit hosts.
+ To calculate "six months", take half the average Gregorian
+ year, not 180 days.
+
+2001-01-01 Jim Meyering <meyering@lucent.com>
+
+ * tests/chmod/Makefile.am (TESTS): Add setgid.
+ * tests/chmod/setgid: Test for chmod's existing behavior.
+ Based on a report from Paul Eggert.
+
+2000-12-29 Paul Eggert <eggert@twinsun.com>
+
+ Clean up the terminology a tad: some directories were called "sticky"
+ when they were really setgid.
+ * tests/Makefile.am (EXTRA_DIST): sticky-check -> setgid-check
+ * tests/chmod/c-option, tests/cp/cp-parents, tests/mkdir/parents,
+ tests/mkdir/perm: Likewise.
+ * tests/setgid-check: File renamed from tests/sticky-check.
+ All uses of "sticky" changed to "setgid".
+
+2000-12-31 Jim Meyering <meyering@lucent.com>
+
+ * tests/cp/Makefile.am (TESTS): Add deref-slink.
+ * tests/cp/deref-slink: New file. Test for the bug fixed by my
+ 2000-12-28 change to copy.c.
+
+2000-12-30 Paul Eggert <eggert@twinsun.com>
+
+ * src/ls.c: Improve performance by invoking gettext twice at the start,
+ instead of once for each file.
+ (long_time_format): New var.
+ (decode_switches): Initialize it, if format == long_format.
+ (print_long_format): Use it.
+
+2000-12-30 Paul Eggert <eggert@twinsun.com>
+
+ * src/ls.c (print_long_format): Don't dump core if strftime
+ returns the empty string.
+
+2000-12-30 Paul Eggert <eggert@twinsun.com>
+
+ * src/ls.c (gobble_file): If not using long format, don't
+ invoke acl; it's not needed.
+
+2000-12-30 Jim Meyering <meyering@lucent.com>
+
+ Avoid an unnecessary `stat' when using --dereference.
+ * src/copy.c (same_file_ok): Use stat only if lstat reported that
+ the file was a symbolic link.
+
+2000-12-29 Paul Eggert <eggert@twinsun.com>
+
+ * doc/perm.texi: append-only directories -> restricted deletion flag,
+ which is the term that POSIX d5 uses for this notion.
+
+2000-12-28 Paul Eggert <eggert@twinsun.com>
+
+ * tests/group-names: Try /usr/xpg4/bin/id (Solaris 7) if plain
+ 'id' doesn't work.
+
+2000-12-28 Jim Meyering <meyering@lucent.com>
+
+ * tests/cp/cp-parents: Run sticky-check from just-created directory.
+
+2000-12-28 Jim Meyering <meyering@lucent.com>
+
+ * src/copy.c (same_file_ok): Fix two typos from my 2000-09-03 change:
+ s/tmp_dst_sb/tmp_src_sb/.
+
+2000-12-27 Paul Eggert <eggert@twinsun.com>
+
+ * tests/sticky-check: Turn off the working directory's sticky
+ bit, so that we don't have to worry about it later.
+
+ * src/copy.c (same_file_ok): Use a single auto var for
+ tmp_dst_sb, instead of two static vars. Likewise for
+ tmp_src_sb.
+
+2000-12-26 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.0.35.
+
+ * Regenerate build/config framework to use automake-1.4b and
+ the latest CVS version autoconf.
+
+ * tests/mkdir/perm: Disable the test if the working directory has
+ the sticky bit set.
+ * tests/cp/cp-parents: Likewise.
+ Reported by Nelson Beebe.
+
+2000-12-25 Jim Meyering <meyering@lucent.com>
+
+ Clean-up to avoid warnings from Irix's c89.
+
+ * src/remove.c (hash_compare_active_dir_ents): Return explicit `true'
+ or `false', rather than relying on implicit int-to-enum cast.
+ * src/copy.c (same_file_ok): Remove declaration and set of unused
+ variables: src_sb_no_link, dst_sb_no_link.
+ * src/ls.c (extract_dirs_from_files): Remove unused variable.
+ Reported by Nelson Beebe.
+
+ * src/ls.c (gobble_file): Move decl of local, val, into the scope
+ where it's used.
+
+2000-12-24 Jim Meyering <meyering@lucent.com>
+
+ For both ln and install, when using `--backup=simple --suffix=S',
+ the suffix `S' wasn't used.
+
+ * src/ln.c (main): Actually use the local variable,
+ `backup_suffix_string'.
+ * src/install.c (main): Likewise.
+ Nelson Beebe reported the unused variables.
+ * tests/ln/misc: Add a test for this (for all of cp, mv, ln, install).
+
+ * man/help2man: Update to version 1.24.
+
+2000-12-22 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.0.34.
+
+ * src/shred.c (isaac_seed_machdep) [_ARCH_PPC]: Disable the code
+ that would use the PPC mfspr `asm' code. Suggestion from Michael Stone.
+
+2000-12-19 Jim Meyering <meyering@lucent.com>
+
+ * doc/fileutils.texi: Use `ref_file' in place of `file' to make
+ descriptions of the various --reference=... options clearer.
+
+2000-12-17 Jim Meyering <meyering@lucent.com>
+
+ * doc/texinfo.tex: Update from master repository.
+ * config.sub: Likewise.
+ * config.guess: Likewise.
+
+2000-12-16 Jim Meyering <meyering@lucent.com>
+
+ * src/chown-core.c (uint_to_string): New function.
+ (uid_to_name): Use it.
+ (gid_to_name): Use it.
+ Rename locals, user/group, to uid/gid.
+
+ * src/chown-core.h (enum Change_status): Start with 1.
+
+ * src/chown.c (main): Rename locals, user/group, to uid/gid.
+ * src/chgrp.c (main): Rename local, group, to gid.
+
+ * tests/group-names: New file.
+ * tests/Makefile.am (EXTRA_DIST): Add group-names.
+ * tests/chgrp/basic: Use group-names.
+ * tests/chgrp/deref: Likewise.
+ * tests/chgrp/recurse: Likewise.
+
+ * tests/chgrp/basic: Don't assume that creating a file gives it
+ group $g1.
+
+ * tests/chgrp/Makefile.am (TESTS): Add recurse.
+
+2000-12-15 Jim Meyering <meyering@lucent.com>
+
+ * src/chown-core.h [enum Dereference_symlink] (dereference): Rename
+ from change_symlinks.
+ * src/chown-core.c: Declare lstat.
+ Rename change_symlinks member to `dereference' and use the DEREF_*
+ enum values.
+ (describe_change): Merge the chgrp and chown switch statements.
+ Use xmalloc to form the `user:group' string.
+ (change_file_owner): Record (and later, use) is_symlink and is_directory
+ from the lstat stats, in order to control whether we operate on symlinks
+ and whether (with -R) we traverse symlinks to directories.
+ When dereferencing, use open/fchown (rather than chown) on symlinks.
+ * src/chown.c (main): Reflect renaming: s/dereference/change_symlinks/.
+ * src/chgrp.c (main): Likewise.
+
+ * src/chown-core.c (describe_change): Use `:' (not `.') to separate the
+ username and group in messages evoked by the --verbose and --changes
+ options.
+
+2000-12-09 Jim Meyering <meyering@lucent.com>
+
+ * src/Makefile.am (noinst_HEADERS): Add chown-core.h.
+ (chown_SOURCES): Define.
+ (chgrp_SOURCES): Define.
+
+ * src/chgrp.c: Include "chown-core.h".
+ [enum Change_status, enum Verbosity]: Remove declarations.
+ Remove decls of globals that are now part of struct Chown_option.
+ Remove decl of xstat.
+ (describe_change): Remove function.
+ (change_file_group): Likewise.
+ (change_dir_group): Likewise.
+ (parse_group): Don't set global, groupname, here...
+ (main): ... instead, initialize `chopt.group_name' here.
+ Initialize chopt and update uses of the now-members.
+ Set group_name also when it's obtained via a --reference=FILE option.
+ Call change_file_owner (with -1 for uids), not change_file_group.
+
+ * src/chown.c: Don't include pwd.h or grp.h -- no longer needed.
+ Include "chown-core.h".
+ [enum Change_status, enum Verbosity]: Remove declarations.
+ Remove decls of globals that are now part of struct Chown_option.
+ (describe_change): Remove function.
+ (change_file_owner): Likewise.
+ (change_dir_owner): Likewise.
+ (main): Initialize chopt and update uses of the now-members.
+ Set user_name and group_name also when they're obtained via a
+ --reference=FILE option.
+ Pass `chopt' to change_file_owner.
+
+ * src/chown-core.c: Include <pwd.h>, <grp.h>, and "xalloc.h".
+ [!_POSIX_VERSION]: Declare getgrnam and getgrgid.
+ (gid_to_name): New function.
+ (uid_to_name): Likewise.
+ (chopt_free): Likewise.
+
+ Factor out code that's common to chgrp.c and chown.c.
+ * src/chown-core.h: New file.
+ * src/chown-core.c (chopt_init): New function.
+ (describe_change): Extracted/combined from chgrp.c and chown.c.
+ (change_dir_owner): Likewise.
+ (change_file_owner): Likewise.
+ * po/POTFILES.in: Add src/chown-core.c.
+
+ * configure.in (AC_OUTPUT): Add tests/chgrp/Makefile.
+ * tests/Makefile.am (SUBDIRS): Add chgrp.
+ * tests/chgrp: New directory.
+ * tests/chgrp/basic: New test.
+ * tests/chgrp/deref: Likewise.
+ * tests/chgrp/Makefile.am: New file.
+
+ * src/chown.c (change_file_owner): Restore special file permission
+ bits, since calling chown resets them on some systems.
+ Reported by Matt Perry.
+
+2000-12-08 Andreas Schwab <schwab@suse.de>
+
+ * tests/mv/mv-special-1: Don't make the success of the test depend
+ on the order in which directory entries are processed.
+
+2000-12-03 Jim Meyering <meyering@lucent.com>
+
+ * src/ls.c (gobble_file) [USE_ACL]: Set have_acl member unconditionally
+ to avoid uninitialized memory reference via FILE_HAS_ACL.
+
+ * Makefile.maint (alpha): Use rsync rather than scp, so the destination
+ file is created only after the successful completion of the copy.
+
+2000-12-02 Jim Meyering <meyering@lucent.com>
+
+ * tests/ls/Makefile.am (TESTS): Add follow-slink.
+ * tests/ls/follow-slink: New file.
+
+2000-12-01 Paul Eggert <eggert@twinsun.com>
+
+ * src/ls.c (gobble_file): Do not fall back on lstat if stat
+ fails; POSIX.2 does not allow this. Invoke acl only on
+ non-symlinks, and only if lstat or stat succeeds.
+
+2000-12-02 Jim Meyering <meyering@lucent.com>
+
+ * configure: Regenerate using the very latest version (in CVS) of
+ autoconf.
+
+ * tests/dd/skip-seek: Remove test #2, now that support for the
+ `B' suffix is gone.
+ * tests/dd/Makefile.am (TESTS): Add skip-seek2
+ * tests/dd/skip-seek2: New file.
+
+2000-12-01 Paul Eggert <eggert@twinsun.com>
+
+ * src/dd.c (skip, dd_copy): Use ssize_t to store result of
+ safe_read, to avoid overflow e.g. on 64-bit Solaris sparc.
+ (dd_copy): Remove unnecessary cast.
+
+2000-12-01 Paul Eggert <eggert@twinsun.com>
+
+ * doc/fileutils.texi: Remove B suffix. Document how to have
+ the desired effect without it.
+
+ * src/dd.c: Undo most of the changes since 2000-11-24, since we've
+ documented a standard way to do it.
+ (skip_bytes, seek_bytes): Remove.
+ (usage): Remove B suffix.
+ (scanargs, skip, dd_copy, main): Remove support for B suffix.
+
+2000-11-28 Jim Meyering <meyering@lucent.com>
+
+ * src/mkdir.c (main): Remove any trailing slash unconditionally.
+ Reported by Volker Borchert.
+ * tests/mkdir/t-slash: Add a test for this.
+
+2000-11-27 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.0.33.
+
+ * tests/touch/no-rights: Use touch with `-d tomorrow' to avoid a
+ race condition.
+
+ * tests/Fetish.pm (_compare_files): New function.
+ (_process_file_spec): Likewise.
+ (_at_replace): Likewise.
+ (run_tests): Support new keywords, AUX and CMP and associated
+ syntax and semantics.
+
+ * config.sub: Likewise.
+ * config.guess: Likewise.
+
+2000-11-26 Jim Meyering <meyering@lucent.com>
+
+ * src/dd.c (skip): Perform the `records < blocksize' test
+ at the top of the loop, not at the bottom.
+
+2000-11-26 Paul Eggert <eggert@twinsun.com>
+
+ * src/dd.c (skip): New arg COUNT_BYTES. Read with BLOCKSIZE
+ bytes, but consider RECORDS to be a byte count if COUNT_BYTES
+ is nonzero.
+
+2000-11-25 Paul Eggert <eggert@twinsun.com>
+
+ * doc/fileutils.texi: Document seek=nB and skip=nB.
+
+ * src/dd.c (skip_bytes, seek_bytes): Now booleans, not counts.
+ (seek_records): Renamed from seek_record, for consistency with
+ skip_records and max_records. All uses changed.
+
+ (usage, scanargs): Remove bseek=n and bskip=n; instead, use seek=nB
+ and skip=nB.
+ (enum Unit, Unit): Remove.
+ (skip, dd_copy, main): Undo most recent change.
+ (dd_copy, main): Pass blocksize of 1 as appropriate when
+ skip_bytes or seek_bytes is nonzero.
+ (main): Rework ftruncate failure diagnostic to always use byte count.
+
+2000-11-25 Jim Meyering <meyering@lucent.com>
+
+ * src/dd.c: Add new options, bskip and bseek.
+ Based on a patch from Chris Sylvain.
+ * tests/dd/skip-seek: New tests.
+ * tests/dd/Makefile.am (TESTS): Add skip-seek.
+
+2000-11-24 Paul Eggert <eggert@green.twinsun.com>
+
+ * src/dd.c (S_TYPEISSHM): New macro.
+ (main): Report failed fstat.
+ Complain only when ftruncate fails on a regular file,
+ a directory, or a shared memory object.
+
+2000-11-24 Jim Meyering <meyering@lucent.com>
+
+ * src/dd.c: Declare a pointer parameters to be `const' as appropriate.
+
+ * src/dd.c (main): Use ftruncate only on regular files.
+ Based on a patch from Michael Stone.
+ Reported by andras@kolumbus.fi at http://bugs.debian.org/77174.
+
+2000-11-23 Jim Meyering <meyering@lucent.com>
+
+ * src/df.c (show_point): Before accepting an entry as a match, make
+ sure that the mount directory exists and has the required device number.
+ Before, e.g., `df /floppy' would mistakenly report on the root
+ partition if /floppy were not listed in /etc/mtab but / was.
+ Patch from Eirik Fuller (http://bugs.debian.org/76923).
+
+ * src/chmod.c (mode_changed): New function.
+ (change_file_mode): Use it to determine accurately when -c should
+ make chmod announce there's been a change.
+ Based on a patch from Michael Stone.
+ Reported by Kai Henningsen as Debian bug #77349.
+
+ * tests/chmod/c-option: New test for the above fix.
+ * tests/chmod/Makefile.am (TESTS): Add c-option
+
+ * tests/sticky-check: New file. Factored out of tests/mkdir/parents.
+ * tests/Makefile.am (EXTRA_DIST): Add sticky-check.
+ * tests/mkdir/parents: Source sticky-check instead of open-coding it.
+
+2000-11-19 Jim Meyering <meyering@lucent.com>
+
+ * tests/chmod/equal-x: Update to use its own directory, and better trap.
+
+2000-11-18 Paul Eggert <eggert@twinsun.com>
+
+ * src/ls.c (BLOCK_SIZE_OPTION, COLOR_OPTION, FORMAT_OPTION,
+ INDICATOR_STYLE_OPTION, QUOTING_STYLE_OPTION,
+ SHOW_CONTROL_CHARS_OPTION, SORT_OPTION, TIME_OPTION): New enum
+ values, to ensure that option values can't collide with chars.
+ (long_options, decode_switches): Use them.
+
+2000-11-18 Paul Eggert <eggert@twinsun.com>
+
+ * src/sys2.h (GETOPT_HELP_CHAR, GETOPT_VERSION_CHAR): Now enum
+ constants rather than macros. Use values that cannot conflict
+ with C characters or with -1, CHAR_MAX + 1, etc.
+
+2000-11-18 Jim Meyering <meyering@lucent.com>
+
+ * src/du.c (count_entry): Don't omit the size of a directory entry
+ merely because we couldn't `chdir' into it. That would give subtly
+ different results in some cases. Reported by Mattias Wadenstein
+ via Michael Stone.
+
+ * src/ls.c: Revert change of 2000-11-11. It inadvertently change
+ the output format of `ls -l --full-time'.
+
+ * src/mkdir.c (main): When failing to create a directory, give only
+ one diagnostic, not two. Reported by Volker Borchert.
+
+ * src/mkdir.c (main): With --parents, remove any trailing slashes
+ from the argument to the final mkdir call. Required for NetBSD.
+ Reported by Volker Borchert.
+ * tests/mkdir/t-slash: New test for this.
+ * tests/mkdir/Makefile.am (TESTS): Add t-slash.
+
+ * tests/mv/mv-special-1: Create and `cd' into temporary directory
+ before anything else. Reported by Volker Borchert.
+
+ * configure, config.h.in, Makefile.in, etc.: Regenerate using the
+ very latest version (in CVS) of autoconf.
+
+2000-11-17 Jim Meyering <meyering@lucent.com>
+
+ * Makefile.am (.NOTPARALLEL): Remove target.
+ * GNUmakefile (.NOTPARALLEL): ... put it here instead, since this
+ file is common to these packages: fileutils, sh-utils, textutils.
+
+ * Makefile.am (.NOTPARALLEL): New target. Prevent unwanted parallelism.
+ Suggestion from Ulrich Drepper.
+ * po/Makefile.in.in (Makefile): Likewise.
+
+ * Makefile.maint (sha1): Define.
+ (announcement): Include SHA1 digest of .tar.gz file.
+
+2000-11-14 Jim Meyering <meyering@lucent.com>
+
+ * tests/mkdir/perm: Add an `echo' so that the input to the sed command
+ is NL-terminated. Otherwise, Solaris' /bin/sed generates no output.
+ Reported by Vin Shelton.
+
+2000-11-13 Paul Eggert <eggert@twinsun.com>
+
+ * src/sys2.h (ST_TIME_CMP_NS): Fix typo: ST_MTIM_NSEC should
+ be tested with #ifdef, not with #if.
+
+2000-11-12 Jim Meyering <meyering@lucent.com>
+
+ * src/ls.c (print_long_format): Remove obsolete comment.
+ From Paul Eggert.
+
+ * doc/texinfo.tex: Update from master repository.
+
+2000-11-11 Paul Eggert <eggert@sic.twinsun.com>
+
+ * src/ls.c (<langinfo.h>): Include if HAVE_LANGINFO_H.
+ (DATE_FMT_LANGINFO): New macro, taken from sh-utils/src/date.c.
+ (print_long_format): Use it to determine "date" format.
+ Do not wrap "%b %e %Y" and "%b %e %H:%M" in _(), as it results in
+ incorrect behavior when LC_ALL is unset, LC_TIME is "C", and
+ LC_MESSAGES or LANG is set to something disagreeing with the POSIX
+ locale.
+
+2000-11-11 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.0.32.
+
+ * Makefile.maint (GZIP_ENV): Define to --no-name, so the timestamp
+ is not included in the .tar.gz file.
+
+ * tests/mkdir/perm (tests): Use `empty' (instead of just blanks) to
+ indicate no `-m' option. Using just blanks wasn't portable to
+ Solaris2.5.1's /bin/sh.
+
+ * tests/mkdir/perm: Don't put a newline in IFS; that's not portable to
+ NetBSD's /bin/sh. Instead, filter newlines and leading/trailing blanks
+ out of `tests' before the `set -'.
+
+ * Makefile.maint (announcement): Limit depth of ChangeLog `find' to 2.
+
+ * src/ls.c (print_long_format): Wrap the `--full-time' date format
+ string in _(...), so it too may be internationalized.
+ Suggestion from Jungshik Shin.
+
+2000-11-10 Jim Meyering <meyering@lucent.com>
+
+ * src/touch.c (main): Interpret a lone numeric argument of 8 or 10
+ digits as a file name, rather than as a date/time in the obsolescent
+ `MMDDhhmm[YY]' format. Reported by Wenjun Zheng.
+ * tests/touch/obsolescent: New test for this.
+ * tests/touch/Makefile.am (TESTS): Add obsolescent.
+
+2000-11-06 Jim Meyering <meyering@lucent.com>
+
+ * tests/cp/cp-parents: Move mkdir tests into ../mkdir.
+
+ * doc/fileutils.texi: Use Free Documentation Licence.
+ Change GNU to @sc{gnu} in many places.
+
+ * doc/texinfo.tex: Update from master repository.
+ * config.sub: Likewise.
+ * config.guess: Likewise.
+ * man/help2man: Update from latest version: 1.23.
+
+ * src/mkdir.c: Do not set the permissions of the final directory
+ component if it was not just created.
+ Based on a patch from Volker Borchert.
+
+ * tests/rwx-to-mode: New file.
+ * tests/Makefile.am (EXTRA_DIST): Add rwx-to-mode.
+ * tests/mkdir/parents: New test for the above mkdir.c fix.
+ * tests/mkdir/Makefile.am (TESTS): Add parents.
+ (TESTS_ENVIRONMENT): Define srcdir=$(srcdir).
+
+2000-11-02 Won-kyu Park <wkpark@chem.skku.ac.kr>
+
+ * src/df.c (print_header): Mark strings for translation.
+
+2000-11-05 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.0.31.
+
+ * configure, config.h.in, Makefile.in, etc.: Regenerate using the
+ very latest version (in CVS) of autoconf.
+
+ * src/mkdir.c (main): Use make_dir instead of using mkdir directly.
+ Diagnose as failure when mkdir tries to create (without the
+ --parent (-p) option) a directory that already exists.
+ * tests/cp/cp-parents: Add a test for the above fix.
+
+ * tests/mv/mv-special-1: Clean up this test.
+
+2000-11-01 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.0.30.
+
+ * src/chmod.c (main): Better diagnostics.
+
+2000-10-31 Jim Meyering <meyering@lucent.com>
+
+ * tests/lang-default: Add all the internationalization-related
+ variable names autoconf uses. Set and export them in a loop.
+
+ `mkdir -p' would create parent directories with permissions
+ that did not account for the umask. [introduced with the
+ 2000-09-30 change that became part of fileutils-4.0.28]
+ * src/mkdir.c: Include dirname.h.
+ Compute the parent directory `mode' unconditionally, effectively
+ as `$(umask -S),u+wx'.
+ Use make_path to create only the parent directories, thus using
+ the same code, both with and without -p, to create the final
+ component in each file name. Reported by Bob Proulx.
+
+ Add tests for the above fix.
+ * tests/cp/cp-parents: Add some permission tests.
+ * tests/mkdir/perm: Fix the test so it actually does something.
+ Run each test also with mkdir's `-p' option and check permissions
+ on the parent directories.
+
+2000-10-23 Paul Eggert <eggert@twinsun.com>
+
+ * doc/getdate.texi: Use @sc where appropriate. Document the
+ ranges of supported times more precisely. Correct menu
+ spacing. Document old Latin 12m/12pm tradition. Remove list
+ of alphabetic time zone names, as it wasn't correct and people
+ shouldn't be relying on it anyway. Relative items also
+ account for non-DST adjustments. Fix some misspellings.
+
+2000-10-30 Jim Meyering <meyering@lucent.com>
+
+ * configure, config.h.in, Makefile.in, etc.: Regenerate using the
+ very latest version (in CVS) of autoconf.
+
+2000-10-29 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.0.29.
+
+ * src/cp.c (do_copy): When constructing dst_path for use with the
+ --parents option, first remove any trailing slashes from the command
+ line argument. Otherwise, tests/cp/cp-parent would fail on NetBSD.
+
+ * tests/cp/cp-parents: Add a test.
+
+ * src/ls.c (DT_INIT): Define.
+ [enum filetype]: Remove the #ifdef, and use DT_INIT on the
+ initializers instead. `unknown' was undefined for some systems.
+ Reported by John David Anglin.
+
+ * tests/lang-default (LC_COLLATE): Set it to the empty string and
+ export it. Otherwise, tests/cp/cp-mv-backup would fail e.g., when
+ LC_COLLATE was set to en. Reported by Vin Shelton.
+
+2000-10-28 Jim Meyering <meyering@lucent.com>
+
+ * src/ls.c (main): In call to gobble_file with `"."', use `directory'
+ as the type, not `unknown'.
+ [enum filetype] (arg_directory): Rather than `100', use
+ a number that should never conflict with another DT_* value.
+ From Ulrich Drepper.
+
+ * Version 4.0.28.
+
+ Make `ls' a lot more efficient on systems (e.g., linux-2.4.*)
+ that store file type information in directory entries.
+
+ * src/ls.c [enum filetype] (unknown):
+ Add members (as yet unused):
+ (HAVE_STRUCT_DIRENT_D_TYPE): Define.
+ (format_needs_type): New global.
+ (main): Set it.
+ (print_dir): Set `type' from directory entry, if possible.
+ (gobble_file): Add a parameter, TYPE.
+ Stat the file only if its type is unknown and we need the type.
+ Patch from Ulrich Drepper.
+
+ Shred can now determine the size of a block devices (e.g. /dev/fd0)
+ by writing until a write operation fails.
+
+ * src/shred.c: Include assert.h.
+ (fillrand): Add a parameter, size_max.
+ Adjust caller.
+ Add an assertion.
+ (dopass): Break out of the `for (;;)' loop if size < offset.
+ That can happen now that dopass is called with SIZE == -1.
+ (do_wipefd): Accept a length of zero only for a regular file.
+ If lseek fails or returns 0 for a non-regular file, let dopass
+ determine the length.
+ Inspired by a patch from Alan Iwi.
+
+ * tests/Makefile.am (EXTRA_DIST): Add lang-default.
+
+ * tests/rm/hash: Factor out the expensive-test-checking code, ...
+ * tests/expensive: ... into this new file.
+ * tests/cp/perm: Disable this test by default; it's expensive.
+ Mark this as an expensive test.
+ * tests/Makefile.am (EXTRA_DIST): Add expensive.
+
+ * doc/fileutils.texi (shred invocation): Give two examples.
+
+2000-10-26 Jim Meyering <meyering@lucent.com>
+
+ * doc/getdate.texi (Authors of getdate): Add Paul Eggert.
+
+2000-10-23 Jim Meyering <meyering@lucent.com>
+
+ * Makefile.am (EXTRA_DIST): Add .prev-version.
+
+2000-10-22 Jim Meyering <meyering@lucent.com>
+
+ * src/cp.c (make_path_private): Add a FIXME comment.
+
+ * tests/lang-default: New file. Set LANG, LC_ALL, and LANGUAGE to ''
+ (rather than to `C') and export them into the environment.
+ Suggestion from Bruno Haible.
+
+ * tests/cp/backup-is-src: Source lang-default rather than open-coding
+ the setting/exporting of LANG, LC_ALL, and LANGUAGE.
+ * tests/cp/cp-mv-backup: Likewise.
+ * tests/cp/same-file: Likewise.
+ * tests/cp/slink-2-slink: Likewise.
+ * tests/cp/symlink-slash: Likewise.
+ * tests/ln/sf-1: Likewise.
+ * tests/ls/symlink-slash: Likewise.
+ * tests/ls/time-1: Likewise.
+ * tests/mv/backup-is-src: Likewise.
+ * tests/mv/diag: Likewise.
+ * tests/mv/force: Likewise.
+ * tests/mv/hard-link-1: Likewise.
+ * tests/mv/i-2: Likewise.
+ * tests/mv/into-self: Likewise.
+ * tests/mv/into-self-2: Likewise.
+ * tests/mv/into-self-3: Likewise.
+ * tests/mv/mv-special-1: Likewise.
+ * tests/mv/part-symlink: Likewise.
+ * tests/mv/partition-perm: Likewise.
+ * tests/rm/r-1: Likewise.
+ * tests/rm/r-2: Likewise.
+
+2000-10-21 Jim Meyering <meyering@lucent.com>
+
+ * tests/cp/cp-parents: New test.
+ * tests/cp/Makefile.am (TESTS): Add cp-parents;
+
+2000-10-19 Jim Meyering <meyering@lucent.com>
+
+ * doc/texinfo.tex: Update from master repository.
+ * config.sub: Likewise.
+ * config.guess: Likewise.
+ * depcomp: Likewise.
+
+2000-10-18 Jim Meyering <meyering@lucent.com>
+
+ * tests/mv/part-symlink: Make sure the programs use C-locale formats
+ and translations. Bruno Haible reported that this test would fail
+ when using other locales, because ls printed a translation of `total'.
+
+2000-10-16 Jim Meyering <meyering@lucent.com>
+
+ * src/ls.c (print_long_format): Wrap date format strings in _(...)
+ so they may be internationalized. Suggestion from Christian Rose.
+
+2000-10-13 Jim Meyering <meyering@lucent.com>
+
+ * src/mv.c (rm_option_init): Remove FIXME-maybe comment.
+
+2000-09-30 Jim Meyering <meyering@lucent.com>
+
+ * tests/du/two-args: Update to use newer template.
+
+ * src/install.c: Remove big, option-describing comment block.
+ (main): Rename local `symbolic_mode' to `specified_mode'.
+
+ * src/mkdir.c (main): Don't set the umask to 0 and hand-apply
+ the previously-set umask unconditionally. Do that only when a
+ MODE has been specified. Otherwise, call mkdir with the full
+ creation mask (0777 or 0666) and let the kernel apply the umask.
+ The difference shows up only on file systems with ACL support
+ when the containing directory has a default ACL.
+ Patch by Andreas Gruenbacher.
+ (main): Rename local `symbolic_mode' to `specified_mode'.
+ * src/mknod.c (main): Likewise (but `call mknod', not mkdir).
+ Also, when MODE is specified, call chmod to ensure that the
+ permission bits are set as specified even when the containing
+ directory has a default ACL.
+ Patch by Andreas Gruenbacher.
+ * src/mkfifo.c (main): Likewise (but `call mkfifo', not mkdir).
+ Patch by Andreas Gruenbacher.
+
+ * tests/mkdir/perm: New test.
+ * tests/mkdir/Makefile.am (TESTS): Add perm.
+
+2000-08-17 Andreas Gruenbacher <ag@bestbits.at>
+
+ * src/chmod.c (change_file_mode): Perform the chmod even if the
+ file mode permission bits are the same as those that should be set.
+ Omitting the chmod call would be alright with minimal 1003.1e DS17
+ ACLs, but eventually there may be other permissions in addition to
+ rwx. E.g., add and delete for directories, and something analogous
+ to NT's take ownership permission.
+
+2000-09-25 Jim Meyering <meyering@lucent.com>
+
+ * tests/cp/same-file: Don't use `diff -u'. It's not portable.
+ Reported by Christian Krackowizer.
+ * tests/cp/same-file: Run `diff -c' only if cmp finds a difference.
+ * tests/mv/part-symlink: Likewise. And clean up.
+
+ `shred --exact file1 file2' wouldn't touch `file1'
+ * src/shred.c (long_opts): --exact doesn't take an argument.
+ Reported by Alan Iwi.
+ * tests/shred/exact: New test for this.
+ * tests/shred/Makefile.am (TESTS): Add exact.
+
+ * Makefile.maint (PREV_VERSION): Get the value from a file, rather
+ than trying to derive it from the current version number.
+ This is much more robust.
+ (alpha): Record just-released version number in `.prev-version',
+ and commit (post-tag).
+
+ * Version 4.0.27.
+
+2000-09-24 Paul Eggert <eggert@twinsun.com>
+
+ * doc/fileutils.texi: Update to more closely match changes in 4.0z.
+ * src/cp.c (usage): Match revised documentation better.
+
+2000-09-24 Jim Meyering <meyering@lucent.com>
+
+ * src/cp.c (main): Tweak a relatively new diagnostic.
+
+2000-09-23 Jim Meyering <meyering@lucent.com>
+
+ * tests/ls/time-1: Output more information when a test fails.
+
+2000-09-22 Jim Meyering <meyering@lucent.com>
+
+ * src/install.c (cp_option_init): Once again make it so install always
+ unlinks an existing destination before trying to open it for writing.
+ Otherwise, installing onto a running shared library would make the
+ running program malfunction.
+ Reported by Dan Pascu via Michael Stone.
+
+ * src/mv.c (do_move): Moving a directory specified with a trailing
+ slash from one partition to another, and giving it a different
+ name at the destination would cause mv to get a failed assertion.
+ Reported by Michael Stone.
+ (strip_trailing_slashes_2): Move function definition to precede
+ new first use.
+ * tests/mv/part-rename: New test for the above fix.
+ * tests/mv/Makefile.am (TESTS): Add part-rename.
+
+ * src/copy.c (copy_internal): Don't try to unlink directories when
+ using --remove-dest with -R.
+ * tests/cp/dir-rm-dest: New test for the above fix.
+ * tests/cp/Makefile.am (TESTS): Add dir-rm-dest.
+
+2000-09-19 Jim Meyering <meyering@lucent.com>
+
+ * doc/fileutils.texi (cp invocation): Describe how --force works.
+ Update description of -P (soon to change meaning to conform w/POSIX).
+ Describe --remove-destination.
+
+ * src/cp.c (main): When used with --force, each of the --link and
+ --symbolic-link options now implies --remove-destination.
+ Reported by Miles Bader via Mike Stone.
+ * tests/cp/link: New file. Test for the above fix.
+ * tests/cp/same-file: Adjust for this change in behavior.
+
+2000-09-15 Volker Borchert <bt@teknon.de>
+
+ * tests/Makefile.am (check-root, root-hint): New targets.
+ (check-recursive): Depend on root-hint.
+ * Makefile.am (check-root): New target.
+
+2000-09-16 Jim Meyering <meyering@lucent.com>
+
+ * doc/perm.texi (Changing Special Permissions): Remove this statement:
+ ``a' in the USERS part of a symbolic mode does not cause the special
+ permissions to be affected'... It doesn't reflect what the code does
+ and isn't required by POSIX. Reported by aldomel@ix.netcom.com via
+ Mike Stone.
+
+2000-09-15 Jim Meyering <meyering@lucent.com>
+
+ * config.sub: Update from master repository.
+
+2000-09-10 Jim Meyering <meyering@lucent.com>
+
+ * tests/cp/cp-mv-backup (LC_ALL): Set to `C' and export to ensure
+ that `ls' sorts the same way for everyone. Reported by Vin Shelton.
+
+ * Makefile.maint (b_host): Use freefriends.org, not tug.org.
+
+2000-09-09 Jim Meyering <meyering@lucent.com>
+
+ * Makefile.maint (announcement): Use a stricter regexp for the
+ previous version.
+
+ * Version 4.0z.
+
+ * tests/cp/special-bits: New file.
+ * tests/cp/Makefile.am (TESTS): Add special-bits.
+ (TESTS_ENVIRONMENT): Propagate $MAKE into environment, for special-bits.
+
+ * src/copy.c (SAME_OWNER, SAME_GROUP, SAME_OWNER_AND_GROUP): Define.
+ (copy_internal): Avoid calling chown if we know it's not necessary.
+
+ * src/copy.c (copy_internal): Call chmod also if we've made the
+ preceding chown call and we're supposed to preserve some special
+ permission bit(s) that would have been reset by chown.
+ Reported by Greg Louis.
+
+2000-09-08 Jim Meyering <meyering@lucent.com>
+
+ * src/mkdir.c (S_IRWXUGO): Remove definition.
+ * src/sys2.h (S_IRWXUGO): Define here, instead.
+
+2000-09-07 Jim Meyering <meyering@lucent.com>
+
+ * doc/texinfo.tex: Update from master repository.
+ * config.sub: Likewise.
+ * config.guess: Likewise.
+
+2000-09-05 Jim Meyering <meyering@lucent.com>
+
+ * tests/mv/part-symlink: Redirect stdout to stderr before trying to
+ remove the temp directory. Otherwise, the `rm -rf' would get an
+ error because the output file wouldn't be closed and the directory
+ wouldn't be `empty'.
+ * tests/cp/same-file: Likewise.
+
+ * tests/cp/same-file: Remove the `cp -dl sl1 sl2' case,
+ since it's no longer portable (hard link to a symlink).
+ Likewise for the `cp -bdl symlink foo' case.
+
+ * config.guess: Update from master repository.
+
+2000-09-04 Jim Meyering <meyering@lucent.com>
+
+ * src/cp.c: Move declaractions of lstat, stat, and rpl_lstat
+ as well as the definition of lstat from here...
+ * src/copy.h: ...to here.
+ * src/copy.c: Remove declaration of lstat, now that it's in copy.h.
+
+ * tests/mv/force: mv's --force (-f) option is no longer needed for
+ this test, now that all it does is cancel --interactive (-i).
+
+ * tests/cp/same-file: Add new tests using cp's --rem option.
+ Reflect the fact that cp's -f option no longer causes cp to remove the
+ destination file before trying to open it.
+ Reflect the fact that `cp -bdl' now makes a backup when copying a
+ symlink onto the file it points to (FIXME: look into this, and why
+ cp -bl does *not* do so).
+
+ * src/ln.c (do_link): Tweak diagnostics.
+
+2000-09-03 Jim Meyering <meyering@lucent.com>
+
+ * src/install.c (cp_option_init): Initialize new members.
+
+ * src/cp.c (enum): Add UNLINK_DEST_BEFORE_OPENING.
+ [long_options]: Add an entry for --remove-destination.
+ (usage): Describe --remove-destination.
+ (do_copy): Use unlink_dest_after_failed_open member, not `force.'
+ (cp_option_init): Initialize new members.
+ (main): Handle UNLINK_DEST_BEFORE_OPENING (aka --remove-destination).
+
+ * src/mv.c: Remove obsolete comment block.
+ (cp_option_init): Initialize new members.
+ (usage): Reflect the fact that --force (-f) relates only to whether
+ mv prompts.
+ (main): Remove uses of old `force' option member.
+
+ * src/install.c (cp_option_init): Reflect
+
+ `force' no longer means unlink-dest-before-opening
+ * src/copy.h (struct cp_options) [force]: Remove member.
+ [unlink_dest_before_opening]: Add member. `cp -f' and `mv -f' used to
+ do this. Now, you must use `cp --remove-destination' to get this
+ behavior. Now, `cp -f' and `mv -f' work as required by POSIX.
+ [unlink_dest_after_failed_open]: Add member.
+ Paul Eggert reported that `cp -f' removes an existing destination
+ file unconditionally, and that is contrary to POSIX.
+
+ * src/copy.c (same_file_ok): New function, extracted from copy_internal,
+ and rewritten.
+ (copy_internal): Unlink destination file when unlink_dest_before_opening
+ option is set, and when the source is neither a regular file nor a
+ directory.
+
+ * tests/mv/Makefile.am (TESTS): Add part-symlink.
+
+ * src/ls.c: Use strcoll (not strcmp) when comparing file names.
+ Suggestion from Ulrich Drepper.
+
+2000-08-27 Jim Meyering <meyering@lucent.com>
+
+ * src/copy.c (copy_reg): New parameters: X and NEW_DST.
+ Remove the SPARSE_MODE parameter. Update caller.
+ Perform POSIX-mandated (for cp) open-with-O_WRONLY|O_TRUNC when copying
+ a regular source file and the destination file exists; upon failure,
+ unlink that existing file, then open again, but with O_WRONLY|O_CREAT.
+ (copy_internal): `force' is not related to interactive; remove
+ the conjunct.
+ Remove the entire `else if (x->force)' block; justifying
+ removal of the non-directory part is easy: POSIX requires we try
+ to open an existing regular file, so we can't unlink it beforehand.
+ The part that changes the mode on a directory to allow overwriting
+ isn't necessary.
+
+ * src/copy.c (copy_reg): Rename two goto labels.
+ (copy_internal): Set `new_dst' when the move_mode rename fails,
+ since we then unlink the destination file.
+
+ * src/cp.c (usage): --force is independent of --interactive.
+
+2000-08-24 Jim Meyering <meyering@lucent.com>
+
+ Put back the kludge. It's necessary after all.
+ * src/dd.c (buggy_lseek_support): New function.
+ (skip): Use it.
+ Frank Adler reported that although _llseek returns 0, lseek
+ erroneously returns an offset suggesting the operation succeeded
+ even though it fails.
+
+ * install-sh: Double quote as needed, to protect against arguments
+ containing spaces or shell metacharacters. Reported by Bruno Haible.
+
+2000-08-23 Jim Meyering <meyering@lucent.com>
+
+ * tests/dd/not-rewound: New test, for the SEEK_CUR vs. SEEK_SET part
+ of the last change. Based on Paul's example.
+ * tests/dd/Makefile.am (TESTS): Add not-rewound.
+
+2000-08-22 Paul Eggert <eggert@twinsun.com>
+
+ * src/dd.c (skip):
+ Assume lseek failed if it returned zero, since a zero return is
+ impossible and some buggy drivers return zero.
+
+ Use SEEK_CUR rather than SEEK_SET; this fixes a bug when the
+ file descriptor is not currently rewound.
+
+2000-08-23 Jim Meyering <meyering@lucent.com>
+
+ * src/dd.c: Back out my last change. Paul's (above) is better.
+
+2000-08-22 Jim Meyering <meyering@lucent.com>
+
+ Don't even try to use lseek on character devices.
+ * src/dd.c (buggy_lseek_support): New function.
+ (skip): Use it.
+ Reported by Martin Gallant via Michael Stone.
+
+2000-08-21 Jim Meyering <meyering@lucent.com>
+
+ * tests/cp/same-file: Clean up traps. Create files in a subdir.
+
+ * install-sh (oIFS): Remove unmatched double quote, left over from
+ my 2000-08-12 change. From J. David Anglin.
+
+ * Makefile.maint (wget-update): Get the latest version of depcomp.
+
+ * depcomp: Update from automake.
+
+2000-08-20 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.0y.
+
+ Add support for cp's new POSIX-mandated -H and -L options.
+ * src/copy.h (enum Dereference_symlink): Define.
+ (struct cp_options) [dereference]: Change type to Dereference_symlink.
+ * src/copy.c: Declare lstat.
+ (copy_dir): Set `xstat' member to lstat so that with `-H' we don't
+ follow symlinks found via recursive traversal.
+ Update uses of `dereference' to compare against new enum member names.
+ * src/cp.c (long_opts): Add --dereference, -L.
+ (usage): Describe -L and -H.
+ (cp_option_init): Initialize to DEREF_UNDEFINED, not `1'.
+ (main): Add `H' and `-L' to getopt spec string.
+ [case 'a']: Initialize `dereference' to DEREF_NEVER, not 0.
+ [case 'd']: Likewise.
+ [case 'H']: New case.
+ [case 'L']: New case.
+ [case 'R']: Don't set dereference to `0' here.
+ If it's not yet defined, set x.dereference to DEREF_NEVER
+ if -R was specified, else set it to DEREF_ALWAYS.
+ Set x.xstat accordingly for -H.
+ * doc/fileutils.texi (cp invocation): Describe -H and -L.
+ * src/mv.c (cp_option_init): Initialize to DEREF_NEVER, not `0'.
+ * src/install.c (cp_option_init): Initialize to DEREF_ALWAYS, not `1'.
+
+ * tests/cp/Makefile.am (TESTS): Add cp-HL.
+ * tests/cp/cp-HL: New test.
+
+ * src/du.c (print_totals): Rename global from opt_combined_arguments.
+
+2000-08-17 Paul Eggert <eggert@twinsun.com>
+
+ * src/copy.c (DO_CHOWN): Do not make a special case for non-root.
+ POSIX.2 requires that cp -p and mv attempt to set the uid of the
+ destination file, even if you're not root. This affects behavior
+ only on hosts that let you give files away via chmod.
+ * NEWS: Describe the above change.
+
+2000-08-15 Jim Meyering <meyering@lucent.com>
+
+ * src/du.c (count_entry): Remember the current directory also for `.'
+ and `..'. Reported by Stephen Smoogen, based on a patch from H.J. Lu.
+ * tests/du/two-args: Add tests for this.
+
+2000-08-14 Jim Meyering <meyering@lucent.com>
+
+ * src/copy.c (copy_reg): Move declaration of local, `n_read', into
+ the scope where it's used.
+ (copy_internal): In calling copy_reg, pass not the raw `src_mode',
+ but the possibly-umask-relative mode, `get_dest_mode (x, src_mode)'.
+
+2000-08-13 Jim Meyering <meyering@lucent.com>
+
+ * src/copy.c (get_dest_mode): Rename from new_nondir_mode.
+ Honor the umask for `cp', but not for `mv' or `cp -p'.
+ (copy_reg): New 4th parameter, dst_mode. Pass it as 3rd arg. to open.
+ (copy_internal): Change type of locals `src_mode' and `src_type' from
+ int to mode_t.
+ Remove unnecessary local, `fix_mode'.
+ Combine two if-stmts into one.
+ Pass `src_mode' as 4th arg to copy_reg.
+ If we've just created a new regular file, return early, skipping the
+ chmod step. copy_reg now sets permissions of such files upon creation.
+ Use get_dest_mode, so there's just one chmod call here.
+
+ * tests/cp/Makefile.am (TESTS): Add perm.
+ * tests/cp/perm: New tests, to help ensure the above didn't
+ change anything.
+
+2000-08-12 Jim Meyering <meyering@lucent.com>
+
+ * tests/mv/into-self-2: Remove test for the VERSION_CONTROL and/or
+ SIMPLE_BACKUP_SUFFIX envvars. Source ../envvar-check instead.
+ * tests/mv/i-2: Likewise.
+ * tests/mv/to-symlink: Likewise.
+ * tests/cp/slink-2-slink: Likewise.
+ * tests/mv/partition-perm: Likewise.
+ * tests/cp/cp-mv-backup: Likewise.
+
+ * tests/Makefile.am (EXTRA_DIST): Add envvar-check.
+ * tests/envvar-check: New file.
+
+ * install-sh: Remove trailing blanks.
+ Output diagnostics to stderr, not stdout.
+ Remove many useless curly braces and double quotes.
+
+2000-08-11 J. David Anglin <dave@hiauly1.hia.nrc.ca>
+
+ * install-sh: Improve error handling.
+ Do the job even when the target file is `busy' on systems
+ that don't allow such files to be unlinked.
+
+2000-08-12 Jim Meyering <meyering@lucent.com>
+
+ * README: Remove note about how installation can fail and the
+ work-around, now that it's all automated.
+
+2000-08-07 Paul Eggert <eggert@twinsun.com>
+
+ * src/cp.c (usage, main): For cp -P messages, mention the new
+ behavior as well as the old.
+
+2000-08-07 Paul Eggert <eggert@twinsun.com>
+
+ Standardize on "memory exhausted" instead of "Memory exhausted"
+ or "virtual memory exhausted".
+ Invoke xalloc_die instead of printing our own message.
+ * src/chmod.c (main): Likewise.
+ * src/copy.c (copy_dir, copy_internal): Likewise.
+ * src/cp.c (do_copy): Likewise.
+ * src/dircolors.c (xstrndup): Likewise.
+ * src/install.c (main): Likewise.
+ * src/ln.c (do_link): Likewise.
+ * src/mkdir.c (main): Likewise.
+ * src/mkfifo.c (main): Likewise.
+ * src/mknod.c (main): Likewise.
+ * src/mv.c (movefile): Likewise.
+ * src/remove.c (remove_cwd_entries, rm): Likewise.
+ * src/shred.c (quotearg_colon, xmalloc):
+ "virtual memory exhausted" -> "memory exhausted"
+
+2000-08-07 Jim Meyering <meyering@lucent.com>
+
+ * src/cp.c (enum) [PARENTS_OPTION]: New member.
+ (long_opts): Update "parents" and deprecated "path" entries to use
+ `PARENTS_OPTION', not `P'.
+ (usage): Update --help output.
+ (main): Warn that the meaning of `-P' will soon change.
+
+2000-08-06 Jim Meyering <meyering@lucent.com>
+
+ * doc/fileutils.texi (cp invocation) [-r]: Remove inaccurate mention of
+ `non-symbolic links'.
+
+2000-08-05 Jim Meyering <meyering@lucent.com>
+
+ * config.guess: Update from master repository.
+ * config.sub: Likewise.
+
+ * Regenerate build/config framework to use the latest CVS versions
+ of automake and autoconf.
+
+2000-07-31 Jim Meyering <meyering@lucent.com>
+
+ * src/shred.c [!HAVE_CONFIG_H]: Use `virtual memory exhausted', not
+ `Memory exhausted'.
+
+2000-07-30 Jim Meyering <meyering@lucent.com>
+
+ * src/sys2.h (ISPRINT): Undef before defining to avoid warning.
+
+ * src/copy.c (copy_internal): Quote the file names that are displayed
+ with --verbose and --backup.
+ * src/remove.c (remove_file): Quote the file names that are displayed
+ with --verbose.
+ (remove_dir): Likewise.
+ * tests/mv/mv-special-1: Add quote marks to match new behavior.
+ * tests/rm/r-1: Likewise.
+ * tests/rm/r-2: Likewise.
+
+ * src/df.c: Convert "`%s'" in format strings to "%s", and wrap each
+ corresponding argument in a `quote (...)' call.
+ * src/dircolors.c: Likewise.
+ * src/du.c: Likewise.
+ * src/mkdir.c: Likewise.
+ * src/mkfifo.c: Likewise.
+ * src/mknod.c: Likewise.
+ * src/shred.c: Likewise.
+ * src/rmdir.c: Likewise.
+ * src/cp-hash.c: Likewise.
+
+ * src/chgrp.c: Convert "`%s'" in format strings to "%s", and wrap each
+ corresponding argument in a `quote (...)' call.
+ Add more precise diagnostics.
+ * src/chmod.c: Likewise.
+ * src/chown.c: Likewise.
+
+ * src/remove.c (remove_cwd_entries): Quote one more file name.
+
+ * src/help-version: Remove file. Move it to ...
+ * tests/help-version: ...here
+ * tests/Makefile.am (TESTS): Set to help-version.
+ (TESTS_ENVIRONMENT): Define.
+ (EXTRA_DIST): Add $(TESTS).
+ * src/Makefile.am (EXTRA_DIST): Remove help-version.
+ (TESTS): Remove definition.
+ (TESTS_ENVIRONMENT): Remove definition.
+
+2000-07-24 Bruno Haible <haible@clisp.cons.org>
+
+ * src/ls.c: Include <limits.h>, <stdlib.h>, <wchar.h>, <wctype.h>.
+ (quote_name): Use mbrtowc to step through the filename string while
+ replacing nonprintables with question marks. Return the screen width,
+ not the strlen length. Do no output if the out stream is NULL.
+ (length_of_file_name_and_frills): Use the quote_name return value.
+
+2000-07-25 Jim Meyering <meyering@lucent.com>
+
+ * src/chgrp.c (change_file_group): Save errno from a possibly failed
+ chown, and use that later. Otherwise, errno itself could be clobbered
+ before used.
+ * src/chmod.c (change_file_mode): Likewise.
+ * src/chown.c (change_file_owner): Likewise.
+
+ * src/mv.c (main): Remove unnecessary "%s" argument.
+
+ * src/ln.c: Convert "`%s'" in format strings to "%s", and wrap each
+ corresponding argument in a `quote (...)' call.
+ Add more precise diagnostics.
+ * src/mv.c: Likewise.
+ * src/cp.c: Likewise.
+ * src/touch.c: Likewise.
+
+2000-07-23 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.0x.
+
+ * src/dd.c (main): Give a better diagnostic for e.g.,
+ `dd if=/dev/fd0 seek=100000000000'.
+ Convert "`%s'" in format strings to "%s", and wrap each
+ corresponding argument in a `quote (...)' call.
+ Add many, more precise diagnostics.
+
+ * src/remove.c (ASSIGN_STRDUPA): Remove macro definition.
+ * src/sys2.h (ASSIGN_STRDUPA): New macro (moved here from remove.c).
+
+ Fix cp so that `cp -r DIR1/ DIR2' works once again.
+ * src/cp.c (ASSIGN_BASENAME_STRDUPA): New macro.
+ (do_copy): Use it here (so we always strip trailing slashes before
+ calling base_name). Reported by Branden Robinson via Michael Stone.
+
+ Test for the above fix.
+ * tests/cp/Makefile.am (TESTS): Add dir-slash.
+ * tests/cp/dir-slash: New file.
+
+2000-07-17 Jim Meyering <meyering@lucent.com>
+
+ * Makefile.maint (WGET): Define.
+ (ftp-gnu): Define.
+ (wget-update): New rule, based on the one in autoconf.
+
+ * src/shred.c (usage): Give a little more info.
+ Remove a FIXME comment.
+
+ Avoid warnings.
+ * src/ls.c (struct bin_str): Declare `string' member to be `const'.
+ (put_indicator): Declare local `p' to be `const'.
+
+2000-07-15 Jim Meyering <meyering@lucent.com>
+
+ Begin converting "`%s'" in format strings to "%s", and wrap each
+ corresponding argument in a `quote (...)' call -- if there's only one.
+ If there are two or more, then use `quote_n (0, ...),
+ quote_n (1, ...), ...'.
+
+ Here's the justification, from Paul Eggert (thanks, Paul):
+
+ [Consider] the following, taken from fileutils/copy.c:
+
+ error (0, errno, _("cannot create directory `%s'"), dst_path);
+
+ Now, suppose dst_path is "/'\nrm: removing all files under `/"
+ (expressed in C string syntax). This will cause the user to see
+ the following delightfully ambiguous display:
+
+ cp: cannot create directory `/'
+ rm: removing all files under `/'
+
+ It would be better to rewrite the above line to be something
+ like this:
+
+ error (0, errno, _("cannot create directory %s"), quote (dst_path));
+
+ using the definition of "quote" [in lib/quote.c]. That way,
+ the user will see the following unambiguous display instead:
+
+ cp: cannot create directory `/\'\nrm: removing all files under `/'
+
+ One might object that any user who asks to copy a file with
+ a weird name like that deserves to get confused. But this
+ is not a good objection, as the source of the string may not
+ be under the user's control, or even visible to the user.
+
+ * src/copy.c: Adapt format strings and args as above. Include quote.h.
+ I have deliberately not changed the output of --verbose.
+ FIXME: maybe I should.
+ * src/cp.c: Likewise.
+ * src/remove.c: Likewise.
+ * src/install.c: Likewise. and improve a couple diagnostics.
+
+2000-07-13 Paul Eggert <eggert@twinsun.com>
+
+ * NEWS: Describe --quoting-style=clocale.
+
+ * doc/fileutils.texi: New clocale quoting style.
+ Undo the previous change to the locale quoting style.
+
+2000-07-09 Jim Meyering <meyering@lucent.com>
+
+ * config.guess: Update from FSF.
+ * config.sub: Likewise.
+
+2000-07-05 Paul Eggert <eggert@twinsun.com>
+
+ * doc/fileutils.texi: Don't use ` and ' for quoting.
+
+2000-07-01 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.0w.
+
+ * tests/touch/dangling-symlink: Warn about the problem rather
+ than failing, on some very recent (at least 2.3.99) versions of
+ the Linux kernel. Suggestion from Ulrich Drepper.
+ * tests/touch/Makefile.am (TESTS_ENVIRONMENT): Define host_triplet
+ for use in the dangling-symlink test.
+
+2000-06-28 Jim Meyering <meyering@lucent.com>
+
+ * tests/mv/i-2: Don't copy `out' into /tmp.
+
+2000-06-26 Paul Eggert <eggert@twinsun.com>
+
+ Now that savedir.c has been cleaned up...
+ * src/chgrp.c (change_dir_group): Don't set errno before
+ invoking savedir, and assume that errno is nonzero if savedir fails.
+ * src/chmod.c (change_dir_mode): Likewise.
+ * src/chown.c (change_dir_owner): Likewise.
+ * src/copy.c (copy_dir): Likewise.
+ * src/du.c (count_entry): Likewise.
+
+2000-06-26 Paul Eggert <eggert@twinsun.com>
+
+ * src/df.c (show_dev): Round disk usage percentage up, not to
+ nearest value. Use integer arithmetic if it's easy. Fix bug
+ when converting twos-complement negative values to floating point.
+
+2000-06-25 Jim Meyering <meyering@lucent.com>
+
+ * src/copy.c (copy_internal): Don't return immediately after a failed
+ copy_dir call -- otherwise, the failure to read a single file in a
+ source directory would cause the containing destination directory
+ not to have the owner and/or permissions set properly.
+ Reported by Piotr and Maciej Kwapulinski.
+ * tests/cp/fail-perm: Test for it.
+ * tests/cp/Makefile.am (TESTS): Add fail-perm.
+
+ * Version 4.0v.
+
+2000-06-18 Jim Meyering <meyering@lucent.com>
+
+ * README-alpha: Update.
+
+2000-06-17 Jim Meyering <meyering@lucent.com>
+
+ * tests/install/basic-1: Don't fail (just exit 77) if strip doesn't
+ work. Suggestion from Ulrich Drepper.
+ Add canonical trap/mkdir/cd, plus exit portability cruft.
+
+2000-06-16 Jim Meyering <meyering@lucent.com>
+
+ * src/copy.c (copy_reg): Give a slightly better diagnostic upon
+ open failure.
+
+2000-06-15 Paul Eggert <eggert@twinsun.com>
+
+ * NEWS, doc/fileutils.texi: df, du, and ls now round disk
+ usage up and disk free space down.
+
+ * src/df.c (df_readable): New arg for rounding style.
+ Round negative numbers correctly.
+ (show_dev): Round disk usage up and disk free space down.
+
+ * src/ls.c (print_dir, gobble_file, print_long_format,
+ print_file_name_and_frills): Round disk usage up.
+ * src/du.c (print_size): Likewise.
+
+2000-06-14 Andreas Schwab <schwab@suse.de>
+
+ * tests/rm/r-1 (framework_failure): Initialize this instead of
+ test_failure.
+
+2000-06-12 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.0u.
+
+ * tests/rm/r-1: Clean up.
+ Be careful to remove temp directory upon interrupt.
+
+ * src/mv.c (main): Give the correct diagnostic when using the
+ --target-dir=DIR option, but no arguments.
+ Patch from Michael Stone. Reported by Herbert Xu.
+ * tests/mv/diag: New test for this.
+ * tests/mv/Makefile.am (TESTS): Add diag.
+
+2000-06-08 Brian Youmans <3diff@gnu.org>
+
+ * doc/perm.texi (Multiple Changes): Fix typo.
+ * doc/fileutils.texi: A few typos and minor formatting fixes.
+ * doc/getdate.texi: Likewise.
+
+2000-06-06 Jim Meyering <meyering@lucent.com>
+
+ * Makefile.maint (alpha_subdir): Factor out `gnu/fetish'.
+
+2000-06-04 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.0t.
+
+ * src/df.c (show_point) [HAVE_REALPATH && !HAVE_RESOLVEPATH]:
+ Cast undeclared `realpath' to char* to avoid warning.
+
+2000-06-03 Jim Meyering <meyering@lucent.com>
+
+ * src/install.c (usage): Document that -v is a synonym for --verbose.
+ * src/mkdir.c: Allow -v as synonym for --verbose, to be consistent
+ with other fileutils.
+ * src/rmdir.c: Likewise.
+ Suggestion from François Pinard.
+
+2000-06-02 Jim Meyering <meyering@lucent.com>
+
+ * configure.in (ALL_LINGUAS): Add Danish (da).
+
+2000-05-29 Jim Meyering <meyering@lucent.com>
+
+ Allow `cp -d -u' to copy one symlink onto another that's identical.
+ * src/copy.c (copy_internal): Change the || to ^ in the big sameness
+ test, so copying one symlink onto another, identical one doesn't fail
+ here.
+ If the symlink call fails, don't report the failure if the destination
+ already exists and is a symlink pointing to the proper name.
+ Reported by Andrew Burgess.
+ * tests/cp/slink-2-slink: New test.
+ * tests/cp/Makefile.am (TESTS): Add slink-2-slink.
+ * tests/cp/same-file: Adapt to fit new semantics of `cp -d'.
+
+2000-05-25 Jim Meyering <meyering@lucent.com>
+
+ * src/dd.c (close_stdout_wrapper): Don't dereference NULL pointer.
+ From Bob Proulx.
+
+2000-05-23 Jim Meyering <meyering@lucent.com>
+
+ * tests/shred/remove: Add traps to clean up.
+ Correct broken running-as-root test.
+
+ * tests/mv/i-2: Exit 77 when run as root. Reported by Andreas Schwab.
+
+2000-05-20 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.0s.
+
+ * tests/mv/Makefile.am (TESTS): Add i-2, for 2000-05-12 change.
+
+ * tests/rm/r-2: Clean up.
+ * tests/ls/time-1 (LC_ALL): Set it unconditionally.
+
+2000-05-19 Jim Meyering <meyering@lucent.com>
+
+ Save device number as well as inode number for each directory,
+ and use both in comparisons. This makes the directory cycle
+ test more robust, and closes the small remaining hole whereby
+ an attacker could subvert a running `rm -r' command.
+
+ * src/remove.c (struct active_dir_ent) [st_dev]: New member.
+ [st_ino]: Rename from `inum'.
+ (make_active_dir_ent) [device]: New parameter.
+ (hash_compare_active_dir_ents): Compare using SAME_INODE macro.
+ (fspec_init_common): New function, factored out.
+ (fspec_init_file): Initialize have_device member.
+ (fspec_get_full_mode): Remove parameter. Update caller.
+ Set have_device and st_dev members.
+ * src/remove.h (struct File_spec) [have_device, st_dev]: New members
+
+2000-05-18 Jim Meyering <meyering@lucent.com>
+
+ * src/remove.c (rm): Combine adjacent fputc and fprintf.
+
+ * tests/rm/Makefile.am (TESTS): Add hash.
+ * tests/rm/hash: New test for the fix in lib/hash.c.
+
+2000-05-17 Jim Meyering <meyering@lucent.com>
+
+ * src/remove.c (remove_dir): Detect (and fail upon) attempt to subvert
+ a running `rm -r'. Reported by Morten Welinder.
+
+2000-05-15 Jim Meyering <meyering@lucent.com>
+
+ * src/ln.c (do_link): Use complete strings in diagnostics so they
+ are easier to translate. Reported by Michel Robitaille.
+ (main): Drop support for the case in which S_ISLNK wasn't defined.
+ It was broken in any case.
+
+ * tests/ls/time-1: Set LC_ALL to `C' to avoid failure when the
+ current locale is not C (POSIX). From Matthew Clarke.
+
+2000-05-13 Jim Meyering <meyering@lucent.com>
+
+ * src/help-version: New test.
+ * src/Makefile.am (TESTS): Define.
+ (TESTS_ENVIRONMENT): Likewise.
+ (EXTRA_DIST): Add help-version.
+
+ * src/chgrp.c: Arrange to call close_stdout only upon exit.
+ * src/chmod.c: Likewise.
+ * src/chown.c: Likewise.
+ * src/cp.c: Likewise.
+ * src/df.c: Likewise.
+ * src/dircolors.c: Likewise.
+ * src/du.c: Likewise.
+ * src/install.c: Likewise.
+ * src/ln.c: Likewise.
+ * src/ls.c: Likewise.
+ * src/mkdir.c: Likewise.
+ * src/mkfifo.c: Likewise.
+ * src/mknod.c: Likewise.
+ * src/mv.c: Likewise.
+ * src/rm.c: Likewise.
+ * src/rmdir.c: Likewise.
+ * src/shred.c: Likewise.
+ * src/sync.c: Likewise.
+ * src/touch.c: Likewise.
+
+ * src/dd.c: Include closeout.h.
+ (usage): Don't call close_stdout here.
+ (close_stdout_wrapper): New, kludgey, function and file-scoped global.
+ (main): Register it with atexit.
+
+2000-05-12 Jim Meyering <meyering@lucent.com>
+
+ Unlike for mv, -i doesn't cancel the effect of -f
+ and -f doesn't cancel the effect of -i.
+ * src/cp.c (main) ['f']: Don't reset `x.interactive'.
+ ['i']: Don't reset `x.force'.
+ * src/copy.c (copy_internal): Fix force and interactive tests.
+ Patch from Michael Stone, reported by Jeff Sheinberg.
+
+2000-05-09 Jim Meyering <meyering@lucent.com>
+
+ * src/shred.c: Include sys/types.h in shred.c before including
+ sys/stat.h or system.h. From John David Anglin.
+
+2000-05-08 Jim Meyering <meyering@lucent.com>
+
+ * tests/shred/remove: Don't use touch in root test. Instead, append to
+ the test file, since now touch operates even on files which deny owner
+ write access.
+
+2000-05-06 Jim Meyering <meyering@lucent.com>
+
+ * src/Makefile.am (shred_LDADD): Add @LIB_CLOCK_GETTIME@.
+
+ * src/rmdir.c (EEXIST): Remove now-unused definition.
+ (ENOTEMPTY): Likewise.
+ (errno_rmdir_non_empty): Rewrite to use RMDIR_ERRNO_NOT_EMPTY,
+ which is determined by the autoconf test in m4/rmdir-errno.m4.
+
+2000-05-03 Bruno Haible <haible@clisp.cons.org>
+
+ Don't fail when running `make check' with non-`C' locale.
+ * tests/cp/symlink-slash: During ls, set LANGUAGE (for GNU gettext)
+ and LC_ALL (for systems which look at LC_MESSAGES).
+ * tests/rm/r-2: Define LC_ALL instead of LANG, in case the user has
+ LC_CTYPE or LC_ALL set. Define it and LANGUAGE before the first use
+ of sort.
+
+2000-05-03 Jim Meyering <meyering@lucent.com>
+
+ With a recent glibc, _GNU_SOURCE, and -O, strndup may be a macro.
+ * src/sys2.h (!HAVE_DECL_STRNDUP): Declare strndup.
+ * src/dircolors.c: Remove declaration of strndup.
+ Reported by Bruno Haible.
+
+2000-05-02 Jim Meyering <meyering@lucent.com>
+
+ * src/rm.c (usage): Add the answer to `How do I remove a file named -f?'
+
+2000-05-01 Jim Meyering <meyering@lucent.com>
+
+ * src/install.c (change_attributes): Don't even attempt the chmod
+ if the chown fails. Before, when a non-root user ran `install -m 4755
+ -o nobody FILE DEST', DEST would set-uid not to `nobody' but rather to
+ the ID of the installing user. Reported by Marc Olzheim.
+
+2000-04-30 Jim Meyering <meyering@lucent.com>
+
+ * src/touch.c (O_NOCTTY): Define if not defined already.
+ (touch): Add O_NOCTTY to the flags passed to open.
+
+2000-04-29 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.0r.
+
+ * src/cp.c [LSTAT_FOLLOWS_SLASHED_SYMLINK] (lstat): Define to rpl_lstat.
+
+2000-04-27 Jim Meyering <meyering@lucent.com>
+
+ Clean up.
+ * tests/mkdir/Makefile.am (TESTS_ENVIRONMENT): Set PATH, not MKDIR.
+ * tests/mkdir/p-1: Use mkdir, not $MKDIR.
+ * tests/mkdir/p-2: Likewise.
+
+ * configure.in (AC_OUTPUT): Add tests/du/Makefile.
+ * tests/Makefile.am (SUBDIRS): Add du.
+ * tests/du: New directory.
+ * tests/du/two-args: New test.
+
+ * tests/mkdir/special-1: New test.
+ * tests/mkdir/Makefile.am (TESTS): Add special-1.
+
+2000-04-25 Paul Eggert <eggert@twinsun.com>
+
+ * src/du.c (pop_dir): Remove through_symlink arg; use null cwd
+ for that purpose instead.
+ (count_entry): Also save the directory if we're saving more
+ than one level.
+ Fix file descriptor and memory leak when chdir fails.
+
+2000-04-26 Jim Meyering <meyering@lucent.com>
+
+ * src/mkdir.c: Rename global: s/path_mode/create_parents/.
+ (main): No longer perform explicit chmod when creating
+ parent directories, since make_path now does the chmod.
+
+2000-04-17 Jim Meyering <meyering@lucent.com>
+
+ * src/chown.c: New option: --from=CURRENT_OWNER:CURRENT_GROUP.
+ (enum) [FROM_OPTION]: New member.
+ (long_options): New getopt spec.
+ (change_file_owner): Add old_user, old_group parameters. Use them.
+ (change_dir_owner): Likewise.
+ (usage): Describe.
+ (main): New case.
+ From Andries Brouwer.
+ * doc/fileutils.texi (invoking chown): Document it.
+
+2000-04-16 Jim Meyering <meyering@lucent.com>
+
+ * src/cp.c: New option: --strip-trailing-slashes.
+ (enum) [STRIP_TRAILING_SLASHES_OPTION]: New member.
+ (remove_trailing_slashes): New global.
+ (long_opts): New getopt spec.
+ (usage): Describe.
+ (do_copy): Strip trailing slashes on SOURCE names only if the new
+ option has been specified.
+ (main): New case.
+
+ * tests/cp/symlink-slash: New test for the change in behavior.
+ * tests/cp/Makefile.am (TESTS): Add symlink-slash.
+
+ * doc/fileutils.texi (Trailing slashes): Factor out discussion on
+ trailing slashes into its own node.
+ Cross reference from cp and mv.
+
+2000-04-14 Jim Meyering <meyering@lucent.com>
+
+ * src/touch.c (touch): Add O_NOCTTY to the list of open-time flags.
+
+2000-04-13 Jim Meyering <meyering@lucent.com>
+
+ Move some code into m4/.
+ * configure.in (_GNU_SOURCE): Don't define here.
+ (AC_SYS_LARGEFILE): Don't use here.
+ (AM_C_PROTOTYPES): Don't use here.
+ * acconfig.h: Remove now-unused file.
+
+2000-04-08 Jim Meyering <meyering@lucent.com>
+
+ * doc/fileutils.texi (cp invocation): Mention that there is an
+ application for cp's --sparse=never option. From Martin Hippe.
+ (cp invocation): Describe how --backup and --force
+ can be useful together.
+
+2000-03-10 Alan Iwi <iwi@atm.ox.ac.uk>
+
+ * src/ls.c: Add support for "ln=target" in the LS_COLORS variable,
+ to colorize links as for the file/directory pointed to.
+ * src/dircolors.hin: Add a few words of documentation of the above.
+
+2000-04-08 Jim Meyering <meyering@lucent.com>
+
+ * src/cp.c (usage): Document that while the --backup option takes an
+ optional argument, the -b option accepts none.
+ (main): Use `backup type' in call to xget_version, not the
+ now-deprecated `--version-control'.
+ * src/install.c: Likewise.
+ * src/ln.c: Likewise.
+ * src/mv.c: Likewise.
+
+2000-03-12 Jim Meyering <meyering@lucent.com>
+
+ Merge from textutils.
+ * src/system.h (O_BINARY, O_TEXT): Define if necessary.
+ (SET_BINARY, SET_BINARY2): Define.
+ (DEV_BSIZE): Define to BBSIZE if appropriate.
+
+2000-03-10 Jim Meyering <meyering@lucent.com>
+
+ * tests/mv/mv-special-1: Make the message more like that in the
+ similar touch and shred tests.
+ * tests/touch/fifo: Accommodate SunOS-NFS-mounting-OpenBSD mkfifo
+ bug and `exit 77' if the fifo cannot be created.
+ Report and suggestion from Volker Borchert.
+
+2000-03-03 Jim Meyering <meyering@lucent.com>
+
+ * po/Makefile.in.in (dist distdir): Don't use `ln' (which was just a
+ space optimization anyway) to populate $(distdir). Otherwise, the dist
+ rules that change permissions would end up affecting the master sources.
+
+2000-03-01 Paul Eggert <eggert@twinsun.com>
+
+ * src/df.c (show_point): Ignore shortcuts based on path
+ prefixes that are loop file system mount points, since they
+ yield undesirable output.
+
+2000-02-29 Jim Meyering <meyering@lucent.com>
+
+ * src/ls.c (decode_switches): Remove `e' from getopt_long's list of
+ option characters. Reported by John Summerfield.
+
+2000-02-28 Jim Meyering <meyering@lucent.com>
+
+ * tests/install/basic-1: Use ginstall, not install.
+
+2000-02-27 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.0q.
+
+ * src/sys2.h: Guard declaration of strtoull also with
+ `&& HAVE_UNSIGNED_LONG_LONG'.
+
+ * src/sys2.h: Use `#if !HAVE_DECL...' instead of `#ifndef HAVE_DECL...'
+ now that autoconf always defines the HAVE_DECL_ symbols.
+
+ * src/install.c (install_file_to_path): Always use install_file_in_file.
+ Based on a patch from Adam Klein via Michael Stone.
+
+ * tests/install/Makefile.am (TESTS): Add create-leading.
+ * tests/install/create-leading: New file.
+
+ * tests/install/basic-1: Clean up.
+ * tests/install/Makefile.am (TESTS_ENVIRONMENT): Add PATH. Remove cruft.
+
+2000-02-26 Jim Meyering <meyering@lucent.com>
+
+ Tranform the generated src/Makefile.in file so it falls back on
+ using /bin/rm when necessary. The old rule didn't always work.
+ This is necessary only on certain losing systems, and because this
+ package builds an `rm' executable and some people put `.' too
+ early in their PATH.
+ * Makefile.am (DISTCLEANFILES): Remove .deps and `FIXME' comment.
+ (EXTRA_DIST): Add .kludge-stamp.
+ (.kludge-stamp): New rule.
+ * src/Makefile.am (AUTOMAKE): Remove definition.
+ (Makefile.in): Remove dependency on automake-wrap script.
+ (EXTRA_DIST): Remove automake-wrap.
+ * src/automake-wrap: Remove file.
+
+ * tests/rm/r-2: Don't make the success of the test depend on the
+ order in which directory entries are processed.
+ Reported by Andreas Schwab.
+
+2000-02-12 Jim Meyering <meyering@lucent.com>
+
+ * po/POTFILES.in: Add lib/userspec.c.
+
+ * doc/fileutils.texi (chown invocation): Deprecate use of `.'.
+
+ * src/chown.c (usage): Mention only `:', and not `.' as the separator,
+ since POSIX allows only the former.
+ Prompted by a report from Manas Garg.
+
+2000-02-11 Jim Meyering <meyering@lucent.com>
+
+ * src/df.c (main): Count the stat'able arguments.
+ Print the header line only if there is at least one valid argument.
+ Reported by Andy Longton <alongton@metamark.com>
+
+2000-02-10 Jim Meyering <meyering@lucent.com>
+
+ Make du work when invoked from an unreadable directory.
+
+ * src/du.c (pop_dir): New function.
+ (count_entry): Factor out common code (pop_dir), and call the new
+ function instead.
+ Move declaration of global, `stat_buf' into this function.
+ (du_files): Don't stat `.' or call save_cwd, since count_entry
+ never returns with a changed working directory.
+
+2000-02-09 Jim Meyering <meyering@lucent.com>
+
+ * tests/mv/mv-special-1: Use $null and $dir in place of literals
+ in `here' script.
+ Exit 77 if we can't set up the framework (Volker Borchert reported
+ that this test would fail because mknod failed when run on SunOS4.1.4
+ using NFS-mounted disk from an OpenBSD system).
+
+2000-02-05 Jim Meyering <meyering@lucent.com>
+
+ * src/copy.c (copy_internal): Don't allow mv to move a directory onto
+ a non-directory. Reported by Brian Kimball via Michael Stone.
+
+2000-02-03 Jim Meyering <meyering@lucent.com>
+
+ * tests/mv/Makefile.am (TESTS): Add dir-file.
+ (TESTS_ENVIRONMENT): Remove vestiges of old tests.
+ * tests/mv/dir-file: New file.
+
+2000-02-02 Jim Meyering <meyering@lucent.com>
+
+ * tests/touch/Makefile.am (TESTS): Add fifo.
+ * tests/touch/fifo: New file.
+
+2000-02-01 Jim Meyering <meyering@lucent.com>
+
+ * src/touch.c (O_NDELAY): Define to 0 if not defined.
+ (O_NONBLOCK): Define to O_NDELAY if not defined.
+ (touch): Open with O_NONBLOCK, so one can touch a fifo without hanging.
+ Reported by Eric G. Miller via Michael Stone.
+
+ * man/*.x: Change ." to .\".
+ Reported by Andreas Schwab and Brendan O'Dea.
+
+2000-01-31 Jim Meyering <meyering@lucent.com>
+
+ * man/Makefile.maint (ginstall_filter): Define.
+ ($(man_MANS)): Use it here so that the install.1 man page refers
+ to `install', not `ginstall'. Reported by Andreas Schwab.
+
+2000-01-30 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.0p.
+
+ * configure.in: Move library-related tests into m4/lib-check.m4.
+
+ * src/system.h (ST_NBLOCKS): Use st_size only for regular files and
+ for directories. From H. J. Lu.
+
+ * src/dd.c (main): Exit with nonzero status if ftruncate fails.
+
+2000-01-24 Jim Meyering <meyering@lucent.com>
+
+ * src/ln.c (usage): Describe behavior when LINK_NAME is omitted.
+ From Michael Stone.
+
+ * src/mv.c (main): Don't expect array index `n_files - 1' to evaluate
+ to `-1' for unsigned int n_files == 0. Doing so lead to a segfault on
+ alpha. From Michael Stone.
+
+2000-01-23 Jim Meyering <meyering@lucent.com>
+
+ * configure.in (AM_FUNC_OBSTACK): Remove. (move to m4/.)
+ Remove nearly all function checks (moved to m4/.)
+ (AC_SUBST(DF_PROG)): Move this to m4/.
+ (ftruncate test): Move into new file: m4/ftruncate.m4.
+ (AC_HEADER_MAJOR, AC_HEADER_DIRENT): Move into m4/.
+ Remove df-related tests. i.e., move jm_LIST_MOUNTED_FILESYSTEMS,
+ jm_FSTYPENAME, and jm_FILE_SYSTEM_USAGE) into m4/.
+
+2000-01-22 Jim Meyering <meyering@lucent.com>
+
+ * configure.in: Move addext.c prerequisites from this file into m4/.
+ (AC_CHECK_HEADERS): Move these checks into m4/.
+
+2000-01-17 Paul Eggert <eggert@twinsun.com>
+
+ * src/dd.c (interrupt_handler): Likewise.
+ (install_handler): Use SA_NOCLDSTOP, not _POSIX_VERSION,
+ to decide whether to call sigaction; this fixes an old typo.
+
+2000-01-16 Jim Meyering <meyering@lucent.com>
+
+ * lib/Makefile.am: Sync with sh-utils/lib/Makefile.am.
+
+ * configure.in: Remove AM_FUNC_ERROR_AT_LINE, jm_FUNC_GNU_STRFTIME,
+ jm_FUNC_GROUP_MEMBER, jm_FUNC_GETGROUPS, AC_FUNC_VPRINTF, and
+ AC_FUNC_ALLOCA. They're now in m4/.
+
+ Sync with the version from emacs-20.5.
+ * lib/alloca.c
+ (<string.h>): Include if HAVE_STRING_H.
+ (<stdlib.h>): Include if HAVE_STDLIB_H.
+ (alloca): Abort if malloc fails.
+ Reported by Paul Eggert.
+
+2000-01-15 Jim Meyering <meyering@lucent.com>
+
+ * configure.in (AC_REPLACE_FUNCS): Remove these: euidaccess memcpy
+ memcmp memset mkdir rmdir rpmatch stpcpy strndup strstr strtol
+ strtoul strverscmp. Now they're in m4/.
+
+2000-01-12 Jim Meyering <meyering@lucent.com>
+
+ * tests/shred/remove: Make the warning that this shred test may not
+ be run as root more prominent. Suggestion from Volker Borchert.
+
+2000-01-11 Paul Eggert <eggert@twinsun.com>
+
+ Quote multibyte characters correctly.
+
+ * lib/quotearg.c (ISGRAPH): Remove.
+ (ISPRINT): New macro.
+ (<wchar.h>): Include if HAVE_MBRTOWC && HAVE_WCHAR_H.
+ (isprint, mbrtowc, mbsinit, mbstate_t): New macros,
+ defined if ! (HAVE_MBRTOWC && HAVE_WCHAR_H).
+ (quotearg_buffer_restyled): New function, with most of the old
+ quotearg_buffer's contents.
+ Major rewrite to support multibyte characters.
+ (quotearg_buffer): Now just calls quotearg_buffer_restyled.
+
+ * m4/c-bs-a.m4: New file.
+ * m4/prereq.m4 (jm_PREREQ_QUOTEARG): New macro.
+ (jm_PREREQ): Use it.
+
+2000-01-11 Paul Eggert <eggert@twinsun.com>
+
+ * lib/modechange.c (mode_compile): Use uintmax_t, not unsigned
+ long, to parse numeric modes. Check for any unknown bits, not
+ just unknown bits left of the leftmost known bit.
+
+2000-01-11 Paul Eggert <eggert@twinsun.com>
+
+ * lib/getdate.y: Update copyright notice.
+
+2000-01-11 Paul Eggert <eggert@twinsun.com>
+
+ * COPYING: Sync with latest FSF version (fixing a minor Y2k problem).
+
+2000-01-11 Paul Eggert <eggert@twinsun.com>
+
+ * lib/exclude.c, lib/exclude.h: Sync to the slightly more
+ general version of GNU tar.
+
+ * src/du.c (count_entry):
+ Adjust to new calling convention for excluded_filename.
+ (main): Likewise, for add_exclude_file.
+
+2000-01-11 Jim Meyering <meyering@lucent.com>
+
+ * lib/memcpy.c (memcpy): Protoize.
+
+ Prepare to sync lib/ directories of fileutils, sh-utils, and textutils.
+ * lib/Makefile.am: s/fu/fetish/
+ * src/Makefile.am: s/libfu/libfetish/
+
+ * lib/hash.c (hash_initialize): Fix typo in comment.
+ From François Pinard.
+
+2000-01-10 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.0o.
+
+ * lib/Makefile.am (noinst_HEADERS): Add nanosleep.h.
+
+2000-01-09 Jim Meyering <meyering@lucent.com>
+
+ * Version 4.0n.
+
+ * src/ln.c (do_link): Produce the same sort of one-line output for
+ `--backup --verbose' as cp, mv, install. Before this, the backup
+ file name wasn't printed at all.
+
+ This affects cp, install, and mv.
+ * src/copy.c (copy_internal): When making backup files in verbose
+ mode, print the backup file name on the same line as the rest of the
+ information, e.g., `a -> b (backup: b.~13~)' rather than on a separate
+ line by itself. Suggestion from Karl Berry.
+
+2000-01-08 Jim Meyering <meyering@ascend.com>
+
+ * lib/error.c (error): Use __strerror_r's return value only if
+ HAVE_WORKING_STRERROR_R.
+ (error_at_line): Likewise.
+
+ * Makefile.maint (null_AM_MAKEFLAGS): Define.
+ (my-distcheck): Use it to avoid distributing out of date files
+ whose derivation would require a maintainer tool.
+
+2000-01-07 Jim Meyering <meyering@ascend.com>
+
+ * lib/euidaccess.c: Sync with the GNU C library.
+
+ * tests/dir/Makefile.am (TESTS_ENVIRONMENT): Add `pwd`/ prefix
+ to exported PATH value (though not strictly necessary, here).
+ * tests/dd/Makefile.am: Likewise.
+ * tests/dircolors/Makefile.am: Likewise.
+ * tests/rm/Makefile.am: Likewise.
+ * tests/rmdir/Makefile.am: Likewise.
+ * tests/shred/Makefile.am: Likewise.
+ * tests/touch/Makefile.am: Likewise.
+ * tests/shred/Makefile.am: Likewise.
+
+2000-01-06 Jim Meyering <meyering@ascend.com>
+
+ * man/help2man: Import version 1.020.
+
+ * lib/strftime.c: Sync with the GNU C Library.
+
+2000-01-06 Paul Eggert <eggert@set.twinsun.com>
+
+ * tar/lib/getdate.y: Sync tm_diff with the GNU C Library.
+ (TM_YEAR_BASE): Renamed from TM_YEAR_ORIGIN. All uses changed.
+ (tm_diff): Renamed from difftm. All uses changed.
+ Replace body with that taken from GNU C Library 2.1.3pre1.
+ (get_date): Prefer tm_gmtoff to tm_diff if available.
+
+2000-01-04 Paul Eggert <eggert@twinsun.com>
+
+ * savedir.c (savedir): Don't store past the end of an array if
+ name_size is zero and the directory is empty.
+
+ * Makefile.maint (PREV_VERSION): Tweak so it handles e.g., 2.0a -> 2.0.
+ (alpha): Create xdelta diffs.
+
+2000-01-02 Jim Meyering <meyering@ascend.com>
+
+ * Version 4.0m.
+
+ * src/mv.c: New option: --strip-trailing-slashes.
+
+ 1999-11-18 Paul Eggert <eggert@twinsun.com>
+
+ * lib/strftime.c (my_strftime): Some old compilers object to
+ '\a', so don't bother optimizing for it.
+
+2000-01-01 Paul Eggert <eggert@twinsun.com>
+
+ Fix bug: `df PATH' sometimes misbehaves when there is an
+ inaccessible mount point unrelated to PATH.
+ * configure.in (AC_CHECK_FUNCS): Add realpath, resolvepath.
+ * src/df.c (#pragma alloca): Add if _AIX is defined.
+ (path-concat.h): Include.
+ (show_point): If HAVE_REALPATH or HAVE_RESOLVEPATH is defined,
+ find the real absolute path for PATH, and use that to find the
+ mount point.
+
+ (show_point): Prefer non-dummy entries in shortcuts, too.
+ Disable bogus mount dirs instead of restatting them each time.
+
+1999-12-30 Jim Meyering <meyering@ascend.com>
+ 1999-12-17 Kalle Olavi Niemitalo <tosi@stekt.oulu.fi>
+
+ * src/rmdir.c (remove_parents, main): Don't pass errno to error
+ when printing "removing directory" message. Failure of rmdir is
+ handled elsewhere.
+
+1999-12-23 Jim Meyering <meyering@ascend.com>
+
+ * configure.in: Remove clock_gettime tests.
+ Now they're in m4/jm-macros.m4.
+
+ * src/ln.c (usage): Correct typos.
+ List new --target-directory=... usage.
+ Reported by Göran Uddeborg
+
+ * src/mv.c (usage): List new --target-directory=... usage.
+
+1999-12-22 Jim Meyering <meyering@ascend.com>
+
+ * lib/getdate.y (get_date): Fix typo in time_t overflow test.
+ From Michael Stone.
+
+1999-12-21 Andreas Schwab <schwab@suse.de>
+
+ * tests/shred/remove: Use $file, not $tmp/file. Exit 77 if run as
+ root.
+
+1999-12-20 Paul Eggert <eggert@twinsun.com>
+
+ * src/df.c (ceil_percent): Remove.
+ (show_dev): Avoid overflow problems when calculating percent.
+ Do not display negative percents.
+
+1999-12-19 Jim Meyering <meyering@ascend.com>
+
+ * Version 4.0l.
+
+ * doc/fileutils.texi: Clarify and combine descriptions of -c and of
+ --time=ctime.
+ Likewise for -u/--time=atime.
+
+ * src/ls.c [! LSTAT_FOLLOWS_SLASHED_SYMLINK]: Use lstat wrapper.
+ [Notice the new configure-time test in m4/lstat-slash.m4. ]
+ (main): Back out change from 1999-02-19 that made ls remove
+ trailing slashes from command line arguments to accommodate early
+ versions of Linux. Now, `ls symlink-to-dir/' acts like
+ `ls symlink-to-dir/.' thus following the symbolic link, as POSIX says
+ it should. Suggestion from Bruno Haible and Andreas Schwab.
+
+ * lib/xstat.in (slash_aware_lstat): New function.
+ (rpl_@xstat@): Use it.
+ * lib/Makefile.am (lstat.c): Adapt rule to handle new parts of xstat.in.
+ (lstat.c): Likewise.
+
+ Make sure ls does the right thing with symlinks and trailing slashes.
+ * tests/ls/Makefile.am (TESTS): Add symlink-slash.
+ * tests/ls/symlink-slash: New test, for above-fixed bug.
+
+1999-12-18 Jim Meyering <meyering@ascend.com>
+
+ * src/shred.c (wipename): When repeatedly renaming a file, making the
+ name shorter and shorter, skip to the next shorter length length if a
+ rename fails (e.g. due to permission denied). Otherwise, this loop
+ would iterate for so long that shred would appear to be stuck in an
+ infinite loop for any but the shortest file names.
+ Reported by Joe Orton.
+
+ * configure.in (AC_OUTPUT): Add tests/shred/Makefile.
+ * tests/Makefile.am (SUBDIRS): Add shred.
+ * tests/shred: New directory
+ * tests/shred/remove: New file. Tests for the above-fixed bug.
+
+1999-12-13 Jim Meyering <meyering@ascend.com>
+
+ * lib/makepath.c (make_path): Consistently use `error' to output
+ the verbose, `created directory ...' messages.
+ Reported by Bernhard Rosenkraenzer.
+
+1999-12-12 Jim Meyering <meyering@ascend.com>
+
+ Move 120+ lines of stat.h-related macros from system.h (not shared)
+ to sys2.h, which is shared between fileutils, sh-utils, textutils.
+ * src/system.h: Move them from here...
+ * src/sys2.h: ... to here.
+
+ * src/system.h (S_IRUSR, S_IRGRP, S_IWGRP, S_IROTH, S_IWOTH): Define
+ if not defined. This was necessary on a NeXT Turbostation running
+ Mach 3.3. Reported by Nelson H. F. Beebe.
+
+ * src/ls.c (decode_switches): If -c or -u is specified and not -l
+ (or any other option that implies -l), and no sort-type was specified,
+ then sort by the ctime (-c) or atime (-u). Part of this change reverts
+ the 1998-01-10 delta.
+ (usage): Update to reflect this change.
+ Reported by Paul Slootman via Michael Stone.
+
+1999-12-09 Jim Meyering <meyering@ascend.com>
+
+ * src/df.c (BLOCK_SIZE_OPTION, SYNC_OPTION, NO_SYNC_OPTION): Define
+ these and use them instead of `CHAR_MAX + n'.
+ * src/du.c (BLOCK_SIZE_OPTION, EXCLUDE_OPTION, MAX_DEPTH_OPTION):
+ Likewise.
+ * src/touch.c (TIME_OPTION): Likewise.
+ * src/rmdir.c (IGNORE_FAIL_ON_NON_EMPTY_OPTION): Likewise.
+
+ * tests/ls/time-1: Test more of the framework (touch's -a and -m
+ options) before running the actual ls test.
+
+1999-12-07 Jim Meyering <meyering@ascend.com>
+
+ * tests/cp/cp-mv-backup: Use 1>&2 rather than `1<&-'.
+ Suggestion from Volker Borchert.
+
+1999-12-05 Jim Meyering <meyering@ascend.com>
+
+ * Makefile.maint: Remove ftp.enst.fr.
+
+1999-12-04 Jim Meyering <meyering@ascend.com>
+
+ * Version 4.0k.
+
+ * tests/mv/into-self-2: Adapt to reflect this change in behavior.
+ Make sure the VERSION_CONTROL envvar is not set.
+ Run diff if comparison fails.
+
+ * src/copy.c (copy_internal): In move mode, if the rename attempt
+ fails, then unlink any existing destination file. This makes a
+ cross-device `mv' more consistent with the intra-device behavior.
+ This change is required by POSIX to make a cross-device move act with
+ semantics similar to those of the rename syscall. For example now
+ `mv' can move a file onto a symlink to itself when that symlink
+ is on a separate partition. With fileutils-4.0j, it would fail with
+ a diagnostic saying they were the same file.
+ Reported by Bruno Haible.
+
+ * tests/mv/to-symlink: New file. Adds test for the above.
+ * tests/mv/Makefile.am (TESTS): Add to-symlink.
+
+ * tests/cp/cp-mv-backup (trap): Be careful to close $actual before
+ removing the containing directory. Otherwise, on some systems rmdir
+ fails to remove the containing directory.
+
+ * tests/ls/time-1: List --full-time dates upon failure.
+
+1999-12-02 Andreas Schwab <schwab@suse.de>
+
+ * src/ls.c (check_symlink_color): New variable.
+ (main): Set it if we need to check for dangling symlinks when
+ displaying colors.
+ (gobble_file): Check check_symlink_color instead of print_with_color.
+
+1999-11-30 Paul Eggert <eggert@twinsun.com>
+
+ * src/ls.c (usage): Shorten help for --show-control-chars.
+
+1999-11-30 Jim Meyering <meyering@ascend.com>
+
+ Give the right diagnostic when failing to create a file in an
+ unwritable directory.
+ * src/touch.c (touch): Record errno upon failed errno and use that
+ saved value if a subsequent fstat, stat or utime call fails.
+ Reported by Wichert Akkerman via Michael Stone.
+
+1999-11-27 Jim Meyering <meyering@ascend.com>
+
+ Clean up test scripts.
+ * tests/mv/setup: Don't set/use DF or MKDIR. Use df and mkdir instead.
+ * tests/mv/mv-special-1: Likewise for these: LS MV MKDIR MKNOD RM TOUCH
+ * tests/mv/backup-is-src: Likewise for RM and MV.
+ * tests/mv/hard-link-1: Likewise.
+ * tests/mv/into-self: Likewise.
+ * tests/mv/into-self-3: Likewise.
+
+ Add test for 1999-05-23 change to src/copy.c (copy_internal).
+ * tests/mv/partition-perm: New file.
+ * tests/mv/Makefile.am (TESTS): Add partition-perm.
+
+ * Version 4.0j.
+
+1999-11-22 Paul Eggert <eggert@twinsun.com>
+
+ * src/df.c (df_readable): Now returns char const *, not char *.
+ New arg NEGATIVE.
+ (ceil_percent): Now returns double, not int.
+ Be more careful about adding 1 to a wild value.
+ (show_dev): Don't filter out wild sizes from the underlying operating
+ system; instead, show them to the user as faithfully as possible.
+
+1999-11-23 Jim Meyering <meyering@ascend.com>
+
+ * doc/getdate.texi (Calendar date item): Correction regarding 0..68/
+ 69-99 split for 1900 vs 2000. From Peter Moulder.
+
+1999-11-22 Jim Meyering <meyering@ascend.com>
+
+ * lib/Makefile.am (DISTCLEANFILES): Add lstat.c and stat.c.
+
+1999-11-20 Jim Meyering <meyering@ascend.com>
+
+ * src/rmdir.c (errno_rmdir_non_empty): New function to encapsulate
+ errno comparison.
+ (remove_parents): Use it.
+ (main): Use it.
+
+ * tests/cp/cp-mv-backup: Run `diff -c' if the test fails.
+
+ * tests/ls/time-1: Use `ls' and `touch', not $LS and $TOUCH.
+ * tests/ls/Makefile.am (TESTS_ENVIRONMENT): Specify PATH, etc.
+
+ * src/chgrp.c: Declare lstat; needed on e.g. SunOS4.
+ Reported by Tom Tromey.
+
+1999-11-19 Jim Meyering <meyering@ascend.com>
+
+ * lib/strstr.c (strstr): Include config.h.
+ Add a `;' between shloop label and `}'.
+ From Akim Demaille.
+
+1999-11-17 Jim Meyering <meyering@ascend.com>
+
+ * src/mkdir.c (S_IRWXUGO): Define if necessary.
+ (main): Use chmod to set the permissions if bits other than those
+ of S_IRWXUGO were requested. Reported by Sami Farin.
+
+1999-11-14 Paul Eggert <eggert@twinsun.com>
+
+ * touch.c (touch): Simplify code a tad, using fd == -1 instead
+ of separate valid_fd variable.
+
+1999-11-13 Jim Meyering <meyering@ascend.com>
+
+ * src/touch.c (touch): Don't fail just because we couldn't open
+ an existing file. This makes it so that touching a read-only
+ file now works. Also clean up and simplify.
+ Based on a patch from Chip Salzenberg.
+ * tests/touch/no-rights: New test for this.
+ * tests/touch/Makefile.am (TESTS): Add no-rights.
+
+1999-11-12 Jim Meyering <meyering@ascend.com>
+
+ * src/remove.c (print_nth_dir): Write one fewer byte so we don't print
+ a trailing slash.
+ (rm): Fix bugs in (and test, this time) the very rarely used code
+ to warn about directory cycles.
+ Reported by michael@roka.net.
+
+1999-11-11 Jim Meyering <meyering@ascend.com>
+
+ * src/copy.c (copy_internal): Treat src and dest as the `same' in
+ `mv src symlink-to-src' when src and dest are on different partitions.
+ Otherwise, that `mv' command would silently remove `src'.
+ Reported by Michael Stone.
+ * tests/mv/into-self-2: Add a test for this fix.
+
+ * lib/makepath.c (make_path): Fix long-latent bug: s/&&/||/ (others
+ just like that also dated back to 1992 were fixed in 1998-01-02).
+ Richard Braakman reported that using `install -d -g foo 1/2`
+ only sets the group on the intermediate directory, not the final
+ component. From Michael Stone.
+
+1999-11-07 Paul Eggert <eggert@set.twinsun.com>
+
+ * human.c (default_block_size): New function.
+ (humblock): Use it if no block size is specified.
+ (human_block_size): If the specified block size is zero, report an
+ error if report_errors is nonzero; otherwise use the default.
+
+1999-11-07 Jim Meyering <meyering@ascend.com>
+
+ * src/dircolors.hin: Add several more TERM types.
+ Add .bz2 suffix.
+ Add .png for real this time.
+ Change the image types colors to be visible in a black-on-white xterm.
+ From Michael Stone.
+
+ * src/chgrp.c (xstat): New global.
+ (main): Define it.
+ (change_file_group): Use it. Before this change, when running chgrp
+ on a symlink without --dereference (-h) and when the requested group
+ is the same as the group for the *symlink*, chgrp would do nothing.
+ Now it changes the group of the file referenced through the symlink.
+ Reported by Martin Mitchell.
+
+ * src/chmod.c: Use REFERENCE_FILE_OPTION instead of bare `CHAR_MAX + 1'.
+ * src/chown.c: Define and use REFERENCE_FILE_OPTION and
+ DEREFERENCE_OPTION in place of bare `CHAR_MAX + N'.
+ * src/chgrp.c: Likewise.
+
+ * tests/ln/misc: Add hard-link-to-symlink test.
+ Move framework_failure test to the end.
+ Fix a typo: s/||/&&/.
+
+ * src/ln.c (do_link): Warn that making a hard link to a symbolic link
+ is not portable.
+
+ * tests/ln/misc: Use --b=simple, not the now-deprecated `-V simple'.
+ * tests/ln/backup-1: Likewise.
+
+ * configure.in (AC_OUTPUT): Add tests/rmdir/Makefile.
+ * tests/Makefile.am (SUBDIRS): Add rmdir.
+ * tests/rmdir: New directory
+ * tests/rmdir/ignore: New file.
+
+ * src/rmdir.c (remove_parents): Use the correct test (just as in
+ main) in handling --ignore-fail-on-non-empty. From Michael Stone.
+ (usage): Improve description of --parents. Based on suggestion from
+ Torsten Landschoff.
+
+1999-11-06 Jim Meyering <meyering@ascend.com>
+
+ Allow hard links to symlinks on systems that support it.
+ * src/ln.c (STAT_LIKE_LINK): Define.
+ (do_link): Use STAT_LIKE_LINK, rather than bare `stat', and perform
+ the extra lstat only on systems where LINK_FOLLOWS_SYMLINKS.
+
+ * src/ls.c (long_options): Correct typo (s/'F'/'p'/) so that `-p' is
+ accepted as the short form of --file-type, per the documentation.
+ From James Sneeringer.
+
+ * src/ln.c (do_link): Fix typo (in which the function name `symlink'
+ was tested instead of the variable `symbolic_link') that could make
+ ln perform an unneeded `stat' call.
+
+1999-11-05 Jim Meyering <meyering@ascend.com>
+
+ * src/system.h: Use HAVE_STRUCT_STAT_ST_BLOCKS, not deprecated
+ HAVE_ST_BLOCKS.
+ * src/copy.c: Likewise.
+ * lib/fileblocks.c: Likewise.
+
+ * configure.in: Move some type/header/member tests into
+ m4/jm-macros.m4 (jm_CHECK_ALL_TYPES) so they are shared by all of
+ fileutils, textutils, and sh-utils.
+
+1999-11-02 Jim Meyering <meyering@ascend.com>
+
+ * man/help2man: Import version 1.018.
+ * man/Makefile.maint ($(man_MANS)): Remove use of --name=... option.
+ * man/*.x: Include one-line summary in [NAME] section.
+ * man/Makefile.summ: Remove the one-line summaries.
+ Suggestion for clean-up from Akim Demaille.
+
+ * configure.in (ALL_LINGUAS): Add Galician (gl).
+
+1999-11-01 Jim Meyering <meyering@ascend.com>
+
+ * src/cp.c (usage): Warn about mixing use of `-r' with FIFOs and
+ other special files like /dev/zero.
+
+ * lib/Makefile.am (MAINTAINERCLEANFILES): Set to $(BUILT_SOURCES).
+
+1999-10-31 Jim Meyering <meyering@ascend.com>
+
+ * Makefile.maint (my-distcheck): Remove $(DEPDIR) to work around
+ automake bug.
+
+ * doc/fileutils.texi: Document new --backup[=METHOD] option for
+ cp, mv, ln, and install.
+
+ * src/ln.c: Convert --backup to take an optional argument.
+ Deprecate --version-control (-V) in comments.
+ (usage): Remove mention of --version-control.
+ (main): Make -V warn then fall through into --backup case.
+ [--backup case]: Handle optional arg.
+ * src/install.c: Likewise.
+
+1999-10-24 Jim Meyering <meyering@ascend.com>
+
+ * src/cp.c (do_copy): Constify `dest', and cast-away the new
+ const in assignment to new_dest.
+
+1999-10-23 Jim Meyering <meyering@ascend.com>
+
+ * tests/touch/Makefile.am (TESTS): Add dangling-symlink.
+ * tests/touch/dangling-symlink: New file.
+
+1999-10-23 Paul Eggert <eggert@twinsun.com>
+
+ * src/touch.c (full_write): Remove unused decl.
+ (open_maybe_create): Remove.
+ (touch): Don't record whether the file was created; this isn't
+ possible to do reliably and portably without race conditions.
+ If the file was created and if amtime_now is nonzero, this
+ change means we'll have to do another utime system call, but
+ that's no more harmful than the previous version of this code.
+ Reported by Gabor Z. Papp.
+
+1999-10-21 Jim Meyering <meyering@ascend.com>
+
+ * configure.in (ALL_LINGUAS): Add Japanese (pa).
+
+1999-10-17 Jim Meyering <meyering@ascend.com>
+
+ * tests/mv/backup-is-src: Remove use of mv's now-deprecated
+ -V option. Use --b=simple instead of -b -V simple.
+
+ * src/mv.c: Convert --backup to take an optional argument.
+ Deprecate --version-control (-V) in comments.
+ (usage): Remove mention of --version-control.
+ (main): Make -V warn then fall through into --backup case.
+ [--backup case]: Handle optional arg.
+
+ Accept new option: --target-directory=DIR
+ * src/cp.c (TARGET_DIRECTORY_OPTION): Define.
+ (SPARSE_OPTION): Define.
+ (usage): Describe it.
+ (do_copy): Change meanings/names of first two parameters: use `n_files'
+ in place of `argc - optind', and `file' instead of `argv + optind'.
+ Add parameter, target_directory.
+ (main): Pass new arg, target_directory.
+
+1999-10-16 Jim Meyering <meyering@ascend.com>
+
+ * tests/cp/backup-is-src: Remove use of cp's now-deprecated -V option.
+ Use --b=simple instead of -b -V simple.
+ * tests/cp/backup-1: Replace use of cp's now-deprecated
+ --version-control option with use of --backup=simple.
+
+ * src/cp.c: Convert --backup to take an optional argument.
+ Deprecate --version-control (-V) in comments.
+ (usage): Remove mention of --version-control.
+ (main): Make -V warn then fall through into --backup case.
+ [--backup case]: Handle optional arg.
+
+ * tests/cp/Makefile.am (TESTS): Add cp-mv-backup.
+ * tests/cp/cp-mv-backup: New file.
+
+1999-10-11 Jim Meyering <meyering@ascend.com>
+
+ * lib/getopt.c: Merge changes from latest glibc.
+ * lib/getopt.h: Likewise.
+ * lib/getopt1.c: Likewise.
+
+1999-10-09 Jim Meyering <meyering@ascend.com>
+
+ Accept new option: --target-directory=DIR
+ * src/ln.c (TARGET_DIRECTORY_OPTION): Define.
+ (usage): Describe it.
+ (main): Implement it.
+ Make code clearer: use new variable `n_files' in place of
+ `argc - optind'. Use `file' instead of `argv + optind'.
+
+1999-10-04 Jim Meyering <meyering@ascend.com>
+
+ * depcomp: New file, for automake's new dependency support.
+ * missing: New version, from automake's user-dep-gen-branch.
+
+ * lib/xalloc.h (__attribute__): Apply 1999-10-03 change here, too.
+ * src/sys2.h (__attribute__): Likewise.
+ Wrap with #ifndef __attribute__.
+
+1999-10-03 Paul Eggert <eggert@twinsun.com>
+
+ * getdate.y (__attribute__): Define to empty if GCC claims to
+ be before 2.8; this is needed for OPENStep 4.2 cc. Also,
+ define to empty if strict ANSI.
+
+1999-10-03 Jim Meyering <meyering@ascend.com>
+
+ Accept new option: --target-directory=DIR
+ * src/mv.c (TARGET_DIRECTORY_OPTION): Define.
+ (usage): Describe it.
+ (main): Implement it.
+ Remove unused variable, stdin_tty.
+ Make code clearer: use new variable `n_files' in place of
+ `argc - optind'. Use `file' instead of `argv + optind'.
+
+1999-09-28 Jim Meyering <meyering@ascend.com>
+
+ * src/system.h: Do s/#ifdef HAVE_/#if HAVE_/ -- solely for aesthetics.
+ Do the same for other config.h macros like CLOSEDIR_VOID and MAJOR_*.
+ * src/sys2.h: Likewise.
+
+ * lib/xalloc.h (__attribute__): Protect against redefinition.
+ From Akim Demaille.
+
+1999-09-26 Jim Meyering <meyering@ascend.com>
+
+ * lib/xmalloc.c (xalloc_die): Rename from xalloc_fail and
+ update callers.
+ Use explicit exit to help avoid warnings.
+ From Akim Demaille.
+
+ * lib/path-concat.c (DIRECTORY_SEPARATOR): Define.
+ (ISSLASH): Define.
+ (path_concat): Allow parameter DIR to be NULL.
+ (xpath_concat): New function.
+ From Akim Demaille.
+
+ * lib/xalloc.h (__attribute__): Define.
+ (ATTRIBUTE_NORETURN): Define.
+ (xalloc_die): Declare.
+ (NEW): Define as yet unused macro.
+ (XFREE): Likewise
+ (CCLONE): Likewise.
+ (CLONE): Likewise.
+ From Akim Demaille.
+
+ * lib/basename.c (base_name): Add prototype. From Akim Demaille.
+
+1999-09-19 Jim Meyering <meyering@ascend.com>
+
+ * lib/lchown.c [STAT_MACROS_BROKEN] (S_ISLNK): Undefine.
+ (S_ISLNK): Define if necessary.
+ This is necessary on a NEC SX-4 with SUPER-UX 9.1.
+ Based on a patch from Holger Berger.
+
+ * src/dd.c (siginfo_handler): Mark parameter with ATTRIBUTE_UNUSED.
+ Change many counter and index variables to be of unsigned type.
+ (dd_copy): Add new unsigned variable, n_bytes_read, in place of
+ many uses of `nread'.
+
+ * src/sys2.h (__attribute__): Define.
+ (ATTRIBUTE_NORETURN): Remove #else clause.
+ (ATTRIBUTE_UNUSED): Define.
+
+1999-09-17 Jim Meyering <meyering@ascend.com>
+
+ * configure.in (AC_REPLACE_FUNCS): Remove strdup, now that this
+ is done in m4/jm-macros.m4.
+
+1999-09-09 Jim Meyering <meyering@ascend.com>
+
+ * src/touch.c (usage): Remove misleading sentence in --help output.
+ From Karl Heuer.
+
+ * src/Makefile.am (EXTRAdir): Remove unused variable.
+
+1999-09-03 Paul Eggert <eggert@twinsun.com>
+
+ * lib/lchown.h (ENOSYS): Don't use ENOMSG; it's not in NeXTStep3.3.
+ Use EINVAL instead.
+
+1999-09-01 Jim Meyering <meyering@ascend.com>
+
+ * src/cp.c: Remove declaration of xstrdup.
+ * src/df.c: Likewise.
+ * src/ls.c: Likewise.
+
+1999-09-01 Akim Demaille <akim@epita.fr>
+
+ * lib/xmalloc.c (xalloc_fail_func): Use `PARAMS'.
+ * lib/xalloc.h (xalloc_fail_func): Likewise.
+ (xstrdup): Add protoype.
+
+ * lib/version-etc.c (version_etc_copyright): Default copyright string.
+ (version_etc): Use it.
+ * lib/version-etc.h: Declare it.
+
+1999-08-29 Jim Meyering <meyering@ascend.com>
+
+ * configure.in (AC_YACC): Remove use, now that we require bison.
+
+ * src/dircolors.hin: Add .rpm, .png, and .fli.
+ From Andres Soolo.
+
+1999-08-28 Paul Eggert <eggert@twinsun.com>
+
+ * getdate.y: Add copyright notice.
+
+ (number): Handle `Nov 11 1996' example; see Risks Digest 20.55
+ http://catless.ncl.ac.uk/Risks/20.55.html#subj18
+ (1999-08-27)
+
+ (<stdio.h>): Include only if testing.
+ (ISUPPER): Remove.
+ (ISLOWER, PC): New macros.
+ (<string.h>): Include if HAVE_STRING_H, not USG.
+ (bcopy): Remove.
+ (yymaxdepth, ..., yycheck): Don't bother to redefine, since we assume
+ bison.
+ (EPOCH_YEAR): Renamed from EPOCH.
+ (table): Renamed from TABLE.
+ (meridian): Now an anonymous enum.
+ (struct parser_control): New type.
+ (YYLEX_PARAM, YYPARSE_PARAM, YYSTYPE): New macros.
+ (yyInput, ..., yyRelYear): Migrated into struct parser_control.
+ (%pure_parser): Added, so that the parser is pure.
+ (%union): Removed; the type is now just plain int.
+ All %type directives removed.
+ (tLOCAL_ZONE): New %token.
+ (month_day_table): Renamed from MonthDayTable.
+ (gmtime, localtime, mktime, time): Declare only if not defined.
+ (meridian_table): New table.
+ (dst_table): New table.
+ (units_table): renamed from UnitsTable.
+ (relative_time_table): Renamed from OtherTable.
+ (time_zone_table): Renamed from TimezoneTable. Modernized data.
+ (military_table): Renamed from MilitaryTable.
+ (to_hour): Renamed from ToHour.
+ (to_year): Renamed from ToYear.
+ (lookup_zone): New function.
+ (LookupWord): Renamed from lookup_word.
+ Use lookup_zone for time zones.
+ (yylex): Now reentrant. All callers changed.
+ (get_date): Add support for local time zone abbreviations.
+ Make it reentrant.
+
+1999-08-22 Jim Meyering <meyering@ascend.com>
+
+ * src/sys2.h (IF_LINT): Define new macro.
+ * src/df.c (main): Rename locals i and j.
+ Use IF_LINT macro instead of #ifdef lint...
+
+ * src/dd.c (parse_integer): Add `const' to char* parameter and
+ add a separate `suffix' variable.
+
+1999-08-20 Jim Meyering <meyering@ascend.com>
+
+ * src/chown.c (usage): Tweak --help output to make it more consistent
+ with that of chgrp.
+ * src/chgrp.c (usage): Tweak --help output to make it more consistent
+ with that of chown.
+
+1999-08-17 Jim Meyering <meyering@ascend.com>
+
+ * configure.in: Remove check for rename and the code that would
+ enable building of the `mvdir' program.
+ * src/Makefile.am (libexec_PROGRAMS): Remove reference to @MVDIR@.
+ (EXTRA_PROGRAMS): Remove obsolete mvdir.
+ * lib/rename.c: Remove obsolete file. (it had a bug, too)
+ * src/mvdir.c: Remove obsolete file.
+ * po/POTFILES.in: Remove mvdir.c
+
+ * doc/fileutils.texi (chown, chgrp invocation): Make these sections
+ consistent with each other.
+
+1999-08-16 Jim Meyering <meyering@ascend.com>
+
+ * src/chown.c (groupname): Declare to be `const'.
+ (change_dir_owner): Declare statp parameter to be `const'.
+ (usage): Make the output be more consistent with that from chgrp.
+
+ This change is nearly identical to the chown.c change of 1998-05-24
+ * src/chgrp.c: Accept new option, --dereference.
+ --no-dereference is now the default. Include lchown.h.
+ (enum Change_status) [CH_NOT_APPLIED]: New member.
+ (change_symlinks): Enable this by default, now.
+ (describe_change): Handle new case.
+ (change_file_group): Add new parameter: cmdline_arg. Update callers.
+ Reorganize to reflect changed semantics.
+ (LCHOWN): Remove definitions.
+ From Bruno Haible.
+
+1999-08-10 Jim Meyering <meyering@ascend.com>
+
+ * po/POTFILES.in: Add lib/quotearg.c.
+
+1999-08-09 Paul Eggert <eggert@twinsun.com>
+
+ * NEWS, doc/fileutils.texi, src/ls.c (usage):
+ Add ls --quoting-style=locale.
+
+ * lib/argmatch.c (ARGMATCH_QUOTING_STYLE):
+ Change from escape_quoting_style to locale_quoting_style.
+ (argmatch_invalid): Use new quotearg_style primitive for simplicity.
+ Also, use ARGMATCH_QUOTING_STYLE to quote, instead of quoting ourselves.
+
+ * lib/quotearg.h (locale_quoting_style): New enum value.
+ (quotearg_n_style, quotearg_style): New decls.
+
+ * lib/quotearg.c: Include <libintl.h> if ENABLE_NLS.
+ (_): New macro.
+ (quoting_style_args, quoting_style_v, quotearg_buffer): Add support
+ for locale_quoting_style, using _("`") and _("'") for open and close
+ quote symbols.
+ Do not quote spaces in escape_quoting_style.
+ (quotearg_n_style, quotearg_style): New functions.
+
+1999-08-08 Jim Meyering <meyering@ascend.com>
+
+ * src/touch.c (usage): Clarify description of --time=WORD.
+ From Karl Berry.
+
+ * lib/savedir.c (savedir): Change type of name_size parameter to off_t.
+ * lib/savedir.h (savedir): Update prototype.
+ * src/chmod.c (change_dir_mode): Remove cast of savedir arg.
+ * src/chown.c (change_dir_owner): Likewise.
+ * src/chgrp.c (change_dir_group): Likewise.
+ * src/copy.c (copy_dir): Likewise.
+ * src/du.c (count_entry): Likewise.
+ Suggestion from Bob Proulx.
+
+1999-08-07 Jim Meyering <meyering@ascend.com>
+
+ * po/POTFILES.in: Add lots of lib/*.c files.
+ Remove src/cp-hash.c, since it doesn't use _().
+
+1999-08-04 Jim Meyering <meyering@ascend.com>
+
+ * configure.in: Remove getline-testing code. Now it's in m4/.
+
+1999-08-01 Paul Eggert <eggert@twinsun.com>
+
+ * configure.in (AC_SYS_LARGEFILE): Renamed from AC_LFS.
+
+1999-07-30 Jim Meyering <meyering@ascend.com>
+
+ * src/ls.c (usage): Explain about default wrt --hide-control-chars and
+ --show-control-chars. Reported by Germano Leichsenring.
+
+1999-07-28 Jim Meyering <meyering@ascend.com>
+
+ * configure.in (ALL_LINGUAS): Add Brazilian Portuguese (pt_BR).
+
+1999-07-24 Jim Meyering <meyering@ascend.com>
+
+ * src/dd.c (PTR_ALIGN, ROUND_UP_OFFSET): New macros.
+ (dd_copy): Use those to page-align both the input and output buffers.
+
+1999-06-01 Volker Borchert <bt@teknon.de>
+
+ * tests/Makefile.am: Make envvar-check depend on check-recursive rather
+ than on `check' so that its tests are performed before any real tests.
+
+1999-07-15 Jim Meyering <meyering@ascend.com>
+
+ * src/dd.c: Include getpagesize.h.
+ (dd_copy): Page-align the input buffer.
+ Based on a patch from Scott Lurndal.
+
+ * getpagesize.h: New file.
+ * lib/Makefile.am (noinst_HEADERS): Add getpagesize.h.
+
+ * lib/fsusage.c (get_fs_usage) [STATFS_TRUNCATES_BLOCK_COUNTS]:
+ Work around SunOS botch also when block size is different from 1k.
+ From JĂĽrgen Fluk.
+
+1999-07-10 Jim Meyering <meyering@ascend.com>
+
+ * man/help2man: Import version 1.012.
+
+1999-07-04 Jim Meyering <meyering@ascend.com>
+
+ * lib/xstrtol.c [!defined strtoumax]: Declare strtoumax.
+
+1999-07-04 Paul Eggert <eggert@twinsun.com>
+
+ * lib/xstrtol.c (__strtol): Remove decl; it doesn't work if __strtol
+ expands to a macro, which occurs in HP-UX 10.20 with strtoumax.
+ (strtol, strtoul): New decls (for pre-ANSI hosts), to replace
+ the above decl.
+
+1999-06-27 Paul Eggert <eggert@twinsun.com>
+
+ Fix some incompatibilities between `df -P' and POSIX.2.
+
+ * lib/human.h (enum human_inexact_style): New enum.
+ (human_readable_inexact): New decl.
+
+ * lib/human.c (human_readable): New function.
+ (human_readable_inexact): Renamed from human_readable, with new arg
+ INEXACT_STYLE. Add support for ceiling and floor.
+
+ * src/df.c (print_header): Conform to POSIX if posix_format).
+ (df_readable): Take ceiling if posix_format.
+ (ceil_percent): New function.
+ (show_dev): Take ceiling of percent if posix_format.
+ Align with POSIX-conforming header if posix_format.
+
+ * doc/fileutils.texi: Document these changes.
+
+1999-05-27 Volker Borchert <bt@teknon.de>
+
+ * tests/Makefile.am: Qualify .env-warn with $(srcdir)/ prefix.
+
+1999-05-23 Jim Meyering <meyering@ascend.com>
+
+ * src/copy.c (copy_internal): Don't apply the umask in move_mode.
+ Otherwise, `mv' would not preserve the permissions when copying
+ between partitions. Reported by David Godfrey
+
+ * Version 4.0i.
+
+ * tests/cp/same-file: Correct erroneous expected output from
+ the `cp -f foo foo' tests.
+ * po/POTFILES.in: Add same.c.
+ * lib/same.h: New file.
+ * lib/same.c: New file (function extracted from ln.c).
+ * lib/Makefile.am (libfu_a_SOURCES): Add same.c.
+ (noinst_HEADERS): Add same.h.
+ * src/copy.c: Include same.h.
+ * src/ln.c (same_name): Remove function.
+ <same.h>: Include this instead.
+ <dirname.h>: No longer include this.
+ * tests/mv/force: Be sure we still allow `mv -f FILE LINK-TO-FILE'.
+
+ * src/copy.c (copy_internal): Make it so `cp/mv -f FILE FILE' does not
+ remove FILE. Suggestion from Chris Yeo.
+ * tests/mv/force: New test, for the above fix.
+ * tests/mv/Makefile.am (TESTS): Add force.
+ (TESTS_ENVIRONMENT): Change PATH to be absolute.
+
+ * tests/mv/force (mv): New test.
+
+1999-05-17 Paul Eggert <eggert@twinsun.com>
+
+ * lib/getdate.y (get_date): Let mktime deduce tm_isdst if we
+ have an absolute timestamp, or if the relative timestamp
+ mentions days, months, or years. Reported by Volker Borchert.
+
+ * lib/human.c (human_readable): Allow from_block_size to be zero.
+
+1999-05-14 Jim Meyering <meyering@ascend.com>
+
+ * tests/Makefile.am (envvar-check): Renamed from check-local.
+ (check): Depend on envvar-check so the envvar check is performed
+ before all other tests. Reported by Volker Borchert.
+ * tests/.env-warn: Use `%%' place-holder that Makefile.am rule expects,
+ so CDPATH is mentioned in the message. Reported by Volker Borchert.
+
+ * src/df.c (main): When asking for info on an explicit file name,
+ just warn rather than failing if the table of mounted filesystems
+ cannot be read. Based on a patch from Mark Kettenis.
+
+ * lib/version-etc.c (version_etc): Put version info and author names
+ on the first two lines respectively rather than putting the three
+ lines of copyright info between them.
+
+ * src/touch.c (open_maybe_create): Handle Solaris' failure mode when
+ FILE is a directory. Reported by Vin Shelton.
+
+ * lib/human.c: Include <string.h> or <strings.h> for strlen prototype.
+ * lib/getline.h [__GLIBC__ >= 2]: #if-out prototypes.
+ * src/remove.c (pop_dir): Cast length to `int' to avoid a warning on
+ 64-bit systems. From Ulrich Drepper.
+
+1999-05-12 Jim Meyering <meyering@ascend.com>
+
+ * src/shred.c (main): Put `u' for -u in getopt_long's string argument.
+ Remove the `R'.
+
+1999-05-07 Jim Meyering <meyering@ascend.com>
+
+ * Version 4.0h.
+
+ * tests/touch/dir-1: New test.
+ * tests/touch/Makefile.am (TESTS_ENVIRONMENT): Remove individual
+ upper-case program names. Add a definition of PATH.
+ (TESTS): Add dir-1.
+
+ * src/mkdir.c (main): Use better wording in diagnostic: `cannot
+ create directory' rather than `cannot make directory'. The former
+ also matches the one in makepath.c.
+
+ * src/dd.c (apply_translations): Use TOUPPER and TOLOWER,
+ not toupper and tolower.
+
+1999-05-05 Jim Meyering <meyering@ascend.com>
+
+ * lib/makepath.c (make_dir): When reporting a mkdir failure and the
+ target cannot be `stat'ed, use the errno from the failed mkdir call,
+ not the one from the stat call. Before this change, running
+ `mkdir -p /no-dir/no-dir' as an unprivileged user would wrongly
+ elicit `No such file or directory' instead of `Permission denied'.
+
+ * lib/strtol.c (TYPE_SIGNED, TYPE_MAXIMUM, TYPE_MINIMUM): Define.
+ (ULONG_LONG_MAX, LONG_LONG_MAX, LONG_LONG_MIN): Define if not defined.
+ Based on a patch from Kaveh Ghazi.
+
+ * src/ls.c (USE_ACL): Define this only #if
+ (HAVE_SYS_ACL_H && HAVE_ACL && defined GETACLCNT).
+ Use `USE_ACL' in place of `HAVE_ACL' everywhere else. From Kaveh Ghazi.
+
+1999-05-04 Jim Meyering <meyering@ascend.com>
+
+ * lib/makepath.c: Include makepath.h libintl.h, not after it.
+ Otherwise, we'd get the wrong definition of PARAMS from libintl.h.
+ (The method of defining PARAMS in libintl.h doesn't check PROTOTYPES,
+ which is necessary on Irix4 since cc doesn't define __STDC__.)
+ From Kaveh Ghazi.
+
+1999-04-30 Jim Meyering <meyering@ascend.com>
+
+ * Makefile.maint: Define several tag-related make variables.
+ (cvs-dist): Use the make variables instead of shell ones.
+ (announcement): Automatically generate diffs for all ChangeLog files,
+ not just the top level one.
+
+1999-04-30 Paul Eggert <eggert@twinsun.com>
+
+ * lib/dup2.c: New file.
+
+1999-04-30 Jim Meyering <meyering@ascend.com>
+
+ * src/touch.c (touch): Only do the fstat if we need to.
+ Resort to calling stat for directories, but only when necessary.
+ (usage): Mention --no-create.
+
+ * src/copy.c (copy_internal): Move the one-file-system test so that
+ it follows the `if (new_dst || !S_ISDIR (dst_sb.st_mode))' block.
+ Prior to this change, `cp --one-file-system' would traverse a file-
+ system boundary if the destination directory existed. From Ton Hospel.
+
+1999-04-27 Paul Eggert <eggert@twinsun.com>
+
+ * src/dd.c: Always use STDIN_FILENO for input and STDOUT_FILENO
+ for output, to avoid confusion with closed input and output fds.
+ (input_fd, output_fd): Remove; all uses changed to STDIN_FILENO
+ and STDOUT_FILENO.
+ (open_fd): New function.
+ (main): Use it, instead of open, to ensure that file descriptors
+ don't get confused.
+
+1999-04-26 Paul Eggert <eggert@twinsun.com>
+
+ * src/ls.c (decode_switches): Use STDIN_FILENO, STDOUT_FILENO instead
+ of 0, 1.
+
+ * src/dd.c (skip): Don't fstat the input file; the result is
+ no longer used.
+
+1999-04-26 Jim Meyering <meyering@ascend.com>
+
+ * tests/mv/into-self-2: Update to reflect this change by reversing
+ the order of arguments so the symlink is the source, not the
+ destination (otherwise, the mv command would now succeed).
+
+ * src/copy.c (copy_internal): Don't make `mv foo symlink-to-foo' fail.
+ That is, even though source and destination are `the same,' don't fail
+ if the destination is a symlink. From Peter Samuelson.
+
+1999-04-26 Paul Eggert <eggert@twinsun.com>
+
+ * src/dd.c (main): If you can't open an output file (with
+ seek=...) read-write, then open it for write and report an
+ error if we can't seek.
+
+ * lib/filemode.c (setst, ftypelet, mode_string):
+ * lib/mkdir.c (mkdir):
+ * lib/makepath.c (make_path):
+ * lib/modechange.c (make_node_op_equals, mode_compile,
+ mode_create_from_ref, mode_adjust):
+ * lib/modechange.h (mode_adjust):
+ * src/chmod.c (describe_change, change_file_mode):
+ * src/copy.c (copy_reg, copy_internal):
+ * src/copy.h (struct cp_options.umask_kill):
+ * src/cp.c (do_copy, cp_option_init, main):
+ * src/dd.c (main):
+ * src/install.c (mode, cp_option_init, DIR_MODE):
+ * src/mkdir.c (main):
+ * src/mkfifo.c (main):
+ * src/mknod.c (main):
+ * src/mv.c (cp_option_init):
+ * src/touch.c (open_maybe_create):
+ Use proper mode_t types and macros.
+ Don't assume the traditional Unix values for mode bits.
+
+ * lib/filemode.c (S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH,
+ S_IXOTH): Define if not defined.
+ (rwx): Remove.
+ * lib/mkdir.c (S_IRWXU, S_IRWXG, S_IRWXO): Define if not defined.
+ * lib/makepath.c (S_ISUID, S_ISGID, S_ISVTX, S_IRUSR, S_IRWXU):
+ Define if not defined.
+ * src/system.h (S_ISUID, S_ISGID, S_ISVTX, S_IRWXU, S_IRWXG, S_IRWXO):
+ Define if not defined.
+ (CHMOD_MODE_BITS): New macro.
+ * src/install.c (isodigit): Remove unused macro.
+
+ * src/mkfifo.c, src/mknod.c (usage):
+ Use symbolic mode as default, not octal.
+
+ * lib/utime.c (utime_null):
+ Don't pass 0666 to open; it's not needed and isn't
+ guaranteed to be portable.
+
+ * lib/filemode.h: <config.h>, <sys/types.h>: Include for mode_t.
+ (mode_string): Now takes mode_t.
+
+ * lib/modechange.h: Include <config.h>, <sys/types.h> for mode_t.
+ (struct mode_change): Members affected and value are now mode_t instead
+ of unsigned short.
+
+ * doc/fileutils.texi, doc/perm.texi:
+ Don't assume traditional Unix mode numbering.
+
+ * lib/modechange.c: modechange.h now includes sys/types.h.
+ Include xstrtol.h.
+ (isodigit, oatoi): Remove.
+ (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_IRWXU, S_IRWXG,
+ S_IRWXO): Define if not defined.
+ (CHMOD_MODE_BITS): New macro.
+ (mode_compile): Convert from octal with xstrtoul, not our own routine.
+
+1999-04-24 Jim Meyering <meyering@ascend.com>
+
+ * Version 4.0g.
+
+1999-04-22 Jim Meyering <meyering@ascend.com>
+
+ * src/shred.c (word32): Don't use `#error'; it runs afoul of
+ SunOS 4.1.4 cc. From Paul Eggert.
+
+ * lib/strtoull.c: Guard strong_alias and weak_alias with #ifdef _LIBC.
+
+1999-04-20 Paul Eggert <eggert@twinsun.com>
+
+ Replace our temporary hack implementation of strtoumax with
+ something very close to the real code in glibc.
+
+ * lib/xstrtoumax.c: Remove the temporary strtoumax replacement;
+ we now have a true replacement in strtoumax.c.
+ (__strtol): Always define to strtoumax.
+ (<stdlib.h>): No need to include.
+ (PARAMS): Remove.
+ (my_strtoumax): Move this to strtoumax.c,
+ rename it to strtoumax, and simplify.
+
+ * lib/strtoull.c, lib/strtoumax.c: New files.
+
+ * lib/strtol.c: Update to glibc 2.1.1 version.
+
+1999-04-20 Jim Meyering <meyering@ascend.com>
+
+ * tests/Makefile.am (EXTRA_DIST): s/posix-warn/env-warn/.
+ (check-local): Also test and warn if CDPATH is set.
+
+1999-04-20 Paul Eggert <eggert@twinsun.com>
+
+ * configure.in (AC_CANONICAL_HOST): Add; needed for new AC_LFS's
+ cross-compilation.
+ * config.guess: New file (from autoconf).
+ * config.sub: New file (from autoconf).
+
+ * src/shred.c <config.h>: Include first, since it can do
+ things like #define const, and this must be done before
+ including any system headers.
+
+ * lib/xstrtoumax.c (my_strtoumax): Fix typo in computing
+ whether overflow occurred. Improve overflow-detection to use
+ only one conditional branch total, rather than 2N+1
+ conditional branches for an N-digit number.
+
+1999-04-18 Jim Meyering <meyering@ascend.com>
+
+ * configure.in (AC_CHECK_FUNCS): Remove strtoull, strtoumax, and
+ strtouq, now that they're checked in m4/xstrtoumax.m4.
+
+1999-04-18 Paul Eggert <eggert@twinsun.com>
+
+ * doc/fileutils.texi, src/shred.c (main, longopts):
+ Use -u instead of -R for --remove, so that we can preserve
+ future compatibility with rm.
+
+1999-04-18 Jim Meyering <meyering@ascend.com>
+
+ * src/shred.c [!HAVE_CONFIG_H] (ST_BLKSIZE): Define to 65536.
+ (do_wipefd): Use ST_BLKSIZE instead of referring to the st_blksize
+ member directly.
+
+1999-04-18 Paul Eggert <eggert@twinsun.com>
+
+ Fix shred to do the right thing with off_t longer than long.
+ Merge large-integer parsing code with similar code in dd.c,
+ and put the resulting in lib/xstrtoumax.c so that other programs
+ can use it. Instead of adding a new lib/xstrtoumax.h I thought
+ it cleaner to put all the xstroto* declarations into a single
+ header, which for now is lib/xstrtol.h for lack of a better place.
+ (Mayby lib/xstdlib.h would be better? :-)
+
+ I thought of several other problems with shredding regular files;
+ shredding devices is much more reliable. So I changed the defaults
+ to be more suitable for shredding devices; this should help encourage
+ users to do the right thing.
+
+ pfstatus isn't portable to environments with varying width
+ fonts, or with internationalized environments where the byte
+ count of the message is not the same as its print width.
+ Rather than deal with this, I just simplified it to not do
+ tricks with carriage-returns and spaces. (I'm also worried
+ that vprintf may not return the right value on some hosts; I
+ vaguelly recall this being a problem.) As a result, -v and -
+ no longer conflict.
+
+ When removing a special file, try to truncate it first, but don't
+ worry if this reports an error.
+
+ Try to find the size of a non-regular file by seeking to its end.
+
+ Various porting fixes, mostly because of a port to SunOS 4.1.4 cc.
+
+ Some other minor bug fixes.
+
+ * lib/xstrtoul.h: Remove this file.
+ * lib/xstrtoumax.c: New file.
+
+ * configure.in (AC_CHECK_FUNCS): Add strtoull, strtoumax, strtouq.
+
+ * lib/xstrtoul.c (STRING_TO_UNSIGNED): Remove.
+ (__strtol, __strtol_t, __xstrtol): New macros.
+
+ * lib/xstrtol.c (__strtol, __strtol_t, __xstrtol):
+ New macros to specify the
+ underlying function, its returned type, and our function. Default to
+ values suitable for xstrtol.
+
+ Include <ctype.h>, since we use its macros.
+
+ (ULONG_MAX, LONG_MAX, ISBLANK): Remove: no longer needed.
+ (ISSPACE): New macro.
+
+ (bkm_scale, bkm_scale_by_power, __xstrtol, main): __unsigned long int
+ -> __strtol_t.
+
+ (__xstrtol): Depend on whether __strtol_t is an unsigned type, not on
+ whether STRING_TO_UNSIGNED is defined. Skip isspace chars, not
+ isblank chars, to match strtol. When returning
+ LONGINT_INVALID_SUFFIX_CHAR, store the value that we computed into
+ *val.
+
+ * lib/xstrtol.h (__xstrtol, __strtol, __unsigned): Remove macro decls.
+ <inttypes.h>: Include if HAVE_INTTYPES_H.
+ (_DECLARE_XSTRTOL): New macro.
+ (xstrtol, xstrtoul, xstrtoumax): Declare all three functions, so that
+ we need only one include file, not three.
+ (_STRTOL_ERROR): Do not undef, as this is no longer needed.
+ Reword overflow message so that it's independent of type.
+
+ * lib/Makefile.am (libfu_a_SOURCES): Add xstrtoumax.c.
+ (noinst_HEADERS): Remove xstrtoul.h.
+
+ * lib/xmalloc.c (xalloc_fail):
+ Pass xalloc_msg_memory_exhausted through gettext.
+
+ * lib/getdate.y:
+ <stdlib.h>: Include if HAVE_STDLIB_H, since bison 1.27 invokes "free".
+ (LookupWord, yylex): Don't pass negative char to ctype macros.
+
+ * doc/fileutils.texi:
+ Explain why shredding devices is more reliable, and why the
+ default options are more suitable for devices.
+
+ Remove withdrawn options -b or --no-contents, -c or --freed-contents,
+ -C or --all-contents, -k or --no-links, -l or --ordinary-links, -L or
+ --all-links.
+
+ Add -R or --remove, -s or --size.
+
+ -v can no longer be doubled.
+
+ `file system' --> `filesystem' uniformly.
+
+ * src/chgrp.c: Include xstrtol.h, not obsolete file xstrtoul.h.
+
+ * src/shred.c: Include xstrtol.h, not obsolete file xstrtoul.h.
+ "human.h", "xalloc.h": Include.
+ (attribute): Remove; no longer needed.
+ (xstrdup): New decl.
+ (STDOUT_FILENO): New macro.
+ (O_NOCTTY): Make sure it's always defined, even if HAVE_CONFIG_H.
+
+ The following changes have effect only if !HAVE_CONFIG_H.
+ <ctype.h>: New include.
+ (RETSIGTYPE): Remove bogus semicolon at end.
+ (STDOUT_FILENO, uintmax_t, human_readable, LONGEST_HUMAN_READABLE):
+ New macros.
+ (xstrtoumax): Renamed from xstrtoul, with corresponding type changes.
+ Handle suffixes like the real routine does.
+ (error): Remove bogus assignment of errno to errnum.
+ (xmalloc, xstrdup): New functions.
+
+ (O_NOCTTY): Define even if !HAVE_CONFIG_H.
+ (S_ISFIFO, S_ISSOCK): New macros, if not already defined.
+ (OUTPUT_BLOCK_SIZE): New macro.
+ (struct Options.verbose): Now a boolean, since we no longer have two
+ levels of verbosity.
+ (long_opts, usage, main): Remove -D or --device option. Invert -p or
+ --preserve option, and rename it to -R or --remove.
+ (usage): Describe G suffix.
+ (usage): "-" no longer conflicts with -v.
+ (UCHAR_MAX): Indent `#error' so that SunOS 4.1.4 cc doesn't reject it.
+ (ind): Portability fixes: return word32, not unsigned; multiply by
+ sizeof (word32) instead of shifting left by 2.
+ (isaac_refill, isaac_mix): Comment out size of array parameter, as
+ ansi2knr mishandles this.
+ (status_visible, status_pos, pfstatus, flushstatus): Remove, since
+ pfstatus isn't portable to users with varying width fonts, or
+ internationalized messages, and vfprintf is problematic. All callers
+ of pfstatus changed to use error instead; this removes incompatibility
+ of -v with -. All calls to flushstatus removed.
+ (dopass, do_wipefd): Do not translate non-English msgs with gettext.
+
+ (dopass): Cast lseek constant arguments to (off_t) for benefit
+ of pre-ANSI compilers; fix one lseek call whose args were interchanged.
+ Remove unnecessary casts to (off_t). Do not check for EIO
+ when determining file size; this was just my earlier wild guess.
+ Use human_readable to print off_t, instead of casting to unsigned long
+ (which doesn't work in Solaris 2.6, where off_t is longer than long).
+ Output human-readable sizes, instead of always using "K".
+ Check for offset overflow (it happened to me in SunOS 4.1.4).
+ (do_wipefd): Do not insist on regular files, but do check for special
+ files that cannot possibly be shredded.
+ Use xmalloc instead of malloc + check.
+ Do not inspect st_size for non-regular files.
+ Try to find the size of a non-regular file by seeking to its end.
+ Do not assume that a regular file of size-0 has unknown size.
+ Check for regular files with negative sizes,
+ and for overflow after rounding to next block.
+ Always try to truncate, even for special files, but do not report an
+ error if truncation fails on a special file.
+
+ (dopass, wipefile): Do not return 1 for special files; the caller
+ doesn't care any more.
+
+ (wipefd): Remove unnecessary (and nonportable) check for
+ whether the file descriptor is read-only. Remove
+ no-longer-needed check for `-v -'.
+
+ (incname): Return 1 for carry bit, like the documentation says.
+
+ (wipename, wipefile): Accept new argument, specifying the
+ quoted file name. All callers changed.
+
+ (wipename): Use xstrdup instead of strdup+error check.
+
+ (wipefile): Check for ENOTDIR when opening /dev/fd/NNN. Check for
+ errors in NNN more carefully. Restore errno after the check.
+ Check for errors when closing the file descriptor.
+ Use more consistent wording when unable to remove a file.
+
+ (main): Do not remove files by default.
+ Use xstrtoumax instead of xstrtoul uniformly, since xstrtoul won't
+ exist if !HAVE_CONFIG_H.
+ In diagnostics, quote invalid operands to -n and -s options.
+ Allow T, P, E, Z, and Y suffixes in -s operand.
+ flags.verbose is now a boolean, not a counter.
+ Use STDOUT_FILENO instead of 1, for clarity.
+
+ * lib/human.c:
+ Include xstrtol.h, not xstrtoul.h, since xstrtol.h now defines all the
+ xstrto... functions.
+
+ * src/dd.c: Include xstrtol.h.
+ (parse_integer): Migrate most of the work into the new xstrtoumax fn.
+
+ * lib/xstrtoumax.c: New file.
+
+1999-04-18 Jim Meyering <meyering@ascend.com>
+
+ * src/dd.c (main): Open the output file with *read* access
+ only if we might need to read to satisfy a `seek=' request.
+ From Matthias Urlichs.
+
+1999-04-10 Jim Meyering <meyering@ascend.com>
+
+ * Makefile.maint (alpha): Add trailing slash for ncftp.
+
+ * Version 4.0f.
+
+ * configure.in (AC_OUTPUT): Add tests/dd/Makefile.
+ * tests/Makefile.am (SUBDIRS): Add dd.
+ * tests/dd: New directory
+ * tests/dd/misc: New file.
+
+ `ls --color' would segfault
+ * src/ls.c: Include assert.h.
+ (color_indicator[]): Add an entry for the type, `door.'
+ (main): Assert that the lengths of the color_indicator and
+ indicator_name arrays are appropriately related.
+ Reported by John Gotts.
+
+ * src/dd.c (scanargs): Fix bug introduced with last change: now that
+ the loop is gone, manually decrement argc and increment argv.
+ Reported by Andreas Jaeger and jvogel@linkny.com.
+
+1999-04-07 Jim Meyering <meyering@ascend.com>
+
+ * lib/getdate.y (difftm): Protoize.
+
+1999-04-06 Jim Meyering <meyering@ascend.com>
+
+ * lib/strftime.c: Update from master source in libc.
+
+1999-04-04 Jim Meyering <meyering@ascend.com>
+
+ * tests/ln/misc: Comment out the test added on 1999-01-31.
+
+ * Makefile.maint (url_dir_list): Define properly.
+ (real_dir_list): Likewise.
+
+ * src/shred.c: Don't include string.h.
+ [!HAVE_CONFIG_H]: Include string.h here.
+ [!HAVE_CONFIG_H]: Hard-code RETSIGTYPE to `int'.
+ (sigill_handler): Change return type and type of local `oldhandler' to
+ RETSIGTYPE.
+ (isaac_seed_machdep): Change and type of local `oldhandler' to
+ RETSIGTYPE.
+ From Colin Plumb.
+
+ * Version 4.0e
+
+ * tests/cp/same-file: Change the sed command used to extract the
+ filename from ls -l output, to accommodate the change in format.
+
+ * src/ls.c (print_long_format): Add a space between %s and %3u. This
+ assures that even when modebuf has the trailing `+' and there are more
+ than 99 hard links to a file, the permissions string and the link count
+ will be separated.
+
+1999-04-03 Jim Meyering <meyering@ascend.com>
+
+ * src/shred.c (dopass): add curly braces to avoid warning about
+ ambiguous `else'.
+ (wipefd): Add parentheses suggested by gcc.
+ (do_wipefd): Remove declaration of unused local.
+
+1999-04-02 Colin Plumb <colin@nyx.net>
+
+ * shred.c [!HAVE_CONFIG_H] (xstrtoul, error, close_stdout): Added stubs
+ to allow standalone compilation.
+
+ (wipefile): Added support for emulating /dev/fd/# files even if
+ the OS doesn't support them. From Paul Eggert.
+
+ (main, usage): Changed --device short option to -D.
+
+ (wipefd, do_wipefd): Renamed function to do_wipefd and added
+ separate wipefd that performs sanity checks on externally-opened file
+ descriptors, such as not append-only. From Paul Eggert.
+
+ (do_wipefd, isaac_seedfd): Do not read file for any reason.
+ if the file is low-entropy, it's a security hole.
+ (wipefile) Changed to open O_WRONLY and chmod to write-only when
+ forcing.
+ (isaac_seedfd) Function deleted as unnecessary.
+ From Paul Eggert.
+
+ (dopass): Dynamically fall back to fsync() if fdatasync() fails,
+ since POSIX, in their infinitesimal wisdom, encourage implementations
+ that return constant -1, making compile-time testing useless.
+ From Paul Eggert.
+
+ (dopass): Changed to support a size of -1 to mean "unknown".
+ This entailed changing to a counting-up offset rather than couting-down
+ cursize for the central state variable. Also changed size argument to
+ be call-by-reference so that it can be passed back once known.
+ (sizer) Function deleted as unnecessary.
+ (wipefd): Changed to match. From Paul Eggert
+
+ (dopass): Try to skip over bad blocks in destination files.
+ Also added ftruncate() for more complete destruction of metadata.
+
+ (main, usage): Changed "-" to stand for standard output.
+ (wipefd): Added error message to detect conflict with -v.
+
+ (dopass): Added periodic fsync() calls to keep the pass progress
+ display in sync with reality. Hopefully they're sufficiently far spaced
+ that throughput isn't affected. It might be a good thing to do even in
+ non-verbose mode, to avoid filling up the kernel caches with dirty data.
+ Also added ftruncate() for more complete destruction of metadata.
+
+ (quotearg_colon): New function to print
+ pathological filenames properly.
+ [!HAVE_CONFIG_H] (quotearg_colon_buf) New internal helper function
+ that does most of the work.
+ (wipefd, do_wipefd, dopass) Now take a qname (pre-quoted name) argument.
+ (wipename, wipefile, main) Changed diagnostics to use quotearg_colon.
+ Error messages are also in a more uniform format.
+ From Paul Eggert.
+
+ (struct Options, main, do_wipefd): Added -s/--size=N flag.
+ (xstrtoul): Added support for valid_suffixes to help this.
+ (usage) Documented it.
+
+ (error): Changed some arguments from N_() to _(), since error()
+ does not translate its argument. I think this is a bug.
+
+ (struct Options do_wipefd, wipefd, wipefile, main): moved passes
+ argument into the Options structure as n_iterations, which is now a
+ size_t. From Paul Eggert.
+
+ (isaac_seed_start, isaac_seed_data, isaac_seed_finish): New functions
+ to manage seeding of RNG with arbitrary-sized data.
+ (isaac_init): commented out as dead code.
+ (isaac_seed): changed to use new functions to prevent any possibility of
+ a buffer overflow.
+
+ (isaac_seed): Added support for Solaris' gethrtime()
+ configure.in: Corresponding feature test. From Paul Eggert.
+
+ (wipename): Change remove() to unlink() for speed & portability.
+ Use lstat() instead of access() to see if a filename is taken. This
+ works even on dangling symlinks and avoids the suid problems of
+ access(2). From Paul Eggert.
+
+ (isaac_seed_machdep): New function for reading cycle counters
+
+1999-04-02 Paul Eggert <eggert@shade.twinsun.com>
+
+ * configure.in (AC_CHECK_FUNCS): Add gethrtime.
+
+ * src/shred.c (isaac_seed): Don't overrun the s->mm buffer.
+ Use gethrtime if available. Don't assume that clock_gettime succeeds.
+ Put most random sources first.
+
+1999-04-02 Paul Eggert <eggert@twinsun.com>
+
+ shred: Add new options -bcCklL and fix some porting problems.
+ Remove options -dp. Do not read output files.
+
+ * src/shred.c (long_opts, usage, main, wipefile): Adjust to
+ new options.
+ ("human.h", "quotearg.h"): New includes.
+ (struct Options): New members contents, links, n_iterations.
+ Remove allow_devices, remove_file. Change n_iterations to size_t.
+ All uses changed.
+ (output_block_size): New var.
+ (usage): Declare __noreturn__ attribute.
+ (fdatasync): Define to -1 if not present, since we need to invoke both
+ fdatasync and fsync if both are present. All invokers of fdatasync
+ now try fdatasync, then fsync.
+ (MIXIN): New macro.
+ (isaac_seed): Use it to mix in values. Add uid, gid to mix.
+ Don't use gettimeofday, as it has too many porting problems.
+ (isaac_seedfd): Remove, since we no longer read the output files.
+ (sizefd): Remove; we now determine size by writing sequentially.
+ (dopass, wipename, wipefile, main): Clean up error messages.
+ (dopass): Keep track of offset relative to start of file, not
+ end, since we may not know how large the file is. If size is
+ negative, write until we fall off the end of the file.
+ (wipefd): Do not read output file.
+ Return 0 if successful, -1 if not; do not make a special case for
+ non-regular files, since our callers have that info now.
+ (wipename): Now static. Return errno if error.
+ (main): "-" now stands for standard output.
+ Do not shred append-only standard output.
+ (wipefile): Do not grant read permission to file when wiping it.
+ Use symbolic permission (S_IWUSR), not octal.
+
+ * src/system.h (S_IWUSR): Define if not already defined.
+
+ * configure.in (AC_SEARCH_LIBS): Prefer rt to posix4, for Solaris 7.
+ (AC_CHECK_FUNCS): Remove gettimeofday.
+
+ * doc/fileutils.texi: Document recent changes.
+
+1999-04-01 Jim Meyering <meyering@ascend.com>
+
+ * configure.in (AC_CHECK_FUNCS): Add acl.
+ (AC_CHECK_HEADERS): Add sys/acl.h.
+ * src/ls.c [HAVE_SYS_ACL_H]: Include sys/acl.h.
+ (struct fileinfo): New member `have_acl'.
+ (gobble_file): Initialize it.
+ (print_long_format): Use it.
+ Mostly from Alen Muzinic.
+
+ * src/touch.c (open_maybe_create): New function.
+ (touch): Rewrite not to use `creat' and to eliminate a race
+ condition that could make touch truncate a nonempty file.
+ Report and suggestions from Andrew Tridgell.
+
+1999-03-31 Jim Meyering <meyering@ascend.com>
+
+ * src/du.c: Remove prototypes and tsort function definitions.
+
+ * src/chown.c (main): Move the declaration of `e' into the scope
+ where it's used and make it `const'.
+
+ * src/install.c (main): Qualify a char* with the `const' keyword.
+ (install_file_in_dir): Likewise.
+ * src/ln.c (main): Likewise.
+ * src/mkdir.c (main): Likewise.
+ * src/mkfifo.c (main): Likewise.
+ * src/mknod.c (main): Likewise.
+ * src/mv.c (main): Likewise.
+ * src/touch.c (touch): Likewise.
+
+1999-03-30 Jim Meyering <meyering@ascend.com>
+
+ * src/*.c: Don't include closeout.h or version-etc.h explicitly.
+ Now, they're included via sys2.h.
+
+1999-03-29 Jim Meyering <meyering@ascend.com>
+
+ * configure.in (GNU_PACKAGE): Remove related code -- now it's in
+ the catch-all for shared autoconf code, m4/jm-macros.m4.
+ (jm_CHECK_ALL_TYPES): Remove explicit AC_TYPE_* macros and use
+ this instead.
+
+1999-03-29 Paul Eggert <eggert@twinsun.com>
+
+ Minor lint removal in code that forks and execs.
+
+ * lib/mkdir.c (mkdir): Use pid_t instead of int; check status
+ against zero. This is to improve portability.
+ * lib/rename.c (rename): Likewise.
+ * lib/rmdir.c (rmdir): Likewise.
+
+ * lib/rename.c (rename):
+ (rename): Do not print any error messages, so that the messages
+ are internationalized properly.
+
+ * src/install.c (strip): Use standard "cannot fork" message.
+ Check for strip nonzero exit status.
+
+1999-03-28 Jim Meyering <meyering@ascend.com>
+
+ `chmod =OP' did not properly apply the umask
+ * lib/modechange.c (make_node_op_equals): New function.
+ (mode_append_entry): Likewise.
+ (mode_compile): When none of [ugoa] is specified in an `=OP' change
+ mode request, insert a `=0' entry into the linked list so that all
+ bits are cleared first. Use the new functions.
+ Reported by Andrew Dalke.
+
+ New test for the above.
+ * configure.in (AC_OUTPUT): Add tests/chmod/Makefile.
+ * tests/Makefile.am (SUBDIRS): Add chmod.
+ * tests/chmod: New directory
+ * tests/chmod/equal-x: New file.
+
+1999-03-27 Jim Meyering <meyering@ascend.com>
+
+ * lib/modechange.c (mode_compile): Upon allocation failure, free
+ everything starting with the head, not the tail.
+
+ * src/install.c (strip): Use pid_t, not int. From John Bley.
+
+1999-03-26 Jim Meyering <meyering@ascend.com>
+
+ * src/dd.c (PROGRAM_NAME, AUTHORS): Define
+ (long_options): Remove unused struct.
+ (scanargs): Remove useless loop.
+ (main): Use PROGRAM_NAME and AUTHORS in call to parse_long_options.
+ * src/mvdir.c: Likewise.
+ * src/sync.c (PROGRAM_NAME, AUTHORS): Define and use.
+
+1999-03-25 Jim Meyering <meyering@ascend.com>
+
+ * lib/Makefile.am (libfu_a_SOURCES): Add version-etc.c.
+ (noinst_HEADERS): Add version-etc.h.
+
+ * lib/long-options.c (parse_long_options): Remove version-, copyright-,
+ and author-printing code. Do it via version_etc.
+
+ * lib/version-etc.c: New file.
+ * lib/version-etc.h: Prototype for same.
+
+ * src/sys2.h (GETOPT_HELP_CHAR): Define.
+ (GETOPT_VERSION_CHAR): Define.
+ (GETOPT_HELP_OPTION_DECL): Define.
+ (GETOPT_VERSION_OPTION_DECL): Define.
+ (case_GETOPT_HELP_CHAR): Define.
+ (case_GETOPT_VERSION_CHAR): Define.
+
+ * src/chgrp.c: No longer include long-options.h.
+ Include version-etc.h instead.
+ (PROGRAM_NAME, AUTHORS): Define.
+ [long_options]: Add entries for --help and --version.
+ Remove parse_long_options call.
+ (main) [getopt switch]: Add a case for each of --help and --version.
+ * src/chgrp.c: Likewise.
+ * src/chmod.c: Likewise.
+ * src/cp.c: Likewise.
+ * src/df.c: Likewise.
+ * src/dircolors.c: Likewise.
+ * src/du.c: Likewise.
+ * src/install.c: Likewise.
+ * src/ln.c: Likewise.
+ * src/ls.c: Likewise.
+ * src/mkdir.c: Likewise.
+ * src/mkfifo.c: Likewise.
+ * src/mknod.c: Likewise.
+ * src/mv.c: Likewise.
+ * src/rm.c: Likewise.
+ * src/rmdir.c: Likewise.
+ * src/shred.c: Likewise.
+ * src/touch.c: Likewise.
+
+1999-03-24 Jim Meyering <meyering@ascend.com>
+
+ * man/help2man: Import version 1.010.
+
+1999-03-22 Jim Meyering <meyering@ascend.com>
+
+ * src/chmod.c (usage): Add one-liner. Suggestion from Karl Berry.
+
+1999-03-19 Jim Meyering <meyering@ascend.com>
+
+ * src/automake-wrap: Rewrite the automake-generated rule for
+ clean-binPROGRAMS so that it removes rm even with a losing PATH on a
+ losing system (PATH with `.' before /bin on a system where you can't
+ unlink a running executable). Reported by William Bader.
+
+ * configure.in: Use jm_WINSIZE_IN_PTEM.
+ * src/ls.c [WINSIZE_IN_PTEM]: Include sys/stream.h and sys/ptem.h.
+ Required by SCO ODT 2.0 systems. Reported by William Bader.
+
+1999-03-18 Jim Meyering <meyering@ascend.com>
+
+ * src/remove.c (remove_cwd_entries): Reflect changes in hash_insert.
+ (remove_init): Call hash_initialize with one more argument.
+
+1999-03-15 Jim Meyering <meyering@ascend.com>
+
+ Revamp to allow fine-tuning to control when and by how
+ much the table grows and shrinks.
+ * lib/hash.c (next_prime): Don't assert.
+ (hash_reset_tuning): New function.
+ (check_tuning): New function.
+ (hash_initialize): Accept and use new tuning parameter.
+ (hash_rehash): Rewrite, updating for tuning.
+ (hash_insert): Honor tuning semantics.
+ (hash_delete): Likewise.
+ From François Pinard.
+
+ * lib/hash.h (struct hash_tuning): Define.
+ (struct hash_table) [tuning]: Add member.
+ (hash_initialize): Add `tuning' parameter.
+
+ * lib/hash.c (hash_insert): Remove last parameter and change semantics.
+ * lib/hash.h (hash_insert): Update prototype.
+
+ * lib/hash.c (hash_insert): Don't increment n_entries unconditionally --
+ otherwise, we'd do so even when the insertion failed.
+ From François Pinard.
+
+1999-03-07 Jim Meyering <meyering@ascend.com>
+
+ * lib/xmalloc.c (xalloc_fail): Use "%s" format so the message doesn't
+ have to be scanned for % signs. Suggestion from François Pinard.
+
+ * Makefile.maint: Add two more URLs and the loops to use them.
+
+ * lib/long-options.c (parse_long_options): Include `Copyright...' line
+ in --version output.
+ Add the `...NO warranty...' message.
+
+1999-03-03 Jim Meyering <meyering@ascend.com>
+
+ * lib/long-options.c (_): Define it.
+ (parse_long_options): Accept new parameter, authors, and print it.
+
+ * lib/long-options.h: Update prototype.
+
+ * src/chgrp.c: Include long-options.h
+ [long_options]: Remove the "help" and "version" entries.
+ (main): Use parse_long_options, including author name(s).
+ Remove the show_version and show_help blocks.
+ * src/chmod.c: Likewise.
+ * src/chown.c: Likewise.
+ * src/cp.c: Likewise.
+ * src/dd.c: Likewise.
+ * src/df.c: Likewise.
+ * src/dircolors.c: Likewise.
+ * src/du.c: Likewise.
+ * src/install.c: Likewise.
+ * src/ln.c: Likewise.
+ * src/ls.c: Likewise.
+ * src/mkdir.c: Likewise.
+ * src/mkfifo.c: Likewise.
+ * src/mknod.c: Likewise.
+ * src/mv.c: Likewise.
+ * src/mvdir.c: Likewise.
+ * src/rm.c: Likewise.
+ * src/rmdir.c: Likewise.
+ * src/shred.c: Likewise.
+ * src/sync.c: Likewise.
+ * src/touch.c: Likewise.
+
+1999-02-18 Paul Eggert <eggert@twinsun.com>
+
+ * getdate.y: <alloca.h>: Include if HAVE_ALLOCA_H, not FORCE_ALLOCA_H.
+ The FORCE_ALLOCA_H was a relic of the bad old pre-autoconf Emacs days.
+
+1999-02-17 Jim Meyering <meyering@ascend.com>
+
+ * src/shred.c (wipename): Fix string thinko. Now, shredding files
+ in subdirectories works (dir/file). From Janos Farkas.
+
+1999-02-13 Jim Meyering <meyering@ascend.com>
+
+ * src/dircolors.c (dc_parse_stream): Don't try to dereference
+ NULL if there's an error in our built-in list.
+ Suggestion from François Pinard.
+
+1999-02-13 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
+
+ * src/install.c (main): Set x.backup_type only if backups are requested.
+ (cp_option_init): Initialize backup_type.
+ (backup_type): Remove unused variable.
+
+ * doc/fileutils.texi: Fix use of @item vs @itemx.
+
+1999-02-08 Jim Meyering <meyering@ascend.com>
+
+ * src/dircolors.c (slack_codes): Add "DOOR".
+ (ls_codes): Add corresponding "do".
+ Reported by John Gotts.
+
+ * configure.in (ALL_LINGUAS): Add Italian (it).
+
+1999-02-07 Jim Meyering <meyering@ascend.com>
+
+ * Version 4.0d (aka 4.1-b4).
+
+ * Makefile.maint (my-distcheck): Don't depend on dist, now that this
+ is hooked up to the distcheck rule.
+ * Makefile.am (distcheck-hook): New target and rule -- link to shared
+ rule, my-distcheck, in Makefile.maint.
+
+ * doc/fileutils.texi (shred invocation): New section. From Colin Plumb.
+
+ * configure.in (jm_FUNC_GETGROUPS): Move the test into a new file,
+ group-member.m4, and just use this new macro.
+ Use `.$ac_objext', not the literal `.o'.
+
+1999-02-02 Jim Meyering <meyering@ascend.com>
+
+ * src/ls.c (S_ISLNK, S_ISFIFO, S_ISSOCK, S_ISCHR, S_ISBLK, S_ISDOOR):
+ Define to zero if not already defined.
+ (HAVE_SYMLINKS): Define.
+ (gobble_file): Remove #ifdef.
+ (get_link_name, make_link_path): Guard these with #if HAVE_SYMLINKS
+ rather than #ifdef S_ISLNK.
+ (print_type_indicator): Remove #ifdefs and reorganize.
+ (print_color_indicator): Remove #ifdefs.
+ (length_of_file_name_and_frills): Likewise.
+
+1999-02-01 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * src/dircolors.hin: Handle DOOR.
+
+ * src/ls.c (print_type_indicator): Print doors as '>'.
+ (length_of_file_name_and_frills): Account for this.
+ (indicator_no): Define C_DOOR.
+ (indicator_name): Add corresponding name.
+
+ * lib/filemode.c (ftypelet): Handle doors.
+
+ * lib/filemode.c, src/system.h (S_ISDOOR): Define if missing.
+
+1999-02-01 Jim Meyering <meyering@ascend.com>
+
+ * lib/strcasecmp.c (STRXCASECMP_FUNCTION): Don't increment within macro
+ argument list. From Akim Demaille.
+
+1999-01-31 Jim Meyering <meyering@ascend.com>
+
+ * doc/fileutils.texi: Wrap the @top node in @ifnottex instead of
+ @ifinfo so `makeinfo --html ...' works. From Karl Berry.
+
+ * tests/ln/misc: Add test for this.
+ * src/ln.c (do_link): Allow creation of a hard link to a dangling
+ symlink. Reported by Alexey Solovyov.
+
+ * src/copy.c (copy_internal): Describe any backup-related renaming
+ operations when in verbose mode.
+ (copy_internal): Likewise.
+ Based on changes from Marty Leisner.
+
+ * lib/lchown.c: Declare chown.
+
+1999-01-30 Jim Meyering <meyering@ascend.com>
+
+ * acconfig.h: Remove uintmax and STAT* #undefs.
+ * configure.in: Require autoconf 2.13.
+ Remove test for AFS.
+ Use 3-argument form of AC_DEFINE*.
+
+1999-01-28 Jim Meyering <meyering@ascend.com>
+
+ * po/POTFILES.in: Add src/shred.c.
+
+ * src/system.h: Use TIME_WITH_SYS_TIME-based #if test rather than
+ TM_IN_SYS_TIME based one (for shred).
+
+ * acconfig.h: Remove lots of `#undef's, now that we use the
+ 3-argument forms of AC_DEFINE* macros.
+
+1999-01-25 Jim Meyering <meyering@ascend.com>
+
+ * configure.in (fdatasync): Use AC_CHECK_FUNCS instead of
+ AC_REPLACE_FUNCS.
+ (AC_CHECK_FUNCS): Add clock_gettime.
+
+ * src/shred.c (isaac_seed): Guard clock_gettime with test of
+ HAVE_CLOCK_GETTIME, not CLOCK_REALTIME.
+ (wipename): Rename local dirfd to dir_fd to avoid shadowing the
+ function declared in Linux's dirent.h.
+
+1999-01-25 Akim Demaille <demaille@inf.enst.fr>
+
+ * lib/argmatch.h (ARRAY_CARDINALITY): Define.
+ (ARGMATCH_ASSERT): New macro.
+
+ * lib/argmatch.c (program_name): Remove dcl.
+ Include error.h.
+ (argmatch_invalid): Use error rather than fprintf.
+
+1999-01-24 Jim Meyering <meyering@ascend.com>
+
+ * src/ansi2knr.c: Exit nonzero upon failed write to stdout.
+ New version from L. Peter Deutsch.
+
+ * lib/quotearg.c (quotearg_n_options): Revert type of parameter `n'
+ (and hence that of the local `n1', too) to `int' at Paul's request.
+
+ * lib/closeout.c: Add comments.
+
+ * src/shred.c (fdatasync): Remove function. instead, ...
+ (fdatasync) [! HAVE_FDATASYNC]: Define to fsync.
+ From Colin Plumb.
+
+1999-01-23 Jim Meyering <meyering@ascend.com>
+
+ * src/Makefile.am (bin_PROGRAMS): Add shred.
+ * src/shred.c: New file.
+ Portability tweaks.
+ Internationalize.
+ (wipename): Print the `FILE: deleted' and `FILE: deleting' messages
+ only when in verbose mode.
+ (fdatasync) [! HAVE_FDATASYNC]: New function.
+
+ * man/Makefile.am (man_MANS): Add shred.1.
+ * man/Makefile.summ (shred-summary): Define.
+ * man/shred.x: New file.
+
+ * src/shred.c: New file. From Colin Plumb.
+ Include config.h, getopt.h, system.h and error.h.
+ Use #else/#if, not #elif.
+
+1998-11-05 Paul Eggert <eggert@twinsun.com>
+
+ * lib/mktime.c (__mktime_internal): Adopt the traditional (and
+ problematic) notion of what to do when tm_isdst doesn't match.
+
+1999-01-17 Jim Meyering <meyering@ascend.com>
+
+ * tests/cp/Makefile.am (TESTS_ENVIRONMENT): Set PATH here, rather
+ than setting RM and CP.
+ * tests/cp/*: Now that PATH is set properly, use rm and cp rather
+ than $RM and $CP.
+
+ * tests/ln/Makefile.am (TESTS): Add backup-1.
+ (TESTS_ENVIRONMENT): Set PATH here, rather than setting LN.
+ * tests/ln/*: Now that PATH is set properly, use ln rather than $LN.
+ * tests/ln/backup-1: New test for this.
+ * src/ln.c (do_link): Try to remove DEST even after renaming it.
+ This fixes a bug reported by Jamie Lokier.
+
+ * src/ln.c (same_name): Use SAME_INODE rather than open coding it.
+
+1999-01-16 Jim Meyering <meyering@ascend.com>
+
+ * lib/argmatch.c (ARGMATCH_DIE_DECL): Use it.
+
+ * acconfig.h: Remove @BOTTOM@ section.
+ Instead, add the define and decl via m4/jm-macros.m4.
+
+ * src/ls.c: Don't declare base_name.
+ Use function-style XARGMATCH once again.
+ * src/touch.c: Likewise.
+ * acconfig.h: Add a @BOTTOM@ section.
+ (ARGMATCH_DIE) [@BOTTOM@]: Define to usage(1).
+ Declare usage.
+ From Akim Demaille.
+
+ * src/cp.c: Remove declarations of base_name and get_version.
+ (main): Don't call getenv ("VERSION_CONTROL"); xget_version does it.
+ Use xget_version and function-style XARGMATCH.
+ * src/mv.c (main): Likewise.
+ * src/ln.c (main): Likewise.
+ * src/install.c (main): Likewise.
+ * lib/quotearg.c (quotearg_n_options): Declare n1 to be of type
+ unsigned int, not just int.
+ * lib/backupfile.h (get_version): Adjust prototype.
+ (xget_version): Add prototype.
+ (base_name): Remove prototype.
+ * lib/backupfile.c [!HAVE_DECL_GETENV]: Declare getenv.
+ (backup_args): Reorder enum members.
+ (backup_types): Likewise.
+ (get_version): Take an additional parameter, `context'.
+ (xget_version): Like get_version, but if the `version' argument is NULL,
+ use the value of the envvar VERSION_CONTROL.
+ (base_name): Declare.
+ Mostly from Akim Demaille.
+
+ * lib/addext.c (base_name): Declare.
+ * src/sys2.h: Add prototype for base_name.
+
+ * lib/argmatch.c: s/argmatch_exit_failure/argmatch_die/
+ * lib/argmatch.h: Likewise.
+
+ * lib/argmatch.h (XARGMATCH): Define to return a value once again.
+ (XARGCASEMATCH): Likewise.
+
+ * lib/argmatch.c (EXIT_FAILURE): Define.
+ (ARGMATCH_DIE): Provide default.
+ (__xargmatch_internal): New function.
+ s/rogram_name/program_name.
+ From Akim Demaille.
+
+1999-01-14 Akim Demaille <demaille@inf.enst.fr>
+
+ * src/touch.c (usage): Don't make it static so that it can be
+ called from libfu.a by xargmatch.
+ * src/chgrp.c (usage): Likewise
+ * src/chmod.c (usage): Likewise
+ * src/chown.c (usage): Likewise
+ * src/cp.c (usage): Likewise
+ * src/dd.c (usage): Likewise
+ * src/df.c (usage): Likewise
+ * src/dircolors.c (usage): Likewise
+ * src/du.c (usage): Likewise
+ * src/install.c (usage): Likewise
+ * src/ln.c (usage): Likewise
+ * src/ls.c (usage): Likewise
+ * src/mkdir.c (usage): Likewise
+ * src/mkfifo.c (usage): Likewise
+ * src/mknod.c (usage): Likewise
+ * src/mv.c (usage): Likewise
+ * src/mvdir.c (usage): Likewise
+ * src/rm.c (usage): Likewise
+ * src/rmdir.c (usage): Likewise
+ * src/sync.c (usage): Likewise
+
+1999-01-12 Akim Demaille <demaille@inf.enst.fr>
+
+ * lib/backupfile.c (get_version): added the parameters KIND.
+ (xget_version): like get_version, but if argument is NULL, honor
+ the envvar VERSION_CONTROL.
+ * src/cp.c: Remove declarations of base_name and get_version.
+ (main): Use xget_version.
+ * src/mv.c (main): Likewise.
+ * src/ln.c (main): Likewise.
+ * src/install.c (main): Likewise.
+
+1999-01-12 Jim Meyering <meyering@ascend.com>
+
+ * configure.in (ALL_LINGUAS): Add Greek (el).
+ * po/el.po: New file.
+
+ * install-sh: New version from autoconf.
+ * missing: New version from automake.
+ * src/ansi2knr.c: Likewise.
+ * lib/getopt.c: New version from glibc.
+ * lib/getopt.h: Likewise.
+ * lib/getopt1.c: Likewise.
+ * lib/regex.c: Likewise.
+ * lib/regex.h: Likewise.
+ * lib/ylwrap: Remove unused file.
+
+1999-01-10 Jim Meyering <meyering@ascend.com>
+
+ * Version 4.0c (aka 4.1-b3).
+
+ * Upgrade to autoconf-2.13 and automake-1.3b.
+
+ * src/copy.c (copy_internal): Handle two more values of errno from
+ failed rename of a directory into a subdirectory of itself.
+ Thanks to Volker Borchert for testing many types and combinations
+ of systems.
+
+ * lib/argmatch.c (ARGMATCH_QUOTING_STYLE): Change from c_quoting_style
+ to escape_quoting_style.
+ (argmatch_invalid): Now that the quoted quantity is no longer double
+ quoted, remove the code that removed leading and trailing double quotes.
+
+ * src/ls.c (decode_switches): Now that escape_quoting_style no longer
+ escapes the SPACE character, arrange for SPACEs to be quoted here.
+ * lib/quotearg.c (quotearg_buffer): Change escape_quoting_style so that
+ it no longer escapes ` '.
+ Suggestion from Paul Eggert.
+
+1999-01-05 Jim Meyering <meyering@ascend.com>
+
+ * configure.in (space): Add `for' in message of statvfs check.
+ From Ulrich Drepper.
+
+1999-01-04 Jim Meyering <meyering@ascend.com>
+
+ * Version 4.1-b2.
+
+1999-01-02 Jim Meyering <meyering@ascend.com>
+
+ * lib/argmatch.c (argmatch_invalid): Remove double quotes from the
+ offending quoted argument before using it in explanatory diagnostic.
+ Use a single fprintf stmt.
+
+ * lib/argmatch.h (XARGMATCH): Don't return a value; instead,
+ modify a parameter. Add a `Die_stmt' parameter.
+ Add parentheses.
+ * lib/argmatch.c (__xargmatch_internal): Remove now-unused function.
+ (argmatch_to_argument): Add `const' attribute to first parameter.
+
+ * configure.in (AC_REPLACE_FUNCS): Remove strcasecmp (now it's
+ done in m4/jm-macros.m4).
+
+ * lib/backupfile.c (get_version): Adapt to use new interface to
+ XARGMATCH.
+ * src/cp.c: Likewise.
+ * src/ls.c: Likewise.
+ * src/touch.c: Likewise.
+
+1999-01-01 Jim Meyering <meyering@ascend.com>
+
+ * lib/makepath.c (make_dir): New function, factored out of make_path.
+ (make_path): Use make_dir rather than open-coding it twice.
+ This effectively reverses the order of the latter pair of stat/mkdir
+ calls and fixes a race condition bug whereby one of two concurrent
+ `mkdir -p' processes could fail with EEXIST.
+ Include locale.h and libintl.h, and define `_()'.
+ Mark translatable strings.
+
+ * lib/xmalloc.c: Add comments.
+ (xcalloc, xmalloc, xrealloc): Remove prototypes.
+ (xcalloc): Remove `#ifdef NOT_USED' that used to hide this function.
+ * lib/xalloc.h: Add comments.
+ (PARAMS, XMALLOC, XCALLOC, XREALLOC): Define.
+ (xcalloc, xmalloc, xrealloc): Add prototypes here.
+ Based on changes from Akim Demaille.
+
+ * lib/quotearg.c (quotearg_buffer): Cast -1 to size_t before comparing.
+ (quotearg_n): Change type of 1st parameter from int to unsigned int.
+ (quotearg_n_options): Likewise.
+ * lib/quotearg.h (quoting_style_vals): New public array.
+ From Akim Demaille.
+ (quotearg_n_options): Declare `options' parameter to be `const'.
+
+ * lib/human.c (humblock): Use ARGMATCH in place of argmatch.
+
+ * lib/backupfile.c (get_version): Use XARGMATCH in place of
+ argmatch & co.
+
+1998-12-31 Jim Meyering <meyering@ascend.com>
+
+ * src/ls.c (indicator_style_types): New variable.
+ (format_types): Rename from `formats'.
+ (color_args): Remove unnecessary `no' string.
+ (color_types): Remove corresponding `color_never' entry.
+ (main): Use ARGMATCH_TO_ARGUMENT.
+ (decode_switches): Use ARGMATCH instead of argmatch code
+ in each of several cases.
+ From Akim Demaille.
+
+ * src/cp.c (main): Use XARGMATCH in place of argmatch & co.
+ * src/touch.c (main): Likewise.
+ * lib/backupfile.c (get_version): Likewise.
+ From Akim Demaille.
+
+ * lib/strncasecmp.c: New file.
+ * lib/strcasecmp.c: Add #ifdefs so it can be used for strncasecmp, too.
+ * lib/argmatch.c (strncasecmp): Move to a separate file.
+ Add curly braces around some one-stmt-but-multiline blocks.
+
+ * lib/argmatch.c: Improvements from Akim Demaille.
+ * lib/argmatch.h: Likewise.
+
+ * lib/addext.c (addext): Protoize.
+ Indent cpp directives to match nesting.
+
+ Fix warnings from gcc -W -Wall
+ * lib/posixtm.c (posix_time_parse): Change type of index `i' from
+ int to unsigned int.
+ * lib/getdate.y (__attribute__): Define.
+ (ATTRIBUTE_UNUSED): Define.
+ (yyerror): Mark parameter as unused with ATTRIBUTE_UNUSED.
+ (MonthDayTable): Add initializers for last entry.
+ (UnitsTable): Likewise.
+ (OtherTable): Likewise.
+ (MilitaryTable): Likewise.
+
+1998-12-22 Jim Meyering <meyering@ascend.com>
+
+ * Version 4.1-b1.
+
+ * configure.in (ALL_LINGUAS): Add chinese (zh).
+
+1998-12-19 Jim Meyering <meyering@ascend.com>
+
+ * tests/ln/misc: Use absolute path for final rm.
+
+ * Makefile.maint (my-distcheck): Run make with
+ CFLAGS='-Wformat -Werror'.
+
+1998-12-18 Jim Meyering <meyering@ascend.com>
+
+ * src/copy.c (copy_internal): Remove errnoeous `%s: ' prefix
+ from format string. From Michiel Bacchiani.
+
+ * src/chgrp.c (MAXGID): Define.
+ Use gid_t (not int) as the type for `group' variables.
+ (parse_group): Use MAXGID, not INT_MAX.
+
+ * src/install.c (UID_T_MAX, GID_T_MAX): Remove definitions.
+ * src/sys2.h (UID_T_MAX, GID_T_MAX): Define them here instead.
+
+1998-12-13 Jim Meyering <meyering@ascend.com>
+
+ * lib/Makefile.am (EXTRA_DIST): Add xstat.in.
+
+1998-12-12 Jim Meyering <meyering@ascend.com>
+
+ 1998-10-15 Akim Demaille <demaille@inf.enst.fr>
+ * src/ls.c: Group DIRED's code together.
+ (full_time, inhibit_group, col_ext_type): Declare static.
+ (dired_dump_obstack): Apply sizeof to variable, instead of its type.
+ (parse_ls_color): Rename ext2 as e2. Move into the block where it
+ is used.
+
+ 1998-10-15 Akim Demaille <demaille@inf.enst.fr>
+ * src/ls.c: In order to distinguish col(umn|or):
+ (init_column_info): Renamed from init_col_info.
+ (struct column_info): Renamed from struct col_info.
+ (struct color_ext_type): Renamed from struct col_ext_type.
+
+1998-12-11 Jim Meyering <meyering@ascend.com>
+
+ * lib/Makefile.am (lstat.c): Add rule to generate this from xstat.in.
+ (stat.c): Likewise.
+ * lib/stat.c: Remove file.
+ * lib/lstat.c: Remove file.
+ * lib/xstat.in (xstat@): New file.
+
+ * lib/quotearg.c (quotearg_buffer): Use `7' as the mask, not `3'.
+ From Bruno Haible.
+ * tests/ls-2/tests: Add a test for this.
+
+ * man/help2man: import version 1.006.
+
+1998-12-07 Jim Meyering <meyering@ascend.com>
+
+ * src/copy.c: Use dir_name, not dirname. Include dirname.h.
+ * src/cp.c: Likewise.
+ * src/df.c: Likewise.
+ * src/install.c: Likewise.
+ * src/ln.c: Likewise.
+ * src/mvdir.c: Likewise.
+
+ * lib/dirname.c (dir_name): Rename from dirname.
+ Make argument `const'. Include "dirname.h"
+ * lib/dirname.h: New file.
+ * lib/Makefile.am (noinst_HEADERS): Add dirname.h.
+
+1998-12-06 Jim Meyering <meyering@ascend.com>
+
+ * lib/rpmatch.c (rpmatch) [!ENABLE_NLS]: Hard-code tests to use
+ `^[yY]' and `^[nN]' (avoiding regex). From Karl Heuer.
+
+ * lib/*.c: Ansideclify.
+
+ Fix `ls -R .' formatting bug that broke mktexlsr.
+ * src/ls.c: Include path-concat.h.
+ (basename_is_dot_or_dotdot): New function, derived from
+ is_not_dot_or_dotdot.
+ (is_not_dot_or_dotdot): Remove function.
+ (extract_dirs_from_files): Use `!basename_is_dot_or_dotdot'
+ instead of is_not_dot_or_dotdot and use path_concat instead of attach.
+
+ * tests/ls-2/tests: New file (renamed from quoting),
+ with new test for the `ls -R .' fix.
+ * tests/ls-2/quoting: Remove file.
+ * tests/ls-2/Makefile.am (TESTS): s/quoting/tests/.
+
+1998-11-29 Jim Meyering <meyering@ascend.com>
+
+ * src/remove.c (DOT_OR_DOTDOT): Move definition from this file...
+ * src/sys2.h (DOT_OR_DOTDOT): ...to this one.
+
+ * src/dd.c (dd_copy): Rename function from `copy'.
+
+ * src/cp.c (do_copy): Rename local: s/unused/copy_into_self/.
+
+ Per Kristian Hove reported that a certain move-directory-into-self
+ wasn't properly diagnosed.
+
+ * tests/mv/into-self-3: New file.
+ * tests/mv/Makefile.am (TESTS): Add into-self-3.
+ * src/copy.c (copy_internal): Remove earlier (but less effective)
+ test for move/copy-into-self.
+ Instead, deduce the move-into-self condition from errno==EINVAL
+ after a failed rename.
+ * src/mv.c (do_move): Don't arrange to remove DEST in the
+ copied-into-self case.
+
+1998-11-15 Jim Meyering <meyering@ascend.com>
+
+ Bob McCracken reported that mv couldn't handle certain combinations
+ of hard linked source files.
+
+ * tests/mv/hard-link-1: New file.
+ * tests/mv/Makefile.am (TESTS): Add hard-link-1.
+ * src/mv.c (movefile): Don't free new_dest.
+
+ * lib/error.c (error): Don't use strerror_r's return value.
+ From Johan Danielsson.
+
+1998-11-14 Jim Meyering <meyering@ascend.com>
+
+ * Version 4.0.
+
+ * Makefile.maint (cvs-dist): Search for `$tag:' rather than just $tag
+ to avoid matching a prefix of another tag.
+
+1998-11-10 Jim Meyering <meyering@ascend.com>
+
+ * configure.in (ALL_LINGUAS): Add Greek (el).
+ * po/el.po: New file.
+
+1998-11-07 Jim Meyering <meyering@ascend.com>
+
+ * Version 4.0-b7.
+
+ Accommodate the Hurd (defining lstat to rpl_lstat via config.h didn't
+ work on Hurd systems because of an inline definition of lstat in a
+ system header file). This also makes it so that you may run `ls '' '
+ on systems that let l?stat operate on the empty string.
+
+ * src/remove.c [HAVE_LSTAT_EMPTY_STRING_BUG]: Define lstat to rpl_lstat
+ and declare the latter.
+ * lib/stat.c [stat]: Remove #undef.
+ (rpl_stat): Protoize.
+ * lib/lstat.c [lstat]: Remove #undef.
+ (rpl_lstat): Protoize. Use ENOENT, not EINVAL, to be consistent
+ with lib/stat.c.
+ * acconfig.h: Remove #undef's for lstat and stat.
+
+1998-10-31 Jim Meyering <meyering@ascend.com>
+
+ * tests/rm/Makefile.am (TESTS): Add new test `empty-name',
+ but comment it out.
+ * tests/rm/empty-name: New file.
+
+ * acconfig.h (stat): New #undef.
+ This omission was uncovered when Mark Kettenis reported that
+ `rm -r ''' got a failed assertion on the Hurd. This change
+ doesn't fix *that* problem -- see above.
+
+1998-10-25 Jim Meyering <meyering@ascend.com>
+
+ * Version 4.0-b6.
+
+ * README: Man pages will now be supported to the extent that
+ people send patches.
+
+ * tests/rm/unreadable: Two new tests.
+ * tests/rm/Makefile.am (TESTS): Add new test `unreadable'. But comment
+ it out since we're so close to release and since the test compares the
+ text of diagnostics that are likely to vary between systems.
+ (TEST_ENVIRONMENT): Add required framework.
+
+ * src/remove.c (remove_cwd_entries): Don't apply CLOSEDIR to a NULL
+ pointer. (provoke with `mkdir -m 0100 x; rm -rf x')
+ Upon CLOSEDIR failure, set `status' to RM_ERROR, not RM_OK.
+ (remove_dir): Return `status', rather than always RM_OK.
+
+1998-10-18 Jim Meyering <meyering@ascend.com>
+
+ * Version 4.0-b5.
+
+ * lib/mktime.c: Update from libc with this additional change from Paul.
+ * lib/strftime.c: Likewise.
+
+ 1998-10-17 Paul Eggert <eggert@twinsun.com>
+
+ Don't invoke localtime_r or gmtime_r unless it's the GNU C
+ library's localtime_r and gmtime_r; there are too many buggy
+ implementations of localtime_r and gmtime_r out there, and
+ it's not worth keeping track of all the different bugs.
+
+ * mktime.c (__EXTENSIONS__, HAVE_LOCALTIME_R): Remove.
+ (my_mktime_localtime_r): Renamed from localtime_r; all uses changed.
+ Base it on localtime unless _LIBC.
+
+ * strftime.c (__EXTENSIONS__): Remove.
+ (my_strftime_gmtime_r): Renamed from gmtime_r; all uses changed.
+ (my_strftime_localtime_r): Renamed from localtime_r; all uses changed.
+ Base them on localtime/gmtime if not _LIBC.
+
+1998-10-17 Jim Meyering <meyering@ascend.com>
+
+ * Version 4.0-b4.
+
+ * lib/mktime.c: Declare localtime_r if necessary.
+ * lib/strftime.c: Likewise.
+
+ * tests/Fetish.pm (run_tests): Run $prog with --version only
+ if $verbose.
+
+1998-10-11 Jim Meyering <meyering@ascend.com>
+
+ * Version 4.0-b3.
+
+1998-10-08 Paul Eggert <eggert@twinsun.com>
+
+ * mktime.c (__mktime_internal): When the requested time falls
+ in a spring-forward gap of size DT, return a time that is DT
+ away from the requested time, preferring a time whose tm_isdst
+ differs from the requested value. Bump the max number of
+ probes from 4 to 6 to account for the extra probes needed to
+ discover a spring-forward gap in the worst case.
+
+1998-10-08 Paul Eggert <eggert@twinsun.com>
+
+ * mktime.c (my_mktime_localtime_r): Renamed from localtime_r.
+ Define also if HAVE_LOCALTIME_R && defined (localtime_r), with
+ a body that merely expands localtime_r; this works around a
+ bug in Digital Unix 4.0A and 4.0D.
+
+1998-10-05 Jim Meyering <meyering@ascend.com>
+
+ * po/Makefile.in.in (uninstall): Remove (historical?) command that
+ removed po-Makefile.in.in. From Akim Demaille.
+
+ * src/install.c (long_options): Add entry for --suffix=SUFFIX option.
+ From aldomel.
+
+1998-10-04 Jim Meyering <meyering@ascend.com>
+
+ * tests/mv/Makefile.am (TESTS_ENVIRONMENT): Define PERL.
+ From Kaveh Ghazi.
+
+1998-10-03 Jim Meyering <meyering@ascend.com>
+
+ * Version 4.0-b2.
+
+ * tests/mv/Makefile.am (TESTS_ENVIRONMENT): Add PATH.
+
+ * man/Makefile.maint ($(man_MANS)): Don't depend on actual executables.
+ Instead, depend on corresponding source file and on configure.in.
+ Based on suggestion and code from Akim Demaille.
+ Factor out irregular men into Makefile.summ.
+
+ * man/Makefile.am (EXTRA_DIST): Add Makefile.summ.
+
+ * man/Makefile.summ: New file.
+ * man/Makefile.maint: Include it.
+
+ * tests/Fetish.pm: Make `DEBUG' be a little more verbose.
+
+ * tests/mv/Makefile.am (TESTS): Add i-1.
+ * tests/mv/i-1: New test.
+
+1998-10-02 Jim Meyering <meyering@ascend.com>
+
+ * tests/ls-2/Makefile.am (EXTRA_DIST): Remove run-test.
+ * tests/ls-2/run-test: Remove file.
+ * tests/ls-2/quoting: Include /bin/sh driver framework.
+
+ * tests/dircolors/simple: Remove file.
+ * tests/dircolors/run-test: Embed it here instead.
+ * tests/dircolors/simple: Rename from run-test.
+
+1998-10-01 Jim Meyering <meyering@ascend.com>
+
+ * tests/Makefile.am (EXTRA_DIST): Remove README.
+ From Akim Demaille.
+
+1998-09-28 Jim Meyering <meyering@ascend.com>
+
+ * Version 4.0-pre1.
+
+ * Use automake-1.3b. See notes in README.
+
+ * src/copy.c (copy_internal): Do honor `n' reply in move-mode.
+ Otherwise, `touch a b; echo n|mv -i a b' would remove b.
+ From Bernd Leibing.
+
+1998-09-27 Jim Meyering <meyering@ascend.com>
+
+ * Version 3.16z.
+
+ * Makefile.maint (alpha): New target.
+ (my-distcheck): Tweak.
+
+ * lib/backupfile.h: Protect against multiple inclusion.
+ From Akim Demaille.
+
+ * configure.in: Remove use of AC_FUNC_FNMATCH and associated code.
+ Now, it is invoked through jm_MACROS.
+
+ * lib/strftime.c (my_strftime): Update from FSF.
+
+1998-09-26 Jim Meyering <meyering@ascend.com>
+
+ * src/copy.c (copy_internal): Don't preserve hard-linked directories
+ to avoid damaging the destination filesystem when copying from a
+ Netapp snapshot directory. With code from Kjetil Torgrim Hollstein
+ and Paul Eggert.
+
+1998-09-24 Jim Meyering <meyering@ascend.com>
+
+ * man/Makefile.maint ($(man_MANS)): Correct typo: s/-tmp/-t/.
+ From Akim Demaille.
+
+1998-09-21 Jim Meyering <meyering@ascend.com>
+
+ * man/Makefile.maint ($(man_MANS)): Remove `echo'.
+
+1998-09-20 Jim Meyering <meyering@ascend.com>
+
+ * Version 3.16y.
+
+ * src/install.c (install_file_to_path) [-D]: Create any leading
+ directories with permissions of 0755.
+
+1998-09-19 Jim Meyering <meyering@ascend.com>
+
+ * src/install.c (install_file_to_path): Copy the file after creating
+ any leading directories.
+ (main) [case 'v']: Set `x.verbose' to 1, not 0.
+ Reported by Marty Leisner.
+
+ * man/Makefile.am (transform): Define.
+ (man_MANS): Include ginstall.1, not install.1, to match the name
+ of the executable in ../src.
+ * man/ginstall.x: New file.
+ * man/install.x: Remove file.
+ * man/Makefile.maint (ginstall-summary): Renamed from install-summary.
+
+ * man/Makefile.am (EXTRA_DIST): Add Makefile.maint and GNUmakefile.
+ Reported by Akim Demaille.
+
+ * lib/modechange.c: Fix post-protoization typo.
+
+ * lib/posixtm.h (PARAMS): Define and use.
+ From Kaveh Ghazi.
+
+1998-09-12 Jim Meyering <meyering@ascend.com>
+
+ * Version 3.16x.
+
+ * src/remove.c (remove_cwd_entries): Declare to be static.
+
+ Automatically generate man pages from combination of --help
+ output and the contents of new, man/*.x files.
+ * man/Makefile.am (HELP2MAN): Define.
+ (man_aux): Define.
+ (EXTRA_DIST): Add $(HELP2MAN) and $(man_aux).
+ (MAINTAINERCLEANFILES): Add $(man_MANS).
+ * man/*.x: New files.
+ * man/GNUmakefile: New file.
+ * man/Makefile.maint: New file.
+ * man/help2man: New file.
+
+1998-09-09 Jim Meyering <meyering@ascend.com>
+
+ * lib/modechange.c: Protoize.
+
+1998-09-07 Jim Meyering <meyering@ascend.com>
+
+ * Version 3.16w.
+
+ * src/df.c (show_dev) [!posix_format]: When using --print-type,
+ let the device path and the file system type share a single (wider)
+ field if their combined lengths allow it. From Andries Brouwer.
+
+ * tests/touch/empty-file: Upon failure, suggest how to rerun the test
+ with longer delay, in case NFS clock skew was the cause of the failure.
+ Reported by Kaveh Ghazi.
+
+ * tests/ls-2/quoting: Add tests.
+ * tests/Fetish.pm (run_tests): Add simple PRE/POST hooks.
+ (_create_file): Don't include $$ in temp file name.
+ (run_tests): Use shorter suffixes for temp file names.
+
+1998-09-06 Jim Meyering <meyering@ascend.com>
+
+ * src/touch.c: Include posixtm.h.
+ (usage): Correct the description of the format of the
+ date string argument to -t option.
+ (main): Update to use rewritten posixtime function.
+ Reported by Andries Brouwer.
+
+ * lib/Makefile.am (libfu_a_SOURCES): Change posixtm.y to posixtm.c.
+ (noinst_HEADERS): Add posixtm.h.
+
+ * lib/posixtm.h: New file.
+ * lib/posixtm.c: New file. Rewritten based on posixtm.y.
+ * lib/posixtm.y: Remove file.
+
+1998-09-05 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * src/ls.c (print_dir_name): Put back.
+ (print_dir): Also print directory name header if print_dir_name is
+ true.
+
+1998-08-29 Jim Meyering <meyering@ascend.com>
+
+ * Version 3.16v.
+
+ * src/du.c (long_options): Use corresponding short-option character
+ in place of `1', and `NULL' in place of pointer in initialization.
+ * src/cp.c (long_opts): Likewise.
+ * src/ln.c (long_options): Likewise.
+ * src/mkdir.c (longopts): Likewise.
+ * src/rmdir.c (longopts): Likewise.
+ * src/chown.c: Replace 12 and 13 with CHAR_MAX + 1 and CHAR_MAX + 2
+ respectively.
+ * src/chmod.c (long_options): Replace 12 with CHAR_MAX + 1.
+ * src/chgrp.c (long_options): Replace 12 with CHAR_MAX + 1.
+
+ * tests/Fetish.pm: New file -- moved from ls-2/.
+ * configure.in (AC_OUTPUT): Add tests/dircolors/Makefile.
+ * tests/Makefile.am (SUBDIRS): Add dircolors.
+ (EXTRA_DIST): Add Fetish.pm.
+ * tests/dircolors: New directory
+
+ * src/ls.c (print_dir_name): Remove global variable.
+ (print_dir): When trace_dirs is set, always print the directory
+ name header.
+
+1998-08-26 Jim Meyering <meyering@ascend.com>
+
+ * src/dircolors.c (dc_parse_stream): Don't segfault when a line
+ contains only one token. Reported by Olav Morkrid.
+
+1998-08-24 Paul Eggert <eggert@twinsun.com>
+
+ * src/system.h (CHAR_MIN, CHAR_MAX):
+ Renamed from SCHAR_MIN, SCHAR_MAX, since these
+ macros apply to char, not signed char.
+
+ * src/df.c, src/du.c, src/touch.c (long_options, main):
+ Don't assume ASCII.
+
+1998-08-18 Paul Eggert <eggert@twinsun.com>
+
+ Port nanosecond-resolution times to UnixWare 2.1.2 and
+ pedantic Solaris 2.6.
+
+ * configure.in (AC_STRUCT_ST_MTIM_NSEC): Renamed from AC_STRUCT_ST_MTIM.
+ * acconfig.h (ST_MTIM_NSEC): New #undef.
+ * src/system.h (ST_TIME_CMP_NS, ATIME_CMP, CTIME_CMP, MTIME_CMP):
+ Use new ST_MTIM_NSEC macro.
+
+1998-08-16 Jim Meyering <meyering@ascend.com>
+
+ * lib/filemode.h (PARAMS): Define and use.
+ From Kaveh Ghazi.
+
+1998-08-15 Jim Meyering <meyering@ascend.com>
+
+ * Version 3.16u.
+
+ * Makefile.maint (announcement): New target.
+
+ * tests/mv/into-self: Update to reflect changed behavior of mv.
+ * src/mv.c (do_move): Fail upon attempt to move a directory into itself.
+ With prodding from François Pinard :-)
+
+ * tests/ls-2/Fetish.pm: New file
+ * tests/ls-2/run-test: New file
+
+ * src/copy.c (copy_internal) [one-file-system]: Do copy mount point
+ directories (but none of their entries). This makes `cp --archive
+ --one-file-system' use the same policy `tar --one-file-system' does.
+ From Marty Leisner.
+
+ * src/ls.c (qmark_funny_chars): Add comment from Paul eggert.
+
+1998-08-14 Jim Meyering <meyering@ascend.com>
+
+ * tests/mv/setup: Work around another bug in Ultrix4.3a's /bin/sh.
+ Reported by Christian von Roques.
+
+ * configure.in (AC_OUTPUT): Add tests/ls-2/Makefile.
+ * tests/Makefile.am (SUBDIRS): Add ls-2.
+ * tests/ls-2: New directory
+
+1998-08-14 Christian von Roques <roques@pond.sub.org>
+
+ * lib/mountlist.c (read_filesystem_list) [MOUNTED_GETMNT]: Don't
+ infloop on getmnt(2) returning 0.
+
+ * tests/cp/backup-is-src: Avoid bug in Ultrix4.3a /bin/sh,
+ not initializing output redirection of : command.
+ * tests/mv/backup-is-src: Likewise.
+ * tests/rm/i-1: Likewise.
+
+1998-08-12 Jim Meyering <meyering@ascend.com>
+
+ * po/Makefile.in.in: Provide automake-style DESTDIR support.
+ From Johan Danielsson.
+ (DISTFILES): Remove ChangeLog.
+ po/ChangeLog: Remove empty file.
+
+ * configure.in (AC_STRUCT_ST_DM_MODE): Use it.
+
+ * src/ls.c: Include filemode.h.
+ * src/chmod.c: Likewise.
+
+ * lib/filemode.c (ftypelet): Add comments for Cray DMF support.
+ From Johan Danielsson.
+ Protoize. Tsort function definitions and remove prototypes of
+ static functions.
+ (mode_string): Remove prototype.
+ * lib/filemode.h (mode_string): New file.
+ * lib/Makefile.am (noinst_HEADERS): Add filemode.h.
+
+1998-08-09 Jim Meyering <meyering@ascend.com>
+
+ * Version 3.16t.
+
+1998-07-31 Paul Eggert <eggert@twinsun.com>
+
+ Add support for filesystems whose timestamps have better resolution
+ than 1 second (e.g. Solaris 2.6, recent Linux kernels).
+
+ * configure.in (AC_STRUCT_ST_MTIM): Add.
+
+ * src/copy.c (copy_internal): Compare time stamps with
+ subsecond resolution if available.
+
+ * src/ls.c (compare_ctime, rev_cmp_ctime, compare_mtime,
+ rev_cmp_mtime, compare_atime, rev_cmp_atime): Compare time
+ stamps with subsecond resolution if available.
+
+ * src/system.h (ST_TIME_CMP_NS, ST_TIME_CMP, ATIME_CMP,
+ CTIME_CMP, MTIME_CMP): New macros.
+
+1998-08-01 Jim Meyering <meyering@ascend.com>
+
+ * configure.in (ALL_LINGUAS): Add slovak (sk) and norwegian (no).
+
+1998-07-28 Paul Eggert <eggert@twinsun.com>
+
+ * lib/mountlist.c (read_filesystem_list): Remove all_fs
+ argument, but put the necessary information into the result so
+ that the caller can ignore filesystems that he's not
+ interested in.
+
+ * lib/mountlist.h (struct mount_entry):
+ New members me_dummy, me_remote.
+ (read_filesystem_list): Remove all_fs argument.
+ (REMOTE_FS_TYPE): Remove.
+ (ME_DUMMY, ME_REMOTE): New macros.
+
+ * lib/xstrtol.c: Remove duplicate include of <stdio.h>.
+
+ * src/df.c (show_all_fs):
+ Revert to boolean value; the old negative value is
+ now in show_local_fs.
+ (show_local_fs): New variable.
+ (show_dev): New args me_dummy and me_class. Use show_local_fs
+ and boolean show_all_fs in combination with these new args
+ to decide whether to show a device.
+ (show_disk): Pass flags to show_dev.
+ (show_point): Use a non-dummy mount entry if possible.
+ (show_all_entries): Pass flags to show_dev.
+ (main): --local sets show_local_fs now. Ask for file system types if
+ show_local_fs is nonzero, since ME_REMOTE might need them.
+
+1998-07-27 Jim Meyering <meyering@ascend.com>
+
+ * tests/install/Makefile.am (TESTS_ENVIRONMENT): Set LS, MKDIR, and RM.
+
+ * tests/install/basic-1: Add a test for this.
+ * src/install.c: Make copy create each destination file initially
+ with mode 0600 so strip will work, then apply specified mode.
+ Arne Henrik Juul reported that `./ginstall -s -c -m 555 dd /tmp' failed.
+
+1998-07-25 Jim Meyering <meyering@ascend.com>
+
+ * src/mv.c (chown): Remove unused definition.
+ Reported by Kaveh Ghazi.
+
+ * src/rmdir.c (main): rmdir fails with EEXIST on some systems.
+ Handle that, so --ignore-fail-on-non-empty works.
+ (EEXIST): Define to zero if not defined.
+ (ENOTEMPTY): Likewise.
+
+ * tests/cp/same-file: Remove `diff' I'd put in for debugging.
+ Exit with the status from cmp.
+
+ * Version 3.16s.
+
+ * tests/cp/same-file: Skip three more unportable tests.
+ These failed on SunOS4.1.4.
+
+ * src/copy.c (SAME_INODE): Remove definition.
+ * src/sys2.h (SAME_INODE): Define it here instead.
+
+ * src/remove.c (same_file): New function.
+ (remove_dir): Use it to give a better diagnostic when rmdir fails
+ because it can't remove the current directory.
+
+ * src/df.c (long_options): Changes table entries not to use this form:
+ {"all", no_argument, &show_all_fs, 1},
+ but rather this form:
+ {"all", no_argument, NULL, 'a'},
+ Using the latter, all the option handling in one place: the getopt loop.
+
+ * lib/mountlist.c (read_filesystem_list) [MOUNTED_GETMNTINFO]:
+ Use fsp_to_string.
+ (fsp_to_string): Don't xmalloc return value (yet).
+ (xatoi): Ansideclify.
+ (fstype_to_string): Ansideclify.
+ * lib/mountlist.h: Define and use PARAMS macro.
+
+ * lib/utime.c: New file.
+ * src/touch.c (utime_now): Moved into m4/utimes.m4.
+ (touch) [!HAVE_UTIME_NULL]: Remove #ifdef and the use of utime_now
+ in the if-block.
+
+ * configure.in (jm_FUNC_UTIME): Use this, not AC_FUNC_UTIME.
+
+1998-07-22 Paul Eggert <eggert@twinsun.com>
+
+ * lib/human.c (human_readable): amt -> damt, to fix typo when
+ computing which power to use after overflow occurs during
+ multiplication.
+
+ * lib/xstrtol.c: Include <stdio.h> if NDEBUG is not defined;
+ needed on SunOS 4.
+
+1998-07-21 Paul Eggert <eggert@twinsun.com>
+
+ Add df -l or --local option.
+ * doc/fileutils.texi: Document it.
+ * lib/mountlist.h (REMOTE_FS_TYPE): New macro.
+ * lib/mountlist.c (read_filesystem_list):
+ If all_fs is negative, omit non-local filesytems.
+
+ * src/df.c (show_dev): Omit local devices if show_all_fs is negative.
+ (show_all_fs): If negative, omit non-local filesystems.
+ All uses of (all_fs != 0) changed to (all_fs > 0).
+ (long_options, usage, main): Add -l or --local option.
+ (main): When asking for df of an explicit file name, get all
+ the mount points, so that we're more likely to find it when
+ we look it up.
+
+1998-07-18 Jim Meyering <meyering@ascend.com>
+
+ * src/copy.c (copy_internal): Add another exclusion from the
+ sameness test: when --force has been specified, the destination
+ is unlinked before any copy.
+ (copy_internal): Add yet another: when both src and dest are symlinks.
+
+ * tests/touch: New subdir.
+ * tests/Makefile.am (SUBDIRS): Add touch.
+ * configure.in (AC_OUTPUT): Add tests/touch/Makefile.
+
+ * tests/mv/into-self-2: New test.
+ * tests/mv/Makefile.am (TESTS): Add into-self-2.
+
+1998-07-06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * lib/mountlist.c (read_filesystem_list): Fix more memory leaks on
+ failure.
+
+1998-07-16 Jim Meyering <meyering@ascend.com>
+
+ Work around failure of chown calls on m68k-motorola-sysv systems.
+ * src/chown.c: Include lchown.h.
+ * lib/Makefile.am (noinst_HEADERS): Add lchown.h.
+ * lib/lchown.h: New file, just to define ENOSYS on systems that lack it.
+ * lib/lchown.c: Include lchown.h.
+ Reported by and with suggestions from Manfred Hollstein.
+
+1998-07-12 Paul Eggert <eggert@twinsun.com>
+
+ * src/df.c (print_header): Print "1k-blocks", not "1.0k-blocks".
+
+1998-07-07 Jim Meyering <meyering@ascend.com>
+
+ * src/sys2.h [HAVE_FCLOSE_UNLOCKED]: Remove unnecessary block.
+ Suggestion from Ulrich Drepper.
+
+1998-07-04 Jim Meyering <meyering@ascend.com>
+
+ * lib/safe-read.c (safe_read): Change type of pointer parameter to
+ `void' to avoid Irix4 cc errors. Reported by Kaveh Ghazi.
+ * lib/safe-read.h: Update prototype.
+
+ * src/dircolors.c (parse_line): Add casts to avoid errors from
+ Irix4's `cc' C compiler. From Kaveh Ghazi.
+
+ * lib/xstrtol.c: Include stdio.h. Required on some systems when
+ using assert. From Kaveh Ghazi.
+
+ * tests/mv/backup-is-src: Use cmp, not diff.
+ Reported by Kaveh Ghazi.
+
+1998-07-03 Jim Meyering <meyering@ascend.com>
+
+ * Version 3.16r.
+
+ * src/remove.c (remove_dir): Use fprintf (not error) to avoid
+ newline in prompt.
+
+1998-06-30 Paul Eggert <eggert@shade.twinsun.com>
+
+ * lib/mountlist.c (read_filesystem_list):
+ Don't leak memory on failure.
+ Don't create a dummy struct mount_entry entry;
+ use the address-of-the-tail-address method instead.
+ Preserve errno if possible on failure, setting it to 0 if inapplicable.
+ Close file descriptor leak if the F_SETLKW failed.
+ Report an error if SVR4 lock file cannot be opened for some reason
+ other than a nonexistent lock file.
+
+1998-07-03 Jim Meyering <meyering@ascend.com>
+
+ * configure.in (AM_WITH_REGEX): Remove. Now the replacement
+ macro, jm_WITH_REGEX, is bundled with the rest in jm_MACROS.
+ * acconfig.h (WITH_REGEX): Remove undef.
+ * lib/Makefile.am (noinst_HEADERS): Add regex.h.
+ * lib/rpmatch.c: Remove #ifdef around <regex.h> inclusion.
+ * lib/rx.c: Remove file.
+ * lib/rx.h: Remove file.
+
+ * src/df.c (df_readable): Rename local so as not to shadow global.
+
+ * src/copy.c (SAME_INODE): New macro.
+ Use it to replace open-coded equivalents.
+ (copy_internal): Rename variable and reverse sense of tests
+ to make the code a little clearer.
+
+1998-07-02 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * src/copy.c (copy_internal): Try harder identifying a relative
+ symbolic link in the current directory.
+
+ * src/copy.c (copy_internal): Don't skip test for same file if
+ creating a hardlink from symlink over a non-symlink while making
+ backups.
+ * tests/cp/same-file: Skip tests that depend on link(2) not
+ following symlinks.
+
+1998-07-02 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * src/copy.c (copy_internal): Don't call chown on a symlink.
+
+1998-07-01 Jim Meyering <meyering@ascend.com>
+
+ * lib/xstrtol.c: Don't define NDEBUG here, now that it's done via
+ configure's --disable-assert option.
+
+1998-06-29 Paul Eggert <eggert@twinsun.com>
+
+ * lib/mountlist.c (read_filesystem_list):
+ Plug file descriptor leak on failure.
+ Report failure if lock file can't be opened for some reason
+ other than nonexistence.
+
+1998-06-29 Jim Meyering <meyering@ascend.com>
+
+ * Version 3.16q.
+
+ * lib/mountlist.c (read_filesystem_list) [MOUNTED_GETMNTENT2]:
+ Always close stream and file descriptor before returning.
+
+ * src/df.c (main): Move the test of the result of the
+ read_filesystem_list call up out of if-block -- code in the
+ else-block depends on it too.
+
+1998-06-29 Paul Eggert <eggert@twinsun.com>
+
+ * lib/mountlist.c (read_filesystem_list): If SVR4, lock
+ /etc/.mnttab.lock if available, to avoid race conditions
+ (e.g. with the automounter on Solaris 2.6).
+
+ Include <errno.h>, <fcntl.h>, <unistd.h>.
+
+1998-06-29 Jim Meyering <meyering@ascend.com>
+
+ * lib/mountlist.c (fstype_to_string): Guard with
+ #if ! HAVE_F_FSTYPENAME_IN_STATFS.
+
+1998-06-28 Paul Eggert <eggert@twinsun.com>
+
+ Add support for new --block-size option and
+ BLOCK_SIZE. DF_BLOCK_SIZE, etc. variables to `df', `du', and `ls'.
+ Adjust df output slightly to accommodate larger filesystems.
+
+ * lib/human.c, lib/human.h (human_readable): Coalesce last two args
+ into one, for convenience. All callers changed.
+ (human_block_size): New function.
+ * lib/human.c: Include <config.h> only if HAVE_CONFIG_H.
+ Include <stdlib.h> if HAVE_STDLIB_H;
+ declare getenv unless HAVE_DECL_GETENV.
+ (_): New macro.
+ Include <argmatch.h>, <error.h>, <xstrtoul.h>.
+ (DEFAULT_BLOCK_SIZE): New macro.
+ (block_size_args, block_size_types): New constants.
+ (humblock): New function.
+ * lib/xstrtol.h (__ZLONG_MAX): Remove.
+ * lib/xstrtol.c (bkm_scale): Don't assume that you can convert
+ unsigned long to double without losing information.
+ (bkm_scale_by_power): New function.
+
+ * lib/xstrtol.c (__xstrtol), src/dd.c (parse_integer):
+ Add support for SI-like suffixes like "GB" and "TD".
+ * src/dd.c (usage): Describe it.
+
+ * src/df.c, src/du.c, src/ls.c (human_readable_base, output_units):
+ Remove; replace with new variable output_block_size. All uses changed.
+ (long_options, usage, main): Add --block-size.
+ (main, decode_switches): Use new human_block_size function to
+ initialize output block size consistently with other programs.
+
+ * src/df.c (print_header, show_dev): Shrink some columns and expand
+ others, to squeeze in support for today's larger filesystems.
+ (print_header): Print output block size using power-of-1024 SI format.
+ (df_readable): Coalesce last two args into one, for convenience.
+ All callers changed.
+ (main): Remove check for portable output format and larger
+ or human-readable block sizes.
+
+ * NEWS, doc/fileutils.texi: Describe above changes.
+
+1998-06-28 Jim Meyering <meyering@ascend.com>
+
+ * src/ls.c (usage): Make --kilobytes description consistent with
+ that in du and df. From Göran Uddeborg.
+
+ * lib/mountlist.c (fsp_to_string): Clean out some crufty #ifdefs
+ now that we're using the jm_FSTYPENAME autoconf macro.
+ James Tanis reported the old version didn't compile on BSDI3.
+
+ * configure.in: Move big block of list_mounted_fs checks into
+ new jm_LIST_MOUNTED_FILESYSTEMS macro.
+ Use new jm_FSTYPENAME macro.
+
+ * src/sys2.h: Add macro definitions for GNU libc *_unlocked wrappers.
+ * src/ls.c: Add DIRED_ prefix to the macros: PUTCHAR, FPUTS, and
+ FPUTS_LITERAL
+
+1998-06-27 Jim Meyering <meyering@ascend.com>
+
+ * src/copy.c (copy_reg): Detect identical source and dest here.
+ (copy_internal): Make the test symmetric.
+
+ * tests/cp/same-file: New file.
+ * tests/cp/Makefile.am (TESTS): Add it.
+
+1998-06-26 Jim Meyering <meyering@ascend.com>
+
+ * src/remove.c (remove_file): Remove `non-directory' part of
+ `removing non-directory FILE' verbose message.
+
+1998-06-23 Jim Meyering <meyering@ascend.com>
+
+ * src/df.c (show_dev): Increase field width for blocks, used,
+ and available columns from 7 to 8.
+
+1998-06-21 Jim Meyering <meyering@ascend.com>
+
+ * aclocal.m4: Regenerate with fixed gettext.m4 installed.
+ See README-alpha for details.
+
+1998-06-02 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * src/automake-wrap: Quote `&' in sed replacement text.
+
+1998-05-31 Jim Meyering <meyering@ascend.com>
+
+ * Version 3.16p.
+
+ * src/install.c (main): Fix argv-handling bug in my 1998-05-09 change.
+ Reported by Don Parsons.
+
+1998-05-30 Jim Meyering <meyering@ascend.com>
+
+ * tests/ls/time-1: Clean up ctime test. Note that it fails also
+ on Solaris5.5.1 tmpfs file systems.
+
+ Solve the `rm -f rm' problem more cleanly.
+ * src/.rm-warning: Remove file.
+ * src/automake-wrap: New file.
+ * src/Makefile.am (AUTOMAKE): Define to use automake-wrap.
+ (Makefile.in): Depend on automake-wrap.
+ (EXTRA_DIST): Add automake-wrap.
+ (DISTCLEANFILES): Remove definition.
+ (rm_DEPENDENCIES): Likewise.
+ (.rm-warn-stamp): Remove rule.
+
+1998-05-27 Jim Meyering <meyering@ascend.com>
+
+ * tests/ls/Makefile.am (TESTS): s/cr-1/rt-1/
+ * tests/ls/rt-1: New file, renamed from cr-1.
+
+1998-05-26 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * src/Makefile.am (.rm-warn-stamp): Cope with $(srcdir) != ".".
+
+ * tests/ls/cr-1: Don't use the ctime for testing, it is impossible
+ to set it reliably.
+
+1998-05-25 Jim Meyering <meyering@ascend.com>
+
+ * configure.in (_GNU_SOURCE): AC_DEFINE it here.
+ * acconfig.h (_GNU_SOURCE): Remove definition from @TOP@ section.
+ [!_GNU_SOURCE]: Add #undef instead.
+
+1998-05-24 Jim Meyering <meyering@ascend.com>
+
+ * Version 3.16o.
+
+ * src/ansi2knr.c: Use new version from automake-1.3.
+
+ * src/chown.c: Accept new option, --dereference.
+ --no-dereference is now the default.
+ (enum Change_status) [CH_NOT_APPLIED]: New member.
+ (change_symlinks): Enable this by default, now.
+ (describe_change): Handle new case.
+ (change_file_owner): Add new parameter: cmdline_arg. Update callers.
+ Reorganize to reflect changed semantics.
+ (LCHOWN): Remove definitions.
+
+ * lib/lchown.c: New file.
+
+1998-05-21 Jim Meyering <meyering@ascend.com>
+
+ * configure.in (ALL_LINGUAS): Add russian (ru).
+
+1998-05-16 Jim Meyering <meyering@ascend.com>
+
+ * src/remove.c (hash_compare_strings): Return true or false, not 1/0.
+ (remove_cwd_entries): Use RM_OK, not equivalent literal `1'.
+
+ * lib/hash.c (is_prime): Ansideclify.
+ (next_prime): Ansideclify. Add an assertion.
+
+ * lib/Makefile.am (EXTRA_DIST): Remove. Automake groks the `LIBOBJS='
+ lines from the m4/*.m4 macros, so the hack of including some
+ custom-replaced C source file names here is no longer needed.
+
+ * configure.in (jm_MACROS): New wrapper macro.
+ Remove uses of most jm_* macros.
+
+ * acconfig.h (HAVE_STRUCT_UTIMBUF): Remove #undef. Now it's handled
+ as part of utimbuf.m4.
+ (memcmp): Add #undef.
+
+1998-05-12 Jim Meyering <meyering@ascend.com>
+
+ * configure.in: Use my replacement AC_ISC_POSIX rather than
+ open-coding it.
+
+ * src/copy.c (copy_internal): Plug a small leak.
+
+1998-05-10 Jim Meyering <meyering@ascend.com>
+
+ * src/mv.c (do_move): Remove lots of code that was duplicated in
+ copy.c (copy), now that copy() has better support for mv. This fixes
+ a bug with cross-filesystem `mv -i' whereby you could get two prompts
+ for the same destination file and eventually remove the destination
+ file even though one of the responses was negative.
+ Reported by Dirk Lattermann.
+
+ * src/copy.h: Better support for mv:
+ [struct cp_options] (move_mode): New member.
+ * src/copy.c (copy_internal): Use new move_mode member.
+ Add parameter.
+ (copy): Add parameter.
+
+ * tests/cp/Makefile.am (TESTS): Add backup-is-src.
+ * tests/mv/Makefile.am (TESTS): Likewise.
+
+ * lib/userspec.c: Don't declare strdup if it's defined as a macro.
+ Reported by Lorne Baker.
+
+ * src/Makefile.am (ginstall_SOURCES): Add copy.c and cp-hash.c.
+
+ * src/mv.c (cp_option_init): Initialize new members.
+ * src/cp.c (cp_option_init): Likewise.
+ (main): Set new preserve_* options.
+
+1998-05-09 Jim Meyering <meyering@ascend.com>
+
+ * src/copy.h: Support for install:
+ [struct cp_options] (failed_unlink_is_fatal): New member.
+ (preserve_owner_and_group): New member.
+ (preserve_chmod_bits): New member.
+ (preserve_timestamps): New member.
+ (preserve): Remove member.
+ (set_mode): New member.
+ (mode): New member.
+ * src/copy.c (new_nondir_mode): New function. Use where appropriate.
+ Use more-specific preserve_* members in place of removed `preserve'.
+ (copy_internal): Honor failed_unlink_is_fatal.
+
+ * src/install.c (main): Rewrite argv-handling to be clearer.
+ (copy_file): Rewrite to use copy.c (copy).
+ (change_attributes): Get rid of now-(with chown wrapper)-unnecessary
+ `no_need_to_chown' parameter. Fix caller.
+ (install_file_in_file): Remove now-unnecessary `to_created' parameter.
+ (cp_option_init): New function.
+ Update several functions to take new parameter specifying copy options.
+
+ * tests/install: New subdir, with one basic test.
+ * tests/Makefile.am (SUBDIRS): Add install.
+ * configure.in (AC_OUTPUT): Add tests/install/Makefile.
+
+ * src/dd.c: Include safe-read.h.
+ Don't declare safe_read.
+ * src/touch.c: Likewise.
+
+ * configure.in (jm_TYPE_SSIZE_T): Use it.
+ * acconfig.h (ssize_t): Add undef.
+
+1998-05-03 Jim Meyering <meyering@ascend.com>
+
+ * po/: Update from gettext-0.10.35.
+ * intl/: Likewise.
+ * configure.in: Remove use of AC_LINK_FILES.
+ (AC_OUTPUT): Remove po/Makefile-generating sed command.
+
+1998-04-28 Jim Meyering <meyering@ascend.com>
+
+ * src/dircolors.c (parse_line): Use ISSPACE, not isspace.
+ Use unsigned char * pointers, not potentially signed ones, to avoid
+ sign extension.
+
+1998-04-26 Jim Meyering <meyering@ascend.com>
+
+ * configure.in: Use jm_ASSERT.
+ * acconfig.h: Add NDEBUG.
+
+ * src/mv.c: Don't define NDEBUG.
+ * src/cp.c: Likewise.
+
+1998-04-14 Jim Meyering <meyering@ascend.com>
+
+ * src/.rm-warning: New file.
+ * src/Makefile.am (EXTRA_DIST): Add .rm-warning
+ (DISTCLEANFILES): Add .rm-warn-stamp.
+ (rm_DEPENDENCIES): Depend on .rm-warn-stamp.
+ (.rm-warn-stamp): New rule.
+ (rm_prep): Comment out rule.
+
+ * src/df.c (main): Use STREQ in string equality tests, not strcmp.
+ * src/dircolors.c (dc_parse_stream): Likewise.
+ (dc_parse_file): Likewise.
+ * src/du.c (main): Likewise.
+ * src/ls.c (decode_switches): Likewise.
+ * src/remove.c (hash_compare_strings): Likewise.
+ * src/touch.c (main): Likewise.
+
+1998-04-13 Jim Meyering <meyering@ascend.com>
+
+ * lib/Makefile.am (noinst_HEADERS): Add safe-read.h.
+
+1998-04-11 Jim Meyering <meyering@ascend.com>
+
+ * lib/hash.c: Add curly braces around statements in
+ if/else/while/do/etc. that span more than a line -- even around
+ multiline simple statements or single-line simple statements
+ preceded by a comment line.
+
+1998-04-09 Jim Meyering <meyering@ascend.com>
+
+ * configure.in: Don't use AC_PATH_PROG to check for perl, now that
+ we use jm_PERL.
+
+1998-04-06 Jim Meyering <meyering@ascend.com>
+
+ * src/cp-hash.c (cph_hash_insert): Rename from now-conflicting
+ hash_insert. Also declare to be static.
+ * src/cp-hash.h (hash_insert): Remove declaration.
+
+ * lib/hash.c: Lots of minor spec and name changes, and new comments.
+ (hash_rehash): Rewrite to be easier on the allocator.
+ From François Pinard.
+ * lib/hash.h: More comments.
+ * src/remove.c: Change names/usage of hash-related functions to work
+ with the above.
+
+1998-04-05 Jim Meyering <meyering@ascend.com>
+
+ * lib/regex.c (WIDE_CHAR_SUPPORT): Define.
+ This now depends on HAVE_BTOWC so systems that lack btowc (like
+ solaris-2.5.1) don't lose.
+
+1998-04-04 Jim Meyering <meyering@eng.ascend.com>
+
+ * GNUmakefile: Add conditionals so that running `make' in an
+ unconfigured source directory will get a reasonable diagnostic.
+
+ * Makefile.am (ACLOCAL_AMFLAGS): Define this, so automake/aclocal
+ know about the m4/ subdirectory.
+ * Makefile.maint (aclocal-files): Remove now-unnecessary (with
+ automake-1.2h and the above change) aclocal-related rules and includes.
+
+1998-04-01 Jim Meyering <meyering@eng.ascend.com>
+
+ * tests/ls/cr-1: New file.
+ * tests/ls/Makefile.am (TESTS): Add cr-1.
+
+1998-03-31 Jim Meyering <meyering@eng.ascend.com>
+
+ * src/system.h (TYPE_MAXIMUM): Cast result to `(t)' so this macro
+ works with `unsigned char'.
+ From Greg Wooledge.
+ (SCHAR_MIN, SCHAR_MAX, SHRT_MIN, SHRT_MAX, LONG_MAX, ULONG_MAX): Define.
+
+ * lib/xstrtol.c: Merge with the version from textutils.
+
+ * lib/memcmp.c (rpl_memcmp): Rename from memcmp.
+
+1998-03-30 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * src/ls.c (compare_ctime, rev_cmp_ctime, compare_mtime,
+ rev_cmp_mtime, compare_atime, rev_cmp_atime, compare_size,
+ rev_cmp_size): Use file name as secondary sort key to get
+ consistent sorting.
+
+1998-03-28 Jim Meyering <meyering@eng.ascend.com>
+
+ * src/copy.c: Add copyright.
+ * src/remove.c: Add copyright.
+ [_AIX]: Add #pragma alloca.
+
+1998-03-27 Jim Meyering <meyering@eng.ascend.com>
+
+ * Makefile.maint ($(ACLOCAL_M4)): Replace old rule with this
+ dependency and the := assignment of ACLOCAL to make the default
+ rule use the `-I m4' option.
+
+ * Makefile.am (AUTOMAKE_OPTIONS): Require 1.2h.
+
+1998-03-23 Jim Meyering <meyering@eng.ascend.com>
+
+ * acconfig.h: Remove HAVE_INTTYPES_H, now that m4/inttypes_h.m4
+ automatically handles it.
+
+1998-03-21 Jim Meyering <meyering@eng.ascend.com>
+
+ * lib/quotearg.h: Update from patch-2.5.3.
+ * lib/quotearg.c: Likewise.
+ * src/ls.c (decode_switches): Pass a null pointer instead of address
+ of quotearg_quoting_options.
+
+1998-03-19 Paul Eggert <eggert@twinsun.com>
+
+ * lib/fsusage.h (struct fs_usage): New member
+ fsu_bavail_top_bit_set.
+ * lib/fsusage.c: Include <limits.h>.
+ (CHAR_BIT, EXTRACT_TOP_BIT, PROPAGATE_TOP_BIT): New macros.
+ (get_fs_usage): If top bit of system variable corresponding to
+ fsu_bavail is set, then set fsu_bavail_top_bit_set, and
+ sign-extend the value when storing it into fsu_bavail.
+ * src/df.c (show_dev): If fsu_bavail_top_bit_set is nonzero,
+ assume the original value corresponding to fsu_bavail was negative.
+ Reported by Arne Juul.
+
+1998-03-18 Jim Meyering <meyering@eng.ascend.com>
+
+ * src/Makefile.am (rm-prep): Add dependency and rule to save users
+ with `.' too early in their PATH from the `rm: cannot unlink `rm':
+ Text file busy' error. Suggestion from Philippe De Muyter.
+
+1998-03-15 Jim Meyering <meyering@eng.ascend.com>
+
+ * Version 3.16n.
+
+ * lib/chown.c: Use #if, not #ifdef with HAVE_ macros.
+ * lib/closeout.c: Likewise.
+ * lib/dirname.c: Likewise.
+ * lib/euidaccess.c: Likewise.
+ * lib/fileblocks.c: Likewise.
+ * lib/filemode.c: Likewise.
+ * lib/ftruncate.c: Likewise.
+ * lib/group-member.c: Likewise.
+ * lib/isdir.c: Likewise.
+ * lib/long-options.c: Likewise.
+ * lib/mountlist.c: Likewise.
+ * lib/path-concat.c: Likewise.
+ * lib/save-cwd.c: Likewise.
+ * lib/savedir.c: Likewise.
+ * lib/strcasecmp.c: Likewise.
+ * lib/strdup.c: Likewise.
+ * lib/userspec.c: Likewise.
+ * lib/yesno.c:: Likewise.
+
+ * src/chgrp.c: Use #if, not #ifdef with HAVE_ macros.
+ Use #if !, not #ifndef with HAVE_ macros.
+ * src/chown.c: Likewise.
+ * src/copy.c: Likewise.
+ * src/dd.c: Likewise.
+ * src/dircolors.c: Likewise.
+ * src/install.c: Likewise.
+ * src/ls.c: Likewise.
+ * src/mv.c: Likewise.
+ * src/touch.c: Likewise.
+
+ * configure.in: Use jm_PREREQ.
+
+1998-03-14 Jim Meyering <meyering@eng.ascend.com>
+
+ Revert most `getdate.h -> get-date.h' changes of 1998-02-20.
+ With automake-1.2f, that hack is no longer needed.
+
+ * src/remove.c: Use `virtual memory exhausted' message, not
+ `Memory exhausted' to be consistent with the majority of other
+ such messages.
+ Say `removing all...', not `removing any...'.
+ * src/rmdir.c (remove_parents): Be consistent with documentation of
+ --verbose option and with remove.c in saying `removing...' before
+ the operation is attempted.
+ (main): Likewise.
+ Suggestions from Santiago Vila.
+
+ * src/copy.c (copy_dir): Add new parameter, copy_into_self, and set it.
+ (copy_internal): Likewise.
+ (copy): Likewise.
+ Update all callers.
+ * src/copy.h (copy): Update prototype.
+ * src/cp.c (do_copy): Add unused arg in calls to copy.
+ * src/mv.c (do_move): Add &copy_into_self arg in call to copy.
+ Don't remove source directory when copy_into_self is nonzero.
+ Reported by Arne Henrik Juul.
+
+ * tests/mv/into-self: Test for the above.
+ * tests/mv/Makefile.am (TESTS): Add into-self.
+
+1998-02-28 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * userspec.c (parse_user_spec) [__DJGPP__]: Make function know
+ about any arbitrary user and group by pretending to be the user
+ and to belong to the group specified in `spec_arg' argument.
+
+ * idcache.c (getuidbyname) [__DJGPP__]: Make function know about
+ any arbitrary user name.
+ (getgidbyname) [__DJGPP__]: Make function know about any arbitrary
+ group name.
+
+1998-02-24 Jim Meyering <meyering@eng.ascend.com>
+
+ * lib/xstrtol.c (TYPE_SIGNED): Define.
+ (TYPE_MAXIMUM): Define.
+ (ULONG_MAX): Use TYPE_MAXIMUM.
+ (LONG_MAX): Use TYPE_MAXIMUM.
+
+ * lib/fnmatch.c: Update from libit.
+ * lib/idcache.c: Update from libit.
+
+1998-02-23 Paul Eggert <eggert@twinsun.com>
+
+ * lib/quotearg.h, lib/quotearg.c: New files.
+ * lib/Makefile.am (libfu_a_SOURCES): Add quotearg.c.
+ (noinst_HEADERS): Add quotearg.h.
+
+ * src/ls.c: Include new file quotearg.h.
+ (enum indicator_style): Rename all to classify, and not_programs
+ to file_type, to match option spellings. All users changed.
+ (indicator_style_args): New constant.
+ (quote_funny_chars, quote_as_string, quote_shell): Remove;
+ (filename_quoting_options, dirname_quoting_options): Use these
+ variables instead.
+ (long_options): Add --indicator-style, --quoting-style,
+ --show-control-chars. Remove --quote-shell.
+ (dired_dump_obstack): Remove style parameter and don't output style.
+ (main): Go back to previous method of outputting //DIRED//
+ and //SUBDIRED// lines, without style. But add a new
+ //DIRED-OPTIONS// line that does output style.
+ (decode_switches, usage): Add --indicator-style, --quoting-style,
+ --show-control-chars. Remove --quote-shell.
+ (decode_switches): Default from QUOTING_STYLE environment variable.
+ Set new quoting vars.
+ (quote_name): Renamed from quote_filename.
+ Take new arg specifying quoting options.
+ Always print; do not have a special case for null FILE * argument.
+ All callers changed.
+ Move the guts of this function to new file quotearg.c.
+ (length_of_file_name_and_frills): Use quotearg_buffer instead
+ of (old) quote_filename to find length of file name.
+
+ (decode_switches, parse_ls_color, print_dir, gobble_file,
+ get_link_name): Quote output in diagnostics.
+
+ * NEWS, doc/fileutils.texi: Describe above changes.
+ * doc/fileutils.texi: Mention that control characters are output
+ as question marks if output is a terminal.
+
+1998-02-22 Jim Meyering <meyering@eng.ascend.com>
+
+ * Version 3.16m.
+
+ * ChangeLog-1997: New file.
+ * Makefile.am (EXTRA_DIST): Add ChangeLog-1997.
+
+1998-02-21 Jim Meyering <meyering@eng.ascend.com>
+
+ * configure.in (AC_OUTPUT): Add tests/mv/Makefile.
+ * tests/Makefile.am (SUBDIRS): Add mv.
+ * tests/mv: New directory
+ * tests/mv/mv-special-1: New test.
+
+1998-02-20 Jim Meyering <meyering@eng.ascend.com>
+
+ * src/touch.c: Include get-date.h.
+ Remove get_date decl.
+
+ * lib/getdate.h: Removed. Could cause confusion with an
+ automake-generated `.y.h' rule.
+ * lib/get-date.h: Renamed from getdate.h.
+ * lib/getdate.y: s/getdate.h/get-date.h/
+ * lib/Makefile.am (noinst_HEADERS): s/getdate.h/get-date.h/
+
+1998-02-19 Jim Meyering <meyering@eng.ascend.com>
+
+ 1997-10-17 Eli Zaretskii <eliz@is.elta.co.il>
+ * lib/fileblocks.c [__DJGPP__]: Add missing typedef for daddr_t.
+
+1998-02-13 Jim Meyering <meyering@eng.ascend.com>
+
+ * src/mv.c (cp_option_init): Set copy_as_regular to 0, not 1.
+ Otherwise, mv tries to open special files.
+ Reported by Kjetil Torgrim Homme.
+
+1998-02-08 Jim Meyering <meyering@eng.ascend.com>
+
+ * Makefile.maint (cvs-dist): Update po/ to clear modified status
+ of *.po files before running cvs tag -c.
+
+ * src/ln.c (usage): Reword to use `TARGET' and `LINK_NAME' in
+ description.
+
+1998-02-07 Jim Meyering <meyering@eng.ascend.com>
+
+ * GNUmakefile: New file.
+ * Makefile.am (EXTRA_DIST): Add GNUmakefile.
+ Don't include Makefile.maint from here. It's included from GNUmakefile.
+
+ * configure.in: Don't use AM_MAINTAINER_MODE.
+ (jm_PERL): Use this.
+
+ * src/Makefile.am (EXTRA_DIST): Remove dcgen.pl. Add dcgen.
+ (CLEANFILES): Remove dcgen.
+ (dircolors.h): Use $(PERL).
+ (.pl): Remove rule.
+
+1998-02-01 Jim Meyering <meyering@na-net.ornl.gov>
+
+ * POTFILES.in: Add remove.c. Reported by Santiago Vila.
+
+1998-01-28 Jim Meyering <meyering@na-net.ornl.gov>
+
+ * src/df.c (print_header): Tweak format to align heading over
+ last column of `df -i' output. From Andreas Schwab.
+
+1998-01-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makefile.am: Include Makefile.maint from $(srcdir).
+
+1998-01-25 Jim Meyering <meyering@na-net.ornl.gov>
+
+ * Version 3.16l.
+
+ * Makefile.maint: New file.
+ * Makefile.am: Move rules common to textutils, fileutils, sh-utils
+ into Makefile.maint.
+ Include Makefile.maint.
+ (EXTRA_DIST): Add Makefile.maint.
+
+ * src/cp.c (re_protect): Don't fail for non-root when chown fails
+ due not only to lack of permission (EPERM), but also to lack of
+ support (EINVAL). Reported by Bengt Martensson.
+ * src/copy.c (DO_CHOWN): Likewise.
+
+1998-01-24 Jim Meyering <meyering@na-net.ornl.gov>
+
+ * tests/ls/time-1 (test_failure): Rename does not update ctime;
+ link does -- so use ln, not mv.
+ Note that the SunOS4.1.4 failure of the ctime test is expected.
+
+ * src/system.h (TYPE_MINIMUM): Add extra outer cast to work around
+ bug in Cray C 5.0.3.0 when T == time_t.
+
+ * tests/rm/r-1: Adjust expected output for changed format of
+ `rm --verbose'.
+ * tests/rm/r-2: Likewise.
+
+1998-01-23 Jim Meyering <meyering@na-net.ornl.gov>
+
+ * lib/mktime.c (__mktime_internal): Work around bug in Irix4.0.5's
+ C compiler. From Kaveh Ghazi.
+ (TYPE_MINIMUM): Define.
+ (TYPE_MAXIMUM): Define.
+ (TIME_T_MIN): Use TYPE_MINIMUM.
+ (TIME_T_MAX): Use TYPE_MAXIMUM.
+
+1998-01-22 Jim Meyering <meyering@na-net.ornl.gov>
+
+ * src/dd.c: Reorder functions to obviate forward dcls.
+ (quit): Declare to be inline to stifle compile warning.
+
+ * src/cp.c (do_copy): Add unreachable `return 0' to stifle warning.
+
+ * tests/rm/sunos-1: Don't use -f. Do adjust $RM if it's a
+ relative path.
+
+ * tests/ls/time-1: Use GNU touch to work around problems with NFS
+ caching and/or clock skew. Reported by Kaveh Ghazi.
+
+ * tests/ls/Makefile.am (TESTS_ENVIRONMENT): Add TOUCH.
+
+ * src/Makefile.am (noinst_HEADERS): Add remove.h.
+ (mv_SOURCES): Define.
+ (rm_SOURCES): Define.
+
+1998-01-21 Jim Meyering <meyering@na-net.ornl.gov>
+
+ * src/install.c: Declare new global, backup_type.
+ (main): Initialize backup_type unconditionally.
+ (copy_file): Call find_backup_file_name with new argument, backup_type.
+ * src/ln.c: Declare new global, backup_type.
+ (main): Initialize backup_type unconditionally.
+ (do_link): Call find_backup_file_name with new argument, backup_type.
+
+ * src/copy.c (copy_internal): Use x->backup_type, not the global.
+ (valid_options): Use VALID_BACKUP_TYPE and VALID_SPARSE_MODE.
+
+ * src/copy.h (VALID_SPARSE_MODE): Define.
+ [struct cp_options] (backup_type): New member.
+
+ * src/cp.c [NDEBUG]: Comment out definition.
+ (do_copy): Use x->backup_type, not the global.
+
+ * src/remove.c: New file. Contains guts of old rm.c.
+ (remove_init): New function.
+ (remove_fini): New function.
+ (rm): Take third argument, specifying options.
+ * src/remove.h: New file. Associated dcls.
+ * src/rm.c: Remove and minimally librarify guts for use in mv.c.
+ (main): Pass options (`&x') to rm.
+ Call remove_init and remove_fini instead of open-coding them.
+
+ * src/mv.c (rm_option_init): New function.
+ (cp_option_init): New function.
+ (copy_reg): Remove now-unused function.
+ (do_move): Set up for and use `copy.c (copy)' in place of copy_reg.
+ Set up for and use `remove.c (rm)' in place of unlink.
+
+1998-01-20 Jim Meyering <meyering@na-net.ornl.gov>
+
+ * lib/backupfile.c: Use ANSI function definitions.
+ Remove global declaration of backup_type.
+ (simple_backup_suffix): Default to `~', not `.orig'.
+ Use PARAMS, not __BACKUPFILE_P.
+ (find_backup_file_name): Add parameter, backup_type.
+ * lib/backupfile.h: Remove extern declaration of backup_type.
+ Use PARAMS, not __BACKUPFILE_P.
+ (VALID_BACKUP_TYPE): Define.
+ (find_backup_file_name): Adjust prototype.
+
+1998-01-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * src/df.c (print_header): Fix inode format header to line it up
+ with the rest of the output.
+
+1998-01-13 Jim Meyering <meyering@na-net.ornl.gov>
+
+ * lib/stat.c: Set errno to ENOENT, not EINVAL. This is consistent
+ with most other implementations.
+
+1998-01-12 Jim Meyering <meyering@na-net.ornl.gov>
+
+ * lib/fileblocks.c: Include sys/param.h only #if HAVE_SYS_PARAM_H.
+ Move function-spanning `#if ...BSIZE' directive to follow inclusion
+ of sys/param.h since BSIZE is sometimes defined in sys/param.h.
+ Reported by Philippe De Muyter.
+
+1998-01-10 Jim Meyering <meyering@na-net.ornl.gov>
+
+ * Version 3.16k.
+
+ * src/install.c (install_file_to_path): New function.
+ FIXME: update fileutils.texi.
+ (main): Handle new option, -D.
+ Based on a patch from Marty Leisner.
+ (usage): Describe -D.
+
+ * src/ls.c (decode_switches) [-u]: Fix bug whereby -u worked only
+ with -l or -t. Now, -u (like -c) implies --sort=time.
+ (usage): Correct descriptions of --sort, --time, and -t.
+ Suggestions from Andreas Schwab.
+
+ Add test for the above fix.
+ * configure.in (AC_OUTPUT): Add tests/ls/Makefile.
+ * tests/Makefile.am (SUBDIRS): Add ls.
+ * tests/ls: New directory.
+ * tests/ls/Makefile.am: New file.
+ * tests/ls/time-1: New file.
+
+ * lib/makepath.c (make_path): Reformat 3 if-stmts to test
+ `if (newly_created_dir)' only once. Suggestion from Andreas Schwab.
+
+1998-01-06 Jim Meyering <meyering@na-net.ornl.gov>
+
+ * lib/getdate.y: Move inclusion of getdate.h and dependent extern
+ declarations down so getdate.h's prototype follows the sometimes-
+ enabled definition of `const' to nothing. Otherwise, the prototype
+ wouldn't match the definition because of the defined-away `const'.
+ From Kaveh Ghazi.
+ (get_date): ANSI-fy definition.
+ Add %expect directive.
+
+1998-01-05 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * lib/makepath.c (make_path): Put only newly created directories
+ on the LEADING_DIRS list.
+
+1998-01-05 Paul Eggert <eggert@twinsun.com>
+
+ * lib/fsusage.c (PROPAGATE_ALL_ONES): New macro.
+ (get_fs_usage): If a value consists entirely of 1 bits,
+ propagate this info to the output by setting it to (uintmax_t) -1.
+ * src/df.c (df_readable): New function.
+ (show_dev): If a value consists entirely of 1 bits, or is derived
+ from some other value that consists entirely of 1 bits, report "-".
+ Check inode and block counts more carefully for plausibility,
+ to avoid arithmetic overflow when computing percentages.
+
+1998-01-04 Jim Meyering <meyering@na-net.ornl.gov>
+
+ * Version 3.16j.
+
+ * lib/Makefile.in: Regenerated with patched automake-1.2d.
+ See README-alpha.
+
+ * src/chgrp.c: Use a single enumerated type, Verbosity, instead of
+ the two booleans, verbose and changes_only. This fixes a bug whereby
+ --change had the same effect as --verbose.
+ * src/chmod.c: Likewise.
+ * src/chown.c: Likewise.
+ Reported by Paul Eggert.
+
+1998-01-04 Paul Eggert <eggert@twinsun.com>
+
+ Check for write errors more carefully.
+
+ * lib/Makefile.am (libfu_a_SOURCES): Add closeout.c.
+ (noinst_HEADERS): Add closeout.h.
+ * lib/closeout.c, lib/closeout.h: New files.
+ * lib/long-options.c (parse_long_options),
+ src/chgrp.c, src/chmod.c, src/chown.c, src/cp.c, src/dd.c,
+ src/df.c, src/dircolors.c, src/du.c, src/install.c, src/ln.c,
+ src/ls.c, src/mkdir.c, src/mkfifo.c, src/mknod.c, src/mv.c,
+ src/mvdir.c, src/rm.c, src/rmdir.c, src/sync.c, src/touch.c
+ (main, usage): Check for write error to stdout before exiting.
+ Include "closeout.h".
+
+1998-01-03 Jim Meyering <meyering@na-net.ornl.gov>
+
+ * src/df.c (show_dev): Treat `fsu.fsu_bavail == (unsigned long) -1'
+ just like `fsu.fsu_blocks == 0' as an indicator that usage information
+ is invalid. This happens with Solaris-5.5.1 CD-ROM mount points.
+
+ * lib/save-cwd.h: Guard PARAMS-enabling definition with
+ `defined PROTOTYPES || (defined __STDC__ && __STDC__)' to avoid
+ problems with Irix4's cc. From Kaveh Ghazi.
+ * lib/getdate.h: Likewise, but just to be consistent.
+
+ * configure.in: Convert the .o suffix on files in LIBOBJS to $U.o so
+ those files will be built via the ANSI2KNR-filtering rules if necessary.
+ Reported by Kaveh Ghazi.
+
+1998-01-02 Jim Meyering <meyering@na-net.ornl.gov>
+
+ * Version 3.16i.
+
+ Fix problem with `install -d'. Reported by Marty Leisner.
+
+ * src/install.c (get_ids): When otherwise unspecified,
+ set uid and gid to -1.
+ * lib/makepath.c (make_path): Try to change ownership only if we've
+ just created the directory. Fix latent bug (s/&&/||/ in two places --
+ also, note that it could not be exercised via install or mkdir)
+ whereby chown would not be invoked when only one of owner/group is
+ not -1.
+
+1998-01-01 Jim Meyering <meyering@na-net.ornl.gov>
+
+ * src/rm.c (remove_cwd_entries): Initialize the entry-name obstack
+ only once and never free it.
diff --git a/coreutils-5.3.0-bin/contrib/coreutils/5.3.0/coreutils-5.3.0-src/old/fileutils/NEWS b/coreutils-5.3.0-bin/contrib/coreutils/5.3.0/coreutils-5.3.0-src/old/fileutils/NEWS
new file mode 100644
index 0000000..b89ca31
--- /dev/null
+++ b/coreutils-5.3.0-bin/contrib/coreutils/5.3.0/coreutils-5.3.0-src/old/fileutils/NEWS
@@ -0,0 +1,748 @@
+[4.1.11]
+* `rm symlink-to-unwritable' doesn't prompt [introduced in 4.1.10]
+[4.1.10]
+* rm once again gives a reasonable diagnostic when failing to remove a file
+ owned by someone else in a sticky directory [introduced in 4.1.9]
+* df now rounds all quantities up, as per POSIX.
+* New ls time style: long-iso, which generates YYYY-MM-DD HH:MM.
+* Any time style can be preceded by "posix-"; this causes "ls" to
+ use traditional timestamp format when in the POSIX locale.
+* The default time style is now posix-long-iso instead of posix-iso.
+ Set TIME_STYLE="posix-iso" to revert to the behavior of 4.1.1 thru 4.1.9.
+* `rm dangling-symlink' doesn't prompt [introduced in 4.1.9]
+* stat: remove support for --secure/-s option and related %S and %C format specs
+* stat: rename --link/-l to --dereference/-L.
+ The old options will continue to work for a while.
+[4.1.9]
+* rm can now remove very deep hierarchies, in spite of any limit on stack size
+* new programs: link, unlink, and stat
+* New ls option: --author (for the Hurd).
+* `touch -c no-such-file' no longer fails, per POSIX
+[4.1.8]
+* mv no longer mistakenly creates links to preexisting destination files
+ that aren't moved
+[4.1.7]
+* rm: close a hole that would allow a running rm process to be subverted
+[4.1.6]
+* New cp option: --copy-contents.
+* cp -r is now equivalent to cp -R. Use cp -R -L --copy-contents to get the
+ traditional (and rarely desirable) cp -r behavior.
+* ls now accepts --time-style=+FORMAT, where +FORMAT works like date's format
+* The obsolete usage `touch [-acm] MMDDhhmm[YY] FILE...' is no longer
+ supported on systems conforming to POSIX 1003.1-2001. Use touch -t instead.
+* cp and inter-partition mv no longer give a misleading diagnostic in some
+ unusual cases
+[4.1.5]
+* cp -r no longer preserves symlinks
+* The block size notation is now compatible with SI and with IEC 60027-2.
+ For example, --block-size=1MB now means --block-size=1000000,
+ whereas --block-size=1MiB now means --block-size=1048576.
+ A missing `B' (e.g. `1M') has the same meaning as before.
+ A trailing `B' now means decimal, not binary; this is a silent change.
+ The nonstandard `D' suffix (e.g. `1MD') is now obsolescent.
+* -H or --si now outputs the trailing 'B', for consistency with the above.
+* Programs now output trailing 'K' (not 'k') to mean 1024, as per IEC 60027-2.
+* New df, du short option -B is short for --block-size.
+* You can omit an integer `1' before a block size suffix,
+ e.g. `df -BG' is equivalent to `df -B 1G' and to `df --block-size=1G'.
+* The following options are now obsolescent, as their names are
+ incompatible with IEC 60027-2:
+ df, du: -m or --megabytes (use -BM or --block-size=1M)
+ df, du, ls: --kilobytes (use --block-size=1K)
+[4.1.4]
+* df --local no longer lists smbfs file systems whose name starts with //
+* dd now detects the Linux/tape/lseek bug at run time and warns about it.
+[4.1.3]
+* ls -R once again outputs a blank line between per-directory groups of files.
+ This was broken by the cycle-detection change in 4.1.1.
+* dd once again uses `lseek' on character devices like /dev/mem and /dev/kmem.
+ On systems with the linux kernel (at least up to 2.4.16), dd must still
+ resort to emulating `skip=N' behavior using reads on tape devices, because
+ lseek has no effect, yet appears to succeed. This may be a kernel bug.
+[4.1.2]
+* cp no longer fails when two or more source files are the same;
+ now it just gives a warning and doesn't copy the file the second time.
+ E.g., cp a a d/ produces this:
+ cp: warning: source file `a' specified more than once
+* chmod would set the wrong bit when given symbolic mode strings like
+ these: g=o, o=g, o=u. E.g., `chmod a=,o=w,ug=o f' would give a mode
+ of --w-r---w- rather than --w--w--w-.
+[4.1.1]
+* mv (likewise for cp), now fails rather than silently clobbering one of
+ the source files in the following example:
+ rm -rf a b c; mkdir a b c; touch a/f b/f; mv a/f b/f c
+* ls -R detects directory cycles, per POSIX. It warns and doesn't infloop.
+* cp's -P option now means the same as --no-dereference, per POSIX.
+ Use --parents to get the old meaning.
+* When copying with the -H and -L options, cp can preserve logical
+ links between source files with --preserve=links
+* cp accepts new options:
+ --preserve[={mode,ownership,timestamps,links,all}]
+ --no-preserve={mode,ownership,timestamps,links,all}
+* cp's -p and --preserve options remain unchanged and are equivalent
+ to `--preserve=mode,ownership,timestamps'
+* mv and cp accept a new option: --reply={yes,no,query}; provides a consistent
+ mechanism to control whether one is prompted about certain existing
+ destination files. Note that cp's and mv's -f options don't have the
+ same meaning: cp's -f option no longer merely turns off `-i'.
+* remove portability limitations (e.g., PATH_MAX on the Hurd, fixes for
+ 64-bit systems)
+* mv now prompts before overwriting an existing, unwritable destination file
+ when stdin is a tty, unless --force (-f) is specified, as per POSIX.
+* mv: fix the bug whereby `mv -uf source dest' would delete source,
+ even though it's older than dest.
+* chown's --from=CURRENT_OWNER:CURRENT_GROUP option now works
+* cp now ensures that the set-user-ID and set-group-ID bits are cleared for
+ the destination file when when copying and not preserving permissions.
+* `ln -f --backup k k' gives a clearer diagnostic
+* ls no longer truncates user names or group names that are longer
+ than 8 characters.
+* ls's new --dereference-command-line option causes it to dereference
+ symbolic links on the command-line only. It is the default unless
+ one of the -d, -F, or -l options are given.
+* ls -H now means the same as ls --dereference-command-line, as per POSIX.
+* ls -g now acts like ls -l, except it does not display owner, as per POSIX.
+* ls -n now implies -l, as per POSIX.
+* ls can now display dates and times in one of four time styles:
+
+ - The `full-iso' time style gives full ISO-style time stamps like
+ `2001-05-14 23:45:56.477817180 -0700'.
+ - The 'iso' time style gives ISO-style time stamps like '2001-05-14 '
+ and '05-14 23:45'.
+ - The 'locale' time style gives locale-dependent time stamps like
+ 'touko 14 2001' and 'touko 14 23:45' (in a Finnish locale).
+ - The 'posix-iso' time style gives traditional POSIX-locale
+ time stamps like 'May 14 2001' and 'May 14 23:45' unless the user
+ specifies a non-POSIX locale, in which case it uses ISO-style dates.
+ This is the default.
+
+ You can specify a time style with an option like --time-style='iso'
+ or with an environment variable like TIME_STYLE='iso'. GNU Emacs 21
+ and later can parse ISO dates, but older Emacs versions cannot, so
+ if you are using an older version of Emacs outside the default POSIX
+ locale, you may need to set TIME_STYLE="locale".
+
+* --full-time is now an alias for "-l --time-style=full-iso".
+
+Changes in release 4.1:
+[4.0.45]
+* dd conv=sync,block now pads only with spaces
+* ls's -1 option no longer cancels the effect of a preceding -l
+* regenerate configure using a patched version of autoconf-2.49e to work
+ around a bug in its test for a working memcmp function
+* ls: fix off-by-one error introduced with the previous change
+[4.0.44]
+* ls: When given two or more arguments but the only one that exists is a
+ directory, don't treat it as if it were the only argument. Before,
+ `mkdir d; ls no-dir d 2>/dev/null' would act like `ls d' and produce
+ no output. Now, it prints `d:'.
+* touch -d 'last friday' would use a time stamp that was one hour off
+ (e.g., 23:00 on *thursday* rather than 00:00 of the preceding friday)
+ when run such that the current time and the target date/time fall on
+ opposite sides of a daylight savings time transition.
+ This problem arises only with relative date strings like `last monday'.
+ It is not a problem with strings that include absolute dates.
+[4.0.43]
+* regenerate configure-related files using autoconf-2.49d
+[4.0.42]
+* Using ls's short-named `-H' option evokes the warning that the
+ meaning of `-H' will soon change. Use `--si' instead.
+[4.0.41]
+* fix bug in rm introduced in 4.0.38: `chmod 0 f; rm f' would no longer prompt
+ before removal.
+[4.0.40]
+* portability fixes, mainly for UnixWare 7.1.1
+[4.0.39]
+* cp and mv accept --strip-trailing-slashes, not just --strip-trailing-slash
+[4.0.38]
+* ls --full-time now implies -l; before, without -l it was a no-op
+[4.0.37]
+* portability fixes for SunOS4.1.1, Fujitsu (f300-fujitsu-uxpv4.1_ES),
+ and Unicos (alphaev5-cray-unicosmk2.0.5.X)
+[4.0.36]
+* `mv dir/ new-name' no longer fails on SunOS4.1.1U
+* attempting to use mv to move a symlink onto itself no longer removes
+ the symlink
+* `cp -R directory file' no longer removes `file'. now it fails and gives
+ a diagnostic
+* The manual now warns that ls's --full-time format string is planned
+ to change in a future release.
+* ls -l's time stamp format now depends on LC_TIME, not LC_MESSAGES,
+ as POSIX requires.
+* ls -l now reports the year for files even slightly in the future, as
+ POSIX requires. This helps warn users about clock skew problems.
+* `cp -d file symlink-to-some-other-file' no longer fails
+* performance improvements for ls
+[4.0.35]
+* ln --backup=simple --suffix=SUFFIX once again uses SUFFIX
+* install: Likewise.
+[4.0.34]
+* fix a bug (introduced in 4.0z) that made `chown 123:456 file' act like
+ `chown 123:123 file'. Other uses with a numeric group ID would cause
+ chown to fail when it shouldn't have.
+* the chown and chgrp programs preserve set-uid and set-gid bits, even on
+ systems for which the chown function call resets those bits.
+* `ls -L dangling-symlink' now fails (per POSIX) rather than printing the
+ link name
+* dd no longer honors the just-added `B' suffix on skip= and seek= arguments.
+* `mkdir no-such-dir/' no longer fails on NetBSD systems
+[4.0.33]
+* dd now accepts skip=nB and seek=nB, to advance past some number of bytes, n,
+ that need not be a multiple of the block size.
+* dd (without conv=notrunc) now complains only when ftruncate fails on a
+ regular file, a directory, or a shared memory object -- not when it fails
+ to truncate other types of files, like /dev/fd0.
+* chmod --changes (-c) once again issues diagnostics only for the files
+ with changed permissions
+* mkdir now gives one diagnostic (rather than two) for certain failures
+* mkdir portability fix for NetBSD
+[4.0.32]
+* touch now interprets a lone numeric argument of 8 or 10 digits as a file name,
+ rather than as a date/time in the obsolescent `MMDDhhmm[YY]' format.
+* mkdir no longer sets the permissions of the final directory component
+ if it already exists (this bug, too, was introduced recently)
+* ls's --full-time format string is now locale dependent
+[4.0.31]
+* mkdir: fix a bug introduced in 4.0.30 whereby `mkdir existing-dir' would
+ succeed. Now it fails, as it should (and used to).
+[4.0.30]
+* mkdir: fix a bug introduced in 4.0.28 whereby parent directories created
+ via `mkdir -p' would have permissions that did not account for the umask
+[4.0.29]
+* ls.c wouldn't compile on some systems: fix it
+* `cp -R --parents dir1/ dir2' failed on NetBSD, due to a portability problem
+[4.0.28]
+* ls is much more efficient on systems (e.g., linux-2.4.*) that store file
+ type information in directory entries.
+* shred now automatically determines the size of each block device argument
+* ls's date/time format strings are now locale dependent
+* mkdir, mknod, mkfifo, and chmod work better in conjunction with ACLs
+* `cp --parents dir1/ dir2' no longer gets a failed assertion
+* shred now determines the size of block devices like /dev/fd0
+* `shred --exact file1 file2' now erases `file1', too
+[4.0.27]
+* install once again unlinks an existing destination before trying to open it
+* mv no longer gets a failed assertion when moving a directory (specified with
+ a trailing slash) from one partition to another, and giving it a different
+ name at the destination.
+* `cp --link -f src existing-dest' no longer fails (bug introduced in 4.0z)
+* cp's new --remove-destination option now works with -R
+[4.0z]
+* `cp -p' once again preserves `special' permission bits (this bug was
+ introduced in 4.0y)
+* mv's --force (-f) option now controls solely whether mv prompts (per POSIX)
+* `cp -f' now first attempts to open an existing destination file, and only
+ if that fails does it resort to unlinking the file and retrying the open.
+ Before, it would unlink the file before trying to open it.
+* cp accepts a new option, --remove-destination, that provides the old behavior
+* cp's -f option no longer cancels the effect of --interactive (-i) (per POSIX)
+* when ls sorts directory entries, it now honors the current locale settings
+* dd's `skip=BLOCKS' operator once again works on systems with a buggy lseek
+ function (Linux, at least on SCSI tape devices)
+* fix a typo in install-sh
+[4.0y]
+* cp now accepts the POSIX-mandated -H and -L options.
+* cp -p and mv now try to preserve uid even if you're not root, as per POSIX.2.
+ This affects behavior only on hosts that let you give files away via chmod.
+* du would fail when given `.' or `..' followed by other command line arguments
+* Using cp's short-named `-P' option evokes the warning that the
+ meaning of `-P' will soon change. Use `--parents' instead.
+* chgrp, chmod, and chown: when used with the --verbose option, might give an
+ invalid diagnostic (due to clobbered errno) when failing.
+[4.0x]
+* Fix cp so that `cp -r DIR1/ DIR2' works properly once again.
+* New ls option --quoting-style=clocale acts like --quoting-style=locale,
+ except that it quotes "like this" by default instead of `like this'.
+[4.0w]
+* When `cp -pR' fails to copy a file, it now preserves permissions, owner,
+ and group of the containing directory.
+[4.0v]
+* df, du, and ls now round disk usage up and disk free space down
+* df, du, ls: --block-size=N now works for values of N that are e.g.,
+ not a multiple of the file's block size
+[4.0u]
+* give proper diagnostic for mv usage error
+* fix compile problem with lib/strnlen.c
+[4.0t]
+* `cp -d -u' no longer fails with certain existing destination symlinks
+* rmdir and mkdir accept -v as synonym for --verbose
+[4.0s]
+* rm no longer segfaults on certain very deep hierarchies
+* IMPORTANT SECURITY FIX: a running `rm -r' may no longer be subverted to
+ remove unintended directories
+* cp can now remove unwritable files in interactive mode; contrary to how mv
+ works, cp's --interactive (-i) option does *not* cancel the effect of a
+ preceding --force (-f) option.
+* all programs fail when printing --help or --version output to a full device
+* install no longer performs chmod if chown fails (see ChangeLog for example)
+[4.0r]
+* `du dir/subdir1 dir/subdir2' no longer fails
+* chown accepts new option: --from=CURRENT_OWNER:CURRENT_GROUP
+* cp accepts new option: --strip-trailing-slashes
+* install --directory (-d) may now be used to set special bits
+ e.g., `install -m a=rwx,o+t -d DIR' now honors the `o+t' part
+* cp, mv, ln, install: document that while the --backup option takes an
+ optional argument, the -b option accepts none
+* `ls -e' fails with a more useful diagnostic
+* df produces better output for loop file system mount points
+[4.0q]
+* install -D bug is fixed
+* chown now works properly when the specified login name contains a period
+ This is at the expense of always looking up the entire USER.GROUP string
+ as a login name first, and only then (upon failure) interpreting the `.'
+ as a separator and looking up `USER'. To avoid the extra getpwnam call,
+ always use the POSIX-mandated `:' character as the separator.
+* `du some-other-dir' no longer fails if it can't open the current directory
+* `mv DIR EXISTING-FILE' no longer removes EXISTING-FILE. Now it gets an error
+ as POSIX says it must.
+* touch no longer hangs on fifos
+[4.0p]
+* various tools: quote multibyte characters correctly in diagnostics
+* mv: portability fix for alpha
+* dd: portability fix
+* unified lib/: now that directory and most of the configuration framework
+ is common between fileutils, textutils, and sh-utils
+[4.0o]
+* Include lib/nanosleep.h.
+[4.0n]
+* cp, install, ln, and mv: when making backup files in verbose mode, these
+ commands now print the backup file name on the same line as the rest of the
+ information, e.g., `a -> b (backup: b.~13~)' rather than on a separate line
+ as all but ln used to do. ln didn't output the backup file name at all.
+[4.0m]
+* mv accepts new option: --strip-trailing-slashes (soon, many other
+ programs will, too)
+* df no longer hangs when there is an inaccessible mount point unrelated to PATH
+* rmdir --verbose no longer prints extra, bogus diagnosic upon failure
+* fix df bug that made it print bogus values in the `Use%' column.
+* touch -d once again parses dates with `hh:mm ZONE' time zone info.
+[4.0l]
+* ls -l honors a trailing slash on a symlink argument, per POSIX.
+* shred no longer appears to infloop when asked to remove files in
+ unwritable directories
+* `ls -ul' and `ls -uc' sort by name once again, as they should
+[4.0k]
+* mv may now be used to move a file onto a symlink to itself when that
+ symlink is on a separate partition. With fileutils-4.0j, it would
+ fail with a diagnostic saying they were the same file.
+* touch would fail with the misleading diagnostic `no such file' when asked
+ to create a file in an unwritable directory. Now it says something like
+ `permission denied' or `read-only file system'.
+[4.0j]
+* mkdir may now be used to set special bits e.g., `mkdir -m o+t dir' works
+* touch can now change the time(s) of a file you own even if you don't have
+ read or write access to it
+* rm no longer dumps core after warning about directory cycles
+* mv now refuses to move a file onto a symlink to itself when that symlink
+ is on a separate partition. Before, it would remove the file and leave
+ only the symlink.
+* `install -d -g foo 1/2' now sets the `group' of the final component as well
+ as that of the leading one.
+* df, du, and ls no longer divide by zero when an invalid block size is
+ specified through an environment variable
+* under certain conditions, chgrp would fail to affect files referenced
+ through symlinks. Now it does.
+* ln now makes hard links to symlinks on systems that support it.
+* touch: no longer infloop on dangling symlinks
+* cp, install, ln, mv: deprecate the --version-control option. Use --backup's
+ new optional argument instead. The old option still works, but now evokes a
+ warning.
+* cp, install, ln, mv: the --backup option now accepts an optional argument
+* cp, install, ln, mv: accept new option: --target-directory=DIR
+* chgrp: accept new option, --dereference. --no-dereference is now the default.
+* New ls option --quoting-style=locale acts like --quoting-style=c, except
+ with locale-specific quoting symbols (` and ' by default) instead of ".
+* `df DIR' is less likely to hang due to bad NFS mounts
+* As per POSIX.2, `df -P' now uses ceiling rather than rounding, and its
+ header now says `1024-blocks ... Capacity' instead of `1k-blocks ... Use%'.
+[4.0i]
+* `cp -f FILE FILE' and `mv -f FILE FILE' no longer remove FILE
+* touch works once again (DST-wise) when certain `--date DATE-TIME'
+ values are specified.
+* shred's -u option (short form of --remove) is now accepted
+[4.0h]
+* cp --one-file-system (-x) no longer crosses filesystem boundaries.
+* touch can once again operate on directories
+[4.0g]
+* New large-file support for AIX and HP-UX, and for cross-compiles.
+* shred's default options are now suitable for devices, not files, since
+ shred is more reliable on devices. shred now does not remove by default;
+ the old -p or --preserve option was inverted and renamed to -u or --remove.
+* shred -u now attempts to truncate devices before removing them.
+* shred -v no longer outputs carriage-returns; shred -vv has no extra effect;
+ shred -v now outputs to stderr.
+* shred now tries to find the size of a non-regular file by seeking to its end.
+* dd now opens the output file for *read* access only if `seek=' is used.
+[4.0f]
+* `ls --color' no longer segfaults
+* dd works once again
+[4.0e]
+* shred --devices option renamed to -D so that -d, -i and -r can be
+ compatible with rm.
+* shred -s/--size=N option added to specify the size of the object to be
+ shredded.
+* `shred -' now shreds stdout rather than stdin. This is incompatible with -v.
+* shred now does not need to read from its output file, so opens it O_WRONLY
+* `ls -l' uses `+' to designate each file that has a custom ACL
+* eliminate race condition that could make touch truncate a nonempty file
+* No longer use *_unlocked I/O macros on systems (like solaris5.5.1) where
+ they're not declared, so selected executables (e.g., rm) that are linked
+ with shared libraries will once again run on solaris5.6 systems.
+[4.0d (aka 4.1-b3)]
+* ls recognizes solaris 2 `doors'
+* new program: shred
+* ln: Allow creation of a hard link to a dangling symlink
+* cp, mv, install: --verbose now prints a message for each backup-related
+ renaming
+* portability fixes for copy.c's code to detect move-directory-into-self
+* upgrade to automake-1.3b
+* upgrade to autoconf-2.13, and...
+* remove some of the kludges in m4/*.m4 that permitted
+[4.1-b2]
+* concurrent `mkdir -p' processes no longer fail when creating the
+ same hierarchy
+* argmatch.c has been fixed so that the unambiguous usage `ls --color=n'
+ no longer evokes an error.
+* now, specifying an improper argument for an option that accepts enumerated
+ values evokes diagnostics like this:
+ $ src/touch --time=x file
+ src/touch: invalid argument `x' for `--time'
+ Valid arguments are:
+ - `atime', `access', `use'
+ - `mtime', `modify'
+ Try `src/touch --help' for more information.
+[4.1-b1]
+* ls --quoting-style=c prints correct octal escapes for certain nonprinting
+ characters in file names.
+* fix `ls -R .' formatting bug that broke mktexlsr
+* moving a directory into itself is properly diagnosed in more cases
+* moving a directory containing hard-linked files now works
+
+Changes in release 4.0:
+[4.0-b7]
+* rm -rf '' no longer gets a failed assertion on the Hurd
+[4.0-b6]
+* rm simply fails as it should (rather than segfaulting) for
+ `mkdir -m 0100 x; rm -rf x'
+[4.0-b5]
+* still *more* mktime.c portability tweaks
+[4.0-b4]
+* mktime.c portability tweak for headers with GNU libc 5.4.44.
+[4.0-b3]
+* mktime.c works around problems with Digital Unix 4.0A and 4.0D.
+* mktime.c handles dates in the spring-forward gap the same way other
+ implementations do
+* install accepts long option --suffix=SUFFIX
+[4.0-b2]
+* man/Makefile.maint framework tweaks
+* add test for `mv -i' bug
+[4.0-pre1]
+* fix serious bug whereby `touch a b; echo n|mv -i a b' would remove b.
+[3.16z]
+* portability tweaks
+* avoid `root `cp -a' from Netapp snapshot' corruption
+[3.16y]
+* `install -D' now works
+* distribute maintainer Makefiles in man/
+[3.16x]
+* man pages are now automatically generated from a combination of --help
+ output and the contents of new (though mostly empty), man/*.x files.
+[3.16w]
+* touch now interprets `-t TIME-DATE' as POSIX specifies
+* `ls EMPTY-DIR EMPTY-DIR' once again outputs the directory names
+[3.16v]
+* portability fixes
+* `ls -R EMPTY-DIR' now outputs the name of the directory
+[3.16u]
+* mv now fails (as it should) upon attempt to move a directory into itself
+* `cp -a --one-file-system' now copies any mount point directories it
+ encounters on the selected file system.
+[3.16t]
+* cp (with --update) and ls compare time stamps with subsecond resolution when
+ available (e.g., on systems with recent Linux kernels and on Solaris 2.6).
+* install once again does the -m-specified chmod *after* running strip
+ (this fixes another bug introduced in 3.16o)
+[3.16s]
+* df accept a new option --local (-l)
+* touch works around a system-specific bug so it now affects existing,
+ zero-length files on certain systems
+* chown now works even on certain SVR3 systems where it used to fail
+[3.16r]
+* include gettext's m4 macros
+* minor cp bug fixed
+* non-portable cp tests removed
+* --without-included-regex now means don't compile regex.c
+* rx support removed
+[3.16q]
+* `df', `du', and `ls' now accept a new option --block-size=SIZE,
+ where SIZE can be a positive integer block size, followed by an
+ optional SI prefix (e.g. `k' for kilo, `M' for Mega), followed by an
+ optional `B' (for ``byte'', indicating powers of 1024, which is the
+ default) or `D' (for ``decimal byte'', indicating powers of 1000).
+ SIZE can also be `human-readable' (for -h or --human-readable
+ behavior) or `si' (for -H or --si behavior).
+* These suffixes can also be used by `dd'; e.g. `dd bs=1MB' is equivalent
+ to `dd bs=1048576'.
+* The default block size for the `df' command is now obtained from the
+ DF_BLOCK_SIZE environment variable or, if that is not set, from BLOCK_SIZE.
+ Similarly for `du' and `ls'.
+* The output columns of `df' have been adjusted slightly to accommodate
+ larger filesystems.
+* fix gettext-related link failures seen when configuring certain ways
+[3.16p]
+* fix install bug introduced in 3.16o
+* build/test changes only
+[3.16o]
+* chown accepts new option, --dereference. --no-dereference is now the default.
+* install now shares core copying code with mv and cp
+* mv (between distinct filesystems) now uses more of the core copying code
+* fixed a bug or two in mv
+* df once again displays negative numbers when that's what's returned
+ by get_fs_usage
+[3.16n]
+* `mv dir dir' once again does *not* remove dir/
+* ls accepts new options:
+ --indicator-style=none (no indicators, the default)
+ --indicator-style=classify (all indicators)
+ (equivalent to -F or --classify)
+ --indicator-style=file-type (file type indicators)
+ (equivalent to -p or --file-type)
+
+ --quoting-style=literal (do not quote output)
+ --quoting-style=shell (minimally quote output for the shell)
+ --quoting-style=shell-always (always quote output with '' for the shell)
+ --quoting-style=c (quote output as for a C-language string)
+ (equivalent to -Q or --quote-name)
+ --quoting-style=escape (like c but omit enclosing "")
+ (equivalent to -b or --escape)
+
+ --show-control-chars is the opposite of --hide-control-chars
+ This option can be useful if output is to a terminal,
+ to override the default beahvior of hiding control characters.
+
+* The QUOTING_STYLE environment variable can now be used to specify the
+ default value for ls's --quoting-style option. If not specified,
+ the default quoting style is 'literal', but this default may change to
+ 'shell' in a future version of this package.
+* ls's quoting style now affects operands in diagnostics, too.
+* ls's --dired option now outputs the quoting style
+ using the format of the new --quoting-style option.
+* ls's -e or --quote-shell option (introduced in 3.16j) has been removed;
+ use --quoting-style=shell to get its functionality.
+[3.16m]
+* mv can move (and doesn't read) special files
+* remove maintainer mode
+[3.16l]
+* mv can finally move non-regular files between partitions
+[3.16k]
+* install accepts new option, -D
+[3.16j]
+* du accepts new options, --exclude=PAT and --exclude-from=FILE (-X FILE)
+* ls now quotes file names for the shell by default, if they contain
+ characters that need quoting. Use -N to get the old default behavior.
+ The new behavior is also enabled by the new option -e or --quote-shell.
+* ln --backup is now consistent with cp and mv in that --force is no longer
+ required when the destination is an existing non-directory.
+* install accepts new option, --verbose (-v)
+* mkdir -p is a lot faster when creating very deep directories on some systems
+* rm -i no longer exits with status indicating failure solely because the
+ user declines to remove a file
+* rm -r is a lot faster on some systems when removing deep hierarchies
+* chgrp, chmod, and chown no longer give contradictory output when --verbose
+ is used and an operation fails
+* ls's multicolumn option now uses variable width columns to conserve
+ vertical space
+* install accepts new option, --preserve-timestamps
+* du --megabytes --total now shows total in megabytes
+* ls accepts new option, -h or --human-readable
+* df, du, and ls now accept new option, -H or --si, for powers of 1000 not 1024
+* df, du, and ls now consistently round to nearest, with ties going to even
+* df, du, and ls now use `k' instead of `K' for `kilo',
+ and support larger abbreviations T(era), P(eta), E(xa), Z(etta), Y(otta)
+* touch -d DATE now works on Unicos
+* du accepts new option --max-depth=N
+* rmdir accepts new options: --ignore-fail-on-non-empty and --verbose
+* on most hosts df, du, and ls now overflow at 2**64 bytes, not 2**31 bytes
+* all programs now work on large files on LFS systems like Solaris 2.6 and
+ Linux with the pre-2.1 development version of GNU libc.
+* df now works with OpenBSD 2.1 beta
+* cp -d FILE SYMLINK-TO-FILE doesn't erase FILE. Now it gives an error.
+
+Changes in release 3.16:
+* du --megabytes (-m) works
+* ls -l works even on systems with non-POSIX strftime in their C library
+
+Changes in release 3.15:
+* touch --date=DATE bug (due to broken getdate.y) has been fixed
+* ls -l no longer misformats the date when run in a locale for which the
+ locale's abbreviated week-day name (strftime's %a format) is shorter or
+ longer than the `normal' three bytes (with LANG=de it's a two-byte string).
+* Using --program-prefix no longer applies the prefix twice
+* ls --color properly restores color attributes upon completion when the
+ normal (`no') color attribute is not the default color.
+* with ls -s --color, the `total' and size of the first file are printed
+* ls --color stats symlinks and distinguishes between regular symlinks
+ and orphan ones.
+* cp --preserve preserves owner and group of symlinks on Linux when run
+ with EUID == 0
+* dircolors no longer accepts --print-data-base (alternate spelling of
+ --print-database)
+
+Changes in release 3.14:
+* ls --color highlights based on suffix rules only for regular files
+* touch --date=DATE accepts dates like those in an RCS log listing, e.g.,
+ `1992/11/01 05:44:34'.
+* install SRC DST no longer rejects non-regular, non-directory SRC
+* df accepts -F as a synonym for -t for compatibility with Solaris
+* cp -i /dev/null existing-file now prompts before overwriting the target
+* ls --color highlights orphaned symlinks text on terminals that support it
+* ls -l honors current locale with respect to abbreviated month names (and,
+ with --full-time day names) on systems with a locale-supporting strftime
+ function, e.g., ones based on recent versions of the GNU C library
+* ls -l recognizes Cray's migrated dmf files.
+* chgrp no longer aborts when given a group number larger than INT_MAX
+* chgrp now fails when run by root with an unrecognized group name
+* when possible, cp -p preserves owner/group even on symlinks in case
+ they're in a directory that has the sticky-bit set.
+* cp --recursive --parents SRC DEST works when SRC is an absolute file name.
+
+Changes in release 3.13:
+* ls properly determines window size on SunOS and Solaris systems
+* ls accepts new option --color[=WHEN] where WHEN is `always', `never',
+ or `auto'. --color=never is the default. --color is equivalent
+ to --color=always.
+* new program: dircolors
+* ls allows 0 as argument to --tabsize (-T) option. Using --tabsize=0
+ inhibits the use of TAB characters for separating columns.
+* you can create a backup of FILE with cp --force --backup FILE FILE. Before,
+ that command failed saying that ``FILE' and `FILE' are the same file'.
+* uses automake-generated Makefile templates
+* chown and chgrp accept new option --no-dereference (-h)
+* ln -f FILE FILE fails with a diagnostic rather than silently removing FILE
+* when building on systems that have getopt_long (most GNU-oriented ones),
+ the system-provided function will be used -- so executables may be a
+ little smaller
+* cp -p, and mv modify owner and/or group of symlinks on systems
+ (like Solaris) that provide the lchown system call.
+* df no longer invokes the sync system call by default. You can use the
+ --sync option to make df invoke sync before getting file system sizes.
+* internationalized diagnostic messages
+* mkdir accepts new option: --verbose
+* `cp file D/' uses the full file name `D/file' instead of `D//file'.
+* cp --backup a~ a fails instead of silently destroying the source file
+* df and du have new options --human-readable (-h) and --megabytes (-m).
+* install now honors --backup (-b), --suffix=SUFFIX (-S SUFFIX), and
+ --version-control=WORD (-V WORD) options just as cp, ln, and mv do.
+* ln --verbose output is less prone to misinterpretation
+* ls -o works like -lG; for compatibility with other versions of ls
+* cp has a new option to control creation of sparse files:
+ --sparse={auto,always,never}. --sparse=auto is the default.
+* rm -rf '' behaves properly on SunOS 4 systems
+* touch: rename long option name, --file, to --reference.
+ `touch --file' will continue to work a little longer.
+* df fails if the same file system type is both selected and excluded.
+* df works around SunOS statfs brokenness wrt filesystems larger than 2GB
+* df better handles inconsistent mtab entries
+* `ls -lDR dir dir2' works
+* `ls -c' does what it's supposed to
+* all programs include program name in --version output
+* `ls --quote-name' works
+* mv properly determines whether src and dest are the same file
+ Before, it could (though with very low probability) fail to do the move,
+ reporting that distinct source and destination are the same file.
+* du --dereference (-L) works with directory symlinks
+* du works on SunOS 4 systems even when accounting is enabled
+* many programs that convert strings to integers now use strtol or strtoul
+ and detect overflow
+
+User-visible changes in release 3.12:
+* None.
+User-visible changes in release 3.11:
+* None.
+User-visible changes in release 3.10:
+* mkdir -p now ignores arguments that are existing directories. Before,
+ (contrary to POSIX spec) it would attempt to change ownership and/or
+ protections of existing directories listed on the command line. And
+ it would fail when such a directory was owned by another user.
+* Fix bug in cp that made the commands `mkdir dir; touch foo; cp -P foo dir'
+ incorrectly change the permissions on directory, dir.
+* df accepts a new option, --no-sync, that inhibits the default invocation
+ of the sync system call.
+* ls accepts a new option, --dired, that makes emacs' dired mode more efficient
+* skeletal texinfo documentation (mainly just the `invoking' nodes)
+* ln accepts a new option: --no-dereference (-n). With this option,
+ if the destination command line argument is a symlink to a directory,
+ use that as the destination instead of the file in the directory.
+* `ln -i no-such-file existing-file' gives a diagnostic and fails.
+ Before, if you responded `yes' to the prompt it would both remove
+ `existing-file' and fail to make a link.
+* du no longer requires read access to all of the directory components
+ of the current working directory on systems with fchdir.
+* touch -d 'date' is no longer off by one hour.
+* New program: sync.
+* Fix bug in cp that made the commands `ln -s . s; cp -rd s r' incorrectly
+ create `r' as a symlink instead of as a regular file.
+* du's -S and -c options now work when used together.
+ Before, the grand total was always reported to be zero.
+
+Major changes in release 3.9:
+* --help gives a one-line description of each option and shows the
+ correspondence between short and long-named options.
+* work around systems with BROKEN_STAT_MACROS
+* work around problem where $(srcdir)/config.h was used instead of
+ ../config.h -- this happened only when building in a subdirectory
+ and when config.h remained in $(srcdir) from a previous ./configure.
+* GNU chmod treats symlinks the same way other vendor's versions do.
+ Now symlinks listed on the command line are processed (they were
+ ignored before); the permissions of the dereferenced files are
+ changed. Symlinks encountered in recursive traversals are still
+ ignored. This makes GNU chmod act more like e.g. Sun's.
+* configure uses config.h, so DEFS won't exceed preprocessor limits of
+ some compilers on the number of symbols defined via -D.
+* ls and cp can handle mount points on more systems
+* cp, mkdir, and rmdir long option --path renamed to --parents; --path
+ will still work for a while
+* cp, ln, and mv convert `cp A B/' to cp A B/A when A is not a directory.
+ This change affects only the two-argument form of the commands. It makes
+ such commands fail when the target has a trailing slash but is not a
+ directory or symlink to a directory and the source is not a directory.
+ They used to succeed, ignoring the implicitly contradictory trailing slash.
+
+Major changes in release 3.8:
+* install isn't as likely to produce spurious errors
+* avoid redundant compilations for `dir' and `vdir';
+* configure properly defines STAT_STATFS2_BSIZE on a Pyramid MIServer
+ running OSx 5.1
+
+Major changes in release 3.7:
+* none
+Major changes in release 3.6:
+* `ln -s dir_pathname .' works when the pathname has a trailing slash
+* with the --version option programs print the version and exit immediately
+* GNU ls -f works like Unix ls -f
+* mktime replacement works
+
+Major changes in release 3.5:
+* adds support for DEC Alpha under OSF/1
+* configuring with gcc uses CFLAGS='-g -O' by default
+* all programs accept --help and --version options
+* long-named options must be introduced with `--'; `+' is no longer
+ accepted since it is incompatible with the POSIX.2 standard
+* chmod accepts long-named options
+* dd conv=unblock doesn't hang
+* new df option --exclude=fstype
+* new ls option --full-time
+
+Major changes in release 3.4:
+* cp -p and mv preserve setuid and setgid bits
+* chown works on systems where sizeof(uid_t) != sizeof(int)
+ or sizeof(uid) != sizeof(gid)
+* catch errors from spurious slashes at ends of arguments
+
+Major changes in release 3.3:
+* df sped up by not calling sync for every filesystem
+* df ported to AIX (RS/6000 and PS/2), and SVR2 port fixed
+* df -i now also prints the total number of inodes per filesystem
+* ls sped up by not reading symlink contents unnecessarily
+* du doesn't die on POSIX systems when the root filesystem is NFS mounted
+* cp and mv report chown Permission denied errors when run by root