Jim Meyering [Sun, 20 Jan 2002 20:44:49 +0000 (20:44 +0000)]
Avoid undefined behavior when strcoll fails,
by resorting the directory with strcmp instead.
Include <setjmp.h>.
Include "quote.h".
(compare_atime, rev_cmp_atime, compare_ctime, rev_cmp_ctime,
compare_mtime, rev_cmp_mtime, compare_size, rev_comp_size,
compare_name, rev_cmp_name, compare_extension, rev_cmp_extension,
compare_version, rev_compare_version): Move before use, so that
we can remove the forward declaration. Reimplement in terms of
the new functions described below, using xstrcoll instead of strcoll.
(failed_strcoll): New var.
(xstrcoll): New function.
(V): New type.
(cmp_ctime, compstr_ctime, rev_str_ctime): New functions.
(cmp_mtime, compstr_mtime, rev_str_mtime): Likewise.
(cmp_atime, compstr_atime, rev_str_atime): Likewise.
(cmp_size, compstr_size, rev_str_size): Likewise.
(cmp_version): Likewise.
(cmp_name, compstr_name, rev_str_name): Likewise.
(cmp_extension, compstr_extension, rev_str_extension): Likewise.
(sort_files): Use prototype for internal function var.
If the strcoll-based comparison fails, fall back on a strcmp-based one.
Jim Meyering [Sat, 19 Jan 2002 00:12:30 +0000 (00:12 +0000)]
Ensure that the two version numbers in configure.ac remain in sync.
(local-check): Depend on ac-check.
(ac_p_pkg, AC_INIT_PKG): Define.
(ac_p_ver, AC_INIT_VER): Define.
(ac-check): New rule.
Jim Meyering [Fri, 18 Jan 2002 19:18:07 +0000 (19:18 +0000)]
Fix tr so it no longer gets a failed assertion for [::] or [==].
(xmemdup): Rename from `substr' and rewrite to
take only pointer/length parameters.
(build_spec_list): Update sole caller.
Properly diagnose the invalid specs [::] and [==].
Pawel Prokop reported that `tr [::] _' elicits a failed assertion.
Jim Meyering [Wed, 16 Jan 2002 23:31:14 +0000 (23:31 +0000)]
Add support for POSIX 1003.1-2001, which requires removal for
support of the obsolete `touch [-acm] MMDDhhmm[YY] FILE...' syntax.
(usage, main): Implement this.
Jim Meyering [Wed, 16 Jan 2002 23:13:49 +0000 (23:13 +0000)]
Add support for POSIX 1003.1-2001, which requires removal for
support of obsolete "+" option syntax in sort, tail, and uniq.
* doc/coreutils.texi: Document this. (Also, document a similar
change to "touch", for fileutils).
Jim Meyering [Sat, 12 Jan 2002 22:29:55 +0000 (22:29 +0000)]
(copy_reg): Don't treat errno==ENOENT as a special case.
(same_file_ok): Detect a case that would have lead to the errno==ENOENT
condition above (and a misleading diagnostic), and return 0 so we give
a diagnostic about the source and destination being the same file.
(copy_internal): Use an explicit test for errno==EXDEV to detect
that rename has failed because source and destination are on
different devices. This reverts part of a change from 1997-12-13,
and is to avoid letting a race condition evoke a bogus diagnostic.
Note that while POSIX has encouraged the errno==EXDEV test for
years, it was inadequate back in 1997. I'm hoping that many
more systems have conforming support these days.
Reported by Michael Gaughen <mgaughen@polyserve.com>
Jim Meyering [Wed, 2 Jan 2002 19:59:44 +0000 (19:59 +0000)]
(install-data-yes, uninstall-data-yes):
Install the LC_TIME locale category as an alias for LC_MESSAGES.
This fixes a bug introduced in the 2001-09-22 upgrade to gettext 0.10.40.