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).

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.

Local Variables:
version-control: never
End:
