platform/upstream/coreutils.git
14 years agomaint: extend the always_defined_macros syntax-check
Jim Meyering [Mon, 3 May 2010 10:05:14 +0000 (12:05 +0200)]
maint: extend the always_defined_macros syntax-check

* cfg.mk (gl_generated_headers_): Define.
(headers_with_interesting_macro_defs): Remove headers covered
by the above.
(.re-defmac): Extract symbol names from many more files.
(sc_always_defined_macros): Use VC_LIST_EXCEPT, not VC_LIST, so
that we can use the usual exception mechanism.
Test for $(gnulib_dir), not system.h.
* .x-sc_always_defined_macros: New file.  Exempt src/seq.c.
* Makefile.am (syntax_check_exceptions): Add it here.

14 years agomaint: remove now-redundant definitions provided by signal.h
Jim Meyering [Mon, 3 May 2010 08:50:23 +0000 (10:50 +0200)]
maint: remove now-redundant definitions provided by signal.h

* src/dd.c (SA_NODEFER, SA_RESETHAND): Remove definitions,
now that gnulib guarantees they are defined in <signal.h>.
* src/ls.c (SA_RESTART): Likewise.

14 years agomaint: remove now-redundant definitions provided by sys/wait.h
Jim Meyering [Mon, 3 May 2010 08:45:47 +0000 (10:45 +0200)]
maint: remove now-redundant definitions provided by sys/wait.h

* src/timeout.c (WIFSIGNALED, WTERMSIG): Remove definitions,
now that gnulib guarantees they are defined in <sys/wait.h>.
* src/operand2sig.c: Likewise.
* src/kill.c: Likewise.

14 years agosort: use long doubles only when effective
Paul Eggert [Fri, 30 Apr 2010 22:23:38 +0000 (23:23 +0100)]
sort: use long doubles only when effective

* src/sort.c (general_numcompare): Don't use long double if strtold
is not available, as it may introduce needless overhead.

14 years agobuild: update gnulib submodule to latest; bootstrap, too
Jim Meyering [Fri, 30 Apr 2010 16:27:19 +0000 (18:27 +0200)]
build: update gnulib submodule to latest; bootstrap, too

14 years agosort: use long doubles for general numeric mode
Pádraig Brady [Wed, 28 Apr 2010 22:54:33 +0000 (23:54 +0100)]
sort: use long doubles for general numeric mode

* src/sort.c (general_numcompare): Use long doubles unconditionally,
and strtold when available, to convert numbers with greater range and
precision.  Performance was seen to be on par with standard doubles.
* doc/coreutils.texi (sort invocation): Amend the -g description to
mention long double rather than double, and strtold rather than strtod.
* src/getlimits.c (main): Output floating point limits for use in tests.
* tests/misc/sort-float: A new test to ensure sort is using long
doubles when possible, and that locale specific floats are handled.
* tests/Makefile.am: Reference the new test.
* tests/test-lib.sh (getlimits_): Normalize indenting.
* NEWS: Mention the new behaviour.
Reported by Nelson Beebe.

14 years agobuild: remove now-duplicate use of AC_SYS_LARGEFILE
Jim Meyering [Thu, 29 Apr 2010 10:03:41 +0000 (12:03 +0200)]
build: remove now-duplicate use of AC_SYS_LARGEFILE

* m4/jm-macros.m4 (gl_CHECK_ALL_TYPES): Don't require AC_SYS_LARGEFILE,
now that gnulib does it.

14 years agobuild: remove now-useless configure-time header checks
Jim Meyering [Thu, 29 Apr 2010 09:32:37 +0000 (11:32 +0200)]
build: remove now-useless configure-time header checks

* m4/jm-macros.m4 (gl_CHECK_ALL_HEADERS): Don't test for headers
that gnulib now provides: sys/ioctl.h, sys/time.h, sys/wait.h.

14 years agodoc: tweak factor-describing wording
Jim Meyering [Sun, 25 Apr 2010 08:35:51 +0000 (10:35 +0200)]
doc: tweak factor-describing wording

* doc/coreutils.texi (factor invocation): Don't say that "factoring
large prime numbers is hard".  A pedant might ding you, since it's
trivial to factor a number that is known to be prime.  Instead, say
that "factoring large numbers... is hard".  Reported by Andreas Eder.

14 years agomaint: remove now-unnecessary #if HAVE_header_H tests.
Jim Meyering [Sat, 24 Apr 2010 15:38:13 +0000 (17:38 +0200)]
maint: remove now-unnecessary #if HAVE_header_H tests.

* .x-sc_prohibit_always_true_header_tests: New file.
* Makefile.am (syntax_check_exceptions): Add it.
* src/cat.c: Remove #if HAVE_SYS_IOCTL_H test.
* src/copy.c: Likewise.
* src/ls.c: Likewise.
* src/stty.c: Likewise.
* src/install.c: Remove #if HAVE_SYS_WAIT_H test.
* src/kill.c: Likewise.
* src/operand2sig.c: Likewise.
* src/timeout.c: Likewise.
* src/pathchk.c: Remove #if HAVE_WCHAR_H test.
* src/stat.c: Remove #if HAVE_NETINET_IN_H test.

14 years agobuild: enable gnulib modules for more replacement headers
Jim Meyering [Sat, 24 Apr 2010 15:16:56 +0000 (17:16 +0200)]
build: enable gnulib modules for more replacement headers

* bootstrap.conf (gnulib_modules): Add the following:
netinet_in, sys_ioctl, sys_wait, so that we can eliminate
the #if HAVE_<header>_H tests guarding their header inclusions.

14 years agotests: clean up also upon SIGQUIT
Jim Meyering [Sat, 24 Apr 2010 13:50:41 +0000 (15:50 +0200)]
tests: clean up also upon SIGQUIT

* tests/test-lib.sh: Also trap on SIGQUIT.
Spotted by Dmitry V. Levin.

14 years agopost-release administrivia
Jim Meyering [Fri, 23 Apr 2010 16:36:32 +0000 (18:36 +0200)]
post-release administrivia

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

14 years agoversion 8.5 v8.5
Jim Meyering [Fri, 23 Apr 2010 15:18:16 +0000 (17:18 +0200)]
version 8.5

* NEWS: Record release date.

14 years agotests: fix exit status of signal handlers in shell scripts
Dmitry V. Levin [Sat, 30 Jan 2010 16:02:36 +0000 (16:02 +0000)]
tests: fix exit status of signal handlers in shell scripts

The value of `$?' on entrance to signal handlers in shell scripts
cannot be relied upon, so set the exit code explicitly.

* cfg.mk (sc_always_defined_macros, sc_system_h_headers): Set
the exit code in signal handler explicitly to 128 + SIG<SIGNAL>.
* src/Makefile.am (sc_tight_scope): Likewise.
* tests/test-lib.sh: Likewise.

14 years agobase64: always treat input in binary mode
Eric Blake [Wed, 21 Apr 2010 14:17:59 +0000 (08:17 -0600)]
base64: always treat input in binary mode

Necessary for cygwin.  Technically, this patch is not correct,
in that it clobbers O_APPEND, but it is no different than any
other use of xfreopen to force binary mode, so all such uses
should be fixed at once in a later patch.

* src/base64.c (main): Open input in binary mode.
* THANKS: Update.
Reported by Yutaka Amanai.

14 years agobuild: update gnulib submodule to latest
Jim Meyering [Wed, 21 Apr 2010 18:05:52 +0000 (20:05 +0200)]
build: update gnulib submodule to latest

14 years agodocs: document transformation of obsolete sort syntax
Eric Blake [Tue, 20 Apr 2010 22:26:27 +0000 (16:26 -0600)]
docs: document transformation of obsolete sort syntax

* doc/coreutils.texi (sort invocation): Mention the conversion.

14 years agomaint: update a couple of NEWS items for the pending release
Pádraig Brady [Wed, 21 Apr 2010 06:50:39 +0000 (07:50 +0100)]
maint: update a couple of NEWS items for the pending release

* NEWS: Mention that cp and mv from the previous release did
not support preserving extended attributes (fixed in e489fd04).
Improve the grammar for the "cp capabilities" item.

14 years agosort: fix parsing of end field in obsolescent key formats
Pádraig Brady [Tue, 20 Apr 2010 15:25:55 +0000 (16:25 +0100)]
sort: fix parsing of end field in obsolescent key formats

This regression was introduced in commit 224a69b5, 2009-02-24,
"sort: Fix two bugs with determining the end of field".
The specific regression being that we include 1 field too many when
an end field is specified using obsolescent key syntax (+POS -POS).

* src/sort.c (struct keyfield): Clarify the description of the eword
member, as suggested by Alan Curry.
(main): When processing obsolescent format key specifications,
normalize eword to a zero based count when no specific end char is given
for an end field. This matches what's done when keys are specified with -k.
* tests/misc/sort: Add a few more tests for the obsolescent key formats,
with test 07i being the particular failure addressed by this change.
* THANKS: Add Alan Curry who precisely identified the issue.
* NEWS: Mention the fix.
Reported by Santiago Rodríguez

14 years agocp: preserve "capabilities" when also preserving file ownership
Pádraig Brady [Fri, 16 Apr 2010 07:39:11 +0000 (08:39 +0100)]
cp: preserve "capabilities" when also preserving file ownership

* src/copy.c (copy_reg): Copy xattrs _after_ setting file ownership
so that capabilities are not cleared when setting ownership.
* tests/cp/capability: A new root test.
* tests/Makefile.am (root_tests): Reference the new test.
* NEWS: Mention the fix.

14 years ago* HACKING (Add tests): Change example name, "newtest" to "new-test".
Jim Meyering [Fri, 16 Apr 2010 06:42:47 +0000 (08:42 +0200)]
* HACKING (Add tests): Change example name, "newtest" to "new-test".

Not that anyone would confuse with something newt-related, but just
because it is more readable that way.

doc: tweak HACKING

14 years agodoc: tweak HACKING
Jim Meyering [Fri, 16 Apr 2010 06:21:32 +0000 (08:21 +0200)]
doc: tweak HACKING

* HACKING (Curly braces): Tweak a sentence.  Filter a few
paragraphs through "fmt".

14 years agomaint: fix build on platforms that replace strsignal
Pádraig Brady [Thu, 15 Apr 2010 16:34:57 +0000 (17:34 +0100)]
maint: fix build on platforms that replace strsignal

* src/Makefile.am (kill_LDADD): Add $(LIBTHREAD) so that
we link with the appropriate libraries to provide Thread Local Storage
on platforms that replace strsignal (like AIX for example).

Tested-by: Daniel Richard G. <danielg@teragram.com>
14 years agotests: avoid spurious failure of ls/color-norm test
Pádraig Brady [Wed, 14 Apr 2010 14:32:27 +0000 (15:32 +0100)]
tests: avoid spurious failure of ls/color-norm test

* tests/ls/color-norm: Use the "time" output by `ls -l`
to check normal style.  Previously we used the size from `ls -s`,
but the size of "empty" files can vary depending on whether
SELinux is enabled for example.

14 years agodoc: document our code formatting policy regarding curly braces
Jim Meyering [Thu, 15 Apr 2010 08:17:47 +0000 (10:17 +0200)]
doc: document our code formatting policy regarding curly braces

* HACKING (Curly braces: use judiciously): New section.

14 years agotests: avoid spurious failure of root-only ls/capability test
Jim Meyering [Wed, 14 Apr 2010 13:48:31 +0000 (15:48 +0200)]
tests: avoid spurious failure of root-only ls/capability test

* tests/ls/capability: Adjust this test not to expect the no-op escape
sequence that was removed from all other tests by 2010-01-30 commit
5d43617e, "ls --color: don't emit a final no-op escape sequence".

14 years agocp: treat selinux warnings consistently
Pádraig Brady [Tue, 13 Apr 2010 11:49:05 +0000 (12:49 +0100)]
cp: treat selinux warnings consistently

* src/copy.c (copy_reg): Suppress SELinux ENOTSUP warnings consistently
between the destination being present or not.  Previously we did
not suppress ENOTSUP messages when the destination was present.
(copy_internal): Use the same ENOTSUP supression method as
copy_reg() even though the issue was not seen in this case.
* tests/cp/cp-a-selinux: Add a test case for the issue and
group the other test cases in the file more coherently.
* tests/cp/cp-mv-enotsup-xattr: Do the same check for xattr
warnings, even though they did not have the issue.

14 years agodoc: clarify when cp and mv output xattr warnings
Pádraig Brady [Mon, 12 Apr 2010 07:46:37 +0000 (08:46 +0100)]
doc: clarify when cp and mv output xattr warnings

The 2010-03-26 commit, 4c38625e, "doc: fix info on cp --preserve..."
was not entirely correct as cp --preserve=all does produce some
xattr warnings.

* src/copy.h: Update and clarify the comments for reduce_diagnostics
and require_preserve_{xattr,context}.
* doc/coreutils.texi (cp invocation): Update the -a and
--preserve=xattr,context options to say when and which
xattr warnings are output.
(mv invocation): Mention that some warnings are output
when preserving xattrs.

14 years agodoc: mention that "capabilities" are preserved by cp/mv
Pádraig Brady [Sat, 10 Apr 2010 00:05:39 +0000 (01:05 +0100)]
doc: mention that "capabilities" are preserved by cp/mv

* doc/coreutils.texi (cp invocation): Mention that
"capabilities" are preserved when implemented using
extended attributes.
(mv invocation): Mention ACLs etc. are maintained
due to xattrs being copied.

14 years agobuild: tell ./bootstrap to check for xz up-front
Jie Liu [Sun, 11 Apr 2010 14:40:52 +0000 (22:40 +0800)]
build: tell ./bootstrap to check for xz up-front

* bootstrap.conf (buildreq): Add xz to the list.

14 years agotests: more syntax-checks
Jim Meyering [Sat, 10 Apr 2010 20:43:01 +0000 (22:43 +0200)]
tests: more syntax-checks

* gnulib: update to latest
* cfg.mk (sc_prohibit_empty_lines_at_EOF): Remove, now that it's
in gnulib's maint.mk.
(_hv_file): Override the default.

14 years agomaint: new syntax-check rule: prohibit empty lines at EOF
Jim Meyering [Sat, 10 Apr 2010 12:19:11 +0000 (14:19 +0200)]
maint: new syntax-check rule: prohibit empty lines at EOF

* cfg.mk (detect_empty_lines_at_EOF_): Define.
(sc_prohibit_empty_lines_at_EOF): New rule.
* .x-sc_prohibit_empty_lines_at_EOF: New file.  Exempt pr test inputs.
* Makefile.am (syntax_check_exceptions): Add it.
Pádraig Brady suggested to parse the output of tail -n1.

14 years agodircolors: add rxvt-256color and rxvt-unicode256
Mike Frysinger [Fri, 9 Apr 2010 06:16:36 +0000 (02:16 -0400)]
dircolors: add rxvt-256color and rxvt-unicode256

* src/dircolors.hin: Add them.

14 years agomaint: ftruncate is always available, even without gnulib
Jim Meyering [Fri, 9 Apr 2010 08:49:38 +0000 (10:49 +0200)]
maint: ftruncate is always available, even without gnulib

Now that even MinGW provides ftruncate, we know that all
reasonable portability targets provide this function.
Remove the workaround code.  We nearly removed the gnulib
module three years ago:
  http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/9203
and it is now officially "obsolete".
* bootstrap.conf (gnulib_modules): Remove ftruncate.
* src/copy.c (copy_reg): Remove use of HAVE_FTRUNCATE and its
no-longer-used workaround code.
* src/truncate.c: Remove a comment about handling missing ftruncate.

14 years agodoc: make wc --help say how it defines a 'word'
James Youngman [Thu, 8 Apr 2010 09:58:52 +0000 (10:58 +0100)]
doc: make wc --help say how it defines a 'word'

* src/wc.c (usage): Add wc's definition of "word".

14 years agodoc: adjust a header in announcement email template
Jim Meyering [Thu, 8 Apr 2010 06:45:23 +0000 (08:45 +0200)]
doc: adjust a header in announcement email template

* README-release: Use Mail-Followup-To: rather than Reply-To:.
The former works more reliably, at least with Gnus.

14 years agotests: add a PATH-sanity-check to help-version
Jim Meyering [Wed, 7 Apr 2010 09:47:28 +0000 (11:47 +0200)]
tests: add a PATH-sanity-check to help-version

* tests/misc/help-version: Sync from gzip's version.
* tests/check.mk (TESTS_ENVIRONMENT): Export VERSION, as required
for new help-version test.

14 years agomaint: fix a masked syntax-check violation
Jim Meyering [Tue, 6 Apr 2010 14:01:32 +0000 (16:01 +0200)]
maint: fix a masked syntax-check violation

* m4/jm-macros.m4 (ARGMATCH_DIE): Use usage(EXIT_FAILURE), not usage(1).
* .x-sc_prohibit_magic_number_exit: Remove *.m4 exemption that was
masking the above.

14 years agobuild: update gnulib submodule to latest
Jim Meyering [Mon, 5 Apr 2010 18:14:15 +0000 (20:14 +0200)]
build: update gnulib submodule to latest

14 years agobuild: update gnulib submodule to latest
Jim Meyering [Sun, 4 Apr 2010 09:01:31 +0000 (11:01 +0200)]
build: update gnulib submodule to latest

14 years agotail: include sys/vfs.h (if possible) when sys/statfs.h is absent
Marc Kleine-Budde [Sun, 4 Apr 2010 07:15:07 +0000 (09:15 +0200)]
tail: include sys/vfs.h (if possible) when sys/statfs.h is absent

* src/tail.c [HAVE_INOTIFY && !HAVE_SYS_STATFS_H]: Include <sys/vfs.h>.

14 years agobuild: update gnulib submodule to latest
Jim Meyering [Fri, 2 Apr 2010 18:30:48 +0000 (20:30 +0200)]
build: update gnulib submodule to latest

* cfg.mk: Update to use new _sc_search_regexp interface.  Run this:
perl -pi -e 's/\b_prohibit_regexp\b/_sc_search_regexp/;'
  -e 's/\bmsg=/halt=/; s/\bre=/prohibit=/;' cfg.mk
and then adjust backslashes so they still line up.

14 years agodoc: synchronize parts of README-release from grep's version
Jim Meyering [Wed, 31 Mar 2010 06:58:40 +0000 (08:58 +0200)]
doc: synchronize parts of README-release from grep's version

* README-release (FIXME): Add Reply-To, use coreutils@gnu.org
for announcements.  Update savannah-verbatim-announcement procedure.

14 years agobuild: update gnulib submodule to latest
Jim Meyering [Mon, 29 Mar 2010 06:07:35 +0000 (08:07 +0200)]
build: update gnulib submodule to latest

14 years agotests: disable new texinfo-acronym syntax-check from gnulib
Jim Meyering [Mon, 29 Mar 2010 06:28:25 +0000 (08:28 +0200)]
tests: disable new texinfo-acronym syntax-check from gnulib

* cfg.mk (local-checks-to-skip): Add new sc_texinfo_acronym, to skip it.

14 years agobuild: update after change in gnulib's lib-ignore module
Bruno Haible [Mon, 29 Mar 2010 06:25:02 +0000 (08:25 +0200)]
build: update after change in gnulib's lib-ignore module

* src/Makefile.am (AM_LDFLAGS): Define.  Use gnulib's new
$(IGNORE_UNUSED_LIBRARIES_CFLAGS).

14 years agotests: avoid spurious sc_prohibit_test_minus_ao syntax-check failures
Jim Meyering [Mon, 29 Mar 2010 06:21:43 +0000 (08:21 +0200)]
tests: avoid spurious sc_prohibit_test_minus_ao syntax-check failures

* tests/misc/ls-time: Change comments and diagnostics.
* tests/misc/xattr: Likewise.

14 years agotests: fix typos in envvar-check script
Jim Meyering [Fri, 26 Mar 2010 15:46:23 +0000 (16:46 +0100)]
tests: fix typos in envvar-check script

* tests/envvar-check: Fix variable name typos.
Probably harmless, since no selected shell would fail to unset.

14 years agonice,chroot: use more standard option parsing
Pádraig Brady [Fri, 26 Mar 2010 07:42:01 +0000 (07:42 +0000)]
nice,chroot: use more standard option parsing

Related to the 2010-03-25 commit, 88d4b346,
"timeout: use more standard option parsing".
* src/nice.c (main): Don't use parse_long_options()
which is a helper for commands that don't have any
long options specific to them.
* src/chroot.c (main): Likewise.
* tests/misc/nice-fail: Remove a case that now
passes due to us accepting multiple instances of the
--help and --version options.
* tests/misc/chroot-fail: Likewise.

14 years agotimeout: use more standard option parsing
Kim Hansen [Thu, 25 Mar 2010 17:43:10 +0000 (17:43 +0000)]
timeout: use more standard option parsing

* src/timeout.c (main): Don't use parse_long_options()
which is a helper for commands that don't have any
long options specific to them.
* tests/misc/timeout-parameters: Remove a case that now
passes due to us accepting multiple instances of the
--help and --version options.
* THANKS: Add the author.

Signed-off-by: Pádraig Brady <P@draigBrady.com>
14 years agodoc: fix info on cp --preserve=all, which does _not_ give xattr warnings
Pádraig Brady [Fri, 26 Mar 2010 11:19:16 +0000 (11:19 +0000)]
doc: fix info on cp --preserve=all, which does _not_ give xattr warnings

The info docs have been inaccurate since 2009-04-17, commit 941bd482,
"mv: ignore xattr-preservation failure when not supported by filesystem"
* doc/coreutils.texi (cp invocation): Say that cp --preserve=all
does _not_ output errors when failing to copy xattrs.

14 years agocfg.mk: remove comments with sed rather than cpp -fpreprocessed
Jim Meyering [Sat, 20 Mar 2010 20:05:24 +0000 (21:05 +0100)]
cfg.mk: remove comments with sed rather than cpp -fpreprocessed

* cfg.mk (_sed_remove_comments): Define, starting with gettext's
moopp sed code, but factoring it to be more understandable.
(sc_space_before_open_paren): Adapt.
Prompted by Bruno Haible's suggestion to use gettext's moopp code.

14 years agocfg.mk: fix copy-paste-o in a diagnostic
Jim Meyering [Sat, 20 Mar 2010 12:45:56 +0000 (13:45 +0100)]
cfg.mk: fix copy-paste-o in a diagnostic

* cfg.mk (sc_space_before_open_paren): Mention cpp -fpreprocessed,
not cppi, when cpp -fpreprocessed doesn't work.
Spotted by Eric Blake.

14 years agomaint: enforce one small aspect of formatting style: space-before-"("
Jim Meyering [Sat, 20 Mar 2010 11:14:46 +0000 (12:14 +0100)]
maint: enforce one small aspect of formatting style: space-before-"("

* cfg.mk (sc_space_before_open_paren): New rule.

14 years agomaint: code formatting nit
Jim Meyering [Sat, 20 Mar 2010 11:11:50 +0000 (12:11 +0100)]
maint: code formatting nit

* src/system.h (ST_NBLOCKS): Add space before paren.

14 years agomaint: mbsalign: fix an edge case where we truncate too much
Pádraig Brady [Fri, 19 Mar 2010 21:40:05 +0000 (21:40 +0000)]
maint: mbsalign: fix an edge case where we truncate too much

* gl/lib/mbsalign.c (mbsalign): Ensure the temporary destination buffer
is big enough, as it may need to be bigger than the source buffer
in the presence of single byte non printable chars.
* gl/tests/test-mbsalign.c (main): Add a test to trigger the issue.

14 years agomaint: update the mbsalign module
Pádraig Brady [Mon, 15 Mar 2010 14:04:31 +0000 (14:04 +0000)]
maint: update the mbsalign module

* gl/lib/mbsalign.c (mbsalign):  Support the MBA_UNIBYTE_FALLBACK
flag which reverts to unibyte mode if one can't allocate memory
or if there are invalid multibyte characters present.
Note memory is no longer dynamically allocated in unibyte mode so
one can assume that mbsalign() will not return an error if this
flag is present.  Don't calculate twice, the number of spaces,
when centering.  Suppress a signed/unsigned comparison warning.
(ambsalign): A new wrapper function to dynamically allocate
the minimum memory required to hold the aligned string.
* gl/lib/mbsalign.h: Add the MBA_UNIBYTE_FALLBACK flag and
also document others that may be implemented in future.
(ambsalign): A prototype for the new wrapper.
* gl/tests/test-mbsalign.c (main): New test program.
* gl/modules/mbsalign-tests: A new index to reference the tests.
* .x-sc_program_name: Exclude test-mbsalign.c from this check.

14 years agotests: change help-version to per-program functions
Paolo Bonzini [Fri, 19 Mar 2010 11:27:45 +0000 (12:27 +0100)]
tests: change help-version to per-program functions

* help-version: Change each *_args variable to a *_setup function.

14 years agodoc: tweak README-prereq again
Jim Meyering [Fri, 19 Mar 2010 10:34:15 +0000 (11:34 +0100)]
doc: tweak README-prereq again

* README-prereq: Change one more: s/coreutils/This package/

14 years agodoc: make README-prereq more generic
Jim Meyering [Fri, 19 Mar 2010 09:11:24 +0000 (10:11 +0100)]
doc: make README-prereq more generic

* README-prereq: Adjust wording and reduce number of mentions of
"coreutils", so it's easier to reuse in another package: grep.

14 years agorm: tweak wording about loss of data warning
Eric Blake [Wed, 17 Mar 2010 15:31:44 +0000 (09:31 -0600)]
rm: tweak wording about loss of data warning

* src/rm.c (usage): Update wording to make two points more
apparent: undelete is not trivial, and partial recovery should be
a consideration factor in deciding whether rm is secure enough.
Initially suggested by Reuben Thomas.

14 years agorevert "maint: mark makefile "dist-hook" target as PHONY"
Ralf Wildenhues [Thu, 18 Mar 2010 20:07:41 +0000 (21:07 +0100)]
revert "maint: mark makefile "dist-hook" target as PHONY"

* src/Makefile.am (dist-hook): Do not mark this target
as PHONY, explicitly.  Automake does it for us.

14 years agodoc: improve ls --help's description of --escape (-b)
Eric Blake [Thu, 18 Mar 2010 15:19:08 +0000 (16:19 +0100)]
doc: improve ls --help's description of --escape (-b)

* src/ls.c (usage): Be more precise about how --escape (-b) works:
say "C-style escapes", not "octal escapes".  Reported by Jacky Fong.

14 years agomaint: mark makefile "dist-hook" target as PHONY
Jim Meyering [Thu, 18 Mar 2010 07:32:26 +0000 (08:32 +0100)]
maint: mark makefile "dist-hook" target as PHONY

* src/Makefile.am (dist-hook): Mark target as PHONY.

14 years agomaint: add a space before open-paren, where lacking
Jim Meyering [Wed, 17 Mar 2010 17:27:52 +0000 (18:27 +0100)]
maint: add a space before open-paren, where lacking

* src/copy.c (copy_reg): Likewise.
* src/cut.c (main): Likewise.
* src/dd.c (main): Likewise.
* src/getlimits.c (print_int): Likewise.
* src/join.c (join): Likewise.
* src/pwd.c (logical_getcwd): Likewise.
* src/sort.c (specify_nmerge, mergefps, avoid_trashing_input): Likewise.
(merge): Likewise.
* src/uptime.c (usage): Likewise.

14 years agotimeout: add the --kill-after option
Pádraig Brady [Mon, 15 Mar 2010 23:03:30 +0000 (23:03 +0000)]
timeout: add the --kill-after option

Based on a report from Kim Hansen who wanted to
send a KILL signal to the monitored command
when `timeout` itself received a termination signal.
Rather than changing such a signal into a KILL,
we provide the more general mechanism of sending
the KILL after the specified grace period.

* src/timeout.c (cleanup): If a non zero kill delay
is specified, (re)set the alarm to that delay, after
which a KILL signal will be sent to the process group.
(usage): Mention the new option.  Separate the description
of DURATION since it's now specified in 2 places.
Clarify that the duration is an integer.
(parse_duration): A new function refactored from main(),
since this logic is now called for two parameters.
(main): Parse the -k option.
* doc/coreutils.texi (timeout invocation): Describe the
new --kill-after option and use @display rather than
@table to show the duration suffixes.  Clarify that
a duration of 0 disables the associated timeout.
* tests/misc/timeout-parameters: Check invalid --kill-after.
* tests/misc/timeout: Check a valid --kill-after works.
* NEWS: Mention the new feature.

14 years agobuild: update gnulib submodule to latest
Jim Meyering [Sat, 13 Mar 2010 12:53:58 +0000 (13:53 +0100)]
build: update gnulib submodule to latest

The latest from gnulib once again passes all tests.

14 years agorevert to previous working version of gnulib
Jim Meyering [Sat, 13 Mar 2010 09:30:33 +0000 (10:30 +0100)]
revert to previous working version of gnulib

This reverts commit 0c31cdc2d13a1e47106ce708ca9c94df8d21f764.

14 years agodoc: use mktemp, not tempfile, in a shred usage example
Thien-Thi Nguyen [Sat, 13 Mar 2010 04:34:15 +0000 (05:34 +0100)]
doc: use mktemp, not tempfile, in a shred usage example

* doc/coreutils.texi (shred invocation):
Use mktemp(1) instead of Debian-specific tempfile(1).

14 years agobuild: update gnulib submodule to latest
Jim Meyering [Wed, 10 Mar 2010 10:06:21 +0000 (11:06 +0100)]
build: update gnulib submodule to latest

14 years agomaint: drop *.lzma suport
Eric Blake [Thu, 11 Mar 2010 18:55:45 +0000 (11:55 -0700)]
maint: drop *.lzma suport

* .gitignore: Remove *.lzma lines.

14 years agomaint: ignore *.xz files
Eric Blake [Wed, 10 Mar 2010 23:13:04 +0000 (16:13 -0700)]
maint: ignore *.xz files

* .gitignore: Ignore *.xz created by 'make dist', now that we
no longer produce *.lzma.

14 years agoremove: without -f, avoid unnecessary-expense/issues with euidaccess
Jim Meyering [Sat, 6 Mar 2010 12:16:19 +0000 (13:16 +0100)]
remove: without -f, avoid unnecessary-expense/issues with euidaccess

* src/remove.c (write_protected_non_symlink): If faccessat fails,
return 1 or -1 directly, rather than falling back on euidaccess*.

14 years agodoc: Add an example for cutting fields separated by runs of blanks
Pádraig Brady [Mon, 8 Mar 2010 08:48:14 +0000 (08:48 +0000)]
doc: Add an example for cutting fields separated by runs of blanks

* doc/coreutils.texi (cut invocation): Show how tr can be used
to process the input for cut in this case.
Suggestion from Dan Jacobson.

14 years agomaint: rename the si_present variable in sort to iec_present
Pádraig Brady [Thu, 4 Mar 2010 10:54:21 +0000 (10:54 +0000)]
maint: rename the si_present variable in sort to iec_present

* src/sort.c: The units containing 'i' are actually IEC not SI.

14 years agosort: inform the system about our input access pattern
Joey Degges [Mon, 1 Mar 2010 10:26:22 +0000 (10:26 +0000)]
sort: inform the system about our input access pattern

Tell the system that we'll access input sequentially,
so that we more efficiently process uncached files in a few cases:

Reading from faster flash devices. E.g. 21 MB/s key:
  NORMAL     31.6s (26.8 user)
  SEQUENTIAL 27.7s
  WILLNEED   27.7s

Processing in parallel with readahead when using a small 1M buffer:
  NORMAL     24.7s (21.1 user)
  SEQUENTIAL 22.7s
  WILLNEED   25.6s

A small benefit when merging:
  NORMAL     25.0s (16.9 user)
  SEQUENTIAL 24.6s (16.6 user)
  WILLNEED   38.4s (13.1 user)

Note WILLNEED is presented above for comparison to show it
has some unwanted characteristics due to its synchronous
prepopulation of the cache. It has a good benefit on a
mechanical disk @ 80MB/s and a multicore system with
competing processes:
  NORMAL     14.73s
  SEQUENTIAL 10.95s
  WILLNEED   05.22s
However the scheduling differences causing this result
are probably best explicitly managed using `nice` etc.

* m4/jm-macros.m4 (coreutils_MACROS): check for posix_fadvise().
* src/sort.c (fadvise_input): A new function to apply
the POSIX_FADV_SEQUENTIAL hint to an input stream.
(stream_open): Call the above function for all input streams.

14 years agotests: don't let the LANGUAGE envvar perturb tests
Jim Meyering [Wed, 3 Mar 2010 19:55:27 +0000 (20:55 +0100)]
tests: don't let the LANGUAGE envvar perturb tests

* tests/envvar-check (vars): Add LANGUAGE to the list of envvars
to unset.  At least in glibc (as an extension to POSIX), its value
actually trumps LC_ALL:

  $ LC_ALL=es_ES LANGUAGE=fr_FR.UTF-8 /bin/cat no-such
  /bin/cat: no-such: Aucun fichier ou dossier de ce type

but only when the default locale is not C:

  $ LC_ALL=C LANGUAGE=fr_FR.UTF-8 /bin/cat no-such
  /bin/cat: no-such: No such file or directory

Prompted by a report from Mads Kiilerich.

14 years agosort: fix issues with month sorting in some locales
Pádraig Brady [Fri, 26 Feb 2010 15:33:16 +0000 (15:33 +0000)]
sort: fix issues with month sorting in some locales

* src/sort.c (char fold_toupper[]): Change to unsigned
so as the correct comparisons are made in getmonth().
This fixes unibyte locales where abbreviated months
have characters that are > 0x7F, but it also works for
multibyte locales with the caveat that multibyte characters
are matched case sensitively.
With this change, the following example sorts correctly:
  $ echo -e "1 márta\n2 Feabhra" | LANG=ga_IE.utf8 sort -k2,2M
  2 Feabhra
  1 márta
* src/sort.c (inittables): Since we ignore blanks around months
in the input, don't include them when they're present in the locale.
With this change, the following example sorts correctly:
  $ echo -e "1 2月\n2 1月" | LANG=ja_JP.utf8 sort -k2,2M
  2 1月
  1 2月
* tests/misc/sort-month: A new test to exercise the above cases.
* tests/Makefile.am: Reference the new test.
* NEWS: Mention the fix.

14 years agobootstrap: resynchronize from gnulib
Eric Blake [Thu, 25 Feb 2010 16:27:46 +0000 (09:27 -0700)]
bootstrap: resynchronize from gnulib

* gnulib: Update to latest.
* bootstrap: Copy from gnulib/build-aux/bootstrap.
* README-hacking: Describe how to use GNULIB_SRCDIR.

14 years agoexpr: clarify error message
Eric Blake [Thu, 25 Feb 2010 15:36:39 +0000 (08:36 -0700)]
expr: clarify error message

* src/expr.c (eval4, eval3): Clarify that expr expects integers,
and not the broader category of numbers.
* tests/misc/expr: Update test accordingly.
Suggested by Dan Jacobson.

14 years agomaint: clean up the output from syntax-check rules
Pádraig Brady [Thu, 18 Feb 2010 08:38:30 +0000 (08:38 +0000)]
maint: clean up the output from syntax-check rules

* cfg.mk (sc_tight_scope): Pass the -s (silent) flag to `make`
so that it doesn't report about calling sub makes.
(sc_check-AUTHORS): Likewise.
(sc_strftime_check): Don't display stderr from `info`.
* src/Makefile.am (sc_tight_scope): Don't annotate with "GEN".
(sc_check-AUTHORS): Likewise.

14 years agols: fix a regression by honoring NORMAL attributes again
Moritz Orbach [Tue, 16 Feb 2010 22:48:00 +0000 (22:48 +0000)]
ls: fix a regression by honoring NORMAL attributes again

Output the NORMAL attribute before non file name text.
This attribute will continue into file names that would
not otherwise be colored unless FILE is also set.
The regression was introduced with commit 483297d5, 28-02-2009,
"ls --color no longer outputs unnecessary escape sequences".

* src/ls.c (set_normal_color): A new function to output the
NORMAL attribute sequence if it's enabled.
(print_current_files): Output NORMAL before printing long format info.
(print_file_name_and_frills): Output NORMAL before printing file name.
(print_color_indicator): Reset the attributes before a file name with
attributes so that NORMAL attributes will not combine with them.
(print_name_with_quoting): Ensure attributes are reset after printing
the file name if NORMAL attributes were output.
* tests/ls/color-norm: A new test for NORMAL and FILE combinations.
* tests/Makefile.am: Reference the new test.
* NEWS: Mention the fix.
Reported in https://savannah.gnu.org/bugs/?26512

14 years agomaint: fix the man page correlation tests
Pádraig Brady [Fri, 12 Feb 2010 18:34:33 +0000 (18:34 +0000)]
maint: fix the man page correlation tests

These checks were not being run as distcheck-hook targets
are only supported in the top-level Makefile.  Instead
these tests are now run during a syntax-check.

* cfg.mk (sc_man_file_correlation):  A new syntax check to
call the 2 existing tests to check the correlation between
the programs and man/*.[1x].
* man/Makefile.am (sc_man_file_correlation): Call the 2 existing
man page correlation tests.
(check-x-vs-1): Remove the "GEN" annotation as it's a bit verbose.
(check-programs-vs-x): Likewise.
* src/Makefile.am (all_programs.list): Exclude libstdbuf.so
from the list of programs.  This issue was not noticed as
the checks were not actually being run.

14 years agotests: fix an unlikely race in tail-2/inotify-hash-abuse2
Pádraig Brady [Thu, 11 Feb 2010 17:38:56 +0000 (17:38 +0000)]
tests: fix an unlikely race in tail-2/inotify-hash-abuse2

* tests/tail-2/inotify-hash-abuse2: Explicitly kill the process
by using cleanup_() rather than using a timeout which may trigger
a failure on very slow systems (< 20 iterations of the loop per second).

14 years agodoc: fix inconsistent capitalization in --help output
Pádraig Brady [Fri, 12 Feb 2010 15:19:15 +0000 (15:19 +0000)]
doc: fix inconsistent capitalization in --help output

* src/base64.c (usage): Don't capitalize the first character
in an --option description.
* src/stdbuf.c (usage): Likewise.
* src/truncate.c (usage): Likewise.
* cfg.mk (sc_option_desc_uppercase): A new syntax check to
stop this happening in future.
* man/Makefile.am (sc_option_desc_uppercase): Ensure all
man pages are generated, then search for erroneous uppercase chars.
* src/Makefile.am (all_programs): Ensure all
commands are built so that all man pages can be generated.

14 years agoremove.c: remove three unnecessary #include directives
Jim Meyering [Sun, 14 Feb 2010 10:25:57 +0000 (11:25 +0100)]
remove.c: remove three unnecessary #include directives

* src/remove.c: Don't include hash.h, hash-pjw.h or obstack.h.
They have been unused since the fts rewrite.

14 years agobuild: ignore another gnulib artifact
Eric Blake [Mon, 15 Feb 2010 13:56:11 +0000 (06:56 -0700)]
build: ignore another gnulib artifact

* .gitignore: Add lib/warn-on-use.h.

14 years agodirname: improve man page description
Eric Blake [Mon, 15 Feb 2010 13:45:31 +0000 (06:45 -0700)]
dirname: improve man page description

* doc/coreutils.texi (dirname invocation): Properly cover behavior
on directory.
* man/dirname.x: Likewise.
* THANKS: Update.
Reported by Emmanuel Lacour.

14 years agodoc: remove extraneous periods from --help output
Pádraig Brady [Wed, 10 Feb 2010 17:05:34 +0000 (17:05 +0000)]
doc: remove extraneous periods from --help output

* src/join.c (usage): Mention "fields" rather than repeating "line"
so that it's more obvious that the fields are still parsed, and
thus -o is still honored for headers.  Also remove an extraneous
'.' reported by Stéphane Raimbault.
* src/base64.c (usage): Remove extraneous blank line and order
the options alphabetically.  Also remove an extraneous '.'
* src/chown.c (usage): Remove extraneous '.'
* src/cp.c (usage): Likewise.
* src/mktemp.c (usage): Likewise.
* src/pr.c (usage): Likewise.
* src/stat.c (usage): Likewise.
* src/uniq.c (usage): Likewise.

14 years agodoc: add a TODO item
Jim Meyering [Wed, 10 Feb 2010 06:25:58 +0000 (07:25 +0100)]
doc: add a TODO item

* TODO: Consider adding a col implementation.

14 years agocopy.c: improve a comment
Jim Meyering [Sun, 7 Feb 2010 20:02:18 +0000 (21:02 +0100)]
copy.c: improve a comment

* src/copy.c (copy_reg): The comment about POSIXLY_CORRECT refers
only to cp, not to any other application that uses copy.c.

14 years agodoc: add a cross reference from tac's man page to "rev"
James R. Van Zandt [Sun, 7 Feb 2010 15:36:13 +0000 (16:36 +0100)]
doc: add a cross reference from tac's man page to "rev"

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

14 years agotests: include help-version test settings used by gzip and grep
Jim Meyering [Sun, 7 Feb 2010 11:16:34 +0000 (12:16 +0100)]
tests: include help-version test settings used by gzip and grep

* tests/misc/help-version: ...the better to keep this file in sync.

14 years agodoc: rewrite part of README-release
Jim Meyering [Sun, 7 Feb 2010 08:10:53 +0000 (09:10 +0100)]
doc: rewrite part of README-release

* README-release (Pre-release testing): Reorganize.

14 years agosync with gnulib
Jim Meyering [Wed, 3 Feb 2010 20:57:24 +0000 (21:57 +0100)]
sync with gnulib

* gl/lib/regcomp.c.diff: Update to apply to changed version in gnulib.
* gnulib: Update submodule to latest.

14 years agotests: fix various timeout races
Pádraig Brady [Tue, 2 Feb 2010 10:47:48 +0000 (10:47 +0000)]
tests: fix various timeout races

Prompted by the continuous integration build failure at:
http://hydra.nixos.org/build/277485

* tests/misc/timeout: Set all expected timeouts to 1s and all
unexpected timeouts to 10s. In this way, tests normally proceed
quickly but may delay up to 10s before reporting failures.
* tests/ls/infloop: Likewise.
* tests/tail-2/pid: Likewise.
* tests/tail-2/pipe-f: Likewise.
* tests/tail-2/wait: Likewise.
* tests/dd/skip-seek-past-dev: Likewise.

14 years agotests: cp-a-selinux: skip the test if mounting a loop device fails
Ondřej Vašík [Mon, 1 Feb 2010 15:29:27 +0000 (16:29 +0100)]
tests: cp-a-selinux: skip the test if mounting a loop device fails

* tests/cp/cp-a-selinux: Skip the test (instead of fail) if we
fail to mount a loop device (e.g., none available).

14 years agomaint: fix a typo in NEWS
Pádraig Brady [Mon, 1 Feb 2010 15:40:44 +0000 (15:40 +0000)]
maint: fix a typo in NEWS

* NEWS: s/contains/contain/

14 years agojoin: make -t '' operate on the whole line
Pádraig Brady [Mon, 1 Feb 2010 15:19:08 +0000 (15:19 +0000)]
join: make -t '' operate on the whole line

Previously passing an empty parameter to -t would
raise an error, but now it means to treat each line
as a single field for matching.  This matches the
default operation of `sort` which is usually used
in conjunction with join.

* src/join.c (main): Set the field delimiter to '\n' if
an empty parameter is passed to -t.
(usage): Mention the operation of -t ''.
* tests/misc/join: Add 2 new tests, for the existing -t '\0'
and the new -t '' functionality.
* doc/coreutils.texi (join invocation): Mention that
join -t '' always operates on the whole line, while
join -t '\0' usually does.
* NEWS: Mention the change in behavior.