coreutils-5.1.0 released (unstable)
Jim Meyering <[email protected]> Mon, 22 Dec 2003 16:23:59 +0100
| Newsgroups | gmane.comp.gnu.coreutils.announce |
|---|---|
| Message-ID | <[email protected]> |
--===============1978380349== Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha1; protocol="application/pgp-signature" --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable It's been over 3 months since the last test release, and there have been pretty many changes, so expect some instability. Finally, here's a test release with improved file system traversal code for du, chgrp, chmod, and chown. All of those had problems due to their prior use of nftw and full path names. Now they all use fts and are careful not to form full path names (because you can't stat anything longer than PATH_MAX). As a result, the ch* functions are much more efficient. I've fixed fts.c to do proper cycle detection. For du, it does strict (detect immediately) checking, but for chgrp, chmod, and chown, it uses a cheaper mechanism for lazy cycle detection. I expect that some people will complain about Paul's change that makes ls -l (and ls -g, etc) field widths data dependent. Don't listen to them: any scripts that are affected weren't portable to begin with. Currently these files are available only on SourceForge. Happy holidays :-) Jim Here are the compressed sources: http://fetish.sf.net/coreutils-5.1.0.tar.gz (6.2MB) http://fetish.sf.net/coreutils-5.1.0.tar.bz2 (4.1MB) And here are xdelta-style diffs: http://fetish.sf.net/coreutils-5.0.91-5.1.0.xdelta (856KB) Here are GPG detached signatures: http://fetish.sf.net/coreutils-5.1.0.tar.gz.asc http://fetish.sf.net/coreutils-5.1.0.tar.bz2.asc Here are the MD5 and SHA1 signatures: 798bab0a9fc4df65cdbf3efe39d454e4 coreutils-5.1.0.tar.gz cd084d852fad7a836c9dd07c4f91445a coreutils-5.1.0.tar.bz2 cf5cb443507d99382e0b5fa5582c4170 coreutils-5.0.91-5.1.0.xdelta 92aec860ed2f782c7d1044775df324735bf412a0 coreutils-5.1.0.tar.gz 85aa3aa9a9b65a79ee8d437dd692fb035adcfeaf coreutils-5.1.0.tar.bz2 416d24cc8fd64ce9a910e486f932e79ea189c262 coreutils-5.0.91-5.1.0.xdelta NEWS * Major changes in release 5.1.0 (2003-12-21): ** New features 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. 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 longe= r. 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. 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=3DN (for very large N) is no longer subject to an address arithmetic bug that could result in bounds violations. ls --width=3DN (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=3Dunblock,sync) ChangeLog entries: ********************************************************************** ChangeLog ********************************************************************** 2003-12-20 Jim Meyering <[email protected]> * Version 5.1.0. * src/pr.c: Change type of global, buff_allocated, to size_t. * src/join.c [struct seq]: Change types of members count and alloc from `int' to `size_t'. * tests/Makefile.am (root-hint): Tweak wording. * src/du.c: Accept new option (-0, --null) that makes it so each output line is NUL-terminated rather than newline-terminated. * src/dd.c (apply_translations): Don't prohibit conv=3Dunblock,sync. Reported by Volker Paul. * tests/dd/Makefile.am (TESTS): Add unblock-sync. * tests/dd/unblock-sync: New test for the above. 2003-12-19 Jim Meyering <[email protected]> * tests/misc/nohup: Double quote back-ticked expression, in case it ends up having an unexpected value. * tests/ls/no-arg: Use ls's -1 option in both runs. * src/du.c (fts_debug): New global. (FTS_CROSS_CHECK, DEBUG_OPT): Define. (main): Make fts use FTS_TIGHT_CYCLE_CHECK. (main) [DU_DEBUG]: Accept -d option. 2003-12-18 Jim Meyering <[email protected]> * src/ls.c (format_user): Increment dired_pos via two statements, `dired_pos +=3D width; dired_pos++;' rather than one, `dired_pos +=3D width + 1;' since the latter could conceivably overflow. (format_group): Likewise. From Paul Eggert. * configure.ac: Require automake-1.8. 2003-12-12 Jim Meyering <[email protected]> * Use automake-1.8. Regenerate dependent files. 2003-12-08 Jim Meyering <[email protected]> * Makefile.maint (news-date-check): New rule. (alpha beta major): Depend on it. 2003-12-03 Paul Eggert <[email protected]> * NEWS: ls -l (and similar options) now adjust all columns to fit the data. Generalized from a suggestion by Leah Q for file sizes. * src/ls.c (INODE_DIGITS, LOGIN_NAME_MAX, ID_LENGTH_MAX): Remove. (format_user_width, format_group_width, unsigned_file_size, format_group): New functions. (block_size_width): Renamed from block_size_size. (inode_number_width, nlink_width, owner_width, group_width, author_width, major_device_number_width, minor_device_number_width, file_size_width): New vars. (clear_files): Initialize them. (gobble_file): Set them. Don't ceiling block_size_width to 7. (print_long_file): Use them. (gobble_file): Use a new local variable 'f' to make the code smaller and more consistent with other functions. (format_user): Output to stdout, not to a buffer, so that we don't have to worry about buffer overrun. Update dired_pos. (print_long_file): Don't put owner, group, author into buffer; just print them directly. Don't assume link counts and major and minor numbers fit into unsigned long int. * tests/cp/same-file, tests/mv/part-symlink: Don't assume that 'ls' output is fixed-width. 2003-12-02 Jim Meyering <[email protected]> * src/md5sum.c: Include sha1.h (reflect renaming: sha.h -> sha1.h. 2003-11-27 Jim Meyering <[email protected]> * Use automake-1.7f. Regenerate dependent files. 2003-11-24 Paul Eggert <[email protected]> Parse floating-point operands and options in the C locale. POSIX requires this for printf, and we might as well be consistent elsewhere (tail, sleep, seq). * src/printf.c: Remove decls of strtod, strtol, strtoul; no longer needed now that we assume C89. Include "c-strtod.h". (xstrtod): Call c_strtod, not strtod. * src/sleep.c: Include "c-strtod.h". (main): Update xstrtod call to include new argument, c_strtod. * src/seq.c (scan_double_arg): Likewise. * src/tail.c (parse_options): Likewise. 2003-11-24 Jim Meyering <[email protected]> * tests/rm/fail-2eperm: Handle another errno variant (HPUX, EPERM). Reported by Mark Conty. 2003-11-22 Jim Meyering <[email protected]> * Makefile.maint (sc_xalloc_h_in_src): Remove rule. Subsumed by... (sc_system_h_headers): Do this test only if sys2.h exists. 2003-11-20 Jim Meyering <[email protected]> * tests/help-version: Ensure that the bug-reporting address is included in the --help output for every program. * tests/Makefile.am (TESTS_ENVIRONMENT): Add $PACKAGE_BUGREPORT. * src/ptx.c (usage): Output bug-reporting address. Reported by Dan Jacobson. 2003-11-19 Jim Meyering <[email protected]> * src/join.c (usage): Mention that FILE1 and FILE2 must be sorted on the join fields. Suggestion from Bruce Robertson. 2003-11-18 Jim Meyering <[email protected]> `od -c -w9999999' could segfault * src/od.c (dump): Use xnmalloc/free, not alloca. 2003-11-16 Jim Meyering <[email protected]> * Use autoconf-2.59. Regenerate dependent files. * tests/du/hard-link: Minor tweak: use mkdir -p. Fix read-from-free'd-buffer error detected by valgrind. * src/csplit.c (remove_line): Don't return a pointer to data in a freed buffer. Instead, arrange to free the buffer on the subsequent call. * tests/misc/csplit: New test for above fix. 2003-11-11 Jim Meyering <[email protected]> * src/ls.c (extract_dirs_from_files): Avoid useless copy operations. This avoids a warning from valgrind about memcpy with overlapping source and destination. * configure.ac: Require automake-1.7.8. 2003-11-09 Jim Meyering <[email protected]> * Use automake-1.7.9. Regenerate dependent files. * src/rm.c: Support new options: --preserve-root and --no-preserve-root. * src/chown.c: Likewise. * src/chown-core.c: Include "root-dev-ino.h". (chopt_init): Initialize new member. (change_file_owner): Support rm's new --preserve-root option. * src/remove.c: Include "root-dev-ino.h". (remove_cwd_entries): Remove now-obsolete FIXME comment. (remove_dir): Support rm's new --preserve-root option. * src/chown.c: Include "root-dev-ino.h". Add new options: --preserve-root and --no-preserve-root. * src/chmod.c: Include "root-dev-ino.h". (process_file): Use newly-factored-out ROOT_DEV_INO_CHECK and ROOT_DEV_INO_WARN macros. (get_root_dev_ino): Remove function definition, now that it's been moved to a separate file. (usage): Describe new options. * src/mv.c (rm_option_init): Initialized new member. * src/remove.h: Include "dev-ino.h". (struct rm_options): Add new member: root_dev_ino. * src/chown-core.h: Include "dev-ino.h". (struct Chown_option): Add new member: root_dev_ino. 2003-11-06 Jim Meyering <[email protected]> * src/paste.c (paste_parallel): Use `sizeof *var' rather than hard-coding `sizeof FILE*'. 2003-11-05 Dennis Smit <ds-0lqS/[email protected]> * src/wc.c (main): Free `fstatus' so there is no confusion about whether it's leaked or not. * src/who.c (who): Likewise for `utmp_buf'. 2003-11-05 Paul Eggert <[email protected]> Fix 'cut' problems with size_t overflow and unsigned int. More generally, resize integer variables to fit use more precisely. * src/cut.c (ADD_RANGE_PAIR): Remove unnecessary parens. (struct range_pair): Make members to be of type size_t, not unsigned. (max_range_endpoint, eol_range_start): Now size_t, not unsigned. (suppress_non_delimited, output_delimiter_specified, have_read_stdin, print_kth, set_fields): Now bool, nt int. (delim): Now unsigned char, not int. (mark_printable_field, is_printable_field, is_range_start_index, set_fields, set_fields, cut_bytes, cut_fields): Use size_t, not unsigned, for field and byte counts. (hash_int): Use uintptr_t, not unsigned, for pointers converted to integers. This squeezes more info out of them. (set_fields, cut_bytes, cut_fields, main): Use bool, not int, for booleans. (set_fields): Allocate zeroed byte array with xzalloc, not xcalloc. 2003-11-05 Paul Eggert <[email protected]> * man/Makefile.am (check-programs-vs-x): Work even if $(programs) contains '$'. Work even if 'missing=3D1' in environment. Don't report an error simply because $(programs) outputs nothing. 2003-11-05 Jim Meyering <[email protected]> * Use autoconf-2.58. Regenerate dependent files. * src/tr.c (spec_init): Fix typo in last change. * src/sys2.h (case_GETOPT_VERSION_CHAR): Cast NULL to `(char *)' in call to variadic version_etc function, so that it works even on systems for which sizeof char* !=3D sizeof int. * src/true.c (main): Likewise. * basename.c, chroot.c, cksum.c, dd.c, dirname.c, echo.c, expr.c: * factor.c, hostid.c, hostname.c, link.c, logname.c, nice.c, nohup.c: * pathchk.c, printenv.c, printf.c, pwd.c, setuidgid.c, sleep.c, stty.c: * sync.c, test.c, tsort.c, unlink.c, uptime.c, users.c, whoami.c, yes.c: Similarly, cast NULL to `(char *)' in call to variadic function, parse_long_options, so that it works even on systems for which sizeof char* !=3D sizeof int. A similar problem was reported by Harti Brandt in http://mail.gnu.org/archive/html/bug-gnu-utils/2003-10/msg00320.html. * src/users.c (users): Free `utmp_buf' explicitly so that people don't mistake this for a real leak. Patch by Dennis Smit <ds-0lqS/[email protected] 2003-11-04 Paul Eggert <[email protected]> * README: Document _POSIX2_VERSION. 2003-11-04 Jim Meyering <[email protected]> * src/tac.c (memrchr): Remove #if-0'd function. (tac_stdin_to_mem): Clean up #if-0'd code. * src/od.c (decode_format_string): Remove unnecessary casts. Use more maintainable `sizeof *var'. (main): Call decode_format_string rather than decode_one_format, now that `spec' may be NULL. * src/chmod.c (AUTHORS): Add my name. * src/split.c (next_file_name): Use `sizeof *var' rather than hard-coding `sizeof size_t'. * src/sort.c (new_key): Use xzalloc, not xcalloc (1, ...). * src/cut.c (ADD_RANGE_PAIR): Use x2nrealloc rather than xrealloc, to avoid potential overflow in pointer arithmetic. (set_fields): Use not `1', but rather `sizeof *printable_field' as second argument to xcalloc. * src/od.c (decode_format_string, dump_strings): Use x2nrealloc rather than xrealloc. * src/date.c (show_date): Likewise. * src/join.c (ADD_FIELD, initseq, getseq): Likewise. * src/pr.c (store_char): Likewise. * src/fold.c (fold_file): Likewise. * src/copy.c (triple_hash, triple_hash_no_name): Adjust to reflect type changes (unsigned int -> size_t) in hash.c. * src/cp-hash.c (src_to_dest_hash): Likewise. * src/du.c (entry_hash): Likewise. * src/ls.c (dev_ino_hash): Likewise. * src/cut.c (hash_int): Likewise. Declare function as static. 2003-11-03 Jim Meyering <[email protected]> * tests/misc/Makefile.am (TESTS_ENVIRONMENT): Define PACKAGE_VERSION. * tests/misc/fold: Fail the test immediately if we're not running the expected version of fold. 2003-11-02 Jim Meyering <[email protected]> * src/tr.c (append_normal_char, append_range, append_char_class) (append_repeated_char, append_equiv_class, spec_init): Use `sizeof *var' rather than `sizeof EXPLICIT_TYPE'. The former is more maintainable and usually shorter. * src/copy.c (copy_internal): Likewise. * src/join.c (initseq, add_field, make_blank): Likewise. * src/od.c (main): Likewise. * src/cp.c (make_path_private): Likewise. * src/tsort.c (new_item, record_relation): Likewise. * src/df.c (add_fs_type, add_excluded_fs_type, main): Likewise. (main): Also remove anachronistic cast of xmalloc return value. * src/ptx.c (alloc_and_compile_regex, main): Likewise. (main): Also remove anachronistic cast of xmalloc return value. * src/sort.c (inittables): Likewise. (sort): Also Split a long line. 2003-10-25 Jim Meyering <meyering-b/[email protected]> * src/copy.c (triple_hash, triple_hash_no_name): Adjust to reflect type changes (unsigned int -> size_t) in hash.c. * src/cp-hash.c (src_to_dest_hash): Likewise. * src/du.c (entry_hash): Likewise. * src/ls.c (dev_ino_hash): Likewise. * src/cut.c (hash_int): Likewise. Declare function as static. 2003-10-21 Jim Meyering <[email protected]> Don't fail when run with VERBOSE=3Dyes. * tests/chgrp/basic: Do `set +x' before starting the subshell from which we invoke chgrp. Otherwise, the output from the VERBOSE=3Dyes-induced `set -x' would result in spurious differences. Reported by Russel Coker via Michael Stone. 2003-10-19 Jim Meyering <[email protected]> chmod now uses fts to perform a directory traversal when -R is specified. Before, it operated on full path names, and as such would encounter the PATH_MAX (often 4096) limit. * src/chmod.c: Include "xfts.h". (process_file): Rename from change_file_mode. Adapt to be used with fts. (process_files): New function. 2003-10-18 Jim Meyering <[email protected]> * tests/du/deref-args: Ensure that du -D now dereferences all symlinks specified on the command line, not just those that reference directories. * basename.c, cat.c, chroot.c, cksum.c, comm.c, cp.c, csplit.c, cut.c: * dd.c, df.c, dirname.c, du.c, echo.c, env.c, expr.c, factor.c, head.c: * hostid.c, hostname.c, id.c, link.c, ln.c, logname.c, ls.c, md5sum.c: * mv.c, nice.c, nl.c, nohup.c, paste.c, pathchk.c, pinky.c, pr.c: * printenv.c, printf.c, pwd.c, rm.c, setuidgid.c, sleep.c, sort.c: * split.c, stty.c, sum.c, sync.c, tac.c, tail.c, tee.c, test.c: * touch.c, tsort.c, uniq.c, unlink.c, uptime.c, users.c, wc.c: * who.c, whoami.c, yes.c (AUTHORS): Revert the WRITTEN_BY/AUTHORS change of 2003-09-19. Now, AUTHORS is a comma-separated list of strings. Update the call to parse_long_options so that `AUTHORS, NULL' are the last parameters. * src/true.c (main): Append NULL to version_etc argument list. * src/sys2.h (case_GETOPT_VERSION_CHAR): Likewise. 2003-10-17 Andreas Schwab <[email protected]> * tests/mk-script: Get $srcdir from first parameter instead of hardcoding it. (main): Update usage. * tests/Makefile.am.in ($(srcdir)/$x-tests): Pass $(srcdir) as first argument of mk-script. ($(srcdir)/Makefile.am): Likewise. Prepend $(srcdir) to target. 2003-10-17 Jim Meyering <[email protected]> * src/mv.c (usage): Tweak descriptions of -i and -f so that the generated `man' page is more readable. Suggestion from Dan Jacobson. * src/chown-core.c (change_file_owner): Handle the cases in which fts_info indicates an error with the given entry. * src/du.c (main): Simply assign to bit_flags. Don't bother with bit arithmetic. * tests/chmod/no-x: New file. * tests/chgrp/no-x: New file. * tests/chmod/Makefile.am (TESTS): Add no-x. * tests/chgrp/Makefile.am (TESTS): Likewise. * src/du.c: Include "xfts.h". (du_files): Use xfts_open, rather than fts_open. * src/chown-core.c (chown_files): Likewise. 2003-10-16 Jim Meyering <[email protected]> * src/chgrp.c (main): Simply assign to bit_flags. Don't bother with bit arithmetic. * src/chown.c (main): Likewise. Rename a couple of local variables. Remove unnecessary casts. * src/tail.c (start_bytes): Rename local, remainder, to avoid gcc's warning about shadowing a global. 2003-10-15 Jim Meyering <[email protected]> chown and chgrp now accept POSIX-mandated -H, -L, -P options and use fts to perform a directory traversal when -R is specified. Before, they operated on full path names, and as such would encounter the PATH_MAX (often 4096) limit. They are more efficient. For example, before, chgrp -R would take almost 5 seconds to change about 2000 directories and fail (with `File name too long'), while now it succeeds on a hierarchy of depth 20,000 in 1/10 the time. * src/chown.c: Include "userspec.h" and "fts_.h". (WRITTEN_BY): Add my name. (getpwnam, getgrnam, getgrgid): Remove declarations. (endpwent): Remove definition. (usage): Update. (main): Handle new options. Call new function, chown_files rather than change_file_owner. * src/chgrp.c: Include "fts_.h". (WRITTEN_BY): Add my name. (MAXUID, MAXGID): Remove definitions. Use GID_T_MAX instead of the latter. (usage): Update. (main): Handle new options. Call new function, chown_files rather than change_file_owner. Rewrite to iterate through hierarchies using fts rather than via explicit recursion. * src/chown-core.c: Include "fts_.h" (change_file_owner): Rewrite to use FTS* and FTSENT* and to operate on a single file at a time. (chown_files): New function. * src/chown-core.h [enum Dereference_symlink]: Remove declaration. [struct Chown_option] (recurse, force_silent): Change type to `bool'. [struct Chown_option] (dereference): Remove member with ambiguous name. [struct Chown_option] (affect_symlink_referent): New member. (chown_files): New prototype. * tests/chgrp/recurse: Update tests accordingly. * tests/chgrp/posix-H: New tests for the above. * tests/chgrp/Makefile.am (TESTS): Add posix-H. * src/ln.c (usage): Clarify that --directory, -d, -F probably won't work even for superuser. Suggestion from Dan Jacobson. 2003-10-14 Paul Eggert <[email protected]> Fix some number-parsing bugs, e.g., "head -n 100k@" wasn't properly diagnosed. * lib/human.c, lib/xstrtoimax.c, lib/xstrtol.c, lib/xstrtol.h, lib/xstrtoul.c, lib/xstrtoumax.c: Sync with gnulib. * src/sort.c (parse_field_count): Handle the case where overflow and invalid suffix char are both reported. 2003-10-14 Jim Meyering <[email protected]> * src/ls.c (decode_switches) [TIOCGWINSZ]: Comment out the warning-inducing test, ws.ws_col <=3D SIZE_MAX, since it was always true on Linux. 2003-10-13 Paul Eggert <[email protected]> Fix to avoid a denial-of-service attack if the display width is enormous. Also, clean up the code a bit by removing duplicate code. * src/ls.c (init_column_info): Remove forward decl; no longer needed. (calculate_columns): New function, that contains code that used to be common to print_many_per_line and print_horizontal. (print_many_per_line, print_horizontal): Use it. (decode_switches): Set max_idx here, not in calculate_columns. (print_current_files): Don't call init_column_info; calculate_columns now does that. (init_column_info): Don't allocate a lot more space than is needed to represent the current set of files. Allocate all the new size_t cells in one call to xnmalloc, rather than a row at a time. 2003-10-13 Jim Meyering <[email protected]> * src/ls.c (init_column_info): Add another FIXME comment. 2003-10-13 Paul Eggert <[email protected]> Fix address-arithmetic bug in 'ls', reported by Georgi Guninski. Remove several arbitrary limits on hosts where int cannot represent all size_t values. * src/ls.c (struct bin_str.len, length_of_file_name_and_frills, indent, nfiles, files_index, tabsize, line_length, struct column_info.line_len, struct column_info.col_arr[0], max_idx): Now size_t, not int. (get_funky_string): Return bool indicating success, instead of a negative count to indicate failure. Store number of columns through new parameter OUTPUT_COUNT; that way, they can never go negative. Change equals_end from int to bool. All uses changed. (struct column_info.valid_len): Now bool, not int. All uses changed. (dired_dump_obstack, get_funky_string, clear_files, extract_dirs_from_files, print_current_files, print_many_per_line, print_horizontal, init_column_info, put_indicator, length_of_file_name_and_frills, print_with_commas): Use size_t, not int, for local variables that count sizes. (decode_switches): Decode sizes using xstrtoul, not xstrtol. Check for TIOCGWINSZ returing negative values (or values greater than SIZE_MAX!). (visit_dir, main, parse_ls_color, queue_directory, add_ignore_pattern, init_column_info): Use xmalloc and xnmalloc, not XMALLOC. (gobble_file): Use xnrealloc, not XREALLOC. (print_color_indicator): Remove now-unnecessary cast to size_t. 2003-10-12 Paul Eggert <[email protected]> * tests/du/no-x: Change wording of diagnostic to match latest du.c. * tests/sort/sort-tests: Remove from CVS; assume that people brave enough to check coreutils out from CVS can rebuild it. 2003-10-12 Jim Meyering <[email protected]> New options: --preserve-root and --no-preserve-root. * src/chmod.c (change_file_mode): Honor new option. (change_file_mode): Strip trailing slashes on directory argument passed to change_dir_mode. (get_root_dev_ino): New function. (main): Initialize global, root_dev_ino. * src/copy.c (copy_internal): Don't #ifdef-out simple uses of S_ISLNK or S_ISSOCK. The S_IS* macros are guaranteed to be defined via system.h. * src/chmod.c (change_file_mode): Likewise. 2003-10-08 Jim Meyering <[email protected]> * src/csplit.c (main): Remove obsolete FIXME. 2003-10-07 Jim Meyering <[email protected]> * Use automake-1.7.8. Regenerate dependent files. 2003-09-29 Paul Eggert <[email protected]> csplit cleanup. * doc/coreutils.texi (csplit invocation): The regexp offset need not have a sign; POSIX requires support for signless offets. Be more careful about int widths. For example, remove some arbitrary limits by replacing 'unsigned' with 'size_t', 'uintmax_t', etc. Use standard bool rather than a homegrown type. * lib/Makefile.am (libfetish_a_SOURCES): Add xstrtoimax.c. * src/csplit.c (FALSE, TRUE, boolean): Remove. All uses changed to <stdbool.h> usage. (struct control): offset is now intmax_t, not int. repeat_forever is now bool, not int. (struct cstring): len is now size_t, not unsigned int. (struct buffer_record): bytes_alloc, bytes_used, num_lines are now size_t, not unsigned. start_line, first_available are now uintmax_t, not unsigned. (hold_count, control_used): Now size_t, not unsigned. (last_line_number, current_line, bytes_written): Now uintmax_t, not unsigned. (save_to_hold_area, red_input, keep_new_line, record_line_starts, create_new_buffer, get_new_buffer, load_buffer, find_line, process_regexp, split_file, new_control_record, extract_regexp, get_format_width, get_format_prec, max_out): size args, locals, and returned values are now size_t, not unsigned or int. (get_first_line_in_buffer, find_line, write_to_file, handle_line_error, process_line_count, regexp_error, process_regexp, split_file): File line, byte, and repetition counts are now uintmax_t, not unsigned. (check_for_offset): Don't require a sign before the offset. Use xstrtoimax to do the real work. (extract_regexp): Remove harmful cast of size to unsigned. 256 -> 1<<CHAR_BIT, for clarity. (get_format_flags): Return at most 3, to avoid worries about overflow. (bytes_to_octal_digits): Remove. (cleanup): Don't check whether output_stream is NULL, since close_output_file does that for us. (new_line_control, create_new_buffer): Use "foo *p =3D xmalloc (sizeof *p);" instead of the more long-winded alternatives. (get_new_buffer): Use O(1) algorithm for resizing a buffer to a much larger size, instead of an O(N) algorithm. (process_regexp): Use plain NULL rather than casted 0. (make_filename): Use %u, not %d, to format unsigned file number. (new_control_record): Use xrealloc exclusively, since it handles NULL reliably. (extract_regexp): Change misspelled word in diagnostic. (get_format_width): Even if a minimum field width is specified, allow room for enough octal digits to represent the value of the maximum representible integer. This fixes a potential buffer overrun. Calculate this room at compile-time, not at run-time; this removes the need for bytes_to_octal_digits. Check for overflow; this removes a FIXME. (get_format_prec): Don't allow precision to be signed; it's not ANSI. Check for overflow. Remove hardcoded "11" as default precision; this fixes a potential buffer overrun on hosts with wider size_t. (get_format_conv_type): Change local variable to be of type unsigned char, not int; this removes a potential subscript violation on hosts where char is signed. (max_out): Replace "for (;*p;)" with more-standard "while (*p)". Allow "%%" in format. Don't overflow when counting lots of percents. (usage): Default sprintf format is %02u, not %d. 2003-10-05 Jim Meyering <[email protected]> * src/chown-core.c (change_file_owner): Remove set-but-not-used local. * src/du.c (du_files): Mark diagnostic for translation. 2003-10-04 Jim Meyering <[email protected]> * src/du.c (du_files): Ignore any failure of fts_close. Give better diagnostics for failed fts_open. * src/du.c (MAX_N_DESCRIPTORS): Remove now-unused definition. Deprecate existing use of -H (aka --si). * src/du.c (enum) [HUMAN_SI_OPTION]: New member. [long_options]: Use HUMAN_SI_OPTION, not 'H'. (main): Warn that the meaning of -H will soon change to be POSIX compliant. 2003-10-03 Jim Meyering <[email protected]> * src/du.c: Accept --no-dereference (-P). 2003-10-02 Jim Meyering <[email protected]> * tests/du/trailing-slash: Adjust for slightly different output. Rewrite du.c to use fts. * src/du.c: Include "fts_.h", not ftw.h. (opt_dereference_arguments, arg_length, suffix_length): Remove globals. (IS_FTW_DIR_TYPE): Remove definition. (IS_DIR_TYPE): Define. (is_symlink_to_dir): Remove now-unnecessary function. (process_file, du_files): Rewrite to use fts. * tests/du/inaccessible-cwd: Ensure that even when run from an inaccessible directory, du can still operate on accessible directories elsewhere. * tests/du/Makefile.am (TESTS): Add inaccessible-cwd. * tests/rm/deep-1: Ensure that du can process a hierarchy of depth 400 while using no more than 50KB of stack space. 2003-10-01 Akim Demaille <[email protected]> * announce-gen (print_news_deltas): New function, extracted from main. (main): Make `news_file' an array. Use '...=3Ds' =3D> \@var for --news and --url-directory specs. Before there were a couple of portability problems. 2003-09-28 Jim Meyering <[email protected]> * Makefile.maint (sc_cast_of_alloca_return_value): New rule. (syntax-check-rules): Add it. * src/copy.c: Remove unnecessary cast of alloca, since now it's guaranteed to be (void *). * src/cp.c: Likewise. * src/join.c: Likewise. * src/ln.c: Likewise. * src/ls.c: Likewise. * src/od.c: Likewise. * src/sys2.h (ASSIGN_STRDUPA): Likewise. 2003-09-27 Jim Meyering <[email protected]> Don't exhaust virtual memory when processing large inputs. Fix this by removing csplit's internal free-list management; instead rely on malloc for that. * src/csplit.c (free_list): Remove global. (clear_all_line_control): Remove function. (get_new_buffer): Always use create_new_buffer to obtain a new buffer, rather than searching free_list. (free_buffer): Just call free. Reported by Nikola Milutinovic. 2003-09-26 Jim Meyering <[email protected]> * man/rm.x: Also list `chattr' in SEE ALSO section. Suggestion from Mark Hubbart. 2003-09-25 Jim Meyering <[email protected]> * configure.ac: Don't invoke AC_AIX or AC_MINIX explicitly, now that we use gl_USE_SYSTEM_EXTENSIONS, since it AC_REQUIREs them. * Use autoconf-2.57d. Regenerate dependent files. 2003-09-24 Jim Meyering <[email protected]> Minor efficiency tweak. * src/ln.c (PATH_BASENAME_CONCAT): Use memcpy rather than strcpy. (do_link): Likewise. 2003-09-23 Jim Meyering <[email protected]> * src/paste.c (paste_serial): Save errno after input error, to report proper errno value. Based on a patch from Paul Eggert. * src/tee.c (tee): Adjust fwrite arguments so that the return value is the number of bytes written. 2003-09-16 Paul Eggert <[email protected]> Don't assume ferror sets errno. Bug reported by Bruno Haible. * src/comm.c (compare_files): Save errno after input error, to report proper errno value. * src/fold.c (fold_file): Likewise. * src/od.c (check_and_close, skip, read_char, read_block): Likewise. * src/unexpand.c (unexpand): Likewise. * src/csplit.c (close_output_file): Don't report bogus errno value after ferror discovers an output error. We don't know the proper errno value, since it might have been caused by any of a whole bunch of calls, and it might have been trashed in the meantime. Fixing this problem will require much more extensive changes; in the meantime just say "write error". * src/od.c (check_and_close, dump, dump_strings): Likewise. * src/uniq.c (check_file): Likewise. * src/join.c (get_line): Report error right away if I/O fails, so that the proper errno value is used. * src/tac.c (tac_seekable, tac_file, save_stdin): Likewise. * src/tee.c (tee): Likewise. * src/uniq.c (check_file): Likewise. * src/od.c (skip): If a read fails, don't retry it later, so that we report the proper errno. * src/tac.c (tac_mem): Don't return a value; nobody uses it. * src/tee.c (tee): Once a write failure has occurred, don't bother writing anything more to that stream. * src/uniq.c (check_file): Check for ferror (stdout) even if ostream =3D=3D stdout. * src/yes.c (UNROLL): Remove. (main): Exit immediately when write failure is detected. Simplify code by assigning to argv when argc =3D=3D 1. 2003-09-21 Paul Eggert <[email protected]> * src/ptx.c: Switch encoding from Latin-1 to UTF-8. (WRITTEN_BY): Change "Franc,ois" (actually using c-with-cedilla in Latin-1) to "F.", so that it's ASCII, as xgettext requires. 2003-09-19 Jim Meyering <[email protected]> `du -D symlink-to-dir' would mistakenly omit the slash in lines like this: 24 symlink-to-dir/subdir * src/du.c (process_file): Fix offset calculation. Reported by Jeff Sheinberg as Debian bug #211591; http://bugs.debian.org/205251 * tests/du/deref-args: New file/test for the above. * tests/du/Makefile.am (TESTS): Add deref-args. * src/du.c (process_file): Remove useless disjunct. * src/sys2.h (case_GETOPT_VERSION_CHAR): Rename parameter, Authors, to Written_by. * nearly all src/*.c files (WRITTEN_BY): Rename from AUTHORS. Begin each WRITTEN_BY string with `Written by ' and end it with `.'. Mark each WRITTEN_BY string as translatable. * basename.c, cat.c, chroot.c, cksum.c, comm.c, cp.c, csplit.c, cut.c: * dd.c, df.c, dirname.c, du.c, echo.c, env.c, expr.c, factor.c, head.c: * hostid.c, hostname.c, id.c, link.c, ln.c, logname.c, ls.c, md5sum.c: * mv.c, nice.c, nl.c, nohup.c, paste.c, pathchk.c, pinky.c, pr.c: * printenv.c, printf.c, pwd.c, rm.c, setuidgid.c, sleep.c, sort.c: * split.c, stty.c, sum.c, sync.c, tac.c, tail.c, tee.c, test.c: * touch.c, tsort.c, uniq.c, unlink.c, uptime.c, users.c, wc.c: * who.c, whoami.c, yes.c: Revert yesterday's changes. Instead, a subsequent change will embed `Written by ' in each string along with the author names. * src/true.c: Revert yesterday's changes. * src/sys2.h: Likewise. 2003-09-18 Jim Meyering <[email protected]> * basename.c, cat.c, chroot.c, cksum.c, comm.c, cp.c, csplit.c, cut.c: * dd.c, df.c, dirname.c, du.c, echo.c, env.c, expr.c, factor.c, head.c: * hostid.c, hostname.c, id.c, link.c, ln.c, logname.c, ls.c, md5sum.c: * mv.c, nice.c, nl.c, nohup.c, paste.c, pathchk.c, pinky.c, pr.c: * printenv.c, printf.c, pwd.c, rm.c, setuidgid.c, sleep.c, sort.c: * split.c, stty.c, sum.c, sync.c, tac.c, tail.c, tee.c, test.c: * touch.c, tsort.c, uniq.c, unlink.c, uptime.c, users.c, wc.c: * who.c, whoami.c, yes.c: Update AUTHORS definition to be a comma-separated list of strings and/or update the call to parse_long_options so that `AUTHORS, NULL' are the last parameters. * src/true.c (main): Append NULL to version_etc argument list. * src/sys2.h (case_GETOPT_VERSION_CHAR): Likewise. * src/sort.c (numcompare): Rename local, logb, to log_b to avoid shadowing the math function name. Also rename loga to log_a. 2003-09-14 Jim Meyering <[email protected]> * src/factor.c (print_factors): Give a separate diagnostic for numbers that are too large, but otherwise valid. Reported by D=C3=A1niel Varga. 2003-09-10 Jim Meyering <[email protected]> * Use automake-1.7.7. Regenerate dependent files. * tests/Makefile.am (all_programs): Use ../src/tr -s ' ' '\n' in place of `fmt -1'. Using the just-built tr is a little cleaner. Christian Krackowizer reported that HPUX 10.20 doesn't have fmt. * man/Makefile.am (programs, check-x-vs-1): Likewise. 2003-09-09 Jim Meyering <[email protected]> * src/copy.c: Alphabetize includes. Remove duplicate inclusion of "same.h". * Makefile.maint (GZIP_ENV): Remove --rsyncable. Didn't give enough of a benefit, mainly because it's not yet in wide enough use. ********************************************************************** lib/ChangeLog ********************************************************************** 2003-12-20 Jim Meyering <[email protected]> * fts.c [!_LIBC]: Undefine, then define-away __P. 2003-12-19 Jim Meyering <[email protected]> Rewrite fts to use a hash table or O(1)-mem cycle-detection code rather than the tree-based tsearch functions. * fts_.h: Include hash.h and cycle-check.h. (FTS_TIGHT_CYCLE_CHECK): New value. (FTS_OPTIONMASK): Adjust to include the new value. (FTS_NAMEONLY, FTS_STOP): Increase to allow room for new value. (struct FTS) [active_dir_ht]: New member. Replaces fts_dir_signatures. (struct FTS) [cycle_state]: New member. * fts.c: Don't include <search.h>. [HAVE_INTTYPES_H]: Include <inttypes.h>. (tdestroy, tfind, tsearch): Remove definitions. (struct Active_dir): Rename from `known_object'. (AD_compare, AD_hash): New functions. (enter_dir, leave_dir): Rewrite to manipulate a hash table rather than a tree. (fts_open): Initialize hash table or cycle_state buffer. (free_node): Remove function. (find_matching_ancestor): Renamed/rewritten from look_up_active_dir. (fts_cross_check): Adapt to use new data structure. * Makefile.am (libfetish_a_SOURCES): Remove search_.h. (DISTCLEANFILES): Remove definition. 2003-12-18 Jim Meyering <[email protected]> Rewrite cycle detection code to work properly. Add some framework (compiled out by default) to test it. * fts.c (Dprintf, ENTER_DIR, LEAVE_DIR): Define. (add_object): Remove function. Rewritten as... (enter_dir): New function. (leave_dir, free_node): New functions. (fts_read): Ensure that we call ENTER_DIR or LEAVE_DIR, as appropriate, before returning. (look_up_active_dir, fts_cross_check) [FTS_DEBUG]: New functions. (fts_stat): Don't perform the cycle check here. Now it's done via enter_dir. 2003-12-12 Jim Meyering <[email protected]> * fts_.h (FTS) [fts_dir_signatures]: Add comment. 2003-12-03 Paul Eggert <[email protected]> * getgroups.c (getgroups): xmalloc takes one argument, not two. Bug reported by Alfred M. Szmidt. 2003-12-02 Jim Meyering <[email protected]> * Makefile.am (libfetish_a_SOURCES): Reflect sha -> sha1 renaming. * sha1.c: File renamed from sha.c. * sha1.h: File renamed from sha.h. Use SHA1_H, not _SHA_H in #ifndef condition. * sha.c: Add FSF Copyright. * sha.h: Correct stale references to MD5 and `16 bytes'. Patch by Ulrich Drepper. * sha.h: Add FSF Copyright. Remove reference to Scott Miller, since this file is now nearly identical to md5.h. * md5.h (rol) [__GNUC__ && __i386__]: Don't use `asm' code. These days, gcc-3.x does better all by itself. Patch from Dean Gaudet: http://mail.gnu.org/archive/html/bug-coreutils/2003-11/msg00144.html 2003-11-29 Jim Meyering <[email protected]> * c-strtod.c (c_strtod): Save and restore original LC_NUMERIC setting, in case it was different from the environment-derived value. Patch by Paul Eggert. Include "xalloc.h" for declaration of xstrdup. 2003-11-24 Paul Eggert <[email protected]> Parse floating-point operands and options in the C locale. POSIX requires this for printf, and we might as well be consistent elsewhere (tail, sleep, seq). * Makefile.am (libfetish_a_SOURCES): Add c-strtod.c, c-strtod.h. * c-strtod.c, c-strtod.h: New files. * xstrtod.h (xstrtod): Accept an extra arg, specifying the conversion function. * xstrtod.c (xstrtod): Likewise. All callers changed to include c-strtod.h and use c_strtod. Don't include stdlib.h; no longer needed. * xnanosleep.c: Don't include xstrtod.h; it's not needed. 2003-11-22 Jim Meyering <[email protected]> * xmalloc.c (x2nrealloc_inline): Fix typos in comments: s/size/size_t/. 2003-11-21 Jim Meyering <[email protected]> * xreadlink.c (xreadlink): Correct outdated comment. 2003-11-17 Jim Meyering <[email protected]> On systems without utime and without a utimes function capable of dealing with a NULL struct utimbuf* argument, this utime replacement could -- in unusual circumstances -- leak a file descriptor. * utime.c: Include <unistd.h> and <errno.h>. (utime_null): Be sure to close `fd' and to preserve errno. Reported by Geoff Collyer via Arnold Robbins. 2003-11-13 Jim Meyering <[email protected]> * xalloc.h, xstrtol.c: Update from gnulib. 2003-11-11 Jim Meyering <[email protected]> * ftw.c, ftw_.h: Remove files. No longer used. 2003-11-09 Jim Meyering <[email protected]> * root-dev-ino.c, root-dev-ino.h: New files. * Makefile.am (libfetish_a_SOURCES): Add root-dev-ino.c root-dev-ino.h. * dev-ino.h: Include <sys/types.h> and <sys/stat.h>. 2003-11-06 Jim Meyering <[email protected]> * free.c: New file, from gnulib. 2003-10-31 Paul Eggert <[email protected]> * mountlist.h (struct mount_entry.me_type_malloced): New member. * mountlist.c (SIZE_MAX): Define if not defined already. (read_filesystem_list): Set and use me_type_malloced. Use "sizeof *me" rather than "sizeof (struct mount_entry)" (or whatever the type happens to be), for brevity and consistency. Check for size calculation overflow on Alphas running OSF/1. 2003-10-31 Jim Meyering <[email protected]> * hash.c: Include "xalloc.h" for use of xalloc_oversized. * linebuffer.c: Include <string.h> for declaration of memset. * alloca.c, linebuffer.c, xmalloc.c, xalloc.h: Update from gnulib. * exclude.c, getgroups.c, quotearg.c, stdbool_.h: Update from gnulib. * hash.c, hash-pjw.h: Update from gnulib. 2003-10-25 Jim Meyering <[email protected]> * hash.c, hash.h: Update from gnulib. * hash-pjw.c, hash-pjw.h: Likewise. * obstack.c, obstack.h: Likewise=07. 2003-10-25 Jim Meyering <meyering-b/[email protected]> * fts_.h: Include <features.h> only if _LIBC. [!_LIBC]: Define-away __THROW, __BEGIN_DECLS, __END_DECLS. 2003-10-19 Jim Meyering <[email protected]> * vasnprintf.c (vasnprintf): Work around losing snprintf on e.g. HPUX 10.20. 2003-09-25 Jim Meyering <[email protected]> Bruno Haible <[email protected]> [Update from gnulib] This lets translators provide better translations for the "Written by ..." part of --version output. * version-etc.h: Include stdarg.h. (version_etc_copyright): Declare as readonly. (version_etc): Make this function variadic with a NULL-terminated list of author name strings. (version_etc_va): New declaration. * version-etc.c: Include stdarg.h, stdlib.h. (version_etc_copyright): Declare as readonly. (version_etc_va): New function. Provide a different translatable string for each possible number of authors < 10. Abbreviate when there are 10 authors or more. (version_etc): Make this function variadic. Call version_etc_va. Suggestion from Gary V. Vaughan. * long-options.h (parse_long_options): Change prototype: the authors string is moved to the end and becomes variadic. * long-options.c: Include stdarg.h. (parse_long_options): Make this function variadic, too. Call version_etc_va, not version_etc. 2003-10-17 Jim Meyering <[email protected]> * xfts.c, xfts.h: New files. This factors out code used by du.c, chmod.c, and chown-core.c. * Makefile.am (libfetish_a_SOURCES): Add xfts.c and xfts.h. * error.h: Update from gnulib. * getpass.c: Likewise. * fnmatch.c: Likewise. * fnmatch_loop.c: Likewise. 2003-10-16 Jim Meyering <[email protected]> * xmalloc.c: Include <string.h>, for declarations of memset and memcpy. * getgroups.c: Update from gnulib. * readutmp.c: Fix indentation, from gnulib. * exclude.c: Update from gnulib. * xgethostname.c: Include xgethostname.h. * xgethostname.h: New file, from gnulib. * Makefile.am (libfetish_a_SOURCES): Add xgethostname.h. 2003-10-15 Jim Meyering <[email protected]> * userspec.h: New file. * userspec.c: Include "userspec.h". * Makefile.am (libfetish_a_SOURCES): Add userspec.h. 2003-10-14 Paul Eggert <[email protected]> Fix some number-parsing bugs, e.g., "head -n 100k@" wasn't properly diagnosed. * human.c, xstrtoimax.c, xstrtol.c, xstrtol.h, xstrtoul.c, xstrtoumax.c: Sync with gnulib. 2003-10-13 Paul Eggert <[email protected]> * xalloc.h, xmalloc.c, xstrdup.c: Import latest version from gnulib. 2003-09-29 Paul Eggert <[email protected]> * Makefile.am (libfetish_a_SOURCES): Add xstrtoimax.c. 2003-10-02 Jim Meyering <[email protected]> Don't require that the maximum length of a file name encountered in a traversal fit in an `unsigned short', and fix some portability bugs (don't depend on gcc). * fts.c: Include "fts_.h", not <fts.h>. (ALIGNBYTES) [!(__GNUC__ >=3D 2)]: Add a definition that works with compilers that don't have __alignof__. (MAX): Use a definition that doesn't depend on gcc. (fts_build): Make `len' and `maxlen' be of type size_t, not int. Test for overflow in a less type-dependent manner. Test HAVE_STRUCT_DIRENT_D_TYPE, rather than defined DT_DIR && defined _DIRENT_HAVE_D_TYPE. (fts_palloc): Test for overflow in a less type-dependent manner. (fts_safe_changedir): Use stat, not stat64. Use fstat, not __fxstat64(_STAT_VER. * fts_.h [FTS] (fts_pathlen): Change type from int to size_t. [FTSENT] (fts_pathlen): Change type from u_short to size_t. (fts_level): Change type from u_short to int. * Makefile.am (libfetish_a_SOURCES): Add fts.c fts_.h. Remove ftw_.h. 2003-09-29 Paul Eggert <[email protected]> * strftime.c (tm_diff) [! HAVE_TM_GMTOFF]: Fix arg typo in previous patch. 2003-09-28 Jim Meyering <[email protected]> * error.c: Update from gnulib. 2003-09-19 Jim Meyering <[email protected]> * version-etc.h: (version_etc): Rename parameter, authors, to written_by. * version-etc.c: (version_etc): Likewise. Combine fprintf and following putc('\n'. * version-etc.c, version-etc.h: Revert yesterday's changes. * long-options.c, long-options.h: Likewise. 2003-09-18 Jim Meyering <[email protected]> This lets translators provide better translations for the `Written by ...' part of --version output. * version-etc.c: Include stdarg.h, stdlib.h, string.h, and xalloc.h. (version_etc): Make this function variadic, with a NULL-terminated list of author name strings. (version_etc_va): New function. Suggestion from Gary V. Vaughan. * version-etc.h (version_etc_va): Declare it. * long-options.c: Include stdarg.h. (parse_long_options): Make this function variadic (authors), too. Call version_etc_va, not version_etc. * long-options.h (parse_long_options): Update prototype. 2003-09-16 Paul Eggert <[email protected]> * linebuffer.c (readlinebuffer): Return NULL immediately upon input error, instead of returning NULL the next time we are called (and therefore losing track of errno). 2003-09-15 Paul Eggert <[email protected]> * getndelim2.c (getndelim2): Don't trash errno when a read fails, so that the caller gets the proper errno. * readutmp.c (read_utmp): Likewise. Check for fstat error. Close stream and free storage when failing. 2003-09-14 Jim Meyering <[email protected]> * argmatch.c: Update from gnulib. * Makefile.am (libfetish_a_SOURCES): Add exit.h, strndup.h, time_r.c, time_r.h. 2003-09-13 Jim Meyering <[email protected]> * setenv.c, strcspn.c, strdup.c, strndup.c, strnlen.c, strpbrk.c: * strstr.c, strtod.c, strtoimax.c, tempname.c, unicodeio.c, userspec.c: * vasprintf.h, xgethostname.c, xreadlink.c, xstrdup.c, xstrndup.c: * xstrndup.h, xstrtod.c, xstrtol.c, yesno.c: Update from gnulib. * strndup.h: New file, from gnulib. * exit.h: New file, from GNU gettext, via gnulib. 2003-09-06 Paul Eggert <[email protected]> * time_r.c, time_r.h: New files. * mktime.c (my_mktime_localtime_r): Remove; all uses changed to __localtime_r. (__localtime_r) [!defined _LIBC]: New macro. Include <time_r.h>. (__mktime_internal) [!defined _LIBC]: Now extern, not static. * strftime.c (my_strftime_gmtime_r): Remove; all uses changed to __gmtime_r. (my_strftime_localtime_r): Remove; all uses changed to __localtime_r. (__gtime_r, __localtime_r) [!HAVE_TM_GMTOFF]: New macros. Include <time_r.h>. 2003-09-13 Jim Meyering <[email protected]> * strtol.c: Update from gnulib. 2003-09-12 Paul Eggert <[email protected]> * argmatch.c, xgethostname.c, xmalloc.c: Include exit.h. * obstack.c [!defined _LIBC]: Likewise. * argmatch.c (EXIT_FAILURE): Remove; now done by exit.h * exitfail.c, fatal.c, xgethostname.c, xmalloc.c: Likewise. * exitfail.c: Don't include stdlib.h; no longer needed. 2003-09-12 Paul Eggert <[email protected]> * error.c (error_tail): Assume vprintf. 2003-09-09 Paul Eggert <[email protected]> More K&R removal. * getloadavg.c (getloadavg, main): Define via prototypes. * getopt.h (struct option.name): Assume C89, and use 'const'. (getopt, etopt_long, getopt_long_only, _getopt_internal) [defined __GNU_LIBRARY__]: Assume C89, so we can always declare with a prototype. * getopt.c (const): Remove macro. Include <string.h> unconditionally. (my_index): Remove; all uses changed to strchr. (strlen): Remove decl. (exchange): Remove forward decl; no longer needed. (exchange, _getopt_initialize, _getopt_internal, getopt, main): Define with prototype. * getopt1.c (const): Remove macro. (getopt_long, getopt_long_only, main): Define with prototype. * getugroups.c: Include <string.h> unconditionally. * getusershell.c: Include <stdlib.h> unconditionally. (getusershell, setusershell, endusershell, readname, main): Define with prototypes. * group-member.c: Include group-member.h first. Include <stdlib.h> unconditionally. * hard-locale.c: Include hard-locale.h first. Include <stdlib.h>, <string.h> unconditionally. * hash.c (free, malloc): Remove decls. Include <stdlib.h> unconditionally. * human.c: Include <stdlib.h>, <string.h> unconditionally. (getenv): Do not declare. * idcache.c: Include <string.h> unconditionally. * long-options.c: Include long-options.h first, to test interface. Include <stdlib.h> unconditionally. * makepath.c: Include makepath.h first, to test interface. Include <stdlib.h> and <string.h> unconditionally. * linebuffer.c: Include <stdlib.h>. (free): Remove decl. * malloc.c: Include <stdlib.h>, for malloc; don't bother with stddef.h. rpl_malloc returns void *, not char *. * realloc.c (rpl_realloc): Likewise. Also, define with a prototype. * md5.h: Include <limits.h> unconditionally. (UINT_MAX_32_BITS): Don't worry about non-__STDC__ case. (__P): Remove; all uses removed. * md5.c: Include "md5.h" first. (md5_init_ctx, md5_read_ctx, md5_finish_ctx, md5_stream, md5_buffer, md5_process_bytes, md5_process_block): Define with prototypes. * sha.h (__P): Remove all uses. (It wasn't defined??) * sha.c: Include "sha.h" first. Include <stdlib.h>, <string.h> unconditionally. * memchr.c (__ptr_t): Remove; all uses changed to void *. * memcmp.c (__ptr_t): Likewise. * memrchr.c (__ptr_t): Likewise. * memchr.c, memcmp.c, memcoll.c, memrchr.c: Include <string.h> unconditionally. * memchr.c, memrchr.c: Include <limits.h> unconditionally. * memchr.c: Include <stdlib.h> unconditionally. * memchr.c (LONG_MAX): Remove. * memrchr.c (LONG_MAX): Likewise. * memchr.c (__memchr): Define via a prototype. * memrchr.c (__memrchr): Likewise. * memcmp.c (__P): Remove, and remove all uses. (memcmp_bytes, memcmp_common_alignment, memcmp_not_common_alignment): Remove forward decls; no longer needed. * memcpy.c, memmove.c, memset.c: Include <stddef.h>. Use types required by C89 in prototype. * mkdir.c: Include <stdlib.h>, <string.h> unconditionally. * savedir.c: Likewise. * mkdir.c (free): Remove decl. * rmdir.c (rmdir): Define with a prototype. * savedir.c: Include savedir.h first, to test interface. * mktime.c (STDC_HEADERS): Remove. Include <stdlib.h>, <string.h> unconditionally. * modechange.c: Include <stdlib.h> unconditionally. (malloc): Remove decl. * mountlist.c: Include <stdlib.h>, <string.h> unconditionally. (free): Remove decl. * obstack.h (PTR_INT_TYPE) [!defined __PTRDIFF_TYPE__]: Define to ptrdiff_t, without bothering to check HAVE_STDDEF_H. (This type really should be intptr_t, but that's a C99ism.) (_obstack_memcpy): Remove: all uses changed to memcpy. Include <string.h> unconditionally. (struct obstack): Assume __STDC__ for types of members chunkfun, freefun, extra_arg. (_obstack_newchunk, _obstack_free, _obstack_begin, _obstack_begin_1, _obstack_memory_used, obstack_alloc_failed_handler, obstack_init, obstack_begin, obstack_specify_allocation, obstack_specify_allocation_with_arg, obstack_chunkfun, obstack_freefun, obstack_free) [! (defined __STDC__ && __STDC__)]: Remove unprototyped decls and the macros that use them. * obstack.c (POINTER): Remove. All uses changed to void *. (obstack_alloc_failed_handler, CALL_CHUNKFUN, CALL_FREEFUN, _obstack_begin, _obstack_begin_1, _obstack_allocated_p) (defined __STDC__ && __STDC__)]: Remove nonprototyped code. Include <stdlib.h> unconditionally. (_obstack_begin, _obstack_begin_1, _obstack_newchunk, _obstack_allocated_p, _obstack_free, obstack_free, _obstack_memory_used, print_and_abort): Define using prototypes. (obstack_1grow, obstack_1grow_fast, obstack_alloc, obstack_base, obstack_blank, obstack_blank_fast, obstack_copy, obstack_copy0, obstack_finish, obstack_grow, obstack_grow0, obstack_make_room, obstack_next_free, obstack_object_size, obstack_room) [0]: Remove unused, unprototyped code. * path-concat.c: Include <stdlib.h>, <string.h> unconditionally. * physmem.c (physmem_total, physmem_available, main): Define with prototypes. * posixtm.c: Include <stdlib.h>, <string.h> unconditionally. (main): Define with a prototype. * posixver.c (getenv): Remove decl. * putenv.c (malloc): Returns void *, not char *. Include <string.h> unconditionally. (strchr, memcpy, NULL): Do not define. * readtokens.c: Include readtokens.h first, to test interface. Include <stdlib.h>, <string.h> unconditionally. (init_tokenbuffer): Define with a prototype. * regex.c (PARAMS): Remove. All uses removed. All uses of _RE_ARGS removed, too. Include <stddef.h>, <stdlib.h>, <string.h>, <limits.h> unconditionally. (bzero): Assume memset exists. (memcmp, memcpy, NULL): Remove. (SIGN_EXTEND_CHAR): Remove; all uses replaced by casts to signed char, or assignments to local vars of type signed char. (init_syntax_once, PREFIX(extract_number_and_incr), PREFIX(print_partial_compiled_pattern), PREFIX(print_compiled_pattern), PREFIX(print_double_string), convert_mbs_to_wcs, print_fastmap, re_set_syntax, PREFIX(regex_grow_registers), PREFIX(regex_compile), PREFIX(store_op1), PREFIX(store_op2), PREFIX(insert_op1), PREFIX(insert_op2), PREFIX(at_begline_loc_p), PREFIX(at_endline_loc_p), group_in_compile_stack, insert_space, wcs_compile_range, byte_compile_range, truncate_wchar, PREFIX(re_compile_fastmap), re_compile_fastmap, re_set_registers, re_search, re_search_2, PREFIX(re_search_2), re_match, re_match_2, count_mbs_length, wcs_re_match_2_internal, byte_re_match_2_internal, PREFIX(group_match_null_string_p), PREFIX(alt_match_null_string_p), PREFIX(common_op_match_null_string_p), PREFIX(bcmp_translate), re_compile_pattern, re_comp, re_exec, regcomp, regexec, regerror, regfree, PREFIX(extract_number)): Define with prototype. Remove now-unnecessary declaration, if any. (byte_compile_range, PREFIX(regex_compile), re_comp, re_exec, regcomp, regexec): Remove now-unnecessary casts among pointer types. * regex.h (_RE_ARGS): Remove. All uses removed. * rename.c: Include <stdlib.h>, <string.h> unconditionally. (free): Remove decl. * rpmatch.c: Include <stdlib.h> unconditionally. * save-cwd.c: Include <stdlib.h> unconditionally. * xgetcwd.c: Likewise. * stat.c: Include <stdlib.h>, <string.h> unconditionally. (free): Remove decl. The following changes are not K&R related: * group-member.h: Include <sys/types.h>, so that this file is self-contained. * makepath.h: Likewise. * getusershell.c (readname, default_index, line_size, readname): Use size_t, not int, for sizes. (readname): If the size overflows, report an error instead of looping forever. 2003-09-09 Derek Robert Price <[email protected]> * getndelim2.c: Assume stdlib.h per the C89 spec. 2003-09-08 Paul Eggert <[email protected]> Assume C89 or better; remove K&R cruft. A few of these changes were first proposed by Derek Robert Price in <http://mail.gnu.org/archive/html/bug-gnulib/2003-07/msg00105.html>. * addext.c: Include <string.h> unconditionally. * backupfile.c: Include <string.h>, <stdlib.h> unconditionally. Don't declare getenv or malloc. * alloca.c: Include <string.h>, <stdlib.h> unconditionally. (POINTER_TYPE, pointer): Remove; all uses changed to void *. (NULL): Remove. (find_stack_direction, alloca): Use prototypes. * atexit.c (atexit): Define using a prototype. * basename.c, dirname.c, stripslash.c: Include <string.h> unconditionally. * bcopy.c: Include <stddef.h>. (bcopy): Define with prototype, using 'const' and 'void' and 'size_t'. * canon-host.c: Include <stdlib.h>, <string.h> unconditionally. * error.h (error, error_at_line, error_print_progname) [! (defined (__STDC__) && __STDC__)]: Remove decls. * error.c: Include error.h first, to check interface. Include <stdarg.h>, <stdlib.h>, <string.h> unconditionally. (VA_START): Remove; all uses changeed to va_start. (exit, strerror): Remove decls. (error_print_progname): Prototype uncondionally. Don't include <errno.h>; no longer needed. (private_strerror): Remove. (error_tail): Always define. (error, error_at_line): Assume C89 or better; always use prototypes. * euidaccess.c (main): Define with a prototype. * exclude.c: Include <stdlib.h>, <string.h> unconditionally. * exitfail.c: Include <stdlib.h> unconditionally. * fnmatch_.h (__P): Remove. All uses changed to assume prototypes. * fnmatch.c: Include fnmatch.h first, to test interface. Include <string.h>, <stddef.h>, <stdlib.h> unconditionally. (getenv): Remove decl. (fnmatch): Define using a prototype. * fnmatch_loop.c (FCT): Remove forward decl; no longer needed. (FCT): Define using a prototype. * getdate.y: Include <stdlib.h>, <string.h> unconditionally. * gethostname.c: Include <stddef.h>. (gethostname): Define with prototype. Length is size_t, not int. 2003-09-08 Paul Eggert <[email protected]> * utime.c [!HAVE_UTIMES_NULL]: Include <sys/stat.h>, <fcntl.h>. (utime_null): Fix typo: 'st' was sometimes called 'sb'. 2003-09-09 Jim Meyering <[email protected]> * getversion.c: Remove unused file. Reported by Paul Eggert. ********************************************************************** m4/ChangeLog ********************************************************************** 2003-12-20 Jim Meyering <[email protected]> * jm-macros.m4: Don't require UTILS_SYS_OPEN_MAX. * open-max.m4 (UTILS_SYS_OPEN_MAX): Remove file. No longer used. * lib-check.m4 (jm_LIB_CHECK): Do not set LIB_CRYPT to the value, $ac_cv_search_crypt, if it's "none required". 2003-12-19 Jim Meyering <[email protected]> * clock_time.m4 (gl_CLOCK_TIME): Don't set LIB_CLOCK_GETTIME if no library is required. 2003-12-18 Jim Meyering <[email protected]> * search-libs.m4 (AC_SEARCH_LIBS): Remove file/macro, now that this replacement is no longer needed. Besides, this macro has no effect with autoconf-2.58, since `undefine' in package-supplied .m4 files is no longer honored. Reported by Andreas Schwab. Remove now-unnecessary (and unused) files. They also used `undefine'. * isc-posix.m4 (AC_ISC_POSIX): Remove file. * getloadavg.m4 (gl_FUNC_GETLOADAVG): Remove file. * prereq.m4 (jm_PREREQ): Require AC_FUNC_GETLOADAVG, not gl_FUNC_GETLOADAVG. 2003-11-08 Jim Meyering <[email protected]> * inttypes.m4: Sync from gnulib (this file was previously empty, to work around some sort of problem). 2003-11-08 Alexandre Duret-Lutz <adl-mXXj517/[email protected]> * nanosleep.m4 (jm_FUNC_NANOSLEEP): Do not set LIB_NANOSLEEP to the value, $ac_cv_search_nanosleep, if it's "none required". 2003-11-05 Paul Eggert <[email protected]> * jm-macros.m4 (jm_CHECK_ALL_TYPES): Check for uintptr_t. 2003-11-05 Jim Meyering <[email protected]> * jm-macros.m4 (jm_MACROS): Require gl_FUNC_FREE. * free.m4: New file, from gnulib. * exitfail.m4, host-os.m4, strndup.m4: Update from gnulib. * jm-macros.m4 (jm_MACROS): Require autoconf-2.58. (AC_LANG_SOURCE): Remove definition, now that we require autoconf-2.58. 2003-10-13 Paul Eggert <[email protected]> * xalloc.m4: Import latest version from gnulib. 2003-10-06 Jim Meyering <[email protected]> * ftw.m4: Remove now-unused file. 2003-10-05 Jim Meyering <[email protected]> * jm-macros.m4 (jm_MACROS): Don't require AC_FUNC_FTW. 2003-09-17 Paul Eggert <[email protected]> Update from gnulib. * extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Call AC_BEFORE first, to avoid spurious warnings like "AC_RUN_IFELSE was called before gl_USE_SYSTEM_EXTENSIONS" from autoreconf. 2003-09-12 Paul Eggert <[email protected]> More patches to assume C89 or better. * mkstemp.m4 (jm_PREREQ_TEMPNAME): Do not require standard C headers. * strdup.m4 (gl_PREREQ_STRDUP): Likewise. * userspec.m4 (gl_USERSPEC): Likewise. * xalloc.m4 (gl_PREREQ_XMALLOC): Likewise. * xstrtod.m4 (gl_XSTRTOD): Likewise. * xstrtol.m4 (gl_PREREQ_XSTRTOL): Likewise. * strftime.m4 (_jm_STRFTIME_PREREQS): Don't check for limits.h, memcpy, memset. (jm_FUNC_GNU_STRFTIME): Don't require standard C headers. * strtod.m4 (gl_FUNC_STRTOD): Do not check for float.h. * strtoimax.m4 (gl_PREREQ_STRTOIMAX): Do not check for stdlib.h, strtol. * strtol.m4 (gl_FUNC_STRTOL): Do not check for limits.h. * userspec.m4 (gl_USERSPEC): Do not check for string.h. * xstrtol.m4 (gl_PREREQ_XSTRTOL): Do not check for string.h, strtol, strtoul. 2003-09-12 Paul Eggert <[email protected]> * error.m4 (gl_ERROR): Don't check for vprintf. Require AC_FUNC_STRERROR_R rather than invoking it. 2003-09-12 Paul Eggert <[email protected]> * check-decl.m4 (jm_CHECK_DECLS): Include <string.h>, <stdlib.h> unconditionally. * closeout.m4 (gl_CLOSEOUT): Don't check for stdlib.h. * gettimeofday.m4 (AC_FUNC_GETTIMEOFDAY_CLOBBER): Include <string.h>, <stdlib.h> unconditionally. * lstat.m4 (gl_PREREQ_LSTAT): Don't check for stdlib.h, free. * readdir.m4 (GL_FUNC_READDIR): Don't check for string.h. * readutmp.m4 (gl_PREREQ_READUTMP): Don't check for standard C headers or for string.h. * strtoumax.m4 (gl_PREREQ_STRTOUMAX): Don't check for stdlb.h or strtoul. * extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Require AC_AIX and AC_MINIX, too, so that their extensions are available. * prereq.m4 (jm_PREREQ_ADDEXT): Remove. All uses removed. This macro has been superseded by gl_BACKUPFILE. 2003-09-12 Jim Meyering <[email protected]> * prereq.m4 (jm_PREREQ): Require gl_READTOKENS, gl_MD5, gl_MAKEPATH, gl_LONG_OPTIONS, and gl_IDCACHE, gl_GETUGROUPS. * readtokens.m4: New file, from gnulib * md5.m4: Likewise. * makepath.m4: Likewise. * long-options.m4: Likewise. * idcache.m4: Likewise. * getugroups.m4: Likewise. 2003-09-11 Paul Eggert <[email protected]> More patches to assume C89 or better. * strndup.m4 (gl_PREREQ_STRNDUP): Remove STDC_HEADERS check. * strnlen.m4 (gl_PREREQ_STRNLEN): Don't check for memory.h, string.h, memchr, STDC_HEADERS. 2003-09-10 Bruno Haible <[email protected]> * strcspn.m4 (gl_PREREQ_STRCSPN): Remove <string.h> check. * strpbrk.m4 (gl_PREREQ_STRPBRK): Remove <string.h> check. * strstr.m4 (gl_PREREQ_STRSTR): Remove <string.h> check. * unicodeio.m4 (gl_UNICODEIO): Remove <string.h> check. * xreadlink.m4 (gl_XREADLINK): Remove <stdlib.h> check. * yesno.m4 (gl_YESNO): Remove <stdlib.h> check. 2003-09-09 Paul Eggert <[email protected]> * getcwd.m4 (AC_FUNC_GETCWD_NULL): Don't check for stdlib.h. * getopt.m4 (gl_GETOPT): Don't check for string.h. * getusershell.m4 (gl_PREREQ_GETUSERSHELL): Do not check for stdlib.h. * group-member.m4 (gl_PREREQ_GROUP_MEMBER): Do not require standard C headers. * hard-locale.m4 (gl_HARD_LOCALE): Do not check for stdlib.h, string.h. * hash.m4 (gl_HASH): Do not check for stdlib.h, malloc, free. * human.m4 (gl_HUMAN): Do not check for stdlib.h, string.h, getenv. * sha.m4 (gl_SHA): Don't check for standard Cheaders, memcpy. * memchr.m4 (jm_PREREQ_MEMCHR): Don't check for limits.h, stdlib.h. * memcmp.m4 (gl_PREREQ_MEMCMP): Don't check for string.h. * memcoll.m4 (gl_MEMCOLL): Likewise. * memrchr.c (gl_PREREQ_MEMRCHR): Don't check for limits.h. * mkdir-slash.m4 (gl_PREREQ_MKDIR): Don't check for stdlib.h, string.h, free. * mktime.m4 (gl_PREREQ_MKTIME): Don't check for standard C headers. * modechange.m4 (gl_MODECHANGE): Don't check for standard C headers. * mountlist.m4 (gl_PREREQ_MOUNTLIST_EXTRA): Don't check for standard C headers, or for string.h. * obstack.m4 (gl_OBSTACK): Don't check for stddefe.h, string.h. (gl_PREREQ_OBSTACK): Don't check for stdlib.h. * path-concat.m4 (gl_PATH_CONCAT): Don't check for standard C headers, memory.h, stdlib.h, string.h, strings.h. * posixtm.m4 (gl_POSIXTM): Don't check for stdlib.h, string.h. * posixver.m4 (gl_POSIXVER): Don't check for getenv. * putenv.m4 (gl_PREREQ_PUTENV): Don't check for string.h, memcpy, strchr. * regex.m4 (jm_PREREQ_REGEX): Do not check for limits.h, string.h. * rename.m4 (gl_PREREQ_RENAME): Do not check for stdlib.h, string.h, free. * rpmatch.m4 (gl_PREREQ_RPMATCH): Don't check for standard C headers. * save-cwd.m4 (gl_SAVE_CWD): Don't check for standard C headers. * savedir.m4 (gl_SAVEDIR): Don't check for standard C headers. * xgetcwd.m4 (gl_XGETCWD): Don't check for stdlib.h. 2003-09-09 Derek Robert Price <[email protected]> * getndelim2.m4 (gl_PREREQ_GETNDELIM2): Assume stdlib.h per the C89 spec. 2003-09-08 Paul Eggert <[email protected]> Assume C89 or better; remove K&R cruft. * alloca.m4 (gl_PREREQ_ALLOCA): Don't check for stdlib.h, string.h. * backupfile.m4 (gl_BACKUPFILE): Don't check for stdlib.h, string.h, getenv, malloc. * dirname.m4 (gl_DIRNAME): Don't check for string.h or C standard headers. * canon-host.m4 (gl_CANON_HOST): Don't check for string.h, stdlib.h. * error.m4 (jm_PREREQ_ERROR): Do not require STDC headers, and do not check for strerror. * exclude.m4: Do not check for stdlib.h, string.h, strings.h. * exitfail.m4 (gl_EXITFAIL): Do not check for stdlib.h. * fnmatch.m4 (gl_PREREQ_FNMATCH_EXTRA): Remove. All uses removed. * getdate.m4 (gl_GETDATE): Don't check for stdlib.h or string.h. ********************************************************************** doc/ChangeLog ********************************************************************** 2003-12-20 Jim Meyering <[email protected]> * coreutils.texi (du invocation): Describe new option: -0, --null. 2003-12-03 Paul Eggert <[email protected]> * coreutils.texi (What information is listed, chroot invocation): Adjust example 'ls' output to match new behavior with narrower output columns. (The cut command): Remove example that cut the output of 'ls -l'. The output was incorrect even with the old 'ls', and the whole idea of using 'cut' on 'ls -l' output is bogus anyway. 2003-11-24 Paul Eggert <[email protected]> Parse floating-point operands and options in the C locale. POSIX requires this for printf, and we might as well be consistent elsewhere (tail, sleep, seq). * coreutils.texi (tail invocation, printf invocation, sleep invocation, seq invocation): Document this. 2003-11-24 Jim Meyering <[email protected]> * coreutils.texi (Traversing symlinks, Treating / specially): New sections. (rm invocation, chown invocation, chmod invocation, chgrp invocation): Describe new options, --preserve-root and --no-preserve-root. 2003-11-11 Jim Meyering <[email protected]> * coreutils.texi (chown invocation) [chownchgrpoptions]: New macro describing -H, -L, -P options. Use it here. (chgrp invocation): And here. 2003-11-09 Jim Meyering <[email protected]> * coreutils.texi (dd invocation): Fix typo in example. 2003-10-15 Jim Meyering <[email protected]> * coreutils.texi (ln invocation): Note that --directory, -d, -F probably won't work even for superuser. Suggestion from Dan Jacobson. 2003-09-29 Paul Eggert <[email protected]> * coreutils.texi (csplit invocation): The regexp offset need not have a sign; POSIX requires support for signless offets. 2003-10-03 Jim Meyering <[email protected]> * coreutils.texi (du invocation): Describe -P, --no-dereference. 2003-09-28 Jim Meyering <[email protected]> * coreutils.texi (Translating): Correct typo in menu description. From A Costa. ********************************************************************** po/ChangeLog ********************************************************************** 2003-11-09 Jim Meyering <[email protected]> * POTFILES.in: Add lib/root-dev-ino.h. 2003-10-17 Jim Meyering <[email protected]> * POTFILES.in: Add lib/xfts.c. 2003-09-22 Jim Meyering <[email protected]> * Makevars (XGETTEXT_OPTIONS): Add --from-code=3DUTF-8 to accommodate the non-ASCII comment to translators in ptx.c regarding the author's name. --=-=-= Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/5wyV/dLerNMzy6ERAvFXAJ4+nDgkrt372s4URf432DDPxKocZwCcDkia 9g26n/5U/z0k7whwcF3ehvg= =CEdZ -----END PGP SIGNATURE----- --=-=-=-- --===============1978380349== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Coreutils-announce mailing list Coreutils-announce-mXXj517/[email protected] http://mail.gnu.org/mailman/listinfo/coreutils-announce --===============1978380349==--