]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/gnu-sort/NEWS
This commit was generated by cvs2svn to compensate for changes in r98567,
[FreeBSD/FreeBSD.git] / contrib / gnu-sort / NEWS
1 Changes in release 2.1
2 [2.0.21]
3 * split accepts new option -a or --suffix-length.
4 * split no longer generates longer suffixes than requested; instead, it reports
5   an error when suffixes are exhausted.  POSIX requires this behavior.
6 * The _POSIX2_VERSION environment variable lets you select which version
7   of POSIX the utilities should conform to.  Its default value is system
8   dependent.  Set _POSIX2_VERSION=199209 to cause the utilities to support
9   obsolete usage like "sort +1".
10 * The following obsolete usages are no longer supported when conforming
11   to POSIX 1003.1-2001, which prohibits most digit-string options:
12     expand -N   (instead, use expand -t N)
13     head -N     (instead, use head -c N or head -n N)
14     fold -N     (instead, use fold -w N)
15     split -N    (instead, use split -l N)
16     tail -N     (instead, use tail -c N or tail -n N)
17     unexpand -N (instead, use unexpand --first-only -t N)
18     uniq -N     (instead, use uniq -f N)
19   The following obsolete usages (options without arguments) are no
20   longer supported when conforming to POSIX 1003.1-2001, which
21   prohibits most options with optional arguments:
22     od -s       (instead, use od --strings)
23     od -w       (instead, use od --width)
24     pr -S       (instead, use pr --sep-string)
25 [2.0.20]
26 * tr no longer gets failed a assertion for [==] or [::]
27 * The following obsolete usages are no longer supported when conforming
28   to POSIX 1003.1-2001, which prohibits most options with leading "+":
29     sort +POS1 -POS2    (instead, use sort -k)
30     tail +N             (instead, use tail -c +N or tail -n +N)
31     uniq +N             (instead, use uniq -s N)
32 * Warnings are issued for obsolete usages on older hosts,
33   unless POSIXLY_CORRECT is set in the environment.
34 * sort -m no longer segfaults when given an empty file
35 * sort -S now accepts 'K' as a synonym for 'k'.
36 * wc recognizes all locale-defined white-space characters, not just those
37     in the "C" locale.
38 [2.0.19]
39 * portability tweak to make lib/regex.c compile
40 * split translatable strings only in the middle of sentences
41 [2.0.18]
42 * sort could segfault on systems without a working mkstemp function and
43     with a gettimeofday function that clobbers the static buffer that
44     localtime uses for it's return value -- introduced in 2.0.17
45 [2.0.17]
46 * csplit no longer gets a failed assertion for this:
47     printf 'a\n\n'|csplit - '/^$/' 2
48 * sort detects physical memory attributes more portably
49 * tail no longer gets a segfault on Linux's /proc/ksyms
50 * sum -s produces the proper 16-bit checksum for large files
51     (this fixes a bug that was introduced in 2.0f)
52 * uniq is now about 3 times faster than the version from 2.0 on Linux systems;
53     the code uses lock-avoiding variants of common I/O functions
54 [2.0.16]
55 * tail -F no longer segfaults
56 [2.0.15]
57 * `head -c N' and `od -N N' now read no more than N bytes of input
58 * tail accepts new option: -F, equivalent to `--follow=name --retry',
59     for compatibility with the FreeBSD and NetBSD versions of tail.
60 * fmt no longer segfaults when using a maximum line width larger than 32767
61 * uniq's --all-repeated option has new modes to delimit groups
62     of duplicate lines: --all-repeated={precede,separate,none(default)}
63 [2.0.14]
64 * sort now accepts long options like "--reverse" and "--".
65 * sort now checks option syntax as POSIX requires, except that (as usual
66   for GNU) options can follow file names unless POSIXLY_CORRECT is set.
67   For example, invalid positional combinations like "sort +1 -r -2" are
68   now rejected as per POSIX.
69 * The next POSIX standard will require that obsolescent 'sort'
70   positional options like +1 be treated as file names, not options.
71   Please use 'sort -k' instead.
72 [2.0.13]
73 * pr accepts new -D or --date option, to specify date format.
74 * The following changes are required by POSIX:
75   - If POSIXLY_CORRECT is set, dates in pr headers now look something like
76     'Dec  4 23:59 2001', with the exact appearance affected by LC_TIME.
77   - pr -h now affects only the center header string, not the entire header.
78   - pr no longer truncates headers.
79 * Spacing in pr headers has been adjusted slightly.
80 * `fmt --prefix=S' now works when S contains a byte with the high bit set
81 [2.0.12]
82 * sort has improved performance when using very little main memory
83 * sort has improved memory management
84 * sort is no longer susceptible to certain denial of service attacks
85 * sort no longer suffers from a race condition whereby an interrupt received
86     during cleanup could cause it to fail to remove temporary files.
87     This problem could arise only on hosts without sigaction.
88 [2.0.11]
89 * sort accepts new -S SIZE option, to specify main-memory usage.
90 [2.0.10]
91 * od is faster and more portable than it was in 2.0.9
92 * tail avoids an uninitialized memory reference
93 [2.0.9]
94 * od now prints valid addresses for offsets of 2^32 and larger, and allows
95     the byte offset (-j) and byte count (-N) arguments to be 2^32 and larger.
96 * tail now works with line and byte counts of 2^32 and larger, on systems
97     with large file support
98 * join now works with an 8-bit delimiter
99 * fix a compilation failure on some Solaris systems with wc.c
100 [2.0.8]
101 * od now supports 8-byte integers, assuming they're printable with e.g., %lld
102 * new program: sha1sum
103 * wc accepts new -m option: count (potentially multi-byte) characters
104 * wc's `--chars' option is now equivalent to -m, not --bytes as it used to be
105 * `cat -n' works properly when processing 2^31 or more lines
106 [2.0g]
107 * sort's --help output now warns that it is locale-aware
108 * tail: fix a buffer underrun error that occurred on an empty pipe,
109   also thanks to bounded pointers
110 * pr: fix a bounds violation found by Greg McGary's bounded-pointers-enabled gcc
111   It could have caused (with low probability) the columns on the last page of
112   output *not* to be `balanced' when they should have been.
113 * sort: if the -T tmpdir option is given multiple times, all the given
114   directories are used; this can improve performance for huge sort/merges.
115 [2.0f]
116 * all programs fail when printing --help or --version output to a full device
117 * cut no longer gets a segfault under some circumstances
118 * unexpand accepts new option: --first-only
119 [2.0e]
120 * `tail -f directory' no longer gets a failed assertion
121 * sort: big performance improvement when sorting many small files;
122   from Charles Randall
123 * configure and portability changes in m4/ and lib/
124 [2.0d]
125 * preliminary sort performance improvements
126 * tsort now works more like the traditional UNIX tsort.  Before it would
127   exit when it found a loop.  Now it continues and outputs all items.
128 * unexpand no longer infloops on certain sequences of white space
129 * unified lib/: now that directory and most of the configuration framework
130   is common between fileutils, textutils, and sh-utils
131 [2.0c]
132 * include lib/nanosleep.h.
133 [2.0b]
134 * portability tweaks for error.c vs. systems with deficient strerror_r
135 [2.0a]
136 * `tail --follow=name' no longer gets a failed assertion for a
137   dev,inode-reusing race condition
138 * sort and comm no longer consider newlines to be part of the line,
139   as this requirement will likely be removed from POSIX.2.
140   This undoes some changes made for textutils 1.22m and 1.22n.
141 * tail's (short only) -f option no longer accepts an optional argument,
142   so e.g., `tail -fn 2 file' works again.
143 * tail no longer refuses to operate on certain types of files
144 * fixed bug in tsort's handling of cycles
145 Changes in release 2.0
146 [1.22q]
147 * HPUX portability fix: md5sum would dump core due to use of libc's getline
148 [1.22p]
149 * portability fixes from Paul Eggert based largely on tar-1.13 reports
150 * `tail --pid=PID' now works even when PID belongs to some other user
151 [1.22o]
152 * tail accepts new option: --pid=PID
153 [1.22n]
154 * tail accepts the following new options (some of which were added in 1.22g):
155   --retry
156   --follow[={name|descriptor}]
157   --max-unchanged-stats=N
158   --max-consecutive-size-changes=N
159   --sleep-interval=S
160 * wc uses the POSIX-mandated output format when POSIXLY_CORRECT is set
161 * To maintain compatibility with sort, comm and join now obey the LC_COLLATE
162   locale, and comm now considers newlines to be part of the lines.
163 * use lib/memchr.c only if it's not provided by the system -- this means
164   that on systems with a fast library memchr function you may notice an
165   improvement.  If you use a system with a buggy or signifcantly slower
166   memchr, please report it.
167 [1.22m]
168 * sort now considers newlines to be part of the line, as required by POSIX.2.
169   E.g. a line starting with a tab now sorts before an empty line,
170   since tab precedes newline in the ASCII collating sequence.
171 * sort handles NUL bytes correctly when configured/compiled with --enable-nls
172 * fix typos in my version of AC_SEARCH_LIBS.
173 * fix dates on config files so builders don't need autoconf/automake
174 [1.22l]
175 * sort no longer autodetects the locale of numbers and months,
176    as that conflicts with POSIX.2
177 * `join -tC' now works when input contains trailing spaces
178 * portability tweaks for Irix's cc
179 [1.22k]
180 * `sort -n' works with negative numbers when configured/compiled
181    with --enable-nls
182 * head accepts byte and line counts of type uintmax_t (so up to 2^64 - 1)
183 [1.22j]
184 * tail: fix bug introduced in 1.22i
185 [1.22i]
186 * tail now terminates in `yes > k & sleep 1; tail -2c k'
187 * `tail -f' now ensures that stdout is unbuffered
188 * fix a bug in cut to allow use of 8-bit delimiters
189 * pr accepts POSIX compliant options -s and -w,
190   the new capital letter options -J, -S and _W turn off the
191   unexpected interferences of the small letter options -s and -w
192   if used together with the column options.
193 * pr output has been adapted to other UNIXes in some cases.
194 [1.22h]
195 * portability tweaks
196 * Window/NT/DOS support
197 [1.22g]
198 * uniq accepts new option: --all-repeated (-D).
199 * Windows/DOS portability fixes
200 * new program: tsort
201 * tail has several new options
202 * md5sum can handle file names with embedded backslash characters
203 * pr accepts long option names (see `pr --help')
204 * new program: ptx (moved to this package from being its own distribution)
205 [1.22f]
206 * cut accepts new --output-delimiter=STR option
207 * `sort -o no-such-file no-such-file' now fails, as it should
208 * fix pr bug: pr -td didn't double space
209 * fix tac bug when using -b, -r, and -s SEPARATOR
210 * fix sort bug whereby using key-local `d' option would cause following
211   key specs to be ignored when any two keys (in the `d'-modified test)
212   compared equal.
213 [1.22e]
214 * remove maintainer mode
215 [1.22d]
216 * wc accepts new option: --max-line-length (-L)
217 * sort can sort according to your locale if your C library supports that
218 [1.22c]
219 [1.22b]
220 * od supports a new trailing `z' character in a type specification:
221     $ od -tx1z .
222     0000000 be ef c6 0f fd f9 d7 e0 ec cb f3 c6 00 db e8 00  >................<
223     0000020 00 00 d2 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
224     0000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
225     *
226     0000600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 cc  >..............5.<
227     0000620 05 63 76 74 2e 6f 00 00 29 ac 08 70 72 6f 6a 65  >.cvt.o..)..proje<
228     0000640 63 74 73 00 00 00 18 9a 05 63 76 74 2e 63 00 00  >cts......cvt.c..<
229     0000660 18 d9 03 52 43 53 00 00 18 c0 05 78 2e 64 61 74  >...RCS.....x.dat<
230
231 [1.22a]
232 * sort -c reports both the number and the contents of the first out-of-order
233   line, in addition to the file name.
234 * `head -c 4096m' is no longer treated just like `head -c 0'
235   now it gets a diagnostic about 4096m being too large.
236 * pr: For compatibility (also more POSIX compliant): Include default
237   separator `TAB' when merging lines of full length.
238 * When POSIXLY_CORRECT is not set, tail -N now accepts more than one file
239   argument, to be consistent with the way head -N works.  If POSIXLY_CORRECT
240   is set, using two or more file arguments with the obsolescent form (-N)
241   evokes an error.  To avoid the warning or failure, use the POSIX -n N option
242   or the GNU --lines=N option.
243
244 Changes in release 1.22
245 [1.21a]
246 * Fix a bug in tail when invoked with an argument like `+NUMBERc'
247 * Add test suite for tail
248
249 Changes in release 1.21
250 * Using --program-prefix no longer applies the prefix twice
251
252 Changes in release 1.20
253 * fix pr: -l now uses total number of lines per page also with -f
254 * fix pr: use left-hand-side truncation of header string to avoid line
255   overflow
256 * fix pr: it now accepts `form feeds set in input files', also with -m
257   and multiple form feeds at different pages in each file
258 * pr now accepts: -h "", print a blank line header
259 * pr: when skipping pages (+FIRST_PAGE option) line counting (-n option)
260   starts with 1st line of input file (not of 1st page printed) by default
261 * pr accepts new option: -N, start printing with an optional line number
262 * pr -t retains `form feeds set in input files' (`don't destroy page layout')
263 * pr accepts new option: -T, equivalent to -t, but eliminate also form feeds
264   (`clear file')
265 * pr accepts the extension: +FIRST_PAGE[:LAST_PAGE]
266 * pr -w and -s option disentangled (`use a separator' no longer destroys
267   column alignment)
268 * pr accepts new option: -j, merge lines of full length
269 * pr accepts the extension: -s[STRING], use separator string instead of
270   character only
271 * pr -b is no longer an independent option, balancing is always used
272   with -COLUMN (a requirement of unrestricted use of form feeds)
273 * pr accepts new option: --test, to run the pr tests with a constant
274   header string
275 * join passes all of its tests on Alpha OSF 4.0.
276 * sort no longer improperly ignores blanks in determining starting and ending
277   positions for keys with explicit character offsets
278 * fix bug in csplit with regexp and negative offset that led to infinite loop
279  Changes in test release 1.19q
280 * fix bug in sort -c that sometimes resulted in a segfault
281  Changes in test release 1.19p
282 * md5sum's --string option is being deprecated and is no longer documented.
283   It is still accepted, but will be removed altogether in 1.22.
284 * tr '[:lower:]' '[:upper:]' no longer fails when LC_CTYPE is set to
285   iso_8859_1 on Solaris -- or any other character set with differing
286   numbers of uppercase and lowercase characters
287 * split and tail diagnose unrecognized multiplier suffixes, in e.g.,
288   `split --bytes=1M' (should be `-b 1m' or `--bytes=1m')
289 * fix bug in md5sum's handling of partial reads
290 * fix bug in treatment by sort -f of bytes with high-bit set
291 * update configuration system to use automake's aclocal program
292 * configure performs sanity check on CC and CFLAGS to avoid a misleading
293   failure that suggested cross-compiling was the cause
294 * distribute test suites for cut, join, sort, and tr
295 * unexpand no longer gets in endless loop
296 * when verifying checksums, md5sum uses the binary mode flag from the
297   input stream rather than the one from the command line
298
299 Changes in release 1.19
300 * md5sum can verify digests of files with names containing newline characters
301 * update from gettext-0.10.20.
302
303 Changes in release 1.18
304 * when building sort, link with -lm on systems that use the replacement strtod
305 * update from gettext-0.10.17.
306
307 Changes in release 1.17
308 * include texinfo.tex in the distribution
309
310 Changes in release 1.16
311 * sort is compatible with Unix sort when a key-end spec refers to the N'th
312   character in a field that has fewer than N characters
313 * tail with old-style options like -20k and +31m operates on units of bytes,
314   as the --help usage message says.  Before, it used units of lines.
315
316 Changes in release 1.15
317 * od gives better diagnostics for invalid format specs
318 * uses automake-generated Makefile templates
319 * configure takes a new option: --enable-maintainer-mode
320 * fix a bug in fmt when prefix has trailing white space
321 * internationalized diagnostic messages
322 * fix a couple bugs in tr involving use of -c and/or -d flags -- see ChangeLog
323 * diagnose some improper or questionable invocations of csplit
324 * properly handle `echo |csplit - 1 1', rather than aborting
325 * fix join: without -t it now ignores leading blanks
326 * sort accepts new option: -z for NUL terminated records
327 * join accepts new option: --ignore-case, -i
328 * uniq accepts new option: --ignore-case, -i
329
330 User-visible changes in release 1.14
331 * sort -i and sort -d properly order strings containing ignored characters
332 * nl: rename misleading --first-page=N option to --starting-line-number=N.
333 * sort diagnoses invalid arguments to -k, then fails
334 * sort -n properly orders invalid integers with respect to valid integers
335 * sorting works with character offsets larger than corresponding field width
336 * sort's -b option and `b' modifier work
337 * sort -k2,2 works.
338 * csplit detects integer overflow when converting command line arguments
339 * sort accepts new option/flag, -g, for sorting numbers in scientific notation
340 * join accepts POSIX `-o 0' field specifier.
341 * tr 'a[b*512]' '[a*]' < /dev/null terminates
342 * tr '[:*3][:digit:]' 'a-m' and tr 'a[=*2][=c=]' 'xyyz' no longer fail
343 * special characters in tr's string1 and string2 may be escaped with backslash
344
345 User-visible changes in release 1.13
346 * md5sum: with --check, distinguish between open/read failure and bad checksum
347 * md5sum: remove -h, -s, -v short options
348 * md5sum: rename --verbose to --warn, --quiet to --status
349 * md5sum --check fails if it finds no properly formatted checksum lines
350 * sort -c prints `disorder on...' message on standard error, not stdout
351 * sort -k works as described in the texinfo documentation
352 * tail works on NetBSD
353 * md5sum reads and writes (de facto) standard Plumb/Lankester format
354 * sort accepts -.1 +.2 options for compatibility
355 * od works properly when dump limit is specified and is a multiple of
356   bytes_per_block (set by --width, 16 by default).
357
358 User-visible changes in release 1.12
359 * sort no longer reports spurious errors on Ultrix systems
360 * new program: md5sum
361 * all --help messages have been improved
362 * join's -a1 and -a2 options work
363 * tr '[:upper:]' '[:lower:]' no longer reads uninitialized memory
364 * sort properly handles command line arguments like `+7.2n'
365 * fmt properly formats paragraphs not terminated by a newline
366 * tail -f flushes stdout before sleeping so that it will output partial
367   lines sooner
368 * sort properly orders fields where one field is a proper prefix of the other
369 * sort properly interprets field offsets specified via the -k option
370 * dd, od, and tail work on systems for which off_t is long long (e.g. BSD4.4)
371 * wc is faster when not counting words
372 * wc now works even when file pointer isn't at beginning of file
373 * expand no longer seg faults with very long tab lists
374
375 User-visible changes in release 1.11
376 * fmt is built
377
378 User-visible changes in release 1.10
379 * skeletal texinfo documentation (mainly just the `invoking' nodes)
380 * new program: fmt
381 * tail -f on multiple files reports file truncation
382 * tail -q has been fixed so it never prints headers
383 * wc -c is much faster when operating on non-regular files
384 * unexpand gives a diagnostic (rather than a segfault) when given a name of
385   a nonexistent file.
386 * cat, csplit, head, split, sum, tac, tail, tr, and wc no longer fail
387   gratuitously when continued after a suspended read or write system call.
388 * cut interprets -d '' to mean `use the NUL byte as the delimiter' rather
389   than reporting that no delimiter was specified and failing.
390 * `echo a:b:c: | cut -d: -f3,4' prints `c:'.  Before it printed just `c'.
391 * cut has been rewritten, is markedly faster for large inputs, and passes a
392   fairly large test suite.
393 * sort properly handles the argument to the -T option.
394 \f
395 Major changes in release 1.9.1:
396 * cut no longer ignores the last line of input when that line lacks a
397   trailing newline character
398 \f
399 Major changes in release 1.9:
400 * `echo a:b:c: | cut -d: -f3-' prints `c:' and
401   `echo a:b | cut -d: -f1' prints `a'.
402 * the command `printf '\t\n' |fold -w n' now terminates.
403   Before, it wouldn't stop for n less than 8.
404 * sort accepts and ignores -y[string] options for compatibilty with Solaris.
405 * cat -v /dev/null works on more systems
406 * od's --compatible (-C) flag renamed to --traditional (no short option)
407 * --help and --version exit successfully
408 * --help gives a one-line description of each option and shows the
409   correspondence between short and long-named options.
410 * fix bug in cut.  Now `echo 'a:b:c:' | cut -d: -f3-' works.
411   Before it printed `c' instead of `c:'
412 * csplit allows repeat counts to be specified via `{*}'.
413 * csplit accepts a new option, --suffix=format that supercedes the
414   --digits option.  The --digits option will continue to work.
415 * csplit accepts a new option, --elide-empty-files.
416 * configure uses config.h, so DEFS won't exceed preprocessor limits of
417   some compilers on the number of symbols defined via -D.
418 * work around problem where $(srcdir)/config.h was used instead of
419   ../config.h -- this happened only when building in a subdirectory
420   and when config.h remained in $(srcdir) from a previous ./configure.
421 \f
422 Major changes in release 1.8:
423 * added non-ANSIfied version of memchr.c from GNU libc.
424 \f
425 Major changes in release 1.7:
426 * none
427 Major changes in release 1.6:
428 * with the --version option programs print the version and exit immediately
429 * pr -2a really terminates
430 * pr -n produces multi-column output
431 \f
432 Major changes in release 1.5:
433 * sort is 8-bit clean
434 * sort's -n and -M options no longer imply -b
435 * several bugs in sort have been fixed
436 * all programs accept --help and --version options
437 * od --compatible accepts pre-POSIX arguments
438 * pr -2a terminates
439 \f
440 Major changes in release 1.4:
441 * add od and cksum programs
442 * move cmp to GNU diff distribution
443 * tail -f works for multiple files
444 * pr prints the file name in error messages
445 * fix some off by 1 errors in pr and fold
446 * optimize wc -c on regular files
447 * sort handles `-' argument correctly
448 * sort supports -T option
449 * tr ranges like a-a work
450 * tr x '' fails gracefully
451 * default sum output format is BSD compatible
452 * paste -d '' works