[Gnuwin32-users] TextUtils-2.1 for Windows
Provides native Win32 open source ports and utilities
Brought to you by:
gnuwin32
|
From: GnuWin32 <gnu...@us...> - 2002-08-04 09:00:10
|
An MS-Windows (Win32) port of TextUtils-2.1 is available from http://gnuwin32.sourceforge.net GNU TextUtils is a collection of text utilities, such as printing and sorting. It consists of: - cat: concatenates and prints files on the standard output - cksum: checksum and count the bytes in a file - comm: compares two sorted files line by line - csplit: splits a file into sections determined by context lines - cut: remove sections from each line of files - expand: convert tabs to spaces - fmt: simple optimal text formatter - fold: wrap each input line to fit in specified width - head: output the first part of files - join: join lines of two files on a common field - md5sum: compute and check MD5 messsage digest - nl: number lines of files - od: dump files in octal and other formats - paste: merge lines of files - ptx: produce a permuted index of file contents - pr: convert text files for printing - shasum: compute and check SHA1 message digest - sort: sort lines of text files - split: split a file into pieces - sum: checksum and count the blocks in a file - tac: concatenates and prints files in reverse - tail: outputs the last part of files - tr: translates or deletes characters - tsort: perform topological sort - unexpand: convert spaces to tabs - uniq: remove duplicate lines from a sorted file - wc: prints the number of bytes, words, and lines in files 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 |