platform/upstream/coreutils.git
13 years agobuild: update gnulib for linux 2.6.9 nanosleep workaround
Jim Meyering [Sat, 13 Nov 2010 09:12:49 +0000 (10:12 +0100)]
build: update gnulib for linux 2.6.9 nanosleep workaround

Also, do the following to avoid "make syntax-check" failure
induced by new rules.
* .x-sc_bindtextdomain: Exempt files with an #ifdef'd "main".
* Makefile.am: Add this file.

13 years agomaint: remove fstimeprec (variable precision time stamp) support
Jim Meyering [Sat, 13 Nov 2010 07:04:13 +0000 (08:04 +0100)]
maint: remove fstimeprec (variable precision time stamp) support

The implementation of variable-precision time stamps relied
on heuristics that made the output subtly nondeterministic,
or at least hard to reproduce:
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/21531/focus=21538
So, for now at least, we're removing that feature.
* bootstrap.conf (gnulib_modules): Remove fstimeprec.
* gl/lib/fstimeprec.c, gl/lib/fstimeprec.h: Remove files.
* gl/modules/fstimeprec, gl/modules/fstimeprec-tests: Likewise.
* gl/tests/test-fstimeprec.c: Remove file.

13 years agostat: do not provide variable precision time stamps
Jim Meyering [Sat, 13 Nov 2010 07:02:02 +0000 (08:02 +0100)]
stat: do not provide variable precision time stamps

* src/stat.c: Don't include fstimeprec.c.
(out_epoch_sec): Don't call fstimeprec.
* NEWS: Update description.
* doc/coreutils.texi: Likewise.

13 years agocsplit: do not rely on undefined behavior in printf formats
Paul Eggert [Thu, 11 Nov 2010 04:34:52 +0000 (20:34 -0800)]
csplit: do not rely on undefined behavior in printf formats

* doc/coreutils.texi (csplit invocation): Say that %d and %i are
aliases for %u.
* src/csplit.c (FLAG_THOUSANDS, FLAG_ALTERNATIVE): New constants.
(get_format_flags): Now take char const * and int * and return
size_t.  It now stores info about the flags instead of merely
scanning them.  Also, it handles '0' correctly.  Drop support for
the undocumented '+' and ' ' flags since the value is unsigned.
Add support for the (undocumented) "'" flag.  All uses changed.
(get_format_width, get_format_prec): Remove.
(check_format_conv_type): Renamed from get_format_conv_type, with
a different signature.  It now converts the format to one that is
compatible with unsigned int, and checks flags.  All uses changed.
(max_out): Have snprintf compute the number of bytes needed rather
than attempting to do it ourselves (which doesn't work portably
with outlandish formats such as %4294967296d).
(check_format_conv_type, main): Check for overflow in size
calculations.  Don't assume size_t fits in unsigned int.
* tests/misc/csplit: Check for proper handling of flags, with
%0#6.3x.  Coreutils 8.6 mishandles this somewhat-weird example.

13 years agocsplit: fix a memory leak per input buffer
Pádraig Brady [Wed, 10 Nov 2010 14:35:17 +0000 (14:35 +0000)]
csplit: fix a memory leak per input buffer

* src/csplit.c (free_buffer): Also free the line offsets buffers
(remove_line): Also free the containing structure
* tests/misc/csplit-heap: A new test to trigger with leaks of
this magnitude.
* tests/Makefile.am: Reference the new test
* NEWS: Mention the fix
Reported by David Hofstee

13 years agotests: fix comments and --version invocation in new test
Jim Meyering [Wed, 10 Nov 2010 20:54:57 +0000 (21:54 +0100)]
tests: fix comments and --version invocation in new test

* tests/misc/csplit-1000: Fix comments and --version invocation.

13 years agocsplit: avoid buffer overrun when writing more than 999 files
Jim Meyering [Wed, 10 Nov 2010 12:53:38 +0000 (13:53 +0100)]
csplit: avoid buffer overrun when writing more than 999 files

Without this fix, seq 1000 | csplit - /./ '{*}' would write
the NUL-terminated file name, xx1000, into a buffer of size 6.
* src/csplit.c (main): Use properly sized file name buffer.
* NEWS (Bug fixes): Mention it.
* tests/misc/csplit-1000: New test to trigger the bug.
* tests/Makefile.am (TESTS): Add misc/csplit-1000.

13 years agotests: avoid portability problem with dash vs. symlinked ttys
Pádraig Brady [Tue, 9 Nov 2010 12:43:20 +0000 (12:43 +0000)]
tests: avoid portability problem with dash vs. symlinked ttys

* tests/mv/i-3: Adjust so that the symlink is resolved
before redirecting to the background command, as otherwise
the stdin descriptor passed to the command will fail the
isatty() or ttyname() test.

13 years agotests: avoid portability problem with dash vs. local v=$splittable_val
Pádraig Brady [Mon, 8 Nov 2010 10:26:08 +0000 (11:26 +0100)]
tests: avoid portability problem with dash vs. local v=$splittable_val

* tests/init.cfg (retry_delay_): Adjust awk script to print a single
floating point value, rather than many.

13 years agotests: don't disqualify FreeBSD 8.1's /bin/sh just yet,
Jim Meyering [Sun, 7 Nov 2010 13:23:32 +0000 (14:23 +0100)]
tests: don't disqualify FreeBSD 8.1's /bin/sh just yet,

because dash-0.5.6-2.fc14.x86_64 would also be disqualified.
This reverts part of yesterday's commit 6c058b2d, "tests: avoid
failure due to bug in FreeBSD 8.1's /bin/sh".  Note that the offending
aspect of those shells is not officially a bug, since "local" is not
specified by POSIX.  However, it is very unintuitive that prepending
"local" to an existing, standards-compliant assignment would evoke
such a fundamental change in semantics.
* tests/init.sh: Remove snippet requiring sane "local" support.
Upstream dash bug report:
http://thread.gmane.org/gmane.comp.shells.dash/419

13 years agostat: do not rely on undefined behavior in printf formats
Paul Eggert [Sat, 6 Nov 2010 20:57:08 +0000 (13:57 -0700)]
stat: do not rely on undefined behavior in printf formats

* src/stat.c (digits, printf_flags): New static vars.
(make_format): New function.
(out_string, out_int, out_uint, out_uint_o, out_uint_x):
(out_minus_zero): Use it to avoid undefined behavior when invoking
printf.
(print_it): Check for invalid conversion specifications such as
%..X and %1-X, which would otherwise rely on undefined behavior
when invoking printf.
* tests/misc/stat-nanoseconds: Check that the "I" printf flag
doesn't mess up in the C locale, as it formerly did on non-GNU
hosts.

13 years agotests: avoid failure due to bug in FreeBSD 8.1's /bin/sh
Jim Meyering [Sat, 6 Nov 2010 14:20:06 +0000 (15:20 +0100)]
tests: avoid failure due to bug in FreeBSD 8.1's /bin/sh

* tests/init.sh: Arrange not to accept FreeBSD 8.1's /bin/sh, since
it fails this test: /bin/sh -c 'f(){ local s=$IFS; test -n "$s"; }; f'
* tests/init.cfg (sanitize_path_): Stop-gap measure to work around
a bug in FreeBSD 8.1's /bin/sh.  We'll un-do this change once all
300+ tests use init.sh.

13 years agobuild: update gnulib to latest for strtod and icc fixes
Jim Meyering [Sat, 6 Nov 2010 07:57:44 +0000 (08:57 +0100)]
build: update gnulib to latest for strtod and icc fixes

13 years agostat: use e.g. %.3X instead of %X.%3:X for sub-second precision
Paul Eggert [Sat, 6 Nov 2010 02:35:12 +0000 (19:35 -0700)]
stat: use e.g. %.3X instead of %X.%3:X for sub-second precision

* NEWS: Document this.
* doc/coreutils.texi (stat invocation): Likewise.
* gl/lib/fstimeprec.c, gl/lib/fstimeprec.h, gl/modules/fstimeprec:
* gl/modules/fstimeprec-tests, gl/tests/test-fstimeprec.c:
New files.
* bootstrap.conf (gnulib_modules): Add fstimeprec.
* src/stat.c: Include fstimeprec.h.  Don't include xstrtol.h.
(decimal_point, decimal_point_len): New static vars.
(main): Initialize them.
(epoch_sec, out_ns): Remove.
(out_int, out_uint): Now returns whatever printf returned.
(out_minus_zero, out_epoch_secs): New functions.
(print_stat): Use out_epoch_sec instead of out_ns and epoch_sec.
(print_stat, print_it, usage): Remove the %:X-style formats.
* tests/misc/stat-nanoseconds: Set TZ=UTC0 to avoid problems
with weird time zones.  Use a time stamp near the Epoch so that we
don't have to worry about leap seconds.  Redo test cases to match
new behavior.
* tests/touch/60-seconds: Change %Y.%:Y to %.9Y, to adjust to
new behavior.

13 years agocp: NEWS entry for previous fix
Eric Blake [Thu, 4 Nov 2010 16:49:21 +0000 (10:49 -0600)]
cp: NEWS entry for previous fix

Resolves bug#7324

* NEWS: Document the extent of the Solaris crash.

13 years agocp, mv, touch: fix file time manipulation on Solaris 10
Eric Blake [Thu, 4 Nov 2010 14:16:04 +0000 (08:16 -0600)]
cp, mv, touch: fix file time manipulation on Solaris 10

* gnulib: Update to latest, for futimens fix.
* .gitignore: Ignore another recent gnulib-generated file.

13 years agobuild: update gnulib to latest
Jim Meyering [Wed, 3 Nov 2010 12:11:21 +0000 (13:11 +0100)]
build: update gnulib to latest

13 years agostat: revert %X-%Y-%Z change; use e.g., %:X to print fractional seconds
Jim Meyering [Thu, 21 Oct 2010 16:41:24 +0000 (18:41 +0200)]
stat: revert %X-%Y-%Z change; use e.g., %:X to print fractional seconds

This reverts part of the recent commit 9069af45,
"stat: print timestamps to full resolution", which made %X, %Y, %Z
print floating point numbers.  We prefer to retain portability of
%X, %Y and %Z uses, while still providing access to full-resolution
time stamps via modified format strings.  Also make the new
%W consistent.
* src/stat.c: Include "xstrtol.h".
(print_it): Accept a new %...:[XYZ] format directive,
e.g., %:X, to print the nanoseconds portion of the corresponding time.
For example, %3.3:Y prints the zero-padded, truncated, milliseconds
part of the time of last modification.
(print_it): Update print_func signature to match.
(neg_to_zero): New helper function.
(epoch_time): Remove function; replace with...
(epoch_sec): New function; use timetostr.
(out_ns): New function.  Use "09" only when no other modifier
is specified.
(print_statfs): Change type of "m" to unsigned int,
now that it must accommodate values larger than 255.
(print_stat): Likewise.
Map :X to a code of 'X' + 256.  Likewise for Y, Z and W.
(usage): Update.
* tests/touch/60-seconds: Use %Y.%:Y in place of %Y.
* tests/misc/stat-nanoseconds: New file.
* tests/Makefile.am (TESTS): Add it.
* NEWS (Changes in behavior): Mention this.
With improvements by Pádraig Brady.
Thanks to Andreas Schwab for raising the issue.

13 years agotests: fix a false positive for 32 bit on 64 bit hosts
Nix [Mon, 1 Nov 2010 15:46:01 +0000 (15:46 +0000)]
tests: fix a false positive for 32 bit on 64 bit hosts

* tests/ls/stat-free-symlinks: strace currently outputs an
informational message about arch difference to stdout.
Therefore we need to strip that before comparison.

13 years agomaint: remove an unnecessary FIXME comment
Patrick W. Plusnick II [Thu, 28 Oct 2010 12:54:53 +0000 (14:54 +0200)]
maint: remove an unnecessary FIXME comment

* src/seq.c (terminator): This does not need to be specifiable
via an option.  Remove the FIXME comment.

13 years agocp: make --attributes-only override --reflink completely
Pádraig Brady [Tue, 26 Oct 2010 16:55:10 +0000 (17:55 +0100)]
cp: make --attributes-only override --reflink completely

* doc/coreutils.texi (cp invocation): Change the description slightly
so as users might not immediately discount using this option.
Mention that --reflink is overridden by the other linking options and
--attributes-only, and give an example where this might be useful.
* src/copy.c (copy_internal): Bypass the reflink if
--attributes-only is specifed.
* tests/cp/reflink-perm: Ensure both --reflink modes are
overridden by --attributes-only.
* NEWS: Mention the change in behavior.
Reported by Jim Meyering.

13 years agotests: mention that btrfs also causes failure of misc/ls-time
Jim Meyering [Tue, 26 Oct 2010 14:34:51 +0000 (16:34 +0200)]
tests: mention that btrfs also causes failure of misc/ls-time

* tests/misc/ls-time: Mention that this test also fails on btrfs,
at least until http://bugzilla.redhat.com/591068 is addressed.

13 years agomaint: update THANKS
Eric Blake [Mon, 25 Oct 2010 17:51:45 +0000 (11:51 -0600)]
maint: update THANKS

* THANKS: Update.

13 years agodate: correct typos in date --help
Tobias Quathamer [Thu, 21 Oct 2010 07:15:00 +0000 (09:15 +0200)]
date: correct typos in date --help

* src/date.c (usage): Use "e.g." correctly.

13 years agotail: support rechecking currently missing remote dirs
Pádraig Brady [Sun, 24 Oct 2010 13:02:12 +0000 (14:02 +0100)]
tail: support rechecking currently missing remote dirs

src/tail.c (main): As an optimization, don't bother checking
for stdin or remote files, when ---disable-inotify is specified.
To improve the fix in commit 61b77891, set the disable_inotify
flag when we fall back to polling, so that we recheck remote files.
NEWS: Mention the fix

13 years agodu: don't print junk when diagnosing out-of-range time stamps
Paul Eggert [Sun, 24 Oct 2010 00:20:01 +0000 (17:20 -0700)]
du: don't print junk when diagnosing out-of-range time stamps

* src/du.c (show_date): Fix call to fputs with a buffer that
contains some uninitialized data.
* tests/Makefile.am (TESTS): Add du/big-timestamp.
* tests/du/bigtime: New file, which checks for the bug.

13 years agodoc: add a cross reference from cat's man page to "tac"
Rodrigo Campos [Tue, 19 Oct 2010 22:48:46 +0000 (19:48 -0300)]
doc: add a cross reference from cat's man page to "tac"

* man/cat.x: See also "tac".

13 years agotests: trigger and test for md5sum's new diagnostics
Jim Meyering [Tue, 19 Oct 2010 07:19:59 +0000 (09:19 +0200)]
tests: trigger and test for md5sum's new diagnostics

* tests/misc/md5sum: Test for new diagnostics.

13 years agomd5sum: print a summary warning for improperly formatted lines
Benno Schulenberg [Mon, 18 Oct 2010 20:35:39 +0000 (22:35 +0200)]
md5sum: print a summary warning for improperly formatted lines

And remove the now-superfluous totals from the other two warnings,
so the plurals will also work in other languages than English.

* src/md5sum.c (digest_check): Change as above.
* tests/misc/md5sum (check-quiet2): Adjust accordingly.

13 years agobuild: enable -Werror for gnulib-tests, too
Jim Meyering [Sun, 17 Oct 2010 17:08:44 +0000 (19:08 +0200)]
build: enable -Werror for gnulib-tests, too

* gnulib: Update to latest for warning-free tests.
* gnulib-tests/Makefile.am (AM_CFLAGS): Uncomment $(WERROR_CFLAGS),
now that these tests are warning-free.

13 years agomaint: update bootstrap from gnulib
Jim Meyering [Sun, 17 Oct 2010 13:32:03 +0000 (15:32 +0200)]
maint: update bootstrap from gnulib

* bootstrap: Update from gnulib.

13 years ago.gitignore: anchor patterns
Jim Meyering [Sun, 17 Oct 2010 10:47:38 +0000 (12:47 +0200)]
.gitignore: anchor patterns

* .gitignore: Anchor most patterns.  Remove .tarball-version.
* doc/.gitignore: Anchor all patterns.
Remove getdate.texi and get_date.texi.

13 years agotests: sort-float: avoid spurious test failure on ppc/ppc64
Jim Meyering [Sat, 16 Oct 2010 18:18:19 +0000 (20:18 +0200)]
tests: sort-float: avoid spurious test failure on ppc/ppc64

* tests/misc/sort-float: On systems with DBL_MIN < LDBL_MIN,
this test would fail because the expected output was not sorted.
Detect that case, and if needed, reverse those two values.

13 years agofold: fix fadvise hint
Andreas Schwab [Sat, 16 Oct 2010 11:32:04 +0000 (13:32 +0200)]
fold: fix fadvise hint

* src/fold.c (fold_file): Apply fadvise to istream, not stdin.
This bug would have inhibited the fadvise optimization when not
reading from standard input.

13 years agopost-release administrivia
Jim Meyering [Fri, 15 Oct 2010 15:06:56 +0000 (17:06 +0200)]
post-release administrivia

* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.

13 years agoversion 8.6 v8.6
Jim Meyering [Fri, 15 Oct 2010 14:50:15 +0000 (16:50 +0200)]
version 8.6

* NEWS: Record release date.

13 years agobuild: update gnulib for vasnprintf fix
Jim Meyering [Fri, 15 Oct 2010 05:49:54 +0000 (07:49 +0200)]
build: update gnulib for vasnprintf fix

13 years agobug#7213: [PATCH] sort: fix buffer overrun on 32-bit hosts when warning re obsolete...
Paul Eggert [Thu, 14 Oct 2010 07:12:23 +0000 (00:12 -0700)]
bug#7213: [PATCH] sort: fix buffer overrun on 32-bit hosts when warning re obsolete keys

* src/sort.c (key_warnings): Local buffer should be of size
INT_BUFSIZE_BOUND (uintmax_t), not INT_BUFSIZE_BOUND (sword).
This bug was discovered by running 'make check' on a 32-bit
Solaris 8 sparc host, using Sun cc.  I saw several other instances
of invoking umaxtostr on a buffer declared to be of size
INT_BUFSIZE_BOUND (VAR), and these instances should at some point
be replaced by INT_BUFSIZE_BOUND (uintmax_t) too, as that's a
less error-prone style.

13 years agotests: work around portability and clock-skew problems
Paul Eggert [Thu, 14 Oct 2010 06:39:50 +0000 (23:39 -0700)]
tests: work around portability and clock-skew problems

* tests/misc/ls-misc (push_ls_colors): Don't assume LS_COLORS
is set.  This part of the fix is by Jim Meyering.
(sl-dangle2, sl-dangle3, sl-dangle4, sl-dangle5): Don't assume
that newly-created files will have time stamps in the past.  They
might not, due to clock skew, if the file systems are remote.
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/21322/focus=21346

13 years agoinstall: avoid warning with Solaris 10 cc
Paul Eggert [Thu, 14 Oct 2010 03:44:12 +0000 (20:44 -0700)]
install: avoid warning with Solaris 10 cc

* src/install.c (extra_mode): Don't assign ~S_IRWXUGO & ~S_IFMT
to a mode_t variable, as the number might be too big to fit.
Solaris 10 cc warns about this, and the C standard says it
has undefined behavior.

13 years agombsalign: avoid warning with Solaris 10 cc
Paul Eggert [Thu, 14 Oct 2010 03:39:28 +0000 (20:39 -0700)]
mbsalign: avoid warning with Solaris 10 cc

* gl/lib/mbsalign.c: Include <stdint.h> for SIZE_MAX.
Use SIZE_MAX rather than (size_t) -1, to avoid warning for
"size_t x = -1" on Solaris 10 cc.
* gl/modules/mbsalign (Depends-on): Add stdint.

13 years agosort: fix unportable cast of unsigned char * -> char *
Paul Eggert [Thu, 14 Oct 2010 03:35:50 +0000 (20:35 -0700)]
sort: fix unportable cast of unsigned char * -> char *

* src/sort.c (fold_toupper): Change this back from char to
unsigned char, fixing a portability issue introduced in commit
59e2e55d0f154a388adc9bac37d2b45f2ba971f8 dated February 26, as the
C Standard doesn't let you convert from unsigned char * to char *
without a cast, and the (in theory more portable) style here is to
convert char values, not pointer values.
(getmonth): Convert char to unsigned char when needed for
comparison.

13 years agobuild: prepare to enable -Werror also for gnulib-tests/
Jim Meyering [Wed, 13 Oct 2010 09:20:18 +0000 (11:20 +0200)]
build: prepare to enable -Werror also for gnulib-tests/

* configure.ac (GNULIB_WARN_CFLAGS): Define new variable, for use
in gnulib-tests.
* gnulib-tests/Makefile.am: Disable specific -W___ options,
but only for a few specific offending tests:
(test_xvasprintf_CFLAGS): Define.
(test_lock_CFLAGS, test_tls_CFLAGS): Define.

13 years agotests: fix rand-isaac test
Paul Eggert [Wed, 13 Oct 2010 07:03:41 +0000 (09:03 +0200)]
tests: fix rand-isaac test

* gl/tests/test-rand-isaac.c (main): Fix swapped arguments to strtol.

13 years agotail: fix checking of currently unavailable directories
Pádraig Brady [Tue, 12 Oct 2010 00:39:58 +0000 (01:39 +0100)]
tail: fix checking of currently unavailable directories

* src/tail.c (tail_forever_inotify): Handle the case where
tail --follow=name with inotify, is not able to add a watch on
a specified directory.  This may happen due to inotify resource
limits or if the directory is currently missing or inaccessible.
In all these cases, revert to polling which will try to reopen
the file later.  Note inotify returns ENOSPC when it runs out
of resources, and instead we report a particular error message,
lest users think one of their file systems is full.
(main): Document another caveat with using inotify, where we
currently don't recheck directories recreated after the
initial watch is setup.
* tests/tail-2/F-vs-rename: Fix the endless loop triggered by
the above issue.
* tests/tail-2/inotify-hash-abuse: Likewise.
* tests/tail-2/wait: Don't fail in the resource exhaustion case.
* tests/tail-2/F-vs-missing: A new test for this failure mode
which was until now just triggered on older buggy linux kernels
which returned ENOSPC constantly from inotify_add_watch().
* NEWS: Mention the fix.

13 years agobuild: update gnulib to latest; to fix failing Solaris 5.11 test
Jim Meyering [Mon, 11 Oct 2010 20:41:12 +0000 (22:41 +0200)]
build: update gnulib to latest; to fix failing Solaris 5.11 test

13 years agomaint: add new file: .mailmap
Jim Meyering [Mon, 11 Oct 2010 17:50:44 +0000 (19:50 +0200)]
maint: add new file: .mailmap

* .mailmap: Map git author names and email addresses to
canonical/preferred form.  This file is used e.g., by "git shortlog".

13 years agobuild: update gnulib, to fix OpenBSD test failures
Jim Meyering [Fri, 8 Oct 2010 20:15:15 +0000 (22:15 +0200)]
build: update gnulib, to fix OpenBSD test failures

13 years agobuild: update gnulib to latest; for parse-datetime.y fix
Jim Meyering [Fri, 8 Oct 2010 06:08:39 +0000 (08:08 +0200)]
build: update gnulib to latest; for parse-datetime.y fix

13 years agobuild: update gnulib to latest, to avoid FreeBSD compilation failure:
Jim Meyering [Thu, 7 Oct 2010 06:57:26 +0000 (08:57 +0200)]
build: update gnulib to latest, to avoid FreeBSD compilation failure:

http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/23501

13 years agosplit: fix reporting of read errors
Pádraig Brady [Thu, 7 Oct 2010 12:12:36 +0000 (13:12 +0100)]
split: fix reporting of read errors

The bug was introduced with commit 23f6d41f, 19-02-2003.

* src/split.c (bytes_split, lines_split, line_bytes_split):
Correctly check the return from full_read().
* tests/misc/split-fail: Ensure split fails when
it can't read its input.
* NEWS: Mention the fix.

13 years agobuild: update gnulib to latest, for memmem/strstr fix
Jim Meyering [Wed, 6 Oct 2010 07:31:21 +0000 (09:31 +0200)]
build: update gnulib to latest, for memmem/strstr fix

13 years agomaint: describe coreutils' policy on copyright year number ranges
Jim Meyering [Tue, 5 Oct 2010 08:50:48 +0000 (10:50 +0200)]
maint: describe coreutils' policy on copyright year number ranges

* README: Mention coreutils' long-standing policy on use of M-N
ranges in copyright year lists.  Requested by Richard Stallman.

13 years agobuild: complete the rename of get_date
Eric Blake [Tue, 5 Oct 2010 17:47:21 +0000 (11:47 -0600)]
build: complete the rename of get_date

* gnulib: Update to latest.
* src/date.c (includes, batch_convert, main): Track rename.
* src/touch.c (includes, get_reldate): Likewise.
* doc/coreutils.texi (Top, Date input formats): Likewise.
* bootstrap.conf (gnulib_modules): Likewise.
* doc/Makefile.am (EXTRA_DIST): Likewise.
* doc/.gitignore: Likewise.
* bootstrap: Synchronize from upstream.

13 years agostat: drop %C support when printing file system details
Eric Blake [Tue, 5 Oct 2010 15:02:37 +0000 (09:02 -0600)]
stat: drop %C support when printing file system details

* src/stat.c (print_statfs, usage): Drop %C, since it applies to
files, not file systems.
(out_file_context): Match style of other out_* functions.
(print_stat): Update caller.
* doc/coreutils.texi (stat invocation): Document %C.
* NEWS: Document the change.

13 years agobuild: fix build on Solaris 10
Eric Blake [Tue, 5 Oct 2010 14:38:22 +0000 (08:38 -0600)]
build: fix build on Solaris 10

* gnulib: Update to latest, for reduced -lgen scope.
* bootstrap: Synchronize from upstream.
Reported by Clemens Brogi, as bug #7142.

13 years agostat: adjust the printing of SELinux context
Pádraig Brady [Tue, 5 Oct 2010 07:40:17 +0000 (08:40 +0100)]
stat: adjust the printing of SELinux context

* src/stat.c (default_format): Don't print SELinux context
when in file system (-f) mode, as the context is associated
with the file, not the file system.
Fix logic inversion, so that in terse mode, %C is included
only when is_selinux_enabled and not vice versa.

13 years agotests: refactor the stat-birthtime test to use retry_delay_
Pádraig Brady [Mon, 4 Oct 2010 15:54:22 +0000 (16:54 +0100)]
tests: refactor the stat-birthtime test to use retry_delay_

* tests/misc/stat-birthtime: This recently added test
fits the pattern of requiring a delay to pass, so get
it to use retry_delay_()

13 years agomaint: add a release prerequisite: check the NixOS/Hydra autobuilder
Jim Meyering [Sun, 3 Oct 2010 18:48:53 +0000 (20:48 +0200)]
maint: add a release prerequisite: check the NixOS/Hydra autobuilder

* README-release: Add a note to check the autobuilder.

13 years agobuild: update gnulib submodule to latest
Jim Meyering [Sun, 3 Oct 2010 17:24:58 +0000 (19:24 +0200)]
build: update gnulib submodule to latest

13 years agomaint: suppress a bogus used-uninitialized warning in tr.c
Jim Meyering [Fri, 1 Oct 2010 09:07:23 +0000 (11:07 +0200)]
maint: suppress a bogus used-uninitialized warning in tr.c

* src/tr.c (string2_extend): Insert an abort call to tell
gcc that char_to_repeat is not used uninitialized.

13 years agotests: output --version of program under test
Eric Blake [Fri, 1 Oct 2010 21:43:23 +0000 (15:43 -0600)]
tests: output --version of program under test

This touches all new tests added since commit b062bbd9, when
init.cfg was added.  Older tests still exist that could use
conversion, but we can address those later.

* tests/sample-test: Restore hint for --version output.
* tests/misc/stat-birthtime: Include --version if verbose.
* tests/misc/tr-case-class: Likewise.
* tests/misc/stat-mount: Likewise.
* tests/misc/sort-unique: Likewise.
* tests/misc/sort-benchmark-random: Likewise.
Suggested by Jim Meyering.

13 years agostat: print SELinux context when available
Eric Blake [Fri, 1 Oct 2010 17:54:34 +0000 (11:54 -0600)]
stat: print SELinux context when available

* src/stat.c (default_format): Include context when present.
* NEWS: Update blurb explaining the replacement for -Z.

13 years agostat: optimize and translate default format strings
Eric Blake [Fri, 1 Oct 2010 17:44:05 +0000 (11:44 -0600)]
stat: optimize and translate default format strings

Yes, this patch intentionally leaks the results of default_format(),
since it is called only twice, and since the results are in scope
until main() exits.  Not worth the extra code to pacify valgrind.

* src/stat.c (main): Hoist default format computation out of loop.
(do_statfs, do_stat): Move default format generation...
(default_format): ...into new function.  Allocate the result in
pieces, rather than repeating mostly-similar chunks.  Allow
translation of verbose format.  Pass a second format to do_stat,
for the one aspect of the default format that is conditional on
file type.
* NEWS: Document the translation aspect.

13 years agostat: print timestamps to full resolution
Eric Blake [Thu, 30 Sep 2010 22:42:13 +0000 (16:42 -0600)]
stat: print timestamps to full resolution

* src/stat.c (epoch_time): New function.
(print_stat): Use it for %[WXYZ].
* NEWS: Document this.
* tests/touch/60-seconds: Adjust test to match.
* tests/misc/stat-birthtime: Likewise.

13 years agostat: support printing birthtime
Eric Blake [Thu, 30 Sep 2010 22:31:50 +0000 (16:31 -0600)]
stat: support printing birthtime

* src/stat.c (print_stat): New %w and %W formats.
(do_stat): Include %w in default format.
(usage): Document new specifiers.
* doc/coreutils.texi (stat invocation): Likewise.
* NEWS: Likewise.

13 years agomaint: update sample test template
Eric Blake [Fri, 1 Oct 2010 15:38:50 +0000 (09:38 -0600)]
maint: update sample test template

* tests/sample-test: Recommend modern idiom.

13 years agomaint: ensure the mbsalign module is C89 compatible
Pádraig Brady [Fri, 1 Oct 2010 13:28:18 +0000 (14:28 +0100)]
maint: ensure the mbsalign module is C89 compatible

This module may be moved to gnulib at some stage,
so keep it C89 compatible.

* gl/lib/mbsalign.c (mbsalign): Declare variables at start of scope
(ambsalign): Likewise
* gl/lib/mbsalign.h: Remove trailing comma from enum
Reported by Andrei Suhan

13 years agomaint: update gnulib
Eric Blake [Thu, 30 Sep 2010 21:57:19 +0000 (15:57 -0600)]
maint: update gnulib

* gnulib: Update to latest.
* doc/coreutils.texi (date): Reflect new module name.
* doc/Makefile.am (EXTRA_DIST): Likewise.
* doc/.gitignore: Likewise.

13 years agomaint: update gnulib
Eric Blake [Thu, 30 Sep 2010 15:44:27 +0000 (09:44 -0600)]
maint: update gnulib

* gnulib: Update to latest.
* bootstrap.conf (gnulib_modules): Reflect new module name.
* bootstrap: Resync from upstream.

13 years agomaint: mention the du-exclude--vs--cycle-dir fix
Jim Meyering [Thu, 30 Sep 2010 12:24:42 +0000 (14:24 +0200)]
maint: mention the du-exclude--vs--cycle-dir fix

* NEWS (Bug fixes): Mention the du-exclude--vs--cycle-dir fix.
Reported by Graham Cobb in http://bugs.debian.org/598438,
that bug was fixed by the 2010-07-24 commit, 77428214f,
"du: tune, and fix some -L bugs with dangling or cyclic symlinks"

13 years agobuild: update gnulib submodule to latest
Jim Meyering [Wed, 29 Sep 2010 12:34:20 +0000 (14:34 +0200)]
build: update gnulib submodule to latest

13 years agotr: fix various issues with case conversion
Pádraig Brady [Mon, 27 Sep 2010 06:16:44 +0000 (07:16 +0100)]
tr: fix various issues with case conversion

This valid translation spec aborted:
  LC_ALL=en_US.iso-8859-1 tr '[:upper:]- ' '[:lower:]_'
This invalid translation spec aborted:
  LC_ALL=en_US.iso-8859-1 tr '[:upper:] '  '[:lower:]'
This was caused by commit 6efd1046, 05-01-2008,
"Avoid tr case-conversion failure in some locales"

This misaligned conversion spec was allowed:
  LC_ALL=C tr 'A-Y[:lower:]' 'a-z[:upper:]'
This was caused by commit af5d0c36, 21-10-2007,
"tr: do not reject an unmatched [:lower:] or [:upper:] in SET1"

This misaligned spec was allowed by extending the class:
  LC_ALL=C tr '[:upper:] ' '[:lower:]'

* src/tr.c (validate_case_classes): A new function to check
alignment of case conversion classes.  Also it adjusts the
length of the sets so that locales with different numbers of
upper and lower case characters, don't cause issues.
(string2_extend): Disallow extending the case conversion
class as in the above example.  That is locale dependent
and most likely not what the user wants.
(validate): Do the simple test for "restricted" char classes
earlier, so we don't redundantly do more expensive validation.
(main): Remove the case class validation, and simplify.
* tests/misc/tr-case-class: A new test to test the various
alignment and locale issues, associated with case conversion.
* tests/misc/tr: Move case conversion tests to new tr-case-class.
* tests/Makefile.am: Reference the new test.
* NEWS: Mention the fixes.

13 years agobuild: update gnulib submodule to latest
Paul Eggert [Mon, 20 Sep 2010 23:27:11 +0000 (16:27 -0700)]
build: update gnulib submodule to latest

13 years agosort: destroy spin locks portably
Paul Eggert [Mon, 20 Sep 2010 22:44:31 +0000 (15:44 -0700)]
sort: destroy spin locks portably

* src/sort.c (sortlines, sort): Use pthread_spin_destroy when a
spin lock is no longer used.  This isn't needed on GNU/Linux or
Solaris, but POSIX says it may free up resources on some platforms.

13 years agotests: fix a printf portability issue
Pádraig Brady [Mon, 20 Sep 2010 14:23:20 +0000 (15:23 +0100)]
tests: fix a printf portability issue

* tests/misc/sort-debug-keys: Don't depend on
printf supporting \xhh format, which isn't supported
by dash for example.  Also change from double quoted
strings to single quoted, when we don't need any
variable interpolation.

13 years agotests: fix an erroneous stat failure with bind mounts
Pádraig Brady [Mon, 20 Sep 2010 14:07:02 +0000 (15:07 +0100)]
tests: fix an erroneous stat failure with bind mounts

* tests/misc/stat-mount: Don't try to correlate the
mount points output by df and stat, as they're similar,
but sometimes different in the presence of bind mounts.
* doc/coretuils.texi (stat invocation): Clarify the
bind mount difference between stat and df.

13 years agobuild: update gnulib submodule to latest
Jim Meyering [Sat, 18 Sep 2010 20:35:04 +0000 (22:35 +0200)]
build: update gnulib submodule to latest

13 years agotests: sync tests/init.sh from gnulib
Jim Meyering [Sat, 18 Sep 2010 19:22:16 +0000 (21:22 +0200)]
tests: sync tests/init.sh from gnulib

* tests/init.sh: Update from gnulib.

13 years agobuild: use gnulib's new termios module
Jim Meyering [Sat, 18 Sep 2010 18:24:41 +0000 (20:24 +0200)]
build: use gnulib's new termios module

With it, we can remove the two sole tests of HAVE_TERMIOS_H.
* bootstrap.conf (gnulib_modules): Add termios.
* src/ls.c: Don't test HAVE_TERMIOS_H.
* src/stty.c: Likewise.
* m4/jm-macros.m4 (gl_CHECK_ALL_TYPES): Remove configure-time
test for termios.h.

13 years agomaint: don't use obsolete gnulib modules
Jim Meyering [Mon, 6 Sep 2010 05:49:48 +0000 (07:49 +0200)]
maint: don't use obsolete gnulib modules

* bootstrap.conf (gnulib_modules): Use calloc-gnu, malloc-gnu
and realloc-gnu modules, rather than calloc, malloc and realloc.
The shorter-named modules are now deprecated.
(obsolete_gnulib_modules): Remove.
(gnulib_modules): Remove raise, strbprk; they're obsolete, too.
Move strtod, strtol here, from obsolete_gnulib_modules.

13 years agomaint: update to latest gnulib
Eric Blake [Fri, 17 Sep 2010 21:54:59 +0000 (15:54 -0600)]
maint: update to latest gnulib

* gnulib: Update to latest.
* src/copy.c (copy_reg): Use fdutimens instead of gl_futimens.
* src/touch.c (touch): Adjust parameter order.
* tests/init.sh: Resync from upstream.

13 years agorm: remove no-op -d option
Eric Blake [Thu, 16 Sep 2010 17:52:27 +0000 (11:52 -0600)]
rm: remove no-op -d option

* src/rm.c (long_opts, main): Resolve a fixme.
* NEWS: Document the change.
Based on a report by William Plusnick.

13 years agomaint: update to latest gnulib
Eric Blake [Thu, 16 Sep 2010 23:38:00 +0000 (17:38 -0600)]
maint: update to latest gnulib

* gnulib: Update to latest.
* bootstrap.conf (gnulib_modules): Add fdutimensat.
* src/touch.c (touch): Use fdutimensat instead of gl_futimens.

13 years agodircolors: add rxvt-unicode-256color terminal type
Dmitry V. Levin [Mon, 13 Sep 2010 22:26:08 +0000 (02:26 +0400)]
dircolors: add rxvt-unicode-256color terminal type

rxvt-unicode introduced new terminal type:
http://cvs.schmorp.de/rxvt-unicode/src/rxvt.h?r1=1.398&r2=1.399

* src/dircolors.hin: Add rxvt-unicode-256color terminal type.
Reported by Alexey I. Froloff in <http://bugzilla.altlinux.org/24052>.

Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
13 years agotests: work around a failure with dash 0.5.4
Pádraig Brady [Tue, 7 Sep 2010 14:53:14 +0000 (15:53 +0100)]
tests: work around a failure with dash 0.5.4

* tests/misc/env: Check that the shell can support
the operation, before filtering through `env`.
Note dash 0.5.5 is unaffected by this issue.

13 years agotests: make various timeouts more robust
Pádraig Brady [Tue, 7 Sep 2010 13:02:56 +0000 (14:02 +0100)]
tests: make various timeouts more robust

* tests/init.cfg (retry_delay_): Describe
the backoff method used.
* tests/ls/readdir-mountpoint-inode: Add a timeout
to the stat call to eliminate the chance of hangups.
* tests/mv/i-3: Change the timeout required to pass
from 1 second to a range of .1s - 3.1s.
* tests/rm/dangling-symlink: Likewise.

13 years agotests: exclude some tests when running on NFS
Pádraig Brady [Thu, 2 Sep 2010 12:22:41 +0000 (13:22 +0100)]
tests: exclude some tests when running on NFS

All tests currently pass on NFS on Linux kernel 2.6.22 at least,
but some fail on 2.6.9, so we exclude those here.

* tests/init.cfg (is_local_dir_): A new function
returning if the specified directory is on a local file system.
(require_local_dir_): A new function to skip tests
if the current directory is not on a local file system.
* tests/cp/existing-perm-race: Skip if non local.
* tests/cp/file-perm-race: Likewise.
* tests/cp/parent-perm: Likewise.
* tests/cp/parent-perm-race: Likewise.
* tests/cp/preserve-2: Likewise.
* tests/mv/part-symlink: Likewise.
* tests/du/basic: Use refactored function.
* tests/install/basic-1: Likewise.
* tests/mkdir/p-3: Likewise.
* tests/dd/skip-seek-past-dev: Likewise.
* tests/du/slink: Likewise.  Remove redundant test
for NFS file system.
* tests/misc/join: s/local/locale/.

13 years agobuild: update gnulib submodule to latest
Jim Meyering [Sat, 4 Sep 2010 12:25:11 +0000 (14:25 +0200)]
build: update gnulib submodule to latest

13 years agobuild: use gettext-h, not gettext
Jim Meyering [Fri, 3 Sep 2010 11:11:33 +0000 (13:11 +0200)]
build: use gettext-h, not gettext

* bootstrap.conf (gnulib_modules): Use gettext-h, not gettext.
The latter is overkill for a package that uses
AM_GNU_GETTEXT([external]...

13 years agotac: suppress technically unneeded "free"
Jim Meyering [Sat, 28 Aug 2010 19:54:17 +0000 (21:54 +0200)]
tac: suppress technically unneeded "free"

* src/tac.c (main): Guard final free with #ifdef lint.
Suggested by Paul Eggert.

13 years agojoin: improve performance when operating on whole lines
Pádraig Brady [Tue, 31 Aug 2010 07:38:34 +0000 (08:38 +0100)]
join: improve performance when operating on whole lines

Following on from commit f86bb696, 01-02-2010,
"join: make -t '' operate on the whole line".
Bypassing the delimiter search in this case,
gives about an 8% performance boost.

* src/join (xfields): Don't bother looking for '\n'
in the data, which we know won't be present.

13 years agotac: avoid double free
Jim Meyering [Sat, 28 Aug 2010 15:45:29 +0000 (17:45 +0200)]
tac: avoid double free

* src/tac.c (main): Reading a line longer than 16KiB would cause
tac to realloc its primary buffer.  Then, just before exit, tac
would mistakenly free the original (now free'd) buffer.
This bug was introduced by commit be6c13e7, "maint: always free a
buffer, to avoid even semblance of a leak".
* NEWS (Bug fixes): Mention it.
* tests/misc/tac (double-free): New test, to exercise this.
Reported by Salvo Tomaselli in <http://bugs.debian.org/594666>.

13 years agodoc: clarify that stat -f implies -L (follows symlinks)
Pádraig Brady [Fri, 27 Aug 2010 07:39:48 +0000 (08:39 +0100)]
doc: clarify that stat -f implies -L (follows symlinks)

* doc/coreutils.texi (stat invocation). Since there is
no lstatfs, document that -L is implicit with -f.

13 years agostat: add %m to output the mount point for a file
Aaron Burgemeister [Fri, 16 Jul 2010 01:54:49 +0000 (19:54 -0600)]
stat: add %m to output the mount point for a file

* src/find-mount-point.c: A new file refactoring
find_mount_point() out from df.c
* src/find-mount-point.h: Likewise.
* src/df.c: Use the new find-mount-point module.
* src/stat.c (print_stat): Handle the new %m format.
(find_bind_mount): A new function to
return the bind mount for a file if any.
(out_mount_mount): Print the bind mount for a file, or else
the standard mount point given by the find-mount-point module.
(usage): Document the %m format directive.
* src/Makefile.am: Reference the refactored find-mount-point.c
* po/POTFILES.in: Add find_mount_point.c to the translation list
* doc/coreutils.texi (stat invocation): Document %m,
and how it may differ from the mount point that df outputs.
* test/misc/stat-mount: A new test to correlate mount points
output from df and stat.
* tests/Makefile.am: Reference the new test.
* NEWS: Mention the new feature
* THANKS: Add the author

Signed-off-by: Pádraig Brady <P@draigBrady.com>
13 years agomaint: update to latest gnulib
Eric Blake [Thu, 26 Aug 2010 22:26:06 +0000 (16:26 -0600)]
maint: update to latest gnulib

* gnulib: Update to latest, to avoid warnings with latest autoconf.git.

13 years agomaint: avoid a hung 'make syntax-check' in VPATH build
Eric Blake [Tue, 10 Aug 2010 17:03:09 +0000 (11:03 -0600)]
maint: avoid a hung 'make syntax-check' in VPATH build

* cfg.mk (sc_system_h_headers): Look for files in correct location.

13 years agodf: always print the device name for bind mounted files
Pádraig Brady [Tue, 24 Aug 2010 07:13:33 +0000 (08:13 +0100)]
df: always print the device name for bind mounted files

* src/df (show_point): Remove the optimization for comparing
the specified path with the device name, as this produces
inconsistent results in the presence of bind mounts.  For bind
mounts, the device name is populated with the bind mount target.
* NEWS: Mention the change in behavior.

13 years agostat: fix a small memory leak with %N
Pádraig Brady [Wed, 18 Aug 2010 23:53:39 +0000 (00:53 +0100)]
stat: fix a small memory leak with %N

* src/stat.c (print_stat): Free the buffer returned
from areadlink_with_size().

13 years agomaint: exclude tests from the set_program_name syntax-check
Pádraig Brady [Wed, 11 Aug 2010 09:49:22 +0000 (10:49 +0100)]
maint: exclude tests from the set_program_name syntax-check

* .x-sc_program_name: Exclude all current and future
c files in gl/tests from this check
* gl/tests/test-di-set.c: Remove the hack to work around
the set_program_name syntax-check
* gl/tests/test-ino-map.c: Likewise
* gl/tests/test-rand-isaac.c: Likewise