453 lines
21 KiB
Plaintext
453 lines
21 KiB
Plaintext
Changes in release 2.1
|
||
[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
|
||
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<
|
||
|
||
[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.
|
||
|
||
Changes in release 1.22
|
||
[1.21a]
|
||
* Fix a bug in tail when invoked with an argument like `+NUMBERc'
|
||
* Add test suite for tail
|
||
|
||
Changes in release 1.21
|
||
* Using --program-prefix no longer applies the prefix twice
|
||
|
||
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
|
||
|
||
Changes in release 1.19
|
||
* md5sum can verify digests of files with names containing newline characters
|
||
* update from gettext-0.10.20.
|
||
|
||
Changes in release 1.18
|
||
* when building sort, link with -lm on systems that use the replacement strtod
|
||
* update from gettext-0.10.17.
|
||
|
||
Changes in release 1.17
|
||
* include texinfo.tex in the distribution
|
||
|
||
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.
|
||
|
||
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
|
||
|
||
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
|
||
|
||
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).
|
||
|
||
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
|
||
|
||
User-visible changes in release 1.11
|
||
* fmt is built
|
||
|
||
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
|