summaryrefslogtreecommitdiff
path: root/old/fileutils
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>1992-10-31 20:42:48 +0000
committerJim Meyering <jim@meyering.net>1992-10-31 20:42:48 +0000
commit14fd34b78818660e05806b6eda178e3f846c5c21 (patch)
treeb40038aa2684b5cd95ae2d5fcef564bcf8e05cc3 /old/fileutils
downloadcoreutils-14fd34b78818660e05806b6eda178e3f846c5c21.tar.xz
Initial revision
Diffstat (limited to 'old/fileutils')
-rw-r--r--old/fileutils/ChangeLog1901
-rw-r--r--old/fileutils/NEWS13
2 files changed, 1914 insertions, 0 deletions
diff --git a/old/fileutils/ChangeLog b/old/fileutils/ChangeLog
new file mode 100644
index 000000000..2469a5047
--- /dev/null
+++ b/old/fileutils/ChangeLog
@@ -0,0 +1,1901 @@
+Thu Oct 29 14:57:21 1992 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu)
+
+ * Version 3.4.
+
+ * cp.c (copy, re_protect), mv.c (copy_reg): Do utime and chown
+ before chmod, so set[ug]id bits don't get nuked.
+ Don't use fchmod.
+
+Wed Oct 28 16:13:18 1992 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu)
+
+ * cp.c, mv.c, ln.c: Rename some variables to use consistent
+ terminology: source and destination.
+
+ * ln.c, mkdir.c, mkfifo.c, mknod.c: Don't strip trailing slashes.
+ * install.c: Don't strip slashes from dest. dirs.
+
+Mon Aug 24 12:49:14 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * xgetcwd.c: Make path_max unsigned, not long. From Bruce Evans.
+
+Sun Aug 23 03:06:04 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * idcache.c: Use a union for uid_t and gid_t. From
+ bde@runx.oz.au (Bruce Evans).
+
+ * eaccess.c: Use NGROUPS_MAX if it's defined. 386BSD is like sun.
+
+Sat Aug 22 02:36:49 1992 David J. MacKenzie (djm@churchy.gnu.ai.mit.edu)
+
+ * makepath.c: Use uid_t and gid_t.
+
+ * system.h, makepath.c: Use HAVE_ALLOCA_H, not sparc.
+
+ * cp.c (make_path, re_protect): Allocate room for terminating NULs.
+
+Fri Aug 21 21:12:18 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * fsusage.c [STAT_STATVFS]: Use f_bsize if f_frsize is 0.
+ From Paul M Reilly <pmr@rock.concert.net>.
+
+ * xgetcwd.c [!errno]: Declare errno. From Karl Berry.
+
+ * chown.c (main, change_file_owner, change_dir_owner): Use
+ uid_t and gid_t. From Rob McMahon <cudcv@csv.warwick.ac.uk>
+ and glaze@cs.mu.oz.au (Glaze).
+
+Thu Jul 23 14:29:17 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * Version 3.3.
+
+Sat Jul 18 20:12:56 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * idcache.c: Use uid_t and gid_t.
+ (getuidbyname, getgidbyname): New functions, for cpio.
+
+ * userspec.c: New file, from code in chown.c.
+ * chown.c: Use it.
+
+Fri Jul 17 00:43:38 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * system.h: Protect from getopt prototype in stdlib.h.
+
+ * ls.c [_AIX]: Include sys/ioctl.h.
+ * fsusage.c: Include sys/vfs.h if AIX PS/2, but not if RS6000.
+ From tranle@intellicorp.com (Minh Tran-Le).
+
+ * mvdir.c: Declare getcwd. From Francois Pinard.
+
+ * chown.c, chgrp.c, install.c [_POSIX_SOURCE]: Define endpwent
+ and endgrent as empty.
+
+ * makepath.c (make_path): Add cast to alloca call.
+ From Jim Meyering.
+
+ * cp.c (copy, re_protect), mv.c (copy_reg): Notify root of
+ EPERM errors from chown.
+ * makepath.c, install.c [AFS]: Ignore EPERM from chown.
+
+ * system.h (ST_NBLOCKS) [_AIX && _I386]: st_blocks is in 4K units.
+ * fsusage.c (statfs) [_AIX && _I386]: Supply this function.
+ From tranle@intellicorp.com (Minh Tran-Le).
+
+Thu Jul 16 23:08:39 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * df.c (print_header, show_dev): In inode format, print the
+ total number of inodes as well.
+
+ * fsusage.[ch], df.c (show_dev): Count internally using
+ 512-byte blocks, not 1024-byte, to avoid rounding errors.
+
+Mon Jul 6 20:03:54 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * rename.c: Use S_ISDIR instead of S_IFDIR.
+
+Fri Jul 3 14:36:34 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * fileblocks.c, system.h, cp.c, dd.c, mv.c, touch.c: Change
+ FOO_MISSING to HAVE_FOO.
+
+Wed Jun 3 19:28:04 1992 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu)
+
+ * xgetcwd.c (xgetcwd): Accept errno==EINVAL as nonfatal.
+
+Wed May 20 00:05:52 1992 David J. MacKenzie (djm@churchy.gnu.ai.mit.edu)
+
+ * system.h: If we include a header file specifically to get
+ major et al., assume we have them.
+
+Mon May 11 20:04:10 1992 David J. MacKenzie (djm@churchy.gnu.ai.mit.edu)
+
+ * chgrp.c, chown.c: --show-changes -> --changes.
+
+Sat May 9 18:39:38 1992 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu)
+
+ * system.h: Define DEV_BSIZE if not defined.
+
+Thu Apr 30 13:55:37 1992 David J. MacKenzie (djm@churchy.gnu.ai.mit.edu)
+
+ * du.c (count_entry): Remove the trailing "/" before printing.
+
+Wed Apr 29 11:34:38 1992 David J. MacKenzie (djm@churchy.gnu.ai.mit.edu)
+
+ * rename.c (rename): If removing `from' fails, remove `to' to
+ clean up. From Matthew Farwell <dylan@ibmpcug.co.uk>.
+
+Thu Apr 23 21:14:16 1992 David J. MacKenzie (djm@churchy.gnu.ai.mit.edu)
+
+ * ls.c (gobble_file): Only read the link contents if -l or the
+ file was named on the command line.
+
+Wed Apr 22 02:16:38 1992 David J. MacKenzie (djm@churchy.gnu.ai.mit.edu)
+
+ * fsusage.c (get_fs_usage) [STAT_STATFS4 and _SEQUENT_]: Has f_bavail.
+ From Donn Cave <donn@carson.u.washington.edu>.
+
+ * getversion.c (get_version): If given invalid arg, exit.
+
+ * cp.c (copy): Fix mode with chmod if copying as a regular file.
+
+ * system.h, dd.c: SIGTYPE -> RETSIGTYPE.
+
+Sat Apr 18 00:18:41 1992 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu)
+
+ * fsusage.[ch] (get_fs_usage): Take another arg, the device name.
+ * fsusage.c (get_fs_usage) [STAT_READ]: Fix number of inodes
+ calculation. Use the device name. From Brian Matthews.
+ * df.c (show_dev): Pass the device name.
+
+Fri Apr 17 11:25:28 1992 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu)
+
+ * fsusage.c: Special-case AIX.
+
+ * mountlist.c [MOUNTED_VMOUNT]: New code for AIX, from
+ Garrett A. Wollman (wollman@uvm.edu).
+
+ * ls.c (gobble_file): Use stat, not lstat, on symlinked-to
+ file, for Unix compat. From ian@airs.com (Ian Lance Taylor).
+
+Mon Apr 6 14:16:06 1992 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu)
+
+ * xgetcwd.c: Include stdio.h to get NULL.
+
+Thu Apr 2 14:41:18 1992 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu)
+
+ * df.c: Call sync only once, instead of once per filesystem.
+
+Wed Apr 1 16:00:08 1992 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu)
+
+ * Version 3.2.
+
+Tue Mar 31 13:39:06 1992 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu)
+
+ * df.c (main): stat all arg pathnames before getting
+ list of mounted filesystems.
+ (show_entry, show_point): Take a struct stat * as another arg,
+ to avoid repeatedly statting files.
+
+Mon Mar 30 12:21:28 1992 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu)
+
+ * install.c (main): Allow symbolic modes for -m.
+ (atoo): Function removed.
+
+ * mkdir.c (main): Include invalid -m arg in error message.
+
+ * fsusage.c (get_fs_usage) [STAT_STATFS4]: Go back to using
+ 512 instead of f_bsize. Empirically, it gives the right answer.
+
+ * mvdir.c (main): Don't deref NULL pointer on last iteration
+ of loop.
+
+ * fsusage.c (adjust_blocks): New function.
+ (get_fs_usge): Call it.
+
+ * mvdir.c (main): Don't possibly try to use ".." entry of new dir
+ before creating it.
+
+ * fsusage.c (get_fs_usage) [STAT_STATFS4]: Use f_bsize member
+ of struct statfs.
+
+Sat Mar 28 00:36:57 1992 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu)
+
+ * dd.c (copy_simple, copy_with_block, copy_with_unblock,
+ translate_buffer, swab_buffer): New functions, mostly made
+ from code taken from copy. Incorporate some optimizations due
+ to Stuart Kemp: For each type of conversion, only check
+ whether to do it once per buffer read, instead of once per character.
+ (copy): If conv=block and the input didn't end with a newline,
+ pad the final block with spaces.
+
+Wed Mar 25 14:35:17 1992 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu)
+
+ * system.h: Don't use BSIZE for calculating ST_BLKSIZE if it
+ isn't defined.
+
+ * mountlist.c [MOUNTED_FREAD], fsusage.c [STAT_READ]: New code
+ for SVR2, from archive@ideahb.sublink.org (Lele Gaifax).
+
+Tue Mar 24 14:53:19 1992 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu)
+
+ * mvdir.c: Use getcwd, not getwd.
+
+ * system.h, xgetcwd.c: Redo how PATH_MAX is figured out, to
+ work on SVR3.
+
+ * fsusage.c, mountlist.c: New files split from fsinfo.c.
+ Revise conditionals to make the two files independant of each other.
+ * fsusage.h, mountlist.h: New files split from fsinfo.h.
+ * df.c: Use them.
+
+Mon Mar 23 13:01:07 1992 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu)
+
+ * fsinfo.c (read_filesystem_list): Take another arg, all_fs.
+ [FS_MNTENT]: Ignore type "auto" (from amd) as well as "ignore"
+ (from automounter), if not all_fs.
+ * df.c (main): Pass the new arg.
+
+ * fsinfo.h: Add function decls.
+
+ * chown.c, chgrp.c, chmod.c: Remove -L option. Didn't handle
+ changing symlinks correctly and wasn't very useful.
+
+Sat Mar 14 17:38:38 1992 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu)
+
+ * dirname.c (dirname): Don't use strdup.
+
+Fri Mar 13 14:56:15 1992 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu)
+
+ * rm.c (remove_file, remove_dir, clear_directory): If -f was
+ given, don't complain about ENOENT when removing.
+
+Mon Mar 9 00:09:48 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * install.c (main): Allow making multiple dirs with -d.
+ (usage): Document it.
+ * makepath.c (make_path): Clear umask while working and
+ restore it when done. chmod dirs that should have
+ set[ug]id or sticky bits set, if we're chowning them.
+ Make chown failure nonfatal. Do chmod after chown, not before.
+
+ * du.c (count_entry): Set exit_status on nonfatal error.
+ (main): Use it.
+
+Sun Mar 8 22:07:50 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * du.c (du_files): New function, from code in main.
+ Use xgetcwd instead of getcwd or getwd.
+ * system.h: Don't declare getcwd or getwd.
+
+ * xgetcwd.c: New file.
+
+ * ls.c (main): Exit with `exit_status' instead of 0.
+ (print_dir, gobble_file, get_link_name): Set exit_status on error.
+
+ * ls.c (print_long_format): Allow a slop factor for deciding
+ what is in the future.
+
+ * All programs: Change usage messages and documentation for
+ long options to use -- instead of +.
+
+ * df.c (main, usage): Add -v option for SysV compat.
+
+Tue Feb 4 12:45:09 1992 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
+
+ * fileblocks.c [!NINDIR]: Try to fake indirect block info for
+ systems that don't define it.
+
+Thu Jan 16 01:04:16 1992 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
+
+ * df.c (print_header): Capitalize some header words for
+ POSIX.2a draft 8.
+
+Sat Jan 4 01:19:25 1992 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
+
+ * posixtm.y: Capitalize token name.
+
+Tue Dec 24 01:05:44 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
+
+ * system.h, makepath.c, idcache.c, eaccess.c, backupfile.c,
+ install.c, dd.c, chown.c, chgrp.c: Change POSIX ifdefs to
+ HAVE_UNISTD_H.
+
+Wed Dec 18 16:42:00 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
+
+ * system.h: To get major, minor and makedev, don't check for
+ _POSIX_SOURCE and USG; use MAJOR_IN_MKDEV and MAJOR_IN_SYSMACROS.
+
+Mon Dec 16 18:16:42 1991 David J. MacKenzie (djm at wombat.gnu.ai.mit.edu)
+
+ * dd.c (skip): Fix typos in arg name.
+ (output_char): Fix off by one error in check.
+
+Sun Dec 8 19:55:06 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
+
+ * system.h: Only define major et al. if not already defined.
+
+Fri Dec 6 18:26:53 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
+
+ * dd.c (main) [POSIX]: Use sigaction instead of signal, which
+ POSIX doesn't have.
+
+ * df.c, du.c, ls.c: POSIX_ME_HARDER -> POSIXLY_CORRECT.
+
+Wed Dec 4 14:30:16 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
+
+ * dd.c: Cleanups, mostly from Stuart Kemp:
+ (output_char): New macro, from code in copy.
+ (write_output): New function, used by output_char, from code
+ in copy.
+ (skip): New function, from code in copy.
+ (copy): Use output_char and skip.
+ Simplify test for quitting before main loop.
+ Zero buffer using bzero for speed.
+
+Sun Nov 17 19:39:04 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
+
+ * fsinfo.c (get_fs_usage) [FS_MNTENT]: Take blocksize into account.
+ (read_filesystem_list) [FS_MNTENT]: Ignore filesystems of type
+ "ignore" (automounter dummy entries).
+
+ * install.c (change_attributes): Do chmod even if chown fails.
+
+Thu Oct 24 23:50:46 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
+
+ * chown.c (change_file_owner), chgrp.c (change_file_group):
+ don't skip symlinks, since the chown system call works on them.
+
+Fri 18 Oct 1991 23:29:24 Jim Meyering (meyering at wombat)
+
+ * configure: fixed test to detect sequent's strange interpretation
+ of utime(file, NULL).
+
+Fri Oct 18 00:30:42 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
+
+ * eaccess.c: GID_T -> GETGROUPS_T, for clarity.
+
+Sat Oct 12 12:25:55 1991 David J. MacKenzie (djm at churchy.gnu.ai.mit.edu)
+
+ * configure: Define uid_t and gid_t as int if they're not
+ defined in sys/types.h. That's probably right for old Unixes
+ and avoids trying to find the C preprocessor.
+
+ * df.c: Don't declare sync, to avoid conflict with Minix (and
+ maybe others) unistd.h.
+ (show_point): Cast -1 to dev_t before comparing, in case dev_t
+ is unsigned. From Rainer Orth.
+
+ * chown.c [!POSIX]: Declare getgrgid.
+
+Fri Sep 13 14:55:41 1991 David J. MacKenzie (djm at churchy.gnu.ai.mit.edu)
+
+ * eaccess.c [POSIX]: Always use sysconf to get NGROUPS_MAX.
+
+Thu Sep 5 23:40:39 1991 David J. MacKenzie (djm at apple-gunkies)
+
+ * system.h: Instead of defining getwd in terms of getcwd with
+ PATH_MAX as an arg (which might be -1 on POSIX), define getcwd
+ in terms of getwd.
+ * du.c (main): Call getcwd with path_max as an arg.
+
+ * install.c (change_attributes): Do chown before chmod, so
+ chown doesn't remove set[ug]id bits.
+
+Wed Aug 28 20:53:50 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
+
+ * Version 3.1.
+
+Mon Aug 26 15:44:16 1991 David J. MacKenzie (djm at pogo.gnu.ai.mit.edu)
+
+ * du.c (main): If pathconf fails, use 1024 for PATH_MAX. This
+ happens if "/" is NFS-mounted.
+
+Sun Aug 25 00:56:11 1991 David J. MacKenzie (djm at apple-gunkies)
+
+ * df.c, fsinfo.c, fsinfo.h: New program.
+ * configure: Check for various ways of getting info on mounted
+ filesystems.
+
+Thu Aug 22 10:53:23 1991 David J. MacKenzie (djm at apple-gunkies)
+
+ * src/Makefile.in: Workaround #10006 for C compilers that are
+ too dumb to allow -c and -o together. Copy the source files.
+ * system.h: Moved from src to lib to avoid having to add yet
+ more -I options to CFLAGS.
+
+ * du.c, ls.c: If POSIX_ME_HARDER is set in environment, use
+ 512-byte blocks by default.
+
+Wed Aug 21 13:03:14 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
+
+ * Version 3.0.
+
+ * du.c, ls.c: Make 1K blocks the default size, and -k a no-op.
+ Down with dumb standards!
+
+ * system.h, backupfile.c, savedir.c [VOID_CLOSEDIR]: Fake a
+ return value for closedir, which returns void on some systems,
+ like Sequents.
+ * configure: Check sys/dir.h for 'void closedir'.
+
+Tue Aug 20 22:22:47 1991 Jim Meyering (meyering at nutrimat)
+
+ * mvdir.c (main): Clean up loop to stat component
+ directories -- as in makepath and pathchk.
+
+Tue Aug 20 22:10:47 1991 Jim Meyering (meyering at nutrimat)
+
+ * dirname.c (dirname): Allocate exact amount of space
+ needed for result.
+
+Tue Aug 20 02:13:40 1991 David J. MacKenzie (djm at apple-gunkies)
+
+ * savedir.c (savedir): Try to open directory before allocating
+ buffer. From Jim Meyering.
+
+Mon Aug 19 01:14:13 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
+
+ * Many files: indent '#pragma alloca' so non-ANSI compilers
+ don't choke on it.
+
+ * backupfile.c (max_backup_version): Check closedir return
+ value (though it might not do any good).
+
+Tue Aug 6 20:50:56 1991 David J. MacKenzie (djm at wheat-chex)
+
+ * configure, Makefile.in's: Support +srcdir option, using VPATH.
+ Don't check for bison, just try it and if it fails use yacc.
+ Create config.status. Fix up clean targets.
+
+ * posixtm.y (posixtm): New function.
+
+ Most of the following is from Paul Eggert:
+ * savedir.c (savedir), ls.c (print_dir), rm.c
+ (clear_directory): Check closedir return for errors.
+ * dd.c (main): Check for stdin or stdout being closed.
+ * dd.c (quit), install.c (copy_file): Check for close errors.
+ * mv.c (copy): Was missing a close.
+
+Sat Aug 3 02:05:51 1991 David J. MacKenzie (djm at apple-gunkies)
+
+ * ln.c: Declare link() unconditionally (SCO UNIX needs it).
+
+Tue Jul 30 00:23:19 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
+
+ * configure: NEED_TZSET has become FTIME_MISSING.
+
+ * configure: Define uid_t and gid_t if sys/types.h doesn't.
+
+Sat Jul 27 00:55:16 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
+
+ * configure: Only compile fileblocks.c if st_blocks is missing.
+
+ * cp.c (copy): Make directories with initial mode of source
+ permissions minus umask, plus 0700. For POSIX and John Gilmore.
+
+ * system.h: Include errno.h and, if STDC_HEADERS, stdlib.h.
+ * All programs: Remove includes of those files.
+
+ * ftruncate.c: New file.
+ * configure: Use it if needed.
+
+Wed Jul 24 02:09:45 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
+
+ * ls.c (get_name_link), cp.c (copy) [_AIX]: Allocate extra
+ space for the buffer, since st_size is wrong.
+
+ * system.h: Don't declare alloca for AIX.
+ * makepath.c, posixtm.y, cp.c, du.c, ln.c, ls.c, mv.c:
+ Declare alloca first (AIX needs it).
+
+ * cp.c, dd.c, touch.c: Use SEEK_ instead of L_.
+ * system.h: Define SEEK_ if not defined.
+
+Tue Jul 23 15:02:20 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
+
+ * eaccess.c: GID_T is int if ultrix as well as if sun.
+
+Mon Jul 22 11:39:31 1991 David J. MacKenzie (djm at bleen)
+
+ * install.c: Use uid_t and gid_t.
+
+ * eaccess.c: Support POSIX method of getting multiple groups.
+
+ * xmalloc.c (xmalloc, xrealloc): Exit with value 2 on error,
+ not 1, so cmp can use it.
+
+Sat Jul 20 14:24:40 1991 David J. MacKenzie (djm at bleen)
+
+ * Move cat cmp cut expand head paste split tac tail unexpand
+ to textutils.
+
+ * system.h [MKFIFO_MISSING]: Define mkfifo macro.
+ * cp.c, mkfifo.c: Don't define it.
+
+ * mknod.c, gmknod.1: New files.
+
+Fri Jul 19 13:43:01 1991 David J. MacKenzie (djm at apple-gunkies)
+
+ * version.c: New file.
+ * All C programs: Link with it, to get version number in the
+ binary where at least `strings -' and GNU grep can find it.
+
+Mon Jul 15 13:46:53 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
+
+ * configure: Also look in sys/signal.h for signal decl.
+
+Sun Jul 14 22:43:57 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
+
+ * Rename touchtm.y back to posixtm.y, as the date command will
+ use it too.
+
+Mon Jul 8 22:56:36 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
+
+ * Replace lib/Makefile with lib/Makefile.in.
+ * configure: For some library functions that might be missing,
+ conditionally add the .o files to lib/Makefile instead of
+ defining func_MISSING.
+ * lib/mkdir.c: Renamed from lib/mkrmdir.c.
+
+Sat Jul 6 02:19:09 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu)
+
+ * xstrdup.c [STDC_HEADERS]: Include string.h.
+
+ * stripslash.h: Include string header file.
+
+ * configure: Add to DEFS if Minix.
+
+ * system.h [_POSIX_SOURCE]: Make ST_BLKSIZE 1024 instead of
+ 512, for better performance.
+
+ * system.h, configure: If sys/mkdev.h exists, use it instead
+ of sys/sysmacros.h.
+
+ * configure: echo messages to stdout, not stderr.
+ Use test programs to see if alloca needs -lPW and if chars are
+ unsigned.
+
+Tue Jul 2 03:16:32 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu)
+
+ * chown.c, chgrp.c [!POSIX]: Declare pwd.h and grp.h functions.
+
+Sat Jun 29 16:46:12 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu)
+
+ * cp.h: Don't declare `open', to avoid conflict with varargs
+ prototypes.
+
+ * chown.c, chgrp.c: Include sys/types.h before, not after,
+ pwd.h and grp.h, to get uid_t and gid_t if necessary.
+
+Fri Jun 28 01:12:45 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu)
+
+ * ls.c: Use time_t instead of long, where appropriate.
+
+Thu Jun 27 16:31:45 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu)
+
+ * touchtm.y: Renamed from posixtime.y for SysV systems with Bison.
+
+ * configure: No longer need to pass bison the -y option.
+ Now lib/Makefile should allow a parallel make with bison.
+
+ * cp.c (copy_reg), cat.c (main),
+ touch.c (touch, utime_now), mv.c (copy): Check close return
+ value for delayed error report due to NFS.
+
+Thu Jun 20 01:33:06 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu)
+
+ * configure: Include $DEFS when compiling test programs.
+
+ * configure: Use test programs instead of grep to check for
+ USG, POSIX, and ANSI C headers, in case symbols are defined in
+ header files included by the standard ones. Check for BSD
+ memory functions (bcopy et al.) as well as string functions.
+ Add notice to top of generated Makefile saying that it's
+ automatically generated.
+
+Thu Jun 13 00:50:18 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu)
+
+ * Version 2.1.
+
+ * configure: If rename is missing, define MVDIR.
+ Use , instead of / as sed substitution separator so variables'
+ values can contain slashes.
+
+ * du.c (main): Use alloca to allocate `wd' instead of making
+ it an auto array, since PATH_MAX might be a call to pathconf.
+
+Wed Jun 12 19:56:22 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu)
+
+ * cp-aux.c (usage), install.c (usage), ln.c (usage), mv.c
+ (usage): Combine the option lists for the multiple usage forms.
+
+Tue Jun 11 00:12:15 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu)
+
+ * idcache.c: pwd.h and grp.h might need sys/types.h.
+
+ * configure: Create Makefile from Makefile.in instead of
+ makefile from makefile.skel, to more closely follow the new
+ GNU coding standards.
+
+ * ls.c (file_interesting): Use POSIX.2 fnmatch instead of glob_match.
+
+ * configure: If $RANDOM is implemented (ksh, bash or zsh), use
+ the `type' builtin to determine if gcc, bison, ranlib are
+ available. ksh writes "fubar: command not found" to stderr,
+ foiling the test -n "`command 2>&1`" method.
+ Remove makefile on signal.
+
+ * system.h: Include sys/param.h if not _POSIX_SOURCE instead
+ of if not POSIX, to get DEV_BSIZE.
+
+ * makepath.c, posixtime.y, system.h: Add _AIX case to alloca decl.
+
+Sun Jun 9 01:26:27 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu)
+
+ * Version 2.0.
+
+ * basename.c, dirname.c: Use str[r]chr and string.h if
+ STDC_HEADERS as well as if USG.
+
+ * touch.c (utime_now): Created from code in touch ().
+
+Sat Jun 8 11:02:32 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu)
+
+ * backupfile.c: Use POSIX instead of _POSIX_SOURCE to
+ determine whether to check whether readdir returned a valid
+ entry.
+
+Fri Jun 7 21:44:51 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu)
+
+ * fileblocks.c (st_blocks), system.h (ST_NBLOCKS): Always
+ return number of 512 byte blocks, not DEV_BSIZE blocks.
+ (convert_blocks): Always expect 512-byte blocks.
+
+Thu Jun 6 12:54:26 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu)
+
+ * system.h [POSIX]: If PATH_MAX not defined, use pathconf.
+ Remove NAME_MAX stuff; not used.
+
+ * system.h: Make #include <strings.h> depend on not (USG or
+ STDC_HEADERS) instead of not (USG or POSIX).
+
+ * configure: New shell script to aid compilation.
+
+Mon Jun 3 16:42:41 1991 David J. MacKenzie (djm at wheat-chex)
+
+ * cp.h: Remove some decls of functions returning int that
+ conflict with prototypes on HPUX.
+
+ * cp.c (make_path, re_protect): New functions from Jim
+ Meyering. Changes to other functions as well, to add +path,
+ +link, +symbolic-link options.
+
+Sun Jun 2 15:45:24 1991 David J. MacKenzie (djm at wheat-chex)
+
+ * most files: use GPL version 2.
+
+Sat Jun 1 20:17:35 1991 David J. MacKenzie (djm at wheat-chex)
+
+ * rm.c, backupfile.c: If _POSIX_SOURCE, don't refer to d_ino.
+
+Sun May 19 18:42:09 1991 David J. MacKenzie (djm at churchy.gnu.ai.mit.edu)
+
+ * touch.c: Renamed getdate to get_date to avoid SVR4 conflict.
+
+Thu May 16 23:12:01 1991 David J. MacKenzie (djm at albert.gnu.ai.mit.edu)
+
+ * cp.c, mv.c, ln.c: Use alloca and strcpy directly instead of
+ in a macro for generating backup filename. The latter
+ sometimes coredumps for some reason.
+
+Sat Apr 20 00:03:09 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu)
+
+ * dd.c: Add conv=notrunc and truncate output file by default,
+ for POSIX.
+
+ * rm.c (rm): Refuse to remove path/. and path/.., as well as `.'
+ and `..', for POSIX.
+
+ * chown.c: Allow `:' as well as `.' to separate group from
+ user, for POSIX.2 draft 11.
+
+ * Many programs: Don't bother to get the long-option index
+ value from getopt_long, since we ignore it.
+
+ * Many programs: Separate long-option option names from their
+ args with `=' instead of ` ' in usage messages.
+
+ * touch.c (touch): Don't refuse to touch non-regular files.
+
+Wed Apr 10 12:19:30 1991 David J. MacKenzie (djm at churchy.gnu.ai.mit.edu)
+
+ * cp.c, cp-aux.c: Add -a +archive option, an easier to
+ remember synonym for -dpR.
+
+Fri Mar 15 16:16:54 1991 David J. MacKenzie (djm at geech.ai.mit.edu)
+
+ * mv.c (copy): Try to preserve file ownership in
+ cross-filesystem copies.
+
+ * backupfile.c, rm.c: Go back to using d_ino instead of
+ d_fileno. POSIX.1 specifies neither, and d_ino is more
+ common, perhaps ubiquitous.
+
+ * chown.c (describe_change): Don't print the group name if it
+ didn't change (thus is a null pointer).
+ (main): Initialize group name to null.
+
+Mon Feb 25 11:44:14 1991 David J. MacKenzie (djm at geech.ai.mit.edu)
+
+ * dd.c (copy): Only seek if not seeking to start of file, so
+ "dd >> foo" works with Minix shell that doesn't open foo in
+ append mode.
+
+Thu Feb 21 11:59:39 1991 David J. MacKenzie (djm at geech.ai.mit.edu)
+
+ * ln.c (do_link), mv.c (do_move), cp.c (copy): Store backup
+ filename using alloca so we don't have to free it every place
+ we return. From Jim Meyering.
+
+Thu Feb 14 00:41:43 1991 David J. MacKenzie (djm at geech.ai.mit.edu)
+
+ * cp.c (copy_reg): Only make holes when copying a regular file
+ onto a regular file.
+
+Fri Jan 18 06:31:59 1991 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * ls.c: Move defn. of S_IEXEC to after header files are included.
+ * cp.h: Always declare stat and lstat.
+
+Thu Jan 10 02:16:55 1991 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * cp.h: Only declare some system calls if not POSIX.
+
+ * eaccess.c, idcache.c, dd.c, install.c, ln.c, system.h:
+ Change _POSIX_SOURCE to POSIX.
+
+ * fileblocks.c, system.h: Change STBLOCKS_MISSING to
+ ST_BLOCKS_MISSING (was already that way in cp.c).
+
+Fri Dec 28 18:40:34 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * chmod.c, chown.c, chgrp.c, du.c: Rename -d option to -L for
+ similarity to ls and cpio.
+
+Thu Dec 27 00:06:45 1990 David J. MacKenzie (djm at egypt)
+
+ * rm.c (clear_directory): Keep looking for files to remove
+ until we don't find any, so that any .nfs* files created by
+ removing other files are also removed, eventually.
+
+ * install.c (main): Strip trailing slashes on all args.
+
+ * mv.c (copy): Open target file with mode 0600, not 0777.
+ [FCHMOD_MISSING]: Perform chmod after closing files, not
+ before, for MS-DOS.
+
+ * cp.c (do_copy): Don't append `..' to target dir name.
+
+ * du.c (main, count_entry, usage): Add -D +dereference-args
+ and -d +dereference options.
+
+Wed Dec 26 03:39:18 1990 David J. MacKenzie (djm at egypt)
+
+ * dirname.c, xstrdup.c: Get decls from standard files, if available.
+
+Thu Dec 20 23:10:22 1990 David J. MacKenzie (djm at egypt)
+
+ * makepath.c: New file, adapted from code in mkdir.c,
+ install.c, and cpio util.c by Jim Meyering.
+ * mkdir.c, install.c: Use make_path.
+
+Sun Dec 16 00:56:54 1990 David J. MacKenzie (djm at egypt)
+
+ * chown.c, chgrp.c: New files.
+
+Sat Dec 15 20:42:32 1990 David J. MacKenzie (djm at egypt)
+
+ * cp.h: Declare POSIX functions always -- _POSIX_SOURCE
+ doesn't imply STDC declarations.
+
+ * system.h: Define S_ISTYPE macros not defined by sys/stat.h.
+
+ * Many files: Use S_ISTYPE macros.
+
+ * backupfile.c, rm.c: Use name d_fileno for member of struct
+ dirent instead of d_ino, for POSIX.
+
+Wed Dec 12 23:38:22 1990 David J. MacKenzie (djm at egypt)
+
+ * ls.c: Declare time() as time_t instead of long, to prevent
+ conflict with standard header files.
+
+ * cp.c (copy_reg): Instead of using NO_SPARSE_FILES, use
+ st_blocks to determine whether the original file contains any
+ sparse blocks, and only create them if so. On systems without
+ st_blocks, to be safe, never create sparse blocks.
+
+Thu Nov 8 12:16:27 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * idcache.c: If _POSIX_SOURCE not defined, declare getpw and
+ getgr functions (not an optimal solution, but I hate to add
+ yet another configuration macro).
+
+ * Makefile: Define AR and RANLIB and pass to child makes.
+ lib/Makefile: Use them.
+
+Tue Nov 6 23:18:06 1990 David J. MacKenzie (djm at mole.ai.mit.edu)
+
+ * idcache.c: New file from code in ls.c.
+
+Fri Nov 2 14:34:40 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * Move files into src and lib directories, split out library
+ functions into separate files in lib, and rewrite Makefiles.
+
+Mon Oct 29 01:20:46 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * mv.c (do_move), rm.c (remove_file, remove_dir): If stdin is
+ a tty and file is unwritable, prompt before overwriting.
+
+ * cp.c (copy_reg): Only make sparse files if
+ NO_SPARSE_FILES is undefined, to accomodate dumb kernels.
+
+ * du.c (count_entry): Remove misinformed HPUX kludge that
+ doesn't really fix the problem.
+
+ * rm.c (rm): Check for textual equality with '.' and '..', not
+ dev/inode equality.
+
+Sat Oct 27 23:38:55 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * rm.c (check_stack): If not interactive, don't prompt when
+ corruption is found, just quit.
+ (remove_file, remove_dir): Delete leading spaces in verbose
+ output.
+
+ * cp.c (copy), rm.c (remove_dir): If we think the dest. file
+ is unwritable, warn the user in the interactive prompt instead
+ of automatically skipping the file. Because of race
+ conditions and other protection mechanisms we might not know
+ about, and POSIX.
+
+Mon Oct 8 18:51:25 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * du.c (main, usage, count_entry): Add +separate-dirs -S option.
+
+ * dd.c (main): Don't trap SIGINT if it was being ignored.
+
+Tue Sep 25 16:40:43 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * install.c (copy_file, install_file_in_file): Change
+ attributes after stripping, to guard against strip programs
+ that clear setuid bits, etc.
+
+Fri Sep 21 22:31:43 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * cp.c (copy_reg): Put back ftruncate way of making holes
+ because the other way can't make a hole at the end of a file.
+
+Tue Sep 18 03:47:45 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * install.c (change_attributes): Don't ignore EPERM for chown,
+ since the default uid is now the current uid.
+
+Sun Sep 9 16:54:19 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * Version 1.4.
+
+ * cp.h: Declare free returning void, not int, so it
+ doesn't bomb on Xenix.
+
+Fri Sep 7 04:35:35 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * system.h, backupfile.c, savedir.c [DIRENT]: if direct is
+ defined (as on Ultrix 4.0), undefine it before redefining it.
+
+Tue Sep 4 03:10:24 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * dd.c (apply_translations, translate_charset): Code moved
+ from parse_conversion.
+ (apply_translations): Convert from EBCDIC to ASCII before
+ converting case.
+
+ * mvdir.c (fullpath): Return a value.
+
+ * dd.c (copy): Increment count of truncated records once
+ per record, not once per character that overflows.
+
+Mon Sep 3 22:23:57 1990 David J. MacKenzie (djm at coke)
+
+ * dd.c (swab_array): Function removed.
+ (copy): Rewrite conv=swab to work when odd number of bytes
+ are read.
+ (scanargs): Die if invalid numeric value is given.
+ (parse_integer): Return -1 if invalid arg.
+ (bit_count): Faster version from Jim Meyering.
+
+ * cp.c, mkfifo.c [MKFIFO_MISSING]: Define mkfifo.
+
+Thu Aug 30 00:17:02 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * mvdir.c (main): Make sure `from' is not a parent of any part
+ of `to', not just the explicitly given part.
+ (fullpath): New function.
+
+Wed Aug 29 19:50:05 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * mvdir.c: Renamed from mv_dir.c, for consistency with mkdir and rmdir.
+ * dirlib.c: Caller changed.
+
+Tue Aug 28 18:05:24 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * touch.c (main): Don't interpret first non-option arg as a
+ time if `--' is given (POSIX-required kludge).
+
+ * touch.c: Add long-named options.
+
+ * Many files: Include <getopt.h> instead of "getopt.h" since
+ getopt.h will be in the GNU /usr/include.
+
+ * install.c: Declare some functions.
+
+ * touch.c, getdate.y, posixtime.y, mktime.c: New files, from bin-src.
+
+ * posixtime.y: Move year from before time to after it (but
+ before the seconds), for 1003.2 draft 10.
+
+Mon Aug 27 03:25:36 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * touch.c (main): If no time is given and first arg is a valid
+ timespec, use it as one.
+
+Sat Aug 25 01:36:16 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * posixtime.y: Enclose YYABORT in braces in case some yacc's
+ need it.
+
+ * touch.c: Remove -i option. Change some error messages.
+ (readname): Function removed.
+
+Thu Aug 23 12:56:33 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * cp.c (copy): Only restore dir mode if it was changed.
+
+Wed Aug 22 01:45:54 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * cp.c (copy): Don't only backup files when -f is given.
+
+ * ls.c: Add -X +sort=extension option. Rename
+ +kilobyte-file-size to +kilobytes.
+
+ * du.c: Rename -f option to -x, for POSIX. Rename
+ +kilobyte-file-size to +kilobytes. Add -b, +bytes option for
+ POSIX.
+
+ * cp-aux.c (usage): Change -o to -x.
+ (stpcpy): Renamed from str_cpy. Change callers in cp.c.
+
+ * cp.c: New variable, `flag_copy_as_regular'.
+ (main): For -R, unset `flag_copy_as_regular'.
+ Rename -o to -x for consistency with du.
+ (copy): Only unlink destination files when -f is given.
+ Only prompt when -i given and copying as a regular file.
+ Move check for previous link after other checks, reducing
+ duplicate code.
+ Create directories with mode 0700 initially, for POSIX.
+
+Mon Aug 20 03:29:08 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * dd.c (copy): Swap input bytes instead of output bytes.
+ (swab_array): New function.
+
+ * dd.c (copy): If sync and noerror, zero the buffer before the
+ read instead of after so that any data read before an error
+ occurred are preserved.
+ On read error, print stats and seek past the bad block if noerror.
+ noerror doesn't affect write errors, for POSIX.
+ (scanargs): Use two buffers if no buffer sizes given.
+ Do not block or unblock if cbs not given.
+ (print_stats): New function.
+ (quit): Call it.
+
+Mon Aug 13 23:30:03 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * cp.c (copy): If dest. exists and is unwritable, skip the file.
+
+ * rm.c, mv.c, cp.c, ln.c (main): Respect the last -f or -i given,
+ for POSIX.
+
+ * rm.c (remove_file): Only prompt if -i is given.
+ (main, usage): Remove -o +override-mode option, obsolete if
+ POSIX accepts our objection about prompting.
+
+ * mv.c (do_move): Only prompt if -i is given.
+
+ * ln.c (do_link): If dest. file exists and -i and -f not
+ given, skip the file.
+
+Tue Aug 7 12:51:18 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * dd.c (main): If seek= given, don't truncate output file.
+ (copy): Use `read' to skip output blocks if not regular file.
+ Sync with NUL instead of SPC.
+
+Mon Aug 6 14:43:30 1990 David J. MacKenzie (djm at pogo.ai.mit.edu)
+
+ * rm.c: Rename `ignore_errors' to `ignore_missing_files', and
+ have it only suppress messages about nonexisting files.
+ (main): Get dev and ino of `.' and `..'.
+ (rm): If file is the same as `.' or `..', return with error.
+ (remove_file): Remove the file rather than skipping it if
+ unwritable, no -i, and stdin not tty.
+ (remove_dir): Return an error if directory is nonwritable,
+ rather than nonreadable or nonsearchable, for POSIX.2 draft 10.
+
+ * chmod.c (main): Use fixed error checking to make sure that
+ options aren't mixed together in the same args as mode specifiers.
+
+Sun Aug 5 11:51:12 1990 David J. MacKenzie (djm at pogo.ai.mit.edu)
+
+ * chmod.c (main): Use umask for '-' op.
+
+Sat Aug 4 10:11:30 1990 David J. MacKenzie (djm at pogo.ai.mit.edu)
+
+ * mkfifo.c: Remove -p +path option, no longer specified by POSIX.
+
+Fri Aug 3 13:38:28 1990 David J. MacKenzie (djm at pogo.ai.mit.edu)
+
+ * mkdir.c, mkfifo.c, create.c (main): Don't tell mode_compile to
+ respect the umask for certain operations, since the umask is 0 anyway.
+
+ * install.c (get_ids): Use getuid and getgid to get defaults,
+ instead of -1.
+
+Fri Jul 27 14:32:40 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * backupfile.c (dirname): Always replace frontmost slash with a null.
+
+Thu Jul 26 00:20:35 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * cp.h: Declare umask as unsigned short.
+
+ * eaccess.c: Make uid and gid unsigned short, and group array unsigned.
+
+Wed Jul 25 18:38:57 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * rm.c (remove_file, remove_dir): Print verbose message right
+ before actually trying to remove the file, after the prompting.
+
+ * ls.c (getuser, getgroup): Make uid and gid unsigned short, not int.
+
+Tue Jul 24 03:39:42 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * cp.c (copy), ln.c (do_link), mv.c (do_move): For +verbose,
+ print the file names just before actually attempting the
+ copy/link/move, to produce a list of the files that they
+ actually try to copy/link/move, omitting skipped files.
+ Remove leading spaces from +verbose output.
+
+Mon Jul 23 16:57:44 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * cp.c (copy): Make +update operate silently, like +one-file-system.
+
+ * ln.c: Add -F as synonym for -d, for SunOS compatibility.
+
+Sun Jul 15 23:23:28 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * cp.c (copy): Go back to using xstat on dest.
+
+Wed Jul 11 12:10:33 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * cp.c (copy): Make directories with desired mode plus u+wx so
+ if the copy is interrupted, the dir is closer to the desired mode.
+ Don't backup directories.
+
+Sun Jul 8 00:39:31 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * rm.c (main, usage): Add new option -d, +directory.
+ (rm): If -d given, use remove_file instead of remove_dir for
+ directories.
+ (remove_file): If directory, print "remove directory `foo'?"
+ for interactive instead of "remove `foo'?".
+
+ * ln.c (main): If -s given, print warning message if symlinks
+ are not available.
+ * mkfifo.c (main): If fifo's are not available, print message
+ and exit.
+
+Fri Jul 6 02:02:49 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * install.c (main): Use the current user and group ID for the
+ default owner and group.
+
+ * mv.c (main): New option -u, +update.
+ (do_move): Don't move nondirectories if -u and there is an existing
+ destination that has the same or newer mtime.
+ (usage): Document -u, +update.
+
+ * cp.c (main): New option -u, +update.
+ (copy): Don't copy nondirectories if -u and there is an existing
+ destination that has the same or newer mtime.
+ * cp-aux.c (usage): Document -u ,+update.
+
+Thu Jul 5 10:04:12 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * ln.c (do_link): Don't check whether OLD exists before trying
+ to make link.
+
+Tue Jul 3 01:51:55 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * ls.c: Allow "+time=atime" and "+time=ctime" for C hackers.
+
+ * chmod.c (main): Don't check whether multiple mode arguments
+ are given, because optind has a different value depending on
+ whether or not the option is the last character in the
+ ARGV-element.
+
+Sat Jun 30 12:32:51 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * cp.c (copy): Use lstat on dest. file, not *xstat.
+
+Mon Jun 25 18:07:20 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * ls.c (print_long_format): Truncate user and group names to 8
+ chars to preserve column alignment.
+ (length_of_file_name_and_frills): Don't assume type indicator
+ will be printed for unknown file types that some os's have.
+
+ * install.c: Declare getgrnam for systems where grp.h doesn't.
+
+Sat Jun 23 00:06:35 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * Version 1.3.
+
+ * du.c (count_entry) [HPUX_NFS_BUG]: If the size of the file
+ according to the number of blocks reported is twice or more than
+ the size of the file according to the number of bytes
+ reported, halve the number of blocks.
+
+Fri Jun 22 00:38:20 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * cp.c (copy_dir): Initialize 'ret' to 0.
+
+ * cp.c (main), ln.c (main), mv.c (main), rm.c (main):
+ Make -i override -f and -o, to be conservative about
+ removing peoples' files.
+
+ * mkdir.c (make_path), mkfifo.c (make_path): Don't try to stat
+ "" or "/".
+
+ * rm.c, rmdir.c, mkdir.c, mkfifo.c: Move code to remove
+ slashes at the end of an arg from main to
+ strip_trailing_slashes.
+
+ * install.c (strip): Print error message if the `strip'
+ program can't be run.
+
+ * system.h (convert_blocks): Macro moved from du.c and ls.c.
+ Take a second parameter indicating whether to convert to
+ kilobytes or 512 byte blocks.
+ * ls.c, du.c: Pass second parameter to convert_blocks.
+
+Thu Jun 21 01:19:28 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * ls.c (print_long_format): Use mode_string instead of filemodestring.
+
+ * ls.c (print_long_format): Compare times as longs, not ints.
+ (longdiff): Macro to compare two longs efficiently if sizeof
+ int == sizeof long and less efficiently but correctly if they
+ are different sizes.
+ (compare_ctime, etc.): Use longdiff.
+
+ * ls.c (decode_switches): Make -k not imply -s, to allow the
+ summary directory size printed by -l to be in 1k blocks
+ without having the size of each file printed as well.
+ (convert_blocks): Provide for systems with a blocksize that is
+ other than 512 or 1024 bytes.
+
+ * du.c (main): Exit with status 0 normally.
+ (convert_blocks): Provide for systems with a blocksize that is
+ other than 512 or 1024 bytes.
+
+Wed Jun 20 01:46:09 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * ln.c (do_link): Take out code to give an error if source and
+ dest are the same file. The dubious usefulness of the special
+ case to prevent 'ln x x' from removing 'x' (ln -i can be used
+ instead) is not worth preventing 'ln x y' from failing the
+ second time in a row, and appears to contradict POSIX anyway.
+
+Mon Jun 18 02:48:17 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * ls.c (print_file_name_and_frills):
+ (length_of_file_name_and_frills, print_long_format):
+ Allow 6 digits for i-number, not 5.
+
+Sun Jun 17 00:09:23 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * install.c (install_dir): Don't check whether "" or the root
+ directory exists (the former fails on some systems).
+
+ * system.h: Make inclusion of sys/file.h conditional on USG
+ and _POSIX_SOURCE, not DIRENT.
+
+ * chmod.c (change_dir_mode): Use xrealloc instead of free and
+ xmalloc in case malloc already left extra room.
+ (xrealloc): New function.
+
+ * rm.c (clear_directory): Prevent buffer overruns.
+ More efficient string handling. Don't skip rest of directory
+ if continuing after finding circular inode.
+ (xrealloc): New function.
+
+Sat Jun 16 01:45:42 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * argmatch.c (invalid_arg): Change order in which the items
+ are printed.
+
+ * ls.c: Add +tabsize (-T) option.
+
+Fri Jun 15 23:40:55 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * dd.c (scanargs): For ibs and obs, set C_HARDWAY.
+ (copy): Use different buffers only if C_HARDWAY, not if
+ blocksizes are the same, to ensure constant output block sizes.
+
+Wed Jun 13 23:56:20 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * savedir.c: New file from code in chmod.c, modified to
+ prevent buffer overruns.
+ * chmod.c (change_dir_mode), cp.c (copy_dir), du.c
+ (count_entry): Use savedir.
+
+Thu Jun 7 03:52:02 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * system.h (ST_BLKSIZE) [!STBLOCKS_MISSING]: If st_blksize is
+ 0 (as on pipe reads on some systems), use BSIZE instead.
+ Define BSIZE as DEV_BSIZE if necessary.
+
+ * Makefile, system.h, fileblocks.c: Use STBLOCKS_MISSING to
+ control whether st_blksize and st_blocks are used.
+ * Makefile, system.h, backupfile.c: Use DIRENT to control
+ whether <dirent.h> is used.
+
+Thu May 31 00:55:36 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * fileblocks.c: New file.
+ * du.c (blocks_to_kb): Replace with convert_blocks macro.
+ (main): Recognize new -k option.
+ (usage): Document it.
+ * ls.c (nblocks): Replace with convert_blocks macro.
+ * system.h (ST_BLKSIZE) [USG]: Use BSIZE from sys/param.h instead of
+ having the user define BLKSIZE.
+ (ST_NBLOCKS) [USG]: Use st_blocks from fileblocks.c.
+
+Wed May 23 00:40:39 1990 David J. MacKenzie (djm at apple-gunkies)
+
+ * argmatch.c: New file, taken from ls.c.
+ * getversion.c (get_version): Use argmatch, to allow
+ abbreviations. Default backup type is existing_numbered.
+ * mv.c (main), ln.c (main), cp.c (main): Only make backups if
+ -b (+backup) is given. If envar SIMPLE_BACKUP_SUFFIX is set,
+ use it as a default instead of `~'.
+ * mv.c (usage), ln.c (usage), cp-aux.c (usage): Update messages.
+
+Tue May 22 00:56:51 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * install.c: New file (from ../bin-src).
+
+ * dd.c (copy): Don't count completely failed writes as partial
+ writes. Make buffers unsigned. If blocking or unblocking,
+ pad final partial buffer if necessary.
+
+ * getversion.c: New file.
+ * mv.c (main), cp.c (main), ln.c (main): Control backup types
+ with getenv ("VERSION_CONTROL") and +version-control or -V.
+
+ * cp.c (yesno), mv.c (yesno), ln.c (yesno): Stop reading if
+ EOF reached as well as at newline.
+
+ * backupfile.[ch]: Rename var `version_control' to `backup_type'.
+
+Sat May 19 23:38:46 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * touch.c: Change some error messages. Include "getopt.h".
+
+Sat May 19 00:16:50 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * mv.c (main), ln.c (main), cp.c (main): Revise
+ backup-creation options.
+ * mv.c (usage), ln.c (usage), cp-aux.c (usage): Revise messages.
+
+ * chmod.c (describe_change): Use mode_string instead of
+ filemodestring.
+
+ * cp.c (main): Recognize new options for making backups.
+ * cp.c (copy): Make backups if requested. Fix typo.
+ * cp-aux.c (usage): Update message.
+
+ * mv.c, cp.c: Remove code to conditionally use utimes instead
+ of utime, since the extra resolution of utimes was not being
+ used, the emulation overhead is probably insignificant,
+ and utime is a standard function.
+
+ * cp-hash.c: Fix up comments.
+
+Fri May 18 23:06:23 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * mv.c (do_move): Only make backup if dest file exists.
+ Don't continue moving file if dest can't be backed up.
+ * ln.c (do_link): Don't try to unlink dest if it was backed up.
+ Don't continue moving file if dest can't be backed up.
+
+ * system.h: Make SIGTYPE default to void if not defined.
+
+ * modechange.[ch]: Rename struct and external functions to start
+ with 'mode_'.
+ * modechange.c (oatoi): Make static.
+ (mode_compile): Take an additional arg indicating which
+ symbolic operators should be affected by the umask.
+ * modechange.h: Add defines for mode_compile arg mask.
+ If __STDC__, use prototypes.
+ * chmod.c, mkdir.c, mkfifo.c, create.c: Account for above changes.
+
+Tue May 15 16:17:34 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * dd.c (copy): Quit with nonzero status if final write fails.
+
+Mon May 14 14:34:10 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * dd.c: Make translation tables unsigned.
+ (main): Give `input_file' and `output_file' nonzero values for
+ stdin and stdout.
+ (parse_conversion): Set new global vars 'space_character' and
+ 'newline_character' to correct values when translating to EBCDIC
+ (either flavor).
+ (copy): Use 'space_character' and 'newline_character' instead
+ of hardcoded ASCII values. Ignore attempts to seek on output pipe,
+ socket, or fifo. If possible, seek instead of reading to skip
+ initial input records. Sync with `space_character' instead of
+ nulls, for POSIX.
+
+ * cp.c (copy_reg): Compare lseek values as longs, not ints.
+
+Sat May 12 01:16:42 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * cp-hash (remember_created): Return error status instead of
+ fatal error.
+ * cp.c (copy): Change caller.
+ (do_copy, copy_reg): Return error status instead of fatal error.
+
+ * Move rename emulation from mv.c to dirlib.c so other
+ programs can use it.
+ * mv.c, ln.c (main): Recognize new options for making backups.
+ * mv.c (do_move), ln.c (do_link): Make backups if requested.
+ * mv.c, ln.c (usage): Update message.
+ * backupfile.c, backupfile.h: New files.
+
+ * cp.h: Ifdef out decl of umask because of SunOS 4.1 (POSIX) conflict.
+
+ * Define all `main' functions as returning void.
+
+Fri May 11 02:11:03 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * ln.c, mv.c, rm.c, rmdir.c, create.c, chmod.c: Change some
+ error messages.
+
+ * du.c, cp-aux.c (error): Function removed.
+ Change callers to use error.c version.
+ * cp.c (copy, do_copy, copy_dir): Return an error status.
+ * ls.c (error, fatal, perror_with_name): Functions removed.
+ Change callers to use error.c.
+
+Sat May 5 23:46:48 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * ln.c (do_link): Don't allow trying to link a file to itself,
+ because the source file would be removed if they are the same
+ directory entry, and also for consistency with mv and cp.
+
+Fri May 4 13:42:53 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * cp.c (copy_reg): Only write a null to the end of the file if
+ the end of the file was sparse.
+
+ * ls.c (print_name_with_quoting): Make the char to print
+ unsigned to prevent sign extension problems with -b.
+
+Fri Apr 20 13:52:15 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * Version 1.2 released.
+
+Wed Apr 18 14:36:15 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * Makefile: Use chsize for ftruncate on Xenix.
+
+ * cp.c (copy): Remove broken code that attempted to
+ substitute for ftruncate on systems missing it.
+
+Mon Apr 16 13:58:01 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * cp-aux.c (usage): Fix mistake in message.
+
+ * Version 1.1 released.
+
+Sat Apr 14 17:23:11 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * ls.c (main): Don't remove leading path from program_name.
+ (basename): Function removed.
+ (length_of_file_name_and_frills): Don't add 1 for type indicator
+ for block and character special files.
+
+Thu Apr 12 19:50:15 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * Makefile: Suggest using -DBLKSIZE=512 instead of 1024 for USG.
+
+ * dd.c (copy): Print copying statistics when exiting because
+ of a read or seek error.
+ (interrupt_handler): New function.
+ (main): Trap SIGINT to run interrupt_handler, for POSIX.
+
+Tue Apr 10 01:09:38 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * chmod.c (change_file_mode): Don't change the mode of
+ symbolic links.
+
+Mon Apr 9 13:30:00 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * modechange.c (compile_mode): Return an error if an octal
+ number argument is too large.
+
+Sun Apr 8 20:33:20 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * dd.c: Use `error' instead of `fatal' and `pfatal_with_name',
+ for greater control of the message format.
+ * head.c, tail.c: Use `error' instead of `fatal_perror' and
+ `nonfatal_perror'. Remove some unnecessary info from messages.
+ * chmod.c, create.c, ln.c, mkdir.c, mkfifo.c, mv.c, mv_dir.c,
+ rm.c, rmdir.c: Remove definition of `error'.
+ * error.c: New file created from code in mv.c.
+ * Makefile: Link the above programs with error.o.
+
+ * ln.c (do_link): Use eaccess_stat to determine writability.
+ * mv.c (do_move): Ditto.
+ * rm.c (remove_file): Ditto.
+ (remove_dir): Use eaccess_stat to determine readability and
+ searchability. Move initial interactive query here from
+ clear_directory.
+ * Makefile: Link ln, mv, and rm with eaccess.o.
+
+Sat Apr 7 11:47:52 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * Makefile: Link cp with eaccess.o.
+ * eaccess.c: New file adapted from code in cp.c and cp-aux.c.
+ * cp.c (copy): Use eaccess_stat to determine writability.
+ Consider a file unwritable by root if it has no permissions.
+ (main): Remove groups initialization code.
+ * cp-aux.c (member): Function deleted.
+
+ * cp.c (copy): Temporarily change the mode of directories if
+ necessary to overwrite them when running recursively.
+ Consider a directory to be non-overwritable if it lacks write
+ permission as well as if it lacks execute permission.
+
+ * rm.c, mv.c, mv_dir.c, chmod.c, create.c, ln.c: Remove some
+ irrelevant or redundant information from error messages.
+
+Fri Apr 6 15:20:45 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * cp.c (copy): Only change mode of regular files and directories;
+ others are already correct.
+
+Thu Apr 5 04:31:56 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * dd.c: Remove the vars that are set by command line options
+ from a useless struct and give them more meaningful names.
+
+Mon Apr 2 02:58:34 1990 David J. MacKenzie (djm at spike.ai.mit.edu)
+
+ * cp.c (main): Use NGROUPS from sys/param.h to determine
+ whether BSD multiple groups are supported and how large to
+ make the array.
+ * Makefile: Remove references to GETGROUPS_MISSING.
+
+Sun Apr 1 18:53:57 1990 David J. MacKenzie (djm at spike.ai.mit.edu)
+
+ * cp.c (main): Always initialize group info.
+
+Sat Mar 31 22:29:57 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * mv.c [RENAME_MISSING] (rename): To rename directories, run
+ setuid root mv_dir program.
+
+Tue Mar 20 14:28:25 1990 David J. MacKenzie (djm at pogo.ai.mit.edu)
+
+ * touch.c: Remove POSIX_COMPAT ifdef since there is no reason
+ to disable the GNU extensions.
+ (main): Set new global var `program_name'.
+ (error): Replace with more versatile version.
+ Global: Change calls to fprintf and error to use the new error.
+ (main): Initialize global variables. Don't bother making
+ temporary copy of arg to -d. Don't ignore any files named on
+ the command line if -i is given.
+ (usage): Don't take an arg. Use `program_name' instead of
+ hardcoded name.
+ (touch): In utime emulation for BSD, ftruncate the file to its
+ original size so empty files stay empty after being touched.
+
+Sun Mar 18 01:02:39 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * ln.c (strip_trailing_slashes): New function.
+ (main, do_link): Call it.
+
+ * cp-aux.c (strip_trailing_slashes): New function.
+ * cp.c (do_copy): Call it.
+ * cp.h: Declare it.
+
+ * mv.c (strip_trailing_slashes): New function.
+ (main, movefile): Call it.
+
+Sat Mar 17 21:45:35 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * cp-aux.c, cp.h: Rename user_confirm_overwriting to yesno and
+ don't have it print a prompt, so it can be used in several
+ places.
+
+ * cp.c (do_copy): Change an error message to resemble mv's.
+ Remove all trailing slashes from all non-option args.
+ (main): Set new global var `stdin_not_tty'.
+ (copy): Use POSIX method of handling file overwriting and
+ prompting.
+
+ * dirlib.c (mkdir): Use chmod to set the directory mode after
+ successful creation, so set[ug]id and sticky bits are set
+ correctly.
+
+Thu Mar 15 12:33:23 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * Makefile: Add commented out definitions for SCO Xenix.
+
+ * ls.c (print_type_indicator): Don't print a '*' next to
+ executable block or character special files.
+
+ * chmod.c (error): New function, replacing nonfatal_perror,
+ memory_out, and invalid_mode.
+ Global: Call error instead of the above functions.
+ (change_dir_mode): Make the new size of the path twice the
+ size of the name that was too long, rather than twice its old
+ size.
+
+ * rm.c: Move interactive query about whether to remove a
+ directory from remove_dir to clear_directory; only query for
+ directories that are not empty.
+
+Wed Mar 14 10:48:40 1990 David J. MacKenzie (djm at rice-chex)
+
+ * system.h [USG]: Define X_OK.
+
+ * rm.c (main): Set new global var `stdin_not_tty'.
+ (rm): Most of code moved to two new functions, remove_file and
+ remove_dir.
+ (remove_file): Use POSIX method of determining whether to remove
+ non-directories.
+ (remove_dir): Use POSIX method of determining whether to
+ remove directories, almost.
+ (perror_with_name): Function removed.
+ (error): Simple version replaced with more powerful version.
+ Global: Change calls to fprintf, perror_with_name, and old
+ error to calls to new error.
+
+ * ln.c (main): Set new global var `stdin_not_tty'.
+ If force, turn off interactive.
+ (do_link): By default, don't allow hard links to symbolic links to
+ directories. Use POSIX method of determining whether to
+ overwrite destination.
+ (yesno): Function renamed from confirm, and arg removed.
+ (lisdir): Function removed.
+
+ * mv.c (main): Set new global var `stdin_not_tty'.
+ (yesno): Function renamed from yes.
+ (do_move): Use POSIX method of determining whether to
+ overwrite destination.
+
+ * Makefile: Make executables depend on .o files, not .c files,
+ to allow for parallel compilation.
+
+Tue Mar 13 00:50:14 1990 David J. MacKenzie (djm at rice-chex)
+
+ * rm.c (main): Disallow removal of paths that have '..' as the
+ final element.
+ (basename): New function.
+
+ * ls.c (print_type_indicator): Mark FIFOs with '|' and sockets
+ with '='.
+ (print_long_format): Print numbers as unsigned and add extra
+ space for POSIX flag.
+
+ * dd.c: Make the record counts unsigned.
+ (quit): Print them as unsigned.
+
+ * modechange.c (compile_mode): Only get umask value when needed.
+ If users are not given or are `a', affect set?id and sticky bits.
+ If memory is exhausted while allocating a new list element,
+ free the old elements before returning.
+
+ * Makefile (CC): Add comment noting that either fixincludes or
+ -traditional needs to be used for gcc to compile ioctl calls
+ correctly.
+
+Mon Mar 12 16:25:23 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu)
+
+ * touch.c [UTIME_OF_NULL_MISSING]: Call lseek() before write().
+
+ * posixtime.y [__GNUC__]: Use __builtin_alloca.
+
+Fri Mar 9 10:25:09 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * chmod.c (main): Recognize "a,+-=" as valid options.
+
+ * mv.c: Move the code to copy files across filesystems from
+ do_move to a new function, copy, which will eventually be
+ replaced with modules from cp and rm (POSIX requires mv to
+ move directories recursively across filesystems).
+ (do_move): Don't query about overriding a mode that prohibits
+ writing if interactive. Remove unneeded variable.
+ (copy): Unlink target if copy fails partway through.
+
+Thu Mar 8 10:56:16 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * cp.c (copy): Don't remove a destination file of a different
+ type unless +force is given.
+
+ * ls.c (decode_switches, usage): Add -U (for "unsorted") as an
+ equivalent to +sort=none.
+
+Mon Mar 5 16:31:14 1990 Torbj|rn Granlund (tege at echnaton)
+
+ * cp.c (copy): Test for temporarily modified permission mode
+ after the other test, so that `-p' work for files whose mode
+ needed a temporary mode change.
+ * cp.c (copy): Don't waste time calling unlink if we already
+ know that the destination doesn't exists.
+ * cp.c (comment before do_copy): Correct.
+ * cp.c (comment before copy): Describe all params.
+ * cp.c (copy): Only change permission mode for regular files
+ and directories.
+ * cp.c (copy): Unlink the destination file if its type is
+ different from the source. If the destination is a
+ directory, error.
+
+Mon Mar 5 00:34:36 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * chmod.c (nonfatal_perror): Don't check for force_silent.
+ (change_file_mode, change_dir_mode): If force_silent, don't
+ print error messages.
+
+ * mv.c (main): If force, turn off interactive.
+ (do_move): Simplify check for query. Rename `stb' to
+ `to_stats' and `stbf' to `from_stats'.
+ Return error condition if original file could not be renamed or
+ unlinked.
+
+ * rm.c: Rename global `force_flag' to `ignore_errors' and change its
+ meaning so that it does not overlap with `override_mode'.
+ (main): Have -f +force set override_mode. If override_mode is
+ set, turn off interactive.
+ (rm): Simplify checks for whether to query the user, based on
+ the new relationship between override_mode and interactive.
+
+Sun Mar 4 23:39:03 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * ln.c (main): Reword an error message to be more like mv's.
+
+ * rmdir.c: Move global `errors' into main instead of having
+ error set it.
+
+ * mkdir.c: Move global `errors' into main and have make_path
+ return an error status instead of having error set it.
+
+ * chmod.c: Move global `errors' into main and have
+ change_file_mode and change_dir_mode return an error status
+ instead of setting it in nonfatal_perror.
+
+Sat Mar 3 13:59:40 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * ln.c (main): Don't strip leading dirs from argv[0].
+
+ * ln.c (confirm), mv.c (yes, do_move),
+ cp-aux.c (user_confirm_overwriting), rm.c (rm, yesno, check_stack):
+ Print query messages to stderr instead of stdout, for POSIX.
+ Include program name in messages.
+
+Sat Mar 3 11:27:27 1990 Torbj|rn Granlund (tege at echnaton)
+
+ * cp.c (copy): Don't unlink directories with flag_force
+ (`-f'). Also avoid using force when not necessary.
+ Always copy fifo's and symbolic links as themselves.
+
+ * cp.c (copy_reg): Make int scan first, char scan then, to
+ find frist non-zero byte. This to avoid false hole
+ creation.
+
+Sat Mar 3 10:22:28 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * mv.c: Rename `pgm' to `program_name'. Move global `errors'
+ into main. Have do_move and movefile return an error status
+ instead having error set it. Remove global vars `args'
+ and `args_left'.
+ (main): Rename `ac' and `av' to `argc' and `argv' and use them
+ and `optind' instead of `args' and `args_left'.
+
+ * cp.c (copy): Don't ignore errors other than EPERM from chown.
+
+Fri Mar 2 16:20:57 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * rm.c (main, usage): Allow -R as a synonym for -r, for POSIX.
+
+ * cp.c (copy): If flag_preserve, preserve the owner and group
+ if possible, as well as mode.
+ (main): Allow -R as a synonym for -r option, for POSIX.
+ * cp-aux.c (usage): Mention -R.
+
+Tue Feb 27 11:49:04 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * cp.c (copy): If not recursive, copy special files and
+ symlinks like regular files and omit fifos.
+
+Mon Feb 26 19:55:24 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu)
+
+ * ls.c (print_long_format): If time is in the future, print the year.
+ Make the cutoff for old files 6 months not 300 days.
+
+Mon Feb 26 13:31:07 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu)
+
+ * touch.c, Makefile: Use getdate.y instead of unctime.y.
+
+ * touch.c: Remove posixtime.
+ (main): Check for error from posixtime.
+ posixtime.y: New file.
+
+ * touch.c: Change a few cryptic error messages.
+ Include <errno.h> not <sys/errno.h>.
+ (just_set_amtime): New variable.
+ (touch): Add if (just_set_amtime) code.
+
+Mon Feb 26 15:03:29 1990 Torbj|rn Granlund (tege at echnaton)
+
+ * cp.c (copy): Test for recursive copy in DIR alternative in
+ the switch statement, so all file types are copied correctly
+ even in a non-recursive copy.
+ * cp.c (copy): Return after having created a symlink, since
+ chmod and utimes dereference, and would affect the symlink
+ target. Remove test for symlinks after switch.
+
+Sun Feb 25 18:31:09 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * Makefile: Compile ls after vdir so systems with a cc that
+ can't do -c -o don't have to compile ls.c twice for ls.
+
+ * dd.c (usage): Add braces around alternatives.
+
+ * ls.c (print_long_format): Always print the group, for POSIX.
+ (decode_switches): Make -g option a no-op for BSD users.
+ (usage): Remove +group option.
+
+Wed Feb 21 11:13:26 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * ln.c (error): New function.
+ (main, do_link): Call error instead of fprintf and exit.
+ (main): Recognize new -d +directory option to allow superuser to
+ make hard links to dirs, like the BSD ln -f option.
+ (do_link): Don't allow hard links to dirs (they are hard to
+ get rid of -- rmdir and unlink don't do it), unless -d was given.
+ (usage): Mention -d +directory option.
+
+ * rmdir.c (main): Remove trailing slashes from args (added by
+ shell file completion but the rmdir syscall can't handle them).
+ * mkdir.c (main): Remove trailing slashes from args, for
+ uniformity with rmdir (you can't do file completion on dirs
+ that haven't been made yet . . .).
+
+ * mv.c: Rename global var `nargs' to `args_left' to avoid
+ conflict with undocumented BSD libc function (the new name is
+ clearer, anyway).
+
+Tue Feb 20 17:09:19 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * dd.c: Use new global var `program_name' in error messages
+ instead of hardcoded "dd".
+ (main): Set program_name from argv[0].
+
+ * chmod.c, head.c, tail.c (main): Don't strip leading dirs
+ from argv[0].
+ (basename): Function removed.
+
+ * rm.c (main): Don't strip leading dirs from argv[0].
+
+Mon Feb 19 14:34:18 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * rm.c (main): Strip trailing slashes from each arg.
+
+Thu Feb 15 13:23:52 1990 David J. MacKenzie (djm at rice-chex)
+
+ * Makefile [HPUX CFLAGS]: Add -DUTIMES_MISSING.
+
+Wed Feb 14 15:01:18 1990 David J. MacKenzie (djm at rice-chex)
+
+ * Makefile (dist): Don't make a non-compressed tar file.
+
+ * mv.c (do_move): Refuse to copy non-regular files across filesystems.
+
+Tue Feb 13 15:06:18 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu)
+
+ * touch.c (getname): New function.
+ (main): Use it.
+
+Mon Feb 12 11:30:45 1990 David J. MacKenzie (djm at rice-chex)
+
+ * ln.c (do_link): Check error return from unlink.
+ Include errno.h.
+
+ * du.c (main): Check error return from stat.
+ (str_copyc, str_concatc): Don't return a value, since it is
+ ignored.
+
+ * cp.c (copy): Check error return from unlink and chmod. Fix
+ typo in call to error.
+
+ * mv.c (do_move): Check error return of fchmod/chmod and utime[s].
+ (rename): Check error return of unlink.
+
+ * Makefile Definitions of preprocessor macros moved from
+ cp.c and mv.c. HAVE_FTRUNCATE changed to FTRUNCATE_MISSING.
+ * Makefile, dirlib.c: NEED_MKDIR changed to MKDIR_MISSING.
+ * mv.c, cp.c: Change USG ifdefs to UTIMES_MISSING.
+
+Sun Feb 11 17:50:29 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * chmod.c (usage): Add yet another ellipsis.
+
+Sun Feb 11 16:41:30 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu)
+
+ * cp.c (copy_reg): Use HAVE_FTRUNCATE to decide whether to
+ use ftruncate().
+ (main): Use GETGROUPS_MISSING to decide whether to use getgroups().
+ [hpux || !USG]: Define HAVE_FTRUNCATE.
+ [USG && !hpux]: Define GETGROUPS_MISSING.
+ mv.c (rename): Put in #ifdef RENAME_MISSING not #ifdef USG.
+ (do_move): Use FCHMOD_MISSING to decide whether to use fchmod().
+ [USG && !hpux]: Define FCHMOD_MISSING and RENAME_MISSING.
+
+Fri Feb 9 10:25:03 1990 David J. MacKenzie (djm at rice-chex)
+
+ * mv.c (movefile): Remove trailing slashes from FROM (some
+ filename completion systems add them for dirs, and they cause
+ the rename syscall to fail).
+
+Thu Feb 8 22:50:12 1990 Torbj|rn Granlund (tege at sics.se)
+
+ * cp.c (copy_reg): Change error handling after lseek, since
+ this is a fatal error. Also change error message to
+ something more generally understood.
+ * Handle files that end in a zero block on USG systems.
+
+ * cp-aux.c (error): Use FATAL to recog fatal errs.
+
+Thu Feb 8 21:25:40 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * ln.c: Remove incorrect comment.
+
+ * cp.c, cp-aux.c (usage): Change +dereference option to
+ +no-dereference, since dereferencing is done by default and
+ the option turns it off.
+
+Mon Feb 5 17:29:20 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
+
+ * Version 1.0 released.
+
+Local Variables:
+mode: indented-text
+left-margin: 8
+version-control: never
+End:
diff --git a/old/fileutils/NEWS b/old/fileutils/NEWS
new file mode 100644
index 000000000..63066f826
--- /dev/null
+++ b/old/fileutils/NEWS
@@ -0,0 +1,13 @@
+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