aboutsummaryrefslogtreecommitdiff
path: root/contrib/gnu-sort/NEWS
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/gnu-sort/NEWS')
-rw-r--r--contrib/gnu-sort/NEWS1145
1 files changed, 703 insertions, 442 deletions
diff --git a/contrib/gnu-sort/NEWS b/contrib/gnu-sort/NEWS
index a1722997d637..394a824d11af 100644
--- a/contrib/gnu-sort/NEWS
+++ b/contrib/gnu-sort/NEWS
@@ -1,457 +1,718 @@
-Changes in release 2.1
-[2.0.22]
-* `od -t f8' works once again [bug introduced in textutils-2.0.8]
-* various portability fixes, and general clean-up
-* various minor, corner-case bug fixes
-[2.0.21]
-* split accepts new option -a or --suffix-length.
-* split no longer generates longer suffixes than requested; instead, it reports
- an error when suffixes are exhausted. POSIX requires this behavior.
-* The _POSIX2_VERSION environment variable lets you select which version
- of POSIX the utilities should conform to. Its default value is system
- dependent. Set _POSIX2_VERSION=199209 to cause the utilities to support
- obsolete usage like "sort +1".
-* The following obsolete usages are no longer supported when conforming
- to POSIX 1003.1-2001, which prohibits most digit-string options:
- expand -N (instead, use expand -t N)
- head -N (instead, use head -c N or head -n N)
- fold -N (instead, use fold -w N)
- split -N (instead, use split -l N)
- tail -N (instead, use tail -c N or tail -n N)
- unexpand -N (instead, use unexpand --first-only -t N)
- uniq -N (instead, use uniq -f N)
- The following obsolete usages (options without arguments) are no
- longer supported when conforming to POSIX 1003.1-2001, which
- prohibits most options with optional arguments:
- od -s (instead, use od --strings)
- od -w (instead, use od --width)
- pr -S (instead, use pr --sep-string)
-[2.0.20]
-* tr no longer gets failed a assertion for [==] or [::]
-* The following obsolete usages are no longer supported when conforming
- to POSIX 1003.1-2001, which prohibits most options with leading "+":
- sort +POS1 -POS2 (instead, use sort -k)
- tail +N (instead, use tail -c +N or tail -n +N)
- uniq +N (instead, use uniq -s N)
-* Warnings are issued for obsolete usages on older hosts,
- unless POSIXLY_CORRECT is set in the environment.
-* sort -m no longer segfaults when given an empty file
-* sort -S now accepts 'K' as a synonym for 'k'.
-* wc recognizes all locale-defined white-space characters, not just those
- in the "C" locale.
-[2.0.19]
-* portability tweak to make lib/regex.c compile
-* split translatable strings only in the middle of sentences
-[2.0.18]
-* sort could segfault on systems without a working mkstemp function and
- with a gettimeofday function that clobbers the static buffer that
- localtime uses for it's return value -- introduced in 2.0.17
-[2.0.17]
-* csplit no longer gets a failed assertion for this:
- printf 'a\n\n'|csplit - '/^$/' 2
-* sort detects physical memory attributes more portably
-* tail no longer gets a segfault on Linux's /proc/ksyms
-* sum -s produces the proper 16-bit checksum for large files
- (this fixes a bug that was introduced in 2.0f)
-* uniq is now about 3 times faster than the version from 2.0 on Linux systems;
- the code uses lock-avoiding variants of common I/O functions
-[2.0.16]
-* tail -F no longer segfaults
-[2.0.15]
-* `head -c N' and `od -N N' now read no more than N bytes of input
-* tail accepts new option: -F, equivalent to `--follow=name --retry',
- for compatibility with the FreeBSD and NetBSD versions of tail.
-* fmt no longer segfaults when using a maximum line width larger than 32767
-* uniq's --all-repeated option has new modes to delimit groups
- of duplicate lines: --all-repeated={precede,separate,none(default)}
-[2.0.14]
-* sort now accepts long options like "--reverse" and "--".
-* sort now checks option syntax as POSIX requires, except that (as usual
- for GNU) options can follow file names unless POSIXLY_CORRECT is set.
- For example, invalid positional combinations like "sort +1 -r -2" are
- now rejected as per POSIX.
-* The next POSIX standard will require that obsolescent 'sort'
- positional options like +1 be treated as file names, not options.
- Please use 'sort -k' instead.
-[2.0.13]
-* pr accepts new -D or --date option, to specify date format.
-* The following changes are required by POSIX:
- - If POSIXLY_CORRECT is set, dates in pr headers now look something like
- 'Dec 4 23:59 2001', with the exact appearance affected by LC_TIME.
- - pr -h now affects only the center header string, not the entire header.
- - pr no longer truncates headers.
-* Spacing in pr headers has been adjusted slightly.
-* `fmt --prefix=S' now works when S contains a byte with the high bit set
-[2.0.12]
-* sort has improved performance when using very little main memory
-* sort has improved memory management
-* sort is no longer susceptible to certain denial of service attacks
-* sort no longer suffers from a race condition whereby an interrupt received
- during cleanup could cause it to fail to remove temporary files.
- This problem could arise only on hosts without sigaction.
-[2.0.11]
-* sort accepts new -S SIZE option, to specify main-memory usage.
-[2.0.10]
-* od is faster and more portable than it was in 2.0.9
-* tail avoids an uninitialized memory reference
-[2.0.9]
-* od now prints valid addresses for offsets of 2^32 and larger, and allows
- the byte offset (-j) and byte count (-N) arguments to be 2^32 and larger.
-* tail now works with line and byte counts of 2^32 and larger, on systems
- with large file support
-* join now works with an 8-bit delimiter
-* fix a compilation failure on some Solaris systems with wc.c
-[2.0.8]
-* od now supports 8-byte integers, assuming they're printable with e.g., %lld
-* new program: sha1sum
-* wc accepts new -m option: count (potentially multi-byte) characters
-* wc's `--chars' option is now equivalent to -m, not --bytes as it used to be
-* `cat -n' works properly when processing 2^31 or more lines
-[2.0g]
-* sort's --help output now warns that it is locale-aware
-* tail: fix a buffer underrun error that occurred on an empty pipe,
- also thanks to bounded pointers
-* pr: fix a bounds violation found by Greg McGary's bounded-pointers-enabled gcc
- It could have caused (with low probability) the columns on the last page of
- output *not* to be `balanced' when they should have been.
-* sort: if the -T tmpdir option is given multiple times, all the given
- directories are used; this can improve performance for huge sort/merges.
-[2.0f]
-* all programs fail when printing --help or --version output to a full device
-* cut no longer gets a segfault under some circumstances
-* unexpand accepts new option: --first-only
-[2.0e]
-* `tail -f directory' no longer gets a failed assertion
-* sort: big performance improvement when sorting many small files;
- from Charles Randall
-* configure and portability changes in m4/ and lib/
-[2.0d]
-* preliminary sort performance improvements
-* tsort now works more like the traditional UNIX tsort. Before it would
- exit when it found a loop. Now it continues and outputs all items.
-* unexpand no longer infloops on certain sequences of white space
-* unified lib/: now that directory and most of the configuration framework
- is common between fileutils, textutils, and sh-utils
-[2.0c]
-* include lib/nanosleep.h.
-[2.0b]
-* portability tweaks for error.c vs. systems with deficient strerror_r
-[2.0a]
-* `tail --follow=name' no longer gets a failed assertion for a
- dev,inode-reusing race condition
-* sort and comm no longer consider newlines to be part of the line,
- as this requirement will likely be removed from POSIX.2.
- This undoes some changes made for textutils 1.22m and 1.22n.
-* tail's (short only) -f option no longer accepts an optional argument,
- so e.g., `tail -fn 2 file' works again.
-* tail no longer refuses to operate on certain types of files
-* fixed bug in tsort's handling of cycles
+GNU coreutils NEWS -*- outline -*-
+* Major changes in release 5.2.1 (2004-03-12) [stable]
+
+** Bug fixes
+
+ mv could mistakenly fail to preserve hard links when moving two
+ or more arguments between partitions.
+
+ `cp --sparse=always F /dev/hdx' no longer tries to use lseek to create
+ holes in the destination.
+
+ nohup now sets the close-on-exec flag for its copy of the stderr file
+ descriptor. This avoids some nohup-induced hangs. For example, before
+ this change, if you ran `ssh localhost', then `nohup sleep 600 </dev/null &',
+ and then exited that remote shell, the ssh session would hang until the
+ 10-minute sleep terminated. With the fixed nohup, the ssh session
+ terminates immediately.
+
+ `expr' now conforms to POSIX better:
+
+ Integers like -0 and 00 are now treated as zero.
+
+ The `|' operator now returns 0, not its first argument, if both
+ arguments are null or zero. E.g., `expr "" \| ""' now returns 0,
+ not the empty string.
+
+ The `|' and `&' operators now use short-circuit evaluation, e.g.,
+ `expr 1 \| 1 / 0' no longer reports a division by zero.
+
+** New features
+
+ `chown user.group file' now has its traditional meaning even when
+ conforming to POSIX 1003.1-2001, so long as no user has a name
+ containing `.' that happens to equal `user.group'.
+
+
+* Major changes in release 5.2.0 (2004-02-19) [stable]
+
+** Bug fixes
+
+ none
+
+
+* Major changes in release 5.1.3 (2004-02-08): candidate to become stable 5.2.0
+
+** Bug fixes
+
+ `cp -d' now works as required even on systems like OSF V5.1 that
+ declare stat and lstat as `static inline' functions.
+
+ time stamps output by stat now include actual fractional seconds,
+ when available -- or .0000000 for files without that information.
+
+ seq no longer infloops when printing 2^31 or more numbers.
+ For reference, seq `echo 2^31|bc` > /dev/null takes about one hour
+ on a 1.6 GHz Athlon 2000 XP. Now it can output 2^53-1 numbers before
+ misbehaving.
+
+* Major changes in release 5.1.2 (2004-01-25):
+
+** Bug fixes
+
+ rmdir -p exits with status 1 on error; formerly it sometimes exited
+ with status 0 when given more than one argument.
+
+ nohup now always exits with status 127 when it finds an error,
+ as POSIX requires; formerly it sometimes exited with status 1.
+
+ Several programs (including cut, date, dd, env, hostname, nl, pr,
+ stty, and tr) now always exit with status 1 when they find an error;
+ formerly they sometimes exited with status 2.
+
+ factor no longer reports a usage error if stdin has the wrong format.
+
+ paste no longer infloops on ppc systems (bug introduced in 5.1.1)
+
+
+* Major changes in release 5.1.1 (2004-01-17):
+
+** Configuration option
+
+ You can select the default level of POSIX conformance at configure-time,
+ e.g., by ./configure DEFAULT_POSIX2_VERSION=199209
+
+** Bug fixes
+
+ fold -s works once again on systems with differing sizes for int
+ and size_t (bug introduced in 5.1.0)
+
+** New features
+
+ touch -r now specifies the origin for any relative times in the -d
+ operand, if both options are given. For example, "touch -r FOO -d
+ '-5 seconds' BAR" sets BAR's modification time to be five seconds
+ before FOO's.
+
+ join: The obsolete options "-j1 FIELD", "-j2 FIELD", and
+ "-o LIST1 LIST2..." are no longer supported on POSIX 1003.1-2001 systems.
+ Portable scripts should use "-1 FIELD", "-2 FIELD", and
+ "-o LIST1,LIST2..." respectively. If join was compiled on a
+ POSIX 1003.1-2001 system, you may enable the old behavior
+ by setting _POSIX2_VERSION=199209 in your environment.
+
+
+* Major changes in release 5.1.0 (2003-12-21):
+
+** New features
+
+ chgrp, chmod, and chown can now process (with -R) hierarchies of virtually
+ unlimited depth. Before, they would fail to operate on any file they
+ encountered with a relative name of length PATH_MAX (often 4096) or longer.
+
+ chgrp, chmod, chown, and rm accept the new options:
+ --preserve-root, --no-preserve-root (default)
+
+ chgrp and chown now accept POSIX-mandated -L, -H, and -P options
+
+ du can now process hierarchies of virtually unlimited depth.
+ Before, du was limited by the user's stack size and it would get a
+ stack overflow error (often a segmentation fault) when applied to
+ a hierarchy of depth around 30,000 or larger.
+
+ du works even when run from an inaccessible directory
+
+ du -D now dereferences all symlinks specified on the command line,
+ not just the ones that reference directories
+
+ du now accepts -P (--no-dereference), for compatibility with du
+ of NetBSD and for consistency with e.g., chown and chgrp
+
+ du's -H option will soon have the meaning required by POSIX
+ (--dereference-args, aka -D) rather then the current meaning of --si.
+ Now, using -H elicits a warning to that effect.
+
+ When given -l and similar options, ls now adjusts the output column
+ widths to fit the data, so that output lines are shorter and have
+ columns that line up better. This may adversely affect shell
+ scripts that expect fixed-width columns, but such shell scripts were
+ not portable anyway, even with old GNU ls where the columns became
+ ragged when a datum was too wide.
+
+ du accepts a new option, -0/--null, to make it produce NUL-terminated
+ output lines
+
+** Bug fixes
+
+ printf, seq, tail, and sleep now parse floating-point operands
+ and options in the C locale. POSIX requires this for printf.
+
+ od -c -w9999999 no longer segfaults
+
+ csplit no longer reads from freed memory (dumping core on some systems)
+
+ csplit would mistakenly exhaust virtual memory in some cases
+
+ ls --width=N (for very large N) is no longer subject to an address
+ arithmetic bug that could result in bounds violations.
+
+ ls --width=N (with -x or -C) no longer allocates more space
+ (potentially much more) than necessary for a given directory.
+
+ dd `unblock' and `sync' may now be combined (e.g., dd conv=unblock,sync)
-Changes in release 2.0
-[1.22q]
-* HPUX portability fix: md5sum would dump core due to use of libc's getline
-[1.22p]
-* portability fixes from Paul Eggert based largely on tar-1.13 reports
-* `tail --pid=PID' now works even when PID belongs to some other user
-[1.22o]
-* tail accepts new option: --pid=PID
-[1.22n]
-* tail accepts the following new options (some of which were added in 1.22g):
- --retry
- --follow[={name|descriptor}]
- --max-unchanged-stats=N
- --max-consecutive-size-changes=N
- --sleep-interval=S
-* wc uses the POSIX-mandated output format when POSIXLY_CORRECT is set
-* To maintain compatibility with sort, comm and join now obey the LC_COLLATE
- locale, and comm now considers newlines to be part of the lines.
-* use lib/memchr.c only if it's not provided by the system -- this means
- that on systems with a fast library memchr function you may notice an
- improvement. If you use a system with a buggy or signifcantly slower
- memchr, please report it.
-[1.22m]
-* sort now considers newlines to be part of the line, as required by POSIX.2.
- E.g. a line starting with a tab now sorts before an empty line,
- since tab precedes newline in the ASCII collating sequence.
-* sort handles NUL bytes correctly when configured/compiled with --enable-nls
-* fix typos in my version of AC_SEARCH_LIBS.
-* fix dates on config files so builders don't need autoconf/automake
-[1.22l]
-* sort no longer autodetects the locale of numbers and months,
- as that conflicts with POSIX.2
-* `join -tC' now works when input contains trailing spaces
-* portability tweaks for Irix's cc
-[1.22k]
-* `sort -n' works with negative numbers when configured/compiled
- with --enable-nls
-* head accepts byte and line counts of type uintmax_t (so up to 2^64 - 1)
-[1.22j]
-* tail: fix bug introduced in 1.22i
-[1.22i]
-* tail now terminates in `yes > k & sleep 1; tail -2c k'
-* `tail -f' now ensures that stdout is unbuffered
-* fix a bug in cut to allow use of 8-bit delimiters
-* pr accepts POSIX compliant options -s and -w,
- the new capital letter options -J, -S and _W turn off the
- unexpected interferences of the small letter options -s and -w
- if used together with the column options.
-* pr output has been adapted to other UNIXes in some cases.
-[1.22h]
-* portability tweaks
-* Window/NT/DOS support
-[1.22g]
-* uniq accepts new option: --all-repeated (-D).
-* Windows/DOS portability fixes
-* new program: tsort
-* tail has several new options
-* md5sum can handle file names with embedded backslash characters
-* pr accepts long option names (see `pr --help')
-* new program: ptx (moved to this package from being its own distribution)
-[1.22f]
-* cut accepts new --output-delimiter=STR option
-* `sort -o no-such-file no-such-file' now fails, as it should
-* fix pr bug: pr -td didn't double space
-* fix tac bug when using -b, -r, and -s SEPARATOR
-* fix sort bug whereby using key-local `d' option would cause following
- key specs to be ignored when any two keys (in the `d'-modified test)
- compared equal.
-[1.22e]
-* remove maintainer mode
-[1.22d]
-* wc accepts new option: --max-line-length (-L)
-* sort can sort according to your locale if your C library supports that
-[1.22c]
-[1.22b]
-* od supports a new trailing `z' character in a type specification:
- $ od -tx1z .
- 0000000 be ef c6 0f fd f9 d7 e0 ec cb f3 c6 00 db e8 00 >................<
- 0000020 00 00 d2 00 00 00 00 00 00 00 00 00 00 00 00 00 >................<
- 0000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >................<
- *
- 0000600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 cc >..............5.<
- 0000620 05 63 76 74 2e 6f 00 00 29 ac 08 70 72 6f 6a 65 >.cvt.o..)..proje<
- 0000640 63 74 73 00 00 00 18 9a 05 63 76 74 2e 63 00 00 >cts......cvt.c..<
- 0000660 18 d9 03 52 43 53 00 00 18 c0 05 78 2e 64 61 74 >...RCS.....x.dat<
+* Major changes in release 5.0.91 (2003-09-08):
-[1.22a]
-* sort -c reports both the number and the contents of the first out-of-order
- line, in addition to the file name.
-* `head -c 4096m' is no longer treated just like `head -c 0'
- now it gets a diagnostic about 4096m being too large.
-* pr: For compatibility (also more POSIX compliant): Include default
- separator `TAB' when merging lines of full length.
-* When POSIXLY_CORRECT is not set, tail -N now accepts more than one file
- argument, to be consistent with the way head -N works. If POSIXLY_CORRECT
- is set, using two or more file arguments with the obsolescent form (-N)
- evokes an error. To avoid the warning or failure, use the POSIX -n N option
- or the GNU --lines=N option.
+** New features
-Changes in release 1.22
-[1.21a]
-* Fix a bug in tail when invoked with an argument like `+NUMBERc'
-* Add test suite for tail
+ date accepts a new option --rfc-2822, an alias for --rfc-822.
-Changes in release 1.21
-* Using --program-prefix no longer applies the prefix twice
+ split accepts a new option -d or --numeric-suffixes.
-Changes in release 1.20
-* fix pr: -l now uses total number of lines per page also with -f
-* fix pr: use left-hand-side truncation of header string to avoid line
- overflow
-* fix pr: it now accepts `form feeds set in input files', also with -m
- and multiple form feeds at different pages in each file
-* pr now accepts: -h "", print a blank line header
-* pr: when skipping pages (+FIRST_PAGE option) line counting (-n option)
- starts with 1st line of input file (not of 1st page printed) by default
-* pr accepts new option: -N, start printing with an optional line number
-* pr -t retains `form feeds set in input files' (`don't destroy page layout')
-* pr accepts new option: -T, equivalent to -t, but eliminate also form feeds
- (`clear file')
-* pr accepts the extension: +FIRST_PAGE[:LAST_PAGE]
-* pr -w and -s option disentangled (`use a separator' no longer destroys
- column alignment)
-* pr accepts new option: -j, merge lines of full length
-* pr accepts the extension: -s[STRING], use separator string instead of
- character only
-* pr -b is no longer an independent option, balancing is always used
- with -COLUMN (a requirement of unrestricted use of form feeds)
-* pr accepts new option: --test, to run the pr tests with a constant
- header string
-* join passes all of its tests on Alpha OSF 4.0.
-* sort no longer improperly ignores blanks in determining starting and ending
- positions for keys with explicit character offsets
-* fix bug in csplit with regexp and negative offset that led to infinite loop
- Changes in test release 1.19q
-* fix bug in sort -c that sometimes resulted in a segfault
- Changes in test release 1.19p
-* md5sum's --string option is being deprecated and is no longer documented.
- It is still accepted, but will be removed altogether in 1.22.
-* tr '[:lower:]' '[:upper:]' no longer fails when LC_CTYPE is set to
- iso_8859_1 on Solaris -- or any other character set with differing
- numbers of uppercase and lowercase characters
-* split and tail diagnose unrecognized multiplier suffixes, in e.g.,
- `split --bytes=1M' (should be `-b 1m' or `--bytes=1m')
-* fix bug in md5sum's handling of partial reads
-* fix bug in treatment by sort -f of bytes with high-bit set
-* update configuration system to use automake's aclocal program
-* configure performs sanity check on CC and CFLAGS to avoid a misleading
- failure that suggested cross-compiling was the cause
-* distribute test suites for cut, join, sort, and tr
-* unexpand no longer gets in endless loop
-* when verifying checksums, md5sum uses the binary mode flag from the
- input stream rather than the one from the command line
+ cp, install, mv, and touch now preserve microsecond resolution on
+ file timestamps, on platforms that have the 'utimes' system call.
+ Unfortunately there is no system call yet to preserve file
+ timestamps to their full nanosecond resolution; microsecond
+ resolution is the best we can do right now.
-Changes in release 1.19
-* md5sum can verify digests of files with names containing newline characters
-* update from gettext-0.10.20.
+ sort now supports the zero byte (NUL) as a field separator; use -t '\0'.
+ The -t '' option, which formerly had no effect, is now an error.
-Changes in release 1.18
-* when building sort, link with -lm on systems that use the replacement strtod
-* update from gettext-0.10.17.
+ sort option order no longer matters for the options -S, -d, -i, -o, and -t.
+ Stronger options override weaker, and incompatible options are diagnosed.
-Changes in release 1.17
-* include texinfo.tex in the distribution
+ `sha1sum --check' now accepts the BSD format for SHA1 message digests
+ in addition to the BSD format for MD5 ones.
-Changes in release 1.16
-* sort is compatible with Unix sort when a key-end spec refers to the N'th
- character in a field that has fewer than N characters
-* tail with old-style options like -20k and +31m operates on units of bytes,
- as the --help usage message says. Before, it used units of lines.
+ who -l now means `who --login', not `who --lookup', per POSIX.
+ who's -l option has been eliciting an unconditional warning about
+ this impending change since sh-utils-2.0.12 (April 2002).
-Changes in release 1.15
-* od gives better diagnostics for invalid format specs
-* uses automake-generated Makefile templates
-* configure takes a new option: --enable-maintainer-mode
-* fix a bug in fmt when prefix has trailing white space
-* internationalized diagnostic messages
-* fix a couple bugs in tr involving use of -c and/or -d flags -- see ChangeLog
-* diagnose some improper or questionable invocations of csplit
-* properly handle `echo |csplit - 1 1', rather than aborting
-* fix join: without -t it now ignores leading blanks
-* sort accepts new option: -z for NUL terminated records
-* join accepts new option: --ignore-case, -i
-* uniq accepts new option: --ignore-case, -i
+** Bug fixes
-User-visible changes in release 1.14
-* sort -i and sort -d properly order strings containing ignored characters
-* nl: rename misleading --first-page=N option to --starting-line-number=N.
-* sort diagnoses invalid arguments to -k, then fails
-* sort -n properly orders invalid integers with respect to valid integers
-* sorting works with character offsets larger than corresponding field width
-* sort's -b option and `b' modifier work
-* sort -k2,2 works.
-* csplit detects integer overflow when converting command line arguments
-* sort accepts new option/flag, -g, for sorting numbers in scientific notation
-* join accepts POSIX `-o 0' field specifier.
-* tr 'a[b*512]' '[a*]' < /dev/null terminates
-* tr '[:*3][:digit:]' 'a-m' and tr 'a[=*2][=c=]' 'xyyz' no longer fail
-* special characters in tr's string1 and string2 may be escaped with backslash
+ Mistakenly renaming a file onto itself, e.g., via `mv B b' when `B' is
+ the same directory entry as `b' no longer destroys the directory entry
+ referenced by both `b' and `B'. Note that this would happen only on
+ file systems like VFAT where two different names may refer to the same
+ directory entry, usually due to lower->upper case mapping of file names.
+ Now, the above can happen only on file systems that perform name mapping and
+ that support hard links (stat.st_nlink > 1). This mitigates the problem
+ in two ways: few file systems appear to be affected (hpfs and ntfs are),
+ when the bug is triggered, mv no longer removes the last hard link to a file.
+ *** ATTENTION ***: if you know how to distinguish the following two cases
+ without writing to the file system in question, please let me know:
+ 1) B and b refer to the same directory entry on a file system like NTFS
+ (B may well have a link count larger than 1)
+ 2) B and b are hard links to the same file
-User-visible changes in release 1.13
-* md5sum: with --check, distinguish between open/read failure and bad checksum
-* md5sum: remove -h, -s, -v short options
-* md5sum: rename --verbose to --warn, --quiet to --status
-* md5sum --check fails if it finds no properly formatted checksum lines
-* sort -c prints `disorder on...' message on standard error, not stdout
-* sort -k works as described in the texinfo documentation
-* tail works on NetBSD
-* md5sum reads and writes (de facto) standard Plumb/Lankester format
-* sort accepts -.1 +.2 options for compatibility
-* od works properly when dump limit is specified and is a multiple of
- bytes_per_block (set by --width, 16 by default).
+ stat no longer overruns a buffer for format strings ending in `%'
-User-visible changes in release 1.12
-* sort no longer reports spurious errors on Ultrix systems
-* new program: md5sum
-* all --help messages have been improved
-* join's -a1 and -a2 options work
-* tr '[:upper:]' '[:lower:]' no longer reads uninitialized memory
-* sort properly handles command line arguments like `+7.2n'
-* fmt properly formats paragraphs not terminated by a newline
-* tail -f flushes stdout before sleeping so that it will output partial
- lines sooner
-* sort properly orders fields where one field is a proper prefix of the other
-* sort properly interprets field offsets specified via the -k option
-* dd, od, and tail work on systems for which off_t is long long (e.g. BSD4.4)
-* wc is faster when not counting words
-* wc now works even when file pointer isn't at beginning of file
-* expand no longer seg faults with very long tab lists
+ fold -s -wN would infloop for N < 8 with TABs in the input.
+ E.g., this would not terminate: printf 'a\t' | fold -w2 -s
+
+ `split -a0', although of questionable utility, is accepted once again.
+
+ `df DIR' used to hang under some conditions on OSF/1 5.1. Now it doesn't.
+
+ seq's --width (-w) option now works properly even when the endpoint
+ requiring the larger width is negative and smaller than the other endpoint.
+
+ seq's default step is 1, even if LAST < FIRST.
+
+ paste no longer mistakenly outputs 0xFF bytes for a nonempty input file
+ without a trailing newline.
+
+ `tail -n0 -f FILE' and `tail -c0 -f FILE' no longer perform what amounted
+ to a busy wait, rather than sleeping between iterations.
+
+ tail's long-undocumented --allow-missing option now elicits a warning
+
+
+* Major changes in release 5.0.90 (2003-07-29):
+
+** New features
+
+ sort is now up to 30% more CPU-efficient in some cases
+
+ `test' is now more compatible with Bash and POSIX:
+
+ `test -t', `test --help', and `test --version' now silently exit
+ with status 0. To test whether standard output is a terminal, use
+ `test -t 1'. To get help and version info for `test', use
+ `[ --help' and `[ --version'.
+
+ `test' now exits with status 2 (not 1) if there is an error.
+
+ wc count field widths now are heuristically adjusted depending on the input
+ size, if known. If only one count is printed, it is guaranteed to
+ be printed without leading spaces.
+
+ Previously, wc did not align the count fields if POSIXLY_CORRECT was set,
+ but POSIX did not actually require this undesirable behavior, so it
+ has been removed.
+
+** Bug fixes
+
+ kill no longer tries to operate on argv[0] (introduced in 5.0.1)
+ Why wasn't this noticed? Although many tests use kill, none of
+ them made an effort to avoid using the shell's built-in kill.
+
+ `[' invoked with no arguments no longer evokes a segfault
+
+ rm without --recursive (aka -r or -R) no longer prompts regarding
+ unwritable directories, as required by POSIX.
+
+ uniq -c now uses a SPACE, not a TAB between the count and the
+ corresponding line, as required by POSIX.
+
+ expr now exits with status 2 if the expression is syntactically valid,
+ and with status 3 if an error occurred. POSIX requires this.
+
+ expr now reports trouble if string comparison fails due to a collation error.
+
+ split now generates suffixes properly on EBCDIC hosts.
+
+ split -a0 now works, as POSIX requires.
+
+ `sort --version' and `sort --help' fail, as they should
+ when their output is redirected to /dev/full.
+
+ `su --version > /dev/full' now fails, as it should.
+
+** Fewer arbitrary limitations
+
+ cut requires 97% less memory when very large field numbers or
+ byte offsets are specified.
+
+
+* Major changes in release 5.0.1 (2003-07-15):
+
+** New programs
+- new program: `[' (much like `test')
+
+** New features
+- head now accepts --lines=-N (--bytes=-N) to print all but the
+ N lines (bytes) at the end of the file
+- md5sum --check now accepts the output of the BSD md5sum program, e.g.,
+ MD5 (f) = d41d8cd98f00b204e9800998ecf8427e
+- date -d DATE can now parse a DATE string like May-23-2003
+- chown: `.' is no longer recognized as a separator in the OWNER:GROUP
+ specifier on POSIX 1003.1-2001 systems. If chown *was not* compiled
+ on such a system, then it still accepts `.', by default. If chown
+ was compiled on a POSIX 1003.1-2001 system, then you may enable the
+ old behavior by setting _POSIX2_VERSION=199209 in your environment.
+- chown no longer tries to preserve set-user-ID and set-group-ID bits;
+ on some systems, the chown syscall resets those bits, and previous
+ versions of the chown command would call chmod to restore the original,
+ pre-chown(2) settings, but that behavior is problematic.
+ 1) There was a window whereby a malicious user, M, could subvert a
+ chown command run by some other user and operating on files in a
+ directory where M has write access.
+ 2) Before (and even now, on systems with chown(2) that doesn't reset
+ those bits), an unwary admin. could use chown unwittingly to create e.g.,
+ a set-user-ID root copy of /bin/sh.
+
+** Bug fixes
+- chown --dereference no longer leaks a file descriptor per symlink processed
+- `du /' once again prints the `/' on the last line
+- split's --verbose option works once again [broken in 4.5.10 and 5.0]
+- tail -f is no longer subject to a race condition that could make it
+ delay displaying the last part of a file that had stopped growing. That
+ bug could also make tail -f give an unwarranted `file truncated' warning.
+- du no longer runs out of file descriptors unnecessarily
+- df and `readlink --canonicalize' no longer corrupt the heap on
+ non-glibc, non-solaris systems
+- `env -u UNSET_VARIABLE' no longer dumps core on non-glibc systems
+- readlink's --canonicalize option now works on systems like Solaris that
+ lack the canonicalize_file_name function but do have resolvepath.
+- mv now removes `a' in this example on all systems: touch a; ln a b; mv a b
+ This behavior is contrary to POSIX (which requires that the mv command do
+ nothing and exit successfully), but I suspect POSIX will change.
+- date's %r format directive now honors locale settings
+- date's `-' (no-pad) format flag now affects the space-padded-by-default
+ conversion specifiers, %e, %k, %l
+- fmt now diagnoses invalid obsolescent width specifications like `-72x'
+- fmt now exits nonzero when unable to open an input file
+- tsort now fails when given an odd number of input tokens,
+ as required by POSIX. Before, it would act as if the final token
+ appeared one additional time.
+
+** Fewer arbitrary limitations
+- tail's byte and line counts are no longer limited to OFF_T_MAX.
+ Now the limit is UINTMAX_MAX (usually 2^64).
+- split can now handle --bytes=N and --lines=N with N=2^31 or more.
+
+** Portability
+- `kill -t' now prints signal descriptions (rather than `?') on systems
+ like Tru64 with __sys_siglist but no strsignal function.
+- stat.c now compiles on Ultrix systems
+- sleep now works on AIX systems that lack support for clock_gettime
+- rm now works around Darwin6.5's broken readdir function
+ Before `rm -rf DIR' would fail to remove all files in DIR
+ if there were more than 338.
+
+* Major changes in release 5.0 (2003-04-02):
+- false --help now exits nonzero
+
+[4.5.12]
+* printf no longer treats \x specially when POSIXLY_CORRECT is set
+* printf avoids buffer overrun with format ending in a backslash and
+* printf avoids buffer overrun with incomplete conversion specifier
+* printf accepts multiple flags in a single conversion specifier
+
+[4.5.11]
+* seq no longer requires that a field width be specified
+* seq no longer fails when given a field width of `0'
+* seq now accepts ` ' and `'' as valid format flag characters
+* df now shows a HOSTNAME: prefix for each remote-mounted file system on AIX 5.1
+* portability tweaks for HP-UX, AIX 5.1, DJGPP
+
+[4.5.10]
+* printf no longer segfaults for a negative field width or precision
+* shred now always enables --exact for non-regular files
+* du no longer lists hard-linked files more than once
+* du no longer dumps core on some systems due to `infinite' recursion
+ via nftw's use of the buggy replacement function in getcwd.c
+* portability patches for a few vendor compilers and 64-bit systems
+* du -S *really* now works like it did before the change in 4.5.5
+
+[4.5.9]
+* du no longer truncates file sizes or sums to fit in 32-bit size_t
+* work around Linux kernel bug in getcwd (fixed in 2.4.21-pre4), so that pwd
+ now fails if the name of the working directory is so long that getcwd
+ truncates it. Before it would print the truncated name and exit successfully.
+* `df /some/mount-point' no longer hangs on a GNU libc system when another
+ hard-mounted NFS file system (preceding /some/mount-point in /proc/mounts)
+ is inaccessible.
+* rm -rf now gives an accurate diagnostic when failing to remove a file
+ under certain unusual conditions
+* mv and `cp --preserve=links' now preserve multiple hard links even under
+ certain unusual conditions where they used to fail
+
+[4.5.8]
+* du -S once again works like it did before the change in 4.5.5
+* stat accepts a new file format, %B, for the size of each block reported by %b
+* du accepts new option: --apparent-size
+* du --bytes (-b) works the same way it did in fileutils-3.16 and before
+* du reports proper sizes for directories (not zero) (broken in 4.5.6 or 4.5.7)
+* df now always displays under `Filesystem', the device file name
+ corresponding to the listed mount point. Before, for a block- or character-
+ special file command line argument, df would display that argument. E.g.,
+ `df /dev/hda' would list `/dev/hda' as the `Filesystem', rather than say
+ /dev/hda3 (the device on which `/' is mounted), as it does now.
+* test now works properly when invoked from a set user ID or set group ID
+ context and when testing access to files subject to alternate protection
+ mechanisms. For example, without this change, a set-UID program that invoked
+ `test -w F' (to see if F is writable) could mistakenly report that it *was*
+ writable, even though F was on a read-only file system, or F had an ACL
+ prohibiting write access, or F was marked as immutable.
+
+[4.5.7]
+* du would fail with more than one DIR argument when any but the last did not
+ contain a slash (due to a bug in ftw.c)
+
+[4.5.6]
+* du no longer segfaults on Solaris systems (fixed heap-corrupting bug in ftw.c)
+* du --exclude=FILE works once again (this was broken by the rewrite for 4.5.5)
+* du no longer gets a failed assertion for certain hierarchy lay-outs
+ involving hard-linked directories
+* `who -r' no longer segfaults when using non-C-locale messages
+* df now displays a mount point (usually `/') for non-mounted
+ character-special and block files
+
+[4.5.5]
+* ls --dired produces correct byte offset for file names containing
+ nonprintable characters in a multibyte locale
+* du has been rewritten to use a variant of GNU libc's ftw.c
+* du now counts the space associated with a directory's directory entry,
+ even if it cannot list or chdir into that subdirectory.
+* du -S now includes the st_size of each entry corresponding to a subdirectory
+* rm on FreeBSD can once again remove directories from NFS-mounted file systems
+* ls has a new option --dereference-command-line-symlink-to-dir, which
+ corresponds to the new default behavior when none of -d, -l -F, -H, -L
+ has been specified.
+* ls dangling-symlink now prints `dangling-symlink'.
+ Before, it would fail with `no such file or directory'.
+* ls -s symlink-to-non-dir and ls -i symlink-to-non-dir now print
+ attributes of `symlink', rather than attributes of their referents.
+* Fix a bug introduced in 4.5.4 that made it so that ls --color would no
+ longer highlight the names of files with the execute bit set when not
+ specified on the command line.
+* shred's --zero (-z) option no longer gobbles up any following argument.
+ Before, `shred --zero file' would produce `shred: missing file argument',
+ and worse, `shred --zero f1 f2 ...' would appear to work, but would leave
+ the first file untouched.
+* readlink: new program
+* cut: new feature: when used to select ranges of byte offsets (as opposed
+ to ranges of fields) and when --output-delimiter=STRING is specified,
+ output STRING between ranges of selected bytes.
+* rm -r can no longer be tricked into mistakenly reporting a cycle.
+* when rm detects a directory cycle, it no longer aborts the entire command,
+ but rather merely stops processing the affected command line argument.
+
+[4.5.4]
+* cp no longer fails to parse options like this: --preserve=mode,ownership
+* `ls --color -F symlink-to-dir' works properly
+* ls is much more efficient on directories with valid dirent.d_type.
+* stty supports all baud rates defined in linux-2.4.19.
+* `du symlink-to-dir/' would improperly remove the trailing slash
+* `du ""' would evoke a bounds violation.
+* In the unlikely event that running `du /' resulted in `stat ("/", ...)'
+ failing, du would give a diagnostic about `' (empty string) rather than `/'.
+* printf: a hexadecimal escape sequence has at most two hex. digits, not three.
+* The following features have been added to the --block-size option
+ and similar environment variables of df, du, and ls.
+ - A leading "'" generates numbers with thousands separators.
+ For example:
+ $ ls -l --block-size="'1" file
+ -rw-rw-r-- 1 eggert src 47,483,707 Sep 24 23:40 file
+ - A size suffix without a leading integer generates a suffix in the output.
+ For example:
+ $ ls -l --block-size="K"
+ -rw-rw-r-- 1 eggert src 46371K Sep 24 23:40 file
+* ls's --block-size option now affects file sizes in all cases, not
+ just for --block-size=human-readable and --block-size=si. Fractional
+ sizes are now always rounded up, for consistency with df and du.
+* df now displays the block size using powers of 1000 if the requested
+ block size seems to be a multiple of a power of 1000.
+* nl no longer gets a segfault when run like this `yes|nl -s%n'
+
+[4.5.3]
+* du --dereference-args (-D) no longer fails in certain cases
+* `ln --target-dir=DIR' no longer fails when given a single argument
+
+[4.5.2]
+* `rm -i dir' (without --recursive (-r)) no longer recurses into dir
+* `tail -c N FILE' now works with files of size >= 4GB
+* `mkdir -p' can now create very deep (e.g. 40,000-component) directories
+* rmdir -p dir-with-trailing-slash/ no longer fails
+* printf now honors the `--' command line delimiter
+* od's 8-byte formats x8, o8, and u8 now work
+* tail now accepts fractional seconds for its --sleep-interval=S (-s) option
+
+[4.5.1]
+* du and ls now report sizes of symbolic links (before they'd always report 0)
+* uniq now obeys the LC_COLLATE locale, as per POSIX 1003.1-2001 TC1.
+
+========================================================================
+Here are the NEWS entries made from fileutils-4.1 until the
+point at which the packages merged to form the coreutils:
+
+[4.1.11]
+* `rm symlink-to-unwritable' doesn't prompt [introduced in 4.1.10]
+[4.1.10]
+* rm once again gives a reasonable diagnostic when failing to remove a file
+ owned by someone else in a sticky directory [introduced in 4.1.9]
+* df now rounds all quantities up, as per POSIX.
+* New ls time style: long-iso, which generates YYYY-MM-DD HH:MM.
+* Any time style can be preceded by "posix-"; this causes "ls" to
+ use traditional timestamp format when in the POSIX locale.
+* The default time style is now posix-long-iso instead of posix-iso.
+ Set TIME_STYLE="posix-iso" to revert to the behavior of 4.1.1 thru 4.1.9.
+* `rm dangling-symlink' doesn't prompt [introduced in 4.1.9]
+* stat: remove support for --secure/-s option and related %S and %C format specs
+* stat: rename --link/-l to --dereference/-L.
+ The old options will continue to work for a while.
+[4.1.9]
+* rm can now remove very deep hierarchies, in spite of any limit on stack size
+* new programs: link, unlink, and stat
+* New ls option: --author (for the Hurd).
+* `touch -c no-such-file' no longer fails, per POSIX
+[4.1.8]
+* mv no longer mistakenly creates links to preexisting destination files
+ that aren't moved
+[4.1.7]
+* rm: close a hole that would allow a running rm process to be subverted
+[4.1.6]
+* New cp option: --copy-contents.
+* cp -r is now equivalent to cp -R. Use cp -R -L --copy-contents to get the
+ traditional (and rarely desirable) cp -r behavior.
+* ls now accepts --time-style=+FORMAT, where +FORMAT works like date's format
+* The obsolete usage `touch [-acm] MMDDhhmm[YY] FILE...' is no longer
+ supported on systems conforming to POSIX 1003.1-2001. Use touch -t instead.
+* cp and inter-partition mv no longer give a misleading diagnostic in some
+ unusual cases
+[4.1.5]
+* cp -r no longer preserves symlinks
+* The block size notation is now compatible with SI and with IEC 60027-2.
+ For example, --block-size=1MB now means --block-size=1000000,
+ whereas --block-size=1MiB now means --block-size=1048576.
+ A missing `B' (e.g. `1M') has the same meaning as before.
+ A trailing `B' now means decimal, not binary; this is a silent change.
+ The nonstandard `D' suffix (e.g. `1MD') is now obsolescent.
+* -H or --si now outputs the trailing 'B', for consistency with the above.
+* Programs now output trailing 'K' (not 'k') to mean 1024, as per IEC 60027-2.
+* New df, du short option -B is short for --block-size.
+* You can omit an integer `1' before a block size suffix,
+ e.g. `df -BG' is equivalent to `df -B 1G' and to `df --block-size=1G'.
+* The following options are now obsolescent, as their names are
+ incompatible with IEC 60027-2:
+ df, du: -m or --megabytes (use -BM or --block-size=1M)
+ df, du, ls: --kilobytes (use --block-size=1K)
+[4.1.4]
+* df --local no longer lists smbfs file systems whose name starts with //
+* dd now detects the Linux/tape/lseek bug at run time and warns about it.
+[4.1.3]
+* ls -R once again outputs a blank line between per-directory groups of files.
+ This was broken by the cycle-detection change in 4.1.1.
+* dd once again uses `lseek' on character devices like /dev/mem and /dev/kmem.
+ On systems with the linux kernel (at least up to 2.4.16), dd must still
+ resort to emulating `skip=N' behavior using reads on tape devices, because
+ lseek has no effect, yet appears to succeed. This may be a kernel bug.
+[4.1.2]
+* cp no longer fails when two or more source files are the same;
+ now it just gives a warning and doesn't copy the file the second time.
+ E.g., cp a a d/ produces this:
+ cp: warning: source file `a' specified more than once
+* chmod would set the wrong bit when given symbolic mode strings like
+ these: g=o, o=g, o=u. E.g., `chmod a=,o=w,ug=o f' would give a mode
+ of --w-r---w- rather than --w--w--w-.
+[4.1.1]
+* mv (likewise for cp), now fails rather than silently clobbering one of
+ the source files in the following example:
+ rm -rf a b c; mkdir a b c; touch a/f b/f; mv a/f b/f c
+* ls -R detects directory cycles, per POSIX. It warns and doesn't infloop.
+* cp's -P option now means the same as --no-dereference, per POSIX.
+ Use --parents to get the old meaning.
+* When copying with the -H and -L options, cp can preserve logical
+ links between source files with --preserve=links
+* cp accepts new options:
+ --preserve[={mode,ownership,timestamps,links,all}]
+ --no-preserve={mode,ownership,timestamps,links,all}
+* cp's -p and --preserve options remain unchanged and are equivalent
+ to `--preserve=mode,ownership,timestamps'
+* mv and cp accept a new option: --reply={yes,no,query}; provides a consistent
+ mechanism to control whether one is prompted about certain existing
+ destination files. Note that cp's and mv's -f options don't have the
+ same meaning: cp's -f option no longer merely turns off `-i'.
+* remove portability limitations (e.g., PATH_MAX on the Hurd, fixes for
+ 64-bit systems)
+* mv now prompts before overwriting an existing, unwritable destination file
+ when stdin is a tty, unless --force (-f) is specified, as per POSIX.
+* mv: fix the bug whereby `mv -uf source dest' would delete source,
+ even though it's older than dest.
+* chown's --from=CURRENT_OWNER:CURRENT_GROUP option now works
+* cp now ensures that the set-user-ID and set-group-ID bits are cleared for
+ the destination file when when copying and not preserving permissions.
+* `ln -f --backup k k' gives a clearer diagnostic
+* ls no longer truncates user names or group names that are longer
+ than 8 characters.
+* ls's new --dereference-command-line option causes it to dereference
+ symbolic links on the command-line only. It is the default unless
+ one of the -d, -F, or -l options are given.
+* ls -H now means the same as ls --dereference-command-line, as per POSIX.
+* ls -g now acts like ls -l, except it does not display owner, as per POSIX.
+* ls -n now implies -l, as per POSIX.
+* ls can now display dates and times in one of four time styles:
+
+ - The `full-iso' time style gives full ISO-style time stamps like
+ `2001-05-14 23:45:56.477817180 -0700'.
+ - The 'iso' time style gives ISO-style time stamps like '2001-05-14 '
+ and '05-14 23:45'.
+ - The 'locale' time style gives locale-dependent time stamps like
+ 'touko 14 2001' and 'touko 14 23:45' (in a Finnish locale).
+ - The 'posix-iso' time style gives traditional POSIX-locale
+ time stamps like 'May 14 2001' and 'May 14 23:45' unless the user
+ specifies a non-POSIX locale, in which case it uses ISO-style dates.
+ This is the default.
+
+ You can specify a time style with an option like --time-style='iso'
+ or with an environment variable like TIME_STYLE='iso'. GNU Emacs 21
+ and later can parse ISO dates, but older Emacs versions cannot, so
+ if you are using an older version of Emacs outside the default POSIX
+ locale, you may need to set TIME_STYLE="locale".
+
+* --full-time is now an alias for "-l --time-style=full-iso".
+
+
+========================================================================
+Here are the NEWS entries made from sh-utils-2.0 until the
+point at which the packages merged to form the coreutils:
+
+ [2.0.15]
+* date no longer accepts e.g., September 31 in the MMDDhhmm syntax
+* fix a bug in this package's .m4 files and in configure.ac
+ [2.0.14]
+* nohup's behavior is changed as follows, to conform to POSIX 1003.1-2001:
+ - nohup no longer adjusts scheduling priority; use "nice" for that.
+ - nohup now redirects stderr to stdout, if stderr is not a terminal.
+ - nohup exit status is now 126 if command was found but not invoked,
+ 127 if nohup failed or if command was not found.
+ [2.0.13]
+* uname and uptime work better on *BSD systems
+* pathchk now exits nonzero for a path with a directory component
+ that specifies a non-directory
+ [2.0.12]
+* kill: new program
+* who accepts new options: --all (-a), --boot (-b), --dead (-d), --login,
+ --process (-p), --runlevel (-r), --short (-s), --time (-t), --users (-u).
+ The -u option now produces POSIX-specified results and is the same as
+ the long option `--users'. --idle is no longer the same as -u.
+* The following changes apply on systems conforming to POSIX 1003.1-2001,
+ and are required by the new POSIX standard:
+ - `date -I' is no longer supported. Instead, use `date --iso-8601'.
+ - `nice -NUM' is no longer supported. Instead, use `nice -n NUM'.
+* New 'uname' options -i or --hardware-platform, and -o or --operating-system.
+ 'uname -a' now outputs -i and -o information at the end.
+ New uname option --kernel-version is an alias for -v.
+ Uname option --release has been renamed to --kernel-release,
+ and --sysname has been renamed to --kernel-name;
+ the old options will work for a while, but are no longer documented.
+* 'expr' now uses the LC_COLLATE locale for string comparison, as per POSIX.
+* 'expr' now requires '+' rather than 'quote' to quote tokens;
+ this removes an incompatibility with POSIX.
+* date -d 'last friday' would print a date/time that was one hour off
+ (e.g., 23:00 on *thursday* rather than 00:00 of the preceding friday)
+ when run such that the current time and the target date/time fall on
+ opposite sides of a daylight savings time transition.
+ This problem arose only with relative date strings like `last monday'.
+ It was not a problem with strings that include absolute dates.
+* factor is twice as fast, for large numbers
+ [2.0.11]
+* setting the date now works properly, even when using -u
+* `date -f - < /dev/null' no longer dumps core
+* some DOS/Windows portability changes
+ [2.0j]
+* `date -d DATE' now parses certain relative DATEs correctly
+ [2.0i]
+* fixed a bug introduced in 2.0h that made many programs fail with a
+ `write error' when invoked with the --version option
+ [2.0h]
+* all programs fail when printing --help or --version output to a full device
+* printf exits nonzero upon write failure
+* yes now detects and terminates upon write failure
+* date --rfc-822 now always emits day and month names from the `C' locale
+* portability tweaks for Solaris8, Ultrix, and DOS
+ [2.0g]
+* date now handles two-digit years with leading zeros correctly.
+* printf interprets unicode, \uNNNN \UNNNNNNNN, on systems with the
+ required support; from Bruno Haible.
+* stty's rprnt attribute now works on HPUX 10.20
+* seq's --equal-width option works more portably
+ [2.0f]
+* fix build problems with ut_name vs. ut_user
+ [2.0e]
+* stty: fix long-standing bug that caused test failures on at least HPUX
+ systems when COLUMNS was set to zero
+* still more portability fixes
+* unified lib/: now that directory and most of the configuration framework
+ is common between fileutils, textutils, and sh-utils
+ [2.0d]
+* fix portability problem with sleep vs lib/strtod.c's requirement for -lm
+ [2.0c]
+* fix portability problems with nanosleep.c and with the new code in sleep.c
+ [2.0b]
+* Regenerate lib/Makefile.in so that nanosleep.c is distributed.
+ [2.0a]
+* sleep accepts floating point arguments on command line
+* sleep's clock continues counting down when sleep is suspended
+* when a suspended sleep process is resumed, it continues sleeping if
+ there is any time remaining
+* who once again prints whatever host information it has, even without --lookup
-User-visible changes in release 1.11
-* fmt is built
+========================================================================
+For older NEWS entries for the fileutils, textutils, and sh-utils
+packages, see ./old/*/NEWS.
-User-visible changes in release 1.10
-* skeletal texinfo documentation (mainly just the `invoking' nodes)
-* new program: fmt
-* tail -f on multiple files reports file truncation
-* tail -q has been fixed so it never prints headers
-* wc -c is much faster when operating on non-regular files
-* unexpand gives a diagnostic (rather than a segfault) when given a name of
- a nonexistent file.
-* cat, csplit, head, split, sum, tac, tail, tr, and wc no longer fail
- gratuitously when continued after a suspended read or write system call.
-* cut interprets -d '' to mean `use the NUL byte as the delimiter' rather
- than reporting that no delimiter was specified and failing.
-* `echo a:b:c: | cut -d: -f3,4' prints `c:'. Before it printed just `c'.
-* cut has been rewritten, is markedly faster for large inputs, and passes a
- fairly large test suite.
-* sort properly handles the argument to the -T option.
-
-Major changes in release 1.9.1:
-* cut no longer ignores the last line of input when that line lacks a
- trailing newline character
-
-Major changes in release 1.9:
-* `echo a:b:c: | cut -d: -f3-' prints `c:' and
- `echo a:b | cut -d: -f1' prints `a'.
-* the command `printf '\t\n' |fold -w n' now terminates.
- Before, it wouldn't stop for n less than 8.
-* sort accepts and ignores -y[string] options for compatibilty with Solaris.
-* cat -v /dev/null works on more systems
-* od's --compatible (-C) flag renamed to --traditional (no short option)
-* --help and --version exit successfully
-* --help gives a one-line description of each option and shows the
- correspondence between short and long-named options.
-* fix bug in cut. Now `echo 'a:b:c:' | cut -d: -f3-' works.
- Before it printed `c' instead of `c:'
-* csplit allows repeat counts to be specified via `{*}'.
-* csplit accepts a new option, --suffix=format that supercedes the
- --digits option. The --digits option will continue to work.
-* csplit accepts a new option, --elide-empty-files.
-* configure uses config.h, so DEFS won't exceed preprocessor limits of
- some compilers on the number of symbols defined via -D.
-* work around problem where $(srcdir)/config.h was used instead of
- ../config.h -- this happened only when building in a subdirectory
- and when config.h remained in $(srcdir) from a previous ./configure.
-
-Major changes in release 1.8:
-* added non-ANSIfied version of memchr.c from GNU libc.
-
-Major changes in release 1.7:
-* none
-Major changes in release 1.6:
-* with the --version option programs print the version and exit immediately
-* pr -2a really terminates
-* pr -n produces multi-column output
-
-Major changes in release 1.5:
-* sort is 8-bit clean
-* sort's -n and -M options no longer imply -b
-* several bugs in sort have been fixed
-* all programs accept --help and --version options
-* od --compatible accepts pre-POSIX arguments
-* pr -2a terminates
-
-Major changes in release 1.4:
-* add od and cksum programs
-* move cmp to GNU diff distribution
-* tail -f works for multiple files
-* pr prints the file name in error messages
-* fix some off by 1 errors in pr and fold
-* optimize wc -c on regular files
-* sort handles `-' argument correctly
-* sort supports -T option
-* tr ranges like a-a work
-* tr x '' fails gracefully
-* default sum output format is BSD compatible
-* paste -d '' works
+ This package began as the union of the following:
+ textutils-2.1, fileutils-4.1.11, sh-utils-2.0.15.