Compare commits

...

3316 Commits
v6.4 ... v8.16

Author SHA1 Message Date
Jim Meyering
9566c5851a version 8.16
* NEWS: Record release date.
2012-03-26 14:06:43 +02:00
Jim Meyering
cd65eb9798 tests: work around F17-valgrind sort-stale-thread-mem failure
* tests/misc/sort-stale-thread-mem: Skip upon known failure.
2012-03-26 13:52:58 +02:00
Jim Meyering
a4d14d3533 doc: use $(...), not ... in documentation and comments
* doc/coreutils.texi (dircolors invocation, Examples of expr):
(shred invocation, seq invocation): Use $(...), not `...`.
* src/mv.c (do_move): Likewise, in a comment.
2012-03-26 07:38:37 +02:00
Jim Meyering
488172c499 tests: skip ls/stat-free-color on XFS, rather than always failing
* tests/init.cfg (require_dirent_d_type_): Manually skip when
"." is an xfs file system.
2012-03-23 18:39:11 +01:00
Jim Meyering
4b101ccd17 tests: skip part of dd/sparse on some file systems
* tests/dd/sparse: The last two parts of this test would fail due to
the underlying file system at least on Solaris 10 with NFS.  That file
system would report that a 3MiB file was occupying <= 1KiB of space
for nearly 50 seconds after creation.
Improved-by: Bernhard Voelker
2012-03-23 12:47:52 +01:00
Pádraig Brady
a04110e568 maint: avoid a doc syntax check failure
Prompted by the continuous integration build failure at:
http://hydra.nixos.org/build/2315847

* doc/coreutils.texi (ln invocation): s/path/file name/
2012-03-22 21:25:39 +00:00
Harald Hoyer
15b8318e93 ln: add the --relative option
With the "--relative --symbolic" options, ln computes the relative
symbolic link for the user.

So, ln works just as cp, but creates relative symbolic links instead
of copying the file.

I miss this feature since the beginning of using ln.

$ tree ./
/
`-- usr
    |-- bin
    `-- lib
        `-- foo
            `-- foo

4 directories, 1 file

$ ln -s -v --relative usr/lib/foo/foo usr/bin/foo
‘usr/bin/foo’ -> ‘../lib/foo/foo’

$ tree ./
/
`-- usr
    |-- bin
    |   `-- foo -> ../lib/foo/foo
    `-- lib
        `-- foo
            `-- foo

4 directories, 2 files

$ ln -s -v --relative usr/bin/foo usr/lib/foo/link-to-foo
‘usr/lib/foo/link-to-foo’ -> ‘foo’

$ tree ./
/
`-- usr
    |-- bin
    |   `-- foo -> ../lib/foo/foo
    `-- lib
        `-- foo
            |-- link-to-foo -> foo
            `-- foo

4 directories, 3 files

* src/Makefile.am: Reference the relpath module.
* src/ln.c (usage): Mention the new option.
(do_link): Call the relative conversion if specified.
(convert_abs_rel): Perform the relative conversion
using the relpath module.
* tests/ln/relative: Add a new test.
* tests/Makefile.am: Reference the new test.
* doc/coreutils.texi: Document the new feature.
* NEWS: Mention the new feature.
2012-03-22 20:51:20 +00:00
Pádraig Brady
b1428e3152 maint: refactor relpath() from realpath for use by ln
* src/relpath.c: Refactored from realpath.c and adjusted
to support returning the relative path rather than just
printing to stdout.
* src/relpath.h: Export the relpath function.
* src/Makefile.am: Reference the refactored relpath module.
* po/POTFILES.in: Likewise.
* src/realpath.c: Adjust to the refactored relpath module.
2012-03-22 20:34:57 +00:00
Pádraig Brady
049f1dbe68 maint: ensure PATH_MAX is set correctly
This reverts part of commit v8.12-103-g54cbe6e.

* src/system.h: Include gnulib's pathmax.h to honor
system specific limits, and then we set PATH_MAX only if needed.
Note pathmax.h no longer uses pathconf ("/", _PC_PATH_MAX).
Note I didn't reinstate the comments about limits.h inclusion
order, because pathmax.h includes limits.h anyway.
2012-03-22 12:12:26 +00:00
Jim Meyering
1b1d656b2d build: add numerous gnulib modules, mostly for improved portability
* bootstrap.conf (gnulib_modules): Add numerous modules for
improved portability.  Reported by Eric Blake in
http://thread.gmane.org/gmane.comp.gnu.coreutils.general/2426/focus=2489
* po/POTFILES.in: Add new files.
2012-03-21 22:00:17 +01:00
Jim Meyering
1fcb4ba932 build: update gnulib submodule to latest 2012-03-21 22:00:17 +01:00
Jim Meyering
ee7740c300 maint: use more modern fseeko, rather than fseek
* src/tac.c (temp_stream): Use fseeko, not fseek, on principle:
use the more modern interface.  In general it is better to avoid
fseek due to its ABI-imposed 4GiB limit on the "offset", here its
use was fine because the offset was always 0.  Using fseeko also
has the advantage of not triggering a GNULIB_POSIXCHECK warning.
Reported by Eric Blake in
http://thread.gmane.org/gmane.comp.gnu.coreutils.general/2426/focus=2489
2012-03-21 22:00:17 +01:00
Eric Blake
89bf03c9a1 build: speed up configure for releases
Since most users won't be building with GNULIB_POSIXCHECK defined in
CFLAGS, and since we can make ./configure 10% (several seconds!) faster
by omitting the framework for a posix check, this patch makes it so
that the framework is omitted by default, while still giving
instructions for maintainers to re-enable it.

It's been a while since we've used GNULIB_POSIXCHECK; see this email:
https://lists.gnu.org/archive/html/coreutils/2012-03/msg00126.html
Some of those failures are because we are intentionally avoiding
specific gnulib modules (that is, we have chosen not to use things
like fprintf-posix), but until we work with gnulib to avoid particular
warnings, wiring up an automatic GNULIB_POSIXCHECK to happen during
'make my-distcheck' is not feasible.

* configure.ac (gl_ASSERT_NO_GNULIB_POSIXCHECK): Conditionally
define, according to whether $GNULIB_POSIXCHECK is in environment.
2012-03-20 13:33:04 -06:00
Jim Meyering
56673dbe8a tests: avoid spurious misc/factor failure on OpenBSD 5.1
* tests/misc/factor: Map OpenBSD 5.1's "unknown option" to our
expected "invalid option".  Reported by Bruno Haible.
2012-03-20 17:34:28 +01:00
Jim Meyering
cbedb8aa21 maint: remove now-superfluous coreutils-path-check rule
* dist-check.mk (coreutils-path-check): Now that we set PATH in
TESTS_ENVIRONMENT, it seems like overkill to make "distcheck"
rerun all tests just to check this.
(my-distcheck): Remove sole use.
2012-03-20 17:34:26 +01:00
Eric Blake
a6342a320e doc: clarify current realpath --relative-base behavior
For compatibility with MacOS relpath(1), as seen here:

http://opensource.apple.com/source/bootstrap_cmds/\
bootstrap_cmds-79/relpath.tproj/relpath.c

we implemented 'realpath --relative-base=dir1 --relative-to=dir2 file'
in the same way as 'relpath -d dir1 dir2 file'.  This can result
in --relative-base rendering --relative-to as a no-op if dir1 is a
child of dir2.  Document this.

* doc/coreutils.texi (realpath invocation): Mention restriction.
2012-03-20 10:13:13 -06:00
Pádraig Brady
d42f3a4d41 tests: avoid spurious dd/sparse failure
* tests/dd/sparse: Allow for greater variation in sparse-block counts.
Reported by Nelson H. F. Beebe and Bruno Haible.
2012-03-20 10:30:39 +00:00
Pádraig Brady
eb7ef0148a tests: fix sort-discrim to work without GMP
* tests/misc/sort-discrim: The expr limit is intmax_t without GMP.
2012-03-17 09:39:13 +00:00
Pádraig Brady
ae7b1c383f tests: avoid an ls-time false positive on Solaris 10
* tests/misc/ls-time: Force a ctime update as updating
the atime doesn't update ctime on tmpfs on Solaris 10.
2012-03-16 14:41:51 +00:00
Eric Blake
be17e3b98a realpath: optimize --relative-base usage
There is no need to recompute for every path being visited whether
the base is a prefix of the relative location.

* src/realpath.c (relpath): Hoist base check...
(main): ...here.
Based on a suggestion by Pádraig Brady.
2012-03-15 13:28:19 -06:00
Eric Blake
9f5aa48501 realpath: let --relative-to default to --relative-base
Most of the time, if someone wants to filter which paths are
relative while leaving all others absolute, they also want to
to the filtering based on the same --relative-to directory.
Make this easier to specify.

* src/realpath.c (main): Convert error to default.
* doc/coreutils.texi (realpath invocation): Document this.
* tests/misc/realpath: Adjust test to match.
* NEWS: Document it.
2012-03-15 12:24:05 -06:00
Eric Blake
61167bae9f tests: cover more realpath scenarios
'realpath --relative-base --relative-to' is identical to
--relative-base=--relative-to, so the test wasn't covering what
it claimed.  Expose recent fixes for handling of // on systems
where // is distinct, and for --relative-base=/.  Add test that
exposes our design decision that --relative-base that is not a
prefix of --relative-to is a no-op (if we later change behavior,
we will also have to change that part of the test).

* tests/misc/realpath: Fix typo. Add some tests.
2012-03-15 10:28:42 -06:00
Eric Blake
5e264bf248 realpath: fix problems with root handling
When --relative-base is /, all other paths should be treated as
relative (except for // where it matters).

Also, on platforms like Cygwin where / and // are distinct, realpath
was incorrectly collapsing // into /.  http://debbugs.gnu.org/10472.

* src/realpath.c (path_prefix, path_common_prefix): Treat /
and // as having no common match.
(relpath): Allow for no match even without --relative-base.
* NEWS: Document this.
2012-03-15 10:28:40 -06:00
Eric Blake
a84286ce7a test: expose recent gnulib canonicalize bug
https://lists.gnu.org/archive/html/bug-gnulib/2012-02/msg00038.html
detailed a couple of bugs in gnulib's canonicalize that were visible
through coreutils' readlink, but only on systems where // is distinct
from /.  This particular test assumes the POSIX fix which requires
canonicalization of a symlink containing just slashes to behave as
if slashes separating the symlink from the rest of the name are
elided (see http://austingroupbugs.net/view.php?id=541), as that is
the only useful (and current) behavior on Cygwin.  That is,

ln -s / root
ls root/dev

must list the contents of /dev, not //dev.

* tests/misc/readlink-root: New test.
* tests/Makefile.am (TESTS): Run it.
2012-03-14 09:23:40 -06:00
Paul Eggert
0dd13c463d tests: new discriminator-based test for sort -n and -h
* tests/Makefile.am (TESTS): Add misc/sort-discrim.
* tests/misc/sort-discrim: New file, which tests a discriminator-based
implementation of 'sort'.  Coreutils doesn't use this implementation
yet, but the test is useful anyway.

Co-authored-by: Drew Kutilek <dkutilek@ucla.edu>
Co-authored-by: James Wendt <jwendt@cs.ucla.edu>
2012-03-13 23:23:07 -07:00
Jérémy Compostella
57c929da8b dirname: support more than one argument
* src/dirname.c (main): Handle new -z option and manage more than one
  argument.
* doc/coreutils.texi (dirname invocation): Mention it.
* NEWS (New features): Mention it.
* tests/misc/dirname: Add a two arguments test.
2012-03-10 19:53:06 +00:00
Jérémy Compostella
7480e2db29 split: support an arbitrary number of split files by default
* src/split.c (next_file_name): If `suffix_auto' is true and the first
suffix character is 'z', generate a new file file name adding `z' to
the prefix and increasing the suffix length by one.
(set_suffix_length): Disable auto suffix width in various cases.
* tests/split/suffix-auto-length: Test it.
* doc/coreutils.texi (split invocation): Mention it.
* NEWS (Improvements): Likewise.
2012-03-10 19:36:13 +00:00
Jérémy Compostella
94c21417fe doc: add missing documentation for basename -z
doc/coreutils.texi (basename invocation): Add -z option documentation.
2012-03-09 15:27:48 +00:00
Bernhard Voelker
73f9879ce2 maint: fix a version number typo in NEWS
* NEWS: s/8.14/8.15/
2012-03-09 12:44:30 +00:00
Paul Eggert
8931cdbfda chmod: add notations +40, 00440, etc.
* NEWS: Document this.
* doc/perm.texi (Operator Numeric Modes): New section.
(Numeric Modes, Directory Setuid and Setgid): Document new behavior.
* src/chmod.c (usage): Document new behavior.
(main): Support new options -0, -1, etc.
* tests/chmod/setgid: Test these new features.
2012-03-08 19:01:26 -08:00
Paul Eggert
9076b28464 build: update gnulib submodule to latest 2012-03-08 19:01:26 -08:00
Jim Meyering
f7f398a1d9 du: fix -x: don't ignore non-directory arguments
Surprise!  "du -x non-DIR" would print nothing.
Note that the problem arises only when processing a non-directory
specified on the command line.  Not surprisingly, "du -x" still
works as expected for any directory argument.

When performing its same-file-system check, du may skip an entry
only if it is at fts_level 1 or greater.  Command-line arguments
are at fts_level == 0 (FTS_ROOTLEVEL).

* src/du.c (process_file): Don't use the top-level FTS->fts_dev
when testing for --one-file-system (-x).  It happens to be valid
for directories, but it is always 0 for a non-directory.
* tests/du/one-file-system: Add tests for this.
* NEWS (Bug fixes): Mention it.
Reported by Daniel Stavrovski in http://bugs.gnu.org/10967.
Introduced by commit v8.14-95-gcfe1040.
2012-03-08 13:04:09 +01:00
Jim Meyering
c1d07237a8 maint: use an optimal-for-coreutils xz compression setting
* cfg.mk: Set XZ_OPT = -8e (determined empirically).
This sacrifices 8 KiB of compressed tarball size for a 32-MiB
decrease in the memory required during decompression.  I.e.,
using -9e would shave off only 8 KiB from the tar.xz file, yet
would force every decompression process to use 32 MiB more memory.
2012-03-07 21:08:26 +01:00
Jérémy Compostella
a3eb71a98f basename: support more than one argument
* src/basename.c (perform_basename): New function refactored from
main() that performs the basename work on a STRING, optionally
removes a trailing SUFFIX and outputs the result.
(main): Handle new options.
* doc/coreutils.texi (basename invocation): Mention new options.
* test/misc/basename: Add new options test cases.
* NEWS (New features): Mention it.
2012-03-07 12:59:00 +00:00
Pádraig Brady
4b4a465798 maint: refactor copy to use is_nul()
* src/dd.c: Move is_nul() from here to ...
* src/system.h: ... here
* src/copy.c (sparse_copy): Adjust to use the refactored is_nul()
2012-03-06 23:43:21 +00:00
Pádraig Brady
8195165839 tests: work around a block alignment issue in dd/sparse
Prompted by the continuous integration build failure at:
http://hydra.nixos.org/build/2188210 (which uses XFS).

* tests/dd/sparse (alloc_equal): Add a block allocation
comparison function that accounts for variations due
to alignment.
2012-03-02 10:57:56 +00:00
Rodrigo Campos
4724cd8fe8 doc: timeout: document the exit status when run with "-s KILL"
* src/timeout.c (usage): Document the exit status for this case,
in --help and thus in the man page.  Word so that it covers
both the -s9 and -k options.
* doc/coreutils.texi (timeout invocation): Document the exit
status for this case.
2012-02-29 15:41:15 +00:00
Bernhard Voelker
409a7cc7ea tests: compile and link shared object with $CC to make LD_PRELOAD work
* tests/ls/getxattr-speedup: Compile and link in one step with $CC.
If the shared object file is created by ld (binutils), then the
destructor print_call_count() may not run (seen on OpenSuSE 12.1).
See http://lists.opensuse.org/opensuse/2012-02/msg01342.html
Thanks to Cristian Rodríguez.
2012-02-29 10:01:50 +01:00
Roman Rybalko
4e776faa84 dd: add support for the conv=sparse option
Notes:
  Small seeks are not coalesced to larger ones,
  like is done in cache_round() for example.

  conv= is used rather then oflag= for FreeBSD compatibility.

* src/dd.c (final_op_was_seek): A new global boolean to flag
whether the final "write" was converted to a seek.
(usage): Describe the new conf=sparse option.
(iwrite): Convert a write of a NUL block to a seek if requested.
(do_copy): Initialize the output buffer to have a sentinel,
to allow for efficient testing for NUL output blocks.
If the last block in the file was converted to a seek,
then convert back to a write so the size is updated.
* NEWS: Mention the new feature.
* tests/dd/sparse: A new test for the feature.
* tests/Makefile.am: Reference the new test.
2012-02-29 00:17:56 +00:00
Jérémy Compostella
697d00c321 doc: fix a wrong option reference in split invocation
* doc/coreutils.texi (split invocation): replace `-r' reference with
`-nr/n'.
2012-02-27 00:55:24 +00:00
Jim Meyering
72addfcac9 tests: fix help-version on cygwin, where $EXEEXT is nonempty
* tests/misc/help-version: Remove the $EXEEXT suffix from each
program name before comparing with a literal.
2012-02-26 09:48:48 +01:00
Bernhard Voelker
f19747455e tests: remove unnecessary use of -lc
* tests/ls/getxattr-speedup: Remove unneeded use of -lc.
2012-02-26 09:37:31 +01:00
Paul Eggert
a507ed6ede sort: default to physmem/8, not physmem/16
* src/sort.c (default_sort_size): Don't divide advice by 2.
Just divide the hard limits by 2.  This matches the comments.
Reported by Rogier Wolff in http://bugs.gnu.org/10877
2012-02-25 10:34:57 -08:00
Jim Meyering
4624581d53 doc: clarify a comment in system.h
* src/system.h (STRNCMP_LIT): Clarify comment.
Suggested by Bruno Haible.
2012-02-24 12:22:52 +01:00
Jérémy Compostella
69fed0dfec split: add the --additional-suffix option
Add the --additional-suffix option, to append an
additional static suffix to output file names.

* src/split.c (next_file_name): Append suffix to output file names.
(main): Handle new --additional-suffix option.
* NEWS (New features): Mention it.
* doc/coreutils.texi (split invocation): Mention it.
* tests/split/additional-suffix: New file. Test --additional-suffix.
* tests/Makefile.am (TESTS): Add it.
Requested by Peng Yu, in bug 6554
2012-02-20 13:30:26 +00:00
Pádraig Brady
7f48aa570d ls: adjust errnos indicating device non support for xattrs
* src/ls.c (errno_unsupported): Remove EBUSY, as this caters for
the case where ACLs can't be accessed because the _file_ is locked.
http://lists.gnu.org/archive/html/bug-coreutils/2005-06/msg00191.html
Also ENOENT is not safe to include as you get that if the _file_
is removed between the stat() and subsequent querying of xattrs.
2012-02-20 12:41:21 +00:00
Jérémy Compostella
933989eca6 tests: ls/getxattr-speedup: include <sys/types.h> for older headers
Modern <stdio.h> provides ssize_t, but the one from Debian's
libc6-dev 2.11.2-10 apparently does not.
* tests/ls/getxattr-speedup: Also include <sys/types.h>.
2012-02-19 18:43:53 +01:00
Jérémy Compostella
2fe737e595 doc: fix file names in split --filter=command example
* doc/coreutils.texi (split invocation): Output file names should be
prefixed with `big-' not `big-x'.
2012-02-18 19:31:22 +00:00
Jim Meyering
b29db67676 tests: test for ls speed-up
* tests/ls/getxattr-speedup: New test.
* tests/Makefile.am (TESTS): Add it.
Improved-by: Bernhard Voelker
2012-02-18 13:55:06 +01:00
Jim Meyering
8ca2b9659d ls: cache ACL- and CAP-querying syscall failures
Like the optimization to avoid always-failing getfilecon calls,
this change avoids always-failing queries for whether a file has
a nontrivial ACL and for whether a file has certain "capabilities".
When such a query fails for one file (indicating no support), we know it
will always fail that way for the affected device.  With this change, we
have thus eliminated nearly all failing-unsupported getxattr syscalls.
* src/ls.c (has_capability) [!HAVE_CAP]: Set errno to ENOTSUP.
(errno_unsupported): Expand the list of E* errno values to match
that of lib/acl-internal.h's ACL_NOT_WELL_SUPPORTED macro.
(file_has_acl_cache, has_capability_cache): New functions.
(gobble_file): Use them in place of non-caching ones.
* NEWS (Improvements): Mention it.
Suggested by Sven Breuner in
http://thread.gmane.org/gmane.comp.gnu.coreutils.general/2187
While eliminating most getfilecon calls saved about 33%,
eliminating these other calls can save almost all of the
remaining ~67% cost, on some remote file systems.
2012-02-18 10:26:10 +01:00
Jim Meyering
9f237a03c0 ls: optimize for when getfilecon would often fail (~33% perf. gain)
On systems or file systems without SELinux support, all getfilecon
and lgetfilecon calls would fail due to lack of support.  We can non-
invasively cache such failure (on most recently accessed device) and
avoid the vast majority of the failing underlying getxattr syscalls.
* src/ls.c (errno_unsupported): New function.
(selinux_challenged_device): New file-scoped global.
(getfilecon_cache, lgetfilecon_cache): New error-caching wrapper
functions.
(gobble_file): Use the caching wrappers, for when many *getfilecon
calls would fail with ENOTSUP or EOPNOTSUPP.
Suggested by Sven Breuner in
http://thread.gmane.org/gmane.comp.gnu.coreutils.general/2187
Improved-by: Pádraig Brady.
2012-02-18 10:26:10 +01:00
Jérémy Compostella
d55d3dd588 split: support optional start value for --numeric-suffixes
Allow changing the --numeric-suffixes start number
from the default of 0.

* src/split.c (next_file_name): Initialize the suffix index
and the output filename according to start value.
(main): Check that the suffix length is large enough for the
numerical suffix start value.
* doc/coreutils.texi (split invocation): Mention it.
* NEWS (New features): Mention it.
* tests/split/numeric: New file. Test --numeric-suffixes[=FROM].
* tests/Makefile.am (TESTS): Reference the new test.
2012-02-18 02:09:32 +00:00
Pádraig Brady
557b3b2a35 doc: fix a typo about seek_bytes in NEWS
* NEWS: s/count_bytes/seek_bytes/2
2012-02-17 11:28:01 +00:00
Bernhard Voelker
bf5ba002c2 doc: improve 'rm -f' description
* doc/coreutils.texi (rm invocation): Mention that the -f option also
silences the message for missing operands, which is useful in scripts
e.g., for "rm -f $file_list" when $file_list is empty.
* src/rm.c (usage):  Likewise.
Reported by Jérémy Magrin in http://bugs.gnu.org/10819
2012-02-16 14:54:49 +01:00
Pádraig Brady
4bb5dbcfef dd: fix issues in the count_bytes and seek_bytes flags change
These edge cases were missed in the previous commit 140eca15c.

* src/dd.c (main): Include the bytes slop when truncating
without further I/O.  Don't invalidate the whole file cache
in the case where 0 < count < ibs.
* tests/dd/bytes: Change to using the independent truncate
command to generate the file for comparison.  Remove a redundant
test case and replace with one testing the truncation only logic.
2012-02-13 21:58:21 +00:00
Jérémy Compostella
140eca15c4 dd: add count_bytes, skip_bytes and seek_bytes flags
dd now accepts the count_bytes and skip_bytes input flag and the
seek_bytes output flag, to more easily allow processing portions of a
file.

* src/dd.c (scanargs): Compute skip_records and skip_bytes when
'skip_bytes' iflag is used. Compute max_records and max_bytes when
'count_bytes' iflag is used. Compute seek_records and seek_bytes
when 'seek_bytes' oflag is used.
(skip_via_lseek): Use new 'bytes' parameter and handle potential
'records' equals to zero. Update the bytes parameter when called with
'fdesc' equal to STDOUT_FILENO. Update the header comments.
(dd_copy): Skip accordingly to skip_records AND skip_bytes. Count
accordingly to max_records AND max_bytes. Seek on output accordingly
to seek_records AND seek_bytes.
* NEWS (New features): Mention it.
* doc/coreutils.texi (dd invocation): Detail new flags and behaviors.
* tests/dd/bytes: New file. Tests for these new flags.
* tests/Makefile.am (TESTS): Add it.
2012-02-12 17:34:28 +00:00
Jim Meyering
da2b32e7af build: correct @@-,length values in last hunk of regcomp.c.diff
* gl/lib/regcomp.c.diff: Correct invalid hunk lengths (s/1/7/g)
in the last hunk's @@-line.
2012-02-12 14:37:00 +01:00
Jim Meyering
e57a547bc0 build: update gnulib, bootstrap, gl/lib/regcomp.c.diff
* gnulib: Update submodule to latest.
* bootstrap: Update from gnulib.
* gl/lib/regcomp.c.diff: Adapt to gnulib changes.
2012-02-12 12:21:56 +01:00
Jim Meyering
b01355a1dc mv: "mv A B" would sometimes succeed, yet A would remain, ...
But only when both A and B were hard links to the same symlink.
* src/copy.c (same_file_ok): Handle another special case: the one
in which we are moving a symlink onto a hard link to itself.
In this case, we must explicitly tell the caller to unlink the
source file.  Otherwise, at least the linux-3.x kernel rename
function would do nothing, as mandated by POSIX 2008.
* tests/mv/symlink-onto-hardlink-to-self: New test.
* tests/Makefile.am (TESTS): Add it.
* NEWS (Bug fixes): Mention it.
Reported by Bernhard Voelker in http://bugs.gnu.org/10686
2012-02-12 12:21:53 +01:00
Jérémy Compostella
31eeead938 maint: add braces as requested by HACKING coding standard
* src/dd.c (dd_copy): Braces were missing for this do/while statement.
2012-02-06 01:34:20 +00:00
Pádraig Brady
02551d8a62 doc: clarify --help output for some optional arguments
* src/pr.c (usage): Fix the -S description to indicate
that the argument is optional for the short option.
* doc/coreutils.texi (pr invocation): Likewise.
* src/od.c (usage): Fix the -S description to indicate
that the argument is required for the short option.
Clarify -w takes an argument and that it is optional.
2012-01-31 12:53:45 +00:00
Jim Meyering
447b5d9320 maint: sort: remove the last uses of "'%s'" in diagnostics
* src/sort.c (key_warnings): Use quote (quote_n, since there are two)
rather than literal single quotes ('%s') in diagnostic.
2012-01-30 20:43:58 +01:00
Jim Meyering
d1b0155d80 mv: allow moving symlink onto same-inode dest with >= 2 hard links
Normally, mv detects a few subtle cases in which proceeding with a
same-file rename would, with very high probability, cause data loss.
Here, we have found a corner case in which one of these same-inode
tests makes mv refuse to perform a useful operation.  Permit that
corner case.
* src/copy.c (same_file_ok): Detect/exempt this case.
* tests/mv/symlink-onto-hardlink: New test.
* tests/Makefile.am (TESTS): Add it.
* NEWS (Bug fixes): Mention it.
Initially reported by: Matt McCutchen in http://bugs.gnu.org/6960.
Raised again by Anders Kaseorg due to http://bugs.debian.org/654596.
Improved-by: Paul Eggert.
2012-01-30 20:43:07 +01:00
Jim Meyering
67ebdb9f20 build: update gnulib, for syntax-check vs canonicalize fix 2012-01-30 08:36:25 +01:00
Jim Meyering
d7878454cd maint: use single copyright year range
Run "make update-copyright".
2012-01-27 11:35:24 +01:00
Jim Meyering
3068c84765 maint: make copyright statements more consistent; update gnulib
* cfg.mk (update-copyright-env): Add UPDATE_COPYRIGHT_FORCE=1
to rejoin some split lines, and UPDATE_COPYRIGHT_USE_INTERVALS=2
to make update-copyright use only one year range.
* gnulib: Update to latest, for newer update-copyright script.
2012-01-27 11:33:19 +01:00
Jim Meyering
2a90c5a125 maint: fix copyright in old fileutils ChangeLog
* old/fileutils/ChangeLog-1997: Insert omitted "Free Software" in
the name of the copyright holder.  Compress year range.
2012-01-27 11:32:24 +01:00
Pádraig Brady
d955282324 maint: remove some redundant automake _SOURCES
* src/Makefile.am: Remove auto generated entries.
2012-01-26 00:02:37 +00:00
Pádraig Brady
14a1e3ea83 maint: cleanup an extraneous version output in a test
* test/misc/stdbuf: Fixup the minor copy & paste issue
introduced in commit ff7f0ff8
2012-01-25 23:16:17 +00:00
Pádraig Brady
9d46b25ded realpath: avoid the use of printf
This was seen to give an 11% performance improvement.

* src/realpath.c (relpath): Avoid using printf.
(process_path): Likewise.
2012-01-25 19:51:43 +00:00
Pádraig Brady
c5cb291939 maint: use the standard require_perl_ function
* tests/cp/sparse-fiemap: Don't use a separate check.
2012-01-25 18:19:55 +00:00
Pádraig Brady
11af4b31b6 realpath: remove extraneous '/' for --relative-to edge cases
* src/realpath.c (path_common_prefix): Be consistent and
always include a leading '/' in the count returned.
(relpath): Account for the change in path_common_prefix()
and avoid outputting extra '/' chars in relative paths that
span the root dir.
* tests/misc/realpath: Add the two reported cases.
Reported by Mike Frysinger
2012-01-25 18:01:52 +00:00
Jim Meyering
e9a2555826 build: update gnulib to latest, for test warning fixes
See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/29810
for details.
2012-01-23 17:59:57 +01:00
Jim Meyering
dec02bb98e tests: remove crufty test=test_name code from old tests
Before init.sh and similar, we would set test=test_name, and then
construct temporary file names using $test.  Now that each
init.sh-using test is in its own directory, that practice is unwelcome.
Remove bad examples.
* tests/rm/f-1: Per above.
* tests/rm/i-1: Likewise.
* tests/rm/interactive-always: Likewise.
* tests/rm/interactive-once: Likewise.
* tests/rm/ir-1: Likewise.
* tests/rm/r-1: Likewise.
2012-01-23 14:42:10 +01:00
Paul Eggert
80bc8651fd maint: quote 'like this' or "like this", not `like this'
* doc/coreutils.texi (Formatting the file names):
coreutils now quotes 'like this'.
* man/help2man:
* src/timeout.c (usage): Quote 'like this' in diagnostics.
* HACKING, Makefile.am, NEWS, README, README-hacking, TODO, cfg.mk:
* doc/Makefile.am, doc/coreutils.texi, m4/jm-macros.m4:
* man/Makefile.am, man/help2man, src/Makefile.am, src/copy.h:
* src/extract-magic, src/ls.c, src/pinky.c, src/pr.c, src/sort.c:
* src/split.c, src/timeout.c, src/who.c, tests/dd/skip-seek-past-file:
* tests/pr/pr-tests: Quote 'like this' in commentary.
* cfg.mk (old_NEWS_hash): Update due to changed old NEWS.
2012-01-22 15:26:38 -08:00
Pádraig Brady
132d005515 stat: clarify the description of the %o stat format
* src/stat.c (usage):  Indicate this is a transfer size
suggestion, rather than some persistent block size.
* doc/coreutils.texi (stat invocation): Likewise.
2012-01-20 14:22:56 +00:00
Jim Meyering
fd0b040fa5 doc: tweak an @uref so its alt reference text renders in info
* doc/coreutils.texi (Opening the software toolbox): Remove commas
from @uref argument, so the alternate text renders properly in info.
Reported by Reuben Thomas.
2012-01-14 21:47:41 +01:00
Pádraig Brady
3c8e42957e maint: fix minor whitespace issues
The previous commit introduced a couple of spacing issues,
luckily one of which caused a test to fail.

* src/stat.c (default_format): Add a space so times are aligned.
* src/tr.c (string2_extentd): Remove an extraneous space.
2012-01-11 15:32:09 +00:00
Jim Meyering
d3227eeb90 maint: adjust formatting of certain continued strings
Add a rule to ding any source file that has a continued string
with a word in the first column of the following line.
Those tend to trigger malfunction in tools that try to map an
arbitrary line number to an enclosing function name.  Of course,
very many strings do precisely this, *when they are part of the
usage function*.  So we exempt the body of each usage function.
* src/dircolors.c (main): Separate a long, continued string
into two separately-quoted parts.
* src/od.c (decode_one_format): Likewise.
(decode_one_format, main): Move a space from end of
preceding line to the beginning of the continued line.
* src/tr.c (unquote, string2_extend, validate): Likewise.
* src/seq.c (main): Split in two and use string concatenation.
* src/stat.c (default_format): Use a mix of techniques.
* cfg.mk (sc_prohibit_continued_string_alpha_in_column_1): New rule.
Exempt three files in src: system.h, od.c, printf.c.
2012-01-11 09:27:50 +01:00
Jim Meyering
bfe711db1c maint: straggler *.[ch] files: convert more `...' to '...'
The preceding commands ignored .[ch] files in lib/ and gl/.
This is what I should have been doing from the start:

  git grep -l '`.*'\' $(g ls-files |grep '\.[ch]$') \
    | xargs perl -pi -e 's/`(.+?'\'')/'\''$1/'
2012-01-09 22:38:24 +01:00
Jim Meyering
3ba8b04426 maint: src/*.[ch]: convert more `...' to '...'
Run this (twice):
  git grep -E -l '`.+'\' src/*.[ch] \
    |xargs perl -pi -e 's/`(.+?'\'')/'\''$1/'
2012-01-09 21:51:59 +01:00
Jim Meyering
a517386f1b maint: src/*.c: change remaining quotes (without embedded spaces)
Run this (twice):
  git grep -E -l '`[^ ]+'\' src/*.c \
    |xargs perl -pi -e 's/`([^ ]+'\'')/'\''$1/'
2012-01-09 21:50:08 +01:00
Jim Meyering
9af0dced5a maint: convert `...' to '...' in --help output
All affected lines end with \ or \n\, so run this command
until it produces no new changes (4 times):
  git grep -E -l '`[^ ]+'\''.*\\' src \
    |xargs perl -pi -e 's/`([^ ]+'\''.*\\)/'\''$1/'
2012-01-09 21:50:08 +01:00
Jim Meyering
36b9a1b6ac maint: adjust quoting: emit '...', not `...' in diagnostics
* src/csplit.c (parse_repeat_count, extract_regexp): As above.
* src/date.c (main): Likewise.
* src/ls.c (decode_switches): Likewise.
* src/od.c (decode_one_format, main): Likewise.
* src/pathchk.c (no_leading_hyphen): Likewise.
* src/pr.c (main, getoptarg): Likewise.
* src/rm.c (diagnose_leading_hyphen): Likewise.
* src/sort.c (key_warnings, incompatible_options, main): Likewise.
* src/stat.c (print_esc_char): Print '\x', not `\x' in diagnostic.
* src/test.c (main): Likewise.
* src/touch.c (main): Likewise.
* src/tr.c (build_spec_list, validate, append_range): Likewise.
* tests/misc/mktemp: This is an unusual case, since the affected
string contains only the ` of an `...' string.  So we change
the long ` to a lone '.
* tests/pr/pr-tests: Manual quote adapting fix-up.
* tests/ln/hard-to-sym: Likewise.
* tests/split/suffix-length: Likewise.
* tests/mv/part-fail: Likewise.
* tests/misc/chcon: Likewise.
* tests/misc/stat-printf: Likewise.
2012-01-09 21:50:08 +01:00
Jim Meyering
ae2b0d2ddc tests: more automated quote adjustment
Relax initial regexp to match more instances, but add a
filter to avoid some invalid conversions.  Run this:

git grep -l "\`[^']*'" tests | xargs perl -pi -e '$q=q"'\''";' \
  -e '$q="$q\\$q$q"; /(= ?\`|\`expr|\`echo|\Q$q\E)/ and next;' \
  -e ' s/\`([^'\''"]*?'\'')/'\''$1/g'
The last disjunct in the above (...) filter is to exempt
any line that contains this string: '\''
With quoting like that, converting a ` to ' is likely to cause trouble,
so we'll handle those manually.  Here are three examples where
the exemption is required:

  *': `link-to-dir/'\'': hard link not allowed for directory'*) ;;
  printf 'creating file `%s'\''\n' $f
  'mv: inter-device move failed: `%s'\'' to `%s'\'';'\
2012-01-09 21:50:08 +01:00
Jim Meyering
dd0e4c5621 tests: change `...' to '...' on lines not matching /[=\$]/
Exempt lines with '$' or '=', since those are prone to improper
conversion.  Run this:
  git grep -l "\`[^']*'" tests \
   |xargs perl -pi -e '/[=\$]/ and next;s/\`([^'\''"]*?'\'')/'\''$1/g'
2012-01-09 21:50:08 +01:00
Jim Meyering
50610144b0 tests: adjust \`...' quoting to '...' to adapt to latest gnulib
Run this:
  git grep -l "\\\\\`[^']*'" tests \
    |xargs perl -pi -e 's/\\\`(.*?'\'')/'\''$1/g
2012-01-09 21:50:08 +01:00
Jim Meyering
68a959262a build: update gnulib submodule to latest (quoting change)
This pulls in changes to the quote and quotearg modules that
render quoted strings in diagnostics.  `Old' vs 'new'.
2012-01-09 21:50:07 +01:00
Jim Meyering
84e742fab4 maint: prep for global quoting changes: handle irregular cases manually
* src/chroot.c (usage): Change ``...'' to '...', and describe the
default more accurately (also adding quotes): s,/bin/sh,'/bin/sh -i',
* src/join.c (usage): Change ` ...'' ' to "...''".
* src/fmt.c (isopen): Change `' to '` in list of bytes, so that
a subsequent change can safely perform the `...' to '...' conversion.
* src/truncate.c (main): Tweak quoting in comments to use '...',
not `...`, for consistency with the rest of comments in coreutils.
2012-01-09 21:49:51 +01:00
Jim Meyering
8ac05f82a2 maint: update quoting of "Try `prog --help'" to "Try 'prog --help'"
Automatically adjust both the source (now in only one place)
and all tests that expect the resulting output via this:

git grep -l 'Try.*--help' src/system.h tests \
  | xargs perl -pi -e 's/Try \\?`(\S+ --help)/Try '\''$1/'
2012-01-07 17:18:14 +01:00
Jim Meyering
101d1203c6 maint: use new emit_try_help in place of equivalent fprintf
Run this command:
  perl -0777 -pi -e \
   's/fprintf \(stderr, _\("Try `%s --help.*\n.*;/emit_try_help ();/m'\
     src/*.c
2012-01-07 16:54:26 +01:00
Jim Meyering
22af6d9752 maint: factor out all `Try --help'-emitting statements
* src/system.h (emit_try_help): New function.
2012-01-07 16:42:41 +01:00
Jim Meyering
1df91bd6b9 maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2012-01-06 18:29:53 +01:00
Jim Meyering
b26c2cd3d7 version 8.15
* NEWS: Record release date.
2012-01-06 18:05:54 +01:00
Jim Meyering
ce0e4459c4 scripts: allow one-line summary to start with "[Vv]ersion \d"
* scripts/git-hooks/commit-msg: Do not reject the commit log
message generated by our automated release-and-tag process.
(bad_first_line): New function, extracted from...
(check_msg): ... here.  Use it.
2012-01-06 17:51:52 +01:00
Jim Meyering
59cb41ecd7 build: update gnulib submodule to latest 2012-01-06 14:16:15 +01:00
Jim Meyering
e8fb9b0169 tests: adjust quoting in expected output to match new gnulib policy
* tests/misc/xstrtol: Use '...' to match new quoting in most places.
However, leave `9x' to match the sole comparison against output
from the quote function, which still uses `...'.
* tests/misc/sort-merge: Likewise, though here I had to leave
`...'-quoted output to match output from four tests.
* tests/pr/pr-tests: Convert a single `...' to '...'.
* gnulib: Update submodule to latest.
2012-01-06 11:00:36 +01:00
Jim Meyering
847446ac84 maint: adjust ChangeLog to reflect earlier df request
* build-aux/git-log-fix: Credit early reporter.
* THANKS.in: Add a name.
2012-01-06 10:14:19 +01:00
Pádraig Brady
c84c362207 tests: avoid stty icanon issues on some platforms
* tests/misc/stty: Exclude 'icanon' for the list to check,
as it's problematic on ppc*|sparc* platforms.
2012-01-05 15:31:50 +00:00
Pádraig Brady
45354d58de tests: avoid ulimit issue on bash 3.2 on OS X
* tests/misc/sort-continue: Perform the glob before
the ulimit, as it was seen to make the glob fail
on bash 3.2 on Mac OS X 10.6.8 at least.
2012-01-05 15:13:34 +00:00
Pádraig Brady
512662fb30 tests: avoid a false positive due to overflow on Linux/HPPA
* tests/misc/timeout-parameters: Verify that the timer doesn't
fire immediately in the problematic range, and avoid overflow
checks in that case.
* man/timeout.x: Mention the possible bug.

Reported by Bruno Haible
2012-01-05 15:12:16 +00:00
Jim Meyering
101a30a2a0 tests: adjust setfacl usage to accommodate Solaris 10
* cfg.mk (sc_prohibit_short_facl_mode_spec): New rule.
* tests/cp/acl: Extend setfacl mode spec to have length 3.
* tests/ls/slink-acl: Likewise.
* tests/mv/acl: Likewise.
Report and analysis by Bruno Haible.
2012-01-05 11:48:35 +01:00
Bruno Haible
931e0f2a70 split: avoid failure due to leftover 'errno' value
* src/split.c (lines_chunk_split): Fix logic bug that led to
unwarranted failure of "split -n l/2 /dev/zero" on NetBSD 5.1.
The same would happen when splitting a growing file, where
open/lseek-end gives one size, but by the time we read, there
is more data available.
(bytes_chunk_extract): Likewise.
* NEWS (Bug fixes): Mention this.
* tests/split/l-chunk: The latter case was not exercised.
Add code to do that.
Bug introduced with the chunk-selecting feature in v8.7-25-gbe10739.

Co-authored-by: Jim Meyering <meyering@redhat.com>
2012-01-05 11:46:48 +01:00
Jim Meyering
4d3e398a74 doc: README: recommend GNU make to run tests on IRIX 6.5 and Solaris 9
* README: Document vendor "make check" failure on those two systems.
Reported by Bruno Haible.
2012-01-05 08:10:29 +01:00
Jim Meyering
d015505528 maint: ignore *.trs files, lib/getopt.h and build-aux/test-driver
* .gitignore: Also ignore automake's new .trs files and its
build-aux/test-driver, as well as lib/getopt.h.
2012-01-04 20:25:38 +01:00
Jim Meyering
2403b1caa5 doc: adjust NEWS
* NEWS (New programs): Move this small section to the top.
(df): Reword entry, from Pádraig Brady.
2012-01-03 17:34:31 +01:00
Jim Meyering
1e18d8416f df: work around long-named /dev/disk/by-uuid/... symlinks
On systems with recent kernel/tools, a symlink from /etc/mtab to
/proc/mounts, and a by-UUID mount (i.e., soon, nearly everyone),
you will see something like the following when running "df -hT":
(this has been truncated to fit in a width-limited ChangeLog file)

Filesystem                                             Type      Siz...
rootfs                                                 rootfs     11G
udev                                                   devtmpfs  3.8G
tmpfs                                                  tmpfs     774M
/dev/disk/by-uuid/828fc648-9f30-43d8-a0b1-f7096a2edb66 ext4       11G
tmpfs                                                  tmpfs     1.6G
/dev/sda2                                              ext3      494M
/dev/sda5                                              ext4       12G
/dev/sda6                                              ext4      9.9G

Contrast that with what we're used to seeing (modulo the
two entries mounted on "/", which is a separate problem):

Filesystem     Type      Size  Used Avail Use% Mounted on
rootfs         rootfs     11G  1.9G  8.0G  19% /
udev           devtmpfs  3.8G     0  3.8G   0% /dev
tmpfs          tmpfs     774M  376K  774M   1% /run
/dev/sda3      ext4       11G  1.9G  8.0G  19% /
tmpfs          tmpfs     1.6G  8.0K  1.6G   1% /run/shm
/dev/sda2      ext3      494M   78M  392M  17% /boot
/dev/sda5      ext4       12G  7.6G  3.7G  68% /usr
/dev/sda6      ext4      9.9G  6.6G  2.8G  71% /var

When that long /dev/disk/by-uuid/... name is merely a symlink
to a much shorter (and often more useful) device name like
"/dev/sda3", and when it's part of a listing of all file systems,
I would much prefer to see only the latter.  Similarly, when using
an encrypted root file system, you would see a name like
/dev/mapper/luks-828fc648-9f30-43d8-a0b1-f7196a2edb66 pointing
to say, /dev/dm-0, I prefer the shorter name.

I.e., if I explicitly run
"df -hT /dev/disk/by-uuid/828fc648-9f30-43d8-a0b1-f7096a2edb66",
then, it's fine -- and expected -- to print to the long name.
It was explicitly given.  However, with no non-option argument,
df should print the shorter name.  Note that performing this
translation at a lower level (via a change to gnulib's mountlist.c)
would make it impossible to distinguish those two cases.

* src/df.c: Include "canonicalize.h".
(get_dev): Add a parameter, telling when we're in process-all-
mount-points mode; update all callers.  When true, resolve
UUID-suffixed symlinks.
* NEWS (Changes in behavior): Mention it.
Reported by Dan Jacobson in http://bugs.gnu.org/10363
2012-01-03 16:55:58 +01:00
Jim Meyering
520b69ce36 tests: adjust realpath test to avoid "make distcheck" failure
* tests/misc/realpath: Quote lhs of test ... = ..., so that
when $PWD contains a space (like it does via "make distcheck"),
the test does not fail
2012-01-03 12:58:37 +01:00
Pádraig Brady
77ea441f79 realpath: a new program to print the resolved path
This program is compatible with other realpath(1)
implementations, and also incorporates relpath like support,
through the --relative options.  The relpath support
was suggested by Peng Yu, who also provided an initial
implemenation of that functionality.

* AUTHORS: Add my name.
* NEWS: Mention the new command.
* README: Likewise.
* doc/coreutils.texi (realpath invocation): Add realpath info.
* man/Makefile.am (realpath.1): Add dependency.
* man/realpath.x: New template.
* man/.gitignore: Ignore generated man page.
* po/POTFILES.in: Add src/realpath.c.
* src/.gitignore: Exclude realpath.
* src/Makefile.am (EXTRA_PROGRAMS): Add realpath.
* src/realpath.c: New file.
* scripts/git-hooks/commit-msg: Add realpath to the list of prefixes.
* tests/Makefile.am (TESTS): Add misc/realpath.
* tests/misc/realpath: New file.
2012-01-03 11:36:32 +00:00
Pádraig Brady
76352c770e build: update gnulib for canonicalize_filename_mode improvements
This is required for the new realpath command.
2012-01-03 11:34:42 +00:00
Jim Meyering
3a189ae0ce build: tail: avoid type/format mismatch warning from gcc
Without this change, gcc's -Werror=format would complain that
the '%lx' format requires 'long unsigned int', not 'int'.
* src/tail.c (fremote): Use a temporary variable.
2012-01-02 22:35:36 +01:00
Jim Meyering
794e52b7bd tests: also print chmod's --version
* tests/rm/many-dir-entries-vs-OOM: This test also exercises chmod.
2012-01-01 18:40:54 +01:00
Jim Meyering
5111aa4296 maint: update all copyright year number ranges
Run "make update-copyright".
2012-01-01 10:04:06 +01:00
Jim Meyering
75a21e6248 tests: change copyright year from 2011 to 2012 in sample-test
This file is special.  We don't want to use a range,
but merely the current year number.
* tests/sample-test: s/2011/2012/
2012-01-01 10:03:50 +01:00
Jim Meyering
76fd122a85 tests: fix a missing-dependency problem
* tests/check.mk (.built-programs): Depend on src/Makefile.am,
so that when we add a program, this file is updated, and the new
program is tested via misc/help-version.  Spotted by Pádraig Brady.
2011-12-31 12:30:46 +01:00
Jim Meyering
9be9d120f0 build: avoid spurious test.c warning with -Wsuggest-attribute=pure
* src/test.c: Add pragma to suppress gcc-4.6.2's warning that
"advance" might be candidate for attribute 'pure'.
2011-12-30 22:48:38 +01:00
Jim Meyering
6e00315bf2 tail: avoid theoretically undefined behavior
* src/tail.c (start_lines): Do not form potentially-invalid address.
Use safe_read's return value as a pointer offset only after
ensuring that it is not SAFE_READ_ERROR (size_t)(-1).
Spotted by coverity.
Also, move declaration of "p" to be closer to first use.
2011-12-28 18:53:32 +01:00
Jim Meyering
3e7a1473ae tests: also unset _STDBUF_E, _STDBUF_I and _STDBUF_O
* tests/envvar-check (vars): Add these to the list of envvars we
ignore: _STDBUF_E, _STDBUF_I, _STDBUF_O, used by libstdbuf.
2011-12-28 18:01:01 +01:00
Pádraig Brady
44e20cda07 doc: homologize ch{con,grp,mod,own} option descriptions
* src/chgrp.c (usage): Group associated options together,
to aid users.  Also minimize the differences between
individual messages across these four commands, to
aid translators.
* src/chmod.c: Likewise.
* src/chown.c: Likewise.
* src/chcon.c (usage): Likewise.  Document the
--dereference option.

Suggested by Paul Eggert and Jari Aalto
2011-12-26 22:19:46 +00:00
Jim Meyering
b1230020dc stat,tail: recognize new FS type: pipefs
* src/stat.c (human_fstype) [S_MAGIC_PIPEFS]: New case.
* NEWS (Bug fixes): Mention this.
2011-12-26 16:37:55 +01:00
Jim Meyering
b2a6fb0ac9 doc: stat: clarify that %t and %T expand to the file system type
* src/stat.c (usage): Mention "file system type", not just "type"
for %t and %T.  Do not capitalize the first letter of each description.
2011-12-24 12:03:18 +01:00
Jim Meyering
9c54c0a1d0 tail: with -f, use polling when a file is on an FS of unknown type
Before, we would use inotify in that case, which would work as long
as updates were taking place locally, but not at all when remote.
Move hard-coded list of known remote FS types into a more
maintainable table in stat.c, alongside the list of FS
names and magic numbers.  Generate a new is_local_fs_type function.
* src/Makefile.am (fs-is-local.h): New rule, generated file.
* src/extract-magic: Revamp to parse local/remote keyword after
each magic number in src/stat.c's case statements.
Accept new --local option.
* src/.gitignore: Ignore the generated fs-is-local.h.
* src/tail.c [HAVE_INOTIFY]: Include fs-is-local.h.
(fremote) [HAVE_INOTIFY]: Use the new function in place of
the switch stmt with hard-coded list of FS types.
Emit a warning when processing a file on a file system of unknown type.
* NEWS (Changes in behavior): Mention it.
Suggested by Sven Breuner.
2011-12-23 22:39:14 +01:00
Jim Meyering
6e3299fcdb doc: update README-release with process to check for new FS magic
* README-release: Run the Makefile rule that checks for new file
system magic numbers.
2011-12-22 10:15:51 +01:00
Jim Meyering
8965297092 tail,stat: add support for FhGFS
* src/stat.c (human_fstype): Add a case: fhgfs, 0x19830326.
* src/tail.c (fremote): Add S_MAGIC_FHGFS.
* NEWS (Bug fixes): Update the entry for GPFS to mention FhGFS, too.
Reported by Sven Breuner.
2011-12-22 09:36:31 +01:00
Jim Meyering
ed71262bc2 doc: improve factor example
* doc/coreutils.texi (factor invocation): Adjust example to use $(...)
consistently, not a mix of `...` and $(...).  Separate the computation
of the product and the actual factorization, so the timing of the
latter doesn't include the cost of the former.
2011-12-20 14:39:57 +01:00
Jim Meyering
f797c04415 build: remove now-useless code from bootstrap.conf
* bootstrap.conf (bootstrap_epilogue): Remove now-unnecessary,
snippet that edited gnulib-tests/gnulib.mk.  This snippet was
rendered unnecessary by commit v8.14-73-g5bf2c0e.
2011-12-17 17:26:00 +01:00
Jim Meyering
e71f0d9df3 build: merge in bootstrap changes from gnulib
* bootstrap: Pull in the combination of gnulib's "bootstrap: detect
tools required by gnulib-tool" patch and the related fix.
2011-12-17 16:38:23 +01:00
Paul Eggert
cfe1040c09 du: -x should not count files in other file systems
This fixes Bug#10293, which I guess was introduced in commit
95c948b06a dated 2003-10-02.
* NEWS: Document fix.
* src/du.c (process_file): Don't count files in different file
systems if -x is given.
* tests/du/one-file-system: Test for this bug.
2011-12-14 18:04:05 -08:00
Paul Eggert
021a066409 doc: document 'touch' and timestamps better
* doc/coreutils.texi (touch invocation): Explain file timestamps
better.  Problem reported by Nelson H.F. Beebe (Bug#7999).
2011-12-12 16:57:33 -08:00
Jim Meyering
a3fee8b6af ls: give a more useful diagnostic for a bogus --time-style arg
* src/ls.c (decode_switches): Replace our use of XARGMATCH
with open-coded version so that we can give a better diagnostic.
* tests/ls/time-style-diag: New file.
* tests/Makefile.am (TESTS): Add it.
Reported by Dan Jacobson in http://bugs.gnu.org/10253
with suggestions from Eric Blake and Paul Eggert.
2011-12-12 12:19:55 +01:00
Jim Meyering
da4793e949 maint: remove a misleading comment from shred.c
* src/shred.c: Remove obsolete TODO comment.  The first two and the
last item were done, adding --recursive (-r) is neither necessary
nor appropriate, and I don't want to add --interactive.  I don't
see a need for the others.  Prompted by comments from Amr Ali.
2011-12-09 20:18:29 +01:00
Jim Meyering
c592a00f8f ls: be responsive to interrupts when color-listing large directories
Starting with commit adc30a83, when using --color, ls inhibited
interrupts to avoid corrupting the state of an output terminal.
However, for very large directories, that inhibition rendered ls
uninterruptible for too long, including a potentially long period
even before any output is generated.
* src/ls.c: Two phases of processing are time-consuming enough that
they can provoke this: the readdir loop and the printing loop.  The
printing was supposed to be covered by a call to process_signals in
(print_name_with_quoting): ... but that call was mistakenly guarded
by a condition that might be false for many or even all files being
processed.  Call process_signals unconditionally.
(print_dir): Also call process_signals in the readdir loop.
* NEWS (Bug fixes): Mention it.
Reported by Arkadiusz Miśkiewicz in http://bugs.gnu.org/10243
Co-authored-by: Eric Blake <eblake@redhat.com>
2011-12-08 12:17:54 +01:00
Paul Eggert
6eb3cf234f ln: clarify usage of -L, -n, -T
* src/ln.c (usage): Use clearer wording to describe the -L, -n,
and -T options (Bug#9896).
2011-12-05 14:39:51 -08:00
Paul Eggert
db38db4836 maint: don't assume GNU make \# syntax (fix previous)
* src/Makefile.am (fs_normalize_perl_subst, fs-magic, fs-kernel-magic):
Undo previous patch; it missed a \#.
(fs_normalize_perl_subst): Use \043 rather than \#.
\043 is portable to all ASCIIish platforms, whereas \# is portable
only to platforms that are compatible with GNU make (and are
incompatible with POSIX make).  Porting this to EBCDIC is left as
an exercise for the reader....
2011-12-05 14:04:37 -08:00
Jim Meyering
d72e8dff04 maint: sort, stat: remove unused parameters
* src/sort.c (struct thread_args) [is_lo_child]: Remove member.
(sortlines): Remove unused parameter, "is_lo_child".  Update callers.
* src/stat.c (out_epoch_sec): Mark unused parameter.
(do_statfs, do_stat): Remove unused parameter, "terse". Update callers.
2011-12-05 22:49:34 +01:00
Paul Eggert
787592587d maint: don't assume GNU make \# syntax
* src/Makefile.am (fs_normalize_perl_subst): Don't make unportable
assumption about \# in the right hand side of a macro definition.
This works with GNU make, but not with POSIX make.
Problem reported by Basavaraj B (Bug#10220).
(fs-magic, fs-kernel-magic): Do the #-substitution here instead.
2011-12-05 13:30:15 -08:00
Jim Meyering
63098ee582 od,test: address warnings from gcc's -Wjump-misses-init
* src/test.c (unary_operator): gcc reported that initializations
in two case statements were skipped.  Enclose in braces.
* src/od.c (decode_one_format): Likewise.
2011-12-04 10:31:03 +01:00
Jim Meyering
bea7b10489 maint: remove redundant usage declarations (-Wredundant-decls)
* src/csplit.c (usage): Remove declaration.
* src/ls.c (usage): Likewise.
* src/pr.c (usage): Likewise.
2011-12-04 10:27:52 +01:00
Jim Meyering
79c5fcc681 maint: add missing ":" after "License" in local gnulib module files
This avoids spurious diagnostics when running our "bootstrap" script.
* gl/modules/heap: Append colon after "License".
* gl/modules/randint: Likewise.
* gl/modules/randperm: Likewise.
* gl/modules/randread: Likewise.
Reported by Stefano Lattarini.  Diagnosed by Bruno Haible.
2011-12-03 14:04:23 +01:00
Eric Blake
01fc9e146c doc: fix list of GNU extension date formats
I didn't check how long these were documented as GNU extensions,
nor when they were added by POSIX; but since they are all part
of POSIX 2008, we no longer need call them out as extensions.

The next version of POSIX will standardize %s:
http://austingroupbugs.net/view.php?id=169
but as that is not out yet, I didn't change %s.

* doc/coreutils.texi (Time conversion specifiers): %R and %z are
now POSIX.
(Date conversion specifiers): Likewise for %F, %g, %G.
2011-12-01 12:13:02 -07:00
Bernhard Voelker
8df7652cfa tests: adjust PATH to generally include /sbin and /usr/sbin
Commit 5eeaca94 added /sbin to the PATH for tests using mkfs. For other
tests, e.g. tests/cp-fiemap-perf using filefrag, we need /usr/sbin also.
Add both directories generally for the tests, "since many of us always
augment our PATH with all of the sbin paths all of the time anyway" (Bob
in http://lists.gnu.org/archive/html/coreutils/2011-11/msg00107.html).
The previous commit is hereby obsolete.
* tests/init.cfg (sanitize_path_): Add /sbin and /usr/sbin to PATH
unless already included. Needed for tests using admin tools like mkfs
and filefrag on systems where the user's environment does not have
these directories in the PATH.
* tests/init.cfg (require_mkfs_PATH_): Remove obsolete function.
* tests/cp/cp-a-selinux: Remove require_mkfs_PATH_ call.
* tests/cp/cp-mv-enotsup-xattr: Likewise.
* tests/cp/sparse-fiemap: Likewise.
* tests/mkdir/writable-under-readonly: Likewise.
* tests/rm/read-only: Likewise.
2011-12-01 09:07:13 +01:00
Eric Blake
92b7b7708e build: simplify warnings based on last gnulib update
We no longer need to exclude this warning.

* configure.ac (WARN_CFLAGS): Gnulib dropped
-Wunsuffixed-float-constants, as non-portable.
2011-11-29 16:16:45 -07:00
Eric Blake
20dfc04204 build: update gnulib for syntax-check improvement
Commit 5b3e538 proved useful enough to migrate to gnulib after
enhancing it to be more generic, which in turn pointed out that
commit a2c811db missed an offender.

* gnulib: Update to latest.
* cfg.mk (sc_prohibit_reversed_compare_failure): Delete, now that
gnulib provides it.
* tests/ls/dangle: Fix last offender.
2011-11-29 16:10:40 -07:00
Jim Meyering
1a85d4a05a build: update gnulib to fix build failure with --enable-gcc-warnings 2011-11-29 14:51:15 +01:00
Jim Meyering
73a9acd6e8 build: enable -Wsuggest-attribute=pure|const in lib/,...
but not in gnulib-tests/.
* configure.ac (GNULIB_WARN_CFLAGS): Do not exclude
-Wsuggest-attribute=pure|const, thus enabling these two warning
options in lib/, since gnulib now toes the line.
Continue to disable them in gnulib-tests/, since some programs
there trigger these suggestions and are not worth fixing.
2011-11-28 10:29:01 +01:00
Jim Meyering
1e676ec844 build: update gnulib for const+pure attributes 2011-11-28 10:29:01 +01:00
Jim Meyering
5b3e538b7f tests: add a syntax check for last week's global change
Last week I made a global change, commit a2c811db, `tests: use
"compare exp out", not "compare out exp"', but forgot to add a
corresponding syntax check rule.  Without that, it is far too
easy to add a new test or to merge in an old one that would
be non-conforming.  Obviously this is only a heuristic, since
it relies on the expected-output file to have a name that starts
with "exp".
* cfg.mk (sc_prohibit_reversed_compare_failure): Prohibit use of
compare with reversed arguments.
2011-11-27 21:13:18 +01:00
Jim Meyering
040bc8b50f maint: update comment gcc-4.6.2 still botches -Wsuggest-attribute=pure
* configure.ac: Update the comment on which gcc versions still must
not use -Wsuggest-attribute=pure option: still required on post-
Fedora 16 rawhide's 4.6.2 20111027.
2011-11-27 13:52:11 +01:00
Jim Meyering
3e26551096 maint: bootstrap: run autopoint and libtoolize *before* gnulib-tool
* bootstrap (AUTOPOINT, AUTORECONF): Factor out definitions.
Run autopoint and libtoolize *before* gnulib-tool.
After it, run an abbreviated autoreconf, rather than a loop around
all tools.
* bootstrap.conf (gnulib_tool_option_extras): Add both --symlink
and --makefile-name=gnulib.mk.  Remove stray use of $bt.
* lib/Makefile.am: Initialize all of the following so that
generated code in gnulib.mk may use += to append to those variables:
AM_CFLAGS, AM_CPPFLAGS, BUILT_SOURCES, CLEANFILES, EXTRA_DIST,
MAINTAINERCLEANFILES, MOSTLYCLEANDIRS, MOSTLYCLEANFILES, SUFFIXES,
noinst_LIBRARIES.
2011-11-24 22:18:29 +01:00
Jim Meyering
5bf2c0eed3 maint: bootstrap: remove some now-unneeded code
This bootstrap script arose back when gnulib-tool was young.
Since then, it has seen improvements that render much of this
script unnecessary.  In particular, it can now make symlinks
to the files it uses.  Also, I no longer see as much value in
marking files as read-only via comments.
* bootstrap (slirp, bt_mark_as_generated): Remove.
2011-11-24 22:18:29 +01:00
Jim Meyering
2d9ddc4aef maint: use gnulib's gettext-h, not the gettext module
* bootstrap.conf (gnulib_modules): Use gnulib's gettext-h, not the
gettext module.  Not only is gettext-h far smaller (it has far fewer
dependencies than the gnulib module), but it does not suffer from
the problem with the gettext module whereby it adds a -I.../intl
option to compilation flags.  That can provoke warnings, since we
don't have such a directory.  We used to work around that via a
hack in bootstrap, but that was ugly and inefficient.
2011-11-24 22:18:29 +01:00
Jim Meyering
729cfdb578 maint: append many lib/ and m4/ names to .gitignore 2011-11-24 22:18:29 +01:00
Jim Meyering
b7fbf82d9b build: update gnulib submodule to latest for fixed stdalign test 2011-11-24 22:18:29 +01:00
Jim Meyering
0fd74a564e scripts: commit-msg: tweak 72-column test to avoid a false-positive
* scripts/git-hooks/commit-msg: Don't warn about a line that is
longer than 72 if it is a comment.  Git-generated comments would
occasionally trigger this.
2011-11-23 09:05:08 +01:00
Jim Meyering
3d213a17fa build: update gnulib and tests/init.sh
* gnulib: Update.
* tests/init.sh: Update from gnulib.
2011-11-23 08:56:56 +01:00
Jim Meyering
da38f12d6f build: --enable-gcc-warnings: disable some new warnings
* configure.ac: Disable some new warning options pulled in via
an update to gnulib's manywarnings module: -Wformat-nonliteral,
-Wunsuffixed-float-constants, -Wdouble-promotion.
2011-11-23 08:56:48 +01:00
Jim Meyering
a2c811db42 tests: use "compare exp out", not "compare out exp"
Likewise, when an empty file is expected, use "compare /dev/null out",
not "compare out /dev/null". I.e., specify the expected/desired contents
via the first file name.  Prompted by a suggestion from Bruno Haible
in http://thread.gmane.org/gmane.comp.gnu.grep.bugs/4020/focus=29154

Run these commands:

    git grep -l -E 'compare [^ ]+ exp' \
      |xargs perl -pi -e 's/(compare) (\S+) (exp\S*)/$1 $3 $2/'
    git grep -l -E 'compare [^ ]+ /dev/null' \
      |xargs perl -pi -e 's/(compare) (\S+) (\/dev\/null)/$1 $3 $2/'

* tests/chgrp/no-x: As above.
* tests/chmod/no-x: Likewise.
* tests/chmod/silent: Likewise.
* tests/chmod/thru-dangling: Likewise.
* tests/chown/basic: Likewise.
* tests/chown/deref: Likewise.
* tests/chown/preserve-root: Likewise.
* tests/cp/abuse: Likewise.
* tests/cp/backup-is-src: Likewise.
* tests/cp/cp-a-selinux: Likewise.
* tests/cp/cp-mv-enotsup-xattr: Likewise.
* tests/cp/fail-perm: Likewise.
* tests/cp/into-self: Likewise.
* tests/cp/proc-zero-len: Likewise.
* tests/cp/src-base-dot: Likewise.
* tests/cp/thru-dangling: Likewise.
* tests/dd/reblock: Likewise.
* tests/dd/unblock-sync: Likewise.
* tests/du/2g: Likewise.
* tests/du/8gb: Likewise.
* tests/du/basic: Likewise.
* tests/du/bigtime: Likewise.
* tests/du/deref-args: Likewise.
* tests/du/exclude: Likewise.
* tests/du/files0-from-dir: Likewise.
* tests/du/hard-link: Likewise.
* tests/du/inacc-dest: Likewise.
* tests/du/inacc-dir: Likewise.
* tests/du/long-sloop: Likewise.
* tests/du/max-depth: Likewise.
* tests/du/move-dir-while-traversing: Likewise.
* tests/du/no-deref: Likewise.
* tests/du/no-x: Likewise.
* tests/du/one-file-system: Likewise.
* tests/du/slash: Likewise.
* tests/du/trailing-slash: Likewise.
* tests/install/strip-program: Likewise.
* tests/ln/hard-backup: Likewise.
* tests/ls/block-size: Likewise.
* tests/ls/color-clear-to-eol: Likewise.
* tests/ls/color-dtype-dir: Likewise.
* tests/ls/color-norm: Likewise.
* tests/ls/dangle: Likewise.
* tests/ls/dired: Likewise.
* tests/ls/file-type: Likewise.
* tests/ls/follow-slink: Likewise.
* tests/ls/infloop: Likewise.
* tests/ls/m-option: Likewise.
* tests/ls/no-arg: Likewise.
* tests/ls/recursive: Likewise.
* tests/ls/rt-1: Likewise.
* tests/ls/stat-dtype: Likewise.
* tests/ls/stat-failed: Likewise.
* tests/ls/stat-free-symlinks: Likewise.
* tests/ls/x-option: Likewise.
* tests/misc/arch: Likewise.
* tests/misc/cat-buf: Likewise.
* tests/misc/cat-proc: Likewise.
* tests/misc/chcon: Likewise.
* tests/misc/csplit: Likewise.
* tests/misc/df-P: Likewise.
* tests/misc/fmt-long-line: Likewise.
* tests/misc/groups-dash: Likewise.
* tests/misc/groups-version: Likewise.
* tests/misc/head-pos: Likewise.
* tests/misc/nl: Likewise.
* tests/misc/od-N: Likewise.
* tests/misc/od-multiple-t: Likewise.
* tests/misc/od-x8: Likewise.
* tests/misc/printf: Likewise.
* tests/misc/printf-hex: Likewise.
* tests/misc/pwd-option: Likewise.
* tests/misc/readlink-fp-loop: Likewise.
* tests/misc/runcon-no-reorder: Likewise.
* tests/misc/seq-long-double: Likewise.
* tests/misc/sort-NaN-infloop: Likewise.
* tests/misc/sort-benchmark-random: Likewise.
* tests/misc/sort-debug-keys: Likewise.
* tests/misc/sort-float: Likewise.
* tests/misc/sort-merge-fdlimit: Likewise.
* tests/misc/sort-unique-segv: Likewise.
* tests/misc/stat-hyphen: Likewise.
* tests/misc/stat-slash: Likewise.
* tests/misc/stdbuf: Likewise.
* tests/misc/sum-sysv: Likewise.
* tests/misc/tac-2-nonseekable: Likewise.
* tests/misc/tac-continue: Likewise.
* tests/misc/tr-case-class: Likewise.
* tests/misc/truncate-fail-diag: Likewise.
* tests/misc/wc-files0: Likewise.
* tests/mkdir/selinux: Likewise.
* tests/mv/backup-dir: Likewise.
* tests/mv/backup-is-src: Likewise.
* tests/mv/diag: Likewise.
* tests/mv/dir2dir: Likewise.
* tests/mv/dup-source: Likewise.
* tests/mv/force: Likewise.
* tests/mv/hard-verbose: Likewise.
* tests/mv/i-link-no: Likewise.
* tests/mv/into-self: Likewise.
* tests/mv/into-self-2: Likewise.
* tests/mv/into-self-3: Likewise.
* tests/mv/mv-special-1: Likewise.
* tests/mv/part-fail: Likewise.
* tests/mv/perm-1: Likewise.
* tests/mv/sticky-to-xpart: Likewise.
* tests/mv/trailing-slash: Likewise.
* tests/rm/rm1: Likewise.
* tests/rm/rm2: Likewise.
* tests/rm/cycle: Likewise.
* tests/rm/dir-no-w: Likewise.
* tests/rm/dir-nonrecur: Likewise.
* tests/rm/fail-2eperm: Likewise.
* tests/rm/fail-eacces: Likewise.
* tests/rm/i-never: Likewise.
* tests/rm/inaccessible: Likewise.
* tests/rm/interactive-always: Likewise.
* tests/rm/interactive-once: Likewise.
* tests/rm/isatty: Likewise.
* tests/rm/one-file-system: Likewise.
* tests/rm/rm3: Likewise.
* tests/rm/rm5: Likewise.
* tests/rm/unread2: Likewise.
* tests/rm/v-slash: Likewise.
* tests/sample-test: Likewise.
* tests/split/b-chunk: Likewise.
* tests/split/fail: Likewise.
* tests/split/l-chunk: Likewise.
* tests/split/lines: Likewise.
* tests/split/r-chunk: Likewise.
* tests/split/suffix-length: Likewise.
* tests/tail-2/big-4gb: Likewise.
* tests/tail-2/follow-name: Likewise.
* tests/tail-2/follow-stdin: Likewise.
* tests/tail-2/pipe-f: Likewise.
* tests/tail-2/pipe-f2: Likewise.
* tests/tail-2/start-middle: Likewise.
* tests/touch/60-seconds: Likewise.
* tests/touch/fail-diag: Likewise.
* tests/touch/not-owner: Likewise.
* tests/touch/relative: Likewise.
2011-11-22 10:35:03 +01:00
Jim Meyering
9d98634b39 tests: use compare, not "diff", in a few stray tests
* tests/install/basic-1: Use compare, not diff.
* tests/mkdir/p-v: Likewise.
* tests/mv/part-fail: Likewise.
* tests/rm/rm1: Likewise.
* tests/rm/rm2: Likewise.
* tests/touch/not-owner: Likewise.
2011-11-22 10:34:43 +01:00
Jim Meyering
ad10c145ff maint: revert "build: update gnulib submodule to latest"
Don't update to latest from gnulib just yet.
This reverts commit 173f4d9bd6.
In particular, manywarnings is too aggressive.
2011-11-20 23:58:13 +01:00
Jim Meyering
173f4d9bd6 build: update gnulib submodule to latest 2011-11-20 23:38:03 +01:00
Jim Meyering
67b442f2aa maint: make generated THANKS file read-only
* Makefile.am (THANKS): Make generated file read-only.
2011-11-20 23:30:25 +01:00
Jim Meyering
054567f5a7 doc: clarify ln's --help output
* src/ln.c (usage): Use TARGET, not "source" in description.
Reported by Michael J Daniel in http://bugs.gnu.org/9896.
2011-11-20 23:30:25 +01:00
Paul Eggert
71b7ddcdd5 port to GNU hosts, where getuid and friends can fail
* src/groups.c (main):
* src/install.c (need_copy):
* src/su.c (log_su):
* src/test.c (unary_operator):
* src/whoami.c (main):
Don't assume that getuid and friends always succeed.
This fixes the same problem that we recently fixed with 'id'.
2011-11-20 14:09:53 -08:00
Jim Meyering
8ffc159611 maint: avoid gitlog-to-changelog diagnostic about unused entries
* build-aux/git-log-fix: Comment out two unused entries.
Each of those two entries does indicate an error in a commit log,
but precedes the cut-off date, so has an actual VC'd ChangeLog entry.
I.e., gitlog-to-changelog generates ChangeLog entries since 2008-02,
and these two predate that.
* ChangeLog-2008: Make the indicated correction.
2011-11-20 15:34:59 +01:00
Erik Auerswald
5d39ad6419 ln: fix position of --backup values description
* src/ln.c (usage): A paragraph describing interactions of -s
with -L and -P somehow snuck in between the description of the
--backup option and the values used to control it. Fix this by
moving the value description up.
2011-11-20 08:46:30 +01:00
Jim Meyering
1c5ca5c05b scripts: rewrite git commit-msg hook in Perl
* scripts/git-hooks/commit-msg: Rewrite in perl.
This is still a work in progress in that it hard-codes coreutils-
specific program names and policies that should be easy to selectively
enable or disable without modifying the script.
2011-11-18 15:38:18 +01:00
Eric Blake
c0582b9df7 sort: clarify wording on -k syntax
* src/sort.c (usage): Use KEYDEF instead of POS, and call out the
specific OPTS that can occur in KEYDEF.
Based on a report by Lars Noodén, http://bugs.gnu.org/10019
2011-11-16 10:25:47 -07:00
Paul Eggert
8f512f9bdb id: fix bug when euid != ruid
* src/id.c (main): Report an error if no args are given and getuid
fails, because print_full_info needs ruid.  Redo code so that
getuid and friends are invoked only when needed; this makes the
code easier to follow, and is how I found the above bug.
2011-11-15 13:24:02 -08:00
Ruediger Meier
e36e6f2c6e ls: another reword of generic size note
* src/system.h (emit_size_note): Use "unit" rather than "suffix",
and move multiplication to example instead of in suffix list.
See additional discussion in Bug#9939.
2011-11-15 11:55:23 -07:00
Eric Blake
97842f0b97 id: tweak comment
* src/id.c (main): Replace confusing use of "etc.".
2011-11-15 11:48:51 -07:00
Paul Eggert
47e511a1d0 id: handle (uid_t) -1 more portably
* src/id.c (GETID_MAY_FAIL): Remove.
(main): Check for nonzero errno, rather than having a compile-time
GETID_MAY_FAIL guess.  Suggested by Roland McGrath in
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10021#47>.
Also, the old code was incorrect if uid_t was narrower than int.
(print_full_info): Remove unnecessary cast to -1.
2011-11-15 09:31:21 -08:00
Paul Eggert
7db79cc4f8 id: undo previous commit, which was done by mistake
* src/id.c (GETID_MAY_FAIL, main, print_full_info): Undo previous change.
2011-11-15 08:41:35 -08:00
Paul Eggert
06ca3797ac doc: update for ISO/IEC 80000-13
* doc/coreutils.texi (Block size): IEC 60027-2 has been superseded
by ISO/IEC 80000-13, so prefer the newer standard but also mention
the old.  The new standard specifies Zi and Yi, so they are no
longer GNU extensions.  Fix stale URL to BIPM.

2011-11-14  Paul Eggert  <eggert@cs.ucla.edu>

id: handle (uid_t) -1 more portably
* src/id.c (GETID_MAY_FAIL): Remove.
(main): Check for negative return values, not for -1.
The old code was incorrect if uid_t was narrower than int,
regardless of whether we were on a GNU or a POSIX platform.
The new code is simpler and doesn't need GETID_MAY_FAIL.
(print_full_info): Remove unnecessary cast to -1.
2011-11-15 08:23:23 -08:00
Ludovic Courtès
40324ca8b2 id: fail when getuid, getgid, etc. fail, e.g., on GNU/Hurd
POSIX-conforming getuid, geteuid, etc. functions cannot fail,
but on GNU/Hurd systems and some others, they may.
* src/id.c (main) [__GNU__]: Detect and diagnose any such failure.
* tests/id/gnu-zero-uids: New file.
* tests/Makefile.am (TESTS): Add it to the list.
* tests/init.cfg (require_gnu_): New function.
2011-11-14 09:52:42 +01:00
Nix
b8b6dd27a6 tests: avoid rare fp failure in du/move-dir-while-traversing
* tests/du/move-dir-while-traversing: Boost the mkdir iteration count
yet again.
2011-11-13 20:02:55 +01:00
Jim Meyering
47052ddbfa maint: adjust git hook to allow "copy: ..." on line 1 of commit message
* scripts/git-hooks/commit-msg: Add "copy" to the list of valid
command-name-like summary line prefixes.
2011-11-13 20:02:55 +01:00
Jim Meyering
5f47550b16 maint: id, groups: use conforming diagnostics
* src/groups.c (main): Don't capitalize the first word of diagnostic.
* src/id.c (main): Likewise.
Reported by Ludovic Courtès.
2011-11-13 10:46:40 +01:00
Jim Meyering
ac9581d80c maint: avoid new syntax-check failure due to indentation with TABs
* cfg.mk (tbi_2): Exempt pre-applypatch, since it too is from git.
2011-11-13 10:40:05 +01:00
Jim Meyering
4df39704b8 maint: install customized git hooks to keep commit logs consistent
* bootstrap.conf (buildreq): Copy (with backup) coreutils-supplied
git hooks into .git/hooks, to help keep commit logs normalized.
2011-11-12 22:49:58 +01:00
Jim Meyering
7bd653dada maint: add rule to ensure that our commit hook copies are up to date
* Makefile.am (check-git-hook-script-sync): New rule -- not used
anywhere, because it depends on having very recent git.
* scripts/git-hooks/pre-applypatch: New file.
2011-11-12 22:23:09 +01:00
Jim Meyering
635bcd0d19 maint: sync pre-commit script with git's
* scripts/git-hooks/pre-commit (allownonascii): Remove double quotes
around $(...) construct, to make this file identical to git's
sample hook script.
2011-11-12 14:00:18 +01:00
Jim Meyering
b64afe0605 build: update gnulib for fstatat cross-compile improvement 2011-11-12 13:32:30 +01:00
Jim Meyering
ceae907fb8 maint: adjust the URL that will appear in the generated announcement
* cfg.mk (url_dir_list): Use this http://ftp.gnu.org/gnu/$(PACKAGE)
for the first link listed in the generated announcement.
announce-gen now provides the faster mirror link automatically.
2011-11-12 10:22:55 +01:00
Jim Meyering
f8245e96cd ls: plug a per-argument leak
Using ls -l on an SELinux-enabled system would leak one SELinux
context string per non-empty-directory command-line argument.
* src/ls.c (free_ent): New function, factored out of...
(clear_files): ...here.  Use it.
(extract_dirs_from_files): Call free_ent (f), rather than simply
free (f->name).  The latter failed to free the possibly-malloc'd
linkname and scontext members, and thus could leak one of those
strings per command-line argument.
* THANKS.in: Update.
* NEWS (Bug fixes): Mention it.
Reported by Juraj Marko in http://bugzilla.redhat.com/751974.
2011-11-12 10:22:55 +01:00
Paul Eggert
91a5badc7b * tests/misc/sort-continue: Port to Fedora 15.
Redirect with the shell command, not in a separate 'exec'.
Without this patch, Fedora 15 x86-64 /bin/sh (i.e., Bash 4.2.10)
complained about running out of file descriptors in the shell.
2011-11-12 00:20:33 -08:00
Paul Eggert
4ea3e6dee1 * tests/ls/block-size: Make it executable. 2011-11-12 00:11:22 -08:00
Paul Eggert
50e5d024ba * src/system.h (emit_size_note): Reword for clarity.
See discussion in Bug#9939.
2011-11-11 23:37:04 -08:00
Paul Eggert
448718c123 ls: -k no longer affects -l's file sizes
This fixes an incompatibility with POSIX 2008 and with BSD.
Problem reported by Abdallah Clark (Bug#9939)
via Alan Curry (Bug#10016).
* NEWS: Document this.
* doc/coreutils.texi (General output formatting): Document the
new -k behavior, and --kibibytes.
* src/ls.c (file_human_output_opts): New static var.
(long_options, usage): Add --kibibytes.
(decode_switches, gobble_file, print_long_format):
Implement the new -k behavior.
* tests/ls/block-size: New file.
* tests/Makefile.am (TESTS): Add it.
2011-11-11 23:21:50 -08:00
Eric Blake
1d9fe527a0 doc: fix typo in sort description
* doc/coreutils.texi (sort invocation): Fix typo.
2011-11-08 12:11:39 -07:00
Jim Meyering
9aac54cdd8 build: update gnulib for more openat changes 2011-11-05 20:57:19 +01:00
Jim Meyering
ee1d9396fc build: do use fstatat and unlinkat modules, now that they're separate
* bootstrap.conf (gnulib_modules): Add fstatat and unlinkat.
2011-11-04 20:44:34 +01:00
Jim Meyering
d973e8a434 build: update gnulib to pull in openat module separation changes
No semantic change.
2011-11-04 19:48:20 +01:00
Pádraig Brady
6603e37c1f tests: avoid signal issues in timeout-group
These issues were seen on an OpenSuse 10.3 system
(kernel 2.6.22.5 x86_64, glibc 2.6.1-18, bash updated to 4.2),
and also on a 64 bit SLES system with a 2.6.16 kernel.
Both systems had 2 CPUs.

There were two issues seen.  1. Occasionally the
timeout.cmd shell script would block SIGINT until
the sleep command exited.  2. Much less frequently the
signal handler in the timeout command itself was ignored,
causing SIGALRM to kill the process.

* tests/misc/timeout-group: Detect the above two cases,
and skip rather than fail.  Note only issue 2. causes
a failure unless skipped, but we skip for case 1. also,
for diagnostic purposes.
2011-11-03 18:36:28 +00:00
Pádraig Brady
aa6448b8d5 tests: fix a race in timeout-group
This could cause a false failure, or even
an infinite loop in rare circumstances.

* tests/misc/timeout-group: Increase the timeouts
passed to the timeout command, so that they're
effectively not used.  Instead the command termination
is triggered by the kill commands when everything
is in the correct state.

Reported by Bernhard Voelker.
2011-11-03 18:36:28 +00:00
Jim Meyering
d84d8764cc build: adapt to gnulib's recent openat/fchmodat separation
* gnulib: Update to latest, pulling in the openat/fchmodat separation.
* bootstrap.conf (gnulib_modules): Add fchmodat, now that gnulib
has moved it into its own module.
2011-11-02 11:58:10 +01:00
Jim Meyering
2b5ef2dd9d maint: fix git-log typos when generating ChangeLog
* gnulib: Update to latest, for new gitlog-to-changelog.
* Makefile.am (gen-ChangeLog): Use its new --amend=F option.
* build-aux/git-log-fix: New file, with ChangeLog fixes.
2011-11-02 09:12:32 +01:00
Jim Meyering
ba4b05c94c stat: avoid compilation failure with gnulib's new alignof
* src/stat.c: Include <stdalign.h>, not "alignof.h" for alignof use.
2011-11-02 09:12:32 +01:00
Jim Meyering
e6ac01c7a1 scripts: reject references to long-form bug URLs
* scripts/git-hooks/commit-msg: Require the normalized/shortened
form of bugzilla.redhat.com and bugs.gnu.org bug URLs.
2011-11-02 08:40:01 +01:00
Pádraig Brady
5128605918 doc: date: mention that the hardware clock might not be set
* doc/coreutils.texi (Setting the time): Reorganize slightly
and mention that the hardware clock might need to be explicitly
updated by the user as is the case on Fedora 16 currently.
See http://bugzilla.redhat.com/749516
2011-11-01 22:02:55 +00:00
Jim Meyering
65527e1c1a build: adapt to gnulib's recent openat/fchownat separation
* bootstrap.conf (gnulib_modules): Add fchownat, now that gnulib
has moved it into its own module.
* gnulib: Update to latest.
2011-11-01 11:49:56 +01:00
Jim Meyering
8ad8306327 build: update gnulib for GNUmakefile fix 2011-10-30 22:38:47 +01:00
Jim Meyering
50424fe2a5 maint: avoid new "make syntax-check" failure due to stdalign definition
* gl/modules/randread (Depends-on): Add stdalign.
* gl/lib/randread.c: Include <stdalign.h>, so we can ...
[!_STRING_ARCH_unaligned]: remove definition of stdalign.
2011-10-30 22:38:47 +01:00
Jim Meyering
53f48c7b0e tests: update gnulib to latest to avoid FP DST-related test failure
Otherwise, "make check" would fail after e.g., a CEST-to-CST
daylight savings transition.
See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/28825
2011-10-30 18:19:19 +01:00
Jim Meyering
f15673fecb tests: doc: fix stale comment in new rm/many-dir-entries-vs-OOM 2011-10-30 11:51:45 +01:00
Jim Meyering
f013fe07ab tests: don't make tail's pipe-f2 test take the full 10 seconds
* tests/tail-2/pipe-f2: Don't always wait 10 seconds.
Before, this test would always wait 10 seconds.
Now, it stops early when it detects that tail -f has written output.
BTW, the race condition that prompted changing the timeout from 1 second
to 10 was that tail -f could be killed by the timeout before producing
any output.
2011-10-29 08:32:11 +02:00
Jim Meyering
2f1384b7e4 date: reinstate the --iso-8601 (-I) option
We deprecated and undocumented the --iso-8601 (-I) option mostly
because date could not parse that particular format.  Now that
it can, it's time to restore the documentation.
* src/date.c (usage): Document it.
* doc/coreutils.texi (Options for date): Reinstate documentation.
Reported by Hubert Depesz Lubaczewski in http://bugs.gnu.org/7444.
2011-10-27 22:02:26 +02:00
Jim Meyering
e8f703c000 build: avoid bootstrap failure when using patch-2.5.8
* gl/modules/tempname.diff: Regenerate to correct bogus offsets
and adjust for 1-line offset.  Eric Blake reported that this
patch failed to apply when using patch-2.5.8.
Note that it applies fine using patch-2.6.1.
2011-10-27 19:04:45 +02:00
Jim Meyering
22f3b2e960 build: do not remove definition of ENODATA, after all
* src/system.h (ENODATA): Restore definition.
gnulib defines it only on native Windows systems, so removing our
definition would have provoked build failure on systems that use it,
like FreeBSD.  Reported by Bruno Haible in
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/28739/focus=28795
* gnulib: Update to latest, to get new ENODATA-exempting maint.mk rule.
2011-10-25 12:31:49 +02:00
Eric Blake
5bb6316bd7 doc: NEWS: correct "bug introduced in ..." version number
* NEWS: s/7.0/8.0/
2011-10-24 16:20:34 +02:00
Jim Meyering
f8ae6440eb rm: update gnulib to get an fts fix for Cygwin+NWFS/NcFsd file systems
* NEWS (Bug fixes): Mention it.
As far as we know, this fix affects only Cygwin with NWFS or NcFsd
file systems.  See these:
http://git.sv.gnu.org/cgit/gnulib.git/commit/?id=71f13422f3e634
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/28739
http://cygwin.com/ml/cygwin/2011-10/msg00365.html
* src/system.h (ENODATA): Remove fall-back definition, now that
gnulib provides one.  Caught by the sc_prohibit_always-defined_macros
syntax-check rule.
Also remove now-irrelevant "Don't use bcopy..." comment.
2011-10-24 10:46:42 +02:00
Jim Meyering
2ade806cf5 maint: add git hook scripts
We find it worthwhile to use consistent commit summary prefixes.
To that end, the commit-msg script requires that all commits I make
start with "$P: " (where $P is one of ~100 programs in coreutils)
or one of a few other words, like gnulib tests maint doc build.
It allows more than one word, so e.g., "cat tail head: " would also
be accepted.  Pádraig Brady wrote the initial version, with its
72-column and blank-if-present second line checks.
The pre-commit script is the same as the git-supplied sample script,
modulo a bug fix and the "exec 1>&2" redirection.
* scripts/git-hooks/commit-msg: New file.
* scripts/git-hooks/pre-commit: New file.
* scripts/git-hooks/applypatch-msg: New file.  Verbatim from .sample.
* cfg.mk: Exempt two of the new scripts from the no-leading-TABs check,
since they're nearly verbatim from git, and we want to stay in sync.
Exempt the commit-msg script from the no-"fail=0" check.
2011-10-23 11:44:40 +02:00
Martial Bornet
d191bfe8a6 tail: with -f, use nanosleep (not inotify) on a GPFS file system
Because tail's fremote function did not designate GPFS as
a remote file system type, tail -f would mistakenly attempt
to use inotify, which cannot work with a remote file system.
* src/tail.c (fremote): List GPFS as a remote file system type.
* NEWS (Bug fixes): Mention it.
Reported in http://bugs.debian.org/646022.
2011-10-21 09:03:30 +02:00
Mike Frysinger
f5b498c09a build: include man-pages for non-default progs
At the moment, things like man/arch.1 are not included in the tarball.
This makes perl a requirement if you want to build/install the arch
helper.

* man/Makefile.am (EXTRA_DIST): Add $(NO_INSTALL_PROGS_DEFAULT:%=%.1).
2011-10-20 16:05:32 +01:00
Jim Meyering
e6fb579f41 maint: tac: prefer "failed to" diagnostic over "cannot"
* src/tac.c: Change wording in diagnostic: "failed to open" seems
clearer than "cannot open".
2011-10-19 09:31:52 +02:00
Jim Meyering
1bb97e2aa1 tac: do not let failed allocation cause immediate exit
* src/tac.c (temp_stream): Don't exit immediately upon failed heap
allocation, here.  That would inhibit processing of any additional
command-line arguments.
2011-10-19 09:31:52 +02:00
Jim Meyering
d96c2069d9 tac: use only one temporary file, with multiple nonseekable inputs
* src/tac.c (temp_stream): New function, factored out of...
(copy_to_temp): ...here.
(tac_nonseekable): Don't free or fclose, now that we reuse the file.
Suggested by Ambrose Feinstein.
* THANKS.in: Update.
2011-10-19 09:31:30 +02:00
Paul Eggert
385634c8dd maint: make tac.c slightly cleaner
* src/tac.c (copy_to_temp): Now that the template string tacXXXXXX
is used in only one place, don't bother using a separate variable.
Also, using three unconditional assignments seems slightly clearer.
2011-10-18 07:43:58 +02:00
Jim Meyering
866844826c tac: don't leak a file descriptor for each non-seekable input
* src/tac.c (tac_nonseekable): Call fclose and free tmp_file after
each successful call to copy_to_temp.
2011-10-17 17:44:54 +02:00
Jim Meyering
537f9da37f tac: don't misbehave with multiple non-seekable inputs
* src/tac.c (copy_to_temp): Do not reuse the template buffer.
Instead, scribble only on a freshly-xstrdup'd copy each time.
Free that buffer both here, upon failure, and ...
(tac_nonseekable): ...free the buffer in caller, upon success.
* tests/misc/tac-2-nonseekable: New file.
* tests/Makefile.am (TESTS): Add it.
* NEWS (Bug fixes): Mention it.
Reported by Ambrose Feinstein in http://debbugs.gnu.org/9762.
2011-10-17 17:44:54 +02:00
Jim Meyering
60cd4c271d maint: tac: remove sole use of sprintf in favor of filenamecat
* src/tac.c: Include filenamecat.h.
(copy_to_temp): Use filenamecat rather than xmalloc and sprintf.
Move some declarations "down" to point of initialization.
2011-10-17 17:44:49 +02:00
Pádraig Brady
ead96f9ede maint: speed up make check (vc_exe_in_TESTS)
* tests/check.mk (vc_exe_in_TESTS): The main change is to
not start a sed process for each file under tests/,
which was taking around 2.5s on a 2.1GHz i3-2310M.
Also adjust the rule to no longer use temporary files.
2011-10-17 11:56:10 +01:00
Jim Meyering
563bb94068 maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2011-10-12 11:57:25 +02:00
Jim Meyering
7b68a43111 version 8.14
* NEWS: Record release date.
2011-10-12 11:45:24 +02:00
Pádraig Brady
2629776078 tests: avoid a false failure on systems without inotify
* tests/tail-2/follow-name: Exclude the inotify warning
from the comparison.
Reported by Bruno Haible.
2011-10-12 10:56:04 +02:00
Jim Meyering
3fb0f4aaf2 build: update gnulib to latest to fix MacOS X 10.5 test link failure
Details here:
http://thread.gmane.org/gmane.comp.gnu.coreutils.general/1726/focus=1743
2011-10-09 19:05:03 +02:00
Jim Meyering
d12ca9764b rm: do not resort to stat'ing very long names even on deficient systems
This change affects only systems that have neither *at function support
nor the /proc/self/fd support required to emulate those *at functions.
* src/remove.c (write_protected_non_symlink): Call faccessat
unconditionally.  Thus we no longer need euidaccess_stat, which was
the sole function used here to operate on a full relative file name.
Remove full_name parameter and update caller.
* lib/euidaccess-stat.h: Remove file.
* lib/euidaccess-stat.c: Likewise.
* m4/euidaccess-stat.m4: Likewise.
* po/POTFILES.in: Remove lib/euidaccess-stat.c.
* m4/prereq.m4 (gl_PREREQ): Don't require gl_EUIDACCESS_STAT.
Prompted by a report from Bruno Haible that the rm/deep-2
test was failing on HP-UX 11.31.
See http://thread.gmane.org/gmane.comp.gnu.coreutils.general/1748
2011-10-09 19:04:35 +02:00
Jim Meyering
c977d5de8d tests: skip rather than failing when perl is not available
* tests/df/total-verify: Use require_perl_, so that this test is
skipped when perl is not available.
* tests/rm/deep-2: Likewise, and fix wording in a comment.
Reported by Bruno Haible.
2011-10-09 10:00:12 +02:00
Jim Meyering
bb1c6912f2 tests: avoid tail-2/F-vs-missing failure on NFS
* tests/tail-2/F-vs-missing: This test would fail about 80% of the
time on linux/powerpc when run in an NFS-mounted directory.
Reported by Bruno Haible in
http://thread.gmane.org/gmane.comp.gnu.coreutils.general/1726/focus=1727
2011-10-08 19:57:21 +02:00
Jim Meyering
11cb50ee6d tests: avoid ls/slink-acl test failure on Solaris 10
* tests/ls/slink-acl: Use setfacl's "-m user::r" option rather than
less-portable "-m m::r".  The latter did not work with Solaris 10's
version of setfacl.  Reported by Bruno Haible in
http://thread.gmane.org/gmane.comp.gnu.coreutils.general/1726/focus=1737
2011-10-08 17:57:01 +02:00
Jim Meyering
fc4c062ffa tests: avoid false-positive failures on linux/sparc64
* tests/init.cfg (require_strace_): Detect a version of strace
that fails on linux/sparc64 for 64-bit executables.  Report and
most of the suggested fix from Bruno Haible:
http://thread.gmane.org/gmane.comp.gnu.coreutils.general/1726/focus=1728
2011-10-08 17:11:10 +02:00
Bernhard Voelker
43a987e179 build: let bootstrap resort to wget for downloading .po files
* bootstrap (download_po_files): Fallback to wget when downloading
the .po files via rsync failed.  This is necessary to bootstrap behind
a strict firewall.
2011-10-06 09:05:26 +02:00
Jim Meyering
e1fc300b59 doc: clean up NEWS
* NEWS: Mention when the sort -g infloop bug was introduced and
alphabetize entries.  Clarify a sentence in the pwd-improvement entry.
2011-10-05 23:26:29 +02:00
Jim Meyering
5f567ce4bd tests: add a test to exercise today's ls-lL-vs-ACL bug
* tests/ls/slink-acl: New file.
* tests/Makefile.am (TESTS): Add it.
* tests/init.cfg (require_setfacl_): New function.
* gnulib: Update to latest, for file-has-acl changes.
* NEWS (Bug fixes): Mention it.
See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/28538.  This
":>k; setfacl -m m::r k; ln -s k s; ls -Log s" should print e.g.,
    -rw-r-----+ 1 0 Oct  5 19:22 s
With the ls from coreutils-8.13, it would print this (with "." or
nothing in place of the "+"):
    -rw-r-----. 1 0 Oct  5 19:22 s
2011-10-05 23:26:21 +02:00
Jim Meyering
88873501cf build: don't use automake's obsolete AM_C_PROTOTYPES macro
* m4/jm-macros.m4 (gl_CHECK_ALL_TYPES): Remove use of AM_C_PROTOTYPES,
now that automake rejects it.
2011-10-03 11:01:44 +02:00
Jim Meyering
d588c8100c maint: clean up m4 syntax
* m4/jm-macros.m4 (coreutils_MACROS, gl_CHECK_ALL_HEADERS):
Remove unnecessary backslashes and add quotes around multi-line
argument lists.
2011-10-01 19:48:17 +02:00
Markus Duft
07498748d2 build: use getgr*_nomembers functions on Interix
Interix provides faster replacements for getgr{gid,nam,ent} where
group member information is not fetched from domain controllers.
This makes 'id' usable on domain controlled interix boxes.
* m4/jm-macros.m4: Check for _nomembers functions.
* src/system.h: Redefine function to _nomembers when available.
2011-10-01 19:17:26 +02:00
Markus Duft
7289f12588 build: accommodate missing setgroups on Interix
Add a dummy, non-functional, always-successful replacement setgroups
function, to keep the original code untouched and simple.
 * src/chroot.c (setgroups) [! HAVE_SETGROUPS]: Define.
2011-10-01 19:17:21 +02:00
Jim Meyering
e1c589ecd5 build: stop distributing gzip'd releases; xz is enough
* configure.ac (AM_INIT_AUTOMAKE): Add no-dist-gzip.
* NEWS (Build-related): Mention that we're dropping .tar.gz.
2011-10-01 17:50:32 +02:00
Jim Meyering
28460826d3 build: update gnulib submodule to latest 2011-10-01 17:50:32 +02:00
Pádraig Brady
f215f7fe06 doc: mention the recent ls -L "argetm" fix in NEWS
* NEWS: Mention the bug fix
2011-10-01 02:35:32 +01:00
Pádraig Brady
84457c491e ls: fix output of dangling symlinks colored as target
This is related to commit b7f2b51c, 2010-01-01,
"ls: fix color of broken symlinks colored as target"
which didn't handle the --dereference case.
The simplest way to reproduce the resultant
erroneous "argetm" is as follows:

 $ ln -s /no-such dangle
 $ env LS_COLORS=ln=target ls --dereference --color
 ls: cannot access dangle: No such file or directory
 argetmdangle

This is also an issue with the `tree` utility,
reported here: http://bugs.debian.org/586765

* src/ls.c (print_color_indicator): Move the handling
of 'ln=target' in $LS_COLORS (color_symlink_as_referent == true)
to a higher scope, to handle all cases where type == C_LINK.
* tests/misc/ls-misc: Add a test case for the specific issue,
and 2 further test cases to verify other code paths in this area.

Reported by Jason Glassey.
2011-10-01 02:15:12 +01:00
Jim Meyering
4f38e9f249 ls: avoid reading beyond end of color indicator
At first this looked like a buffer overrun, since there was no test
to ensure that the buffer length was 6.  However, since the LS_COLORS
string is NUL-terminated and since settings within it are separated by
":" there was neither the risk of reading beyond end of buffer nor risk
of a false-positive match.
* src/ls.c (print_color_indicator): Use color_symlink_as_referent
rather than manually comparing against "target" again.
* src/system.h (STRNCMP_LIT): Correct description in comment.
2011-09-30 22:03:47 +02:00
Jim Meyering
bec8920923 tests: update gnulib to latest, to fix test link failure 2011-09-28 11:00:13 +02:00
Jim Meyering
57ee5493d9 sort: avoid a NaN-induced infloop
These commands would fail to terminate:
    yes -- -nan | head -156903 | sort -g > /dev/null
    echo nan > F; sort -m -g F F
That can happen with any strtold implementation that includes
uninitialized data in its return value.  The problem arises in the
mergefps function when bubble-sorting the two or more lines, each
from one of the input streams being merged: compare(a,b) returns 64,
yet compare(b,a) also returns a positive value.  With a broken
comparison function like that, the bubble sort never terminates.
Why do the long-double bit strings corresponding to two identical
"nan" strings not compare equal?  Because some parts of the result
are uninitialized and thus depend on the state of the stack.
For more details, see http://bugs.gnu.org/9612.
* src/sort.c (nan_compare): New function.
(general_numcompare): Use it rather than bare memcmp.
Reported by Aaron Denney in http://bugs.debian.org/642557.
* NEWS (Bug fixes): Mention it.
* tests/misc/sort-NaN-infloop: New file.
* tests/Makefile.am (TESTS): Add it.
2011-09-27 16:49:51 +02:00
Jim Meyering
1d0a7ed7d5 build: update gnulib submodule to latest 2011-09-24 13:18:30 +02:00
Jim Meyering
081e262daf maint: avoid new syntax-check failure
Pulling in the latest gnulib triggered a new false-positive
syntax-check failure.
* cfg.mk (exclude_file_name_regexp--sc_prohibit_always-defined_macros):
Exempt remove.c; its definitions of DT_UNKNOWN, DT_DIR and DT_LNK are
harmless.
2011-09-24 13:17:22 +02:00
Bernhard Voelker
eb6f977ff5 tests: mention new check-expensive/check-very-expensive in test logs
* tests/init.cfg: (very_expensive_): Mention toplevel make target,
check-very-expensive.
(expensive_): Likewise for check-expensive.
2011-09-24 13:17:22 +02:00
Bernhard Voelker
57db1fc2a9 tests: introduce make targets check-expensive and check-very-expensive
* Makefile.am: add shortcuts to run (very) expensive tests.
Use "make check-expensive" to run tests with RUN_EXPENSIVE_TESTS=yes,
use "make check-very-expensive" to run tests with both
RUN_EXPENSIVE_TESTS=yes and RUN_VERY_EXPENSIVE_TESTS=yes.
Non-expensive tests are included in all cases.
2011-09-24 13:17:21 +02:00
Pádraig Brady
80a1aca0d2 timeout: handle implicitly created threads
On some systems like glibc on GNU/kFreeBSD, a thread is
implicitly created when timer_settime() is used.
This breaks our scheme to ignore signals we've
sent ourselves.

* src/timeout.c (send_sig): Change the scheme used to
ignore signals we've sent ourselves, to a more robust
but perhaps limited scheme of ignoring all signals of
a certain type after we've sent that signal to the job.
* NEWS: Mention the change in behavior.
2011-09-22 12:01:05 +01:00
Bruno Haible
a4fa14849a tests: init.sh: support any non-GNU diff
* tests/init.sh (compare): If "diff -c" is supported but "diff -u" is
not, use "diff -c".  Useful on AIX 6.1, HP-UX 11.31, OSF/1 5.1,
Solaris 8.
2011-09-19 19:24:46 +02:00
Jim Meyering
9bb92a4db1 gnulib: update for getcwd fix on systems without openat
This fixes a bug in pwd and all getcwd-using applications (for some
uses: df, readlink, stat) when run from a directory whose absolute name
contains more than PATH_MAX / 3 components.  For more details, see
http://git.sv.gnu.org/cgit/gnulib.git/commit/?id=f6fe351fc534ae1
* gnulib: Update.
* NEWS (Improvements): Mention it.
2011-09-19 17:25:43 +02:00
Reuben Thomas
f2fb24809c md5sum: clarify what is meant by binary/text flag.
src/md5sum.c: Clarify that we are talking about input mode.
        doc/coreutils.texi: Ditto.
2011-09-19 10:55:37 +02:00
Jim Meyering
6c93cd4512 tests: cp-parents: don't let a failing chmod go unnoticed
* tests/cp/cp-parents: If somehow a chmod set-up command failed,
subsequent tests would fail in a harder-to-diagnose manner.
2011-09-19 10:53:45 +02:00
Paul Eggert
e92b0dbc13 randread: add FIXME comment for RDRAND
* gl/lib/randread.c: Add a FIXME comment suggesting how to improve
performance by using the RDRAND hardware instruction.
2011-09-17 08:54:26 -07:00
Pádraig Brady
7da844cc86 md5sum: handle BSD reversed format checksums
* src/md5sum.c (split_3): Detect and handle BSD reversed
format checksums.
* tests/misc/md5sum-bsd: Add a new test.
* tests/Makefile.am: Reference new test.
* NEWS: Mention the improvement
Suggested by Rimas Kudelis.
2011-09-16 19:09:26 +01:00
Eric Blake
b98e41cc74 doc: improve description of join's -a option
* src/join.c (usage): Mention that -a adds to the overall output,
rather than replacing the default output.
* THANKS: Update.
Reported by Tomas Volka.
2011-09-14 07:46:09 -06:00
Jim Meyering
3f456c54bb build: avoid unwarranted failure w/gcc-4.6.1 and --enable-gcc-warnings
* configure.ac (gl_GCC_VERSION_IFELSE): Define new macro.
(WERROR_CFLAGS): With --enable-gcc-warnings, use it to
add -Wsuggest-attribute=pure only with gcc 4.7 or newer.
2011-09-12 19:07:00 +02:00
Jim Meyering
82e86b4831 doc: fix typo in test script comment
* tests/d_type-check: Fix typo in comment.
2011-09-08 22:03:17 +02:00
Jim Meyering
1888629627 maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2011-09-08 17:23:21 +02:00
Jim Meyering
c7fca77515 version 8.13
* NEWS: Record release date.
2011-09-08 17:04:42 +02:00
Jim Meyering
032bbff2da build: update gnulib submodule to latest 2011-09-08 15:49:42 +02:00
Jim Meyering
5581bf28e3 stat: avoid compilation failure on AIX 7.x
* src/stat.c (USE_STATVFS): Adjust definition so that it is enabled
also on AIX 7.x systems that provide statvfs64 and no statvfs.
[USE_STATVFS && ! STAT_STATVFS && STAT_STATVFS64] (STATFS): Define
to statvfs64 in that precise case.
* m4/stat-prog.m4 (cu_PREREQ_STAT_PROG): Adjust the condition
here to match the new one in stat.c, to keep them in sync.
Reported by Bruno Haible.  For details, see
http://article.gmane.org/gmane.comp.gnu.coreutils.general/1668
2011-09-08 12:16:17 +02:00
Bernhard Voelker
5eeaca942a tests: adjust PATH to include /sbin for mkfs-using tests
* tests/init.cfg (require_mkfs_PATH_): New function to test whether mkfs
is in PATH, otherwise adding /sbin to PATH.  Needed for distributions
(OpenSuSE, Solaris) in which sudo does not include /sbin in PATH.
* tests/cp/cp-a-selinux: Use require_mkfs_PATH_.
* tests/cp/cp-mv-enotsup-xattr: Likewise.
* tests/cp/sparse-fiemap: Likewise.
* tests/mkdir/writable-under-readonly: Likewise.
* tests/rm/read-only: Likewise.
2011-09-07 18:00:55 +02:00
Jim Meyering
f85ca2c876 tests: avoid false-positive "make check" failure when perl is missing
* doc/Makefile.am (sc-lower-case-var): Skip this test when $(PERL)
is not usable.  Reported by Bruno Haible.
2011-09-07 18:00:55 +02:00
Jim Meyering
ac5739d317 cp: update gnulib to get support for NFSv4 ACLs
* NEWS (Improvements): Mention the cp-vs-NFSv4-ACL improvement we
have inherited via gnulib.  For details, see
http://article.gmane.org/gmane.comp.lib.gnulib.bugs/28100
and the following messages in that thread.
* gnulib: Update to latest, for numerous ACL-related improvements.
2011-09-07 17:59:46 +02:00
Bruno Haible
0cefe58092 tests: init.sh: work also with any non-GNU diff that supports -u
* tests/init.sh: Relax check for diff -u support.
Rather than checking for GNU diff via --version, simply check
for support for -u itself.  Useful at least on OpenBSD 4.9.
2011-09-02 14:08:40 +02:00
Jim Meyering
7490145dd0 tests: remove require-perl script; use function instead
* tests/require-perl: Remove file.
* tests/Makefile.am (EXTRA_DIST): Remove it from this list.
* tests/init.cfg (require_perl_): New function.
* tests/misc/pwd-long: Use the new function, not the file.
* tests/ls/nameless-uid: Likewise.
* tests/misc/sum-sysv: Likewise.
2011-09-02 14:08:40 +02:00
Jim Meyering
d8945c8d8f tests: cut: exercise distro-added multibyte code paths
* tests/misc/cut: Repeat each test using a multibyte locale,
if the configure-time test found such a locale.
Adjust the tests so that they also accept a slightly
different diagnostic that is specific to the MB-patched cut.
2011-09-02 14:08:40 +02:00
Pádraig Brady
832c85e3f7 doc: describe test control variables
* HACKING (Add tests): Mention the variables and default values.
* README-release (Pre-release testing): Mention that setting
the SHELL variable may be required.
Suggested by Bruno Haible.
2011-09-02 11:41:23 +01:00
Pádraig Brady
3d2e55d508 timeout: fixup previous warning fix
* src/timeout.c (settimeout): Fix the previous commit
to test errno rather than the return value.
2011-09-01 15:50:08 +01:00
Pádraig Brady
37784220dd tests: split/l-chunk: avoid a portability issue
* tests/split/l-chunk: Don't use the `test "$var"`
idiom to test that var is set to something as
that's not supported by all shells.
The new style matches the usage is the rest of
the test in any case.
Reported by Bruno Haible on AIX 6.1 and 7.1
2011-09-01 15:43:25 +01:00
Jim Meyering
551cbda027 tests: pwd-long: diagnose failure earlier
Without this change, we'd get use-of-uninit value warnings
and harder-to-diagnose failure down the road.
* tests/misc/pwd-long (normalize_to_cwd_relative): Diagnose stat
failure.  This failed on AIX 6.1 and 7.1.  Reported by Bruno Haible.
2011-09-01 16:36:23 +02:00
Jim Meyering
af5f2d741b tests: printf-surprise: avoid false-positive failure
* tests/misc/printf-surprise: Also accept a strerror-style string
after the usual 'printf: write error:' diagnostic prefix.
Otherwise, this test would fail on HP-UX 11.
Reported by Bruno Haible.
2011-09-01 16:36:23 +02:00
Bernhard Voelker
44f7444987 tests: improve message in 'require_membership_in_two_groups_' function
* tests/init.cfg (require_membership_in_two_groups_): Add quotes
around the suggested groups for the COREUTILS_GROUPS variable.
2011-09-01 16:36:23 +02:00
Jim Meyering
ac54e1e4d2 tests: misc/printf: accommodate alternate behavior
* tests/misc/printf: Avoid false positive failure on MacOS X 10.5
due to a slightly differing diagnostic.  Reported by Bruno Haible.
2011-09-01 16:36:23 +02:00
Jim Meyering
a8c7983629 tests: invoke via "env printf", rather than using an absolute name
* tests/misc/printf: This results in more concise diagnostics.
2011-09-01 16:36:23 +02:00
Pádraig Brady
38e3a90e4b timeout: suppress a redundant warning on some systems
* src/timeout.c (settimeout): Don't warn about ENOSYS
which is returned on OpenBSD 4.9 at least.
Reported by Bruno Haible
2011-09-01 15:30:18 +01:00
Pádraig Brady
197cd0994d stdbuf: fix helper lib identification on some platforms
* src/stdbuf.c (main): Pass the path of `stdbuf` rather than
the command it's running to the search function.  This is
significant on platforms without /proc/self/exe
Reported by Bruno Haible
2011-09-01 15:27:58 +01:00
Pádraig Brady
0d89a42bff build: avoid the use of strsignal() in split
... which is not available on some platforms,
and the replacement currently requires linking
with threading libraries.
* src/split.c (closeout): Remove the call to strsignal()
which is largely redundant anyway as sig2str()
is already used to map number to name in the error.
Reported by Bruno Haible on AIX 6.1 and 7.1
2011-09-01 15:20:55 +01:00
Jim Meyering
df9cd0a426 date: support parsing of ISO-8601-with-"T" dates
Thanks to an improvement in gnulib's parse-datetime module,
commands like this now succeed (output manually indented):
    $ ./date -u -d 2004-02-29T16:21:42.33+07:00 +%FT%T.%N%z
		   2004-02-29T09:21:42.330000000+0000
* tests/misc/date: Add a test to exercise the new-in-gnulib
parsing of ISO8601-with-"T" dates.
* NEWS (New features): Mention it.
* gnulib: Update, to pull in this parse-datetime improvement.
2011-08-31 20:00:19 +02:00
Pádraig Brady
683ee76ad2 build: heap.c: make possible gnulib candidate c89 compatible
* gl/lib/heap.c: Move declaration to the top of scope.
Reported by Rob McMahon and Wolfgang Steinwender
in relation to "Sun WorkShop 6 update 2 C 5.3 Patch 111679-12
2003/05/18" and "GCC 2.95.3" respectively.
2011-08-30 15:09:23 +01:00
Pádraig Brady
24a1a8c473 timeout: revert signal propagation enhancement
This effectively reverts the unreleased commit 5a647a05

* src/timeout.c (main): Don't propagate signals from the monitored
process, as on Linux /proc/sys/kernel/core_pattern could still
handle them and cause false reports against `timeout`
2011-08-25 11:35:31 +01:00
Jim Meyering
6a2751d59d maint: rename a test
Lesson: do not include details like "4 million" in a file name.
* tests/rm/many-dir-entries-vs-OOM: Renamed from ...
* tests/rm/4-million-entry-dir: ...this.
* tests/Makefile.am (TESTS): Reflect renaming.
2011-08-24 10:50:28 +02:00
Jim Meyering
ebc63d33ea tests: adjust the new, very expensive rm test to be less expensive
* tests/rm/4-million-entry-dir: Create only 200,000 files, rather
than 4 million.  The latter was overkill, and was too likely to
fail due to inode exhaustion.  Not everyone is using btrfs yet.
Now that this test doesn't take so long, label it as merely
"expensive", rather than "very expensive".  Thanks to
Bernhard Voelker for pointing out the risk of inode exhaustion.
2011-08-24 10:50:15 +02:00
Pádraig Brady
1f93c96339 pr: fix so that LAST_PAGE is honored with -T
Ever since the LAST_PAGE functionality was added
in commit ed0923a1, 1996-12-05,
"Apply big patch (patch-20) from Roland Huebner"
it was ignored when -t or -T were specified or
when -l <= 10.

* src/pr.c (print_page): Increment the current page here.
(print_header): Don't increment the current page here.
* tests/pr/pr-tests: Add a test case.
* NEWS: Mention the fix

Reported at http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9347
2011-08-24 00:21:17 +01:00
Erik Auerswald
423b079f53 doc: correct typo in yesterday's NEWS entry: 30GB -> 30MB
* NEWS: s/30GB/30MB/
2011-08-20 08:12:31 +02:00
Jim Meyering
0ba576979a rm, du, chmod, chown, chgrp: use much less memory for large directories
For details, see the gnulib commit,
http://git.sv.gnu.org/cgit/gnulib.git/commit/?id=47cb657e
* tests/rm/4-million-entry-dir: New test.
* tests/Makefile.am (TESTS): Add it.
* NEWS (Bug fixes): Mention it.
* gnulib: Update to latest to get the required fts fixes.
2011-08-19 18:21:06 +02:00
Bernhard Voelker
036a9c6909 maint: remove empty statement after jump label
* src/head.c (elide_tail_bytes_pipe): Remove the empty statement, ";"
after a jump label; it is needed only when a declaration follows.
* src/kill.c (main): Likewise.
* src/od.c (main): Likewise.
* src/paste.c (collapse_escapes): Likewise.
* src/printf.c (print_formatted): Likewise.
2011-08-13 11:21:01 +02:00
Paul Eggert
faf5fbeb36 pathchk: port to hosts where mbstate_t is replaced
This problem was discovered when trying to build git coreutils on
Solaris 8 sparcv9 with Sun C 5.8: the 3rd argument to mbrlen was
of type int * (a pointer to the gnulib replacement mbstate_t) but
the system mbrlen wants the system mbstate_t *.
* bootstrap.conf (gnulib_modules): Add mbrlen.
* src/pathchk.c (mbrlen, mbstate_t) [!(HAVE_MBRLEN && HAVE_MBSTATE_T)]:
Remove macros, which are wrong now that gnulib supplies
replacements for mbstate_t and mbrlen.
2011-08-12 01:15:37 -07:00
Paul Eggert
4a1527908b bootstrap: use latest gnulib bootstrap, gettext
* bootstrap: Sync from gnulib.  This removes an obsolescent
gettext.m4 patch, along with some other changes that do not
seem to affect coreutils.
* bootstrap.conf (gnulib_modules): Use gettext, not gettext-h.
Current gnulib gettext seems to work without needing special hacking.
* configure.ac (AM_GNU_GETTEXT_VERSION): Now 0.18.1, not 0.17.
* gnulib: Update to latest.
2011-08-11 18:38:19 -07:00
Jim Meyering
dce1da2b57 maint: use gnulib's new largefile modulue
* bootstrap.conf (gnulib_modules): Add largefile.
This is useful to Mac OS X 10.5 users if/when configure
is generated using autoconf prior to v2.68-80-gdb2f2e0.
* gnulib: Update to latest.
2011-08-11 15:27:21 +02:00
Jim Meyering
4cf9eb5282 tests: avoid lack-of-support du test failure on HP-UX 11.31
* tests/du/inaccessible-cwd: Skip this test on systems like HP-UX 11.31
that lack both the *at functions and the /proc/self/fd-based support
we might have used to emulate them.  Reported by Bruno Haible in
http://debbugs.gnu.org/8846
2011-08-08 10:12:38 +02:00
Jim Meyering
7055579067 join: with --check-order print offending file name, line number and data
* src/join (g_names): New global (was main's "names").
(main): Update all uses of "names".
(line_no[2]): New globals.
(get_line): Increment after reading each line.
(check_order): Print the standard "file name:line_no: " prefix
as well as the offending line when reporting disorder.
Here is a sample old/new comparison:
  -join: file 1 is not in sorted order
  +join: in:4: is not sorted: contents-of-line-4
* tests/misc/join: Change the two affected tests to expect
the new diagnostic.
Add new tests for more coverage: mismatch in file 2,
two diagnostics, zero-length out-of-order line.
* NEWS (Improvements): Mention it.
Suggested by David Gast in http://debbugs.gnu.org/9236
2011-08-08 10:12:38 +02:00
Jim Meyering
005534907c maint: use xcalloc rather than xmalloc+memset (no semantic change)
* src/join.c (init_linep): Use xcalloc, not xmalloc+memset.
2011-08-08 10:12:38 +02:00
Jim Meyering
149499925e maint: add copyright notice to init.cfg
* tests/init.cfg: Add copyright.  Suggested by Stefano Lattarini.
2011-08-08 10:11:48 +02:00
Jim Meyering
0b27edfe1d maint: prevent accidental future use of the old shell function name
This is especially important for an error-handling shell function
like this that is actually called only rarely.
* cfg.mk (sc_prohibit_framework_failure): New rule, to prevent
use of the old name.
2011-08-08 10:11:48 +02:00
Stefano Lattarini
554caaf6ff tests: complete the renaming framework_failure -> framework_failure_
These changes were mostly mechanical, made by running the
following command:

  git grep -lw framework_failure | grep -v ChangeLog \
    | xargs perl -pi -e 's/\b(framework_failure)\b/${1}_/'

and then editing init.cfg and `tests/cp/cp-a-selinux' by hand.

* tests/init.cfg (framework_failure): Remove, `framework_failure_'
from init.sh should be used instead in the tests.
Remove now-obsolete "FIXME" comment.
(is_local_dir_, require_strace_, require_membership_in_two_groups_,
require_sparse_support_, skip_if_mcstransd_is_running_,
mkfifo_or_skip_) Use `framework_failure_', not `framework_failure'.
* Many test scripts: Likewise.
2011-08-08 10:11:48 +02:00
Paul Eggert
8e2767a3f0 mktemp: stir in enough entropy (Bug#6683)
* gl/lib/tempname.c.diff (gen_tempname_len):
Use x_suffix_len bytes' worth of entropy, not 8 bytes.
2011-08-08 00:30:55 -07:00
Stefano Lattarini
bbcf3abc2c tests: remove obsolete 'error_' shell function
* tests/init.cfg (framework_failure, getlimits_): Use 'fatal_'
instead of 'error_'.
(error_): Delete, it's not used anymore (and one is anyway
advised to use 'fatal_' instead).
Update heading comments.
* tests/shell-or-perl (error_): Renamed ...
(fatal_): ... to this, for consistency.  Also, add a useful
comment.
2011-08-04 18:07:52 +02:00
Pádraig Brady
7eaff0fea3 doc: mention the new mirroring behavior of cp -au
* NEWS: Mention the change in behavior.
* doc/coreutils.texi (cp invocation): Likewise.
2011-07-31 13:08:47 +01:00
Jim Meyering
e24c711cbc maint: accommodate old-NEWS update
* cfg.mk (old_NEWS_hash): Update, to accommodate 6.12 addition.
Without this change, "make syntax-check" would fail.
2011-07-31 11:23:58 +02:00
Paul Eggert
c88f6f22c7 * NEWS: Say that 6.12 preserved ns-resolution timestamps. 2011-07-31 00:27:38 -07:00
Jim Meyering
e9ced81139 build: require gnulib's fclose module
* bootstrap.conf (gnulib_modules): Explicitly use the fclose module.
This is required, now that gnulib's close module no longer depends
on fclose.  Without this module, we would be exposed to fclose bugs
affecting at least glibc 2.13 and FreeBSD.
Reported by Bernhard Voelker.  Suggested by Eric Blake.
2011-07-29 15:23:02 +02:00
Jim Meyering
0be1ae6620 build: update gnulib, for "make syntax-check" fix
Without the recent maint.mk fix, "make syntax-check"
would fail like this:

    src/dd.c:# define SA_RESETHAND 0
    src/ls.c:# define SA_RESTART 0
    src/timeout.c:# define SA_RESTART 0
    maint.mk: define the above via some gnulib .h file
    make: *** [sc_prohibit_always-defined_macros] Error 1
2011-07-29 08:07:30 +02:00
Ivan Sichmann Freitas
6ab90b53f6 doc: add a vim indentation example
HACKING: add a vim example showing how to configure it to follow GNU
indentation in coreutils source files.
2011-07-27 13:51:15 +01:00
Pádraig Brady
42300faaa9 maint: copy: refactor hard link creation
* src/copy.c (create_hard_link): A new function refactored
from existing code.
(copy_internal): Call the new function from all 3 locations
that create hard links.
* tests/cp/same-file: Amend to match the adjusted diagnostic.
2011-07-27 13:32:32 +01:00
Pádraig Brady
2aea1828a1 tests: cp/preserve-link: test all relevant paths
* tests/cp/preserve-link: Add test cases for when a missing
link in the destination tree is encountered first and second.
Also add cases for old and new separate files in the destination
tree, both to make the clobbering behavior explicit, and to
test any changes in this area in future.
2011-07-27 09:36:59 +01:00
Jim Meyering
b2bb19b4b3 doc: mention cp's dir-permissions fix
* NEWS (Bug fixes): Mention yesterday's dir-permissions fix.
2011-07-26 09:24:31 +02:00
Jim Meyering
5f35396395 maint: use consistent style in C and test scripts
* src/copy.c (copy_internal): Adjust formatting style to conform with
guidelines in HACKING: put braces around two one-line "else" blocks.
* tests/cp/existing-perm-dir: Use $(...), not `...`, and
stat rather than ls+cut to get the mode string.
mode=$(stat --p=%A dst/dir)
2011-07-26 09:01:44 +02:00
Paul Eggert
e772bddde8 cp: don't mishandle existing dir dest permissions (Bug#9170)
* src/copy.c (copy_internal): If we don't create the directory,
then we cannot have omitted permissions.  Problem and trivial
fix reported by Eric Lammerts.
* tests/Makefile.am (TESTS): Add cp/existing-perm-dir.
* tests/cp/existing-perm-dir: New file.
2011-07-25 14:04:51 -07:00
Jim Meyering
f28a09810b cp -up: preserve all hard links
* src/copy.c (copy_internal): With --update (-u), this function would
return early once it found that the destination is not older than the
source, *without* recording the source-dev/ino--to--dest_name mapping.
That mapping is required in order to preserve src hard links in the
destination tree, so when using cp with --update and --preserve=links
(perhaps via -p or -a), cp could fail to preserve one hard link
per inode when at least one of the hard-linked names already exists
in the destination tree.
Reported by Odd Harry Mannsverk in http://debbugs.gnu.org/8419.
* tests/cp/preserve-link: New file.  Exercise the flaw/fix.
* tests/Makefile.am (TESTS): Add it.
* NEWS (Bug fixes): Mention it.
2011-07-25 14:15:44 +02:00
Pádraig Brady
aeb5222a6d timeout: support sub-second timeouts
* src/timeout.c (settimeout): A new function to convert
from a floating point duration and call alarm() or
timer_settime() if that's available.
(parse_duration): Return a double rather than unsigned int.
(usage): Mention floating point is supported.
(main): Pass the double to settimeout() rather than
calling alarm() directly with the parsed int.
(cleanup): Likewise.
* doc/coreutils.texi (timeout invocation): Say floating point timeouts
now supported, and mention the caveat with resolution.
* bootstrap.conf: Include the timer-time gnulib module.
* tests/misc/timeout-parameters: Add a test with nanoseconds.
* NEWS: Mention the improvement.
2011-07-25 12:00:26 +01:00
Jim Meyering
42c4ba6ceb build: update gnulib to fix a build warning/error in a test program 2011-07-25 08:26:21 +02:00
Jim Meyering
c29cb31b7f df: support partitions larger than 4 TiB on MacOS >= 10.5 & AIX >=5.2
This change derives from improvements to gnulib's fsusage module.
* NEWS (Improvements): df now supports disk partitions larger than
4 TiB on MacOS X 10.5 or newer and on AIX 5.2 or newer.
Alphabetize entries.
* gnulib: Update to latest.
2011-07-24 22:58:36 +02:00
Paul Eggert
339613b6bd dd, shred: use fdatasync only if declared
* m4/jm-macros.m4 (coreutils_MACROS): Use fdatasync only if declared.
MacOS X 10.7 has an fdatasync that is not declared, and is rumored to
be ineffective.  (Bug#9141)
2011-07-22 13:41:19 -07:00
Mike Frysinger
f603b2d228 dircolors: add screen.Eterm terminal type
* src/dircolors.hin: Add screen.Eterm.
Reported by Kfir Lavi
2011-07-20 14:14:25 +01:00
Pádraig Brady
f3b473c579 maint: remove a redundant call to gl_CLOCK_TIME
* m4/jm-macros.m4: Remove gl_CLOCK_TIME as it's already
done by the gettime gnulib module.
2011-07-20 11:38:50 +01:00
Pádraig Brady
65a0483fb5 unexpand: fix misalignment when spaces span a tabstop
The following dropped the space from the first field
  printf "1234567  \t1\n" | unexpand -a
Note POSIX says that spaces should not precede tabs.
Also a single trailing space should not be converted
if the next field starts with non blank characters.
So we enforce those rules too, with this change.

* src/unexpand.c (unexpand): Implement as per POSIX rules.
* tests/misc/unexpand: Add tests, and adjust existing
tests as per POSIX rules.
* NEWS: Mention the fix.
Reported by Hallvard B Furuseth
2011-07-20 10:38:46 +01:00
Paul Eggert
dc7284ef72 * NEWS: Mention fix for Bug#9098. 2011-07-17 12:52:55 -07:00
Paul Eggert
7e576fc403 timeout: add regression test (Bug#9098)
* tests/misc/timeout: Check that 'timeout' is not confused when
starting off with a child.
2011-07-17 12:52:55 -07:00
Paul Eggert
240a633756 timeout: treat seconds counts like 'sleep' does
Treat fractions as a request to round up to the next representable
value, and treat out-of-range values as maximal ones.  This is
consistent with how "sleep" works.  And this way, "timeout
999999999999999999d FOO" and "timeout 4.5 foo" are more likely to
do what the user wants.
* src/timeout.c: Include c-strtod.h and xstrtod.h, not xstrtol.h.
(apply_time_suffix): Change it to the way sleep.c's time_suffix
does things.  Maybe this function (identical in both programs,
other than its name) should be moved to a library?
(parse_duration): Return a maximal value on overflow.  Return
unsigned int, not unsigned long.  Allow fractions, which round
up to the next integer value.
* tests/misc/timeout-parameters: Adjust tests to match new behavior.
Add a very large number.
2011-07-16 12:10:45 -07:00
Paul Eggert
2d9b49789f Fix capiTalization in comments. 2011-07-16 12:10:45 -07:00
Paul Eggert
8f1629f0ad * src/timeout.c (main): Use waitpid, not wait (Bug#9098).
Reported by Andreas Schwab.

* src/timeout.c (SA_RESTART): Define to 0 if not defined.
2011-07-16 12:10:45 -07:00
Paul Eggert
8d8f5f1028 timeout: port to NonStop (Bug#9077)
* src/timeout.c (SA_RESTART): Define to	0 if not defined.
(main): Don't assume signal handling uses SA_RESTART.
2011-07-16 12:10:44 -07:00
Paul Eggert
84185eda59 ls: port to NonStop (Bug#9076)
* src/ls.c (SA_RESTART): Define to 0 if not defined.
2011-07-16 12:10:44 -07:00
Paul Eggert
efec1600c9 dd: port to NonStop (Bug#9076)
* src/dd.c (SA_RESETHAND): Define to 0 if not defined.
2011-07-16 12:10:44 -07:00
Paul Eggert
837e1f5519 csplit: don't prematurely terminate cleanup (Bug#9076)
* src/csplit.c (interrupt_handler): Reset signal to SIG_DFL
after deleting the files, so that a second interrupt won't
prematurely terminate cleanup.
(main): Don't use SA_NODEFER | SA_RESETHAND, as that might
allow premature termination of cleanup.  Also, this ports better
to platforms like NonStop, which don't ahve SA_RESETHAND.
2011-07-15 16:03:57 -07:00
Paul Eggert
750fadd5d3 * src/dd.c: Remove obsolete comments re POSIX. 2011-07-15 15:56:34 -07:00
Pádraig Brady
63613d4935 build: avoid a st_blksize compile failure on some systems
* src/stat.c (print_stat): Use ST_BLKSIZE() rather than
accessing st_blksize directly, which is not present on
NonStop at least.  Reported by Joachim Schmitz.
2011-07-15 16:23:28 +01:00
Pádraig Brady
4f71710c42 build: avoid a fiemap compile failure on some systems
* src/fiemap.h (struct fiemap): Adjust the previous change
to the fiemap_extents array, which would also require changes
to the sizeof calculations in extent_scan_read().
Instead, only declare the fiemap_extents zero length array
on linux, which is the only platform that references this member.
This avoids a compilation failure on systems that don't support
this non standard construct.  We don't use the equivalent C99
flexible array construct so as to have maximum portability.
* src/extent-scan.c: Cleanup. Remove a redundant #ifndef.
2011-07-15 10:55:04 +01:00
Paul Eggert
feb0b08c0d * src/fiemap.h (struct fiemap.fm_extents): Change size to 1.
This is for portability to non-GCC C89 and C99 compilers.
Original problem, on NonStop, reported by Joachim Schmitz in
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9077>.
2011-07-14 22:08:04 -07:00
Bernhard Voelker
be6120b5cc maint: fix warning 'possible use of "=" where "==" was intended'
* src/mktemp.c: maint: avoid warning by using the comma operator
rather than an always-true conditional (as suggested by Eric Blake).
Reported by Joachim Schmitz in http://debbugs.gnu.org/9064.
2011-07-14 11:56:23 +01:00
Benoît Knecht
acdf4e99e6 doc: describe the file permissions set by mktemp
* src/mktemp.c (usage): As above, for --help.
Reported by Jordi Pujol in http://bugs.debian.org/551093.
Wording improvments from Eric Blake.
2011-07-13 15:12:28 +01:00
Benoît Knecht
2c558fd0d3 doc: note the order in which wc counts are printed
This information has already been added to the Texinfo manual, but was
missing from the --help output.

* src/wc.c (usage): As above, for --help.
Reported by Vincent Lefevre in http://bugs.debian.org/395430.
2011-07-13 10:16:03 +01:00
Jim Meyering
7700751c5f build: update gnulib submodule to latest 2011-07-12 15:40:53 +02:00
Eric Blake
bf0771a1c5 build: list makeinfo 4.13 as a build-from-git requirement
* bootstrap.conf (buildreq): List 4.13 as minimum makeinfo version.
Prompted by Joachim Schmitz's report in http://debbugs.gnu.org/9050.
2011-07-12 15:40:45 +02:00
Benoît Knecht
6cafe09c33 dircolors: highlight .webm multimedia files
* src/dircolors.hin: Add .webm multimedia files.
Suggested by Josh Triplett in http://bugs.debian.org/582403.
2011-07-11 10:13:29 +02:00
Jim Meyering
f8f1c8111e maint: add syntax-check rule to prohibit "."-terminated "SEE ALSO"
* cfg.mk (sc_prohibit_man_see_also_period): Prohibit a period at
the end of the first line after a "SEE ALSO" marker in man/*.x.
With this, we shouldn't have to make any more changes like those
in today's commit, f2dabd68.
2011-07-08 21:55:00 +02:00
Pádraig Brady
af1ffdff17 doc: list all new file system types recognized by stat -f
NEWS (Improvements): Mention the MQUEUE and PSTOREFS
file systems, recognized as of commit 171e1b98.
2011-07-08 16:01:27 +01:00
Benoît Knecht
f2dabd6806 doc: don't terminate SEE ALSO sections with a period
man-pages(7) explicitly says about SEE ALSO sections: "Do not terminate
this with a period." This is also in line with all the other man pages
in coreutils.

* man/cat.x: Remove period at the end of the SEE ALSO section.
* man/tac.x: Likewise.
2011-07-08 15:28:16 +01:00
Pádraig Brady
5a647a05e2 timeout: handle signals more transparently
* m4/jm-macros.m4: Define HAVE_SETRLIMIT.
* src/timeout.c: If the child exited with a signal,
raise that signal to the timeout process itself,
so that callers may also see the signal status.
Use setrlimit to disable core dumps for the timeout
process, which would be generated by some signals.
2011-07-08 15:11:27 +01:00
Pádraig Brady
4d90d29899 timeout: support cascaded timeouts
* src/timeout.c (cleanup): Send signals directly to the child
in case it has started its own process group (like a cascaded
timeout command would for example).
* test/misc/timeout-group: Add a test case.
* NEWS: Mention the fix.
2011-07-08 13:54:08 +01:00
Pádraig Brady
4496c94091 timeout: add --foreground to support interactive commands
Or more accurately, commands not started from the shell prompt,
that are interactive, or need to receive Ctrl-C etc. from the terminal.

* doc/coreutils.texi (timeout invocation): Document --foreground.
* src/timeout.c (main): Set the foreground flag and don't create
a separate group.
(cleanup): Only send a signal directly to the monitored command
when the foreground flag is set.
(usage): Describe --foreground.
* tests/misc/timeout-group: Add a new test.
* tests/Makefile.am: Reference new test.
NEWS: Mention the new option.

Reported by Shay Shimony
Analysis by Alan Curry
Fix suggested by Paul Eggert
2011-07-08 11:23:08 +01:00
Benoît Knecht
28a7fb52bc doc: note that cp -l creates _hard_ links
This fact was already noted in the Texinfo manual, but not in the
output of --help.
* src/cp.c (usage): As above, for --help.
Reported by Jari Aalto in http://bugs.debian.org/294327.
2011-07-08 12:15:00 +02:00
Jim Meyering
b358f1f2a3 tests: exercise md5sum's new --strict option
* tests/misc/md5sum: Exercise new --strict option.
2011-07-07 16:42:47 +02:00
Patrick Schoenfeld
33171d049a md5sum, sha1sum, etc: accept new option: --strict
Use this new option with --check when the input is expected to
consist solely of checksum lines.  With only --check, an invalid
line evokes a warning, but the program can still exit successfully.
With --strict, any invalid line makes the program exit non-zero.

* src/md5sum.c (strict, STRICT_OPTION): Declare/define.
(long_options): Add "strict".
(usage): Describe --strict.
(digest_check): Count improperly_formatted lines, too, and use
that number and the global "strict" to determine the return value.
(main): Handle STRICT_OPTION.
Reject --strict without --check.
* doc/coreutils.texi: Describe it.
* NEWS (New features): Mention it.
2011-07-07 16:42:47 +02:00
Benoît Knecht
88bdce982a doc: note date's %k, %l are space-padded and equivalent to %_H and %_I
* src/date.c (usage): As above, for --help.
* doc/coreutils.texi (Time conversion specifiers): Likewise.
Reported by Britton Leo Kerin in http://bugs.debian.org/115833.
2011-07-07 14:01:50 +02:00
Jim Meyering
473b4fc1e8 stat: recognize GPFS as a file system type
* src/stat.c (human_fstype) [S_MAGIC_GPFS]: Add a case,
to handle GPFS_SUPER_MAGIC/0x47504653.  Prompted by this discussion:
http://thread.gmane.org/gmane.comp.sysutils.autoconf.general/14007
* NEWS (Improvements): Mention it.
2011-07-07 13:58:22 +02:00
Jim Meyering
84d048002e maint: use "const" and "pure" function attributes where possible
* configure.ac (WARN_CFLAGS): Add -Wsuggest-attribute=const,
-Wsuggest-attribute=pure and -Wsuggest-attribute=noreturn.
(GNULIB_WARN_CFLAGS): But do not add them here... yet.
* src/chown-core.h (chopt_free, uid_to_name): Add function attribute(s).
* src/copy.c (is_ancestor, valid_options): Likewise.
* src/copy.h (chown_failure_ok): Likewise.
* src/dd.c (operand_matches, operand_is): Likewise.
* src/df.c (selected_fstype, excluded_fstype): Likewise.
* src/expr.c (null looks_like_integer): Likewise.
* src/md5sum.c (hex_digits): Likewise.
* src/od.c (get_lcm): Likewise.
* src/pathchk.c (component_start, component_len): Likewise.
* src/pinky.c (count_ampersands): Likewise.
* src/pr.c (cols_ready_to_print): Likewise.
* src/ptx.c (search_table): Likewise.
* src/sort.c (find_unit_order): Likewise.
* src/stty.c (mode_type_flag, string_to_baud, baud_to_value): Likewise.
* src/system.h (gcd, lcm): Likewise.
* src/tr.c (is_char_class_member, look_up_char_class): Likewise.
(star_digits_closebracket): Likewise.
* src/uniq.c (find_field): Likewise.
* src/wc.c (compute_number_width): Likewise.
* lib/xfts.h (cycle_warning_required): Likewise.
* gl/lib/randint.h (randint_get_source): Likewise.
* gl/lib/randperm.c (ceil_lg): Likewise.
* gl/lib/randperm.h (randperm_bound): Likewise.
* lib/strnumcmp.h (strintcmp): Likewise.
2011-07-02 12:35:06 +02:00
Jim Meyering
76d8e9abe1 buffer_lcm: declare with _GL_ATTRIBUTE_CONST
* lib/buffer-lcm.h (buffer_lcm): Use _GL_ATTRIBUTE_CONST.
* lib/buffer-lcm.c: Include <config.h>.
2011-07-02 12:35:06 +02:00
Pádraig Brady
e7734b4a66 doc: detail the effect of disabling input buffering with stdbuf
* docs/coreutils.texi (stdbuf invocation): Expand on the different
reasons for disabling buffering on input and output.
2011-07-01 22:47:54 +01:00
Bruno Haible
0c87ba4693 doc: mention the restrictions for stdbuf more prominently
* doc/coreutils.texi (stdbuf invocation): List the contraints
on the command being controlled, up front.
2011-07-01 22:44:19 +01:00
Jim Meyering
10ec91d84a doc: improve ls --help grammar
* src/ls.c (usage): Improve grammar.
Reported by Peng Yu.
2011-06-25 14:54:49 +02:00
Jim Meyering
18839ad9c1 doc: clarify an improvement from coreutils-7.0
* NEWS (7.0 Improvements): Mention the command: "ls -1U".
* cfg.mk (old_NEWS_hash): Update.
2011-06-25 07:59:13 +02:00
Jim Meyering
54cbe6e643 maint: don't use gnulib's pathmax module; define PATH_MAX if needed
* bootstrap.conf (gnulib_modules): Remove pathmax.
* src/system.h: Don't include "pathmax.h".
(PATH_MAX) [!PATH_MAX]: Define to 8192.  Defining it to a constant
is preferable to using a definition from pathmax.h that might expand
to pathconf ("/", _PC_PATH_MAX). Prompted by discussion leading to:
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/27183/focus=27269
2011-06-25 07:59:13 +02:00
Jim Meyering
5f4a1cda67 build: bootstrap: remove obsolete gettext-related file exclusions
* bootstrap.conf: Don't bother to exclude gettext/intl-related
.m4 files.  That exclusion is no longer necessary.
2011-06-25 07:59:13 +02:00
Pádraig Brady
171e1b9815 stat: recognize MQUEUE and PSTOREFS file systems
* src/stat.c (human_fstype): Add magic numbers for
PSTOREFS and MQUEUE.
2011-06-24 13:30:57 +01:00
Bernhard Voelker
376b19410e tests: stat-free-color: do not count stat calls before main
* tests/ls/stat-free-color: The system may perform additional stat
calls upon loading (seen on OpenSuSE-11.4).  Count only the number
of stat calls compared to --help.
This also reduces back to "1" the number of expected calls,
effectively reverting part of 2011-06-01 commit, ccf2d9a4.
2011-06-22 16:06:52 +02:00
Bernhard Voelker
6301c72b6f tests: cp/sparse-fiemap: use "head -n99" in place of "head -99"
* tests/cp/sparse-fiemap: Use "head -n99" in place of "head -99".
The latter is officially obsolete.
2011-06-21 14:37:53 +02:00
Jim Meyering
1d919fbb7f tests: init.sh: use "sed 1q" in place of "head -1"
* tests/init.sh (warn_): Use "sed 1q" in place of "head -1".
The latter is officially obsolete but more portable than "head -n1".
Reported by Bernhard Voelker.
2011-06-20 10:01:43 +02:00
Jim Meyering
ea7c77df7f maint: update THANKS.in
* THANKS.in: Remove Stefano's name.
2011-06-20 09:53:24 +02:00
Bernhard Voelker
b970f0a505 tests: improve init.sh by removing w2_
* tests/init.sh (w2_): Remove, moving contents into...
(warn_): ...here.  Call self from subshell when IFS must be changed.
2011-06-20 09:53:20 +02:00
Stefano Lattarini
2f60384d6a tests: avoid extra forks in the testsuite
* tests/shell-or-perl: Prefer the `read' builtin over `grep' to
look at the shebang line of test scripts.  Since `read' is a
special builtin, it might abort the whole program upon failures,
so add extra sanity checks, verifying that the test script exists
and is readable, before trying to read from it.
2011-06-19 21:57:43 +02:00
Stefano Lattarini
a51c6e0356 tests: make test runner a script, not a shell function
This change implements a more correct and idiomatic use of the
features of the Automake-provided 'parallel-tests' harness.
Moreover, this change is required in order for the testsuite to
continue to work with the new testsuite harness that is planned
to be introduced in Automake 1.12 (which, as of the writing date,
is still under development and in alpha state).

* tests/shell-or-perl: New auxiliary script.
* tests/Makefile.am (EXTRA_DIST): Distribute it.
* tests/check.mk (TESTS_ENVIRONMENT): Remove definition of the
`shell_or_perl_' shell function, whose code has been moved in
the new script above (with a few improvements and extensions).
Do not use it to run the test scripts.
(LOG_COMPILER): New, properly invoking `shell-or-perl'.
2011-06-19 21:57:43 +02:00
Jim Meyering
e23f179557 stdbuf: fix automake variable name to work with cutting edge automake
* src/Makefile.am (pkglibexec_PROGRAMS): Rename from pkglib_PROGRAMS.
The latter is invalid.  Without this change, automake
v1.11-373-g9ca6326 and newer (on master) would fail with this:
`pkglibdir' is not a legitimate directory for `PROGRAMS'
This changes the default installation directory of libstdbuf.so from
$prefix/lib/coreutils/ to
$prefix/libexec/coreutils/
* src/stdbuf.c (set_LD_PRELOAD): Search in PKGLIBEXECDIR, not PKGLIBDIR,
since that's where we install libstdbuf.so.
Do not search in "", the system default search path.
2011-06-19 21:57:43 +02:00
Pádraig Brady
24b3c8b160 maint: avoid a false positive syntax check
* cfg.mk (sc_strftime_check): Skip the check when there
is no info to compare against.
Reported by Stefano Lattarini
2011-06-19 11:49:57 +01:00
James Youngman
c8392b368e maint: typo: insert omitted word in test comment
* tests/misc/sort-spinlock-abuse: Fix typo:
s/"very expensive" are/"very expensive" tests are/
2011-06-19 09:16:20 +02:00
Stefano Lattarini
51e9f0308e maint: fix typo in comment in configure.ac
* configure.ac ($MAN): Fix typo in explanatory comment.
2011-06-18 19:37:36 +02:00
Jim Meyering
4c3c2c795e tests: sort-debug-keys: fix a bug with translated diagnostics
Ensure that English diagnostics are emitted even when using
French sorting rules.
* tests/misc/sort-debug-keys: Unset LC_ALL and set LC_COLLATE,
LC_CTYPE and LC_NUMERIC to the fr_FR.UTF-8 locale, while setting
LC_MESSAGES=C.  Reported by Stefano Lattarini.
2011-06-18 08:34:07 +02:00
Pádraig Brady
f0e8f13ead maint: remove duplicate names from THANKS
* .mailmap: Merge email addresses
* THANKS.in: Remove a duplicate name
Reported by Stefano Lattarini
2011-06-17 22:48:22 +01:00
Jim Meyering
23ddefd3d1 maint: use modules/tempname.diff file, not a replacement; update gnulib
Using a .diff is much more maintainable.  Otherwise, changes in
the gnulib module description file may not be noticed and merged
promptly and may even result in subtle errors.  Luckily, this time,
the failure to propagate gnulib's changes to modules/tempname resulted
only in an obvious link failure.
* gl/modules/tempname: Remove file.
* gl/modules/tempname.diff: Use a .diff file instead.
* gnulib: Update submodule to latest.
2011-06-17 12:11:03 +02:00
Jim Meyering
7df26ae6fe tests: avoid sort-spinlock-abuse false positive under heavy load
* tests/misc/sort-spinlock-abuse: Classify as "very expensive" to
avoid unwarranted failure once and for all.
2011-06-17 12:11:03 +02:00
Jim Meyering
2e580ca741 tests: remove skip_test_ function; use new skip_ instead
* tests/init.cfg (skip_test_): Remove function.
Use skip_ in place of skip_test_ everywhere else.
* cfg.mk (sc_prohibit_skip_): Remove rule.
* tests/**: Use skip_, not skip_test_, everywhere.
2011-06-17 09:17:37 +02:00
Jim Meyering
13672ec321 tests: make init.sh's warn_ emit to both the tty and the log file
* tests/init.sh (warn_): When $stderr_fileno_ != 2,
emit the diagnostic to both the tty and the log file.
2011-06-17 09:17:30 +02:00
Jim Meyering
7f8d9892fb tests: use printf, not echo in init.sh's warn_ function
* tests/init.sh (warn_): Use printf, not echo.  The latter would
misbehave when given strings containing a backslash or starting
with e.g., -n.  James Youngman suggested setting IFS.
2011-06-17 08:54:08 +02:00
Jim Meyering
6b687452d8 tests: accommodate HP-UX and ksh-derived shells
Running "make check" normally prints a diagnostic to the outermost
stderr (usually a tty) to explain why a test is skipped.  It did this
by redirecting FD 9 to stderr (via "exec 9>&2") before invoking the
shell script.  Shell scripts write skip-explanation to FD 9 via
init.sh's skip_ function.  However, with ksh and HP-UX's /bin/sh,
the effects of "exec 9>&2" are canceled upon fork-and-exec, so we
would get a "Bad file number" diagnostic and no skip explanation on
those systems.
* tests/check.mk (TESTS_ENVIRONMENT): Redirect more portably, via
"$(SHELL) 9>&2", rather than the prior "exec 9>&2; $(SHELL) ..."
Actually, we use "shell_or_perl_ 9>&2", to make this effective
also for the perl-based tests.
* tests/init.sh (stderr_fileno_): Update the advice in comments.
See http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/22488
for lots of discussion.  Stefano Lattarini suggested the solution
of putting "9>&2" after the command.  Reported by Bruno Haible.
2011-06-14 11:05:05 +02:00
Jim Meyering
ef6e57b24b init.sh: sync from gnulib
* tests/init.sh: Sync recent changes from gnulib.
2011-06-13 18:34:03 +02:00
Jim Meyering
83e424e731 maint: revert previous commit
Revert "init.sh: accommodate shells for which 1>&$stderr_fileno_ fails"
This reverts commit 6fb9aeedd1.
That change did not solve the problem.  For details, see
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8846#74
2011-06-13 18:34:03 +02:00
Jim Meyering
6fb9aeedd1 init.sh: accommodate shells for which 1>&$stderr_fileno_ fails
* tests/init.sh (warn_): Use eval to work around a bug in some shells,
like those of Solaris 10 and HP-UX 11.11.
Improved by Stefano Lattarini.
2011-06-13 12:42:18 +02:00
Jim Meyering
2f5c2a25ed doc: add NEWS items for recent gnulib fixes
* NEWS (Improvements): Mention the new HP-UX 11.11 ACL support.
(Build-related): Mention the cc/HP-UX 11.11 build fix.
2011-06-13 12:39:23 +02:00
Jim Meyering
cd94370f74 tests: avoid sort-spinlock-abuse false positive under heavy load
* tests/misc/sort-spinlock-abuse: This test would frequently fail
when run on a system under heavy load.  Increase duration and limit.
2011-06-13 12:39:22 +02:00
James Youngman
5a3879ad03 maint: use stat-size module from gnulib
* gnulib: Update to latest.
* src/system.h: Definitions of ST_* macros have moved into the
gnulib module stat-size (specifically, the header file
stat-size.h), so remove them from here.
* src/truncate.c: Include stat-size.h.
* src/stat.c: Likewise.
* src/shred.c: Likewise.
* src/ls.c: Likewise.
* src/du.c: Likewise.
* src/ioblksize.h: New file.  Move definition of io_blksize out of
system.h so that system.h does not have to include stat-size.h.
* src/cat.c: Include ioblksize.h.
* src/split.c: Likewise.
* src/copy.c: Include both stat-size.h and ioblksize.h.
* src/Makefile.am (noinst_HEADERS): Add ioblksize.h.
2011-06-13 12:39:22 +02:00
Pádraig Brady
e4feb5c03b tests: avoid a false failure on HPUX systems
* tests/dd/nocache: Relax the test, as the system
may return various errors from posix_fadvise().
HPUX 11.31 returns ENOTTY for example.
Reported by Bruno Haible
2011-06-13 11:36:06 +01:00
Jim Meyering
7c77c93dc5 tests: inotify-rotate: avoid false positive under heavy load
* tests/tail-2/inotify-rotate: Increase timeout from 10s to 40s
to avoid load-induced false positive.
2011-06-11 13:54:12 +02:00
Pádraig Brady
869202a18c maint: remove unneeded includes
Remove unneeded includes as reported by:
http://code.google.com/p/include-what-you-use/

* src/cp-hash.c: Remove unused include.
* src/dd.c: Likewise.
* src/du.c: Likewise.
* src/head.c: Likewise.
* src/kill.c: Likewise.
* src/ls.c: Likewise.
* src/stdbuf.c: Likewise.
* src/timeout.c: Likewise.
* src/truncate.c: Likewise.
2011-06-09 15:19:46 +01:00
Pádraig Brady
77d41d2e20 doc: add examples to date --help
* src/date.c (usage): Add examples for TZ handling,
and "seconds since epoch" parsing, neither of which
was mentioned in the man page until now.
* THANKS.in: Add Rick.
Suggested by Rick Stanley.
2011-06-09 15:07:42 +01:00
Jim Meyering
c2b25223c1 build: require at least 2-year old autoconf-2.64 (was 2.62)
* configure.ac: Require autoconf-2.64, which is nearly two years old.
* src/system.h (emit_ancillary_info): Use PACKAGE_URL, now that we
require autoconf-2.64.
2011-06-04 10:57:01 +02:00
Jim Meyering
b7332b889e maint: remove now-spurious curly braces
* src/chown-core.c (restricted_chown): Remove FIXME comment and
superfluous curly braces.
2011-06-04 10:56:56 +02:00
Jim Meyering
ccf2d9a482 tests: stat-free-color: accommodate stat of /selinux on rawhide
* tests/ls/stat-free-color: This test recently began to fail on
rawhide because dynamic library start-up code now stats "/selinux",
making the total number of calls 2 rather than the prior 1.
Create two more dangling symlinks, so that any erroneous stat-
or lstat-calling code will get at least those three.
2011-06-01 16:12:04 +02:00
Marek Polacek
cc8ee4d351 yes.c: do not use exit after error
I think it would be better to exit through the error() and not
to call the exit() after the error().  This way we can get rid of
one function call (and curly brackets).

* src/yes.c (main): Exit through the error(), remove exit() call
after error().
2011-06-01 08:05:29 -06:00
Jim Meyering
e7b4bf4b57 tail: fix an inconsequential bug spotted by coverity
* src/tail.c (start_bytes): Increase *READ_POS (not READ_POS)
by the number of bytes read.  This is a real bug that happens
to have no consequence in practice.  First, this code is exercised
only when tailing-forever a non-regular file by bytes, and with a
start-relative offset, e.g., "mkfifo f; tail -f -c +3 f", but even
then, the invalid READ_POS value does not influence how tail works.
It is stored in the File_spec.size member, but that member is not
used at all in tail_forever_inotify, and in tail_forever, it is
used only when the File_spec refers to a regular file.
2011-06-01 13:49:04 +02:00
Paul Eggert
c1716a1ebf * doc/coreutils.texi (sort invocation): I/0 -> I/O (sr#107504) 2011-05-31 09:59:22 -07:00
Jim Meyering
5c557690d8 maint: remove unnecessary gnulib .diff file
* gl/modules/getloadavg.diff: Remove file.  It stopped being
useful back in February.
* Makefile.am (EXTRA_DIST): Remove it.
2011-05-29 14:37:41 +02:00
Jim Meyering
d4aca64b53 maint: placate -Wsign-compare when it's non-invasive
* src/stdbuf.c: Declare loop index to be unsigned.
2011-05-29 12:16:11 +02:00
Jim Meyering
31bbcc7abf ls: placate gcc-4.7.0's -Wstrict-overflow
* src/ls.c (enum parse_state): Define.
(parse_ls_color): Use enum names in place of constants,
thus avoiding the offending -1.
2011-05-28 22:10:00 +02:00
Jim Meyering
d0a9750e08 maint: remove useless (off_t) cast of lseek arg
* src/wc.c (wc): Remove unnecessary cast.
* src/head.c (elide_tail_bytes_file, elide_tail_lines_file): Likewise.
* src/tac.c (tac_seekable, tac_file): Likewise.
2011-05-28 13:52:17 +02:00
Jim Meyering
963d809ae9 tests: move tests/misc/split-* into tests/split/...
* tests/split/suffix-length: Rename from tests/misc/split-a.
* tests/split/b-chunk: Rename from misc/split-bchunk.
* tests/split/fail: Rename from tests/misc/split-fail.
* tests/split/lines: Rename from tests/misc/split-l.
* tests/split/l-chunk: Rename from tests/misc/split-lchunk.
* tests/split/r-chunk: Rename from tests/misc/split-rchunk.
* tests/Makefile.am (TESTS): Reflect renaming.
2011-05-28 13:52:17 +02:00
Pádraig Brady
54a49f22ae chown,chgrp: output the original ownership in -v messages
* src/chown-core.c (describe_change): Output the
original owner if possible.
(user_group_str): Handle the case when neither
owner or group are passed.
* NEWS: Mention the change in behavior.
2011-05-27 23:21:46 +01:00
Pádraig Brady
6b282e7510 chown,chgrp: output the correct ownership in -v messages
* src/chown_core.c (describe_change): Accept the ownership of
the original file and output that when not changing.
This is significant when --from is specified as then
the original and specified ownership may be different.
(user_group_str): A new helper function refactored from
describe_change().
(change_file_owner): Pass the original user and group
strings to describe_change().
* test/chown/basic: Add a test case.
* NEWS: Mention the fix.
2011-05-27 22:37:46 +01:00
Pádraig Brady
8a26bccb46 maint: fix a -Wstrict-overflow build failure with gcc 4.5
* src/ls.c (print_color_indicator): Avoid the warning by
not decrementing the integer.
2011-05-27 00:39:55 +01:00
Jim Meyering
ad756440fb build: --enable-gcc-warnings: enable -Wstrict-overflow in src/
* configure.ac (WARN_CFLAGS): Don't turn off -Wstrict-overflow.
(GNULIB_WARN_CFLAGS): Remove -Wstrict-overflow from the list of
warning options used in lib/.
Normally I find that -Wstrict-overflow produces too many false
positives, but considering that it warns of the bug reported in
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33498, I now think
it is worthwhile.  The lesser of two evils.
Thanks to Daniel Veillard for showing me the gcc bug report.
2011-05-26 22:13:54 +02:00
Jim Meyering
419b6c9d42 maint: accommodate gcc's -Wstrict-overflow option
* src/factor.c (factor_using_pollard_rho): Change type of "i"
to unsigned to avoid warning from gcc's -Wstrict-overflow.
* src/expr.c: Use an unsigned intermediate.
* src/dircolors.c (main): Reorder operations to avoid the risk of
pointer overflow.
* src/tr.c (squeeze_filter): Change NOT_A_CHAR from an anonymous
"enum" to an "int", to avoid this warning:
tr.c:1624:10: error: assuming signed overflow does not occur when
  simplifying conditional to constant [-Werror=strict-overflow]
* src/pr.c (main): Make index "i" unsigned.
2011-05-26 22:13:37 +02:00
Jim Meyering
d7e2365203 maint: enforce cpp indentation policy
* cfg.mk (sc_preprocessor_indentation): New test, from libvirt.
Exempt 3 files from new cppi test.
* gl/lib/randread.c: Adjust cpp indentation to comply.
* src/extent-scan.c (extent_need_sync): Likewise.
2011-05-26 22:10:46 +02:00
Jim Meyering
3f98fe3155 maint: env.c: remove unnecessary use of strchr
* src/env.c (main): Remove excess (and confusing to static analyzers)
use of strchr.
2011-05-26 22:10:46 +02:00
Jim Meyering
a042bba6c7 shred: placate coverity and fix a comment
* src/shred.c (incname): Add an assertion to tell static analyzers
that we know this particular use of strchr never returns NULL.
Finish incomplete sentence in function-describing comment.
2011-05-26 22:10:46 +02:00
Pádraig Brady
41139da2e7 maint: split: remove --filter specific code from other paths
* src/split.c (lines_chunk_split): Don't use ignore_error() which
is redundant and confusing when not running with --filter.
(lines_rr): Likewise.
(ofile_open): Likewise. Add a comment to clarify that
filters aren't restarted under file descriptor pressure.
2011-05-26 00:28:14 +01:00
Pádraig Brady
bfffa90947 split: diagnose when --filter is used with a chunk number
* src/split.c (main): Exit with a diagnostic if --filter
is specified along with a specific chunk number.
* test/split/filter: Ensure this combination fails.
2011-05-26 00:23:11 +01:00
Pádraig Brady
6eec064597 split: exit when we can no longer write to a --filter
* src/split.c (bytes_split): Stop reading when we
can no longer write to a child process.
(lines_rr): Likewise.
(lines_bytes_split): No change is made here since
input is bounded by the original file size.
* test/split/filter: Add test cases.
2011-05-26 00:12:05 +01:00
Pádraig Brady
5908e29e82 split: return success even if a --filter exits
src/split.c (main): Don't unblock SIGPIPE before cleanup,
as then any pending signals will be sent and cause
the main split process to exit with a non zero status (141).
* test/split/filter: Add a test for this case.
2011-05-26 00:10:32 +01:00
Pádraig Brady
d92849fe5a split: fix an edge case where -n l/... creates an extra file
* src/split.c (lines_bytes_chunk): Handle the edge case
where the file is truncated as we read.
* tests/misc/split-lchunk: Cleanup; no functional change.
2011-05-25 23:04:58 +01:00
Bernhard Voelker
e89c998a9e chmod: output the original mode in verbose mode
* src/chmod.c (describe_change): Pass in the original mode,
and output this in the messages.
* tests/chmod/c-option: Adjust as per the new message.
* THANKS.in: Remove the now auto-generated name.
* NEWS: Mention the change in behavior.

Signed-off-by: Pádraig Brady <P@draigBrady.com>
2011-05-25 23:04:12 +01:00
Jim Meyering
bf9d4f1317 tests: ls/stat-free-color: fix unwarranted failure on a 32-bit system
* tests/ls/stat-free-color: Also check for stat64 and lstat64 syscalls.
This fixes a test failure reported by Stefano Lattarini.
2011-05-25 08:27:34 +02:00
Jim Meyering
56a88e9522 maint: accommodate gnulib's newer tight_scope rule
* cfg.mk: Include via "-include", to accommodate new tight-scope rule.
(sc_check-AUTHORS): Change the name of the rule in src/Makefile.am
to _sc_check-AUTHORS, so it doesn't conflict with this one when
this file is included into the sub-make's context.
* src/Makefile.am (_sc_check-AUTHORS): Rename from sc_check-AUTHORS.
* gnulib: Update to latest.
2011-05-25 08:26:14 +02:00
Jim Meyering
484df12639 doc: make README-hacking slightly more generic
* README-hacking: Remove a reference to "coreutils".
2011-05-25 08:26:14 +02:00
Jim Meyering
dac67b8cc2 touch: placate static analyzers: no NULL-deref is possible
* src/touch.c (main): Avoid even the hint of possibility that
we'd dereference NULL upon localtime failure.  Coverity reported
the potential, but it appears not to be possible, since posixtime
rejects any time for which the subsequent localtime would return NULL.
See http://thread.gmane.org/gmane.comp.gnu.coreutils.general/1253
2011-05-25 08:25:54 +02:00
Pádraig Brady
7d44751f0e split: fix cases where -n l/... creates extraneous files
* src/split.c (lines_chunk_split): Ensure that data is only
written to stdout when k specified.  Also ensure that
extra files are not created when there is more data available
than reported in the file size.
* tests/misc/split-lchunk: Verify that split -n l/k/n doesn't
generate any files, and that -n l/n always generates n files.
* NEWS: Mention the fix.
2011-05-24 16:29:48 +01:00
Stéphane Raimbault
9ead32a9be doc: add a missing space in timeout --help
* src/timeout.c (usage): Add a space to be consistent
with other uses of "(the default)" in the documentation.

Signed-off-by: Pádraig Brady <P@draigBrady.com>
2011-05-24 16:17:02 +01:00
Pádraig Brady
64ceb14984 doc: improve tail -f vs. inotify description and advice
* doc/coreutils.texi (tail invocation): Adjust, and add an example.
2011-05-24 12:04:54 +02:00
Jim Meyering
0a8d30534b maint: avoid trivial syntax-check failure
* doc/coreutils.texi (tail invocation): Use @var{n}, not @var{N}.
2011-05-23 20:03:58 +02:00
Karl Berry
ac9c5330df maint: README-hacking clarifications
* README-hacking: Small getting-started clarifications.
2011-05-23 19:07:25 +02:00
Jim Meyering
acbfebeb8d doc: describe how kernel inotify support affects tail -f
* doc/coreutils.texi (tail invocation) [-f]: Mention how inotify
kernel support makes a difference.
Prompted by http://bugzilla.redhat.com/662900
2011-05-23 16:09:52 +02:00
Jim Meyering
d61f5a1c16 tests: fix typo in tac-continue
* tests/misc/tac-continue: Fix typo in usually-skipped test:
s/mkfifo_or_skip/mkfifo_or_skip_/ (i.e., append "_").
This test is usually skipped, because I'm probably the only
one to set the FULL_PARTITION_TMPDIR envvar, and recently the
one I'd been using ceased to exist, so this test was skipped
even for me.  Good argument for making this a root-only test
and creating a full partition just for this test case.
2011-05-22 17:10:31 +02:00
Jim Meyering
12c5386a30 doc: fix a formatting nit in od's texinfo documentation
* doc/coreutils.texi (od invocation): Typesetting of "bytes" was wrong.
Fix it via s/@code/@var/ so it's consistent.
2011-05-22 09:11:19 +02:00
Ivan Sichmann Freitas
485a454576 maint: fix comment typos in df.c
* src/df.c: s/Optain/Obtain/
2011-05-21 10:39:48 +02:00
Jim Meyering
cb4a0e31e2 maint: correct typos involving misuse of "a" and "an"
* NEWS: "an misleading"
* src/expr.c: "a integer
* src/ptx.c (find_occurs_in_text): "a end"
* src/shred.c (do_wipefd): "a infinite"
* src/sort.c (SUBTHREAD_LINES_HEURISTIC): "an dual-core"
(compare_random): "an checksum"
* cfg.mk (old_NEWS_hash): Update, since the typo was in old news.
2011-05-19 21:36:33 +02:00
Pádraig Brady
beaa949313 printf: fix an out-of-bounds memory access
* src/printf.c (STRTOX): Don't access memory after a
string containing a single quote character.
* tests/misc/printf: Add tests for various combinations
of single quote characters combined with a numeric format.
* THANKS.in: Add bug reporter.
* NEWS: Mention the fix.

Reported-by: Paul Marinescu <paul.marinescu@imperial.ac.uk>
2011-05-18 07:33:04 +01:00
Pádraig Brady
50ca38e523 doc: mention that ls time ordering is newest first
* src/ls.c (usage): Add the "newest first" info to
the -t and -c options
2011-05-17 07:51:44 +01:00
Pádraig Brady
5116103826 tests: refactor more tests to use mkfifo_or_skip_
* tests/cp/existing-perm-race: s/mkfifo/mkfifo_or_skip_/
* tests/cp/file-perm-race: Likewise.
* tests/cp/parent-perm-race: Likewise.
* tests/cp/special-f: Likewise.
* tests/dd/reblock: Likewise.
* tests/ls/file-type: Likewise.
* tests/misc/cat-buf: Likewise.
* tests/misc/mknod: Likewise.
* tests/misc/printf-surprise: Likewise.
* tests/misc/selinux: Likewise.
* tests/misc/sort-spinlock-abuse: Likewise.
* tests/misc/stdbuf: Likewise.
* tests/misc/tac-continue: Likewise.
* tests/init.cfg: Improve the error message when skipping.
2011-05-14 10:41:29 +01:00
Pádraig Brady
27873f1deb shuf: use memory more efficiently when returning a subset
* gl/lib/randperm.c (randperm_new): When the number of items
to return H, is much smaller than the total number of items N,
use a hash to represent the sparse permutations of the set N.
This is currently enabled for N > 128K and N/H > 32.
* tests/misc/shuf: Ensure shuf can quickly return 2 numbers
from a large range.
* gl/modules/randperm: Depend on hash.
* NEWS: Mention the change.
2011-05-14 10:30:12 +01:00
Jim Meyering
9d152a1ed7 maint: avoid syntax-check failure due to long line
* tests/du/bigtime (future_time): Split long line.
2011-05-13 23:37:23 +02:00
Jim Meyering
76f49e601e maint: add new syntax-check rule to prohibit use of skip_
* cfg.mk (sc_prohibit_skip_): New rule.
* tests/init.cfg (skip_test_): Add a comment.
2011-05-13 18:57:31 +02:00
Jim Meyering
89d542f3d8 tests: use skip_test_, not skip_
skip_test_ emits its diagnostic both to FD 9 (tty), and to
FD 2 (usually the log file), whereas init.sh's skip_ emits
only to FD 9.  Without that, the log is slightly less useful.
* tests/cp/fiemap-2: Use skip_test_, not skip_.
* tests/cp/fiemap-perf: Likewise.
* tests/du/bigtime: Likewise.
* tests/du/files0-from-dir: Likewise.
* tests/du/move-dir-while-traversing: Likewise.
* tests/init.sh: Likewise.
* tests/misc/sort-stale-thread-mem: Likewise.
* tests/misc/stat-nanoseconds: Likewise.
* tests/mv/i-3: Likewise.
* tests/mv/sticky-to-xpart: Likewise.
* tests/split/filter: Likewise.
Prompted by a report from Pádraig Brady.
2011-05-13 18:38:52 +02:00
Jim Meyering
a085b6fc6c ls: allow stat-free use of --color
Even on a system with d_type support, the default use of --color
makes ls stat every file in order to be able to honor settings like
EXEC, STICKY, ORPHAN, SETUID, etc., because those settings require
information that is not provided by dirent.d_type.  However, if
for a potentially large performance gain, you are willing to disable
those settings, you can now make ls --color give type-related coloring
and perform no stat calls at all (other than the unavoidable call-per-
command-line argument).  Before this change, even with all of those
attributes disabled, ls --color would still stat every directory.
Now, we're down to the minimum of one stat call per command-line arg.
* src/ls.c (gobble_file): With --color, don't stat a
non-command-line-specified directory when no directory-coloring
attribute is enabled.
* tests/init.cfg (require_dirent_d_type_): New function.
* tests/d_type-check: New script, mostly from Pádraig Brady.
* tests/Makefile.am (EXTRA_DIST): Add it.
* tests/ls/stat-free-color: New test.
* tests/Makefile.am (TESTS): Add it.
* doc/coreutils.texi (General output formatting): Describe how
to use dircolors to make ls --color refrain from calling stat
on a d_type-enabled file system.
Prompted by a query from Josef Bacik.
2011-05-13 18:28:43 +02:00
Jim Meyering
6bc73ee56e maint: use <unistd.h>, not "group-member.h"
gnulib's group-member module now ensures that the group_member
function is declared in <unistd.h>, just like it is glibc.
* lib/euidaccess-stat.c: Remove inclusion of "group-member.h".
* src/chgrp.c: Likewise.
2011-05-12 08:23:52 +02:00
Jim Meyering
eec0e6d2e4 build: update gnulib submodule to latest 2011-05-12 08:23:52 +02:00
Jim Meyering
9418e01abe maint: remove syntax-checking sc_tight_scope rule
* src/Makefile.am (sc_tight_scope): Remove rule.
Now it's provided via gnulib's maint.mk.
* cfg.mk (sc_tight_scope): Likewise.
2011-05-11 17:20:33 +02:00
Jim Meyering
2141543a37 maint: tail: mark a global variable as static
* src/tail.c [HAVE_INOTIFY] (inotify_wd_mask): Declare static.
2011-05-11 17:17:53 +02:00
Pádraig Brady
73fd918bd0 maint: remove -Wmissing-field-initializers workarounds
* configure.ac: Rather than disabling -Wmissing-field-initializers,
use the fact that gnulib now disables it automatically when required
(on versions of GCC older than 4.7).
* src/system.h: Remove the no longer needed DECLARE_ZEROED_AGGREGATE.
* src/ls.c: Likewise.
* src/pathchk.c: Likewise.
* src/shred.c: Likewise.
* src/stty.c: Likewise.
* src/wc.c: Likewise.
2011-05-08 17:38:37 +01:00
Jim Meyering
3c8ff029d4 tests: don't fail the split --filter=CMD test if xz is not available
* tests/split/filter: Skip if xz is not installed.
2011-05-07 07:48:00 +02:00
Jim Meyering
09baf2287e doc: document split's new --filter=CMD option
* doc/coreutils.texi (split invocation): Describe --filter=CMD.
* NEWS (New feature): Mention it.
2011-05-06 22:54:51 +02:00
Jim Meyering
2644e288e4 tests: test split's new --filter=CMD option
* tests/Makefile.am (TESTS): Add split/filter.
* tests/split/filter: New file.
2011-05-06 22:54:51 +02:00
Karl Heuer
a09d9e5bad split: accept new output --filter=CMD option
* src/split.c: Include <signal.h>, <sys/wait.h> and "sig2str.h".
(FILTER_OPTION): New anonymous enum member.
(filter_command, filter_pid): New globals.
(open_pipes, open_pipes_alloc, n_open_pipes): Likewise.
(oldblocked, newblocked): Likewise.
(longopts): Add "filter".
(usage): Document --filter.
(create): Extend to create a pipe and fork "sh -c CMD".
(closeout): Adapt to close a pipe and wait for child process.
(cwrite): Call closeout, not just close.
(lines_chunk_split): FIXME
(bytes_chunk_extract): FIXME
(opid, ofile_open, lines_rr, main): FIXME
(ignorable): New function, to encapsulate EPIPE test.
2011-05-06 22:54:51 +02:00
Jim Meyering
a1f21327eb build: update gnulib submodule to latest 2011-05-06 17:05:49 +02:00
Pádraig Brady
ebce7bfb1b sort: fix a contradictory --debug warning
* src/sort.c (key_warn): `sort -k2,1n --debug` would output
warnings about being both "zero width" and "spanning multiple fields".
Suppress the latter one.
* tests/misc/sort-debug-warn: Add a couple of test cases.
2011-05-06 08:07:46 +01:00
Pádraig Brady
9aeffd3fe5 df: fix crash in mem exhaustion edge case
* src/df.c (print_table): Don't try to output NULL
if ambsalign() can't allocate memory.  Instead just
output the unaligned text.
2011-05-05 16:32:14 +01:00
Jim Meyering
719dcc7f01 maint: remove use of gnulib's obsolete strtol module
* bootstrap.conf (gnulib_modules): Remove now-obsolete "strtol".
Remove use of $obsolete_gnulib_modules: unused since commit edc69f91.
2011-05-03 10:25:32 +02:00
Jim Meyering
73243f181d maint: remove unnecessary listing of update-copyright in Makefile.am
* Makefile.am (changelog_etc): Don't list update-copyright here.
It is automatically included via gnulib-tool-generated lib/gnulib.mk.
2011-05-03 10:25:32 +02:00
Jim Meyering
9d282141ba doc: remove a name from THANKS.in that is derived from git log
* THANKS.in: Remove a now-duplicate name.
2011-05-03 10:25:32 +02:00
Jim Meyering
47ef7504da copy: fix my typo
* src/copy.c (copy_reg): Fix my typo (mis-applied patch).
The patch by Jeff Liu was fine, but I mis-applied it
and introduced a compilation error in commit efa479c1.

2011-05-03  Jim Meyering  <meyering@redhat.com>
2011-05-03 10:24:18 +02:00
Jim Meyering
4b28ff7f32 build: avoid bootstrap failure when $GZIP is set
Running "GZIP=-9 ./bootstrap" would fail right away, because the
tool-version-checking code would treat the upper-cased program name
as an environment variable name and if that has a value use the
result as the application name.  That works fine for automake,
autoconf, etc. but not for gzip.
* bootstrap (check_versions): Do not treat $GZIP as a program name.
If defined at all, it is supposed to list gzip options.
Reported by Alan Curry in http://debbugs.gnu.org/8609
2011-05-03 10:15:13 +02:00
Jeff Liu
efa479c1e5 copy: correct misuse of quote in diagnostic
* src/copy.c (copy_reg): Multiple uses of quote (s) in an
argument list is erroneous.  Use quote_n, instead.
2011-05-03 10:15:13 +02:00
Jim Meyering
b83d289685 maint: adjust split.c formatting to conform
* src/split.c (usage): Correct indentation.
(ofile_open): Likewise.
(create): "char *name", not "char* name".
(struct of_info) [ofile]: Similar.
(parse_chunk): Add spaces around "+".
2011-04-30 12:20:56 +02:00
Eric Blake
c1effb1f2b build: update to latest gnulib
* gnulib: Update to latest.
* bootstrap.conf (gnulib_modules): Add xgetgroups.
2011-04-29 11:03:33 +02:00
Jim Meyering
d78ccd5949 tests: distribute new file, CuSkip.pm
Without this, most perl-based tests would fail in "make distcheck".
* tests/Makefile.am (EXTRA_DIST): Add CuSkip.pm
2011-04-29 11:03:33 +02:00
Jim Meyering
3ed91fc8b9 tests: remove useless test: misc/pwd-unreadable-parent
* tests/Makefile.am (TESTS): Remove misc/pwd-unreadable-parent.
This test was misleading and useless (was always skipped).
Inspired by a report from Bruno Haible: http://debbugs.gnu.org/8570
* tests/misc/pwd-unreadable-parent: Remove file.
2011-04-28 22:45:34 +02:00
Jim Meyering
1560848265 tests: write skip explanation from perl scripts also to outer stderr
* tests/CuSkip.pm (skip): New file/module/function, to help
the perl test scripts "skip" a test consistently, emitting
a diagnostic both into the log file and into the outermost
stderr stream that is more likely to be seen by a human.
* tests/check.mk (TESTS_ENVIRONMENT): Add -MCuSkip.
* tests/misc/date-next-dow: Use CuSkip::skip in place of warn+exit-77.
* tests/misc/tty-eof: Likewise.
* tests/misc/uniq: Likewise.
* tests/rm/fail-eperm: Likewise.
* tests/misc/md5sum-newline: Likewise.  Also, s/program_name/ME/.
* tests/misc/ls-misc (setuid_setup, main): Likewise.
* tests/misc/pwd-long: Likewise, and add -I"$abs_srcdir" -MCuSkip
to the $PERL invocation command.
Inspired by a request from Bruno Haible regarding misc/tty-eof:
http://debbugs.gnu.org/8570
2011-04-28 22:43:56 +02:00
Jim Meyering
e3f814a773 post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2011-04-26 16:18:02 +02:00
Jim Meyering
8c6a1d1281 version 8.12
* NEWS: Record release date.
2011-04-26 16:00:50 +02:00
Jim Meyering
74e5ad9cf7 maint: tweak sc_tight_scope rule
* src/Makefile.am (sc_tight_scope): Remove useless quotes,
change 1>&2 to >&2, and combine a few short lines.
2011-04-26 09:27:49 +02:00
Jim Meyering
740516cd12 dd: work around compilation failure on AIX 5.1 and 5.2
* src/dd.c (O_NOCACHE): Undefine.  This symbol is defined
via AIX's <fcntl.h>, yet used as an enum name in dd.c.
Reported by Gary V. Vaughan in http://debbugs.gnu.org/8555
* NEWS (Portability): Mention this.
2011-04-26 09:27:44 +02:00
Jim Meyering
d891fe81f7 maint: move two small functions, so we can remove a fwd decl
* src/dd.c (cleanup, quit): Move the definition of quit to follow the
definition of process_signals, so we can remove the declaration of
the latter.
2011-04-26 09:02:44 +02:00
Jim Meyering
512825f9ba maint: change some leading 8-space sequences to TABs in a Makefile.am
src/Makefile.am (fs-magic, fs-kernel-magic): Change some leading
8-space sequences to TABs.
2011-04-25 14:43:22 +02:00
Jim Meyering
bd6cea345c stat: recognize V9FS and ECRYPTFS file systems
* src/stat.c (human_fstype): Add magic numbers for V9FS and ECRYPTFS.
2011-04-25 14:40:45 +02:00
Jim Meyering
61de57cd23 tail --follow=name no longer implies --retry
* src/tail.c (tail_forever_inotify): Just as without inotify,
tail --follow=name now terminates when the last tailed-by-name file
is unlinked or moved aside.  This bug was introduced on 2009-06-15
via commit ae494d4b, "tail: use inotify if it is available".
Reported by Tim Underwood in
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/22286
* NEWS (Bug fixes): Mention this.
* tests/tail-2/follow-name: Test for this.
* tests/Makefile.am (TESTS): Add it.
2011-04-25 10:59:15 +02:00
Jeff Liu
32eb31999f copy: include both src and dest names in clone failure diagnostic
* src/copy.c (copy_reg): Upon btrfs clone failure, print not just
the destination file name, but also the source file name.
That may be useful upon failure of a cross-device clone attempt.
2011-04-25 10:58:57 +02:00
Jim Meyering
0e6c96e68c tests: tail-2/pipe-f2: avoid false-positive failure
Otherwise, this would fail (albeit rarely) on a "make -j24 check" run.
* tests/tail-2/pipe-f2: Increase timeout from 1 second to 10,
to avoid false positive failure.
2011-04-25 10:58:09 +02:00
Jim Meyering
768b8a0662 maint: explicitly list full-read and full-write module names
* bootstrap.conf (gnulib_modules): Include full-read and full-write
explicitly.  Before, we'd get them via safe-read, but with newer
gnulib, that is no longer enough: link failure due to undefined
references to full_write.
2011-04-25 10:57:58 +02:00
Jim Meyering
249d9a3ca4 doc: tail/inotify does use --sleep-interval=S, with --pid=P
* doc/coreutils.texi (tail invocation): Mention it.
* src/tail.c (usage): Likewise.
(tail_forever_inotify): Clarify comment.
2011-04-25 10:55:27 +02:00
Alan Curry
302cfcaeab tests: sparse-fiemap: adjust syntax to accommodate older awk
* tests/cp/sparse-fiemap: Parenthesize ternary expression used
as an argument to awk's printf.  Otherwise, gawk 3.0.1 and the
one from debian stable's original-awk would get a syntax error.
Reported by Dennis Clarke.

Copyright note: tiny change
2011-04-22 11:10:32 +02:00
Jim Meyering
8c0b1de42c tests: sparse-fiemap: with root/ext3, do not create an ext4 FS
* tests/cp/sparse-fiemap: When this test was run as root on an ext3
file system, (ext3 had known problems), it would trickily create and
mount a loopback ext4 file system and use that instead.  However, due
to a bug in 2.6.39-rc1..rc3, this loopback test (when run in another
loopback FS) exposed a bug with 1k-blocksize ext4 whereby non-NUL
data would be read from a hole.  For details, see this:
http://thread.gmane.org/gmane.comp.file-systems.ext4/24495
2011-04-21 21:01:13 +02:00
Jim Meyering
223e3832eb tests: sparse-fiemap: report more detail upon failure; ignore an FP
* tests/cp/sparse-fiemap: Fail right away with details, when cmp fails.
When extent maps are found to differ, display them and merely warn.
2011-04-21 18:39:02 +02:00
Jim Meyering
18a474d755 copy: use FIEMAP (extent_copy) only for apparently-sparse files,
to avoid the expense of extent_copy's unconditional use of
FIEMAP_FLAG_SYNC.
* src/copy.c (copy_reg): Do not attempt extent_copy on a file
that appears to have no holes.
* NEWS (Changes in behavior): Document this.  At first I labeled this
as a bug fix, but that would be inaccurate, considering there is no
documentation of FIEMAP semantics, nor even consensus among kernel
FS developers.  Here's hoping SEEK_HOLE/SEEK_DATA support will soon
make it into the linux kernel.
2011-04-20 18:48:48 +02:00
Jim Meyering
846d826096 copy: factor out a tiny sparse-testing function
* src/copy.c (HAVE_STRUCT_STAT_ST_BLOCKS): Define to 0 if undefined,
so we can use it in the return expression, here:
(is_probably_sparse): New function, factored out of...
(copy_reg): ...here.  Use the new function.
2011-04-20 18:48:48 +02:00
Jim Meyering
bef4fa1e1a copy: do not treat unwritten extents specially: avoid XFS/ext4 data loss
* src/copy.c (extent_copy): Do not treat "unwritten extents" specially.
Otherwise, with a release-candidate 2.6.39-rc3 kernel, XFS or ext4,
when using gold as your linker, and if you forget to run "make check",
you could end up installing files full of zeros instead of the expected
binaries.  For a lot of discussion, see
http://thread.gmane.org/gmane.comp.file-systems.xfs.general/37895
* tests/cp/fiemap-empty: Disable this test.
2011-04-20 18:48:38 +02:00
Jim Meyering
9bcd045f81 copy: always use FIEMAP_FLAG_SYNC, for now
* src/extent-scan.c (extent_need_sync): Always return true,
to make the sole caller always use FIEMAP_FLAG_SYNC.
This will doubtless have an undesirable performance impact,
but we'll mitigate that shortly, by using extent_copy only on
files with holes.
2011-04-20 17:11:15 +02:00
Jim Meyering
48306b83be tests: remove spurious syntax from a perl snippet
* tests/cp/sparse-fiemap: Remove spurious BEGIN {...} block.
2011-04-20 09:46:27 +02:00
Ondřej Vašík
9f688b8363 dircolors: add .ear, .war, .sar, for Java jar-like archives
* src/dircolors.hin: Add .ear, .war, .sar, for Java jar-like archives
Suggested by Ville Skyttä in https://bugzilla.redhat.com/616497.
2011-04-17 11:21:13 +02:00
Jim Meyering
5995ed0b38 post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2011-04-13 21:32:49 +02:00
Jim Meyering
8dc5394183 version 8.11
* NEWS: Record release date.
2011-04-13 21:13:50 +02:00
Pádraig Brady
ace9ef2a94 maint: mention dd's new partial read warning in NEWS
* NEWS: Mention the new feature, from commits e1788d9e and 194c1e89
2011-04-13 15:38:36 +01:00
Pádraig Brady
403e8e3b89 tests: fix a false positive fiemap test on some file systems
* tests/filefrag-extent-compare: Don't check the length of the
last extent, as this was seen to vary on XFS, where it leaves
trailing blocks allocated for performance reasons.
* tests/cp/fiemap-empty: Though not seen as an issue in practise,
try to avoid possible issues with the allocator in file systems,
by requesting to allocate a power of 2.
2011-04-13 11:18:48 +01:00
Pádraig Brady
501ce81b6a maint: correct kernel version in test comment 2011-04-12 11:30:33 +01:00
Jim Meyering
53ee267945 maint: remove unnecessary inclusion of <stdio.h>
* src/extent-scan.c: Don't include <stdio.h>.  It was not used.
2011-04-12 12:14:26 +02:00
Jim Meyering
ce0f286cce build: update gnulib submodule to latest 2011-04-11 14:33:23 +02:00
Jim Meyering
1487204385 cfg.mk: remove useless semicolon and backslash
* cfg.mk (sc_NEWS_two_empty_lines): Remove semicolon and backslash.
2011-04-11 14:32:56 +02:00
Jim Meyering
4db3c6b5ea doc: tweak NEWS
* NEWS: Slightly obfuscate a line to avoid a false-positive
doubled-word ("is-is") match.
Fix a grammar error in news for 8.2.
* cfg.mk (old_NEWS_hash): Resync.
2011-04-11 14:32:56 +02:00
Jim Meyering
b80e2c7c25 maint: install: remove support for --preserve_context ("_", not "-")
* src/install.c: Its use has elicited a warning for two years.
Use --preserve-context instead.
* NEWS (changes in behavior): Mention this.
2011-04-11 14:32:56 +02:00
Jim Meyering
9288068ff8 maint: reorder install.c to eliminate declarations of static functions
* src/install.c: Remove static function declarations.
2011-04-11 14:32:56 +02:00
Jim Meyering
e6f4c34167 maint: rename variables for clarity...
and to avoid a false-positive "TO to" in new doubled word check.
* src/install.c (change_timestamps): Rename parameters for
readability.  Make the comment match the code.
2011-04-11 14:32:55 +02:00
Jim Meyering
b2dfc3b5e5 maint: remove doubled words in comments, e.g., s/to to/to/
* tests/ls/color-norm: s/to to/to/
* gl/lib/mbsalign.h (mbs_align_t): s/or or/or/
* src/extent-scan.c (extent_scan_read): s/the the/the/
* src/libstdbuf.c: s/the the/the/
* tests/misc/stdbuf: s/on on/on/
* ChangeLog-2005: s/for\n\tfor /for\n\t/
2011-04-11 14:32:55 +02:00
Pádraig Brady
80be785c95 maint: misc typo fixes
* src/fiemap.h: s/can not/cannot/
* NEWS: s/in/is/
* doc/coreutils.texi: Remove spurious "and".
s/effect/affect/
Use matched ``...'' quotes.
2011-04-11 11:13:14 +02:00
Pádraig Brady
324571ea4a maint: correct kernel version in NEWS
* NEWS: Adjust to match commit 1c3654cb, 2011-04-02,
"copy: require fiemap sync also for 2.6.38 kernels"
2011-04-07 00:23:00 +01:00
Pádraig Brady
18f5a8537c copy: handle mergeable extents across fiemap scans
* extent-scan.h (extent_scan_free): Init the pointer to NULL,
and reset the count to 0, so that we can realloc the buffer.
* src/extent-scan.c (extent_scan_init): Likewise.
(extent_scan_read): Loop over multiple fiemap scans, so we handle
mergeable extents that span across fiemap scan boundaries.  Once
we have enough unique extents, return so as to minimize memory use.
2011-04-06 23:15:19 +01:00
Pádraig Brady
8b2bedadb5 copy: fix an unlikely memory leak when a fiemap copy fails
* src/copy.c (extent_copy): Free the extents array when
sparse_copy() fails.
2011-04-06 23:08:54 +01:00
Jim Meyering
a71537366e tests: avoid spurious parallel failure due to temporary disk full
Running the new fiemap-empty test uses 600MB of disk space via
fallocate, and in so doing caused failure in unrelated tests that
were running in parallel on a small file system.  Rather than
simply running fallocate (which allocates the space, inducing
disk full when it fails), skip the test if there is less than
800MB of free space, as computed via stat and awk.
* tests/init.cfg (require_file_system_bytes_free_): New function.
* tests/cp/fiemap-empty: Use it.
2011-04-04 18:21:32 +02:00
Jim Meyering
4e23ca47ac tests: don't ever leave a backgrounded "sleep 10m" process
* tests/misc/help-version: Sleep only ~30s, not 10m.
The latter was a problem when somehow that sleep process would
hang around and thereby prevent (for up to 10m) a normal unmount
of the temporary partition in which I'd run the tests.
2011-04-04 18:21:32 +02:00
Jim Meyering
aec3e1e107 tests: preserve-gid: don't chown temporary PATH dir to a nameless UID
* tests/cp/preserve-gid: Simply chmod a+rx instead.
That is safer, in case the nameless UID actually has an account,
and might take advantage of root running a program in a directory
under its control
2011-04-04 18:21:32 +02:00
Jim Meyering
40f71538b6 tests: preserve-gid: remove useless use of "env"
* tests/cp/preserve-gid: Remove useless use of "env".
2011-04-04 18:21:32 +02:00
Jim Meyering
1bc76356d2 tests: convert common root-build test failure to a "skip"
* tests/mv/sticky-to-xpart: Skip rather than failing this test
when run as root and the binaries are not accessible by "nobody".
2011-04-04 18:21:31 +02:00
Jim Meyering
6227c8e8de tests: minor improvement of sc_tight_scope rule
* src/Makefile.am (sc_tight_scope): Adjust rule to use an eval-based
trap-setting for-loop rather than 4x hard-coded 128+N constants.
Also catch SIGQUIT (3).  Tweak comments.
2011-04-04 18:21:31 +02:00
Eric Blake
8d0b79afa5 docs: mention POSIX 2008
* doc/coreutils.texi (Standards conformance): Give value of
_POSIX2_VERSION matching the _POSIX_C_SOURCE of POSIX 2008.
2011-04-04 09:45:28 -06:00
Jim Meyering
03583f8d64 maint: prohibit direct use of strncmp: prefer STREQ_LEN, STRNCMP_LIT
* cfg.mk (sc_prohibit_strncmp): New rule, mostly from libvirt.
* src/system.h (STREQ_LEN, STRPREFIX, STRNCMP_LIT): Define.
* src/df.c (get_dev, get_point): Convert.
* src/extent-scan.c (extent_need_sync): Likewise.
* src/ls.c (is_colored, decode_switches): Likewise.
(parse_ls_color, (print_color_indicator): Likewise.
* src/md5sum.c (split_3): Likewise.
* src/split.c (main, emit_ancillary_info): Likewise.
* src/tr.c (look_up_char_class): Likewise.
* src/uname.c (main): Likewise.
* src/who.c (scan_entries): Likewise.
2011-04-03 21:55:27 +02:00
Jim Meyering
1c3654cb1f copy: require fiemap sync also for 2.6.38 kernels
* src/extent-scan.c (extent_need_sync): Require sync also for 2.6.38.
Without this, part of the cp/fiemap-empty test would fail both on
F15-to-be (2.6.38.1-6.fc15.x86_64) and rawhide.  For details, see
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/22190
2011-04-03 12:16:27 +02:00
Jim Meyering
45b332f7ab cp: always detect copy-into-self: avoid infloop w/large PATH_MAX
When running the erroneous command, cp -rl A D D, and depending on the
structure of directories A and D and the file system type (because that
changes order of dir. entry traversal), cp would sometimes fail to
detect that D was being copied into D, and would create D/D/D/D/D/...
until it hit PATH_MAX or exhausted some resource.
I noticed this via the occasional failure of the cp/into-self test
when run using a ZFS file system.  It is occasional because the bug
is dependent on the order in which directory entries are traversed,
and that is apparently indeterminate with ZFS.
Technically, with the current recursive implementation, there is no
risk of an infinite loop, due to stack limitations, but with an
eventual fts-based implementation, it might have iterated until
disk space or inodes are exhausted.
* src/copy.c (copy_dir): Avoid copy-into-self interminable loop on
systems with large PATH_MAX.  On other systems, diagnose the copy-into-
self error consistently.  Handle the parameter,
first_dir_created_per_command_line_arg, correctly when there are two
or more sub-directories.
2011-04-02 16:14:47 +02:00
Jim Meyering
e08b3e7c08 maint: fix a comment typo
* tests/cp/fiemap-empty: Correct typo in comment.  Add "FIXME".
2011-04-02 14:22:55 +02:00
Pádraig Brady
bfdb6b585b copy: process empty extents more efficiently
* src/copy.c (extent_copy): Treat an allocated but empty extent
much like a hole.  I.E. don't read data we know is going to be NUL.
Also we convert the empty extent to a hole only when SPARSE_ALWAYS
so that the source and dest have the same allocation.  This will
be improved soon, when we use fallocate() to do the allocation.
* tests/cp/fiemap-empty: A new test for efficiency and correctness
of copying empty extents.
* tests/Makefile.am: Reference the new test.
* NEWS: Mention the change in behavior.
2011-04-01 15:04:18 +01:00
Pádraig Brady
b56b53bd70 copy: protect against overlapping extents
* src/extent-scan.c (extent_scan_read): Add a more stringent check
for OFF_T overflow, to ensure subsequent code is immune.
Detect overlapping extents and adjust, so as files always copied.
Detection using a single scan with fallback to a standard copy
was thought too expensive in memory or time.
* NEWS: Mention the fix
2011-04-01 14:42:46 +01:00
Pádraig Brady
594292a1d8 copy: link rather than copy symlinks, when --link used
This bug was introduced in commit ca9e212c, 2009-09-24,
"cp, mv: use linkat to guarantee semantics", which
inadvertently disabled the creation of hardlinks to symlinks.
However rather than implementing the intention of that commit
and relying on gnulib linkat emulation, we'll revert to the
previous emulation as that maintains ownership and timestamps.

* src/copy.c (copy_internal): Use our existing hardlink to
symlink emulation when link() might dereference the symlink.
Also ensure that we copy the timestamps of the original symlink
when we use the emulation.
* tests/cp/link-symlink: Add a test to ensure timestamps copied.
* tests/Makefile.am: Reference the new test.
* NEWS: Mention the fix.
Reported by Ruediger Meier
2011-04-01 14:17:27 +01:00
Jim Meyering
0ec711b5c4 tests: inotify-rotate: avoid race condition with overloaded disk
* tests/tail-2/inotify-rotate: Wait 50% longer for grep to succeed.
Without this change, this test would fail consistently when using
"make -j25 check" with F15 in a virtio- and spinning-rust-backed
virtual machine.
2011-03-31 18:58:38 +02:00
Pádraig Brady
f69876e558 copy: with fiemap copy, only sync when needed
* src/extent-scan.h (struct extent_scan): Add the fm_flags member to
pass to the fiemap scan.
* src/extent-scan.c (extent_need_sync): A new function used to
detect Linux kernels before 2.6.38.
(extent_scan_init): Add FIEMAP_FLAG_SYNC when needed.
* tests/cp/sparse-fiemap: Adjust comment.
* NEWS: Mention the change in behavior.
Indirectly suggested by Mike Frysinger
2011-03-31 16:46:42 +01:00
Mathieu Bridon
17a7e45927 tests: avoid unwarranted failure in mock-simulated non-SELinux env.
* tests/init.cfg (require_selinux_): Skip the test also when
/proc/filesystems does not list selinuxfs.
Add comments.
* cfg.mk (exclude_file_name_regexp--sc_file_system): Exempt
tests/init.cfg, with its use of /proc/filesystems.
Based on the patch by Mathieu Bridon in http://debbugs.gnu.org/8359.
More discussion in http://bugzilla.redhat.com/573111
2011-03-28 12:00:12 +02:00
Jim Meyering
fde07ff436 maint: correct formatting style in a header
* src/find-mount-point.h: Move "*" to where it belongs.
Move "const", too.
* src/find-mount-point.c: Move "const" to conform.
* src/Makefile.am (sc_tight_scope): Allow `*'s before the function name.
Use perl's -l option and drop the \n after (and quotes around) $1.
2011-03-28 11:51:35 +02:00
Pádraig Brady
99679fff62 df: fix alignment of columns
* src/df.c (alloc_table_row): A new function to allocate storage
for a row of strings.
(print_table): A new function to interate over all stored strings in
the table, and apply alignment honoring the max width of each column.
(get_header): Renamed from print_header, and adjusted accordingly.
(get_dev): Renamed from show_dev.  Also we no longer wrap longer
device names over two lines, which can be an unexpected issue for
scripts parsing the output from df.
(get_disk): s/show_/get_/
(get_point): Likewise.
(get_entry): Likewise.
(get_all_entries): Likewise.
* NEWS: Mention the change.
2011-03-23 16:44:49 +00:00
Jim Meyering
437fcf713c build: update gnulib submodule to latest 2011-03-22 07:13:59 +01:00
Jim Meyering
b3f6b33e4b tests: exercise tests new "==" operator
* tests/misc/test: Exercise the new operator.
* NEWS (Changes in behavior): Mention it.
2011-03-22 07:13:59 +01:00
David A. Wheeler
3f31ec950b test: accept "==" as a synonym for "="
Make GNU coreutils' test recognize "==" as a synonym for "=".
This is already the case in GNU coreutils' expr, bash, ksh,
busybox ash, FreeBSD-current /bin/sh and /bin/test, and
OpenBSD's /bin/sh.

Before, env test a '==' a would fail with this diagnostic:
"test: ==: binary operator expected".  Now, it succeeds.
* src/test.c: Accept "==" as a synonym for "=".
* doc/coreutils.texi (String tests): Document it.
Reported as http://debbugs.gnu.org/8263
Also see http://austingroupbugs.net/view.php?id=375
2011-03-22 07:12:01 +01:00
Jim Meyering
2a3a094e0d tests: fix a bug in the cp/preserve-gid test
* tests/cp/preserve-gid: Ensure that every process under test uses
the cp binary we've just built.  Before this fix, with a restrictive
umask or build-dir permissions, the UID-changing tests would end up
using whatever cp happened to be available through $PATH
Analysis by arbogast.cedric@gmail.com in http://debbugs.gnu.org/8292.
2011-03-21 07:37:20 +01:00
Paul Eggert
c20d0e17c3 bootstrap: do not exclude m4/message.m4
* bootstrap.conf (excluded_files): Don't exclude m4/lcmessage.m4,
as it's needed with the latest gnulib.
2011-03-20 12:25:26 -07:00
Jim Meyering
8e5292dfb8 maint: remove a name from THANKS.in that is derived from git log
The names in THANKS are generated from two sources: the hard-coded
list, THANKS.in, and the names of committers from the git log.
When a contributor on the hard-coded list commits a change,
we remove their now-redundant name from THANKS.in.
* THANKS.in: Remove a now-duplicate name.
2011-03-20 16:05:23 +01:00
Pádraig Brady
7a804b9af4 tests: fix the sparse-fiemap test
* tests/filefrag-extent-compare: Merge adjacent extents in
each list before processing, so we correctly account for
split extents in either list.
* tests/cp/sparse-fiemap: Remove the explicit syncing,
which was only changing the way extents were arranged,
and thus working around the extent comparison issue
that was seen on ext4 loop back.
2011-03-19 23:58:49 +00:00
Jim Meyering
4f591fdd0b sort: avoid memory pressure of 130MB/thread when reading from pipe
* src/sort.c (INPUT_FILE_SIZE_GUESS): Decrease initial allocation
factor used to size buffer used when reading a non-regular file.
For motivation, see discussion here:
http://thread.gmane.org/gmane.comp.gnu.coreutils.general/878/focus=887
2011-03-16 16:30:02 +01:00
Jim Meyering
8e4e1d484f maint: stop using .x-sc_* files to list syntax-check exemptions
Instead, use the brand new mechanism with which you merely use a
variable (derived from the rule name) defined in cfg.mk to an ERE
matching the exempted file names.
* gnulib: Update to latest, to get maint.mk that implements this.
* Makefile.am (syntax_check_exceptions): Remove variable.
(EXTRA_DIST): Remove use of the variable.
* cfg.mk (sc_x_sc_dist_check): Remove rule, no longer useful.
(exclude_file_name_regexp--sc_space_tab): Define variable.
(exclude_file_name_regexp--sc_bindtextdomain): Likewise.
(exclude_file_name_regexp--sc_unmarked_diagnostics): Likewise.
(exclude_file_name_regexp--sc_error_message_uppercase): Likewise.
(exclude_file_name_regexp--sc_trailing_blank): Likewise.
(exclude_file_name_regexp--sc_system_h_headers): Likewise.
(exclude_file_name_regexp--sc_require_config_h_first): Likewise.
(exclude_file_name_regexp--sc_require_config_h): Likewise.
(exclude_file_name_regexp--sc_po_check): Likewise.
(exclude_file_name_regexp--sc_prohibit_always-defined_macros): Likewise.
(exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF): Likewise.
(exclude_file_name_regexp--sc_program_name): Likewise.
(exclude_file_name_regexp--sc_file_system): Likewise.
(exclude_file_name_regexp--sc_prohibit_always_true_header_tests):
Likewise.
(exclude_file_name_regexp--sc_prohibit_fail_0): Likewise.
(exclude_file_name_regexp--sc_prohibit_atoi_atof): Likewise.
(exclude_file_name_regexp--sc_prohibit_tab_based_indentation): Likewise.
(exclude_file_name_regexp--sc_prohibit_stat_st_blocks): Likewise.
* configure.ac [whether localtime caches TZ]: Use return 0/1, not
exit (0/1) to avoid triggering a sc_prohibit_magic_number_exit failure.
* .x-sc_GPL_version: Remove file.
* .x-sc_bindtextdomain: Likewise.
* .x-sc_error_message_uppercase: Likewise.
* .x-sc_file_system: Likewise.
* .x-sc_obsolete_symbols: Likewise.
* .x-sc_po_check: Likewise.
* .x-sc_program_name: Likewise.
* .x-sc_prohibit_always-defined_macros: Likewise.
* .x-sc_prohibit_always_true_header_tests: Likewise.
* .x-sc_prohibit_atoi_atof: Likewise.
* .x-sc_prohibit_empty_lines_at_EOF: Likewise.
* .x-sc_prohibit_fail_0: Likewise.
* .x-sc_prohibit_magic_number_exit: Likewise.
* .x-sc_prohibit_stat_st_blocks: Likewise.
* .x-sc_prohibit_strcmp: Likewise.
* .x-sc_prohibit_tab_based_indentation: Likewise.
* .x-sc_require_config_h: Likewise.
* .x-sc_require_config_h_first: Likewise.
* .x-sc_space_tab (config): Likewise.
* .x-sc_sun_os_names: Likewise.
* .x-sc_system_h_headers: Likewise.
* .x-sc_trailing_blank: Likewise.
* .x-sc_unmarked_diagnostics: Likewise.
* .x-sc_useless_cpp_parens: Likewise.
2011-03-16 12:22:22 +01:00
Pádraig Brady
0ddfd54b08 maint: use wcswidth from gnulib
* gl/lib/mbsalign.c (rpl_wcswidth): Remove this in favor
of the equivalent wcswidth replacement in gnulib.
* bootstrap.conf: Depend on the wcswidth module.
Suggested by Bruno Haible.
2011-03-13 23:55:17 +00:00
Jim Meyering
56e8714e2b touch: update to latest gnulib to fix Solaris 10 touch segfault
* gnulib: Update to latest, to address http://debbugs.gnu.org/8230.
When built on Solaris 9 and run on Solaris 10, touch would segfault.
Reported by Ben Walton.
* bootstrap: Update from gnulib.
* tests/init.sh: Likewise.
* NEWS (Bug fixes): Mention this.
2011-03-13 18:41:44 +01:00
Jim Meyering
e0245ae0ae sort: spawn fewer threads for small inputs
* src/sort.c (SUBTHREAD_LINES_HEURISTIC): Do not spawn a new thread
for every 4 lines.  Increase this from 4 to 128K.  128K lines seems
appropriate for a 5-year-old dual-core laptop, but it is too low for
some common combinations of short lines and/or newer systems.
* NEWS (Bug fixes): Mention it.
2011-03-13 18:13:17 +01:00
Pádraig Brady
3ed0384c41 copy: merge similar extents before processing
* src/extent-scan.c (extent_scan_read):  Merge adjacent extents
that vary only in size, so that we may process them more efficiently.
This will be especially useful when we introduce fallocate()
so that we don't reproduce fragmentation in the destination.
2011-03-11 00:50:10 +00:00
Paul Eggert
194c1e89a4 dd: avoid or diagnose some problems with short reads
* src/dd.c (warn_partial_read): New static var.
(iread): Diagnose partial reads if needed.
(iwrite): Don't diagnose them here; not needed any more.
(scanargs): Determine whether partial reads should be diagnosted.
2011-03-05 16:06:34 -08:00
Pádraig Brady
5bf48c1186 maint: fix dd nocache test to be independent of current stdin
* tests/dd/nocache: Don't assume stdin is a pipe
2011-03-05 09:53:00 +00:00
Pádraig Brady
5f3115535b dd: add a flag to discard cached data
* src/dd.c (FFS_MASK): A new macro (Find First Set) refactored
from the following enum as it's now used twice.
(usage): Mention the new 'nocache' flag.
(cache_round): A new function to help ignore requests
to drop cache, that are less than page_size.
(invalidate_cache): A new function to call posix_fadvise()
with the appropriate offset and length.  Note we don't
use fdadvise() so we can detect errors when count=0.
(dd_copy): Call invalidate_cache() for the portions read.
(iwrite): Likewise for the portions written.
(main): Call invalidate_cache for page_size slop or
for full file when count=0.
* cfg.mk (sc_dd_O_FLAGS): Adjust to pass.
* doc/coreutils.texi (dd invocation): Describe the 'nocache' flag,
and give some examples of how it can be used.
* tests/dd/nocache: A new test.
* tests/Makefile.am: Reference the new test.
* NEWS: Mention the new feature.
2011-03-05 02:33:53 +00:00
Pádraig Brady
433a7c614f doc: clarify that dd bs= can immediately output short reads
* doc/coreutils.texi (dd invocation): Clarify that bs= can
cause parital reads to be immediately written to output.
* src/dd.c (usage): Hint that bs= can cause partial writes.
See http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8171
2011-03-05 02:21:45 +00:00
Pádraig Brady
7525860fb9 doc: group dd conv= options that are actually flags
* src/dd.c (usage): Move 'sync' up with other data transformation
options.  Having it alongside 'fsync' and 'fdatasync' is
particularly confusing.  Also the double line description of
the 'sync' option, serves as a visual break from the "flag"
type options that follow.
* doc/coreutils.texi (dd invocation):  Apply the same grouping
as above, by splitting the "conv=" table in two.
2011-03-05 02:01:16 +00:00
Pádraig Brady
e1788d9ed9 dd: warn when we disable oflag=direct not at EOF
An alternative to this is to auto enable iflag=fullblock
when oflag=direct and bs= is specified.
It was thought better though, to warn about the specific issue,
and give full control of dd's options to the user.

* src/dd.c (iwrite): Warn, when we write after having
disabled O_DIRECT.
See https://bugzilla.redhat.com/show_bug.cgi?id=614605
2011-03-05 01:48:55 +00:00
Jim Meyering
caaf2899f6 du: don't infloop for --files0-from=DIR
* src/du.c (main): Fail on AI_ERR_READ error, rather than merely
diagnosing and continuing.  Based on a patch by Stefan Vargyas.
Also move the handling of AI_ERR_EOF into the case stmt.
Do not report ferror/fclose(stdin) failure when we've
already diagnosed e.g., failure to read the DIR, above.
Bug introduced by 2008-11-24 commit 031e2fb5, "du: read and
process --files0-from= input a name at a time,".
* src/wc.c: Handle read failure as with du: do not exit
immediately, but rather go on to print any total and to clean-up.
As above, move the handling of AI_ERR_EOF into the case stmt.
* tests/du/files0-from-dir: New file, to test both du and wc.
* tests/Makefile.am (TESTS): Add it.
* NEWS (Bug fixes): Mention it.
2011-03-03 09:05:44 +01:00
Jim Meyering
7cfd12c78e wc: avoid NULL dereference on out-of-memory error
* src/wc.c (main): Diagnose failed argv_iter_init_* failure,
rather than falling through and dereferencing NULL.
Bug introduced by 2008-11-25 commit c2e56e0d,
"wc: read and process --files0-from= input a name at a time,".
* NEWS (Bug fixes): Mention it.
2011-03-03 09:01:17 +01:00
Pádraig Brady
a132e03507 tests: without filefrag, only skip part of sparse-fiemap
* tests/cp/sparse-fiemap: Move the PERL check to the top,
since we don't test anything without it.  In the loop,
don't use skip_test_ as it exits the test completely.
2011-02-25 07:30:09 +00:00
Gilles Espinasse
269665866d maint: replace spaces with tab in tests/Makefile.am
* tests/Makefile.am: Replace spaces with tabs for consistency
2011-02-19 23:09:09 +00:00
Jim Meyering
2895f44e89 stdbuf: avoid even the appearance of a possible use-after-free
There was an execution path by which "libstdbuf" could be used after
being freed, but that would happen only if there were no libstdbuf.so
alongside the stdbuf program and there had been an installation error
leading to absence of the file, PKGLIBDIR/libstdbuf.so.
* src/stdbuf.c (set_LD_PRELOAD): Rearrange loop to make it perfectly
clear that there is no possibility of use-after-free.
Steve Grubb reported this possible use-after-free of "libstdbuf".
2011-02-18 23:31:29 +01:00
Gilles Espinasse
e6067bcb04 tests: correct racy sparse-to-pipe test
* tests/cp/sparse-to-pipe: Wait for backgrounded "cat" to complete
before comparing the results.
2011-02-18 13:52:21 +01:00
Paul Eggert
43066fe2ca uptime: omit unnecessary #if
* src/uptime.c (print_uptime): Omit unnecessary "#if defined
HAVE_GETLOADAVG || defined C_GETLOADAVG".  This #if is always
true, and removing it will help us simplify the gnulib getloadavg
module.
2011-02-14 21:05:55 -08:00
Pádraig Brady
0f56019db8 tests: support more file systems in the cp fiemap tests
* tests/cp/sparse-fiemap: Check for fiemap support against a file
rather than a directory to enable tests on BTRFS for example.
Explicity disable the test on ext3 or file systems where we
can't determine the type.
* tests/cp/fiemap-perf: Likewise.  Also disable the test on older
BTRFS (like in Fedora 14), where extents are returned for holes.
* tests/init.cfg: Comment that BTRFS only supports fiemap
for regular files.
2011-02-15 00:02:29 +00:00
Pádraig Brady
275c831a3c copy: adjust fiemap handling of sparse files
Don't depend on heuristics to detect sparse files
if fiemap is available.  Also don't scan for new
holes unless --sparse=always has been specified.

* src/copy.c (extent_copy): Pass the user specified
sparse mode, and handle as described above.
2011-02-11 00:13:31 +00:00
Pádraig Brady
6f95025c9d copy: suppress redundant lseeks when using fiemap
* src/copy.c (extent_copy): Suppress redundant lseek()s in both
the source and dest files, when there is no hole between extents.
2011-02-11 00:13:31 +00:00
Jim Meyering
15571e0c8f tests: fix bug in preceding check.mk change
* tests/check.mk (.built-programs): Run cd'd submake in a subshell
so the redirected output ends up in the current directory, not ../src.
2011-02-10 10:01:23 +01:00
Jim Meyering
c91b2a3c3b tests: print "python missing:..." diagnostic where more will see it
* tests/init.cfg (fiemap_capable_): Print with warn_, so that the
diagnostic shows up alongside the corresponding SKIP message.
2011-02-10 08:57:12 +01:00
Jim Meyering
ee6c466ba8 tests: avoid gross inefficiency in "make test"
Do not run a sub-make to set up the environment for each
and every test script.  Instead, run it just once and store
the result in a file.
* tests/check.mk (built_programs): Remove definition.
(.built-programs): New rule to create the temporary file.
(CLEANFILES): Arrange to remove it.
(TESTS_ENVIRONMENT): Simply cat .built-programs, rather than
running the sub-make.
* .gitignore: Ignore it.
2011-02-10 08:50:14 +01:00
Pádraig Brady
5c3fd50a75 test: improve the cp fiemap tests
* tests/cp/fiemap-2: Enable the fiemap check for files, which
will enable the test for files on ext3.
* tests/cp/fiemap-perf: Comment why we're not enabling for ext3.
* tests/cp/sparse-fiemap: Ditto.  Also sync the files before
doing a fiemap which was needed for ext4 loop back at least.
Add a comment that FIEMAP_FLAG_SYNC is ineffective, thus
requiring the explicit syncs.
* tests/fiemap-capable: A new python script to determine
if a specified path supports fiemap.
* tests/init.cfg (fiemap_capable_): Use the new python script.
* tests/Makefile.am (EXTRA_DIST): Include the new python script.
2011-02-08 22:46:25 +00:00
Jim Meyering
480c0dc9e7 tests: randread-tests: use macro.h not "#define ASSERT..."
* gl/modules/randread-tests (Files): Add tests/macros.h
* gl/tests/test-rand-isaac.c: Remove now-unneeded #include directives.
(ASSERT): Remove definition.
Instead, include "macros.h".
Prompted by suggestions from Bruno Haible.
2011-02-08 08:30:19 +01:00
Jim Meyering
beaf631292 maint: move di-set and ino-map modules from ./gl to gnulib
* gl/lib/di-set.c: Remove file.
* gl/lib/di-set.h: Likewise.
* gl/lib/ino-map.c: Likewise.
* gl/lib/ino-map.h: Likewise.
* gl/modules/di-set: Likewise.
* gl/modules/di-set-tests: Likewise.
* gl/modules/ino-map: Likewise.
* gl/modules/ino-map-tests: Likewise.
* gl/tests/test-di-set.c: Likewise.
* gl/tests/test-ino-map.c: Likewise.
* gnulib: Update to latest, now that these two modules are there.
2011-02-07 16:24:14 +01:00
Jim Meyering
b9fc790ddc di-set: provide a lookup method
This is required for patch, and hence is about to move to gnulib.
* gl/lib/di-set.c (di_set_lookup): New function.
* gl/lib/di-set.h: Declare it.
* gl/tests/test-di-set.c (main): Exercise it.

The bug was introduced on 2004-12-04 via commit 7380cf79.
2011-02-07 15:50:44 +01:00
Jim Meyering
2e636af1ef cut: don't segfault for large unbounded range
* src/cut.c (set_fields): When computing the maximum range endpoint,
take into consideration the start of any unbounded range, like "999-".
* NEWS (Bug fixes): Mention it.
* tests/misc/cut (big-unbounded-b,c,f): Add tests.
Reported by Paul Marinescu in http://debbugs.gnu.org/7993
The bug was introduced on 2004-12-04 via commit 7380cf79.
2011-02-07 09:25:51 +01:00
Jim Meyering
9f61806875 copy: don't let a failed lseek go undiagnosed
Upon failed lseek, sparse_copy_finalize would mistakenly return true.
Admittedly, that is very unlikely, since that particular lseek
is attempted only if the preceding call to sparse_copy induced
a hole at EOF (via lseek on the destination FD).  However, now
that sparse_copy has an output parameter, N_READ, there is no
longer any reason to call lseek (fd, 0, SEEK_CUR), so...
* src/copy.c (sparse_copy_finalize): Remove the function.
(copy_reg): Call ftruncate with n_read, rather than
sparse_copy_finalize with its now-unnecessary lseek.
Lasse Collin spotted the bug in sparse_copy_finalize.
2011-02-05 22:40:57 +01:00
Jim Meyering
661413d8c3 post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2011-02-04 18:19:36 +01:00
Jim Meyering
ca637bff0e version 8.10
* NEWS: Record release date.
2011-02-04 18:08:12 +01:00
Jim Meyering
d5fa424a9c cp: avoid spurious failure on any non-linux kernel
* src/extent-scan.c (extent_scan_read) [!linux]: Always set
scan->initial_scan_failed so caller knows not to report the failure.
2011-02-04 15:01:39 +01:00
Jim Meyering
ee74c7d36d tests: skip mv/i-3 on FreeBSD to avoid spurious failure
* tests/mv/i-3: Skip when uname -s reports FreeBSD.
2011-02-04 14:59:03 +01:00
Pádraig Brady
d846bc8bab sort: fix --debug key highlighting when key start after key end
This case was overlooked in commit bdde34f9, 2010-08-05,
"sort: tune and refactor --debug code, and fix minor underlining bug"

* src/sort.c (debug_key):  Don't adjust the key end when
it's before the key start.
* tests/misc/sort-debug-keys: Add a test case.
2011-02-03 10:19:34 +00:00
Jim Meyering
4e9ab7d3d8 tests: correct part of fiemap-perf
* tests/cp/fiemap-perf: Correct erroneous added test.
Since nonexistent names were used, the final test ended up
being "test =", which would always "succeed".
2011-02-02 12:02:22 +01:00
Jim Meyering
78ee2953bf build: update gnulib submodule to latest 2011-02-02 09:40:55 +01:00
Pádraig Brady
84e5274f7e cp: fix the buffer size used when writing zeros
* src/copy.c (write_zeros): This bug caused 4 or 8 bytes to
be written at a time which is very inefficient.  One could
trigger the issue with `cp --sparse=never sparse non-sparse`
on a file system that supports fiemap.
2011-01-31 23:21:04 +00:00
Jim Meyering
f8f57dd76b cp: always initialize extent_copy's output parameter
* src/copy.c (extent_copy): Otherwise it would be used uninitialized.
2011-01-31 20:55:34 +01:00
Jim Meyering
43d739e99c tests: exercise a rarely-used corner of copy.c
* tests/cp/sparse-to-pipe: New test.
* tests/Makefile.am (TESTS): Add it.
2011-01-31 18:26:06 +01:00
Jim Meyering
cc0645fc64 cp: fix copying a sparse file to a pipe
The recent FIEMAP-related changes made it so the unusual case of
copying a sparse file to a non-regular destination (e.g., a pipe)
would erroneously write one byte too many to that destination.
That happened because extent_copy assumed that it could use lseek
to obtain the number of bytes written to the output file descriptor.
That was valid only for regular files.
* src/copy.c (sparse_copy): Add a parameter, to be used by extent_copy,
but not by reg_copy.  Adjust callers.
(extent_copy): Maintain new local, dest_pos, using new arg, n_read.
Don't call lseek on dest_fd; use new var, dest_pos, instead.
(copy_reg): Add unused arg.
2011-01-31 18:26:06 +01:00
Jim Meyering
96a93f9480 tests: gfs2 also supports FIEMAP
* tests/init.cfg (fiemap_capable_): Add gfs2.
Clarify comment.
2011-01-31 15:20:29 +01:00
Jim Meyering
aeed6c1d89 maint: remove unused inclusion of "fiemap.h"
* src/copy.c: Don't include "fiemap.h".
2011-01-31 15:17:12 +01:00
Jim Meyering
3aae01fa9b tests: factor fiemap-related predicate into init.cfg
* tests/init.cfg (fiemap_capable_): New function.
* tests/cp/fiemap-perf: Use it.
* tests/cp/sparse-fiemap: Likewise.
* tests/cp/fiemap-2: Likewise.
2011-01-31 14:44:15 +01:00
Jim Meyering
31dc21f693 maint: update copyright year lists in new files
* src/extent-scan.h: Update copyright year list.
* src/extent-scan.c: Likewise.
* tests/cp/sparse-fiemap: Likewise.
2011-01-31 13:42:49 +01:00
Jim Meyering
08b7bce540 tests: modernize sparse-fiemap test
* tests/cp/sparse-fiemap: Use print_ver_, not open-coded VERBOSE test.
2011-01-31 13:40:26 +01:00
Jim Meyering
040b00ef19 tests: remove duplicate fiemap-perf test
* tests/cp/fiemap-perf: Copy block-comparing code from sparse-fiemap.
* tests/cp/sparse-fiemap: The same test was here, alongside a much
more involved test.  Remove it, now that it is in its own file.
2011-01-31 13:35:55 +01:00
Jim Meyering
5b11cd0179 doc: NEWS: mention cp's improvement
* NEWS (New Features): cp now copies sparse files efficiently.
2011-01-30 21:30:35 +01:00
Jim Meyering
199355e234 build: update gnulib submodule to latest 2011-01-30 20:44:12 +01:00
Jim Meyering
fc3c8e3cdd copy, tee: assume EINTR is always defined: remove #ifdefs
Don't use "#ifdef EINTR".  dd.c has been doing that since 2004.
* src/copy.c (sparse_copy): Remove #ifdef...#endif around EINTR use.
* src/tee.c (tee_files): Remove #ifdef...#endif around EINTR use.
If we need it, add something like this in system.h:
/* When EINTR is not defined, define it to an improbable value
   so that each use does not have to be #ifdef'd.  */
 #ifndef EINTR
 # define EINTR 999988
 #endif
2011-01-30 20:44:12 +01:00
Jim Meyering
54602c76a0 tests: cp/fiemap: exercise previously-failing parts
* tests/cp/fiemap-2: New test.
* tests/Makefile.am (TESTS): Add it.
2011-01-30 20:44:12 +01:00
Jim Meyering
0f91b6174e copy: make extent_copy use sparse_copy, rather than its own code
* src/copy.c (extent_copy): Before this change, extent_copy would fail
to create holes, thus breaking --sparse=auto and --sparse=always.
I.e., copying a large enough file of all zeros, cp --sparse=always
should introduce a hole, but with extent_copy, it would not.
2011-01-30 20:44:12 +01:00
Jim Meyering
8da69cbf30 copy: remove obsolete comment
* src/copy.c (sparse_copy): Remove now-obsolete comment about
how we used to work around lack of ftruncate.  Combine nested
if conditions into one.
2011-01-30 20:44:12 +01:00
Jim Meyering
82c7f192bd copy: factor sparse-copying code into its own function, because
we're going to have to use it from within extent_copy, too.
* src/copy.c (sparse_copy): New function, factored out of...
(copy_reg): ...here.
Remove now-unused locals.
2011-01-30 20:44:12 +01:00
Jim Meyering
f5743a6f20 fiemap copy: avoid leak-on-error
* src/copy.c (extent_copy): Don't leak an extent_scan buffer on
failed lseek, read, or write.
2011-01-30 20:44:12 +01:00
Jim Meyering
3953f7523e fiemap copy: avoid a performance hit due to very small buffer
* src/copy.c (extent_copy): Don't let what should have been a
temporary reduction of buf_size (to handle a short ext_len) become
permanent and thus impact the performance of all further iterations.
2011-01-30 20:44:12 +01:00
Jim Meyering
cfbeeafd4a fiemap copy: simplify post-loop logic; improve comments
* src/copy.c (extent_copy): Avoid duplication in post-loop
extend-to-desired-length code.
2011-01-30 20:44:11 +01:00
Jim Meyering
f4473df430 fiemap copy: rename some locals
(extent_copy): Rename locals: s/*ext_logical/*ext_start/
2011-01-30 20:44:11 +01:00
Jim Meyering
72b86ad4e8 tests: ensure that FIEMAP-enabled cp copies a sparse file efficiently
* tests/cp/fiemap-perf: New file.
* tests/Makefile.am (TESTS): Add it.
2011-01-30 20:44:11 +01:00
Jim Meyering
790a4654ae copy: don't allocate a separate buffer just for extent-based copy
* src/copy.c (copy_reg): Move use of extent_scan to just *after*
we allocate the main copying buffer, so we can...
(extent_scan): Take a new parameter, BUF, and use that rather
than allocating a private buffer.  Update caller.
2011-01-30 20:44:11 +01:00
Jim Meyering
ce3c73dddd copy: tweak variable name; improve a comment
* src/copy.c (copy_reg): Rename a variable to make more sense from
caller's perspective: s/require_normal_copy/normal_copy_required/.
This is an output-only variable, and the original name could make
it look like an input (or i&o) variable.
2011-01-30 20:44:11 +01:00
Jim Meyering
0497a86f70 copy: call extent_copy also when make_holes is false, ...
so that we benefit from using extents also when reading a sparse
input file with --sparse=never.
* src/copy.c (copy_reg): Remove erroneous test of "make_holes"
so that we call extent_copy also when make_holes is false.
Otherwise, what's the point of that parameter?
2011-01-30 20:44:11 +01:00
Jim Meyering
8ecb0c76c3 copy: remove else-after-goto and adjust indentation
* src/copy.c (copy_reg): Remove useless else-after-goto.
2011-01-30 20:44:11 +01:00
Jim Meyering
50040d07e1 extent-scan: adjust naming and formatting
* src/extent-scan.h [struct extent_scan]: Rename member:
s/hit_last_extent/hit_final_extent/.  "final" is clearer,
since "last" can be interpreted as "preceding".
Rename extent-scan functions to start with extent_scan_.
* src/Makefile.am (copy_sources): Also distribute extent-scan.h.
* src/extent-scan.c: Don't include error.h or quote.h.  Neither is used.
* src/copy.c: shorten a comment to fit in 80 columns
* src/extent-scan.c, src/extent-scan.h: Correct formatting.
2011-01-30 20:44:11 +01:00
Jim Meyering
0b9f65dc01 fiemap copy: don't let write failure go unreported; adjust style, etc.
* src/copy.c (write_zeros): Add comments.
(extent_copy): Move decls of "ok" and "i" down to scope where used.
Adjust comments.
Rename local: s/holes_len/hole_size/
Print a diagnostic upon failure to write zeros.
2011-01-30 20:44:11 +01:00
jeff.liu
2db1433eab fiemap copy: add extent-scan.[ch], avoid a double-free and reorganize
Changes:
========
1. fix write_zeros() per Jim's comments.
2. remove char const *fname from struct extent_scan.
3. change the signature of open_extent_scan() from
"void open_extent_scan(struct extent_scan **scan)" to
"void open_extent_scan(struct extent_scan *scan)" to avoid having
to malloc the extent_scan variable; instead save it on the stack.
4. move close_extent_scan() from a function defined in extent-scan.c
to extent-scan.h as a macro definition, but it does nothing for now,
since initial extent scan defined at stack.
5. add a macro "free_extents_info()" defined at extent-scan.h to
release the memory allocated to extent info which should be called
combine with get_extents_info(), it just one line, so IMHO, define
it as macro should be ok.

* src/extent-scan.c: New file; functions to read "extents".
* src/extent-scan.h: Header file of extent-scan.c.
* src/Makefile.am: Reference it and link it to copy_source.
* src/copy.c: Use the new functions and avoid double-free.
2011-01-30 20:44:11 +01:00
Jim Meyering
f3e78eeff2 build: distribute new test script, filefrag-extent-compare
* tests/Makefile.am (EXTRA_DIST): Add filefrag-extent-compare.
2011-01-30 20:44:11 +01:00
Jim Meyering
a50ca679a1 build: distribute new file, fiemap.h
* src/Makefile.am (noinst_HEADERS): Add fiemap.h.
2011-01-30 20:44:11 +01:00
Jie Liu
d232c1cc20 copy.c: add FIEMAP_FLAG_SYNC to fiemap ioctl
* src/copy.c (fiemap_copy): Force kernel to sync the source
file before mapping.
2011-01-30 20:44:11 +01:00
Jim Meyering
6c81b97a58 fiemap.h: include <stdint.h>, not <linux/types.h>
* src/fiemap.h: Include stdint.h, not linux/types.h,
now that this file uses only portable type names.
2011-01-30 20:44:11 +01:00
Paul Eggert
a40a8fe1e5 copy.c: ensure proper alignment of fiemap buffer
* src/copy.c (fiemap_copy): Ensure that our fiemap buffer
is large enough and well-aligned.
Replace "0LL" with equivalent "0" as 3rd argument to lseek.
2011-01-30 20:44:11 +01:00
Jim Meyering
3058ffa501 copy.c: adjust comments, tweak semantics
* src/copy.c (fiemap_copy): Rename from fiemap_copy_ok.
Add/improve comments.
Remove local, "fail".
(fiemap_copy): Do not require caller to set
"normal_copy_required" before calling fiemap_copy.
Report ioctl failure if it's the 2nd or subsequent call.
2011-01-30 20:44:11 +01:00
Jim Meyering
d6fad2aa33 tests: relax the root-tests cross-check
* cfg.mk (sc_root_tests): Allow spaces before "require_root_",
now that tests/cp/sparse-fiemap has a conditional use.
2011-01-30 20:44:11 +01:00
Jim Meyering
5106653c26 tests: accommodate varying filefrag -v "flags" output
* tests/cp/sparse-fiemap: Accommodate values other than "eof"
in the "flags" column of filefrag -v output
2011-01-30 20:44:10 +01:00
Jim Meyering
dc05bc7ee2 tests: exercise more of the new FIEMAP copying code
* tests/cp/sparse-fiemap: Ensure that a file with many extents
(more than fit in copy.c's internal buffer) is copied properly.
Don't require root access if current partition is btrfs or xfs.
Use init.sh, not test-lib.sh.
* tests/filefrag-extent-compare: New file.
2011-01-30 20:44:10 +01:00
Jie Liu
f1a6f220f5 tests: add a new test for FIEMAP-copy
* tests/cp/sparse-fiemap: Add a new test for FIEMAP-copy against a
loopbacked ext4 partition.
* tests/Makefile.am (sparse-fiemap): Reference the new test.
2011-01-30 20:44:10 +01:00
Jie Liu
dff2b95e4f cp: copy sparse files efficiently using the FIEMAP ioctl
* src/fiemap.h: Add fiemap.h for fiemap ioctl(2) support.  Copied
from linux's include/linux/fiemap.h, with minor formatting changes.
* src/copy.c (copy_reg): Now, when `cp' is invoked with --sparse=[WHEN],
we will try to do FIEMAP-copy if the underlying file system
supports it, and fall back to a normal copy if it fails.
2011-01-30 20:44:10 +01:00
Pádraig Brady
38cdb01a32 doc: add alternatives for field processing not supported by cut
* doc/coreutils.texi (cut invocation): Remove the tr -s '[:blank:]'
example, as it doesn't handle leading and trailing blanks.  Add `awk`
examples for common field processing operations often asked about.
Also document a `join` hack, to achieve the same thing.  Note the
join options are ordered so as to be compatible with other systems.
2011-01-29 23:48:36 +00:00
Pádraig Brady
877ca5bf85 join: don't report disorder against an empty file
This allows one to use join as a field extractor like:
  join -a1 -o 1.3,1.1 - /dev/null

* src/join.c (join): Don't flag unpairable lines when
one of the files is empty.
* tests/misc/join: Add a new test for empty input, and adjust
a previous test that was only checking against empty input.
* doc/coreutils.texi (join invocation): Document the change.
* NEWS: Likewise.
2011-01-29 23:39:16 +00:00
Pádraig Brady
32626bde6d join: ensure --header skips the order check with empty files
* src/join.c: Skip the header even if one of the files is empty.
* tests/misc/join: Add a test case.
* NEWS: Mention the fix
2011-01-29 23:33:25 +00:00
Pádraig Brady
d4db0cb182 join: add -o 'auto' to output a constant number of fields per line
Lines with a different number of fields than the first line,
will be truncated or padded.

* src/join.c (prfields): A new function refactored from prjoin(),
to output all but the join field.
(prjoin): Don't swap line1 and line2 when line1 is blank
so that the padding is applied to the right place.
(main): Handle the -o 'auto' option.
* tests/misc/join: Add 6 new cases to test the auto format.
* NEWS: Mention the change in behavior.
Suggestion from Assaf Gordon
2011-01-29 23:08:31 +00:00
Jim Meyering
68a734d66b tests: remove obsolete uses of "$$" in temporary file names
Those were useful when tests might have been run in the same
directory and in parallel.  Now, each test is run in a newly-
created empty directory.
* tests/cp/backup-1: Remove obsolete uses of "$$".
* tests/cp/same-file: Likewise.
* tests/dd/misc: Likewise.
* tests/mv/part-symlink: Likewise.
* tests/mv/to-symlink: Likewise.
* tests/touch/fail-diag: Likewise.
2011-01-28 23:19:45 +01:00
Jim Meyering
034e496e98 tests: don't hide all trace of the vc_exe_in_TESTS test
There was a non-negligible delay after running a single test.
Now, you'll know why when you see this test's name.
* tests/check.mk (vc_exe_in_TESTS): Don't @-hide commands.
Use $(AM_V_GEN) instead.
2011-01-26 08:38:56 +01:00
Andreas Schwab
d255e40c37 tests: minor correction
* tests/du/move-dir-while-traversing: Ignoring SIGTSTP is enough;
don't also attempt to ignore SIGSTOP, it cannot be handled or ignored.
Spotted by Andreas Schwab.
2011-01-25 18:29:10 +01:00
Jim Meyering
56699864f6 tests: avoid FP failure due to suspension
* tests/du/move-dir-while-traversing: Prohibit suspension,
to avoid false-positive failure.
2011-01-25 12:41:47 +01:00
Jim Meyering
5c501f6fba tests: avoid rare FP failure in new du test
* tests/du/move-dir-while-traversing: Create an even larger tree
to avoid a false-positive failure due to du terminating before
the rename is triggered.
2011-01-25 12:41:42 +01:00
Jim Meyering
15ea577af7 split: avoid a new, spurious warning from gcc-4.6.0
* src/split.c (lines_rr) [IF_LINT]: Initialize files, now that
rawhide's gcc-4.6.0 would otherwise warn about use-uninitialized.
2011-01-24 10:02:22 +01:00
Jim Meyering
8264fc615a tail: avoid new diagnostic when applying -f to a pipe on linux-2.3.38
* src/tail.c (fremote): Do not print a diagnostic when
fstatfs (pipe_FD, &buf) fails, as it now does on linux-2.3.38.
This avoids the spurious failure of tests/misc/tail's f-pipe-1
test, when running in input-from-pipe mode.
2011-01-24 10:02:19 +01:00
Jim Meyering
4afbba7bac doc: fix wording in warning about potential conflict with built-in
* doc/coreutils.texi (mayConflictWithShellBuiltIn): Fix wording.
2011-01-21 22:25:11 +01:00
Paul Eggert
4f92531819 manual: document floating point better
* doc/coreutils.texi (Floating point): New section.
(od invocation, tail invocation, sort invocation, printf invocation):
(sleep invocation, seq invocation): Refer and defer to it.  See
<http://lists.gnu.org/archive/html/bug-coreutils/2011-01/msg00031.html>.
2011-01-21 10:59:52 -08:00
Jim Meyering
e0c6272ac3 build: update gnulib submodule to latest
The previous gnulib submodule reference was *still* to a
non-public commit.  My submodule had a stray commit, so
the reference was always to a local merge commit.
Reported by Rob Vermaas.
2011-01-20 10:50:24 +01:00
Jim Meyering
6344402389 build: update gnulib submodule to latest
The previous gnulib submodule reference was to a non-public commit.
Reported by Rob Vermaas.
2011-01-20 10:07:08 +01:00
Jim Meyering
948828b208 maint: use slightly more efficient process in README-release
* README-release: Run cheaper root-only tests first.
Use half of processing units (not just 1) for the expensive tests.
2011-01-19 08:35:36 +01:00
Jim Meyering
7e72d4fe9d tests: avoid FP failure in new du test
* tests/du/move-dir-while-traversing: Create a larger tree to
avoid a false-positive failure due to du terminating before
the rename is triggered.
2011-01-18 22:32:33 +01:00
Jim Meyering
5c75d1da85 build: update gnulib submodule to latest 2011-01-18 21:07:57 +01:00
Jim Meyering
34ece0b0a1 doc: update NEWS
* NEWS: Note when the uniq bug was introduced.
It was mine, commit 1d9b3de9, "uniq: remove redundant test".
2011-01-18 09:45:00 +01:00
Jim Meyering
0f9cf6b545 doc: show how to shred more efficiently
* doc/coreutils.texi (shred invocation): Give an example showing how
to invoke shred in single-pass mode, and warn that -n0 --zero may
be inadequate.
2011-01-17 19:16:43 +01:00
Jim Meyering
bdaef0686f uniq: replace a wasteful loop with simple calculation
* src/uniq.c (find_field): Remove the byte-skipping loop altogether.
Instead, perform the simple calculation.  This results in a 10%
performance improvement for large byte offsets.
2011-01-17 19:07:58 +01:00
Jim Meyering
1f0653066c tests: add a test for today's uniq bug
* tests/misc/uniq-perf: New file.
* tests/Makefile.am (TESTS): Add it.
2011-01-17 19:07:58 +01:00
Sami Kerola
aa9f02bc30 uniq: don't continue field processing after end of line
* NEWS (Bug fixes): Mention it.
* src/uniq.c (find_field): Stop processing loop when end of line
is reached.  Before this fix, 'uniq -f 10000000000 /etc/passwd'
would run for a very long time.
2011-01-17 19:07:58 +01:00
Ondřej Vašík
442b068ac1 doc: specify how tr, echo, printf treat octal numbers
* doc/coreutils.texi (tr's Character sets): Document how a 9-bit
octal value is interpreted.  tr does not ignore the ninth bit.
(echo invocation, printf invocation): Document that any ninth
bit in \OOO is ignored. (http://debbugs.gnu.org/7574)
2011-01-15 11:49:31 +01:00
Pádraig Brady
eab97b3075 maint: refactor to use read-file from gnulib
* bootstrap.conf: Add the read-file module
* src/ptx.c: Replace the original code which would
needlessly read SIZE_MAX bytes of files larger than this.
* src/shuf.c: Replace the original code.
2011-01-14 18:06:41 +00:00
Pádraig Brady
e1aaf8903d maint: trivial system header file cleanups
* src/system.h: Note where it should be included, and
make ordering check portable to GLIBC > 2
* src/copy.c: Move <sys/ioctl.h> along with other system headers
as is done elsewhere.
* src/install.c: Move <sys/wait.h> along with other system headers
as is done elsewhere.
* src/ptx.c: Include <regex.h> rather than "regex.h" as
is done elsewhere.  Note <regex.h> is kept after "system.h"
as per commit dba300a0.
2011-01-13 17:28:36 +00:00
Jim Meyering
d95e3c8ceb doc: clean up HACKING guidelines
* HACKING: Remove mention of "indent-tabs-mode: nil", since
we've remove all of those directives.  No longer needed.
Remove dated (pre-emacs-23) reference regarding WhiteSpace mode.
2011-01-12 21:21:26 +01:00
Paul Eggert
11d864b36d gnulib: Also use dtoastr and ldtoastr modules.
This adjusts to the recent splitting of the ftoastr module into 3
<http://lists.gnu.org/archive/html/bug-gnulib/2011-01/msg00199.html>.
* bootstrap.conf (gnulib_modules): Add dtoastr, ldtoastr,
as coreutils needs all 3 modules now.
2011-01-11 18:10:03 -08:00
Paul Eggert
3292610bce build: update gnulib submodule to latest 2011-01-11 18:09:42 -08:00
Nadav Har'El
731f957965 rm: ignore errno related to invalid file names
* src/remove.c (nonexistent_file_errno): Also skip EINVAL and
EILSEQ, for at least smbfs rejection of '*' in file names.
* NEWS: Mention the fix.
2011-01-11 11:48:53 -07:00
Jim Meyering
db1034ddaf build: update gnulib submodule to latest 2011-01-10 07:59:00 +01:00
Jim Meyering
1c5987d2ef du: don't abort when a subdir is renamed during traversal
* NEWS (Bug fixes): Mention it.
* src/du.c (prev_level): Move declaration "up" to file-scope global.
(du_files): Reset prev_level to 0 upon abnormal fts_read termination.
Reported by Johathan Nieder in http://bugs.debian.org/609049
Also, improve a diagnostic.
* tests/du/move-dir-while-traversing: Test for the above.
* tests/Makefile.am (TESTS): Add it.
2011-01-10 07:49:55 +01:00
Pádraig Brady
d5d283dbc9 maint: suppress some clang scan-build warnings
* src/pr.c (char_to_clump): Remove a dead store.
* src/remove.c (fts_skip_tree): Likewise.
* src/sort.c (key_warnings): Likewise.
(sort): Suppress an uninitialized pointer warning.
2011-01-07 11:20:48 +00:00
Pádraig Brady
f331653fe8 maint: replace uses of ignore_ptr with ignore_value
* gnulib: Update for enhanced ignore_value()
* src/chcon.c (process_file): Don't use the deprecated ignore_ptr.
* src/chmod.c (process_file): Likewise.
* src/chown-core.c (change_file_owner): Likewise.
2011-01-07 02:09:32 +00:00
Jim Meyering
d6df8901bc post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2011-01-04 12:56:30 +01:00
Jim Meyering
b44b8f2b7d version 8.9
* NEWS: Record release date.
2011-01-04 12:18:32 +01:00
Jim Meyering
e43b19c4c8 build: update gnulib to latest; portability fixes 2011-01-04 12:17:21 +01:00
Jim Meyering
9d6231ef2a maint: update all copyright year number ranges
Run "make update-copyright".
2011-01-01 22:16:47 +01:00
Jim Meyering
257909013e build: update gnulib for version-etc copyright year update
* tests/sample-test: Update copyright to 2011, to appease syntax-check.
2011-01-01 22:16:35 +01:00
Jim Meyering
9a008a9e24 maint: generate much of the THANKS file
Before this change, we had a tendency to manually list each
contributor's name in THANKS.  Now, each commit "Author" is
included in the generated THANKS file automatically, and most
of the old THANKS file is now a template, THANKS.in.
We'll still have to manually list the names of people who report
problems without a usable patch.

* THANKS.in: New file, derived from THANKS, but removing names of
those who are listed as git log 'Author:'s.
* THANKS: Remove file.
* thanks-gen: New file.
* Makefile.am (THANKS): New rule.
(EXTRA_DIST): Add .mailmap, THANKS.in and thanks-gen.
* .gitignore: Add THANKS and THANKS-to-translators.
* .mailmap: Unify on single address and name-spelling per contributor.
2011-01-01 10:56:49 +01:00
Eric Blake
6b3f52e94f maint: update to latest gnulib, for testsuite improvement
* gnulib: Update to latest for init.sh fix.
* bootstrap: Resync from gnulib.
* tests/init.sh: Likewise.
2010-12-31 09:50:46 -07:00
Eric Blake
278491d2cc maint: allow gettext 0.17 again
Commit 041c9c47 traded the 'gettext' module for the lighter 'gettext-h'
module, so as to not require the latest gettext release (we only need
the latest release if we ship gettext as a dependent library, but
coreutils has long preferred to use it as an external library).
But that commit overlooked two places necessary to allow the use of
gettext 0.17.

This does not force you to downgrade (using gettext 0.18.1.1 is still
just fine), nor does it affect tarballs (once a tarball is built
with a given gettext version, it can be built on other machines
regardless of what gettext version is present).

* bootstrap.conf (buildreq): Relax prerequisite.
* configure.ac (AM_GNU_GETTEXT_VERSION): Likewise.
2010-12-30 15:10:09 -07:00
Pádraig Brady
44dbcae6b9 split: fix the suffix length calculation
* src/split.c (set_suffix_length): Only auto-calculate
the suffix length when the number of files is specified.
* tests/misc/split-a: Add a case to trigger the bug,
and exercise the suffix length auto-calculation.
* NEWS: Mention the fix.
Reported by Dmitry V. Levin and Sergey Vlasov at
https://bugzilla.altlinux.org/show_bug.cgi?id=24841
2010-12-30 16:26:20 +00:00
Paul Eggert
b0097f3d21 coreutils: keep lines within 80-column limits
* cfg.mk (LINE_LEN_MAX, FILTER_LONG_LINES): New macros.
(sc_long_lines): New rule.
* HACKING: Use shorter URLs to the same material.
* doc/Makefile.am, doc/coreutils.texi, m4/boottime.m4:
* man/help2man, man/stdbuf.x, src/Makefile.am, src/cat.c, src/copy.c:
* src/cp.c, src/dd.c, src/df.c, src/du.c, src/groups.c, src/install.c:
* src/ls.c, src/md5sum.c, src/mv.c, src/od.c, src/pinky.c, src/ptx.c:
* src/readlink.c, src/remove.c, src/rmdir.c, src/setuidgid.c:
* src/sort.c, src/tail.c, src/touch.c, tests/Coreutils.pm:
* tests/cp/existing-perm-race, tests/cp/perm, tests/cp/preserve-gid:
* tests/du/2g, tests/du/long-from-unreadable, tests/init.sh:
* tests/install/basic-1, tests/ls/nameless-uid:
* tests/ls/readdir-mountpoint-inode, tests/misc/chroot-credentials:
* tests/misc/cut, tests/misc/date, tests/misc/join, tests/misc/md5sum:
* tests/misc/sha1sum, tests/misc/sha224sum, tests/misc/sort:
* tests/misc/sort-continue, tests/misc/sort-files0-from:
* tests/misc/sort-rand, tests/misc/stdbuf, tests/misc/tr:
* tests/misc/uniq, tests/mv/atomic, tests/mv/part-fail:
* tests/mv/part-symlink, tests/mv/sticky-to-xpart, tests/pr/pr-tests:
* tests/rm/fail-2eperm, tests/rm/interactive-always:
Reformat to fit within 80 columns.
* doc/Makefile.am (BAD_POSIX_PERL): New macro.
* doc/coreutils.texi: Reword slightly, to make menus and
index lines shorter.
* src/md5sum.c: Redo --help output so that it fits within 79
columns, since that's a bit more portable and all the other --help
strings fit in 79 columns.
2010-12-28 12:30:42 -08:00
Jim Meyering
01211e9af7 maint: avoid syntax-check failure due to unused #include
* src/getlimits.c: Don't include "c-ctype.h"; no longer used.
2010-12-24 14:59:06 +01:00
Paul Eggert
bc4e77927c csplit: diagnose file counter wraparound
* src/csplit.c (create_output_file): Detect overflow when the
file counter wraps around, and exit with a diagnostic.  Formerly
the code silently wrapped around and wrote to the wrong file,
losing output data.
2010-12-23 00:07:59 -08:00
Paul Eggert
1d0a120377 sort: minor performance tweak with num_processors
* src/sort.c (main): Don't invoke num_processors twice.
2010-12-22 23:30:35 -08:00
Paul Eggert
83e0138480 getlimits: port to hosts with very wide int, or non-ASCII
* src/getlimits.c (decimal_ascii_add): Remove, replacing with ...
(decimal_absval_add_one): New function, with different signature,
which does not assume ASCII.  All callers changed.
(print_int): Remove assumptions that integers fit in 206 bits, and
that characters are ASCII.  These assumptions are portable in
practice but are easy to remove here.
2010-12-22 23:11:40 -08:00
Jim Meyering
8f90efd006 post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2010-12-22 18:19:37 +01:00
Jim Meyering
518b92a5e3 version 8.8
* NEWS: Record release date.
2010-12-22 17:43:50 +01:00
Jim Meyering
b795e60844 csplit: update gnulib for Solaris 8,9 snprintf fix 2010-12-22 14:33:11 +01:00
Jim Meyering
887d530e62 maint: correct test-related comments
* tests/mv/i-3: Adjust comment to match just-changed code.
Spotted by Pádraig Brady.
* tests/init.cfg (retry_delay_): Correct spelling of function name
in usage example.
2010-12-22 11:52:11 +01:00
Jim Meyering
51f60a6237 tests: adjust preceding change to handle general WERROR_CFLAGS values
* gnulib-tests/Makefile.am (test_xvasprintf_CFLAGS):
(test_lock_CFLAGS, test_tls_CFLAGS): Avoid a syntax error when
$(WERROR_CFLAGS) expands to more than one token.
2010-12-22 11:10:23 +01:00
Paul Eggert
056caf4857 tests: do not assume compiler knows -Wxxx flags
* gnulib-tests/Makefile.am (test_xvasprintf_CFLAGS):
(test_lock_CFLAGS, test_tls_CFLAGS): Do not append GCC-specific
flags like -Wno-format-security unless the GCC-specific flag
-Werror is also specified.  This avoids a "make check" failure on
Solaris when using Sun C 5.8.
2010-12-22 01:48:54 -08:00
Jim Meyering
a300cfd43c tests: mv/i-3: avoid false-positive failure on a slow/busy system
* tests/mv/i-3: Quadruple the timeout duration.
Without this, I saw an expired timeout on a heavily-loaded system.
2010-12-22 10:29:30 +01:00
Jim Meyering
7ca55ef3d1 tests: avoid new false-positive failure on at least FreeBSD 8.1
* tests/mv/trailing-slash: Accommodate different diagnostic
on FreeBSD 8.1.
2010-12-21 09:30:55 +01:00
Paul Eggert
960fc61624 who: omit useless definitions of MAXHOSTNAMELEN
This prevents a compilation failure on Solaris 8, GCC 4.4.2, with
"configure --enable-gcc-warnings".
* src/who.c (MAXHOSTNAMELEN): Remove; no longer needed.
* src/pinky.c: Likewise.
2010-12-20 17:43:05 -08:00
Pádraig Brady
41159f9604 maint: fix a typo in sort --parallel help message
Also fix up Chen Guo's contacts
* src/sort.c (usage): Add a missing "of"
* THANKS: Add Chen Guo
* .mailmap: Add Chen Guo's UCLA address
2010-12-20 10:56:04 +00:00
Jim Meyering
4a423bedea build: update gnulib: ACL-vs-Solaris 8 portability etc. 2010-12-20 10:55:39 +01:00
Paul Eggert
5947491895 tests: sync init.sh from gnulib
* tests/init.sh (setup_): Initialize fail=0 before invoking mktempd_.
Ensure that IFS is defined initially.
(mktempd_): Remove fail=0 initialization; no longer needed.
2010-12-18 20:03:21 -08:00
Pádraig Brady
0eaa993ae6 wc: fix a possible hang with --files0-from
* src/wc.c (main): exit when we get a read error on
the --files0-from file, rather than retrying and
spinning the CPU
2010-12-19 00:40:27 +00:00
Pádraig Brady
e66948c3b5 cp: ensure backups are created when -T specified
* src/cp.c (do_copy): When -T is specified, initialize
the NEW_DST and SB variables, which are checked when
running: cp -T --force --backup file file
* tests/cp/backup-1: Add the -T case
2010-12-19 00:36:29 +00:00
Pádraig Brady
0e181024c0 sort: use at most 8 threads by default
* src/sort.c (main): If --parallel isn't specified,
restrict the number of threads to 8 by default.
If the --parallel option is specified, then
allow any number of threads to be set, independent
of the number of processors on the system.
* doc/coreutils.texi (sort invocation): Document the changes
to determining the number of threads to use.
Mention the memory overhead when using multiple threads.
* tests/misc/sort-spinlock-abuse: Allow single core
systems that support pthreads.
* tests/misc/sort-stale-thread-mem: Likewise.
* tests/misc/sort-unique-segv: Likewise.
* NEWS: Mention the change in behaviour.
2010-12-19 00:33:45 +00:00
Jim Meyering
eea8e7530b doc: split: add examples showing how to use the new option
* doc/coreutils.texi (split invocation): Add examples.
2010-12-18 08:04:46 +01:00
Jim Meyering
6d488ca041 tests: avoid spurious du/bigtime failure
* tests/du/bigtime: Map nonzero block count to 0.
Reported by Assaf Gordon.
* THANKS: Update.
2010-12-18 08:04:46 +01:00
Paul Eggert
c67a96c4c1 tests: set fail=0 by default
* tests/init.sh (setup_): Set fail=0.  This was the intent as per
<http://lists.gnu.org/archive/html/bug-coreutils/2010-12/msg00058.html>
but the assignment in mktempd_ is ineffective, since mktempd_
is used inside `` and its assignments are in a subshell.
2010-12-17 22:40:20 -08:00
Jim Meyering
561f8be2c9 build: update gnulib submodule to latest 2010-12-17 08:19:26 +01:00
Paul Eggert
8e81a99c26 sort: do not generate thousands of subprocesses for 16-way merge
Without this change, tests/misc/sort-compress-hang would consume
more than 10,000 process slots on my RHEL 5.5 x86-64 server,
making it likely for other applications to fail due to lack of
process slots.  With this change, the same benchmark causes 'sort'
to consume at most 19 process slots.  The change also improved
wall-clock time by 2% and user+system time by 14% on that benchmark.
* NEWS: Document this.
* src/sort.c (MAX_PROCS_BEFORE_REAP): Remove.
(reap_exited): Renamed from reap_some; this is a more accurate name,
since "some" incorrectly implies that it reaps at least one process.
All uses changed.
(reap_some): New function: it *does* reap at least one process.
(pipe_fork): Do not allow more than NMERGE + 2 subprocesses.
(mergefps, sort): Omit check for exited processes: no longer needed,
and anyway the code consumed too much CPU per line when 2 < nprocs.
2010-12-16 22:32:06 -08:00
Paul Eggert
1b31ce6982 sort: fix hang with sort --compress
* NEWS: Document this.
* src/sort.c (UNCOMPRESSED, UNREAPED, REAPED): New constants.
(struct tempnode): New member 'state', to hold these constants.
The pid member is now undefined if state == UNCOMPRESSED.
(struct sortfile): Replace member 'pid' with member 'temp'.
(uintptr): Remove.
(proctab_hasher, proctab_comparator, register_proc, delete_proc):
Proctab entries are now struct tempnode *, not pid_t, to handle
the case where multiple tempnode objects correspond to the same
pid.  This avoids a race condition that can cause a hang.
(register_proc): Arg is now struct tempnode *, not pid_t.  All
callers changed.
(delete_proc): Set tempnode state to REAPED.
(create_temp_file): No need to set pid member here; it's now
done when the pid is known.
(maybe_create_temp, create_temp): Remove PPID arg.  Return struct
tempnode *, not char *.  All callers changed.
(maybe_create_temp): Set node state to UNCOMPRESSED or UNREAPED.
No need to set node->pid to 0.
(open_temp): Replace NAME and PID args with a single TEMP arg.
All callers changed.  Wait only for unreaped children.
(zaptemp): Wait for decompressor to finish before removing its
temporary-file input.  This avoids .nfsXXXX hassles with NFS
and fixes a race (leading to a hang) regardless of NFS.
(open_input_files): Adjust to new way of dealing with temp files
and their subprocesses.
* tests/Makefile.am (TESTS): Add misc/sort-compress-hang.
* tests/misc/sort-compress-hang: New file.
2010-12-16 13:55:31 -08:00
Paul Eggert
f3c584d1e0 sort: don't dump core when merging from input twice
* NEWS: Document this.
* src/sort.c (avoid_trashing_input): The previous fix to this
function didn't fix all the problems with this code.  Replace it
with something simpler: just copy the input file.  This doesn't
change the number of files, so return void instead of the updated
file count.  Caller changed.
* tests/misc/sort-merge-fdlimit: Test for the bug.
2010-12-16 00:04:32 -08:00
Jim Meyering
33a5de5a0e doc: tail: semi-deprecate --sleep-interval and --max-unchanged-stats
Those options are useful only on systems that lack inotify support
and in the unusual event that a system with inotify support must
resort to polling.
* src/tail.c (usage): Note that the --max-unchanged-stats=N and
--sleep-interval=N options are rarely useful on systems with
inotify support.
* doc/coreutils.texi (tail invocation): Likewise.
2010-12-14 20:13:05 +01:00
Paul Eggert
14ad7a2550 sort: fix very-unlikely buffer overrun when merging to input file
* src/sort.c (avoid_trashing_input): Fix a typo that could cause a
buffer overrun in theory.  In practice this is extremely unlikely,
as it requires running out of file descriptors in a small merge,
presumably because some other process is hogging all the OS's file
descriptors.
2010-12-14 11:10:45 -08:00
Paul Eggert
8f40ed634c sort: document --compress reaper fixes
* NEWS: Document the --compress reaper fixes installed yesterday.
2010-12-14 10:22:04 -08:00
Paul Eggert
dcb3f60d0a tests: default to /tmp as the temporary directory
* tests/check.mk (TESTS_ENVIRONMENT): Default TMPDIR to /tmp,
rather than to the working directory; this is more common in
practice, which makes the tests more real-worldish; and it is
often faster.  Also, it avoids some problems with NFS cleanups.
* tests/misc/sort-compress: Remove unnecessary code setting TMPDIR.
* tests/misc/sort-compress-proc: Likewise.  Do the final sleep
only if TMPDIR is relative, which should be rarely given the
change to TESTS_ENVIRONMENT.
2010-12-14 10:08:04 -08:00
Paul Eggert
0da4d84300 sort: fix some --compress reaper bugs
* src/sort.c (uintptr): New type.
(enum procstate, struct procnode, update_proc): Remove.
(proctab_hasher, proctab_comparator, register_proc, wait_proc):
(reap_some): The proctab is now simply a hash of process-IDs
rather than of pointers to objects with reference counts and
states; this is smaller and faster and easier to understand.
(nprocs): Now pid_t, not size_t, since one cannot have more than
PID_MAX children.
(reap): If the argument is -1, wait; if 0 (a new value), do not.
Delete pid from proctab as needed.  Ignore children that are not
in proctab, as they are from the program that exec'ed us and are
irrelevant to our success or failure.
(delete_proc, reap_all): New functions.
(open_temp): Register the child.
(sort): Clean up all children afterwards; without this patch,
'sort' sometimes missed failures in children due to race conditions.
* tests/Makefile.am (TESTS): Add misc/sort-compress-proc.
* tests/misc/sort-compress-proc: New file, to test for the
bugs fixed above.
2010-12-13 23:23:47 -08:00
Paul Eggert
6d36bd4c64 tests: typo fix
* tests/misc/sort-stale-thread-mem: Fix typo in comment.
2010-12-13 10:02:43 -08:00
Jim Meyering
0c70708db7 tests: tweak basic-1 to use warn_ rather than literal "exit 77"
* tests/install/basic-1 (just_built_dd): Use warn_, rather than
cat and exit 77.
2010-12-13 08:29:42 +01:00
Jim Meyering
8351407f87 tests: mark new test as very expensive
* tests/misc/sort-stale-thread-mem: Don't initialize fail=0 here;
that is done in init.sh.  This avoids a syntax-check failure.
Invoke "Exit $fail" at end, too.
Mark as a very expensive test.
2010-12-13 08:28:19 +01:00
Paul Eggert
b212633c41 tests: test for access to stale thread memory
* tests/misc/sort-stale-thread-mem: New tests.
* tests/Makefile.am (TESTS): Add it.
2010-12-12 13:38:49 -08:00
Jim Meyering
45ff91af2e tests: avoid FP failure when run under valgrind
* tests/misc/printenv: Filter out LD_PRELOAD, as the comment
said, not LD_LIBRARY.
2010-12-11 18:44:57 +01:00
Jim Meyering
ad61335bf8 sort: avoid segfault when using two or more threads
This change does not fix the actual bug.  That was done by commit
c9db0ac6, "sort: preallocate merge tree nodes to heap".  The fix
was to store each "node" structure on the heap, not on the stack.
Otherwise, a node from one thread's stack could be used in another
thread after the first thread had expired (via pthread_join).
This bug was very hard to trigger when using spinlocks, but
easier once we began using mutexes.
* NEWS (Bug fixes): Mention it.
For details, see http://debbugs.gnu.org/7597.
2010-12-11 11:52:24 +01:00
Jim Meyering
9a9d69e9e4 sort: syntax cleanup
* src/sort.c (xfopen, debug_key, sortlines, sort, main): Adjust
formatting: fix misplaced braces, use consistent spacing,
split a 2-stmt line.
2010-12-11 11:29:38 +01:00
Paul Eggert
27e997d0eb sort: integer overflow checks in thread counts, etc.
* src/sort.c (specify_nthreads, merge_tree_init, init_node):
(queue_init, sortlines, struct thread_args, sort, main):
Use size_t, not unsigned long int, for thread counts, since thread
counts are now used to compute sizes.
(specify_nthreads): Check for size_t overflow.
(merge_tree_init, sort): Shorten name of local variable, for
readability.
(merge_tree_init): Move constants next to each other in product,
so that the constant folding is easier to see.
(init_node): Now static.  Add 'restrict' only where it might
be helpful for compiler optimization.
(queue_init): 2nd arg is now nthreads, not "reserve", which is
a bit harder to follow.  All uses changed.
(struct thread_args): Rename lo_child to is_lo_child, so that
it's obvious to the reader when we're talking about this boolean
as opposed to the new lo_child member of the other structure.
All uses changed.
(sort): Remove unused local variable end_node.
(main): Don't allow large thread counts to cause undefined behavior
later, due to integer overflow.
2010-12-11 00:29:13 -08:00
Chen Guo
c9db0ac6de sort: preallocate merge tree nodes to heap.
* src/sort.c: (merge_tree_init) New function. Allocates memory for
merge tree nodes.
(merge_tree_destory) New function.
(init_node) New function.
(sortlines) Refactor node creation code to init_node. Remove now
superfluous arguments. All callers changed.
(sort) Initialize/destory merge tree. Refactor root node creation
to merge_tree_init.
2010-12-11 00:29:13 -08:00
Paul Eggert
d1f7003556 sort: comment fix
* src/sort.c: Comment fix re spin locks.
2010-12-11 00:29:13 -08:00
Chen Guo
621876ff44 sort: use mutexes, not spinlocks (avoid busy loop on blocked output)
Running a command like this on a multi-core system
  sort < big-file | less
would peg all processors at near 100% utilization.
* src/sort.c: (struct merge_node) Change member lock to mutex.
All uses changed.
* tests/Makefile.am (XFAIL_TESTS): Remove definition, now that
this test passes once again.  I.e., the sort-spinlock-abuse test
no longer fails.
* NEWS (Bug reports): Mention this.
Reported by DJ Lucas in http://debbugs.gnu.org/7489.
2010-12-11 00:29:13 -08:00
Pádraig Brady
195c455d0a split: fix a case where --elide-empty causes invalid chunking
When -n l/N is used and long lines are present that both
span partitions and multiple buffers, one would get
inconsistent chunk sizes.

* src/split.c (main): Add a new undocumented ---io-blksize option
to support full testing with varied buffer sizes.
(cwrite): Refactor most handling of --elide-empty to here.
(bytes_split): Remove handling of --elide-empty.
(lines_chunk_split): Likewise.  The specific issue here
was the first handling of elide_empty_files interfered
with the replenishing of the input buffer.
* test/misc/split-lchunk: Add -e and the new ---io-blksize
combinations to the test.
2010-12-08 23:36:17 +00:00
Jim Meyering
a1629ba1ec tests: remove useless definition of $SORT in sort-compress
* tests/misc/sort-compress (SORT): Remove unused definition.
2010-12-05 17:07:35 +01:00
Jim Meyering
231d8719f1 tests: make it harder to lose a race in spinlock-abuse
* tests/misc/sort-spinlock-abuse: On a busy system, with only 12
pauses of length 0.1 seconds, the buggy (busy-spinlock blocked)
sort would fail to accumulate 1 second of CPU time, and hence
would mistakenly pass.  Increase from 12 to 50.
2010-12-04 11:52:21 +01:00
Paul Eggert
cd00fa6ee1 sort: merge_queue -> queue
* src/sort.c (struct thread_args, sortlines_thread, sortlines, sort):
Rename "merge_queue" to "queue", for consistency with other functions
that just use the name "queue" for these things.
2010-12-03 23:43:31 -08:00
Paul Eggert
fb282c7b30 sort: clarify queue_check_insert
* src/sort.c (queue_check_insert): Clarify body a bit, and remove
no-longer-needed comment.
2010-12-03 23:43:31 -08:00
Paul Eggert
fb41e82c77 sort: fix problems with merge node dest pointer
* src/sort.c (mergelines_node): Return void, not size_t.  All
callers changed.  Change *node->dest here, not in caller.
Do not change node->dest: it's not needed and could cause problems
on (mostly theoretical) hosts that do not allow adding integers to
null pointers.
(queue_check_insert_parent): Omit MERGED parameter; no longer needed.
All callers changed.
2010-12-03 23:43:31 -08:00
Paul Eggert
f2d977aff1 sort: simplify write_unique
* src/sort.c (write_unique): Simplify slightly so that there is
just one call to write_line, not two.
2010-12-03 23:43:31 -08:00
Paul Eggert
6f4279421d sort: put queue arg first
* src/sort.c (queue_check_insert, queue_check_insert_parent): Make
the queue arg first, for consistency with other functions such as
queue_insert that put the queue arg first.  Rename from
check_insert and update_parent, respectively.  All callers
changed.
2010-12-03 23:43:30 -08:00
Paul Eggert
f35f4b3396 sort: tune struct_merge_node slightly
* src/sort.c (struct merge_node): 'lock' is now the actual lock,
not a pointer to the lock; there's no need for indirection here.
Make 'level' unsigned int instead of size_t, since it is a
bit-shift count; also, move it next to a bool so that it's more
likely to take less space.  All uses changed.
(sortlines, sort): Spell out initialization instead of using an
initializer.  This makes the initializer a bit easier to understand,
and avoids unnecessary stores into the spin lock.
2010-12-03 23:43:30 -08:00
Paul Eggert
eb989f4b75 sort: Clarify comments
* src/sort.c: Improve comments a bit.
2010-12-03 23:43:30 -08:00
Paul Eggert
b6ef652e50 tests: cleanup rm -rf fails under NFS
This problem was observed on RHEL 5.5 x86-64 when running as a
client of a NetApp FAS2050.
* tests/cp/cp-mv-backup: Don't leave a file descriptor open to
a file in a directory that will be cleaned up with "rm -rf".
Under NFS, when the rm unlinks that file, it is instead renamed
to .nfsXXXX and then rm cannot remove the parent directory,
and the test fails.
* tests/cp/same-file: Likewise.
2010-12-03 11:09:27 -08:00
Paul Eggert
b5a25a996d cp: fix bug with fine-grained src to nearby coarse-grained dest
The actual fix is in gnulib's lib/utimecmp.c.
* NEWS: Document fix.
2010-12-03 09:56:32 -08:00
Paul Eggert
038fcfcf1b build: update gnulib submodule to latest 2010-12-03 09:53:02 -08:00
Paul Eggert
0ec869e8be sort: fix bug on 64-bit hosts with at least 32768 processors
* src/sort.c (MAX_MERGE): Avoid integer overflow when on a machine
with (say) 32-bit int and 64-bit size_t and when level == 15.
Without this fix, on such a machine with 32768 or more processors,
the level computation could overflow on large input, and this
would result in division by zero.
2010-12-01 21:51:15 -08:00
Jim Meyering
a5207bb139 tests: add test for parallel sort -u segfault bug
* tests/misc/sort-unique-segv: New file.
* tests/Makefile.am (TESTS): Add it.
2010-12-01 08:15:42 +01:00
Paul Eggert
3afda5f007 sort -u: fix a thread-race pointer corruption bug
* src/sort.c (write_unique): Save the entire "struct line", not
just a pointer to one.  Otherwise, with a multi-thread run,
sometimes, with some inputs, fillbuf would would win a race
and clobber a "saved->text" pointer in one thread just before
it was dereferenced in a comparison in another thread.
* NEWS (Bug fixes): Mention it.
2010-12-01 07:13:06 +01:00
Jim Meyering
43d1112d01 tests: don't let the OMP_NUM_THREADS envvar affect sort tests
* tests/envvar-check (vars): Add OMP_NUM_THREADS.
2010-11-27 16:32:10 +01:00
Jim Meyering
fbb47bf424 tests: test for parallel sort spinlock abuse
* tests/misc/sort-spinlock-abuse: New file.
* tests/Makefile.am (TESTS): Add it.
(XFAIL_TESTS): Mark this as an expected-to-fail (for now) test.
2010-11-27 16:32:06 +01:00
Pádraig Brady
b8cd747cc8 tsort: suppress a valgrind memory leak warning
* src/tsort.c (tsort): Unconditionally invoking the free()
doesn't increase scalability, so do it only with -Dlint
2010-11-27 03:27:49 +00:00
Pádraig Brady
67f7ed3e3a maint: update the valgrind support script
* README-valgrind: Include the "noinst" programs in
those wrapped by valgrind.  Update $PATH in check.mk
rather than Makefile.am.  Make wrapper scripts
work when suppressions not setup.  Keep lines < 80 chars.
2010-11-24 13:39:47 +00:00
Paul Eggert
013d95af11 cp: give a better diagnostic for nonexistent dest/
This patch was written by Jim Meyering and myself.
* src/copy.c (copy_reg): Turn EISDIR to ENOTDIR to improve the
quality of diagnostics for commands like "cp a nosuch/".  Reported
by Марк Коренберг and Alan Curry in the thread starting at:
http://lists.gnu.org/archive/html/bug-coreutils/2010-11/msg00178.html
* THANKS: Update.
* tests/mv/trailing-slash: Add a test.
2010-11-22 00:04:50 -08:00
Chen Guo
be107398e5 split: add --number to generate a particular number of files
* src/split.c (usage, long_options, main): New options --number,
--unbuffered, --elide-empty-files.
(set_suffix_length): New function to auto increase suffix length
to handle a specified number of files.
(create): New function.  Refactored from cwrite() and ofile_open().
(bytes_split): Add max_files argument to support byte chunking.
(lines_chunk_split): New function.  Split file into chunks of lines.
(bytes_chunk_extract): New function.  Extract a chunk of file.
(of_info): New struct.  Used by functions lines_rr and ofile_open
to keep track of file descriptors associated with output files.
(ofile_open): New function.  Shuffle file descriptors when there
are more output files than available file descriptors.
(lines_rr): New function to distribute lines round-robin to files.
(chunk_parse): New function.  Parses K/N syntax.
* tests/misc/split-bchunk: New test for byte chunking.
* tests/misc/split-lchunk: New test for line delimited chunking.
* tests/misc/split-rchunk: New test for round-robin chunking.
* tests/Makefile.am: Reference new tests.
* tests/misc/split-fail: Add failure scenarios for new options.
* tests/misc/split-l: Fix a typo. s/ln/split/.
* doc/coreutils.texi (split invocation): Document --number.
* NEWS: Mention the new feature.
* .mailmap: Map new email address for shortlog.

Signed-off-by: Pádraig Brady <P@draigBrady.com>
2010-11-22 01:45:15 +00:00
Jim Meyering
dadca988af build: update gnulib to fix a syntax error in a test 2010-11-19 14:29:32 +01:00
Jim Meyering
c2bdd17856 maint: avoid NEWS-related syntax-check failure
* NEWS: Add 2nd blank line to separate latest changes from
those of 8.7, to avoid syntax-check failure.
2010-11-18 21:16:27 +01:00
Paul Eggert
a71c22fdf0 od: fix bugs in displaying floating-point values
* NEWS: Describe patch.
* bootstrap.conf (gnulib_modules): Add ftoastr.
* src/od.c: Include ftoastr.h, not float.h.
(FLT_DIG, DBL_DIG): Remove.  No need to verify LDBL_DIG.
(FMT_BYTES_ALLOCATED): No need to worry about floating point now,
since this format is no longer used for floating point.
(PRINT_FIELDS): New macro, with most of the guts of the old PRINT_TYPE.
(PRINT_TYPE): Rewrite to use PRINT_FIELDS.
(PRINT_FLOATTYPE): New macro.  This uses the new functions from
ftoastr.
(print_float, print_double, print_long_double): Reimplement
using PRINT_FLOATTYPE.
(decode_one_format): Calculate field widths based on ftoastr-supplied
macros.
* tests/Makefile.am (TESTS): Add misc/od-float.
* tests/misc/od-float: New file.
2010-11-18 09:51:04 -08:00
Paul Eggert
cf90729e09 build: update gnulib submodule to latest 2010-11-18 09:33:49 -08:00
Jim Meyering
c1b41c5c3b maint: syntax-check: prevent new $VERBOSE/--version tests
* cfg.mk (sc_prohibit_verbose_version): New rule.
2010-11-18 06:29:54 +01:00
Jim Meyering
ae5cfc9f12 tests: convert tests/misc/selinux manually 2010-11-17 21:46:57 +01:00
Jim Meyering
8f9be76b0d tests: convert the multi-prog $VERBOSE/--version uses
E.g.,

-test "$VERBOSE" = yes && { env -- pwd --version; readlink --version; }
+print_ver_ pwd readlink

-test "$VERBOSE" = yes && { stdbuf --version; mv --version; }
+print_ver_ stdbuf mv

Use this command:
git grep -l 'VERBOSE.*--version'|xargs perl -ni \
  -e '/^test "\$VERBOSE" = yes && { .*--version/ or print,next;' \
  -e 's/env -- //g;' \
  -e 's/test "\$VERBOSE" = yes && { /print_ver_ /;' \
  -e ' s/(\w+) --version;/$1/g; s/ *}$//; print'
2010-11-17 21:46:25 +01:00
Jim Meyering
a8c8484ee1 tests: convert "... env -- prog --version" uses
E.g.,

-test "$VERBOSE" = yes && env -- pwd --version
+print_ver_ pwd

git grep -l 'VERBOSE.*--version'|xargs perl -pi -e \
  's/test "\$VERBOSE" = yes && env -- (\w+) --version/print_ver_ $1/'
2010-11-17 21:46:22 +01:00
Jim Meyering
293c37b906 tests: substitute the single-program $VERBOSE/--version uses
Automatically make all of the changes like this:

  -test "$VERBOSE" = yes && chgrp --version
  +print_ver_ chgrp

git grep -l 'VERBOSE.*--version'|xargs perl -pi -e \
  's/test "\$VERBOSE" = yes && (\w+) --version/print_ver_ $1/'
2010-11-17 21:45:51 +01:00
Jim Meyering
5c0275e953 tests: factor out VERBOSE-only --version-printing code
* tests/init.cfg (print_ver_): New function.
2010-11-17 21:34:54 +01:00
Jim Meyering
11d3389f5a tests: remove test-lib.sh; now all tests use gnulib's init.sh
* tests/test-lib.sh: Remove file.  No longer used.
* tests/Makefile.am (EXTRA_DIST): Remove it here, too.
* tests/sample-test: Correct a comment.
2010-11-17 20:48:57 +01:00
Jim Meyering
fbcc100f5b tests: convert remaining uses of test-lib.sh to init.sh
RHS='. "\${srcdir=.}/init.sh"; path_prepend_ ../src'
git grep -l test-lib.sh \
  | xargs perl -pi -e 's,^\. \$srcdir/test-lib\.sh$,'"$RHS",
2010-11-17 20:48:57 +01:00
Jim Meyering
ff7f0ff85c tests: convert 'if test "$VERBOSE" = yes; then' to test ... && 2010-11-17 20:48:57 +01:00
Jim Meyering
f38becab02 tests: convert first batch of tests from test-lib.sh to init.sh
Initially, I did this,
git grep -l srcdir/test-lib.sh|xargs perl -p0i -e '~180-byte script'
but that line would have been much longer than the maximum permitted
by coreutils' commit hook, and wasn't readable besides, so here's a
more readable version:

lhs=$(printf '%s\\n' \
'if test "$VERBOSE" = yes; then' \
'  set -x' \
'  touch --version' \
'fi' \
'' \
'. $srcdir/test-lib.sh' \
  | sed 's/\$/\\\$/g;s/touch/(\\w+)/')

rhs=$(printf '%s\\n' \
'. "${srcdir=.}/init.sh"; path_prepend_ ../src' \
'test "$VERBOSE" = yes && FIXME --version' \
  | sed 's/\$/\\\$/g;s/FIXME/\$1/')

git grep -l srcdir/test-lib.sh|xargs perl -p0i -e "s,$lhs,$rhs,"
2010-11-17 20:48:57 +01:00
Jim Meyering
30b74dfff1 tests: move a comment so automated conversion works 2010-11-17 20:48:57 +01:00
Jim Meyering
01a27b9054 maint: add a NEWS-checking syntax-check rule
* cfg.mk (sc_NEWS_two_empty_lines): New syntax-check rule.
2010-11-17 20:48:56 +01:00
Pádraig Brady
79adacc431 build: add patch as a bootstrap dependency
* bootstrap.conf (buildreq): require `patch` as it's used
by gnulib-tool to apply local diffs to gnulib modules
2010-11-16 07:39:06 +00:00
Pádraig Brady
9ad13ad14a split: fail immediately if impossible to create a large file
* src/split.c (main): Error if -[bC] value > OFF_T_MAX
* tests/misc/split-fail: Adjust for the new lower limits
2010-11-16 00:50:09 +00:00
Pádraig Brady
c8d570c2b3 truncate: fix a very unlikely case for undiagnosed errors
src/truncate.c (main): Use a bool to store if an error occurred,
rather than an int, to protect against overflow.
(do_ftruncate): Likewise.   Also change 0/false to mean failure
rather than success.
2010-11-16 00:47:36 +00:00
Pádraig Brady
0d1ba34494 maint: fix a new -Wpointer-sign gcc warning
* src/csplit.c (max_out): Fix a new warning introduced with
commit 6568b173, 2010-11-10, "csplit: do not rely on..."
2010-11-16 00:38:12 +00:00
Pádraig Brady
f9cfda6ad2 build: enable the -Wpointer-sign gcc warning
... when configured with the --enable-gcc-warnings option.
This follows on from commit 34ef0a01, 2010-10-14,
"sort: fix unportable cast of unsigned char * -> char *"

* configure.ac: -Wall implicitly enables this warning
so remove the explicit disabling.
2010-11-16 00:05:41 +00:00
Pádraig Brady
b19733bb42 maint: add a missed fadvise-tests module
* gl/modules/fadvise-tests: Add the module previously missed
in commit 63b5e816, 2010-07-14, "fadvise: new module ...".
* gl/tests/test-fadvise.c: Add a comment as to why we don't
check return values.
2010-11-15 14:56:24 +00:00
Paul Eggert
f70c7b785b doc: tweak NEWS and coreutils.texi
* doc/coreutils.texi (stat invocation): Add sentence-ending period.
* NEWS: Correct stat change description: s/floating point //.
* cfg.mk (old_NEWS_hash): Update, to match this NEWS change.
2010-11-13 22:02:29 +01:00
Jim Meyering
ee6f187b18 post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2010-11-13 17:37:18 +01:00
Jim Meyering
e143ba52c4 version 8.7
* NEWS: Record release date.
2010-11-13 17:21:08 +01:00
Jim Meyering
d2e0f3602e build: update gnulib...
...to fix the failing update-copyright test,
and for the openat portability fix.
2010-11-13 15:45:56 +01:00
Jim Meyering
2d5b3329a2 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.
2010-11-13 11:41:02 +01:00
Jim Meyering
ff5fc553f9 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.
2010-11-13 11:41:02 +01:00
Jim Meyering
4a8e9bf14c 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.
2010-11-13 11:40:52 +01:00
Paul Eggert
6568b173db 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.
2010-11-11 08:16:24 +01:00
Pádraig Brady
0339eb4598 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
2010-11-11 01:40:12 +00:00
Jim Meyering
7727908335 tests: fix comments and --version invocation in new test
* tests/misc/csplit-1000: Fix comments and --version invocation.
2010-11-10 22:08:05 +01:00
Jim Meyering
0cfd4f2161 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.
2010-11-10 14:28:03 +01:00
Pádraig Brady
425503c807 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.
2010-11-09 12:43:20 +00:00
Pádraig Brady
4a14a80bd1 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.
2010-11-08 11:26:08 +01:00
Jim Meyering
dd45755406 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
2010-11-07 21:08:37 +01:00
Paul Eggert
ca9aa75960 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.
2010-11-06 18:09:44 -07:00
Jim Meyering
6c058b2dab 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.
2010-11-06 15:24:53 +01:00
Jim Meyering
3261914da1 build: update gnulib to latest for strtod and icc fixes 2010-11-06 15:24:53 +01:00
Paul Eggert
c7375c236c 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.
2010-11-06 15:24:49 +01:00
Eric Blake
312549b627 cp: NEWS entry for previous fix
Resolves bug#7324

* NEWS: Document the extent of the Solaris crash.
2010-11-04 10:51:01 -06:00
Eric Blake
7b4e77352d cp, mv, touch: fix file time manipulation on Solaris 10
* gnulib: Update to latest, for futimens fix.
* .gitignore: Ignore another recent gnulib-generated file.
2010-11-04 08:34:07 -06:00
Jim Meyering
1369fe9284 build: update gnulib to latest 2010-11-03 13:11:21 +01:00
Jim Meyering
db42ae787d 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.
2010-11-03 13:10:50 +01:00
Nix
272f8bf0ac 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.
2010-11-01 16:02:39 +00:00
Patrick W. Plusnick II
30e207fa46 maint: remove an unnecessary FIXME comment
* src/seq.c (terminator): This does not need to be specifiable
via an option.  Remove the FIXME comment.
2010-10-28 15:22:08 +02:00
Pádraig Brady
883ac22239 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.
2010-10-27 11:18:51 +01:00
Jim Meyering
0d792d061e 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.
2010-10-26 18:14:50 +02:00
Eric Blake
3e1905baf4 maint: update THANKS
* THANKS: Update.
2010-10-25 11:51:45 -06:00
Tobias Quathamer
7930367a34 date: correct typos in date --help
* src/date.c (usage): Use "e.g." correctly.
2010-10-25 11:45:27 -06:00
Pádraig Brady
c84ddbaa33 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
2010-10-25 15:41:53 +01:00
Paul Eggert
7d93a082b6 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.
2010-10-23 17:24:38 -07:00
Rodrigo Campos
d5d82ecf3b doc: add a cross reference from cat's man page to "tac"
* man/cat.x: See also "tac".
2010-10-20 08:35:50 +02:00
Jim Meyering
10a0bdfa98 tests: trigger and test for md5sum's new diagnostics
* tests/misc/md5sum: Test for new diagnostics.
2010-10-19 09:35:44 +02:00
Benno Schulenberg
407806b27f 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.
2010-10-19 09:32:38 +02:00
Jim Meyering
3c7112104d 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.
2010-10-18 07:28:36 +02:00
Jim Meyering
840e8c9cfb maint: update bootstrap from gnulib
* bootstrap: Update from gnulib.
2010-10-17 15:56:01 +02:00
Jim Meyering
b1b23d894b .gitignore: anchor patterns
* .gitignore: Anchor most patterns.  Remove .tarball-version.
* doc/.gitignore: Anchor all patterns.
Remove getdate.texi and get_date.texi.
2010-10-17 15:55:13 +02:00
Jim Meyering
766ec503f7 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.
2010-10-17 09:18:57 +02:00
Andreas Schwab
9c589e694f 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.
2010-10-16 13:32:04 +02:00
Jim Meyering
6728401351 post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2010-10-15 17:06:56 +02:00
Jim Meyering
7612e5c5c6 version 8.6
* NEWS: Record release date.
2010-10-15 16:50:15 +02:00
Jim Meyering
ff8d38e100 build: update gnulib for vasnprintf fix 2010-10-15 07:49:54 +02:00
Paul Eggert
6b9ab1831f 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.
2010-10-14 11:39:14 +02:00
Paul Eggert
7324fba675 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
2010-10-14 09:23:51 +02:00
Paul Eggert
c586bff1c0 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.
2010-10-13 22:41:21 -07:00
Paul Eggert
4015f93d30 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.
2010-10-13 22:41:17 -07:00
Paul Eggert
34ef0a01f0 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
59e2e55d0f 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.
2010-10-13 22:41:13 -07:00
Jim Meyering
71a3fd73a1 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.
2010-10-13 11:20:18 +02:00
Paul Eggert
9300fffcb5 tests: fix rand-isaac test
* gl/tests/test-rand-isaac.c (main): Fix swapped arguments to strtol.
2010-10-13 09:03:41 +02:00
Pádraig Brady
61b77891c2 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.
2010-10-12 11:41:17 +01:00
Jim Meyering
9f4744534f build: update gnulib to latest; to fix failing Solaris 5.11 test 2010-10-11 22:41:12 +02:00
Jim Meyering
938435ee30 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".
2010-10-11 19:50:44 +02:00
Jim Meyering
9af44d937e build: update gnulib, to fix OpenBSD test failures 2010-10-08 22:15:15 +02:00
Jim Meyering
fdfc5cf0c1 build: update gnulib to latest; for parse-datetime.y fix 2010-10-08 08:15:34 +02:00
Jim Meyering
ab9d2d2d46 build: update gnulib to latest, to avoid FreeBSD compilation failure:
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/23501
2010-10-08 08:15:34 +02:00
Pádraig Brady
758916b49e 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.
2010-10-07 20:08:16 +01:00
Jim Meyering
6483f0e1bd build: update gnulib to latest, for memmem/strstr fix 2010-10-06 09:31:21 +02:00
Jim Meyering
61d1c5cb3c 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.
2010-10-06 00:38:25 +02:00
Eric Blake
2f41f563d1 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.
2010-10-05 12:12:30 -06:00
Eric Blake
b7459696dc 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.
2010-10-05 09:07:58 -06:00
Eric Blake
4c286d341a 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.
2010-10-05 08:38:22 -06:00
Pádraig Brady
77063bf819 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.
2010-10-05 11:00:10 +01:00
Pádraig Brady
6ad89f2233 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_()
2010-10-04 16:54:22 +01:00
Jim Meyering
2006aeba9d maint: add a release prerequisite: check the NixOS/Hydra autobuilder
* README-release: Add a note to check the autobuilder.
2010-10-03 20:48:53 +02:00
Jim Meyering
c333ff1b0c build: update gnulib submodule to latest 2010-10-03 20:42:41 +02:00
Jim Meyering
5862b677f1 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.
2010-10-03 20:42:41 +02:00
Eric Blake
d4f304d721 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.
2010-10-01 15:43:23 -06:00
Eric Blake
7a5ecae996 stat: print SELinux context when available
* src/stat.c (default_format): Include context when present.
* NEWS: Update blurb explaining the replacement for -Z.
2010-10-01 15:27:27 -06:00
Eric Blake
2c14ec962a 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.
2010-10-01 15:24:39 -06:00
Eric Blake
9069af45e6 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.
2010-10-01 10:43:41 -06:00
Eric Blake
abe5c1f9bc 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.
2010-10-01 10:43:25 -06:00
Eric Blake
1129cb58ba maint: update sample test template
* tests/sample-test: Recommend modern idiom.
2010-10-01 10:20:39 -06:00
Pádraig Brady
288bfea72c 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
2010-10-01 16:30:31 +01:00
Eric Blake
6067d05228 maint: update gnulib
* gnulib: Update to latest.
* doc/coreutils.texi (date): Reflect new module name.
* doc/Makefile.am (EXTRA_DIST): Likewise.
* doc/.gitignore: Likewise.
2010-09-30 15:57:19 -06:00
Eric Blake
68062ca607 maint: update gnulib
* gnulib: Update to latest.
* bootstrap.conf (gnulib_modules): Reflect new module name.
* bootstrap: Resync from upstream.
2010-09-30 15:29:07 -06:00
Jim Meyering
65b50c6cdd 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"
2010-09-30 14:24:42 +02:00
Jim Meyering
724e993104 build: update gnulib submodule to latest 2010-09-29 16:27:15 +02:00
Pádraig Brady
3f48829c29 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.
2010-09-29 11:05:12 +01:00
Paul Eggert
704eedab03 build: update gnulib submodule to latest 2010-09-20 16:28:00 -07:00
Paul Eggert
9065006ccb 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.
2010-09-20 15:45:49 -07:00
Pádraig Brady
4727aab1b1 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.
2010-09-20 15:23:20 +01:00
Pádraig Brady
f57cb371fa 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.
2010-09-20 15:07:02 +01:00
Jim Meyering
0a238bcb87 build: update gnulib submodule to latest 2010-09-18 22:35:04 +02:00
Jim Meyering
390133df25 tests: sync tests/init.sh from gnulib
* tests/init.sh: Update from gnulib.
2010-09-18 21:32:18 +02:00
Jim Meyering
c12d83920f 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.
2010-09-18 21:32:18 +02:00
Jim Meyering
edc69f9158 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.
2010-09-18 21:22:36 +02:00
Eric Blake
2dd21704d6 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.
2010-09-17 15:57:49 -06:00
Eric Blake
95732b834e 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.
2010-09-17 08:44:31 -06:00
Eric Blake
3bb942c426 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.
2010-09-17 08:42:52 -06:00
Dmitry V. Levin
42681e9e4d 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>
2010-09-13 16:53:33 -06:00
Pádraig Brady
ea1b8bafc0 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.
2010-09-07 17:33:16 +01:00
Pádraig Brady
c52d220c30 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.
2010-09-07 14:02:56 +01:00
Pádraig Brady
437671accc 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/.
2010-09-07 10:49:55 +01:00
Jim Meyering
0e295c88bc build: update gnulib submodule to latest 2010-09-04 18:17:57 +02:00
Jim Meyering
041c9c472a 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]...
2010-09-04 14:24:57 +02:00
Jim Meyering
fc9d948d7e tac: suppress technically unneeded "free"
* src/tac.c (main): Guard final free with #ifdef lint.
Suggested by Paul Eggert.
2010-09-01 17:17:31 +02:00
Pádraig Brady
126d59542f 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.
2010-09-01 16:12:45 +01:00
Jim Meyering
777024889c 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>.
2010-08-28 19:28:20 +02:00
Pádraig Brady
c984948ff5 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.
2010-08-27 22:28:44 +01:00
Aaron Burgemeister
ddf6fb8686 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>
2010-08-27 22:16:10 +01:00
Eric Blake
872f6bb2ba maint: update to latest gnulib
* gnulib: Update to latest, to avoid warnings with latest autoconf.git.
2010-08-26 16:28:31 -06:00
Eric Blake
8ce8ac9de2 maint: avoid a hung 'make syntax-check' in VPATH build
* cfg.mk (sc_system_h_headers): Look for files in correct location.
2010-08-26 16:28:31 -06:00
Pádraig Brady
0380e4c98e 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.
2010-08-25 23:02:55 +01:00
Pádraig Brady
2ed90c4c9d stat: fix a small memory leak with %N
* src/stat.c (print_stat): Free the buffer returned
from areadlink_with_size().
2010-08-23 07:15:24 +01:00
Pádraig Brady
6d78c2df58 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
2010-08-15 01:15:51 +01:00
Ralf Wildenhues
4e01bd1dab doc: avoid a warning from newer texinfo
* doc/coreutils.texi (sort invocation): Use @pxref inside parentheses.
2010-08-15 01:11:35 +01:00
Bruno Haible
9e900e81db doc: improve the info on md5sum security weaknesses
* doc/coreutils.texi (md5sum invocation): Mention currently known
security problems. Don't recommend SHA-1 as alternative.
* man/md5sum.x (BUGS): Warn about the vulnerabilities and
reference the SHA-2 based alternatives.
Reported by Simon Josefsson
2010-08-15 01:02:44 +01:00
Paul Eggert
b5f9a6a176 * tests/misc/sort (use-nl): Fix comment to match the test case. 2010-08-13 15:57:52 -07:00
Paul Eggert
9899e6cd85 sort, who: prefer free+malloc to realloc when contents are irrelevant
This change was prompted by the previous one: I audited the code
looking for similar examples.  Too bad valgrind doesn't catch this.
* src/sort.c (check, mergefps): xrealloc -> free + xmalloc
* src/who.c (print_user): Likewise.
2010-08-10 20:25:56 -07:00
Paul Eggert
2050a5913b sort: free/xmalloc rather than xrealloc
* src/sort.c (compare_random): Use free/xmalloc rather than
xrealloc, since the old buffer contents need not be preserved.
Also, don't fail if the guessed-sized malloc fails.  Suggested by
Bruno Haible.
2010-08-10 13:49:57 -07:00
Eric Blake
7861d74ba8 build: update to latest gnulib
Fixes bug 6053 for NFS on HP-UX not recognizing ACL operations.

* gnulib: Update to latest version.
2010-08-10 09:44:28 -06:00
Jim Meyering
ec0d6ddb81 sort: avoid gcc warning: explicitly ignore strtold result
* src/sort.c: Include "ignore-value.h".
(debug_key): Use ignore_value.
2010-08-10 08:11:15 -07:00
Eric Blake
4e6bac4ca3 tests: silence 'make syntax-check'
* gl/tests/test-rand-isaac.c (main): Avoid warnings from
syntax-check.
2010-08-09 14:56:02 -06:00
Mike Frysinger
fbebc507da dircolors: add screen.rxvt & terminator to TERM list
Resolves bug#6793.
* src/dircolors.hin: Add screen.rxvt & terminator.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-08-09 11:32:04 -06:00
Dan Hipschman
24f1af88c7 ls: fix a test failure that should have been skipped
* tests/ls/readdir-mountpoint-inode: Check to see if skip_test_ is
called in a helper function via $() instead of mistakenly failing.
* THANKS: Update.
2010-08-09 08:52:12 -06:00
Paul Eggert
ad31a59a37 sort: speed up -R with long lines in hard locales
* src/sort.c (compare_random): Guess that the output will be
3X the input.  This avoids the overhead of calling strxfrm
twice on typical implementations.  Suggested by Bruno Haible.
2010-08-08 23:15:09 -07:00
Paul Eggert
b877ea4b3e sort: support all combinations of -d, -f, -i, -R, and -V
* NEWS: Document this.
* src/sort.c (getmonth): Omit LEN arg, as MONTH is now null-terminated.
(compare_random): Don't null-terminate keys, as caller now does that.
(compare_version): Remove.
(debug_key): Null-terminate string for getmonth.
(keycompare): Support combining -R with any of -d, -f, -i, -V.
Also, support combining -V with any of -d, -i.
(check_ordering_compatibility): Allow newly-supported combinations.
* tests/misc/sort (02q, 02r, 02s): New tests, for new combinations.
(incompat2): Now test -nR, since -fR are now compatible.
2010-08-06 21:30:50 -07:00
Paul Eggert
bdde34f958 sort: tune and refactor --debug code, and fix minor underlining bug
Formerly, the 'compare' function and some of its subroutines had a
debugging flag, which caused them to output underlines.  This
change refactors the code so that debugging output is
more-separated from the actual sorting.  In the process, the
change fixes a minor error in the debugging output.  The change
shortens the source code and executable size a tad, and improves
CPU performance by 2.4% on my platform with a simple benchmark (C
locale, line sorting, no debug).

* src/sort.c (long_double, strtold): Move back to prelude, since
they're now used by multiple functions again.
(unit_order): Move to file scope, since it's now used by two functions.
(find_unit_order, human_numcompare, numcompare, general_numcompare):
Remove endptr parameter.  All callers changed.
(human_numcompare): Args are now const pointers.
(getmonth): Endptr is now non-const.
(key_numeric): Move up, since it's needed earlier.
(debug_key): Take a line and a key as argument, instead of having
the caller figure out where the field is.
(debug_line): New function.
(keycompare, compare): Omit debug parameter; debug output now done
elsewhere.  All callers changed.
(write_line): Renamed from write_bytes; all callers changed.
Use debug_line (not 'compare') to output debug info.
Use a slightly faster check for whether output file is stdout.
(check): Don't do debugging output; it's not that useful here,
and it confuses the code.
(main): Check for incompatibility between -c and --debug.
Use standard diagnostic for incompatible options.
* tests/misc/sort-debug-keys: Fix test case: "--Mi-1" is not
a number, so its first character should not be underlined when
debugging a numeric sort.
2010-08-05 13:28:54 -07:00
Paul Eggert
2b49b140cc sort: -R now uses less memory on long lines with internal NULs
* lib/Makefile.am (libcoreutils_a_SOURCES): Remove xmemxfrm.c,
xmemxfrm.h.
* lib/memxfrm.c, lib/memxfrm.h, lib/xmemxfrm.c, lib/xmemxfrm.h: Remove.
* m4/memxfrm.m4: Likewise.
* m4/prereq.m4 (gl_PREREQ): Remove gl_MEMXFRM.
* po/POTFILES.in: Remove lib/xmemxfrm.c.
* src/sort.c: Don't include xmemxfrm.h.
(cmp_hashes): Remove.
(xstrxfrm): New function.
(compare_random): If a line contains NULs, don't create a big
buffer that contains the strxfrm output of each string in the line.
Instead, accumulate checksums and differences as we go, so that
at any one time we have to store at most the output of a single
strxfrm call when processing the line.  This removes the need for
an memxfrm function.
2010-08-04 16:10:59 -07:00
Paul Eggert
db48b36241 init.sh: work around trap limitation of some shells
* tests/init.sh (setup_): Move exit trap outside of shell function.
This patch is imported from gnulib.
2010-08-03 13:01:42 -07:00
Paul Eggert
a2cebacf97 sort: fix bug in --debug when \0 is followed by \t
* src/sort.c (debug_width): New function, which does not stop
counting tabs at \0, and also invokes mbsnwidth.  Stamp out strnlen!
(count_tabs): Remove.
(debug_key): Use debug_width instead of mbsnwidth and count_tabs.
* tests/misc/sort-debug-keys: Check that \0 and \t intermix.
2010-08-03 10:25:47 -07:00
Paul Eggert
94615d2acf sort: revert recent -h changes and use a more-conservative approach
* NEWS: Document changes to sort -h, which are now minor with
respect to the pre-July-30th version.
* doc/coreutils.texi (sort invocation): Likewise.  The
documentation now describes how -h comparison is done rather than
being vague with border cases.
* src/sort.c (long_double, strtold): Move back to general_numcompare.
(LD, compute_human): Remove.
(find_unit_order): Remove THOU_SEP parameter, since thousands
separators are now allowed by all callers.  Revert to previous
behavior of sorting by suffix, and returning the order rather than
2 * order + binary, since we no longer care whether binary powers
are being used.  However, treat all zeros the same, instead of
sorting 0M before 0G; this is more consistent with the desired
behavior of sorting -1G before -1M.
* tests/misc/sort (h1, h3, h6): Adjust to match mostly-reverted
behavior.  However, check that all zeros sort together.
* tests/misc/sort-debug-keys: Omit a "_", since the trailing "i"
in "1234Gi" is no longer part of the key.
2010-08-02 19:21:02 -07:00
Paul Eggert
abd040180e sort: -h now handles comparisons such as 6000K vs 5M and 5MiB vs 5MB
* NEWS: Document changes to sort -h.
* doc/coreutils.texi (sort invocation): Likewise.
* src/sort.c (long_double, strtold): Move to prelude, since they're
now used by multiple functions.
(LD): New macro.
(struct keyfield.iec_present): Remove this member.  All uses removed.
(check_mixed_SI_IEC): Remove.  This code was busted in the presence
of multiple threads, as it had a race condition.
(find_unit_order): Remove arg KEY; add arg THOU_SEP; arg ENDPTR is
now char ** rather than char const **.  Return an integer that
distinguishes decimal from binary powers.  Parse the number
consistently with the intersection of strtold and strnumcmp.
Set *ENDPTR unconditionally.
(compute_human): New static function.
(human_numcompare): Remove arg KEY.  Remove 'const' from other args.
Use strnumcmp if possible, but fall back on floating point if not.
(numcompare, general_numcompare): Arg EA is now char ** rather
than char const **.
(numcompare): Adjust to new find_unit_order signature and behavior.
(keycompare): Adjus to new human_numcompare signature.
* tests/misc/sort (h1, h3, h4, h6): Adjust to new behavior.
* tests/misc/sort-debug-keys: Likewise.
2010-07-30 01:53:46 -06:00
Paul Eggert
1bf73ebb97 sort: fix --debug display with very large offsets
* src/sort.c (mark_key): Don't assume offset <= INT_MAX.
Make the code a bit clearer when width != 0.
2010-07-27 11:01:48 -07:00
Paul Eggert
c8d3838681 sort: fix bug with EOF at buffer refill
* src/sort.c (fillbuf): Don't append eol unless the line is nonempty.
This fixes a bug that was partly but not completely fixed by
the aadc67dfdb commit (dated July 15).
* tests/misc/sort (realloc-buf-2): New test, which catches this
bug on 64-bit hosts.
2010-07-26 20:51:19 -07:00
Paul Eggert
247e239698 sort: omit some "inline"s
* src/sort.c (mergelines, queue_destroy, queue_init, queue_insert):
(queue_pop, write_unique, mergelines_node, check_insert):
(update_parent): No longer inline; these uses of "inline"
seemed unlikely to help performance much.
2010-07-26 18:38:36 -07:00
Paul Eggert
802542ff92 sort: don't assume ASCII when parsing K, M, G suffixes
* src/sort.c (find_unit_order): Don't assume ASCII.
2010-07-26 12:12:50 -07:00
Paul R. Eggert
074566823e sort: make struct heap private
* gl/lib/heap.c (struct heap): Move this here...
* gl/lib/heap.h (struct heap): ... from here, as outside code no
longer needs to access any of these members.
2010-07-25 21:18:35 -07:00
Paul R. Eggert
de949fc12d sort: omit unnecessary mutex unlock+lock; simplify heap access
* src/sort.c (queue_pop): Omit unnecessary unlock+lock after
pthread_cond_wait returns.  Don't access "count" member of the
heap; any efficiency gains should be quite minor, the access
complicates this code, and "count" should be private anyway.
2010-07-25 20:55:21 -07:00
Paul R. Eggert
1563ffd2b1 sort: omit 'restrict' in doubtful cases
* src/sort.c (lock_node, unlock_node, queue_destroy, queue_init):
(queue_pop):
Omit 'restrict'; it shouldn't help here, as these functions have just
one pointer parameter and don't access static storage.
(queue_insert, check_insert, update_parent): Omit 'restrict', as
the pointer types differ, and are not char * or unsigned char *,
and therefore can't alias.
(write_unique): Omit 'restrict', as the pointer types are all
read-only.
(merge_loop, sortlines): Omit 'restrict', as any performance
advantages are extremely unlikely and it's not worth cluttering
the code for that.
(struct thread_args): Omit 'restrict': this seems to be incorrect.
It's unlikely for 'restrict' to be correct inside a typedef.
2010-07-25 20:25:55 -07:00
Paul R. Eggert
001700f4a0 sort: omit unnecessary casts
* src/sort.c (inittables, general_numcompare, compare_nodes):
(queue_init, queue_pop): Omit casts that are not needed, typically
because they are between void * and some other pointer type.
2010-07-25 19:59:11 -07:00
Paul R. Eggert
48faad3748 sort: use more-consistent style with const
* src/sort.c (proctab_hasher, proctab_comparator, stream_open, xfopen):
(open_temp, zaptemp, struct_month_cmp, begfield, limfield):
(find_unit_order, human_numcompare, numcompare, general_numcompare):
(count_tabs, keycompare, compare, compare_nodes, lock_node):
(unlock_node, queue_destroy, queue_init, queue_insert, queue_pop):
(write_unique, mergelines_node, check_insert, update_parent):
(merge_loop, sortlines, struct thread_args, set_ordering):
Prefer the style "T const" to "const T".
* gl/lib/heap.h (struct heap, heap_alloc): Likewise.
* gl/lib/heap.c (heap_default_compare, heapify_down, heapify_up):
(heap_alloc): Likewise.
2010-07-25 19:25:09 -07:00
Paul Eggert
01ca128807 du: add NEWS entry for recent du -L fixes 2010-07-25 10:53:42 -07:00
Paul R. Eggert
77428214f1 du: tune, and fix some -L bugs with dangling or cyclic symlinks
* src/du.c (process_file): Avoid recalculation of hashes
and of file-exclusion for directories.  Do not descend into
the same directory more than once, unless -l is given; this is faster.
Calculate stat buffer lazily, since it
need not be computed at all for excluded files.
Count space if FTS_ERR, since stat buffer is always valid then.
No need for 'print' local variable.
(main): Use FTS_NOSTAT.  Use FTS_TIGHT_CYCLE_CHECK only when not
hashing everything, since process_file finds cycles on its own
when hashing everything.
* tests/du/deref: Add test cases for -L bugs.
2010-07-24 00:20:07 -07:00
Paul R. Eggert
9a3c600f11 tests/misc/sort-merge-fdlimit: don't assume -R opens /dev/urandom
* tests/misc/sort-merge-fdlimit: This test was written assuming that
-R typically opens /dev/urandom, but that's no longer the case.
Redo test to specify a random source; this resurrects the point of
checking for file descriptor exhaustion.  Also try plain -R, since
that implementation may change in the future too.
2010-07-23 23:44:25 -07:00
Paul R. Eggert
df906d2e75 randread: run 2x faster on 64-bit hosts, don't assume no padding bits
* gl/lib/rand-isaac.c: 	Remove the I/O; this belongs elsewhere.
Add support for ISAAC64.  Port to hosts with padding bits.
Add self to author list.  Include <limits.h>, for CHAR_BIT.
Don't include string.h, sys/time.h, unistd.h.
(min, just): New functions.
(IF32): New macros.
(ind, ISAAC_STEP, isaac_refill, mix, isaac_init, isaac_seed):
Add support for ISAAC64.  Port to hosts with padding bits.
(ind): Now an inline function rather than a macro; no need for it
to be a macro with modern compilers.
(ISAAC_STEP): Renamed from isaac_step, since it's not function-like.
Don't bother to pass args that are always the same.  All uses changed.
(ISAAC_STEP, ISAAC_SEED): Move to inside the only function body
that can use it.
(ISAAC_MIX): Renamed from isaac_mix, since it's now a macro and is
no longer function-like.  Don't bother saving and restoring state;
no longer needed now that we're not a function.  All uses changed.
(isaac_seed_start, isaac_seed_data, isaac_seed_finish): Remove.
(isaac_seed): Take just the one arg; the caller now sets s->m.
* gl/lib/rand-isaac.h: Use _GL_RAND_ISAAC_H to protect, instead
of RAND_ISAAC_H.  Try out " #" rather than "# " for indenting.
(ISAAC_BITS_LOG, ISAAC_BITS): New macros.
(ISAAC_WORDS_LOG): Renamed from ISAAC_LOG.
(isaac_word): New type.  All uses of uint32_t changed to isaac_word,
to support ISAAC64.
(struct isaac_state): Rename member MM to M, and make it public.
(isaac_seed, isaac_refill): Adjust to new API.
* gl/lib/randread.c: Include sys/time.h.
(get_nonce): New function, containing the nonce stuff that used
to be in rand-isaac.c but better belongs here.
(randread_new): Use it.
* gl/modules/randread (Depends-on): Add inline.
* gl/modules/randread-tests: New file.
* gl/tests/test-rand-isaac.c: New file.
2010-07-23 15:08:36 -07:00
Pádraig Brady
47076e3c7c provide POSIX_FADV_SEQUENTIAL hint to appropriate utils
Following on from commit dae35bac, 01-03-2010,
"sort: inform the system about our input access pattern"
apply the same hint to all appropriate utils.
This currently gives around a 5% speedup for reading
large files from fast flash devices on GNU/Linux.

* src/base64.c: Call fadvise (..., FADVISE_SEQUENTIAL);
* src/cat.c: Likewise.
* src/cksum.c: Likewise.
* src/comm.c: Likewise.
* src/cut.c: Likewise.
* src/expand.c: Likewise.
* src/fmt.c: Likewise.
* src/fold.c: Likewise.
* src/join.c: Likewise.
* src/md5sum.c: Likewise.
* src/nl.c: Likewise.
* src/paste.c: Likewise.
* src/pr.c: Likewise.
* src/ptx.c: Likewise.
* src/shuf.c: Likewise.
* src/sum.c: Likewise.
* src/tee.c: Likewise.
* src/tr.c: Likewise.
* src/tsort.c: Likewise.
* src/unexpand.c: Likewise.
* src/uniq.c: Likewise.
* src/wc.c: Likewise, unless we don't actually read().
2010-07-22 01:04:47 +01:00
Pádraig Brady
63b5e81648 fadvise: new module providing a simpler interface to posix_fadvise
* bootstrap.conf: Include the new module
* gl/lib/fadvise.c: Provide a simpler interface to posix_fadvise.
(fadvise): Provide hint to the whole file associated with a stream.
(fdadvise): Provide hint to the specific portion of a file
associated with a file descriptor.
* gl/lib/fadvise.h: Redefine POSIX_FADV_* to FADVISE_* enums.
* gl/modules/fadvise: New file.
* m4/jm-macros.m4: Remove the no longer needed posix_fadvise check.
* .x-sc_program_name: Exclude test-fadvise.c from this check.
* gl/tests/test-fadvise (main): New test program.
* gl/modules/fadvise-testss: A new index to reference the tests.
* src/sort.c (stream_open): Use the new interface.
* src/dd.c (iwrite): Likewise.
2010-07-22 01:03:48 +01:00
Mike Frysinger
c88cfffb6c build: support fully excluding stdbuf from the build
* configure.ac (optional_pkglib_progs): Only update
after the main programs have been selected, so that
libstdbuf.so can be excluded if stdbuf also is.
2010-07-22 00:34:04 +01:00
Paul R. Eggert
c1d8e6e458 randread: use /dev/urandom to seed, not just getpid etc
* gl/lib/rand-isaac.c (isaac_seed_start): New arg SEEDED.
(isaac_seed): New args FD and BYTES_BOUND.  Read from FD if possible.
Don't bother with low-quality sources if FD has enough bytes.
* gl/lib/rand-isaac.h: New size_t arg for isaac_seed.
* gl/lib/randread.c: Include fcntl.h, unistd.h.
(NAME_OF_NONCE_DEVICE): New #define.
(nonce_device): New static var.
(randread_new): Use nonce device if available.
2010-07-20 09:51:12 -07:00
Paul R. Eggert
e5444fa2a7 sort: -R no longer disables multithreading
* src/sort.c (random_md5_state): New static var.
(random_md5_state_init): New function, to initialize random_md5_state.
(random_state, randread_source): Remove.
(cmp_hashes): Use random_md5_state rather than random_state.
Break ties using memcmp, not by getting more randomness.
If MD5 collisions turn into a problem in practice, we should
simply use a better checksum.
(main): If -R is given, call random_md5_state_init rather than
going single-threaded.
2010-07-19 10:48:00 -07:00
Paul R. Eggert
e7523efb7d randread: don't require -lrt
Programs like 'sort' were linking to -lrt in order to get
clock_gettime, but this was misguided: it wasted considerable
resources while gaining at most 10 bits of entropy.  Almost nobody
needs the entropy, and there are better ways to get much better
entropy for people who do need it.
* gl/lib/rand-isaac.c (isaac_seed): Include <sys/time.h> not
"gethrxtime.h".
(isaac_seed): Use gettimeofday rather than gethrxtime.
* gl/modules/randread (Depends-on): Depend on gettimeofday
and not gethrxtime.
* src/Makefile.am (mktemp_LDADD, shred_LDADD, shuf_LDADD, sort_LDADD):
(tac_LDADD): Omit $(LIB_GETHRXTIME); no longer needed.
2010-07-16 15:49:05 -07:00
Paul R. Eggert
78e6fb0489 sort: add a test case for the sort -u bug
* tests/Makefile.am (TESTS): Add misc/sort-unique.
* tests/misc/sort-unique: New file.
2010-07-15 18:13:55 -07:00
Paul R. Eggert
c580983f70 sort: fix a bug with sort -u and xmemcoll0, and tune keycompare
* src/sort.c (keycompare): Use xmemcoll0, as it avoids
a couple of stores.
(write_bytes): Leave the buffer the way we found it,
as it might be used again for a later comparison,
if -u is used.
2010-07-15 16:24:38 -07:00
Pádraig Brady
aadc67dfdb sort: fix a bug when sorting unterminated lines
* src/sort.c (fillbuf): The previous commit incorrectly
terminated the buffer when the last line of input
didn't contain a terminating character.
2010-07-15 12:09:33 +01:00
Chen Guo
b084d6bcb5 sort: speed up default full line sorting
Don't write NUL after the comparison buffers on each compare,
which increases performance by about 3% for short lines
on a pentium-m with gcc-4.4.1

* src/sort.c: (fillbuf): Delimit input items with NUL.
(write_bytes): Restore the item delimiter char which was
replaced with NUL in fillbuf().
2010-07-15 01:10:12 +01:00
Jim Meyering
c5e350ec56 heap_alloc: avoid integer overflow
* gl/lib/heap.c (heap_alloc): Use xnmalloc rather than xmalloc,
to avoid pathological overflow.
2010-07-14 11:05:50 -05:00
Paul R. Eggert
66af887e57 maint: omit $(POW_LIB) when linking, as this is no longer needed
* src/Makefile.am (printf_LDADD, seq_LDADD, sleep_LDADD, sort_LDADD):
(tail_LDADD, uptime_LDADD): Omit $(POW_LIB), as it's no longer
needed due to recent gnulib changes, where the strtod module no
longer uses the pow function.  strtold needs pow only because it's
sometimes aliased to strtod.  See
http://lists.gnu.org/archive/html/bug-gnulib/2010-07/msg00076.html
2010-07-14 15:45:08 +01:00
Pádraig Brady
4fe3860ebc build: update gnulib submodule to latest; update bootstrap, too
* gnulib: Update for xmemcoll0 and fix for systems without pthreads
* bootstrap: Update for translation project sync fix
2010-07-14 12:16:48 +01:00
Pádraig Brady
4332538dbb maint: reorganize latest NEWS
* NEWS: Add another blank line before the previous version.
(Bug fixes): Move to the start.
(Changes in behavior): Add the item about the du mem usage change
from the "New features" section.
2010-07-13 19:05:31 +01:00
Pádraig Brady
f8574063d5 maint: heap.c: simplify dynamic allocations
* gl/lib/heap.c (heap_alloc): Use the fact that the xalloc
routines will not return NULL.  Also remove the redundant
temporary variables.
(heap_insert): From Jim Meyering, use x2nrealloc() which
is simpler while handling overflow and increasing the
size more efficiently.  This reallocation is currently
unused by coreutils in any case as it preallocates enough.
2010-07-13 16:51:38 +01:00
Chen Guo
9face836f3 sort: parallelize internal sort
This patch is by Gene Auyeung, Chris Dickens, Chen Guo, and Mike
Nichols, based off of a patch by Paul Eggert, Glen Lenker, et. al.,
with a basic heap implementation based off of the GDSL heap,
originally by Nicolas Darnis.

The number of sorts done in parallel is limited to the number
of available processors by default, or can be further restricted
with the --parallel option.

On a dual-die, 8 core Intel Xeon, results show sorting with
8 threads is almost 4 times faster than using a single thread.
Timings when sorting a 96MB file:
THREADS     TIME (s)
1            5.10
2            2.87
4            1.75
8            1.31

Single threaded sorting has also been improved,
especially for cheaper comparison operations:
COMMAND             BEFORE (s)  AFTER (s)
sort                 8.822       8.716
sort -g             10.336      10.222
sort -n              3.077       2.961
LANG=C sort          2.169       2.066

* bootstrap.conf: Add heap, pthread.
* coreutils.texi (sort): Describe the new --parallel option.
* gl/lib/heap.c: New file. Very basic heap implementation.
* gl/lib/heap.h: New file.
* gl/modules/heap: New file.
* src/Makefile.am: Add LIB_PTHREAD.
* src/sort.c: Include heap.h, nproc.h, pthread.h.
(MAX_MERGE): New macro.
(SUBTHREAD_LINES_HEURISTIC, PARALLEL_OPTION): New constants.
(MERGE_END, MERGE_ROOT): New constants.
(struct merge_node): New struct.
(struct merge_node_queue): New struct.
(sortlines temp): Remove declaration.
(usage, long_options, main): New option, --parallel.
(specify_nthreads): New function.
(mergelines): New signature, to emphasize the fact that the HI area
must be part of the destination.  All callers changed.
(sequential_sort): New function, renamed from sortlines. Merge in
the functionality of sortlines_temp.
(compare_nodes): New function.
(lock_node, unlock_node): New functions.
(queue_destroy): New function.
(queue_init): New function.
(queue_insert): New function.
(queue_pop): New function.
(write_unique): New function.
(mergelines_node): New function.
(check_insert): New function.
(update_parent): New function.
(merge_loop): New function.
(sortlines): Rewrite to support and use parallelism, with a new
signature. All callers changed.
(struct thread_args): New struct.
(sortlines_thread): New function.
(sortlines_temp): Remove.
(sort): New argument NTHREADS. All uses changed. Output moved to
mergelines_node.
(main): disable threading if we are sorting at random.
* tests/Makefile.am (TESTS): Add misc/sort-benchmark-random.
* tests/misc/sort-benchmark-random: New file.

Signed-off-by: Pádraig Brady <P@draigBrady.com>
2010-07-13 01:44:46 +01:00
Jim Meyering
f6e8c18f8d di-set, ino-map: adjust a type, improve readability
* gl/lib/ino-map.c (ino_hash): Declare "i" as unsigned int.
Use an intermediate variable for the for-loop upper bound,
so it's a little more readable.  Adjust comment.
* gl/lib/di-set.c (di_ent_hash): Likewise.
2010-07-13 02:20:10 +02:00
Paul R. Eggert
335b59b962 dd: also spell out size on memory exhaustion
* src/dd.c (dd_copy): Use requested blocksize (not adjusted) in
diagnostic, to forestall user complaints that the numbers don't
match exactly.  Report both exact and human-readable sizes, using
a message format that is consistent with both "BBBB bytes (N XB)
copied" in dd.c and "memory exhausted" in lib/xmalloc.c.
2010-07-12 17:13:13 -07:00
Paul Eggert
e5ca54448e chcon, chmod, chown, du: don't translate "%s"
* src/chcon.c (process_file): Replace _("%s") with "%s".
* src/chmod.c (process_file): Likewise.
* src/chown-core.c (change_file_owner): Likewise.
* src/du.c (process_file): Likewise.
2010-07-09 13:56:05 -07:00
Paul Eggert
db4df7dda6 du: avoid spurious warnings with 64-bit gcc -W
Problem reported by Jim Meyering in:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6524#74
* gl/lib/di-set.c (di_ent_hash): Rework so that the compiler does
not incorrectly warn about shifting by 64-bits in unreachable code.
* gl/lib/ino-map.c (ino_hash): Likewise.
2010-07-06 16:16:50 -07:00
Paul Eggert
fb1a26c3f6 du: Hash with a mechanism that's simpler and takes less memory.
* gl/lib/dev-map.c, gl/lib/dev-map.h, gl/modules/dev-map: Remove.
* gl/lib/ino-map.c, gl/lib/ino-map.h, gl/modules/ino-map: New files.
* gl/modules/dev-map-tests, gl/tests/test-dev-map.c: Remove.
* gl/modules/ino-map-tests, gl/tests/test-ino-map.c: New files.
* gl/lib/di-set.h (struct di_set): Renamed from struct di_set_state,
and now private.  All uses changed.
(_ATTRIBUTE_NONNULL_): Don't assume C99.
(di_set_alloc): Renamed from di_set_init, with no size arg.
Now allocates the object rather than initializing it.
For now, this no longer takes an initial size; we can put this
back later if it is needed.
* gl/lib/di-set.c: Include hash.h, ino-map.h, and limits.h instead of
stdio.h, assert.h, stdint.h, sys/types.h (di-set.h includes that
now), sys/stat.h, and verify.h.
(N_DEV_BITS_4, N_INO_BITS_4, N_DEV_BITS_8, N_INO_BITS_8): Remove.
(struct dev_ino_4, struct dev_ino_8, struct dev_ino_full): Remove.
(enum di_mode): Remove.
(hashint): New typedef.
(HASHINT_MAX, LARGE_INO_MIN): New macros.
(struct di_ent): Now maps a dev_t to a inode set, instead of
containing a union.
(struct dev_map_ent): Remove.
(struct di_set): New type.
(is_encoded_ptr, decode_ptr, di_ent_create): Remove.
(di_ent_hash, di_ent_compare, di_ent_free, di_set_alloc, di_set_free):
(di_set_insert): Adjust to new representation.
(di_ino_hash, map_device, map_inode_number): New functions.
* gl/modules/di-set (Depends-on): Replace dev-map with ino-map.
Remove 'verify'.
* gl/tests/test-di-set.c: Adjust to the above changes to API.
* src/du.c (INITIAL_DI_SET_SIZE): Remove.
(hash_ins, main): Adjust to new di-set API.
2010-07-06 14:58:48 -07:00
Jim Meyering
d5427265e3 stat: getfilecon failure now evokes nonzero exit status
Add comments and adjust interfaces to allow low-level failure
to propagate out to callers.
* src/stat.c (out_file_context): Return bool, not void,
so we can tell callers about failure.
(print_statfs, print_stat, print_it): Propagate failure to caller.
(do_statfs): Propagate print_it failure to caller.
(do_stat): Likewise.
I nearly forgot to update do_stat to propagate print_it failure,
and it compiled just fine in spite of that.  To prevent possibility
of a repeat, I've marked each function that returns non-void with
ATTRIBUTE_WARN_UNUSED_RESULT.
2010-07-05 17:39:51 +02:00
Jim Meyering
61aae73f54 system.h: define ATTRIBUTE_WARN_UNUSED_RESULT
* src/system.h (ATTRIBUTE_WARN_UNUSED_RESULT): Define.
2010-07-05 17:39:46 +02:00
Pádraig Brady
09fcf494a1 tests: make tests requiring a delay to pass, more robust
* tests/init.cfg: Introduce a retry_delay_() function to
repeatedly call a test function that requires a delay.
This delay can now be shorter for the common case on fast
systems, but will double until a configurable limit it reached
before failing on slower systems.
* tests/dd/reblock: Use retry_delay_.
* tests/misc/cat-buf: Likewise.
* tests/misc/stdbuf: Likewise.
* tests/tail-2/F-vs-rename: Likewise.
* tests/tail-2/flush-initial: Likewise.
* tests/tail-2/tail-n0f: Likewise.
* tests/tail-2/wait: Likewise.
* test/dd/misc: Comment that delay is needed to trigger failure.
2010-07-05 15:06:07 +01:00
Paul Eggert
1d95457b3e doc: Add advice about ChangeLogs and synchronizing submodules
* README-hacking: Update accordingly.
2010-07-04 15:44:48 -07:00
Jim Meyering
98d48bb0e9 du: increase the initial dev-inode set size
* src/du.c (INITIAL_DI_SET_SIZE): Increase to the prime just under
1024.  This gives a speed-up of about 2% when processing a tree
containing 100,000 files, each with a link count greater than 1,
all pointing to files in some other tree.
2010-07-04 11:15:48 +02:00
Jim Meyering
4cb8268024 du: use less than half as much memory when tracking hard links
When processing a hard-linked file, du must keep track of the file's
device and inode numbers in order to avoid counting its storage
more than once.  When du would process many hard linked files --
as are created by some backup tools -- the amount of memory required
for the supporting data structure could become prohibitively large.
This patch takes advantage of the fact that the amount of information
in the numbers of the typical dev,inode pair is far less than even
32 bits, and hence usually fits in the space of a pointer, be it
32 or 64 bits wide.  A typical du traversal examines files on no
more than a handful of distinct devices, so the device number can
be encoded in just a few bits.  Similarly, few inode numbers use
all of the high bits in an ino_t.  Before, we would represent the
dev,inode pair using a naive struct, and allocate space for each.
Thus, an entry in the hash table consisted of a pointer (to that
struct) and a "next" pointer.  With this change, we encode the
dev,inode information and put those bits in place of the pointer,
and thus do away with the need to allocate additional space for
each dev,inode pair.

* src/du.c: Include "di-set.h".
Don't include "hash.h"; it's no longer used.
(INITIAL_DI_SET_SIZE): Define.
(di_set): New global, to replace "htab".
(entry_hash, entry_compare, hash_init): Remove functions.
(hash_ins): Use di-set functions, rather than ones from the hash module.
(main): Likewise.
* bootstrap.conf (gnulib_modules): Add the new di-set module.
* NEWS (New features): Mention it.
2010-07-04 08:40:40 +02:00
Jim Meyering
f42496b72b di-set: manipulate sets of dev/inode pairs efficiently
* gl/lib/di-set.c: Implementation.
* gl/lib/di-set.h: Declarations.
* gl/modules/di-set: Define module.
* gl/modules/di-set-tests: Define test module.
* gl/tests/test-di-set.c: Likewise.
2010-07-04 08:40:40 +02:00
Jim Meyering
6357909ee6 dev-map: map device number to small non-negative
* gl/lib/dev-map.c: New file.
* gl/lib/dev-map.h: Declarations.
* gl/modules/dev-map: Define primary modules.
* gl/modules/dev-map-tests: Define test module.
* gl/tests/test-dev-map.c: Test it.
2010-07-04 08:40:40 +02:00
Paul Eggert
efe53cc72b du: don't miscount duplicate directories or link-count-1 files
* NEWS: Mention this.
* src/du.c (hash_all): New static var.
(process_file): Use it.
(main): Set it.
* tests/du/hard-link: Add a couple of test cases to help make
sure this bug stays squashed.
* tests/du/files0-from: Adjust existing tests to reflect
change in semantics with duplicate arguments.
2010-07-03 10:28:08 +02:00
Jim Meyering
d27d6d371f build: update gnulib submodule to latest; update bootstrap, too
* gnulib: Update to latest, for hash.c improvement.
* bootstrap: Update from gnulib, too.
2010-07-02 08:38:15 +02:00
Pádraig Brady
1af81dfb4d cp: add an option to only copy the file attributes
* src/copy.c (copy_attr): A new function which merges copy_attr_by_fd
and copy_attr_by_name.  Also display all errors when --attributes-only
* src/copy.c (copy_reg): Skip copying the file contents if specified.
Refactor the SELinux error handling code a little and display all
SELinux errors when only copying attributes.
* src/copy.h (struct cp_options): Add a data_copy_required boolean
* src/cp.c (main): Default to copying data but don't if specified
* src/install.c: Default to copying data
* src/mv.c: Likewise
tests/cp/reflink-perm: Add a test to check that --attributes-only
does not copy data
* tests/cp/acl: Likewise. Also refactor to remove redundant
acl manipulation
* doc/coreutils.texi (cp invocation): Describe the new option
* NEWS: Mention the new feature
2010-07-01 14:33:27 +01:00
Pádraig Brady
8aa15b2be2 ls: use the POSIX date style when the locale does not specify one
Previously we defaulted to "long-iso" format in locales without
specific format translations, like the en_* locales for example.
This reverts part of commit 6837183d, 08-11-2005, "ls ... acts like
--time-style='posix-long-iso' if the locale settings are messed up"
* src/ls.c (decode_switches): Only use the ISO format when specified.
* NEWS: Mention the change in behavior.
Reported by Daniel Qarras at http://bugzilla.redhat.com/525134
2010-07-01 13:12:52 +01:00
Jim Meyering
7336920dd0 tests: fail rather than infloop in tail's inotify-rotate test
* tests/tail-2/inotify-rotate: Switch to new init.sh-based framework.
(grep_timeout): New function.
Use it in place of open-coded loops that might infloop.
This was prompted by my encountering an inexplicable, and so far
unreproducible, infloop in the code that was waiting for "b" to
appear in "out".
2010-06-30 18:12:12 +02:00
Jim Meyering
b062bbd947 tests: move most helper functions from test-lib.sh to new init.cfg
From there, they will be used by both test-lib.sh (as we phase it out)
and the newer init.sh, to which all tests will migrate.
* tests/test-lib.sh: Move most functions from here, ...
* tests/init.cfg: ...to here.  New file.
* tests/Makefile.am (EXTRA_DIST): Add init.cfg.
2010-06-30 18:11:50 +02:00
Jim Meyering
cfee734a41 tests: sync tests/init.sh from gnulib
* tests/init.sh: Update from gnulib.
2010-06-30 18:11:50 +02:00
Jim Meyering
5b3adc0d42 doc: df, du, ls: improve --blocksize description in --help
* src/du.c (usage): Print better --blocksize description.
Prompted by Samuel Thibault in <http://bugs.debian.org/353100>.
* src/df.c (usage): Likewise.
* src/ls.c (usage): Likewise.
2010-06-29 07:06:31 +02:00
Pádraig Brady
91b7b7cf7e doc: reference POS syntax in --help for sort --key
* src/sort.c (usage): Reference the additional description
of the POS syntax.
2010-06-29 01:20:23 +01:00
Benno Schulenberg
825a92240e ln: print a clearer error message when linking fails 2010-06-27 08:47:24 +02:00
Jim Meyering
13f323786c stat: remove support for deprecated --context (-Z) option
* src/stat.c (main): Remove support for the --context (-Z) option.
In upstream releases this option has always been a no-op.  It was
first ignored for compatibility, and since the June 2008 commit,
574f7614 (coreutils-7.0), its use has evoked a warning.
* NEWS (Changes in behavior): Mention it.
2010-06-22 11:42:34 +02:00
Jim Meyering
1419af8243 doc: fix comm's --help output so we generate a better man page
* src/comm.c (usage): Don't align example comments in --help output,
since the extra space (sequence of two spaces) there would be
interpreted by help2man and induce an unwanted line break
in the resulting man page.  Reported by Jari Aalto.
2010-06-21 08:55:22 +02:00
Eric Blake
9f75771efb maint: ignore another gnulib generated file
* .gnulib: Exclude lib/c++defs.h.
2010-06-14 15:49:46 -06:00
Eric Blake
879e8261bb cat: improve documentation
* src/cat.c (usage): Clarify that -b overrides -n.
* doc/coreutils.texi (cat invocation): Likewise.
* THANKS: Update.
Suggested by Chas. Owens, in bug 6383.
2010-06-14 15:42:24 -06:00
Jim Meyering
ceb84598d8 doc: dd: discourage use of very large block sizes
* doc/coreutils.texi (dd invocation): Warn against using a very large
block size.  Suggested by Imre Péntek.
2010-06-14 22:36:28 +02:00
Jim Meyering
280b15249c dd: print a better diagnostic for an invalid block size
* src/dd.c (dd_copy): Give a better diagnostic than
"dd: memory exhausted" for an over-large bs= block size setting.
Same for ibs= and obs=.  Reported by Imre Péntek in
http://bugs.launchpad.net/ubuntu/+source/coreutils/+bug/591969
2010-06-14 22:34:42 +02:00
Jim Meyering
d9ddd4c503 build: update gnulib submodule to latest 2010-06-11 11:32:31 +02:00
Jim Meyering
155c8148ae build: don't let a large sparse temporary file cause "make dist" to fail
* bootstrap.conf (bootstrap_epilogue): Replace the offending grep
command from po/Makefile.in.in's $(DOMAIN).pot-update rule.
2010-06-11 08:01:18 +02:00
Jim Meyering
ea615bf8cd ls: avoid just-introduced buffer overrun
* src/ls.c (gobble_file): Revert part of my preceding change,
to avoid clobbering stack.
2010-06-10 17:53:46 +02:00
Jim Meyering
9e7edd8467 maint: adjust INT_BUFSIZE_BOUND usage for maintainability
* src/tail.c (xlseek): Give INT_BUFSIZE_BOUND a variable name,
not a type name.
* src/ls.c (gobble_file, format_user_or_group_width): Likewise.
* src/head.c (elide_tail_bytes_pipe): Likewise.
(elide_tail_lines_seekable, main): Likewise.
[This change is not complete -- there are doubtless other uses
that can be updated in the same way.]
2010-06-08 13:16:26 +02:00
Jim Meyering
ad89ea6a0d sort: avoid unnecessary use of sprintf
sprintf is relatively heavy-weight.
* src/sort.c (key_warnings): Use umaxtostr and stpcpy rather
than sprintf.
Also, replace each INT_BUFSIZE_BOUND "type_name" argument
with the equivalent variable name.  More maintainable that way.
2010-06-08 13:16:26 +02:00
Eric Blake
04bed02096 dirname: tweak summary wording
* doc/coreutils.texi (dirname invocation): Reword to be more
precise.
* src/dirname.c (usage): Likewise.
* THANKS: Update.
Reported by Filipus Klutiero, bug 6175.
2010-06-08 04:28:19 -06:00
Jim Meyering
dfad4755ca doc: mention the new coreutils@ mailing lists
* README-package-renamed-to-coreutils: Mention the new mailing list
and a mirror.
2010-06-02 17:41:52 +02:00
Jim Meyering
d5a5d83094 touch: remove support for --file=REF_FILE option
* src/touch.c (main): Remove support for the deprecated, long-named
--file option, which is an alternate name for --reference (-r).
That option was undocumented with the arrival of --reference, in
the 1995-10-29 commit, 8b92864e1d.  Since the 2009-02-09 commit,
ed85df444a, use of --file has elicited a warning.  Not only was
this code due for removal, but the long-name-use-detecting code
was buggy in that it would use a stale or uninitialized "long_idx",
as reported by Robin H. Johnson in http://bugs.gentoo.org/322421.
* NEWS (Changes in behavior): Mention it.
2010-06-02 17:14:10 +02:00
Jim Meyering
c0cfa0defe maint: make spacing around "=" consistent, even in IF_LINT
E.g.,
  -  size_t desired_width IF_LINT (= 0);
  +  size_t desired_width IF_LINT ( = 0);
Use this command:
  g grep -l IF_LINT | grep '\.[ch]$' \
    | xargs perl -pi -e 's/(IF_LINT \()= /$1 = /'
2010-05-31 11:02:21 +02:00
Jim Meyering
da7a704cd3 maint: replace each "for (;;)" with "while (true)"
Run this command:
  git ls-files | grep '\.[ch]$' \
    | xargs perl -pi -e 's/for \(;;\)/while (true)/g'
...except for randint.c, which does not include stdbool.h.
In that case, use "while (1)".
* gl/lib/randint.c (randint_genmax): Use "while (1)" for infloops.
* src/cat.c (simple_cat, cat): Use "while (true)" for infloops.
* gl/lib/randread.c (readsource, readisaac): Likewise.
* src/copy.c (copy_reg): Likewise.
* src/csplit.c (record_line_starts, process_regexp): Likewise.
* src/cut.c (set_fields): Likewise.
* src/dd.c (iread, parse_symbols): Likewise.
* src/df.c (find_mount_point, main): Likewise.
* src/du.c (main): Likewise.
* src/expand.c (expand): Likewise.
* src/factor.c (factor_using_division, do_stdin): Likewise.
* src/fmt.c (get_space): Likewise.
* src/ls.c (decode_switches): Likewise.
* src/od.c (main): Likewise.
* src/pr.c (main, read_line): Likewise.
* src/shred.c (dopass, genpattern): Likewise.
* src/sort.c (initbuf, fillbuf, getmonth, keycompare): Likewise.
* src/split.c (bytes_split, lines_split): Likewise.
* src/tac.c (tac_seekable): Likewise.
* src/test.c (and, or): Likewise.
* src/tr.c (squeeze_filter, main): Likewise.
* src/tsort.c (search_item): Likewise.
* src/unexpand.c (unexpand): Likewise.
* src/uniq.c (main): Likewise.
* src/yes.c (main): Likewise.
2010-05-31 11:02:21 +02:00
Jim Meyering
5591f19e9c maint: correct indentation of case_GETOPT_* macro uses
* src/base64.c (main): Correct indentation of syntactically
questionable case_GETOPT_HELP_CHAR and case_GETOPT_VERSION_CHAR macros.
* src/who.c (main): Likewise.
2010-05-31 11:02:21 +02:00
Jim Meyering
78c1111c00 stat: use gnulib's alignof module
* src/stat.c (alignof): Remove definition.
Instead, include "alignof.h", and sort the #include directives.
And get its definition from the gnulib module by that name:
* bootstrap.conf (gnulib_modules): Add alignof.
2010-05-31 11:02:21 +02:00
Jim Meyering
f385d97a41 tests: remove unnecessary single quotes in perl hash use: ->{'SYM'}
Run this command:
  git grep -l "limits->{'" \
    | xargs perl -pi -e "s/limits->{'(.*?)'}/limits->{\$1}/g"
* cfg.mk (sc_prohibit_perl_hash_quotes): New rule to match.
* tests/misc/join: Remove quotes.
* tests/misc/sort: Likewise.
* tests/misc/sort-merge: Likewise.
* tests/misc/test: Likewise.
* tests/misc/unexpand: Likewise.
* tests/misc/uniq: Likewise.
2010-05-31 10:59:11 +02:00
Pádraig Brady
200501052e truncate: improve handling of non regular files
Previously we copied `dd` and suppressed error messages
when truncating neither regular files or shared mem objects.
This was valid for `dd`, as truncation is ancillary to copying
it may also do, but for `truncate` we should display all errors.
Also we used the st_size from non regular files which is undefined,
so we display an error when the user tries this.

* src/truncate (do_truncate):  Error when referencing the size
of non regular files or non shared memory objects.  Display all
errors returned by ftruncate().
(main): Error when referencing the size of non regular files or
non shared memory objects.  Don't suppress error messages for
any file types that can't be opened for writing.
* tests/misc/truncate-dir-fail: Check that referencing the
size of a directory is not supported.
* tests/misc/truncate-fifo: Ensure the test doesn't hang
by using the `timeout` command.  Don't test the return from
running ftruncate on the fifo as it's system dependent as
to whether this fails or not.
NEWS: Mention the change in behavior.
Reported by Jim Meyering.
2010-05-29 10:45:13 +01:00
Pádraig Brady
81b7585ad1 truncate: support sizes relative to an existing file
* doc/coreutils.texi (truncate invocation): Mention that --reference
bases the --size rather than just setting it.
* src/truncate.c (usage): Likewise. Also remove the clause
describing --size and --reference as being mutually exclusive.
(do_truncate): Add an extra parameter to hold the size
of a referenced file, and use it if positive.
(main): Pass the size of a referenced file to do_truncate().
* tests/misc/truncate-parameters: Adjust for the new combinations.
* NEWS: Mention the change
Suggested by Richard W.M. Jones
2010-05-28 14:23:04 +01:00
Jim Meyering
d4201905ab tests: update help-version to work with parted, too
* tests/misc/help-version: Add init code for GNU Parted.
2010-05-26 11:33:53 +02:00
Jim Meyering
5d59808a65 maint: don't emit an extra newline in each of two diagnostics
* src/shuf.c (main): Remove a stray newline in a diagnostic.
* src/od.c (main): Likewise.
Detected via these:
  git grep -A1 'error *(.*,$' | grep -C1 '\\n"[,)]'
  git grep 'error *(.*;$' | grep '\\n"[,)]'
2010-05-25 18:05:29 +02:00
Jim Meyering
55db9a39a8 maint: remove unneeded double quotes on RHS of shell assignments
Run this command:
  git grep -l 'LC_[A-Z]*="' \
    | xargs perl -pi -e 's/(LC_[A-Z]*)="(.*?)"/$1=$2/'
* src/Makefile.am: Write LC_ALL=$$locale, not LC_ALL="$$locale".
* src/date.c (main): Similar, in a comment.
* tests/misc/sort-month: Write LC_ALL=$LOC, not LC_ALL="$LOC".
2010-05-25 12:32:03 +02:00
Pádraig Brady
6bc44b5feb maint: remove a redundant sort parameter from a test
* tests/misc/sort-month: Remove the -b option which
is redundant and ignored.
2010-05-24 13:00:35 +01:00
Pádraig Brady
63761c027c sort: adjust the leading blanks --debug warning
* src/sort.c (key_warnings): Always warn about significant leading
blanks when character offsets are specified, unless they key is
possibly a line offset, i.e. of the form -k1.x,1.y.  Also suppress
this warning if the user could be sorting right aligned indexes.
2010-05-24 12:12:24 +01:00
Jim Meyering
fdff32e183 maint: make copyright comment consistent with all others
* tests/misc/mktemp: Change punctuation to make copyright
paragraph consistent with all of the others.
2010-05-23 18:10:41 +02:00
Jim Meyering
28488c1214 tests: fix cp-a-selinux to skip cleanly upon mkfs failure
* tests/cp/cp-a-selinux: Initialize skip, to avoid a syntax error
in subsequent "test".
Remove redirect-to-/dev/null, now that output is always to a log file.
2010-05-21 20:21:18 +02:00
Jon Ringuette
2b8ecfa6f1 du: recognize -d N as equivalent to --max-depth=N
* NEWS (New features): Mention it.
* src/du.c (DEBUG_OPT): Remove.  Use long-named ---debug instead.
Commented out.
(MAX_DEPTH_OPTION): Remove.  Use 'd' instead.
(main): Insert literal "d:"; remove DEBUG_OPT.
* doc/coreutils.texi (du invocation): Add -d to indices.
* tests/du/max-depth: Exercise -d, too.
2010-05-19 07:28:16 +02:00
Jim Meyering
1be4f180f5 tests: exercise du's --max-depth option
* tests/Makefile.am (TESTS): Add du/max-depth.
* tests/du/max-depth: New file.
2010-05-19 07:28:16 +02:00
Pádraig Brady
9f1d4e3e6f tests: fix sort-debug-keys when fr_FR.utf8 not available
* tests/misc/sort-debug-keys: Correctly check for the absence
of the French UTF8 locale.
2010-05-18 23:44:34 +01:00
Jim Meyering
5e82d241d0 maint: fix the fs-magic-compare rule
* src/Makefile.am (fs-def): Sort definitions.
This is required by fs-magic-compare's use of join.
2010-05-17 16:10:24 +02:00
Jim Meyering
1173dcd632 tests: update init.sh from gnulib
* tests/init.sh: Update from gnulib.
2010-05-17 09:12:22 +02:00
Jim Meyering
fe953ad710 build: avoid a new -Wformat-induced warning
* src/sort.c (mark_key): Add a cast-to-int of a printf field width,
to placate -Wformat.
2010-05-17 09:09:28 +02:00
Pádraig Brady
9464ce2107 doc: fix sort info about version sort skipping blanks
* doc/coreutils.text (sort invocation): leading blanks are
significant for 'V'.
2010-05-16 01:28:32 +01:00
Pádraig Brady
03f6f32c41 sort: --debug: output data independent warnings and info
* src/sort.c (usage): Mention --debug can output warnings to stderr.
Also split the translatable string to aid translation.
(default_key_compare): A new function refactored from main(),
and now also called from the new key_warnings() function.
(key_to_opts): A new function refactored from incompatible_options(),
and now also called from the new key_warnings() function.
(key_numeric): A new function refactored to test if key is numeric.
(key_warnings): A new function to output warnings to stderr,
about questionable use of various options.  Currently it warns
about zero length keys and ineffective global options.
(incompatible_options): Refactor out key_to_opts()
(main): Use key_init() to initialize gkey.  Refactor out
default_key_compare().  Call key_warnings() in debug mode.
* doc/coreutils.texi (sort invocation): Mention that warnings
are output by --debug.
* tests/misc/sort-debug-warn: A new test for debug warnings.
* tests/Makefile.am: Reference the new test.
* NEWS: Mention the new feature
2010-05-16 01:08:33 +01:00
Pádraig Brady
144d6e5f53 tests: fix sort-debug-keys when fr_FR.utf8 not available
* tests/misc/sort-debug-keys: Don't verify (or even run)
the fr_FR tests when that locale is not available on the system.
2010-05-12 14:53:45 +01:00
Pádraig Brady
4f5732e27a sort: add a --debug option to highlight key extents
* src/sort (usage): Add description for --debug.
(write_bytes): Pass a line structure so it can subsequently
be passed to compare to highlight the keys when in debug mode.
Also transform TAB and NUL characters written to stdout so
that the highlighting in debug mode aligns correctly.
(human_numcompare): Pass an "endptr" so we can record the extent
of the number matched.
(general_numcompare): Likewise.
(find_unit_order): Likewise.
(getmonth): Likewise.
(numcompare): Likewise.  Note we reuse find_unit_order() for this,
which is a good enough approximation, and means we don't need to
change the strnumcmp() interface.
(check_mixed_SI_IEC): Return whether iec_present, so that can be
used to set the "endptr" in find_unit_order.  Also make the key
parameter optional, which will be the case from numcompare().
(count_tabs): A new function to determine how much to adjust
the mbswidth() values by (TABs don't have a width).
(mark_key): A new function to output the key highlighting to stdout.
(debug_key): A new function to determine the offset and width
of the key highlighting.
(key_compare): Pass the show_debug parameter so the key highlighting
is only displayed when explicitly called.  For each key type, set
the length (lena) and whether leading blanks are auto skipped (skipb)
which are then used by debug_key() to highlight the portion of the
key used in the comparison.
(compare): Pass the show_debug parameter so the key highlighting
is only displayed when explicitly called.  Call debug_key() to
highlight the last resort comparison.
(check): Output highlighting for disorder line to stdout.
(main): Process the --debug option and make it mutually exlusive
with the -o option as I don't see it useful there, even potentially
harmful if someone left a --debug in by mistake when updating a file.
Also restricting debug output to stdout, simplifies the logic
for dealing with temporary files.
* doc/coreutils.texi (sort invocation): Describe the --debug option,
and reference it from the --key description.
* tests/misc/sort-debug-keys: A new test for highlighting keys.
* tests/Makefile.am: Reference the new test.
* NEWS: Mention the new feature.
2010-05-12 13:30:37 +01:00
Jim Meyering
7e978a7b2d build: record the gettext-0.18 requirement also in configure.ac
* configure.ac: Require gettext-0.18 here, too.
2010-05-11 10:31:21 +02:00
Jim Meyering
844b2570b3 build: update gnulib submodule to latest
* tests/init.sh: Update from gnulib, to fix typo.
2010-05-11 09:51:16 +02:00
Jim Meyering
0c22e84156 build: record that when building from git, gettext-0.18 is required
* bootstrap.conf (buildreq): Require gettext-0.18.
2010-05-10 12:39:37 +02:00
Jim Meyering
d21812670b tests: avoid a new syntax-check failure
* .x-sc_prohibit_fail_0: Exempt tests/init.sh.
2010-05-10 11:47:27 +02:00
Jim Meyering
88e2f6c860 tests: provide a definition of gl_trap_ in cfg.mk
* cfg.mk (gl_trap_): Define here, now that it's gone from maint.mk.
* gnulib: Update to latest.
2010-05-10 11:45:40 +02:00
Jim Meyering
e080c8a1b0 tests: begin using init.sh
* tests/init.sh: New file.
* tests/Makefile.am (EXTRA_DIST): Add it here.
2010-05-10 11:33:31 +02:00
Jim Meyering
722173444a tests: update help-version
* tests/misc/help-version: Use init.sh, rather than test-lib.sh.
Add idutils' setup.
2010-05-09 21:22:21 +02:00
Jim Meyering
74f07c98d4 tests: move sc_prohibit_always-defined_macros to gnulib's maint.mk
* cfg.mk (sc_prohibit_always-defined_macros): Remove it from here.
* gnulib: Update to latest, for a maint.mk that includes that rule.
2010-05-09 18:54:33 +02:00
Jim Meyering
0f741381c4 tests: rename a syntax-check
* cfg.mk (sc_prohibit_always-defined_macros): Rename from
sc_always_defined_macros.
* .x-sc_prohibit_always-defined_macros: New file, renamed from...
* .x-sc_always_defined_macros: ...removed.
* Makefile.am (syntax_check_exceptions): Rename here, too.
2010-05-09 18:47:34 +02:00
Jim Meyering
6ac165922c tests: loosen/tighten the always_defined_macros check
* cfg.mk (.re-defmac): Generate better regexps: allow white space
before the '#', and append a word-boundary requirement.
Without the latter, #define NULL_DEV ... would evoke a false-positive.
2010-05-09 18:29:22 +02:00
Jim Meyering
cab2119542 tests: improve the always_defined_macros check
* cfg.mk (sc_always_defined_macros): Adjust its helpers not to depend
on the existence of ./lib.  Instead, extract symbols directly from
gnulib/lib/*.in.h files.
2010-05-09 12:08:21 +02:00
Jim Meyering
9e42ecceff doc: factor hard-coded project-specific bits from README-release, ...
using the new --mail-headers option to gnulib's announce-gen, and
the updated maint.mk rules to connect the pieces.
* README-release: Remove hard-coded To:, Cc: etc. parts, now
that they're emitted automatically into the announcement template.
* cfg.mk (announcement_Cc_): Override the default.
* gnulib: Update to latest, to get newer announce-gen and maint.mk.
2010-05-03 22:21:31 +02:00
Jim Meyering
ca41dcff1d doc: update release procedure
* README-release: Rearrange slightly: post the announcement to
Savannah first, so you can include a link to that post in the email.
2010-05-03 20:37:13 +02:00
Jim Meyering
7d501cdd9c maint: factor trap-related code out of two syntax-check rules
* cfg.mk (gl_trap_): Define, using a loop and eval'd trap,
rather than repeated "trap" uses.  Also handle "13", SIGPIPE.
(sc_always_defined_macros): Use it.
(sc_system_h_headers): Likewise.
2010-05-03 15:49:38 +02:00
Jim Meyering
ecf6d16dc7 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.
2010-05-03 13:24:04 +02:00
Jim Meyering
c0e784b923 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.
2010-05-03 12:26:20 +02:00
Jim Meyering
a9c542e416 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.
2010-05-03 12:26:00 +02:00
Paul Eggert
d861519d2a 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.
2010-05-01 23:25:39 +01:00
Jim Meyering
5e9a7ae46b build: update gnulib submodule to latest; bootstrap, too 2010-04-30 18:27:19 +02:00
Pádraig Brady
8b5087d4e6 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.
2010-04-29 18:55:57 +01:00
Jim Meyering
7905d6d34d 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.
2010-04-29 16:41:22 +02:00
Jim Meyering
518a8664a2 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.
2010-04-29 16:41:22 +02:00
Jim Meyering
83e4f0ca02 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.
2010-04-25 10:35:51 +02:00
Jim Meyering
2191fe8f8d 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.
2010-04-24 17:44:58 +02:00
Jim Meyering
a4ab8d9c55 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.
2010-04-24 17:16:56 +02:00
Jim Meyering
301c74865e tests: clean up also upon SIGQUIT
* tests/test-lib.sh: Also trap on SIGQUIT.
Spotted by Dmitry V. Levin.
2010-04-24 15:50:41 +02:00
Jim Meyering
765d67410c post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2010-04-23 18:36:32 +02:00
Jim Meyering
1d10eb8b1e version 8.5
* NEWS: Record release date.
2010-04-23 17:18:16 +02:00
Dmitry V. Levin
c0a121c9bc 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.
2010-04-23 15:44:19 +02:00
Eric Blake
c9e4ea6ee2 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.
2010-04-22 08:42:54 -06:00
Jim Meyering
819265b8be build: update gnulib submodule to latest 2010-04-21 20:05:52 +02:00
Eric Blake
a9b904a282 docs: document transformation of obsolete sort syntax
* doc/coreutils.texi (sort invocation): Mention the conversion.
2010-04-21 07:59:03 -06:00
Pádraig Brady
7dc398a30f 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.
2010-04-21 07:55:38 +01:00
Pádraig Brady
8fc12909f6 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
2010-04-20 22:37:18 +01:00
Pádraig Brady
1777d0dfe3 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.
2010-04-16 23:02:02 +01:00
Jim Meyering
56fce1aed7 * 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
2010-04-16 08:42:47 +02:00
Jim Meyering
36cc6ac787 doc: tweak HACKING
* HACKING (Curly braces): Tweak a sentence.  Filter a few
paragraphs through "fmt".
2010-04-16 08:21:32 +02:00
Pádraig Brady
62dd4b63c5 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>
2010-04-16 00:55:43 +01:00
Pádraig Brady
3a1595a3fb 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.
2010-04-16 00:26:21 +01:00
Jim Meyering
f8291d0ec4 doc: document our code formatting policy regarding curly braces
* HACKING (Curly braces: use judiciously): New section.
2010-04-15 18:52:41 +02:00
Jim Meyering
05bee6f116 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".
2010-04-14 15:48:31 +02:00
Pádraig Brady
584e38d8b3 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.
2010-04-13 13:09:50 +01:00
Pádraig Brady
c420cfef77 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.
2010-04-12 10:06:11 +01:00
Pádraig Brady
be9a42e7ac 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.
2010-04-11 16:37:40 +01:00
Jie Liu
20a5a60c61 build: tell ./bootstrap to check for xz up-front
* bootstrap.conf (buildreq): Add xz to the list.
2010-04-11 17:09:35 +02:00
Jim Meyering
0ba945b050 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.
2010-04-11 11:29:00 +02:00
Jim Meyering
8c4b6ba09b 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.
2010-04-10 20:26:39 +02:00
Mike Frysinger
ac6feeb9f2 dircolors: add rxvt-256color and rxvt-unicode256
* src/dircolors.hin: Add them.
2010-04-09 16:28:46 +02:00
Jim Meyering
ef5758c328 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.
2010-04-09 10:50:43 +02:00
James Youngman
0a9302e7f7 doc: make wc --help say how it defines a 'word'
* src/wc.c (usage): Add wc's definition of "word".
2010-04-08 23:53:12 +02:00
Jim Meyering
9e66806e28 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.
2010-04-08 08:45:23 +02:00
Jim Meyering
f6b2f46714 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.
2010-04-07 11:47:28 +02:00
Jim Meyering
f267926f2d 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.
2010-04-06 16:02:27 +02:00
Jim Meyering
6f6f599867 build: update gnulib submodule to latest 2010-04-06 16:02:19 +02:00
Jim Meyering
2dc09bf809 build: update gnulib submodule to latest 2010-04-05 09:03:23 +02:00
Marc Kleine-Budde
98dacf492e 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>.
2010-04-04 09:15:07 +02:00
Jim Meyering
b48a444e35 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.
2010-04-02 20:31:14 +02:00
Jim Meyering
6416762b73 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.
2010-03-31 08:58:40 +02:00
Jim Meyering
a8fc4edca5 build: update gnulib submodule to latest 2010-03-29 08:28:51 +02:00
Jim Meyering
3f7091359a tests: disable new texinfo-acronym syntax-check from gnulib
* cfg.mk (local-checks-to-skip): Add new sc_texinfo_acronym, to skip it.
2010-03-29 08:28:51 +02:00
Bruno Haible
0f5dc96354 build: update after change in gnulib's lib-ignore module
* src/Makefile.am (AM_LDFLAGS): Define.  Use gnulib's new
$(IGNORE_UNUSED_LIBRARIES_CFLAGS).
2010-03-29 08:28:51 +02:00
Jim Meyering
5ef03d6c5b tests: avoid spurious sc_prohibit_test_minus_ao syntax-check failures
* tests/misc/ls-time: Change comments and diagnostics.
* tests/misc/xattr: Likewise.
2010-03-29 08:28:51 +02:00
Jim Meyering
8915368ee3 tests: fix typos in envvar-check script
* tests/envvar-check: Fix variable name typos.
Probably harmless, since no selected shell would fail to unset.
2010-03-26 16:49:48 +01:00
Pádraig Brady
b4f9559537 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.
2010-03-26 14:31:16 +00:00
Kim Hansen
88d4b3461e 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>
2010-03-26 14:27:54 +00:00
Pádraig Brady
4c38625ef3 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.
2010-03-26 14:19:37 +00:00
Jim Meyering
946359f101 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.
2010-03-21 12:23:16 +01:00
Jim Meyering
9f793def3c 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.
2010-03-20 13:45:56 +01:00
Jim Meyering
628a5e16dd maint: enforce one small aspect of formatting style: space-before-"("
* cfg.mk (sc_space_before_open_paren): New rule.
2010-03-20 12:14:46 +01:00
Jim Meyering
773d15a702 maint: code formatting nit
* src/system.h (ST_NBLOCKS): Add space before paren.
2010-03-20 12:11:50 +01:00
Pádraig Brady
c872a1d8a5 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.
2010-03-19 21:40:05 +00:00
Pádraig Brady
dfe0d336a0 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.
2010-03-19 19:23:45 +00:00
Paolo Bonzini
3dcbcf98f4 tests: change help-version to per-program functions
* help-version: Change each *_args variable to a *_setup function.
2010-03-19 13:13:08 +01:00
Jim Meyering
dd9df4ab02 doc: tweak README-prereq again
* README-prereq: Change one more: s/coreutils/This package/
2010-03-19 11:34:15 +01:00
Jim Meyering
54158a45fa 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.
2010-03-19 10:14:46 +01:00
Eric Blake
da2f637888 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.
2010-03-18 15:41:59 -06:00
Ralf Wildenhues
cab29edcf1 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.
2010-03-18 21:08:07 +01:00
Eric Blake
b44d4b6b0e 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.
2010-03-18 17:41:12 +01:00
Jim Meyering
d75820e516 maint: mark makefile "dist-hook" target as PHONY
* src/Makefile.am (dist-hook): Mark target as PHONY.
2010-03-18 08:32:26 +01:00
Jim Meyering
46e0137277 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.
2010-03-17 18:28:28 +01:00
Pádraig Brady
c403c31e88 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.
2010-03-16 23:10:15 +00:00
Jim Meyering
4edb86215d build: update gnulib submodule to latest
The latest from gnulib once again passes all tests.
2010-03-13 14:21:16 +01:00
Jim Meyering
64bc4f20e8 revert to previous working version of gnulib
This reverts commit 0c31cdc2d1.
2010-03-13 10:31:15 +01:00
Thien-Thi Nguyen
141645d9c6 doc: use mktemp, not tempfile, in a shred usage example
* doc/coreutils.texi (shred invocation):
Use mktemp(1) instead of Debian-specific tempfile(1).
2010-03-13 08:37:01 +01:00
Jim Meyering
0c31cdc2d1 build: update gnulib submodule to latest 2010-03-12 08:39:11 +01:00
Eric Blake
4323ed2bde maint: drop *.lzma suport
* .gitignore: Remove *.lzma lines.
2010-03-11 11:55:45 -07:00
Eric Blake
c971ed9377 maint: ignore *.xz files
* .gitignore: Ignore *.xz created by 'make dist', now that we
no longer produce *.lzma.
2010-03-10 16:29:44 -07:00
Jim Meyering
998fe29301 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*.
2010-03-10 11:05:18 +01:00
Pádraig Brady
612c2c95c3 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.
2010-03-09 00:32:07 +00:00
Pádraig Brady
a7b4fa01dd maint: rename the si_present variable in sort to iec_present
* src/sort.c: The units containing 'i' are actually IEC not SI.
2010-03-04 10:54:21 +00:00
Joey Degges
dae35bac98 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.
2010-03-04 10:42:00 +00:00
Jim Meyering
168a6b6a0f 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.
2010-03-04 10:46:11 +01:00
Pádraig Brady
59e2e55d0f 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.
2010-03-01 10:58:02 +00:00
Eric Blake
2590389aab bootstrap: resynchronize from gnulib
* gnulib: Update to latest.
* bootstrap: Copy from gnulib/build-aux/bootstrap.
* README-hacking: Describe how to use GNULIB_SRCDIR.
2010-02-25 09:29:46 -07:00
Eric Blake
9a6c97eb29 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.
2010-02-25 08:54:49 -07:00
Pádraig Brady
0b5bd805bd 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.
2010-02-19 11:41:19 +00:00
Moritz Orbach
f5268e2749 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
2010-02-17 23:25:12 +00:00
Pádraig Brady
cba49d57da 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.
2010-02-16 15:19:40 +00:00
Pádraig Brady
a2f81776ad 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).
2010-02-16 00:51:38 +00:00
Pádraig Brady
11d84c10ce 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.
2010-02-15 23:42:49 +00:00
Jim Meyering
58c98f2342 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.
2010-02-15 19:26:30 +01:00
Eric Blake
7ae60bf26f build: ignore another gnulib artifact
* .gitignore: Add lib/warn-on-use.h.
2010-02-15 06:56:11 -07:00
Eric Blake
d4de2dc83a 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.
2010-02-15 06:56:07 -07:00
Pádraig Brady
45b46f4951 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.
2010-02-11 08:01:15 +00:00
Jim Meyering
9f650d0870 doc: add a TODO item
* TODO: Consider adding a col implementation.
2010-02-10 07:25:58 +01:00
Jim Meyering
ed509250a2 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.
2010-02-07 21:02:18 +01:00
James R. Van Zandt
543696a9af doc: add a cross reference from tac's man page to "rev"
* man/tac.x: See also "rev".
2010-02-07 17:18:34 +01:00
Jim Meyering
86573d33a7 tests: include help-version test settings used by gzip and grep
* tests/misc/help-version: ...the better to keep this file in sync.
2010-02-07 17:18:02 +01:00
Jim Meyering
cea6d15720 doc: rewrite part of README-release
* README-release (Pre-release testing): Reorganize.
2010-02-07 09:10:53 +01:00
Jim Meyering
69cc8d5cb7 sync with gnulib
* gl/lib/regcomp.c.diff: Update to apply to changed version in gnulib.
* gnulib: Update submodule to latest.
2010-02-05 10:30:31 +01:00
Pádraig Brady
dd2253f49d 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.
2010-02-02 15:16:40 +00:00
Ondřej Vašík
f53a0e1062 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).
2010-02-01 16:46:34 +01:00
Pádraig Brady
628b1d5e7e maint: fix a typo in NEWS
* NEWS: s/contains/contain/
2010-02-01 15:40:44 +00:00
Pádraig Brady
f86bb6967d 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.
2010-02-01 15:36:56 +00:00
Assaf Gordon
819aa9eba7 join: add --header option to always output the first line
This essentially allows one to use --check-order with headings.
Note join without --check-order will already handle the common case
where headings do match in each file, however using --check-order will fail
often when the header sorts after the first line of data.

Note also that this will join header lines from each file even if
they don't match, with headings from the first file being used.

* NEWS: Mention the new option.
* doc/coreutils.texi (join invocation): Describe the new option.
* src/join.c (usage): Likewise.
(join): Join the header lines unconditionally.
* tests/misc/join: Add 5 new tests.
2010-02-01 13:57:42 +00:00
Pádraig Brady
86914603b5 maint: fix an inconsequential memory leak in join
* src/join.c (join): Refactor the code that checks for misorder
at the tail of the files.  The most significant change here is
that freeline() is called thus silencing a valgrind warning about
a definite but inconsequential memory leak.
(freeline): Make more general by doing nothing when passed NULL,
and setting freed pointers to NULL.
2010-02-01 13:52:58 +00:00
Pádraig Brady
6e8f368e07 maint: use $(CONFIG_INCLUDE) rather than the hardcoding lib/config.h
* tests/check.mk (TESTS_ENVIRONMENT): Use the generated CONFIG_INCLUDE
variable.  Note $(abs_builddir)/$(CONFIG_HEADER) also currently works,
but $(CONFIG_HEADER) is deprecated and may not be generated in future.
$(CONFIG_INCLUDE) was made available by gnulib in commit, 22970f8a,
"syntax-check: detect incorrect boolean macro values in config.h"
2010-02-01 13:32:46 +00:00
Jim Meyering
5d43617e8a ls --color: don't emit a final no-op escape sequence
* src/ls.c (main): With --color, avoid emitting the final color-
resetting escape sequence when it would be a no-op.
* tests/ls/color-clear-to-eol: Adjust expected output accordingly.
* tests/ls/color-dtype-dir: Likewise.
* tests/ls/multihardlink: Likewise.
* tests/ls/stat-free-symlinks: Likewise.
* tests/misc/ls-misc: Likewise.
* NEWS (Changes in behavior): Mention it.
C de-Avillez rebased and adapted four of the new sl-dangle*
tests in tests/misc/ls-misc.
Reported by Jim Avera in
http://bugs.launchpad.net/ubuntu/+source/coreutils/+bug/494663
2010-02-01 08:26:12 +01:00
Jim Meyering
5d4952059f maint: move vulnerable-Makefile.in-check to gnulib
* cfg.mk (sc_vulnerable_makefile_CVE-2009-4029): Move rule to...
* gnulib: Update to latest, to get updated "maint.mk".
2010-01-28 09:38:31 +01:00
Jim Meyering
c7ecdb0fcb maint: add a syntax-check rule to check for vulnerable Makefile.in
* cfg.mk (sc_vulnerable_makefile_CVE-2009-4029): New rule.
2010-01-27 22:41:33 +01:00
Kamil Dudka
aad0bde0b5 who --mesg (-T) can use a more accurate test for TTY writability
Enabled when coreutils is configured with --with-tty-group.
Based on a patch written by Piotr Gackiewicz.  Details at
http://bugzilla.redhat.com/454261

* src/who.c (is_tty_writable): A new function returning true if a TTY
device is writable by the group.  Additionally it checks the group to be
the same as TTY_GROUP_NAME when compiled with --with-tty-group.
* m4/jm-macros.m4: Introduce a new configure option --with-tty-group.
* NEWS: Mention the change.
2010-01-25 11:43:49 +01:00
Jim Meyering
0caead1ea0 tests: fix a syntax-check rule to pass in non-srcdir build
* cfg.mk (sc_x_sc_dist_check): This coreutils-specific syntax-check
rule would fail in a non-srcdir build, since in that case, each name
from $(VC_LIST) starts with "$(srcdir)/".  Fix that.
* gnulib: Update to latest, to pull in a required maint.mk change.
2010-01-24 14:51:31 +01:00
Pádraig Brady
9c566ad04a tests: make cp-mv-enotsup-xattr independent of the host file system
* tests/cp-mv-enotsup-xattr: Create a file system from which to copy
the xattrs so that the test is not skipped if the host file system
does not have user_xattr support.  Also don't erroneously fail when
built without xattr support.
2010-01-23 23:44:51 +00:00
Pádraig Brady
3e8586bc54 doc: add nproc to the texinfo overview menu
* doc/coreutils.texi: Add nproc to the System context
command list in the overview menu.
2010-01-23 23:06:59 +00:00
Pádraig Brady
014fead953 maint: ensure test independence from config macro format
* tests/cp/acl: Support USE_ACL not being defined.
* tests/mv/acl: Likewise. Also fix typo in skip message.
* tests/cp/preserve-slink-time: Support HAVE_UTIMENSAT being 0.
* tests/touch/no-dereference: Likewise.
* tests/ls/capability: Normalize so 1 is not required to be last char.
2010-01-23 22:53:52 +00:00
Eric Blake
e489fd04d6 build: fix failure from bogus USE_XATTR definition
* m4/xattr.m4 (gl_FUNC_ADDR): Fix regression introduced in commit
6beca4248.
* THANKS: Update.
Reported by Adam Sampson.
2010-01-19 06:41:57 -07:00
Jim Meyering
31423c76e8 libstdbuf: plug a very unlikely leak
* src/libstdbuf.c (apply_mode): Don't leak "buf" upon setvbuf failure.
2010-01-18 12:03:18 +01:00
Jim Meyering
cd349fdca2 pr: avoid two over-allocations
* src/pr.c (init_store_cols): Allocate N*sizeof(*VAR) bytes,
not N*sizeof(int*).  The latter would mistakenly allocate double
the required space on a system with 8-byte pointers.
2010-01-18 12:03:06 +01:00
Jim Meyering
eccf54368f maint: add missing "post-release push" step to release procedure
* README-release: Push the automated release and post-release
NEWS-updating commits.
Pádraig Brady reported that I'd pushed the tag without also
pushing the followup commit.
2010-01-14 06:39:11 -07:00
Jim Meyering
7ba0e90c55 post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2010-01-13 22:14:16 +01:00
Jim Meyering
954ef23ed9 version 8.4
* NEWS: Record release date.
2010-01-13 21:57:54 +01:00
Pádraig Brady
e55d882811 tests: avoid spurious failures on older shells
* tests/tail-2/inotify-hash-abuse: Use kill rather than wait
to determine if the tail process is still running.
* tests/tail-2/inotify-hash-abuse2: Ditto.
2010-01-13 13:42:49 +01:00
Jim Meyering
f28c7d959b tests: work around spurious test failure with OpenBSD4.5's /bin/sh
* tests/ls/infloop: OpenBSD4.5's /bin/sh would mistakenly include
"set -x"-output in an application's stderr stream when stderr is
redirected before stdout.  This was causing one spurious test failure.
The work-around: redirect stdout first.
Reported by Nelson Beebe.
2010-01-13 10:55:55 +01:00
Jim Meyering
3b498ba141 tests: don't silently skip the sort-version tests
* tests/misc/sort-version: Don't use <<- and indented here-doc contents.
s/<<-/<</ and unindent the here-document contents.  Otherwise,
bash would ignore the indented delimiter and use EOF, thus silently
skipping this test.  OpenBSD5.4's shell reported the failure:
  $ printf 'cat<<-x\n foo\n x\n'|sh
  sh: <stdin>[4]: here document `x' unclosed
  [Exit 1]
by contrast, bash warns but still exits successfully:
  $ printf 'cat<<-x\n foo\n x\n'|bash && echo you lose
  bash: line 3: warning: here-document at line 1 delimited by \
    end-of-file (wanted `x')
   foo
   x
  you lose
2010-01-13 10:21:02 +01:00
Eric Blake
39243f0ea8 tests: avoid spurious failure on old kernel
* tests/touch/no-dereference: Skip test if utimensat doesn't
support symlinks.
Reported by Bernhard Voelker.
2010-01-12 06:00:05 -07:00
Pádraig Brady
a4da48c4f5 maint: update info about getting the prerequisite automake
* README-prereq: Now that we require automake-1.11.1
update the instructions from getting it from the git repo
2010-01-12 10:32:08 +00:00
Pádraig Brady
d89755469b maint: remove an already handled item from TODO
* TODO: The question regarding printf octal escapes is answered in
commit 4bcefa62, 2003-04-21, "Fix printf POSIX compatibility bug ..."
2010-01-12 10:29:36 +00:00
Pádraig Brady
b81cdbf31e maint: fix tests on solaris by using /usr/xpg4/bin
* tests/check.mk: Prepend /usr/xpg4/bin to the $PATH if present.
Using the more standard utilities allows tests such as misc/printenv,
which uses the -E option to grep, to complete.
2010-01-12 10:26:27 +00:00
Jim Meyering
0a6bbb5947 build: update gnulib, to get fixed getlogin-related tests 2010-01-12 09:56:07 +01:00
Jim Meyering
6beca4248f build: fix build failure due to missing libxattr
Configure is supposed to detect insufficient XATTR support.
However, if a system has the required headers, but no library,
the configure script would mistakenly enable USE_XATTR.
* m4/xattr.m4 (gl_FUNC_XATTR): If the attr_copy_file function
is not found, don't set USE_XATTR.
Nelson Beebe reported a link failure on RHEL 5.3.
Also, do not let the combination of --disable-xattr and
a stray LIB_XATTR environment setting perturb the build.
* NEWS (Build-related): Mention it.
2010-01-12 08:06:47 +01:00
Jim Meyering
37b8bfda56 doc: mention the wchar.h vs. glibc build problem
* NEWS (Build-related): Mention the wchar.h issue.
2010-01-12 06:52:14 +01:00
Pádraig Brady
21a6a7f64c nproc: return a possibly more accurate total CPU count
* gnulib: Update, for num_processors() improvement.
* NEWS: Mention the fix.
2010-01-12 06:46:51 +01:00
Kamil Dudka
6454dd0f2f ls: reorder includes to work around broken <sys/capability.h>
* src/ls.c: Include <sys/capability.h> later, to avoid build
failure with a header from libcap-2.16-1 or earlier.
See http://bugzilla.redhat.com/483548 for details.
2010-01-12 06:31:20 +01:00
Eric Blake
d0f18197fc maint: move coreutils specific rule into cfg.mk
* gnulib: Update, for maint.mk improvement.
* cfg.mk (_makefile_at_at_check_excpetions): New rule, needed
for latest change to maint.mk.
2010-01-08 12:00:51 -07:00
Jim Meyering
21f4da0fb9 post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2010-01-07 18:25:36 +01:00
Jim Meyering
201ba1a203 version 8.3
* NEWS: Record release date.
2010-01-07 18:13:26 +01:00
Jim Meyering
e06e7a8331 maint: change an email address in THANKS
* THANKS: Adjust Denis' address.
2010-01-07 07:17:06 +01:00
Eric Blake
67d3e26350 pr: ensure the page header line is of the required format
Before this change, with too long a file name, the name would
abut the date field on the left and possibly also the "Page N"
field on the right, rather than leaving a one-space separator
in each case.  Fixes a regression introduced on Mar 6 2009,
by commit a4053c5291

* src/pr.c (print_header): Ensure that there is at least one
space before and after the file name part of the header line.
* NEWS: Mention it.
* tests/pr/W20l24f-ll: s/xPage/ x Page/.
* THANKS: Update.
Reported by Denis McKeon, in https://savannah.gnu.org/bugs/?28492.
2010-01-06 21:07:23 -07:00
Eric Blake
72a0a8264d maint: apply correct license to auxiliary files
* gnulib: Update, for maint.mk improvements.
* HACKING: Use GFDL 1.3, not 1.2.
* NEWS: Likewise.
* README: Likewise.
* cfg.mk (old_NEWS_hash): Update accordingly.
* .gitignore: Ignore file created by 'make update-NEWS-hash'.
2010-01-06 21:05:52 -07:00
Jim Meyering
f52d939014 build: require newer versions of automake and autoconf
* configure.ac: Require autoconf-2.62 and automake-1.11.1 or newer.
* bootstrap.conf (buildreq): Require automake-1.11.1 or newer,
to ensure people use a version with the fix for CVE-2009-4029.
Note that the coreutils-8.2 tarball included a fixed Makefile.in.
Require autoconf-2.62, per automake.
2010-01-06 15:40:41 +01:00
Eric Blake
7a1f69aae0 cp, touch: avoid problem with new glibc
* gnulib: Update, for utimens fix.
* NEWS: Mention the fix.
Reported by Guillaume Ayoub in http://bugs.debian.org/563726.
See also http://bugzilla.redhat.com/552320.

Signed-off-by: Eric Blake <ebb9@byu.net>
2010-01-06 06:42:16 -07:00
Philip Rowlands
bbdc929602 doc: fix typo in NEWS
* NEWS: Fix typo: s/repeated/repeatedly/
2010-01-05 14:11:56 +01:00
Jim Meyering
4db2f5c6bc build: update gnulib submodule to latest 2010-01-05 09:08:07 +01:00
Jim Meyering
be6c13e7e0 maint: always free a buffer, to avoid even semblance of a leak
* src/tac.c (main): Free the input buffer in most cases.
2010-01-05 09:08:03 +01:00
Jim Meyering
dc0f5eb6a0 maint: use more readable operator: "||" rather than "|"
* src/cp.c (make_dir_parents_private): Use "||" rather than "|",
so that clang understands there is no undefined pointer dereference.
2010-01-04 16:46:44 +01:00
Jim Meyering
0faf3bf874 maint: record update-copyright options for this package
* cfg.mk: Next time, just run "make update-copyright".
2010-01-03 18:56:22 +01:00
Eric Blake
b7f2b51c42 ls: fix color of broken symlinks colored as target
* src/ls.c (print_color_indicator): When using 'LINK target' in
dircolors, treat broken symlink as C_ORPHAN.
* tests/misc/ls-misc (sl-dangle2, sl-dangle3, sl-dangle4)
(sl-dangle5): Test for it, and add more coverage.
* NEWS: Document it.
* THANKS: Update.
Reported by Chris Jones.
2010-01-01 13:41:46 -07:00
Jim Meyering
84db964925 df: use fputs in place of printf in a few more places
* src/df.c (print_header): Use fputs rather than printf in more places.
Suggested by Eric Blake.
2010-01-01 16:56:03 +01:00
Jim Meyering
49c5b690cb build: update gnulib submodule to latest 2010-01-01 14:06:48 +01:00
Jim Meyering
157c2bc55e maint: add a few copyrights; remove obsolete README file
* tests/README: Remove long-obsolete file.
* tests/Makefile.am (EXTRA_DIST): Remove README.
* tests/misc/truncate-dir-fail: Add copyright comment.
* tests/misc/selinux: Likewise.
* tests/misc/chcon: Likewise.
* tests/misc/chcon-fail: Likewise.
* tests/sample-test: Use only 2010 in this list.
2010-01-01 14:06:48 +01:00
Jim Meyering
1aa17dc89b maint: update all FSF copyright year lists to include 2010
Use this command:
git ls-files | grep -v COPYING \
  | xargs env UPDATE_COPYRIGHT_USE_INTERVALS=1 \
      build-aux/update-copyright
2010-01-01 14:06:47 +01:00
Stéphane Raimbault
6c8d432b1f pr --help: add missing space between short and long options usage message
* src/pr.c (usage): Add missing space.
2010-01-01 14:06:47 +01:00
Stéphane Raimbault
f1ab2e0227 pr --help: improve a line-break
* src/pr.c (usage): Move the newline character a bit farther.
2010-01-01 14:06:47 +01:00
Stéphane Raimbault
4668ae8f06 df: add comments to help translators align column headers
* src/df.c (print_header): Add a comment telling translators to
retain the message length, and another to align header translations.
2010-01-01 14:06:46 +01:00
Jim Meyering
b0782cb9ea maint: newer gnulib; don't hard-code my GPG key ID
* cfg.mk (gpg_key_ID): Remove definition, now that maint.mk automates it.
* gnulib: Update to latest.
2009-12-31 16:44:50 +01:00
Jim Meyering
f428e548e5 doc: update tail's documentation to allow for new -F semantics
* src/tail.c (usage): Reword tail -F description, so that it no
longer mentions details specific to the non-inotify implementation.
Also, join diagnostic strings (while staying under the 509-byte limit)
to ease formatting of translations.  The latter was prompted by
a report from Stéphane Raimbault.
* doc/coreutils.texi (tail invocation): Update description here, too.
2009-12-31 09:42:52 +01:00
Eric Blake
7e0c2b9a59 touch: work around ntfs-3g bug
* gnulib: Update, for utimensat fix.
* NEWS: Improve wording about touch fixes.
* THANKS: Update.
Reported by Stuart Citrin.
2009-12-30 20:33:39 -07:00
Jim Meyering
7f9e164d27 build: update gnulib submodule to latest 2009-12-30 11:24:16 +01:00
Jim Meyering
d3a4bc86cd doc: mention two tail -F bug fixes in NEWS
* NEWS (Bug fixes): Two tail -F fixes.
2009-12-30 11:22:55 +01:00
Jim Meyering
fe062d563a tail: test for a bug in inotify-enabled tail -F
tail -F a b would stop tracking additions to b after "mv a b".
* tests/tail-2/F-vs-rename: New file.
* tests/Makefile.am (TESTS): Add it.
2009-12-30 11:22:55 +01:00
Giuseppe Scrivano
2ead2365e0 tail -F: don't stop following the target of a rename
This fixes a bug whereby tail -F would fail to track changes
to a file that was a target of a rename, and when the source of
the rename was another tailed file.

* src/tail.c (tail_forever_inotify): Ensure the wd is not already
present in the hash table before trying to add it.  When a new watch
descriptor is added to the `wd_to_name' hash table, check that it is
not already present.  If it is present then remove the previous element.
2009-12-30 11:22:55 +01:00
Pádraig Brady
2024418dc4 maint: improve the info about $PATH in README-prereq
* README-prereq: It wasn't obvious that the $PATH should
be set before building any of the prerequisite packages,
so move that information up.
2009-12-30 02:09:43 +00:00
Jim Meyering
fd93fc3ef4 tail: add another test to exercise abort-inducing flaw in tail -F
* tests/tail-2/inotify-hash-abuse2: New test, based on a reproducer
by Rob Wortman.
* tests/Makefile.am (TESTS): Add it.
2009-12-29 17:01:54 +01:00
Jim Meyering
bd26efaaa3 tail: add a test to exercise abort-inducing flaw in tail -F
* tests/tail-2/inotify-hash-abuse: New file, derived from
a report by Rob Wortman.
* tests/Makefile.am (TESTS): Add it.
Improved by: Pádraig Brady.
2009-12-29 17:01:54 +01:00
Giuseppe Scrivano
07f15147eb tail: remove `fdspec' from the hash table before changing its key
* src/tail.c (tail_forever_inotify): Avoid modifying fdspec->wd while
it is in the wd_to_name hash table.  Once it is removed, it can be
added using the new `wd' as key for the hash table.  This fixes the
abort-inducing bug reported by Rob Wortman in
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/19372
2009-12-29 17:01:01 +01:00
Jim Meyering
ed86ca7c5e maint: quiet "make" in doc/
* doc/Makefile.am (constants.texi): Add a use of AM_V_GEN.
2009-12-29 14:31:56 +01:00
Jim Meyering
4b2b2711d9 tail: rename an internal variable
* src/tail.c (tail_forever_inotify): s/wd_table/wd_to_name/
2009-12-29 14:26:05 +01:00
Jim Meyering
66b15949df tail: avoid read-beyond-end-of-buffer error
* src/tail.c (tail_forever_inotify): Do not use f[i] in a context
where i may be larger than the largest valid index.  In the final
"if" clause in which we'd remove an inotify watch, we might have
used f[n_files].  Use fspec instead, since it is guaranteed to
be defined.
2009-12-29 14:24:01 +01:00
Eric Blake
3d09e31e07 maint: ignore more built files
Recent gnulib changes added new built files.

* .gitignore: Add arg-nonnull.h, link-warning.h,
unused-parameter.h.
2009-12-26 11:11:24 -07:00
Eric Blake
67bfde6668 tac: supply link dependency
* src/Makefile.am (tac_LDADD): Add LIB_GETHRXTIME.
* THANKS: Update.
Reported by Robert Schwebel.
2009-12-26 10:40:17 -07:00
Jim Meyering
a0d5d53a30 build: update gnulib submodule to latest 2009-12-26 09:09:51 +01:00
Jim Meyering
8506d9adb6 tail: shrink internal struct by 8 bytes
* tail.c (struct File_spec): Rearrange struct members to decrease
size by 8 bytes to 76,96 on i686,x86_64 respectively.
2009-12-26 09:09:36 +01:00
Jim Meyering
c85ad43ef4 maint: tail: avoid in-function #if directives
* src/tail.c (fremote): Add a comment.
Move definition "up" to precede first use, so we can
remove its prototype and the #if..#endif around each use.
(any_remote_file): Rename from any_remote_files.
2009-12-25 12:05:30 +01:00
Pádraig Brady
8d2ecd4a3e tail: fix --follow to not use inotify on remote files
* src/tail.c (struct File_spec): Add a flag to record if file is remote.
(recheck): If we're using inotify then check if the file has gone remote
and if so, drop it with a warning.
(any_remote_files): A new function to check for any open remote files.
(tailable_stdin): A new function to refactor the check for whether
a tailable file was specified through stdin.
(fremote): A new function to check if a file descriptor
refers to a remote file.
(tail_forever_inotify): Add some comments.
(tail_file): Record if a file is remote when initially opened.
(main): Disable inotify if any remote files specified.
Also document the caveat about remounted files not
being noticed by inotify.
* NEWS: Mention the fix.
2009-12-25 00:56:41 +00:00
Pádraig Brady
11dc0016bb wc: line-buffer the printed counts
* src/wc.c (main): Set stdout to line buffered mode
to ensure parallel running instances don't intersperse
their output.  This adds 6.5% to the run time in the worst case
of many zero length files, but has neglible impact for
standard sized files.
* tests/misc/wc-parallel: New test for atomic output.
* tests/Makefile.am: Reference it.
* NEWS: Mention the fix
This is similar to commit 710fe413, 20-10-2009,
"md5sum, sha*sum, sum: line-buffer the printed checksums"
2009-12-23 13:45:34 +00:00
Pádraig Brady
53db8d6479 stat: Recognize k-afs, gfs, ocfs2 file system types
* src/stat.c (human_fstype): Add k-afs, gfs/gfs2 and ocfs2.
* NEWS: Update the stat -f entry.
2009-12-22 16:55:04 +00:00
Pádraig Brady
4b449caf2d stat: add support for more file system types
* src/stat.c (human_fstype): Add the following FS types:
fuseblk, rpc_pipefs.  Also fix a typo of minux3 to minix3,
and mention the fs-magic-compare make target to help update the list.
* NEWS: Mention the fix.
2009-12-22 11:17:01 +00:00
Jim Meyering
d98b1b35a6 build: correct coreutils-specific distcheck rules
* dist-check.mk (built_programs): Use $(bin_PROGRAMS), not $(PROGRAMS).
Otherwise, my-instcheck would fail due to non-installation of e.g.,
the noinst_PROGRAMS, setuidgid and getlimits.
(taint-distcheck): Correct the grep command that checks for libtool
traces in configure.
2009-12-20 10:57:45 +01:00
Eric Blake
01e4f003a0 touch: fix ctime regression in 'touch -a'
Regression introduced in coreutils 8.1 due to a bug in the Linux
kernel implementation of utimensat with mtime of UTIME_OMIT.

* gnulib: Update to latest, to pick up utimensat fix.
* NEWS: Mention the change.
* THANKS: Update.
Reported by John Stanley.
2009-12-19 17:32:45 -07:00
Pádraig Brady
54dcfab190 maint: don't include the strverscmp gnulib module
* bootstrap.conf (gnulib_modules): Remove the strverscmp module
which is not used since commit e505736f, on 03-10-2008,
"ls and sort: use filevercmp instead of strverscmp"
2009-12-19 01:34:59 +00:00
Pádraig Brady
3593cf50b2 doc: enhance and reference info about version comparison
* doc/coreutils.texi (sort invocation): Reference the additional
info about filevercmp rather than the unused strverscmp.
(Details about version sort): Add some examples that are not
handled well by fileversmp.
* src/ls.c: Change a comment referencing the now unused strverscmp.
2009-12-19 01:21:28 +00:00
Pádraig Brady
d64c186d8e rm: fix --one-file-system regression due to fts conversion
* src/remove.c (rm_fts): Fix incorrect comparison of
device and inode numbers.
* tests/rm/one-file-system2: Add a separate test so
that it can be run as a normal user (It doesn't need to mount).
* tests/Makefile.am: Reference it.
* NEWS: Mention the fix.
Reported by Jan Larres.
2009-12-19 01:14:07 +00:00
Jim Meyering
bfcfc0ce72 maint: improve dist-check.mk rules
* dist-check.mk (null_AM_MAKEFLAGS): Remove LIBTOOL.  Adding it was
erroneous, since it is required when building from a distribution
tarball of a libtool-using project.  Reported by Ralf Wildenhues.
(my-distcheck): Reorganize to use a subshell and set -e, so that
failures propagate "out".  Without this change, setting LIBTOOL=false
would cause a failure that would then be ignored, probably due to a
problem in $(install-transform-check).
2009-12-14 11:33:03 +01:00
Thiago Farina
bf01ac3004 base64: use *_OPTION_DESCRIPTION macros instead of hard-coded strings
* src/base64 (usage): Use HELP_OPTION_DESCRIPTION and
VERSION_OPTION_DESCRIPTION macros, not literal strings.
2009-12-14 08:35:17 +01:00
Jim Meyering
5519ba24b5 tests: unpack xz-compressed tarballs when possible, not always *.gz
* dist-check.mk: Unpack compressed tarball using xz when possible,
since that's faster.
2009-12-13 17:55:31 +01:00
Jim Meyering
e4c4d77f84 maint: make dist-check.mk more easily shared
* dist-check.mk (built_programs): More generic, but still assumes src/.
Don't set GZIP in environment when untarring.
(my-distcheck): Use $(DIST_ARCHIVES), rather than assuming that
there is always a .tar.gz file.
2009-12-13 17:55:24 +01:00
Jim Meyering
c149538652 nohup: if fd_repoen fails (redirecting stdin), report it
* src/nohup.c (main): Don't ignore fd_reopen failure.
2009-12-13 12:23:41 +01:00
Jim Meyering
6ee02e3d83 tests: make the taint-distcheck rule easier to share with other projects
* dist-check.mk (taint-distcheck): Skip this test in a project
that uses libtool.
2009-12-13 11:22:39 +01:00
Jim Meyering
207a978e64 stat: recognize "sockfs" file system type, ...
... now that its magic number appears in <linux/magic.h>.
* src/stat.c (human_fstype) [S_MAGIC_SOCKFS]: Add case.
2009-12-13 11:00:41 +01:00
Jim Meyering
0291966175 maint: move definitions from maint.mk to dist-check.mk
* dist-check.mk (null_AM_MAKEFLAGS): Define here, not in maint.mk.
(built_programs): Likewise.
(my-distcheck): Move comments to...
(coreutils-path-check): ...the code they refer to.
Remove obsolete comments.
(null_AM_MAKEFLAGS): Add gperf, even though it's not used here.
* gnulib: Update to latest, for fixed maint.mk.
2009-12-13 10:51:36 +01:00
Jim Meyering
d9ba885974 tests: tail-without-inotify: avoid spurious test failure
* tests/tail-2/wait: Account for the possibility that the kernel
lacks inotify support.  Reported by Chris Clayton.
2009-12-12 17:40:42 +01:00
Jim Meyering
96047b77ec factor: add a missing va_end
* src/factor.c (debug): Add missing va_end.
2009-12-12 08:10:07 +01:00
Jim Meyering
5a514de955 build: update gnulib submodule to latest; adapt a patch
* gl/lib/tempname.c.diff: Adjust patch to apply to gnulib, now that
most TABs in indentation have been converted to spaces by running
this command: f=tempname.c.diff; patch-xform $f > k && mv k $f
2009-12-11 19:30:59 +01:00
Jim Meyering
a0000ba4ae post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2009-12-11 14:43:13 +01:00
Jim Meyering
70d023b076 version 8.2
* NEWS: Record release date.
2009-12-11 14:00:40 +01:00
Jim Meyering
ca39c9c308 tests: use a slightly better CU_TEST_NAME setting
* tests/check.mk (CU_TEST_NAME): Better test names.
2009-12-11 13:59:57 +01:00
Jim Meyering
fc4d3f63b0 tail: don't call fstat on an uninitialized FD
This bug showed up via valgrind as a "Conditional jump or move
depends on uninitialized value(s)" error.
* src/tail.c (ignore_fifo_and_pipe): New function.
(main): Use it only when tailing forever.
The code to compute n_viable and mark some F[i] as ignored would call
isapipe on an uninitialized file descriptor.  But n_viable and those
.ignored marks are useful/used only when tailing forever.  This bug
was introduced via commit f0ff8c73 (7.6), "tail: make the new
piped-stdin test as portable as the old one".
* NEWS (Bug fixes): Mention it.
2009-12-11 12:15:13 +01:00
Jim Meyering
3df2108b0d doc: NEWS: mention that gnulib's mgetgroups fix affects id
* NEWS (Bug fixes): Mention the "id" bug fix inherited via this gnulib
change: "mgetgroups: do not write bytes beyond end of malloc'd buffer"
http://git.sv.gnu.org/cgit/gnulib.git/commit/?id=51d5e813e9ee6cf23
2009-12-11 08:51:28 +01:00
Jim Meyering
829c418d67 build: update gnulib submodule to latest 2009-12-10 16:50:27 +01:00
Jim Meyering
06e9880c8e tests: avoid spurious failure when run via valgrind
* tests/misc/printenv: Ignore LD_PRELOAD differences.
2009-12-10 16:50:05 +01:00
Jim Meyering
bb4cb10e89 doc: NEWS: the "make distcheck" vulnerability dates back to 5.0
* NEWS (Bug fixes): Correct the introduced-in version number.
This was introduced on 2003-04-02 by commit 722a49ea.
2009-12-09 13:58:12 +01:00
Jim Meyering
23c0cecaa8 doc: NEWS: mention the "make distcheck" vulnerability
* NEWS (Bug fixes): Mention implications of the "make distcheck" change.
This was introduced on 2008-07-22 by commit 9bb0d576, "tests: ensure
"make check" w/tainted build dir no longer impacts $HOME".
2009-12-09 13:09:33 +01:00
Jim Meyering
19b460b239 tests: don't let "umask 077" cause root-only cp/preserve-gid failure
* tests/cp/preserve-gid: Use working_umask_or_skip_ to set umask to 022.
2009-12-09 08:45:30 +01:00
Jim Meyering
0f8bb24ca8 build: update gnulib submodule to latest 2009-12-08 21:34:00 +01:00
Pádraig Brady
321d2901de maint: remove an erroneous comment
* tests/misc/timeout: Remove an erroneous comment
introduced through copy and paste.
2009-12-08 15:33:18 +00:00
Pádraig Brady
f5a97b8269 sort: fix failure if sort's parent has ignored SIGCHLD
* src/sort.c (main): Reset the SIGCHLD handler to the default
as otherwise wait() could return an error.
* tests/misc/sort-compress: Set the CHLD handler in a subshell
to SIG_IGN to ensure the sort command resets it to SIG_DFL.
* NEWS: Mention the fix.
2009-12-08 15:29:27 +00:00
Pádraig Brady
73d4626134 timeout: fix failure if timeout's parent has ignored SIGCHLD
* src/timeout.c (main): Reset the SIGCHLD handler to the default
as otherwise wait() could return -1 and set errno to ECHILD.
This condition was ignored until commit 0b1dcf33, on 31-08-2009,
"timeout: defensive handling of all wait() errors"
but subsequently timeout would run the command correctly
but then fail with an error message.
* tests/misc/timeout: In a subshell set the CHLD handler to
SIG_IGN to ensure the timeout command resets it to SIG_DFL.
* NEWS: Mention the fix.
2009-12-08 15:17:01 +00:00
Pádraig Brady
7ac41f9950 tests: fix stty-row-col failure on small fixed terminals
* tests/misc/stty-row-col: Linux virtual consoles at least,
issue an error if you try to increase their size, so skip the
test if we can't increase the dimensions of the tty by 1 cell.
Reported by Matthew Burgess.
2009-12-08 15:08:44 +00:00
Pádraig Brady
dcff25a925 tests: fix stty failure with serial control settings
* tests/misc/stty: Don't check the serial control settings as
these are ignored by various Linux kernels.
Reported by Matthew Burgess.
2009-12-08 15:06:01 +00:00
Jim Meyering
7a2b0b8f66 build: update gnulib submodule to latest 2009-12-07 18:56:07 +01:00
Jim Meyering
ae034822c5 build: distcheck: do not leave a $TMPDIR/coreutils directory behind
* dist-check.mk (tmpdir): Rename from TMPDIR.  Use ./tests/torture
unconditionally, rather than $TMPDIR-with-default-to-/tmp.
Otherwise, running "make distcheck" could leave an empty /tmp/coreutils
directory behind.
(tp): Simplify, now that it's always in the build-dir.
(taint-distcheck): Set HOME earlier, in case $(MAKE) misbehaves.
(my-instcheck, coreutils-path-check): Add diagnostics, so it's easier
to diagnose when each runs.
(coreutils-path-check): Run configure with --quiet, to reduce output.
Inspired by Ralf Wildenhues' report of /tmp/coreutils being left behind.
2009-12-07 18:54:26 +01:00
Jim Meyering
d8cadda3b9 tests: readdir-mountpoint-inode avoid false-positive w/virtualbox
* tests/ls/readdir-mountpoint-inode: With some systems, stat can
succeed on a mount point and report that the inode number is 0.
Since ls displays "?" for those, that would otherwise show up as a
difference.  Skip such mount points.  Reported by Sergei Steshenko
in http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/19142
2009-12-06 08:48:51 +01:00
Pádraig Brady
afd087d414 tests: don't run tail-2/inotify-race by default
* tests/tail-2/inotify-race: Note the caveats of the test.
I.E. the intermittent skips and the gdb hang reported
by Alan Curry.  Add extra info to the log on why the test
is skipped as it may be due to multiple reasons.  Mark
the test as very expensive so that it's not normally run.
2009-12-06 00:42:42 +00:00
Eric Blake
9b4b38f56e id: handle systems without getgroups support
If getgroups failed with ENOSYS, mgetgroups would unnecessarily
fail, and that provoked id into freeing an uninitialized pointer.
Meanwhile, we were not using xalloc_die properly.  Both issues
are better solved in gnulib, by introducing xgetgroups; this
patch uses the new interface.

Regression introduced by commit 6a31fd8d7.

* gnulib: Update, for mgetgroups improvments.
* src/id.c (print_full_info): Adjust caller to die on allocation
failure, and no longer worry about ENOSYS.
* src/group-list.c (print_group_list): Likewise.
* src/setuidgid.c (main): Likewise.
* NEWS: Mention the fix.
* THANKS: Update.
Reported by Scott Harrison.
2009-12-04 19:18:06 -07:00
Jim Meyering
5224fbd6f9 tests: fix a bug in sanitize_path_ that inhibited verbose output
* tests/test-lib.sh (sanitize_path_): Use "set -- ...", not "set - ...",
since the latter turns off the -x setting we rely on for VERBOSE=yes
output.
2009-12-03 17:04:16 +01:00
Eric Blake
d16a8f6c7f sort: fix link failure on Solaris
Commit f9d0bb8481 made sort depend on xnanosleep.

* src/Makefile.am (sort_LDADD): Add LIB_NANOSLEEP.
2009-12-01 13:07:48 -07:00
Jim Meyering
0dc1f4c6f3 rm: fix empty-name bug introduced with conversion to use fts
While "rm ''" would properly fail, "rm F1 '' F2" would fail
to remove F1 and F2, due to the empty string argument.
This bug was introduced on 2009-07-12, via commit 4f73ecaf,
"rm: rewrite to use fts".
* gnulib: Update to latest, for fixed fts.c.
* NEWS (Bug fixes): Describe it.
* tests/rm/empty-name: Adjust for changed diagnostic.
(mk_file): Define, copied from misc/ls-misc.
(empty-name-2): New test, for today's fix.
* lib/xfts.c (xfts_open): Reflect the change in fts_open, now that
it no longer fails immediately when one argument is the empty string.
Assert that the bit flags were not the cause of failure.
* po/POTFILES.in: Remove xfts.c.
* THANKS: Update.
Reported by Ladislav Hagara.
2009-12-01 14:38:39 +01:00
Pádraig Brady
cb775df09e bootstrap: fix handling of various perl --version formats
* bootstrap (get_version): Don't use perl's $] special
variable, as that requires updating all bootstrap.conf files to
use perl's x.yyyzzz version format.  Instead make the regular
expression more general to support version formats from older
perl-5.005_002 (5.5.2) and perl-5.11 which has other numbers
in the version line.
2009-11-30 14:04:43 +01:00
Jim Meyering
b92e0455e1 bootstrap: update from gnulib, for perl-5.11.x support
* bootstrap (get_version): Handle perl separately,
since perl-5.11's --version output is different.
2009-11-29 14:04:09 +01:00
Jim Meyering
3910144405 build: update gnulib submodule to latest 2009-11-29 10:56:57 +01:00
Jim Meyering
4bb812ad49 maint: chown.c: remove a comment
* src/chown.c: Remove old spec-like comment.
2009-11-28 06:48:03 +01:00
Eric Blake
b498c58013 tests: fix link failure on cygwin
Counterpart to commit 8fe40b84bd, since test-link.c uses rename,
and we override gnulib with a rename() replacement that can xalloc_die.

* gl/modules/link-tests.diff: New file.
2009-11-24 06:36:13 -07:00
Eric Blake
f9d0bb8481 build: fix link failure on cygwin
Cygwin 1.5 has a broken sleep, and the gnulib tests dragged in
rpl_sleep which then caused a link failure because it wasn't in
libcoreutils.a.  We could solve it by using the gnulib sleep module.
However, sleep and usleep may interact poorly with SIGALRM, and they
have less granularity; so it is better to adopt a policy that if we
must sleep, prefer xnanosleep.

* src/sort.c (pipe_fork): Use xnanosleep, to avoid the need for
rpl_sleep on cygwin, and to reduce granularity.
(MAX_FORK_TRIES_COMPRESS, MAX_FORK_TRIES_DECOMPRESS): Increase,
to account for reduction in granularity.
* src/tail.c (tail_file): Use xnanosleep in debug code.
* cfg.mk (sc_prohibit_sleep): New rule.
2009-11-24 06:36:07 -07:00
Jim Meyering
ab6b27eba7 tests: avoid test failures when PATH contains an unsearchable directory
* tests/test-lib.sh (sanitize_path_): New function.
Always call it.
2009-11-23 17:49:39 +01:00
Dmitry V. Levin
9cf9f8e1e0 tests: do not fail on read-only root file system
* tests/touch/not-owner: Handle the case when the root file system is
mounted read-only.
Reported by Solar Designer.
2009-11-22 16:40:18 +01:00
Jim Meyering
ad1f07b3c4 maint: cfg.mk: remove factored-out ftp host/dir definitions
* cfg.mk (gnu_ftp_host-alpha, gnu_ftp_host-beta gnu_ftp_host-stable):
(gnu_rel_host, url_dir_list): Remove definitions.  The defaults,
now provided by maint.mk, are the same.
* gnulib: Update for latest, including those maint.mk additions.
2009-11-20 16:39:24 +01:00
Jim Meyering
ddea7b1078 maint: correct comments in test scripts
* tests/misc/pwd-long: Fix spelling of cygwin1.dll in comment.
* tests/rm/fail-eperm: Likewise.
Reported by Eric Blake.
2009-11-20 12:58:51 +01:00
Jim Meyering
5eb8d60e6d maint: don't list "warnings" module explicitly
* bootstrap.conf (gnulib_modules): Remove "warnings", now that
it's pulled in automatically via "manywarnings".
2009-11-20 08:17:24 +01:00
Jim Meyering
395b1c9375 maint: move xfreopen module to gnulib
* gl/lib/xfreopen.c: Remove file.
* gl/lib/xfreopen.h: Likewise.
* gl/modules/xfreopen: Likewise.
2009-11-20 07:37:56 +01:00
Jim Meyering
2f2112335c build: update gnulib submodule to latest 2009-11-20 07:37:56 +01:00
Jim Meyering
30eb606ed5 tests: avoid spurious failures due to insecure directory in PATH
These tests perform no PATH search, and used to simply delete PATH from
the environment.  However, that is not portable, as seen on Cygwin,
where cygwin.dll must be resolvable via PATH when starting a sub-shell.
With commit 0cc04241, we took the alternate approach of untainting the
incoming $ENV{PATH}, but that fails when it contains an other-writable
directory.  Instead, now we hard code it to '/bin:/usr/bin'.

* tests/misc/pwd-long: Hard code $ENV{PATH} to a safe value.
* tests/rm/fail-eperm: Likewise.
Reported by Gilles Espinasse, Andreas Schwab, and Bauke Jan Douma.
2009-11-19 11:12:29 +01:00
Jim Meyering
f18eef3284 build: "make stable" emitted an invalid gnupload command
* cfg.mk (gnu_ftp_host-stable): Rename from gnu_ftp_host-major.
* README-release: Change another s/major/stable/.
2009-11-18 21:04:52 +01:00
Jim Meyering
e246d654f3 post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2009-11-18 19:56:25 +01:00
Jim Meyering
447d245551 version 8.1
* NEWS: Record release date.
2009-11-18 19:38:50 +01:00
Jim Meyering
fee722471c build: update gnulib for Solaris utimens workaround 2009-11-18 15:58:20 +01:00
Jim Meyering
630f4ba107 build: update gnulib submodule to latest 2009-11-18 07:33:02 +01:00
Jim Meyering
2fccfaab19 maint: remove local gnulib-related patches
* gl/lib/printf-args.c.diff: Remove file.  No longer needed.
* gl/lib/vasnprintf.c.diff: Likewise.
2009-11-17 21:44:37 +01:00
Jim Meyering
2b18a4c138 build: update gnulib for Solaris 10 unsetenv work-around 2009-11-17 21:44:30 +01:00
Jim Meyering
6609ccbf87 doc: mention the du/fts vs. NFSv4 mount-point work-around
* NEWS (Changes in behavior): Mention it.
2009-11-17 08:56:12 +01:00
Jim Meyering
d863533752 build: update from gnulib for (un)setenv fixes 2009-11-17 08:48:15 +01:00
Jim Meyering
bf5af9aef8 build: update gnulib submodule to latest 2009-11-16 11:37:09 +01:00
Jim Meyering
161e5120d4 true, false: perform initialization only when argc == 2
* src/true.c (main): There is no reason to examine argv[0],
call atexit, etc., in the usual case in which we're about to exit.
This has the side effect of making it so that these programs
no longer segfault when subjected to execve abuse.
Before this change, these commands would make "true" segfault:
  printf '%s\n' '#include <unistd.h>' 'int main(int c, char**v)' \
    '{ execve (v[1], 0, 0); }' > k.c && gcc k.c && ./a.out $PWD/true
Now it succeeds.  Reported by Tetsuo Handa and Bart Van Assche
via Ondřej Vašík in http://bugzilla.redhat.com/537684.
2009-11-16 09:30:50 +01:00
Jim Meyering
3b997a9bcb tail -F can fail to track a file after it's been rotated
Tailing forever and by-name (--follow=name, -F), tail would
sometimes fail to follow a file that had been removed via rename.
If you can't apply this patch and have tail 7.6 or newer, you can
work around the bug via the undocumented --disable-inotify option.
* src/tail.c (tail_forever_inotify): When tailing by name (-F),
do not un-watch a file upon receipt of the IN_MOVE_SELF event.
Reported by Arjan Opmeer in http://bugs.debian.org/548439.
* NEWS (Bug fixes): Mention it.
Also see http://marc.info/?l=coreutils-bug&m=125829031916515
* tests/Makefile.am (TESTS): Add tail-2/inotify-rotate.
* tests/tail-2/inotify-rotate: New test.
2009-11-16 09:30:43 +01:00
Jim Meyering
00f0cabaec tests: help-version: exit nonzero when $built_programs is empty
* tests/misc/help-version: Use "Exit 1", rather than "Exit $fail"
with fail defined to 0 when $built_programs is empty.
2009-11-14 15:01:44 +01:00
Jim Meyering
5cf6fb3b12 build: do use AM_GNU_GETTEXT's "need-formatstring-macros" option
* configure.ac: Revert commit 49741b61 and add a comment.
Reported by Eric Blake.
2009-11-14 15:01:44 +01:00
Pádraig Brady
9ed5048148 tests: avoid a spurious failure on a loaded system
* tests/misc/timeout-parameters: This test could fail due to
the 1-second timeout expiring before a command of "no_such"
could be exec'd and fail.  Increase to 10 seconds.
2009-11-14 13:53:17 +00:00
Jim Meyering
c3744b25f2 build: require gettext-0.17
* configure.ac: Require gettext-0.17; it was released two years ago.
2009-11-13 17:54:07 +01:00
Jim Meyering
49741b61b7 build: correct gettext configure-time support
* configure.ac: Use AM_GNU_GETTEXT([external], [need-ngettext]),
rather than AM_GNU_GETTEXT([external], [need-formatstring-macros]).
Reported by Martin Jacobs in
http://thread.gmane.org/gmane.comp.parsers.bison.bugs/3181
* THANKS: Add his name.
2009-11-13 17:54:07 +01:00
Jim Meyering
9a91b2a928 build: update gnulib to latest, for fixed test-getgroups.c 2009-11-13 16:39:11 +01:00
Jim Meyering
4c9e7e01fa tests: avoid a spurious timeout on a heavily-loaded system
* tests/misc/timeout-parameters: This test would fail due to
the 1-second timeout expiring before a command of "." could
be exec'd and fail.  Increase to 10 seconds.
2009-11-13 16:38:20 +01:00
Eric Blake
6a31fd8d73 build: update gnulib, for getgroups improvements
A replacement getgroups is now guaranteed to exist, but it may
fail with ENOSYS.  mgetgroups is moved to gnulib, and now takes
gid_t instead of GETGROUPS_T (but setgroups still needs GETGROUPS_T).

* gnulib: Update to latest.
* gl/modules/mgetgroups: Delete, moved to gnulib.
* gl/m4/mgetgroups.m4: Likewise.
* gl/lib/mgetgroups.h: Likewise.
* gl/lib/mgetgroups.c: Likewise.
* src/group-list.c (print_group_list): Adjust callers.
* src/id.c (print_full_info): Likewise.
2009-11-13 07:50:20 -07:00
Jim Meyering
719a95aa9d build: bootstrap: add a comment; generalize autoheader check
* bootstrap: Sync from gnulib and diff.
2009-11-12 09:51:54 +01:00
Jim Meyering
1313107c5c build: update gnulib to latest; more *BSD and Solaris work-arounds 2009-11-12 07:53:42 +01:00
Jim Meyering
cf1bc9810d bootstrap: use git_modules_config in one more place
* bootstrap: Make bootstrap's --gnulib-srcdir more useful (for testing).
2009-11-11 19:07:37 +01:00
Eric Blake
622cf39be6 doc: fix typo
* doc/coreutils.texi (mktemp invocation): Quote shell variable.
2009-11-10 05:56:22 -07:00
Jim Meyering
3aff3ed137 build: update gnulib submodule to latest for its FreeBSD fixes 2009-11-09 11:00:42 +01:00
Pádraig Brady
10d97b3191 ls: fix capability coloring
Capability checking was incorrectly done on just the base name
rather than on the whole path.  Consequently there could be both
false positives and negatives when coloring files with capabilities.
Also capability checking was not done at all in certain cases for
non executable files.  Note passing absolute rather than relative
names to cap_get_file() reduces the has_capability() overhead
from around 33% to 30%.  I.E. ls --color is now around 3% faster.

* src/ls.c (struct fileinfo): Add a has_capability member.
(print_color_indicator): Refactor to pass just a fileinfo pointer
and a flag to say if we're dealing with a symlink target.
(print_name_with_quoting): Likewise.
(gobble_file): Set has_capability in the fileinfo struct.  Also do
a capability check even if executable coloring is disabled.
Ditto for SETUID and SETUID coloring.
Comment on how expensive has_capability() is.
(print_long_format): Adjust to refactored print_name_with_quoting.
(quote_name): Likewise.
(print_file_name_and_frills): Likewise.
* tests/ls/capability: Test the various false positive and negatives.
* THANKS: Add reporter (Ivan Labath).
* NEWS: Mention the fix.
2009-11-09 08:16:20 +00:00
Eric Blake
56b85e035b build: consistently use freopen-safer
cat, head, ptx, shuf, tac, tail, tee, tr, and uniq used freopen
on stdout, and were potentially vulnerable.  dircolors, du, and
tsort only used it on stdin, which is unaffected by freopen_safer,
but this covers all uses for consistency.

* cfg.mk (sc_require_stdio_safer): New rule.
* gl/modules/xfreopen (Depends-on): Add freopen-safer.
* gl/lib/xfreopen.c (includes): Use stdio--.h.
* src/ptx.c (includes): Likewise.
* src/shuf.c (includes): Likewise.
* src/uniq.c (includes): Likewise.
* src/dircolors.c (includes): Likewise.
* src/du.c (includes): Likewise.
* src/tsort.c (includes): Likewise.
2009-11-07 10:10:28 -07:00
Eric Blake
c768e2231b mktemp: fix bug with -q and closed stdout
If stdin or stdout is closed, then freopen(,stderr) can violate
the premise that STDERR_FILENO==fileno(stderr), which in turn
breaks mktemp -q.

* bootstrap.conf (gnulib_modules): Add freopen-safer.
* src/mktemp.c (includes): Use stdio--.h.
* tests/misc/close-stdout: Enhance test to catch bug.
2009-11-07 10:10:25 -07:00
Jim Meyering
9a8d8f46a5 maint: make du's cycle-detection code consistent
* src/du.c (process_file): Revert the du.c-changing part of
commit 8ba5d1a7. Use cycle_warning_required instead.
2009-11-07 08:43:05 +01:00
Jim Meyering
d9dbbb9a45 chcon, chgrp, chmod and chown now diagnose a directory cycle
* lib/xfts.c (cycle_warning_required): New function.
* lib/xfts.h: Declare it.
* src/chown-core.c (change_file_owner): Diagnose a cycle.
* src/chmod.c (process_file): Likewise.
* src/chcon.c (process_file): Likewise.
* NEWS (Bug fixes): Mention this.
2009-11-07 08:43:00 +01:00
Giuseppe Scrivano
74cf4cb26d nproc: A new program to count the available processors
* AUTHORS: Add my name.
* NEWS: Mention it.
* README: Likewise.
* bootstrap.conf (gnulib_modules): Add nproc.
* doc/coreutils.texi (nproc invocation): Add nproc info.
* man/Makefile.am (nproc.1): Add dependency.
* man/nproc.x: New template.
* man/.gitignore: Ignore generated man page.
* po/POTFILES.in: Add src/nproc.c.
* src/.gitignore: Exclude nproc.
* src/Makefile.am (EXTRA_PROGRAMS): Add nproc.
* src/nproc.c: New file.
* tests/Makefile.am (TESTS): Add misc/nproc-{avail,positive}.
* tests/misc/nproc-avail: New file.
* tests/misc/nproc-positive: New file.
2009-11-06 16:54:12 +00:00
Jim Meyering
41456fac8a build: move do-release-commit-and-tag to gnulib
* bootstrap.conf (gnulib_modules): Add do-release-commit-and-tag.
* build-aux/do-release-commit-and-tag: Remove file.  Now it's in gnulib.
* gnulib: Update submodule to the latest, to get the just-moved script.
2009-11-06 11:20:16 +01:00
Eric Blake
dde83c27b4 mktemp: use more robust means to avoid double-close of stdout
Reverts earlier patch - fflush() can succeed but fclose() fail for
some cases of write failures, and we want to catch those.

* src/mktemp.c (stdout_closed): New variable.
(maybe_close_stdout): New function, borrowed from dd.c.
(main): Track whether stdout has been closed.
2009-11-05 13:12:35 -07:00
Eric Blake
20e5a0d562 mktemp: enhance test to catch just-fixed typo behavior
Penance for botching the conflict resolution while rebasing my series.

* tests/misc/mktemp (check_tmp): Test for the bug when wrong parameter
is used.
2009-11-05 13:12:33 -07:00
Jim Meyering
22e4276ed1 mktemp: don't try to close stdout twice
* src/mktemp.c (main): Rather than calling close_stream (which would
make atexit-called close_stdout try to close it a second time),
check for write failure via ferror and fflush.
2009-11-05 16:32:52 +01:00
Jim Meyering
25d2460ae3 mktemp: don't use suff_len in place of #-of-`X's variable
* src/mktemp.c (mkstemp_len, mkdtemp_len): Pass x_len as final
argument, and not suff_len.
2009-11-05 16:23:59 +01:00
Eric Blake
31a9937081 mktemp: add suffix handling
Now that mkstemps is supported, we might as well use it.

* src/mktemp.c (TMPDIR_OPTION): New enum value.
(longopts): Add new option.
(usage): Document it.
(count_trailing_X_s): Rename...
(count_consecutive_X_s): ...to this, and add parameter.
(mkstemp_len, mkdtemp_len): Add parameter.
(main): Implement new option.
(AUTHORS): Add myself.
* AUTHORS (mktemp): Likewise.
* tests/misc/mktemp: Test new option.
* doc/coreutils.texi (mktemp invocation): Document it.
* NEWS: Likewise.
Fixes http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=548316.
2009-11-05 07:10:40 -07:00
Eric Blake
d431c61873 build: reflect gnulib changes to tempname
In glibc 2.11 and gnulib, gen_tempname added a parameter
suffixlen (unfortunately, it is typed as int rather than
size_t, for historical compatibility to a poor choice by BSD).

* gnulib: Import latest changes.
* gl/lib/tempname.h.diff: Accommodate new suffixlen parameter.
* gl/lib/tempname.c.diff (check_x_suffix): Allow for X in suffix
beyond x_suffix_len.
(gen_tempname_len): Add suffixlen parameter.
(__gen_tempname): Update caller.
* src/mktemp.c (mkstemp_len, mkdtemp_len): Update callers.
2009-11-05 07:00:52 -07:00
Eric Blake
5f29d118df build: override gnulib tempname via diff
Diffs are more robust than wholesale replacement, because bootstrap
will inform us of any incompatible changes made in upstream gnulib.

* gl/lib/tempname.h: Change...
* gl/lib/tempname.h.diff: ...to diff.
* gl/lib/tempname.c: Change...
* gl/lib/tempname.c.diff: ...to diff.
2009-11-05 06:59:21 -07:00
Eric Blake
0c5ae3a8ac mktemp: rearrange --help output
* src/mktemp.c (usage): Align indentation and sort by long
options.  Describe valid templates.
Suggested by http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=548316.
2009-11-05 06:59:03 -07:00
Eric Blake
e89a5e9b13 tests: enhance mktemp test
* tests/misc/mktemp: Add more coverage.
2009-11-05 06:54:56 -07:00
Eric Blake
bcca26e838 doc: document mktemp
* doc/coreutils.texi (mktemp invocation): New node.
* TODO: Delete completed task.
2009-11-05 06:54:50 -07:00
Eric Blake
41b3a8ed8b mktemp: don't leave file behind on write failure
* src/mktemp.c (main): Remove just-created file if stdout had
problems.
* bootstrap.conf (gnulib_modules): Add remove.
* tests/misc/close-stdout: Test it.
* NEWS: Document it.
2009-11-05 06:53:21 -07:00
Jim Meyering
cd65f11c4f du: cleanup: remove dead-code vestige of already-removed option
* src/du.c (MEGABYTES_LONG_OPTION, main): Remove vestiges
of already-removed long option, --megabytes.
2009-11-05 08:37:12 +01:00
Jim Meyering
8ba5d1a70c du now diagnoses cycles, rather than ignoring them
* src/du.c (symlink_deref_bits): New global, decl moved from ...
(main): ...here.
(process_file): When fts detects a directory cycle that can't
be due to symlinks, report it and arrange to exit nonzero.
* NEWS (Bug fixes): Mention it.
2009-11-05 08:32:31 +01:00
Jim Meyering
38cb824673 maint: factor out cycle warning, now that du will use it, too
* src/system.h (emit_cycle_warning): Define.  Factored out of...
* src/remove.c (rm_fts): ...here.  Use the new macro.
2009-11-05 08:32:31 +01:00
Jim Meyering
d4b96c26ce tests: rm: add test for today's change in behavior
* tests/Makefile.am (root_tests): Add rm/read-only to the list.
* tests/rm/read-only: New file.
2009-11-03 14:48:10 +01:00
Jim Meyering
7bf2e3db23 rm -f: ignore EROFS when it's really ENOENT
rm -f must not print a diagnostic for a nonexistent file.  However,
most linux-based kernel unlinkat functions set errno to EROFS when
the named file (regardless of whether it exists) would lie on a
read-only file system.  remove.c now performs an extra fstatat call
in that case, to determine whether the file exists.
* src/remove.c (excise): Map EROFS to ENOENT, if a file is nonexistent.
Reported by Steven Drake in <http://savannah.gnu.org/bugs/?27923>.
* NEWS (Changes in behavior): Mention it.
2009-11-03 14:14:00 +01:00
Jim Meyering
87bf834dd3 tests: inotify-race: don't let malfunctioning gdb hang the test
* tests/tail-2/inotify-race: Apply timeout to each gdb invocation.
2009-11-03 14:14:00 +01:00
Eric Blake
8fe40b84bd build: avoid some warnings
* gl/lib/mbsalign.c (mbsalign): Mark unused parameter.
* bootstrap.conf (gnulib_modules): Remove obsolete
rename-dest-slash.
* gnulib-tests/Makefile.am (AM_CFLAGS): Reduce set of warnings for
gnulib tests.
* gl/modules/rename-tests.diff (Makefile.am): New file, to add
LIBINTL to LDADD, since we avoid canonicalize-lgpl module.
* gl/lib/regcomp.c.diff (regerror, calc_next)
(build_collating_symbol, parse_bracket_element, build_equiv_class)
(free_tree): Mark unused parameters.
* gl/lib/regex_internal.h.diff (re_string_elem_size_at): New file,
to mark unused parameters.
* gl/lib/printf-args.c.diff (PRINTF_FETCHARGS): New file, to avoid
type mismatch.
* gl/lib/vasnprintf.c (VASNPRINTF): New file, to avoid shadowing
local variable name.
* .gitignore: Ignore temporary build artifacts.
2009-11-02 06:34:24 -07:00
Eric Blake
565e5f6827 build: update gnulib submodule to latest, for fewer compiler warnings 2009-11-02 06:26:55 -07:00
Jim Meyering
6eb457eaba admin: automate one more part of the release process
This script automates the process of updating NEWS, performs
the resulting final commit (thus with a consistent log message),
and applies a signed tag (v$VERSION) to the result.
* build-aux/do-release-commit-and-tag: New script.
* README-release: Document it.
2009-10-31 11:08:03 +01:00
Jim Meyering
a276ba2dd4 admin: fix typo in release procedure
* README-release: s/gzip/coreutils/
2009-10-31 08:49:46 +01:00
Jim Meyering
71c2f88155 tests: prohibit fail=0 initialization
* cfg.mk (sc_prohibit_fail_0): New rule.
* .x-sc_prohibit_fail_0: New file.
* Makefile.am (syntax_check_exceptions): Distribute the new file.
2009-10-30 12:50:31 +01:00
Jim Meyering
3c88587b2e tests: factor 350 fail=0 initializations into test-lib.sh
Run this command to remove the factored-out "fail=0" lines.
perl -ni -e '/^fail=0$/ or print' $(g grep -l '^fail=0$')
* tests/test-lib.sh: Initialize fail=0 here, not in 300+ scripts.
* tests/...: nearly all bourne shell scripts
Suggested by Eric Blake.
2009-10-30 12:50:12 +01:00
Jim Meyering
12a0a583f6 tests: remove the less-regular fail=0 assignments manually
* tests/tail-2/assert-2:
* tests/tail-2/assert:
* tests/cp/file-perm-race:
* tests/misc/df:
* tests/misc/truncate-dir-fail:
2009-10-30 10:49:22 +01:00
Jim Meyering
39da66f979 tests: don't let a fail=1 env. setting induce unwarranted test failure
* cfg.mk (sc_fail_is_initialized): New rule.
Fix the offenders:
* tests/cp/acl: Set fail=0
* tests/cp/backup-is-src: Likewise.
* tests/cp/file-perm-race: Likewise.
* tests/cp/reflink-auto: Likewise.
* tests/cp/same-file: Likewise.
* tests/ln/backup-1: Likewise.
* tests/misc/su-fail: Likewise.
* tests/misc/truncate-owned-by-other: Likewise.
* tests/mkdir/p-3: Likewise.
* tests/mkdir/selinux: Likewise.
* tests/mkdir/special-1: Likewise.
* tests/mv/acl: Likewise.
* tests/mv/backup-is-src: Likewise.
* tests/mv/diag: Likewise.
* tests/mv/force: Likewise.
* tests/mv/hard-link-1: Likewise.
* tests/mv/into-self-3: Likewise.
* tests/mv/sticky-to-xpart: Likewise.
* tests/touch/now-owned-by-other: Likewise.
2009-10-29 16:51:07 +01:00
Jim Meyering
22776f84cb remove stray closing comment delimiter, "*/", in previous change
* gl/lib/regexec.c.diff: Fix a typo.
2009-10-29 14:53:45 +01:00
Eric Blake
17b7d09bf2 maint: avoid exiting with magic number
Cope with gnulib's new sc_prohibit_magic_number_exit rule.

* .x-sc_prohibit_magic_number_exit: New file, to add exemptions.
* Makefile.am (syntax_check_exceptions): Distribute it.
* lib/euidaccess-stat.c (main): Fix culprits.
* src/chcon.c (main): Likewise.
* src/runcon.c (main): Likewise.
* src/setuidgid.c (main): Likewise.
2009-10-29 07:31:23 -06:00
Jim Meyering
f2859424cb build (--enable-gcc-warnings): enable gcc's -Werror also in lib/
* configure.ac (GNULIB_WARN_CFLAGS): Define.
* lib/Makefile.am (AM_CFLAGS): Use $(GNULIB_WARN_CFLAGS)
rather than $(WARN_CFLAGS) and add $(WERROR_CFLAGS).
* gl/lib/regcomp.c.diff: New file.
* gl/lib/regex_internal.c.diff: New file.
* gl/lib/regexec.c.diff: New file.
2009-10-29 08:14:42 +01:00
Jim Meyering
56a66d78ff build: update gnulib submodule to latest 2009-10-29 08:14:42 +01:00
Jim Meyering
e26cb21e6b build: allow whitespace violations in gl/lib/*.diff files
* .gitattributes: Exempt gl/lib/*.diff.
* .x-sc_prohibit_tab_based_indentation: Likewise.
* .x-sc_space_tab:Likewise.
2009-10-29 08:14:42 +01:00
Eric Blake
1c59bb3cef nice, nohup, su: detect write failure to stderr
These programs can print non-fatal diagnostics to stderr prior to
exec'ing a subsidiary program.  However, if we thought the situation
warranted a diagnostic, we insist that the diagnostic be printed
without error, rather than blindly exec, as it may be a security risk.

For an example, try 'nice -n -1 nice 2>/dev/full'.  Failure to raise
priority (by lowering niceness) is not fatal, but failure to inform
the user about failure to change priority is dangerous.

* src/nice.c (main): Declare failure if writing advisory message
to stderr fails.
* src/nohup.c (main): Likewise.
* src/su.c (main): Likewise.
* tests/misc/nice: Test this.
* tests/misc/nohup: Likewise.
* NEWS: Document this.
2009-10-28 21:12:41 -06:00
Jim Meyering
536a1fbe5f doc: tell --enable-gcc-warnings users where to report problems
* README-hacking: Add a caveat for --enable-gcc-warnings.
2009-10-28 18:13:44 +01:00
Jim Meyering
ce22916610 build: make doc checks more user-friendly
* doc/Makefile.am (check-texinfo): Begin moving each individual test
into its own rules.
(sc-avoid-builtin, sc-avoid-path): New rules.
Extracted from check-texinfo.
(syntax_checks): Add them.
2009-10-28 18:07:22 +01:00
Jim Meyering
da17f99b20 doc: avoid failing "make check"
* doc/coreutils.texi (env invocation): s/builtin/built-in/
2009-10-28 18:07:21 +01:00
Pádraig Brady
c07b181396 doc: improve the echo and printf help on escapes
* src/printf.c (usage): Merge strings with echo.c to
aid translators.  Move the description for \NNN beside
the other numeric escape codes.  Don't mention
"character" as that suggests character conversion.
* src/echo.c (usage): Likewise.
Also mention the \xHH escape sequence.
2009-10-28 17:01:29 +00:00
Pádraig Brady
2904d675a4 echo, printf: interpret \e as the Escape character
Match gcc, perl, bash, ksh, tcsh, ... in supporting \e.
* src/printf.c (print_escape_char): Output \x1B when \e encountered.
* src/echo.c (main): Likewise.
* src/stat.c (print_escape_char): Likewise.
* doc/coreutils.texi (echo invocation): Add \e to the list.
* tests/misc/printf: Verify that \e outputs \x1B.
* NEWS: Mention the change in behaviour.
2009-10-28 16:37:07 +00:00
Eric Blake
54491d2751 printenv: ignore bogus variable names
Exposed by env a=b=c printenv a=b.

* src/printenv.c (main): Silently reject = in names.
* tests/misc/printenv: Test for it.
* NEWS: Document this.
2009-10-28 06:24:52 -06:00
Pádraig Brady
42d12b45d3 maint: avoid "make syntax-check" failure
* src/printenv.c: Remove unused "long-options.h"
2009-10-28 11:50:54 +00:00
Eric Blake
75efc921b0 doc: turn env comments into documentation
* src/env.c: Convert introductory comments...
* doc/coreutils.texi (env invocation): ...into documentation.
Suggested by Jim Meyering.
2009-10-27 19:55:37 -06:00
Eric Blake
d6de2f198e env, printenv: add -0/--null option
Allows for unambiguous processing when environment values (or even
non-portable names!) contain newline.

* src/env.c (longopts): Add new option.
(usage): Document it.
(main): Implement it.
* src/printenv.c (longopts): New variable.
(usage): Document new option.
(main): Implement it.
* doc/coreutils.texi (Common options): New macro optNull.
(du invocation, env invocation, printenv invocation): Use it.
* NEWS: Mention this.
* tests/misc/env-null: New test.
* tests/Makefile.am (TESTS): Run it.
2009-10-27 19:55:35 -06:00
Eric Blake
1a81342089 tests: add printenv coverage
* tests/misc/printenv: New test.
* tests/Makefile.am (TESTS): Run it.
* .gitignore: Ignore more cruft.
2009-10-27 19:53:37 -06:00
Eric Blake
0cc0424119 tests: fix PATH problems on cygwin
* tests/misc/sort-compress: Remove non-portable over-restriction
of PATH; besides, commit 3ea177e changed sort to no longer default
to gzip.
* tests/rm/fail-eperm: Untaint, rather than clear, PATH.
* tests/misc/pwd-long: Likewise.  Also skip test if long path
cannot be created.
(normalize_to_cwd_relative): Use eq rather than ==, since cygwin
perl doesn't properly handle 64-bit ino_t numerically.
2009-10-27 18:53:44 -06:00
Eric Blake
f00bbe33e4 tests: clean up tests of env -- handling
The comment in env.c about -- handling has not matched the behavior
in the code since the initial commit back in 1992.

* src/env.c: Fix bogus comment.
* tests/misc/env: Further tweaks, avoiding PATH problems inherent
in testing -i, and testing program name containing =.
* doc/coreutils.texi (env invocation): Mention that intermediate
program is needed to invoke program with name containing =.
2009-10-26 21:30:34 -06:00
Eric Blake
0f3f6bf6bf doc: document PATH interactions with env
* doc/coreutils.texi (env invocation): Mention that PATH is
modified prior to exec.
* tests/misc/env: Test this.
2009-10-26 21:30:32 -06:00
Eric Blake
243f1b1c71 env: reject bogus -u arguments
* src/env.c (main): Use unsetenv rather than putenv to remove
items from environ, and check for failure.
* bootstrap.conf (gnulib_modules): Add unsetenv.
* tests/misc/env: Test this.
* NEWS: Document it.
2009-10-26 21:30:30 -06:00
Eric Blake
c6900474ef maint: let gnulib provide environ
* bootstrap.conf (gnulib_modules): Add environ.
* src/env.c (environ): Delete declaration.
* src/printenv.c (environ): Likewise.
* src/stdbuf.c (environ): Likewise.
* src/su.c (environ): Likewise.
2009-10-26 21:30:28 -06:00
Eric Blake
dae24f5ffc tests: avoid file name not portable to cygwin
* tests/misc/chroot-fail: Use 'no_such', not '...', since cygwin
1.5 silently strips trailing dots.
* tests/misc/nice-fail: Likewise.
* tests/misc/stdbuf: Likewise.
* tests/misc/timeout-parameters: Likewise.
2009-10-26 06:05:44 -06:00
Jim Meyering
c695781753 tests: rm/one-file-system: work around umount failure
* tests/rm/one-file-system (cleanup_): Unmount a/b, rather than
"$other_partition_tmpdir", to accommodate those who link /etc/mtab
to /proc/mounts.  Reported by Gilles Espinasse in
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/18508
2009-10-26 10:21:25 +01:00
Jim Meyering
d9cf7c911f tests: adjust new env test not to fail
* tests/misc/env: Create ./-i as a link to our "echo" binary,
rather than as a bourne shell script, so that env can exec it.
Set PATH to ".".
2009-10-26 09:59:32 +01:00
Jim Meyering
50e837b1c4 tests: nice: adjust new tests to work more portably
* tests/misc/nice (tests): Accommodate a nice program for which
"nice -n -1 nice" prints nothing.  It should print -1 or (usually) 0.
Otherwise, we'd get syntax errors.
2009-10-26 08:25:34 +01:00
Jim Meyering
501bf7b589 nice: execute program even when setpriority fails due to EACCES
* src/nice.c (perm_related_errno): New function.
(main): Use it, rather than testing only errno == EPERM.
* NEWS (Bug fixes): Mention it.
2009-10-26 08:25:34 +01:00
Pádraig Brady
69fbfd400c timeout: don't orphan monitored programs if they ignore specified signals
* src/timeout.c (install_signal_handlers): Handle any user
specified signal, so that if it does not cause the child
to exit then we don't exit and orphan the child. Previously this
for example, would leave an orphan dd process running:
timeout -sUSR1 1s dd if=/dev/zero of=/dev/null
* NEWS: Mention the fix.
2009-10-25 23:28:38 +00:00
Eric Blake
30e4b6e84b tests: test recent status changes
* tests/misc/nice: Enhance test.
* tests/misc/chroot-fail: New test.
* tests/misc/env: Likewise.
* tests/misc/nice-fail: Likewise.
* tests/misc/su-fail: Likewise.
* tests/Makefile.am (TESTS): Run new tests.
2009-10-23 16:32:26 -06:00
Eric Blake
2122247aca maint: move chroot test
* tests/chroot/credentials: Move...
* tests/misc/chroot-credentials: ...here, to reduce number of
directories.
* tests/Makefile.am (root_tests): Reflect rename.
2009-10-23 16:31:34 -06:00
Eric Blake
bd933c1250 tests: enhance stdbuf and timeout tests
* tests/misc/timeout-parameters: Validate exact exit status.
* tests/misc/stdbuf: Likewise.
* tests/misc/timeout: Likewise.  Use require_built_.
* tests/misc/arch: Likewise.
2009-10-23 16:31:23 -06:00
Eric Blake
1ce9e1e5ca nohup: use EXIT_CANCELED if not POSIXLY_CORRECT
* src/nohup.c (NOHUP_FAILURE): Rename...
(POSIX_NOHUP_FAILURE): ...to this.
(main): Pay attention to POSIXLY_CORRECT, to determine whether to
use status 125 or 127.
* doc/coreutils.texi (nohup invocation): Document this.
* NEWS: Likewise.
* tests/misc/invalid-opt (exit_status): Adjust expected results.
* tests/misc/help-version (expected_failure_status): Likewise.
* tests/misc/nohup: Likewise.
2009-10-23 16:24:08 -06:00
Eric Blake
b6540b96ba chroot, env, nice, su: use EXIT_CANCELED for internal failure
* src/chroot.c (main): Use EXIT_CANCELED, not EXIT_FAILURE.
* src/env.c (main): Likewise.
* src/nice.c (main): Likewise.
* src/su.c (change_identity, main): Likewise.
* doc/coreutils.texi (chroot invocation, env invocation)
(nice invocation, su invocation): Document this.
* NEWS: Likewise.
* tests/misc/invalid-opt (exit_status): Adjust expected results.
* tests/misc/help-version (expected_failure_status): Likewise.
2009-10-23 16:24:05 -06:00
Eric Blake
97777f559a tests: accommodate BSD getopt
* tests/misc/invalid-opt (err_subst): Support alternate spelling.
2009-10-23 16:24:02 -06:00
Eric Blake
c0dcf3238b build: prohibit improper use of stat and lstat
* cfg.mk (sc_prohibit_stat_macro_address): New rule.
* src/ln.c (do_link): Adjust comment to avoid false positive.
* src/stat.c (do_stat): Likewise.
* src/touch.c (main): Likewise.
2009-10-23 06:29:54 -06:00
Eric Blake
a08e13a0fb build: update gnulib submodule to latest, for test cleanups 2009-10-22 21:25:39 -06:00
Eric Blake
5e361387d0 maint: turn on compiler warnings for gnulib tests
* gnulib-tests/Makefile.am (AM_CFLAGS): Add WARN_CFLAGS.
* configure.ac (enable-gcc-warnings): Also use -funit-at-a-time,
to silence gcc 4.3.4 -Wdisabled-optimization.
* .gitignore: Ignore some more files.
2009-10-22 08:05:09 -06:00
Jim Meyering
cbf36952d8 build: prohibit direct use of readlink or readlinkat
* cfg.mk (sc_prohibit_readlink): New rule.
Suggested by Eric Blake.
2009-10-22 12:12:24 +02:00
Giuseppe Scrivano
029b6b14c5 tests: add a test for the `tail -f' race condition bug
If new data becomes available between the initial read and when tail
registers the inotify watch descriptors, ensure that it is read
before a new event happens on the file.
* tests/Makefile.am (TESTS): Add tail-2/inotify-race.
* tests/tail-2/inotify-race: New file.
2009-10-22 10:25:58 +02:00
Giuseppe Scrivano
cd0f3036f6 tail -f: avoid a race condition
* NEWS (Bug fixes): Mention it.
* src/tail.c (check_fspec): New function.
(tail_forever_inotify): Ensure there is no new data before entering the
inotify events wait loop.
2009-10-22 09:11:24 +02:00
Eric Blake
9abbe32c2e build: update gnulib submodule to latest, for utimens enhancements 2009-10-21 21:44:56 -06:00
Eric Blake
54645c195c tests: ensure touch honors trailing slash
* tests/touch/trailing-slash: New test.
* tests/Makefile.am (TESTS): Run it.
2009-10-21 20:45:27 -06:00
Pádraig Brady
710fe413fe md5sum, sha*sum, sum: line-buffer the printed checksums
* src/md5sum.c (main): Set stdout to line buffered mode
to ensure parallel running instances don't intersperse
their output.  This adds 5% to the run time in the worst case
of many zero length files, or 2% with standard file sizes.
* src/sum.c (main): Likewise.
* tests/misc/md5sum-parallel: New test for atomic output.
* tests/Makefile.am: Reference it.
* NEWS: Mention the fix
2009-10-21 16:56:00 +01:00
Pádraig Brady
71adb516de maint: issue warnings for more missing optional libraries
* README-hacking: Suggest to use ./configure --quiet so that
any warnings are easily noticed.
* m4/gmp.m4 (cu_GMP): Warn if libgmp is not available.
* m4/jm-macros.m4 (coreutils_MACROS): Normalize the libcap warning.
* m4/xattr.m4 (gl_FUNC_XATTR): Warn if libattr is not available.
2009-10-20 17:11:00 +01:00
Jim Meyering
6ac6c7e4b7 build: use gnulib's isblank module
* bootstrap.conf (gnulib_modules): Add isblank.
* src/system.h (isblank): Don't define.
* m4/check-decl.m4: Don't check for isblank declaration.
* gnulib: Update submodule to latest.
2009-10-19 07:57:15 +02:00
Jim Meyering
f26508204b maint: factor out duplication in currently unused rules
* src/Makefile.am (fs_normalize_perl_subst): Define.
(fs-magic, fs-kernel-magic): Use it.
2009-10-18 10:26:15 +02:00
Eric Blake
9e13b6a0b4 touch: add -h to change symlink timestamps, where supported
* src/touch.c (no_dereference): New flag variable.
(longopts): Add -h/--no-dereference.
(touch): Add symlink handling.
(usage): Document new option.
(main): Accept new option.
* NEWS: Document it.
* doc/coreutils.texi (touch invocation): Likewise.  Also mention
birthtime.
* tests/touch/no-dereference: New test.
* tests/Makefile.am (TESTS): Run it.
2009-10-17 14:36:28 -06:00
Jim Meyering
527fb951de tests: abmon-align: avoid test failure
* tests/ls/abmon-align: Don't remove (1d;) the first line of output.
That was making the test consider only 11 of 12 month names.
Rewrite not to use \(.*\), as that provoked a malfunction in GNU sed
on powerpc Mac OS X (though we don't know yet whether this is due to a
sed bug, or to miscompilation).  Nelson Beebe reported the test failure.
2009-10-17 12:21:52 +02:00
Jim Meyering
f8653f2af3 build: update gnulib submodule to latest 2009-10-17 12:20:41 +02:00
Jim Meyering
2fa407885c build: don't let environment settings perturb build
Setting the envvars, LIB_FDATASYNC, LIB_XATTR or LIB_CRYPT
could cause a configure-time and/or build-time malfunction.
Typically, a configure-time function-in-library test is performed
via code like this:

  LIB_VAR=
  AC_SUBST([LIB_VAR])
  prefix_saved_LIBS=$LIBS
    AC_SEARCH_LIBS([FUNC], [LIB_NAME],
                   [test "$ac_cv_search_FUNC" = "none required" ||
                    LIB_VAR=$ac_cv_search_FUNC])
  LIBS=$prefix_saved_LIBS

However, in each of the files affected by this change, the LIB_VAR=
initialization was omitted.  Thus, when set in the environment, its
value would propagate into generated Makefiles when FUNC is not found
in LIB_NAME.
* m4/jm-macros.m4 (coreutils_MACROS): Initialize AC_SUBST'd var
* m4/lib-check.m4 (cu_LIB_CHECK): Likewise.
* m4/xattr.m4 (gl_FUNC_XATTR): Likewise.
2009-10-15 21:03:40 +02:00
C de-Avillez
b3cfa712ca tail: add add missing backslash at the end of a line in usage
* src/tail.c (usage): Add missing backslash at the end of a line.
2009-10-13 11:20:20 +02:00
Eric Blake
f25273d7f1 tail: tweak usage for more clarity
* src/tail.c (usage): Spell out -n +K.
* THANKS: Update.
Reported by Jan-Pawel Wrozstinski.
2009-10-12 07:00:12 -06:00
Eric Blake
26e8e602a8 touch: optimize use of utimens
* src/touch.c (main): Use UTIME_NOW rather than calling gettime.
(touch): Use UTIME_OMIT rather than stat.
2009-10-10 15:16:55 -06:00
Eric Blake
7280a913a1 copy: allow symlink timestamp preservation on more systems
* src/copy.c (utimens_symlink): Simplify by using lutimens.
* m4/jm-macros.m4 (coreutils_MACROS): Drop utimensat; gnulib does
this for us.
* tests/cp/preserve-slink-time: Recognize lutimes support.
2009-10-10 15:16:52 -06:00
Eric Blake
7ff00ca82f build: update gnulib submodule to latest, for utimens improvements 2009-10-10 15:16:50 -06:00
Jim Meyering
f7b1873805 tests: adjust tail-2/pid to work around FreeBSD 6.1 failure
* tests/tail-2/pid: Run tail -f --pid=... on an actual file, not on
/dev/null, to avoid this failure on FreeBSD 6.1: tail: /dev/null:
cannot change nonblocking mode: Inappropriate ioctl for device
2009-10-10 15:05:09 +02:00
Eric Blake
c2bebf63ed maint: touch up previous LDADD patch
* src/Makefile.am (dir_LDADD): Delete; the ls_LDADD line covers this.
2009-10-10 06:28:40 -06:00
Jim Meyering
d74a1b005c build: build uname(1) unconditionally
Before, on a system without the uname function, the build
system would detect that and not build/install a uname program.
Now that gnulib guarantees a uname function, ...
* configure.ac: Don't check for the uname function.
* src/Makefile.am (build_if_possible__progs): Move uname...
(EXTRA_PROGRAMS): ...to this list.
2009-10-10 09:03:15 +02:00
Jim Meyering
4f1a3eda10 maint: list program names one per line
* src/Makefile.am (EXTRA_PROGRAMS): List them one per line.
(build_if_possible__progs): Likewise.
2009-10-10 08:58:43 +02:00
Jim Meyering
c9e7b8844b build: ls: fix link failure due to missing -lacl
* src/Makefile.am (ls_LDADD): Re-add $(LIB_ACL).
Inadvertently-removed by commit 78c93601.
2009-10-10 08:24:02 +02:00
Eric Blake
219f2f0538 maint: touch up previous LDADD patch
* src/Makefile.am (stdbuf_LDADD): Add missing primer.
(hostname_LDADD, uname_LDADD): Add GETHOSTNAME_LIB.
* bootstrap.conf (gnulib_modules): Add uname.
2009-10-09 20:08:03 -06:00
Eric Blake
78c9360178 maint: improve additional library tracking
* src/Makefile.am (LDADD): Refactor, to make per-library additions
to individual programs easier to maintain.
2009-10-09 19:28:07 -06:00
Jim Meyering
0023f65fd7 chcon: don't disable just because SELinux is disabled
* src/chcon.c (main): Now that gnulib provides getfilecon wrappers,
we can revert most of the 2009-10-05 commit 3a97d664, "chcon: exit
immediately if SELinux is disabled", since chcon is still useful as
long as the file system provides handlers for the security.*
name space.  gnulib's getfilecon wrappers ensure that an offending
context now evokes a return value of -1.
Prompted by comments from Stephen Smalley in
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/18378/focus=18394
* NEWS (Bug fixes): Mention it.
2009-10-09 14:33:10 +02:00
Jim Meyering
57d9263ca5 ls: remove explicit getfilecon work-around
* src/ls.c (gobble_file): Remove l?getfilecon work-around,
now that the gnulib wrappers handle it for us.
2009-10-09 14:33:10 +02:00
Jim Meyering
e11a0319b3 build: update gnulib submodule to latest, for getfilecon wrappers 2009-10-09 14:33:10 +02:00
Eric Blake
c039c96449 maint: use X2NREALLOC in more places
* src/chroot.c (set_additional_groups): Use X2NREALLOC rather than
x2nrealloc.
* src/factor.c (emit_factor): Likewise.
* src/setuidgid.c (main): Likewise.
2009-10-08 20:30:08 -06:00
Eric Blake
aa092ccf6a maint: remove unused macros and declarations
* src/system.h (EDQUOT, EISDIR, ENOSYS, EOVERFLOW, F_OK, X_OK)
(W_OK, R_OK): Delete; macros provided by gnulib.
(includes): Gnulib guarantees both <time.h> and <sys/time.h>, in
either order.
(free, malloc, memchr, realloc, getenv, lseek): Delete, gnulib
guarantees these declarations.
* m4/check-decl.m4 (gl_CHECK_DECLS): Delete checks now done by
gnulib.
2009-10-08 20:30:06 -06:00
Eric Blake
2a876d901d maint: move timeout exit statuses
* src/timeout.c (EXIT_TIMEDOUT, EXIT_CANCELED): Remove as
macros...
* src/system.h (EXIT_TIMEDOUT, EXIT_CANCELED): ...and provide as
enum values instead.
* src/stdbuf.c (EXIT_CANCELED): Delete.
2009-10-08 20:30:03 -06:00
Eric Blake
a797c4d7d3 stat: test recent patch
* tests/misc/stat-slash: New test.
* tests/Makefile.am (TESTS): Run it.
2009-10-08 20:30:00 -06:00
Eric Blake
7a3bc1bf27 stdbuf: improve path search
* src/stdbuf.c (set_program_path): Use gnulib methods for better
file name handling.
* bootstrap.conf (gnulib_modules): Add xreadlink.
2009-10-08 06:52:18 -06:00
Eric Blake
00674c7475 stat: work with recent gnulib changes
* src/stat.c (do_stat): Don't mask function-like stat macro.
2009-10-08 06:52:15 -06:00
Jim Meyering
eb5f06f2a6 stat: add support for many more file system types
* src/stat.c (human_fstype): Add the following FS types,
from <linux/magic.h>: afs, anon-inode FS, btrfs, cgroupfs,
cramfs-wend, debugfs, futexfs, inotifyfs, minux3, securityfs,
selinux, xenfs.
Also add "nilfs".
* src/Makefile.am (fs-kernel-magic): New rule.
* NEWS (Bug fixes): Mention this.
2009-10-08 10:18:28 +02:00
Jim Meyering
8e32390716 stat: recognize CIFS and HFS file system types
* src/stat.c (human_fstype) [CIFS, HFS]: Add new file system types.
Prompted by a report from Stuart Kemp.
Normalize the form of a few hexadecimal magic numbers.
Alphabetize on S_MAGIC_ case names.
* src/Makefile.am (fs-magic-compare, fs-def, fs-magic): New rules, to
automate comparison of our list with that in the Linux statfs man page.
* NEWS (Bug fixes): Mention it.
2009-10-08 09:07:12 +02:00
Guenter Knauf
b95be30e3f md5sum, sha*sum: also accept openssl checksum syntax
* src/md5sum.c (split_3): Accept openssl checksum syntax, which
differs only by two spaces from that of the bsd checksum tools:
openssl: MD5(f)= d41d8cd98f00b204e9800998ecf8427e
bsd:     MD5 (f) = d41d8cd98f00b204e9800998ecf8427e
2009-10-07 09:31:27 +02:00
Jim Meyering
d183a15cbb maint: make release-making instructions more generic
* README-release: Make instructions more generic.
2009-10-06 16:49:36 +02:00
Jim Meyering
96829a9ff0 post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2009-10-06 13:20:18 +02:00
Jim Meyering
ca1e31f3c5 version 8.0
* NEWS: Record release date.
2009-10-06 13:04:16 +02:00
Jim Meyering
3c40fdfba6 build: update gnulib submodule to latest 2009-10-06 11:15:54 +02:00
Ondřej Vašík
3a97d664b9 chcon: exit immediately if SELinux is disabled
This change happens to avoid an abort in chcon when SELinux is
disabled while operating on a file with an "unlabeled" context from
back in 2006.  However, that same abort can still be triggered by the
same file when running chcon with SELinux enabled.  This bug in chcon
will be fixed in a subsequent commit via a getfilecon wrapper.  See
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/18378/focus=18384
for how to correct your disk attributes to avoid triggering this bug.
* src/chcon.c (main): Exit immediately if SELinux is disabled.
Reported in http://bugzilla.redhat.com/527142 by Yanko Kaneti.
* src/runcon.c (main): Do not hardcode program name in error message.
* THANKS: Update.
2009-10-06 10:10:51 +02:00
Jim Meyering
addb62da92 build: update gnulib submodule to latest 2009-10-03 06:56:55 +02:00
James R. Van Zandt
569df689e3 dircolors: highlight .cgm and .emf as images
* src/dircolors.hin: Add .cgm, .emf.
* THANKS: Update.
2009-10-02 10:58:05 -06:00
Jim Meyering
df0c0381ab maint: remove obsolete syntax-check exclusion
* cfg.mk (local-checks-to-skip): Remove strftime-check.
2009-10-02 15:48:08 +02:00
Pádraig Brady
f8726e05c4 tail: avoid a race where we could miss new data with --pid
* src/tail.c (tail_forever, tail_forever_inotify): Close a race in
tail_forever_inotify where new data written after the file check by
a now dead process, but before the pid check, is not output.  We use
the POSIX guarantee that read() and write() are serialized wrt each
other even in separate processes, to assume full file consistency
after exit() and so poll for new data _after_ the writer has exited.
This also allows us to not redundantly _wait_ for new data if the
process is dead.
* tests/tail-2/pid: Remove the now partially invalid sub second sleep
check as we now don't unconditionally wait, and replace it with a check
for the redundant sleep.  Also clarify some of the existing comments.
* NEWS: Mention the fix.
2009-10-02 14:00:06 +01:00
Jim Meyering
95c01c656e maint: move gnu-web-doc-update script to gnulib
* bootstrap.conf (gnulib_modules): Add gnu-web-doc-update.
Remove gendocs, since gnu-web-doc-update depends on it.
* gnu-web-doc-update: Remove file, now that we get it from gnulib.
2009-10-02 12:10:21 +02:00
Jim Meyering
8a7f66feb4 build: update gnulib submodule to latest 2009-10-02 12:10:21 +02:00
Jim Meyering
30a227673e tests: tail-2/pid: use a 3-second timeout, not 1
* tests/tail-2/pid: When using the timeout program to ensuring that
tail -s.1 --pid=$PID_T_MAX does not wait forever, use a timeout longer
than 1 second.  A 1-second timeout could be too short on a very busy
system, and result in a timeout, and hence false-positive failure.

2009-09-30  Jim Meyering  <meyering@redhat.com>
2009-09-30 23:28:13 +02:00
Jim Meyering
dd8db19cc7 build: update gnulib submodule to latest 2009-09-30 17:46:42 +02:00
Jim Meyering
569e387b8a build: translate diagnostics from two new files
* po/POTFILES.in: Add two new files: lib/siglist.h, lib/strsignal.c
2009-09-30 17:04:29 +02:00
Jim Meyering
9ca7d6b49e build: now that we use the lock module, don't exclude lock.m4
* bootstrap.conf: Don't exclude lock.m4.
2009-09-30 17:04:29 +02:00
Pádraig Brady
d4c7114bce ls: always print "?" for allocated size of a dereferenced dangling symlink
Previously for `ls -Ls` (but not `ls -Lsl`), we referenced
the st_blocks returned from the previous failed stat() call.
This undefined value was seen to be 0 for dangling symlinks at least.
* src/ls.c (print_file_name_and_frills, length_of_file_name_and_frills):
Don't use st_blocks if the previous stat() failed
* tests/ls/dangle: Add a test case
* NEWS: Mention the fix, and roll up related items into a single entry.
2009-09-30 15:42:35 +01:00
Jim Meyering
ce1069c215 build: use gnulib's freopen module
* bootstrap.conf (gnulib_modules): Add freopen, strsignal, fsync.
Exposed via make CFLAGS=-DGNULIB_POSIXCHECK 2>&1 \
|perl -lne '/.* use gnulib module (\S+).*/ and print $1' \
|sort |uniq -c|sort -nr
(avoided_gnulib_modules): Don't avoid the "lock" module.
Now it's required, as a dependency of the strsignal module.
2009-09-30 09:39:48 +02:00
Jim Meyering
a033e28737 stat: interpret "-" as standard input
* src/stat.c (do_stat): Interpret a command line argument of "-"
to mean "standard input", like many other tools do.
(do_statfs): Fail upon any attempt to use "-".
* NEWS (Changes in behavior): Mention it.
* tests/misc/stat-hyphen: New test, to exercise the above.
* tests/Makefile.am (TESTS): Add misc/stat-hyphen.
2009-09-29 16:04:12 +02:00
Jim Meyering
b7aaa0da8b ls: don't use an undefined struct stat after failed stat/lstat
* src/ls.c (format_inode): Access f->stat only if f->stat_ok is set.
* NEWS (Bug fixes): Mention it.
Improved-by: Pádraig Brady <P@draigBrady.com>
2009-09-29 14:12:30 +02:00
Jim Meyering
36edf7bad2 ls: print "?", not "0" as inode of dereferenced dangling symlink
ls prints inode numbers two ways: for long (-l) listings,
and for short ones, e.g., ls -li and ls -i.  The code to print
long listings properly printed "?" when the inode was unknown,
but the code for handling short listings would print 0 instead.
Factor out the formatting code into a new function so ls prints
the right string ("?") from both places:
* NEWS (Bug fixes): Mention it.
* src/ls.c (format_inode): New function.
(print_long_format): Use it here.
(print_file_name_and_frills): Use it here, too.
* tests/ls/dangle: Exercise this fix.
Reported by Yang Ren in http://bugzilla.redhat.com/525400
2009-09-29 11:42:45 +02:00
Jim Meyering
242689c7f9 ls: with -LR, exit with status 2 upon detecting a cycle
* src/ls.c (print_dir): Diagnosing the cycle is not enough.
Also set exit status to 2.  This is what Solaris' /bin/ls does, too.
* tests/ls/infloop: Rework test: match both expected stdout and stderr.
Require an exit status of 2 in this case.
* doc/coreutils.texi (ls invocation): Mention that a loop provokes
in an exit status of 2.
* NEWS (Bug fixes): Mention it.
Reported by Yang Ren in http://bugzilla.redhat.com/525402.
* THANKS: Correct ordering of Yang Ren's names.
2009-09-29 07:28:39 +02:00
Jim Meyering
30c65cd49c maint: factor coreutils-specific code out of bootstrap
* bootstrap (bootstrap_epilogue): Define a default, empty function.
Remove coreutils-specific code, and instead,
invoke this new function at the end of this script.
* bootstrap.conf (bootstrap_epilogue): Define, to override the default.
2009-09-26 14:45:50 +02:00
Eric Blake
ca9e212cf8 cp, mv: use linkat to guarantee semantics
* src/copy.c (copy_internal): Use linkat, not link.
2009-09-25 07:03:36 -06:00
Eric Blake
efcee783e4 ln: add -L/-P options
* src/ln.c (STAT_LIKE_LINK): Delete.
(logical): New flag.
(long_options): Add -L, -P.
(usage): Mention them.
(main): Choose between them.
(do_link): Perform correct action.
* tests/ln/misc: Move hard-to-sym portion of test...
* tests/ln/hard-to-sym: ...into new test, and add more.
* tests/Makefile.am (TESTS): Run new test.
* NEWS: Document this.
* doc/coreutils.texi (link invocation, ln invocation): Likewise.
* bootstrap.conf (gnulib_modules): Add linkat.
2009-09-25 07:03:03 -06:00
Eric Blake
fb59d72f0a build: update gnulib submodule to latest 2009-09-24 19:40:31 -06:00
Pádraig Brady
a037e838e1 maint: Use logical rather than bitwise operators on bools
This is because bitwise operators are:
- confusing and inconsistent in a boolean context
- non short circuiting
- brittle in C89 where bool can be an int (so > 1)
2009-09-23 14:33:40 +01:00
Pádraig Brady
ade8dd2096 maint: expr: avoid compiler warnings without GMP
* src/expr.c (mpz_clear, mpz_get_str, mpz_out_str)
[!HAVE_GMP]: Reference unused arguments.
2009-09-23 14:32:07 +01:00
Eric Blake
0cce690850 build: update gnulib submodule to latest 2009-09-23 06:47:46 -06:00
Eric Blake
82124c3c06 maint: summarize gnulib changes
* NEWS: Provide a blurb about recent gnulib improvements.  Fix typo
in readlink blurb.
2009-09-23 06:45:07 -06:00
Jim Meyering
38f1c2006e doc: ls: further improve --help message re --color
* src/ls.c (usage): Correct grammar, change voice, shorten.
Inspired by a report from Bruno Schulenberg.
2009-09-23 09:11:08 +02:00
Eric Blake
8a1edc971f readlink: pick up gnulib changes to readlink -f
* bootstrap.conf (obsolete_gnulib_modules): Move rename...
(gnulib_modules): ...here.  Add symlink.
* NEWS: Document the change in readlink.
* doc/coreutils.texi (readlink invocation): Likewise.
* tests/readlink/can-f: Update test to new semantics, and add test
of loop.
2009-09-23 08:45:08 +02:00
Jim Meyering
70253e9179 maint: df.c: adapt to newer gnulib
* src/df.c: Don't include "canonicalize.h".  No longer needed,
since canonicalize_file_name is now guaranteed to be declared
in <stdlib.h>, thanks to gnulib.
2009-09-23 08:38:00 +02:00
Jim Meyering
b18b6912e8 build: update gnulib submodule to latest 2009-09-23 08:37:59 +02:00
Pádraig Brady
fbfca3c675 doc: stdbuf: mention it can have a non standard exit status
* doc/coreutils.texi (Exit status): Add stdbuf to the list
2009-09-22 12:22:47 +01:00
Pádraig Brady
7a404d10f5 maint: uptime: fix a theoretical compile warning
* src/uptime.c (print_uptime) [!HAVE_UTMPX_H && !HAVE_UTMP_H]:
Reference possibly unused arguments.
2009-09-22 12:21:00 +01:00
Pádraig Brady
8c92bb3441 ls: fix a performance regression
* src/ls.c (print_color_indicator): This reinstates commit f3f1ccfd,
21-10-2008, "ls: make it possible to disable file capabilities checking"
which was inadvertently reverted with commit 3a169f4c, 14-09-2009,
"ls: handle disabling of colors consistently ...".
2009-09-22 10:07:21 +01:00
Eric Blake
32f987af12 build: avoid compiler warnings on cygwin 1.5
* src/copy.c (utimens_symlink): Avoid unused variables.
* src/su.c (getusershell): Rely on gnulib for prototype.
2009-09-21 20:42:16 -06:00
Jim Meyering
fee8694886 doc: ls: add an article, "the"
* src/ls.c (usage): Tweak wording.
2009-09-21 15:30:38 +02:00
Pádraig Brady
3a169f4c5d ls: handle disabling of colors consistently for all tile types
* src/ls.c (print_color_indicator): Use consistent syntax for
all file and directory subtypes, and fall back to the color
of the base type if there is no enabled color for the subtype.
This allows turning off specific colors for o+w dirs for example.
* tests/ls/color-dtype-dir: Add a case to test that turning off
coloring for o+w directories, falls back to standard dir color.
* NEWS: Mention the fix
Introduced by commit ac467814, 2005-09-05,
"Colorize set-user-ID ... files and sticky ... directories."
2009-09-21 13:16:44 +01:00
Pádraig Brady
29ec834c3b doc: ls: make help for --color more concise and accurate
* src/ls.c (usage): Shorten the --color ancillary info by
two lines, while replacing --color=none with --color=never.
Mention "always" is the default parameter of the --color option,
along with the primary help for that option.
Mention the ancillary --color info in the --color primary help.
2009-09-21 12:44:35 +01:00
Pádraig Brady
9837344837 doc: normalize and add missing entries to texinfo menu
* doc/coreutils.texi: Add the missing arch, base64, link, readlink,
and unlink entries.  Also remove extraneous '.' from some entries
and try to align all entries on the same column.
* THANKS: Add Benno Schulenberg.
2009-09-21 12:42:19 +01:00
Pádraig Brady
5d4f09d83a doc: mention the texinfo documentation in --help
* src/system.h: Rename emit_bug_reporting_address() to
emit_ancillary_info() and update it to not print the translation
project address in en_* locales, and _do_ print it in the 'C'
(and other) locales so that it's included in the default man page.
Also mention how to invoke the texinfo documentation for each command.
Also move the "hard-locale.h" include to the 8 files that now use it.
* man/help2man: Strip the newly added texinfo reference from the
--help output as a more verbose version is already added by help2man.
Suggestion from C de-Avillez
2009-09-21 12:37:57 +01:00
Jim Meyering
c48003a53c maint: automate the web-doc updating procedure
* gnu-web-doc-update: New script, destined for gnulib.
* README-release: Refer to the new script.
2009-09-21 08:56:17 +02:00
Jim Meyering
a2883947bc dircolors: arrange to highlight names with the .lz suffix
* src/dircolors.hin: Add .lz, for GNU lzip.
Suggested by Matias A. Fonzo.
2009-09-19 12:26:41 +02:00
Jim Meyering
99f59aaaf8 mktemp: adapt to new, 3-argument gen_tempname_len
* src/mktemp.c (mkstemp_len, mkdtemp_len): Update callers of
gen_tempname_len.
* gl/lib/tempname.c, gl/lib/tempname.h: Rebase against recently
API-modified copy of tempname module in gnulib.
Reported by Lluís Batlle.
2009-09-19 11:16:56 +02:00
Jim Meyering
6504d7e193 build: merge bootstrap changes from gnulib
* bootstrap: Update from gnulib.
2009-09-17 14:30:01 +02:00
Eric Blake
2bad8c0dea rm, rmdir: improve cross-compilation support
* bootstrap.conf (gnulib_modules): Drop rmdir-errno.
* src/rmdir.c (errno_rmdir_non_empty): Check both cases allowed by
POSIX, rather than relying on configure-time check that might
fail during cross-compilation.  Reverts commit 9b6eb98d41.
2009-09-16 21:26:58 -06:00
Ondřej Vašík
fe6f4e305c cp: fix a probably redundant chmod when setting xattrs
* src/copy.c (copy_reg): Fix initial value of access_changed variable.
This was introduced by Pádraig Brady in commit cca83faf, 2009-09-14,
"cp,mv: preserve extended attributes even for read-only files"
2009-09-15 10:51:13 +01:00
Jim Meyering
a77fb35364 doc: NEWS: mention origin of touch -t ....60 bug
* NEWS: It is an old bug.
2009-09-14 15:57:13 +02:00
Jim Meyering
94eca76776 doc: touch, document that it accepts .60
* doc/coreutils.texi (touch invocation): Document that SS may be 60.
2009-09-14 15:37:26 +02:00
Jim Meyering
20761ce686 touch: don't reject "60" as number of seconds in a legacy time stamp
A valid command like "touch -t 197101010000.60 F" would fail due
to the suffix of ".60".  This bug is fixed via the latest change
to gnulib's posixtm module.
* tests/touch/60-seconds: New test.
* tests/Makefile.am (TESTS): Add it.
* NEWS (Bug fixes): Mention it.
2009-09-14 15:27:51 +02:00
Jim Meyering
df84346ebc build: update gnulib submodule to latest, for fixed posixtm module 2009-09-14 15:27:51 +02:00
Jim Meyering
71bac0dac3 maint: use #!/bin/sh consistently in shell-based test scripts
* tests/misc/sort-continue: Change first line to standard #!/bin/sh,
not #!/bin/bash (though it doesn't matter, since each is invoked
via $(SHELL) dir/test-name.
2009-09-14 15:27:02 +02:00
Pádraig Brady
d41dbb187f tests: fix dd/skip-seek-past-file to work on ecryptfs
* tests/dd/skip-seek-past-file: Require sparse support
to ensure that when we're checking if we can create an
$OFF_T_MAX length file, that we don't actually allocate
any space.  This was an issue on ecryptfs and was reported
by Bert Wesarg.
2009-09-14 14:22:02 +01:00
Ondřej Vašík
cca83fafa6 cp,mv: preserve extended attributes even for read-only files
* src/copy.c (copy_reg): Temporarily set u+rw on the destination file
to allow GNU/Linux to set xattrs.
* tests/misc/xattr: Test that change.
* NEWS (Bug fixes): Mention it.
Reported by Ernest N. Mamikonyan.
2009-09-14 14:19:03 +01:00
Jim Meyering
eb1299481a doc: improve timeout's --help message
* src/timeout.c (usage): Improve --help description.
2009-09-14 09:18:30 +02:00
Jim Meyering
255a6a201e maint: use consistent cpp indentation in all .c files
* src/stty.c: Make cpp indentation reflect nesting.
* src/factor.c: Likewise.
2009-09-13 22:05:37 +02:00
Jim Meyering
f6f78f093b doc: NEWS: say quadratic and linear, rather than O(N^2) and O(N)
* NEWS: Use a slightly less technical description.
Suggested by Andreas Schwab.
2009-09-13 12:11:57 +02:00
Jim Meyering
21b617b78b doc: improve NEWS
* NEWS (rm -r, without -f): Mention that the N in "O(N)" represents
hierarchy depth.  Suggested by Ralf Wildenhues.
(rm -r, standards conformance): Make wording more accurate.
2009-09-13 11:58:48 +02:00
Jim Meyering
ebbf0a1f0f id: don't print context=... when POSIXLY_CORRECT is set
* src/id.c (print_full_info) [POSIXLY_CORRECT]: Don't print context.
Reported by Ulrich Drepper.
* NEWS (Changes in behavior): Mention it.
* doc/coreutils.texi (id invocation): Document that id also prints the
security context, when possible, and when POSIXLY_CORRECT is not set.
* tests/id/no-context: New file.  Test for this.
* tests/Makefile.am (TESTS): Add it.
2009-09-11 19:58:18 +02:00
Eric Blake
398749b0cc rm: avoid compiler warning
* src/remove.c (rm_fts): Don't allow fall-through when assertions
are disabled.
2009-09-11 14:08:58 +02:00
Eric Blake
e5dba03d2f euidaccess-stat: remove unnecessary macros
* lib/euidaccess-stat.c (F_OK, R_OK, W_OK, X_OK): Delete; now
guaranteed by gnulib.
2009-09-11 14:08:58 +02:00
Eric Blake
c756343503 rm: use gnulib faccessat
* bootstrap.conf (gnulib_modules): Add faccessat.  Replace strdup
with strdup-posix.
* m4/jm-macros.m4 (coreutils_MACROS): Revert previous change, now
that gnulib does it for us.
* src/remove.c (write_protected_non_symlink): Use faccessat in
more situations.
2009-09-11 14:08:58 +02:00
Jim Meyering
722287e443 rm: improve efficiency of rm -r (without -f) from O(N^2) to O(N)
where N is the depth of the deepest hierarchy rm is processing.
* src/remove.c (write_protected_non_symlink): Use faccessat to
avoid O(N)-per-entry cost of calling euidaccess.
* m4/jm-macros.m4 (coreutils_MACROS): Check for faccessat.
* NEWS (Improvements): Mention it.
2009-09-11 14:08:58 +02:00
Jim Meyering
9966c92dd4 build: placate gcc's new -Wskip-jump-init
* remove.c (rm_fts): Put braces around each of the two offending blocks.
* configure.ac: Don't turn off -Wjump-misses-init.
With the rewrite of remove.c, it is no longer needed.
2009-09-11 14:08:58 +02:00
Jim Meyering
4f73ecaf7d rm: rewrite to use fts
* remove.c: Don't include "unlinkdir.h"; no longer used.
Do not include <setjmp.h> or "cycle-check.h".  Likewise.
Include "xfts.h".
(dir_name, dir_len): Remove definitions.
(CONSECUTIVE_READDIR_UNLINK_THRESHOLD): Likewise.
(INODE_SORT_DIR_ENTRIES_THRESHOLD, NEED_REWIND, D_TYPE): Likewise.
(struct dirstack_state, Dirstack_state): Likewise.
(g_buf, g_n_allocated): Remove declarations.
(hash_freer, hash_compare_strings, rm_malloc): Remove functions.
(rm_free, push_dir, top_dir, pop_dir, right_justify): Likewise.
(full_filename0, xfull_filename, full_filename_): Likewise.
(AD_stack_height, AD_stack_top, AD_stack_pop, AD_stack_clear): Likewise.
(obstack_init_minimal, ds_init, ds_clear, ds_free): Likewise.
(AD_pop_and_chdir, AD_ensure_initialized, AD_mark_helper): Likewise.
(AD_mark_as_unremovable, AD_mark_current_as_unremovable): Likewise.
(AD_push_initial, AD_push, AD_push, AD_is_removable): Likewise.
(write_protected_non_symlink): Change 3rd parameter from
dirstack_state "ds" to full_name.
(prompt): Adjust parameters.  Now, state comes from FTS/FTSENT pair.
Those replace fd_cwd and "ds".  Remove "filename".  Remove pdirent_type
in favor of new "is_dir" parameter.  Rename is_empty to is_empty_p.
(DO_RMDIR, DO_UNLINK): Remove definitions.
(remove_entry, fd_to_subdirp, compare_ino): Remove functions.
(dirent_count, dirent_inode_sort_may_be_useful): Likewise.
(preprocess_dir): Likewise.
(fts_skip_tree, mark_ancestor_dirs, excise, rm_fts): New functions.
(remove_cwd_entries, remove_dir, rm_1): Remove functions.
(rm): Rewrite as a simple loop calling fts_read and dispatching
each entry via rm_fts.
* src/rm.c (main): Adapt to new signature of rm().
* bootstrap.conf (gnulib_modules): Remove unlinkdir, no longer used.
* src/Makefile.am (sc_tight_scope): Also recognize an extern "enum"
declaration.
* tests/rm/empty-name: Adjust expected output to match new diagnostic.
* NEWS (Improvements): Mention it.
2009-09-11 14:08:51 +02:00
Jim Meyering
880a6e7723 maint: doc: adjust README-release
* README-release: Remove mention of bootstrap's old
--gnulib-srcdir=/gnulib option.  No longer needed, and its
use can lead to subtle problems.
2009-09-11 13:14:07 +02:00
Jim Meyering
bd11475627 post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2009-09-11 08:16:18 +02:00
Jim Meyering
aa2f797c7d version 7.6
* NEWS: Record release date.
2009-09-11 07:53:16 +02:00
Jim Meyering
ebc7aacf7b link,ln: use gnulib's link module to work around Solaris 10 deficiency
Before this change, :>f; ln -T f no-such/ would succeed on Solaris 10.
After it, ln fails, as it should: ln: accessing `z/': Not a directory
The command, link f no-such/, had the same problem on that system.
* bootstrap.conf (gnulib_modules): Add "link".
* tests/ln/slash-decorated-nonexistent-dest: New test.
* tests/Makefile.am (TESTS): Add it.
* NEWS (Portability): Mention the improvement.
2009-09-10 18:52:12 +02:00
Jim Meyering
15223b0c3b build: update gnulib submodule to latest 2009-09-10 16:58:15 +02:00
Ondřej Vašík
b64d9b6d9e doc: improve various BLOCKSIZE and SIZE help
* doc/coreutils.texi (multiplierSuffixes): Mention that
the suffix can be specified without a leading number
* src/split.c (usage): Refactor SIZE help to within a function
* src/truncate.c (usage): Likewise
* src/ls.c (usage): Likewise
* src/df.c (usage): Likewise. Also add a function with BLOCKSIZE help
* src/du.c (usage): Likewise.
* src/system.h: Define 2 functions to emit common help text
This was prompted by https://bugzilla.redhat.com/show_bug.cgi?id=511188
2009-09-10 15:28:50 +01:00
Jim Meyering
0bbb9d7785 dd conv=unblock: print final newline consistently
* src/dd.c (dd_copy) [C_UNBLOCK]: Always print the final newline for
non-empty output, not just when output size is a multiple of cbs.
* doc/coreutils.texi (dd invocation) [conv=unblock]: Mention that dd
prints a newline after each output record, not just when replacing
trailing spaces.
Reported by Ulrich Drepper.
* tests/dd/unblock: New file.  Test for this.
* tests/Makefile.am (TESTS): Add it.
* NEWS (Bug fixes): Mention it.
2009-09-10 12:25:04 +02:00
Jim Meyering
f1e1e89e81 maint: make cfg.mk slightly more generic
* cfg.mk (url_dir_list): Don't hard-code "coreutils".  Use $(PACKAGE).
2009-09-09 16:44:37 +02:00
Jim Meyering
1c0ec3541c * gnulib: Update submodule to latest. 2009-09-08 13:30:38 +02:00
Jim Meyering
f0ff8c73fe tail: make the new piped-stdin test as portable as the old one
* src/tail.c (main): Adapt piped-stdin test to use the same isapipe,
test as was used in the preceding POSIXLY_CORRECT condition.
Remove the now-subsumed POSIXLY_CORRECT test.
Reported by Pádraig Brady.
* doc/coreutils.texi (tail invocation): Document this change.
* NEWS (Changes in behavior): Reclassify, clarify.
2009-09-08 13:30:38 +02:00
Pádraig Brady
e8591fd39f tests: tail-2/assert: reduce risk of race condition
* tests/tail2/assert: This reverts commit be853120, 25-08-2009,
"tests: tail-2/assert: avoid risk of race condition"
kill -0 doesn't send a signal and so will only confirm that the
background process was forked, which we know already because
we have its pid.
2009-09-08 10:01:45 +01:00
Pádraig Brady
a863644397 tests: address a race condition in misc/cat-buf
* tests/misc/cat-buf: Increase the delay between writes
to decrease the chance that dd will read both at once.
Since the test is inherently racy, print a warning via
skip_test_ rather than failing outright.
Reported by Jim Meyering.
2009-09-08 01:43:31 +01:00
Jim Meyering
f6d1f70183 tail: syntax-only: use "false", rather than equivalent, 0
* src/tail.c (record_open_fd): Initialize "->ignore" to false, not 0.
2009-09-07 23:20:01 +02:00
Jim Meyering
af6436559c tail: ignore -f for piped-stdin, as POSIX requires
* src/tail.c (main): Tailing a pipe "forever" is not useful,
and POSIX specifies that tail ignore the -f when there is no
file argument and stdin is a FIFO or pipe.  So we do that.
In addition, GNU tail excludes "-" arguments from the list of files
to tail forever, when the associated file descriptor is connected
to a FIFO or pipe.  Before this change, ":|tail -f" would hang.
Reported by Ren Yang and Ulrich Drepper.
* tests/tail-2/pipe-f: Test for this.
* tests/tail-2/pipe-f2: Ensure tail doesn't exit early for a fifo.
* tests/Makefile.am (TESTS): Add these tests.
* NEWS (POSIX conformance): Mention it.
2009-09-07 23:19:56 +02:00
Pádraig Brady
fd9750b0ff tests: tail-2/flush-initial should not rely on stdbuf
* tests/tail-2/flush-initial: stdbuf is not built on all systems.
In any case it's redundant since stdout will automatically be buffered
since we're redirecting to file. So just call tail without using stdbuf.
2009-09-07 21:52:30 +01:00
Jim Meyering
a8d26b3ce1 tail: don't give up on inotify mode for an already-ignored "-"
* src/tail.c (main): Adjust today's change to honor the
F[i].ignore flag that may have been set in tail_file.
2009-09-07 20:56:38 +02:00
Jim Meyering
a4a864da36 tests: misc/cat-buf: clean up syntax
* tests/misc/cat-buf: Don't suppress dd's stderr.
Remove useless quotes.
2009-09-07 20:23:03 +02:00
Jim Meyering
9547a78bda tests: ls/color-clear-to-eol: append NL to accommodate old sed
* tests/ls/color-clear-to-eol: Some vendor sed programs fail
to operate on lines that are not NL-terminated.
This affects at least Solaris 10's /bin/sed.
Reported by Pádraig Brady.
2009-09-07 19:36:37 +02:00
Jim Meyering
494fed0271 tests: tail-2/infloop-1: avoid rare test failure on a busy system
* tests/tail-2/infloop-1: Sleep 3 seconds, not 1, but in increments
of 0.1 second.  Before, this test would fail ~1 time in 20 via
"make -j9 check" on a quad-core system.
Correct comment.
2009-09-07 13:55:37 +02:00
Jim Meyering
61cc6fbc27 build: update gnulib submodule to latest 2009-09-07 09:23:57 +02:00
Jim Meyering
f68f5f23c6 doc: tweak NEWS
* NEWS (dd): Tweak wording.
Two blank lines between sections.
2009-09-07 09:23:48 +02:00
Jim Meyering
cdfb703c5d tail -f: handle "-"/stdin once again
* src/tail.c (main) [HAVE_INOTIFY]: When stdin (i.e., "-", or no args,
but not /dev/stdin) is specified on the command line, don't use inotify.
Reported by Bill Brelsford in <http://bugs.debian.org/545422>.
* tests/tail-2/follow-stdin: New file.  Test for this.
* tests/Makefile.am (TESTS): Add the test.
* NEWS (Bug fixes): Mention it.
This bug was introduced in coreutils-7.5 via commit ae494d4b,
2009-06-02, "tail: use inotify if it is available".
2009-09-07 09:01:14 +02:00
Jim Meyering
15f26e296b tests: tail-2/flush-initial: correct race avoidance code
* tests/tail-2/flush-initial: Wait for the file to be nonempty,
not for the process.  Based on a suggestion from Pádraig Brady.
2009-09-06 20:00:34 +02:00
Jim Meyering
467cc9bb43 tests: ls-misc: don't let a bogus umask cause test failure
* tests/misc/ls-misc: Set umask to 022.  A umask setting permitting
world-write access, e.g., umask o+w, would cause this test to fail.
Report by Mathias Brodala and analysis by Tom Fitzhenry in
<http://bugs.debian.org/544965>.
2009-09-06 18:40:40 +02:00
Jim Meyering
d54376db68 tail: flush initial output before possibly blocking
* src/tail.c (main): Flush any output from tail_file,
before calling tail_forever_inotify, which can block.
* tests/tail-2/flush-initial: New file.  Test for the bug.
* tests/Makefile.am (TESTS): Add tail-2/flush-initial.
* NEWS (Bug fixes): Mention it.
This bug was introduced in coreutils-7.5 via commit ae494d4b,
2009-06-02, "tail: use inotify if it is available".
2009-09-06 09:40:43 +02:00
Jim Meyering
af054f80b2 maint: remove unused file: lib/fdopendir-glibc.c
* lib/fdopendir-glibc.c: Remove unused file.

2009-09-05  Jim Meyering  <meyering@redhat.com>
2009-09-05 19:52:16 +02:00
Jim Meyering
c392c4b8ef tests: ls/stat-vs-dirent: avoid spurious test failure
* tests/ls/stat-vs-dirent: Avoid test failure when run from a
directory whose name (or ancestor directory name) starts with ".".
2009-09-05 19:06:31 +02:00
Pádraig Brady
471f219ac7 doc: make the tail --sleep-interval help less confusing
* src/tail.c (usage): I read "approximately S seconds"
as "approximately 5 seconds" for approximately 5 seconds.
2009-09-05 17:25:40 +01:00
Pádraig Brady
a5e224d793 maint: remove some tab indentation from copy.c
* src/copy.c (copy_internal): Remove tabs erroneously added
in commit 3346c0af.
2009-09-05 17:22:09 +01:00
Pádraig Brady
526a057602 tests: test old tail -f method even on systems with inotify
* src/tail.c (main): Add an undocumented ---disable-inotify option
to allow disabling inotify.
* tests/tail-2/pid: Run test in both normal and "disable_inotify" modes.
* tests/tail-2/tail-n0f: Likewise.
* tests/tail-2/wait: Likewise.
* tests/tail-2/append-only: Likewise.
2009-09-05 17:19:03 +01:00
Jim Meyering
70eadcb4e6 build: update gnulib submodule to latest 2009-09-05 16:28:24 +02:00
Petr Salinger
305bbd99b2 stty: use TAB0, TAB1, and TAB2 only if defined
* src/stty.c (mode_info) [TAB0, TAB1, TAB2]: Guard each
entry with #ifdef.  Required for GNU/kFreeBSD.
Reported by Petr Salinger in http://bugs.debian.org/520368.
2009-09-05 15:54:26 +02:00
Eric Blake
c45b4237bc build: update from gnulib
* gnulib: Update submodule to latest.
2009-09-04 20:46:01 -06:00
Eric Blake
c692280926 ln: add comments related to POSIX 2008
* src/ln.c (ENABLE_HARD_LINK_TO_SYMLINK_WARNING): Delete.
(do_link): Update comments per POSIX; add FIXME for -L, -P.
2009-09-04 14:54:55 -06:00
Eric Blake
3346c0afbc mv, cp: tweak LINK_FOLLOWS_SYMLINKS logic
* gnulib: Update to latest gnulib.
* src/copy.c (copy_internal): Adjust comment in light of POSIX
2008, and deal with macro now being tri-state.
2009-09-04 14:54:52 -06:00
Petr Salinger
a23afe7b72 tests: fix a tail-2/pid failure on GNU/kFreeBSD
* tests/tail-2/wait: Increase the file name recheck frequency to
fix a failure on systems without inotify and a file timestamp precision
of 1 second (like GNU/kFreeBSD).
2009-09-04 18:14:55 +01:00
Pádraig Brady
82f09f4762 tests: fix a failure when running tail-2/wait as root
* tests/tail-2/wait: Silently skip a portion of the test
when running as root, rather than failing the whole test.
This regression was introduced with commit 84b5844d, 2009-09-03,
"tests: simplify and fix a race in 2 tail --follow tests".
2009-09-04 17:39:26 +01:00
Mike Frysinger
370fa0fa42 build: fix libcap configure flag handling
* m4/jm-macros.m4 (coreutils_MACROS): The code to handle configure-time
enabling or disabling of libcap support was broken.  It would treat any
libcap configure option as --disable-libcap because it doesn't check
$enableval at all.  This change makes sure we do the sane thing:
  --disable-libcap -> disable and don't run any tests
  --enable-libcap -> run tests and fail if not found
  default -> run tests and warn if not found
2009-09-04 08:48:03 +02:00
Jim Meyering
e0e8429c24 df: don't fail due to an unreadable argument
* src/df.c (main): If open or fstat fails when we're trying to ensure
that all arg-partitions are automounted, fall back on using stat.
Inspired by the report and patch from Olivier Fourdan in
http://bugzilla.redhat.com/520630.
* NEWS (Bug fixes): Mention it.
* tests/df/unreadable: New test for the above.
* tests/Makefile.am (TESTS): Add df/unreadable.
The bug was introduced in coreutils-7.3 via commit dbd17157,
2009-04-28, "df: use open(2), not stat, to trigger automounting".
2009-09-03 19:52:47 +02:00
Kamil Dudka
1422cabf93 doc: install -C: fix bug in the texi documentation
* doc/coreutils.texi: Move the documentation for install --compare (-C)
from the section on fmt to that for install.
Reported by Florian Schlichting.
2009-09-03 16:24:14 +02:00
Pádraig Brady
84b5844d21 tests: simplify and fix a race in 2 tail --follow tests
* tests/tail-2/pid: Use the timeout command to determine process
longevity, rather than querying /proc/$pid/status.
The latter was racy in any case when inotify is used, as then
tail wakes up periodically even for unchanging files therefore
causing the check for "S (sleeping)" state to fail intermittently.
* tests/tail-2/wait: Likewise.
2009-09-03 10:08:06 +01:00
Ondřej Vašík
1a94ac4a05 cp: don't leak resources for each xattr preservation failure
* src/copy.c (copy_reg): Don't return from the function after an
unsuccessful and required preservation of extended attributes.
This resulted in leaking the copy buffer and file descriptors.
* NEWS (Bug fixes): Mention the fix.
The bug was introduced in coreutils-7.1 via commit 0889381c, 2009-01-23,
"cp/mv: add xattr support".
2009-09-03 10:00:32 +01:00
Pádraig Brady
1b2d2635ee chcon, chmod, chgrp, chown, du: report fts_close failure
* src/du.c (du_files): Don't fail silently upon fts_close failure.
* src/chcon.c (process_files): Likewise.
* src/chmod.c (process_files): Likewise.
* src/chown-core.c (chown_files): Likewise.
2009-09-01 13:05:06 +02:00
Jim Meyering
fa3e9cb9af build: update from gnulib
* gnulib: Update submodule to latest.
2009-09-01 12:10:07 +02:00
Jim Meyering
228c8e9eec chcon, chmod, chgrp, chown, du: do not ignore fts_close failure
This is probably never visible, but who knows...
* src/chcon.c (process_files): Don't ignore fts_close failure.
* src/chmod.c (process_files): Likewise.
* src/chown-core.c (chown_files): Likewise.
* src/du.c (du_files): Likewise.
2009-09-01 12:10:07 +02:00
Jim Meyering
1ce27f74ec maint: du: remove unnecessary initialization
* src/du.c (main): Don't set "skip_file" unnecessarily.
2009-09-01 12:10:07 +02:00
Jim Meyering
b2c30136dc maint: chown, chgrp, chmod, chcon: remove unnecessary initialization
* src/chown-core.c: Include "ignore-value.h".
(change_file_owner): Don't set "ent" only to ignore it.
* src/chcon.c (process_file): Likewise.
* src/chmod.c: Include "ignore-value.h".
(process_file): Don't set "ent" only to ignore it.
After diagnosing root-dev/ino failure, return false immediately:
Now that we don't set "ent" we must be sure not to use it uninitialized,
and there's no point in issuing --verbose-related output in this case.
2009-09-01 12:10:07 +02:00
Jim Meyering
e3b14643f4 maint: shred: remove unnecessary initialization
* src/shred.c (genpattern): Value stored to "n" is never used.
2009-09-01 12:10:07 +02:00
Jim Meyering
e579a697b2 maint: dd: remove unnecessary initialization
* src/dd.c (skip): Remove set-but-never-used variable, soffset.
2009-09-01 12:10:07 +02:00
Jim Meyering
68c9b31834 maint: tail: remove unnecessary initialization
* src/tail.c (tail_bytes): Don't compute "diff" twice.
2009-09-01 12:10:07 +02:00
Jim Meyering
856ba44297 maint: mbsalign.c: remove unnecessary assignment
* gl/lib/mbsalign.c (mbsalign): Remove assignment, the result of which
is never used.
2009-09-01 12:10:06 +02:00
Pádraig Brady
8f7d8e3bc3 timeout: remove a redundant assignment
* src/timeout.c (main): While keeping argc and argv in
sync may be marginally useful, it is redundant to update argc,
so just remove that to suppress the clang warning.
2009-09-01 11:07:15 +01:00
Pádraig Brady
0b1dcf33f5 timeout: defensive handling of all wait() errors
* src/timeout.c (main): Handle all possible cases of unexpected
failures from wait().  This was prompted by the clang tool reporting
the possible non-initialization of the status variable.
2009-09-01 11:02:18 +01:00
Jim Meyering
a977dbbe78 ls -i: print consistent inode numbers also for mount points
On most unix- and linux-based kernels, ls -i DIR_CONTAINING_MOUNT_POINT
would print the wrong inode number for any entry that is a mount point.
It would do that by relying on readdir's dirent.d_ino values, while
most readdir implementations return the inode number of the underlying,
inaccessible directory.  Thus, it is not consistent with what you'd
get when applying stat to the same entry.  This bug led to surprising
results like "ls -i" and "ls -i --color" printing different numbers (ls
must usually "stat" a file to colorize its name).  This change makes it
so that on offending systems, ls must stat non-command-line-arguments
for which otherwise it would be able to use "for free" dirent.d_ino
values.  Regardless of this change, ls is already required to stat every
command-line argument.  Note: versions of GNU ls prior to coreutils-6.0
did not perform the invalid optimization, and hence always printed
correct inode numbers.  Thus, for the sake of correctness, ls -i is
forgoing the readdir optimization, for any kernel (including linux!)
with POSIX-nonconforming readdir.  Note that currently, only Cygwin has
been agile enough to conform.

* src/ls.c (RELIABLE_D_INO): Define.
(print_dir): Use it.
For plenty of discussion, see this long thread:
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/14020
This bug was introduced by the 2006-02-26 commit, 33eb3efe:
"In ls, avoid calling stat for --inode (-i), when possible."
* tests/ls/readdir-mountpoint-inode: New test.
* tests/Makefile.am (TESTS): Add it.
* tests/ls/stat-vs-dirent: Don't suppress failure of this test,
now that ls -i is fixed.  Though note that it doesn't test well,
since it compares only the always-stat'd command-line arguments.
* NEWS (Bug fixes): Mention it.
2009-09-01 07:07:45 +02:00
Jim Meyering
a4e123abd3 maint: revert my stdbuf change: the result didn't even compile
This reverts commit c1e158489d.
2009-08-31 09:44:30 +02:00
Jim Meyering
c1e158489d maint: stdbuf: move a declaration; no-semantic-change
* src/stdbuf.c (set_program_path): Move a declaration down into
the scope where it's used.
2009-08-30 22:34:06 +02:00
Jim Meyering
12a104b45e build: quiet "make check" in src/
* src/Makefile.am (check-duplicate-no-install): Use $(AM_V_GEN).
(check-README): Likewise.  And $(AM_V_at).
2009-08-30 12:22:30 +02:00
Jim Meyering
e3ccc324d3 doc: cp: update note on preserving symlink time stamps
* doc/coreutils.texi (cp invocation): Now, we *do* preserve time
stamps on symlinks, when possible.
2009-08-30 12:02:02 +02:00
Jim Meyering
a10ba58f3c build: update bootstrap from gnulib
* bootstrap: Merge from gnulib.
2009-08-30 12:02:02 +02:00
Pádraig Brady
56300b1dc2 tests: don't misbehave if $TMPDIR contains spaces
* tests/misc/xattr: Add quotes.
* tests/mv/acl: Likewise.
* tests/mv/backup-is-src: Likewise.
* tests/mv/hard-link-1: Likewise.
* tests/mv/leak-fd: Likewise.
* tests/mv/mv-special-1: Likewise.
* tests/mv/part-fail: Likewise.
* tests/mv/part-hardlink: Likewise.
* tests/mv/part-rename: Likewise.
* tests/mv/part-symlink: Likewise.
* tests/mv/partition-perm: Likewise.
* tests/mv/sticky-to-xpart: Likewise.
2009-08-30 10:58:13 +01:00
Jim Meyering
0a859a6cb0 tests: other-fs-tmpdir: don't misbehave for quote-unfriendly $TMPDIR
* tests/other-fs-tmpdir: Quote uses of variables that might expand
to strings containing e.g., whitespace.
2009-08-29 19:19:37 +02:00
Jim Meyering
450df0f26d build: update from gnulib
* gnulib: Update submodule to latest.
2009-08-29 17:30:14 +02:00
Jim Meyering
98ec4beba5 tests: move a coreutils-specific test from maint.mk to Makefile.am
* Makefile.am (distcheck-hook): Make taint-distcheck here, since it's
no longer done via maint.mk.
2009-08-29 17:29:45 +02:00
Jim Meyering
6c497c6c2d tests: cp/reflink-auto guard against a pathological $TMPDIR
* tests/cp/reflink-auto: Add quotes.
2009-08-29 17:29:32 +02:00
Pádraig Brady
9e59f8c47c cp --reflink: preserve attributes on cloned files if asked
* src/copy.c (copy_reg): When cloning only skip the data copying
* tests/cp/reflink-perm: New test to check times and modes copied
* tests/Makefile.am: Reference the new test
* NEWS: Mention the fix
2009-08-29 01:37:05 +01:00
Pádraig Brady
72f98388c3 cp --reflink: add an "auto" parameter to fall back to a normal copy
* doc/coreutils.texi (cp invocation): Document the new
"auto" and "always" options to --reflink.
* src/copy.c (copy_reg): Fall back to a standard copy
when reflink() is not supported and --reflink=auto specified.
* src/copy.h [struct cp_options] (reflink): Change type s/bool/enum/.
* src/cp.c (usage): Describe the --reflink={always,auto} options
and expand a little on what --reflink does.
(main): parse the new parameters to --reflink and allow all
--sparse options with --reflink=auto.
* src/install.c (cp_option_init): Init the enum instead of bool.
* src/mv.c (cp_option_init): Likewise.
* tests/cp/reflink-auto: A new test for falling back to normal copy.
* tests/Makefile.am: Reference the new test.
* NEWS: Mention the new feature.
2009-08-29 00:24:49 +01:00
Pádraig Brady
f296cf4052 stdbuf: fix a small typo in --help output
* src/stdbuf.c (usage): s/then/the/
2009-08-28 23:35:48 +01:00
Eric Blake
359fa92f2a build: avoid unused variable warnings on cygwin
* src/copy.c (clone_file, copy_attr_by_fd, copy_attr_by_name):
Mark up unused variables.
* src/remove.c (dirent_inode_sort_may_be_useful): Likewise.
2009-08-28 12:56:53 -06:00
Eric Blake
31fa922e57 dd: detect closed stderr
* src/dd.c (maybe_close_stdout): Always flush stderr; regression
introduced in commit 381e69ea.
* tests/misc/close-stdout (p): Use consistent style.
* tests/dd/stderr: New test, borrowing from misc/close-stdout.
* tests/Makefile.am (TESTS): Run it.
* NEWS: Mention this.
2009-08-28 12:56:51 -06:00
Jim Meyering
59a6ddfca3 maint: ignore only man/*.1, not all *.1 files
* .gitignore: Ignore *.1 only in man/
2009-08-28 14:29:02 +02:00
Jim Meyering
de619c8fa5 build: prefix a few rules with $(AM_V_GEN)
* Makefile.am (.version, dist-hook, gen-ChangeLog): Use $(AM_V_GEN)
and $(AM_V_at), so that automake's silent-rules option (make V=1/V=0)
now controls whether the commands are printed at build time.
(THANKS-to-translators, check-ls-dircolors): Likewise.
2009-08-27 10:18:08 +02:00
Jim Meyering
847359b11d build: stop earlier if touching ChangeLog fails
* bootstrap.conf: Exit right away if touching ChangeLog fails.
Otherwise, the touch failure message is buried under configure output.
2009-08-26 18:21:12 +02:00
Jim Meyering
d6639ee63b tests: mkdir/selinux: avoid spurious failure on some SELinux systems
* tests/test-lib.sh (require_selinux_enforcing_): New function.
* tests/mkdir/selinux: Use it.
Otherwise, this test would fail on Rawhide with SELinux disabled.
2009-08-26 10:06:53 +02:00
Jim Meyering
be8531206b tests: tail-2/assert: avoid risk of race condition
* tests/tail-2/assert: Avoid spurious failure due to race condition.
Rather than sleeping for 1 second and crossing fingers,
wait explicitly for backgrounded tail process to start.
Otherwise, this test would fail under heavy load.
2009-08-26 09:25:21 +02:00
Jim Meyering
899c1d00fa maint: ensure we don't embed Emacs indent-tabs-mode setting lines
Now that we prohibit indentation via TABs, there's no need for
Emacs indent-tabs-mode setting lines, so prohibit those, too.
* cfg.mk (sc_prohibit_emacs__indent_tabs_mode__setting): New rule.
2009-08-25 09:21:00 +02:00
Jim Meyering
e2808a3999 maint: remove Local Variables: indent-tabs-mode: nil from all sources
* src/getlimits.c: Likewise.
* src/group-list.c: Likewise.
* src/groups.c: Likewise.
* src/mktemp.c: Likewise.
* src/setuidgid.c: Likewise.
* src/stdbuf.c: Likewise.
* src/timeout.c: Likewise.
* src/truncate.c: Likewise.
* gl/lib/mbsalign.c: Likewise.
* tests/test-lib.sh: Likewise.
* bootstrap: Likewise.
* README-hacking: Likewise.
2009-08-25 09:21:00 +02:00
Jim Meyering
ddfcccce51 doc: HACKING: mention the new space-only indentation policy 2009-08-25 09:21:00 +02:00
Jim Meyering
1130e181ee maint: teach "make syntax-check" the space-only indentation rule
* cfg.mk (sc_prohibit_tab_based_indentation): New rule.
* .x-sc_prohibit_tab_based_indentation: New file.
* Makefile.am (syntax_check_exceptions): Add file,
.x-sc_prohibit_tab_based_indentation.
2009-08-25 09:21:00 +02:00
Jim Meyering
5e778f7c8d global: convert indentation-TABs to spaces
Transformed via this shell code:
t=$'\t'
git ls-files \
  | grep -vE '(^|/)((GNU)?[Mm]akefile|ChangeLog)|\.(am|mk)$' \
  | grep -vE 'tests/pr/|help2man' \
  | xargs grep -lE "^ *$t" \
  | xargs perl -MText::Tabs -ni -le \
    '$m=/^( *\t[ \t]*)(.*)/; print $m ? expand($1) . $2 : $_'
2009-08-25 09:21:00 +02:00
Jim Meyering
2bc0f3caaa cp: ignore obscure failure to preserve symlink time stamps,
...when run on a kernel older than what was implied by headers and
libraries tested at configure time.
* src/copy.c (utimens_symlink): Ignore failure when errno == ENOSYS.
* NEWS (Bug fixes): Mention it.
Reported by Todd Zullinger and Kamil Dudka.
Details in this thread:
http://thread.gmane.org/gmane.linux.redhat.fedora.devel/119834
2009-08-24 12:44:13 +02:00
Jim Meyering
831acb987e tests: skip (don't fail) a cp test, upon mount-related failure
* tests/cp/cp-mv-enotsup-xattr: Upon a set-up failiure, rather than
failing the test with a "framework failure" diagnostic, just skip it.
Russell Whitaker reported that this test failed on slackware.
2009-08-23 22:05:58 +02:00
Jim Meyering
1d651b954f build: update from *public* gnulib
* gnulib: Update submodule to latest.
Kamil Dudka reported that bootstrap was broken.
2009-08-23 10:13:36 +02:00
Jim Meyering
99e607b910 build: update from gnulib
* gnulib: Update submodule to latest.
2009-08-22 16:12:26 +02:00
Jim Meyering
04a31ad99d post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2009-08-20 21:48:45 +02:00
Jim Meyering
af1996dde2 version 7.5
* NEWS: Record release date.
2009-08-20 21:19:36 +02:00
Jim Meyering
7f242fadfa tests: skip the stdbuf tests when the abs build directory name is bogus
* tests/misc/stdbuf: Avoid spurious failure when the directory name
from which we'd set LD_PRELOAD contains unsafe characters.
2009-08-20 19:47:12 +02:00
Jim Meyering
3db7c2c03c install: avoid a portability bug when compiling with non-gcc
* src/install.c (extra_mode): Be careful to return only a 0 or 1
value, since this is a "bool" function, and there are still some
compilers for which this is necessary.  Without this change,
Bernhard Voelker reported that the Forte Developer 7 C 5.4 2002/03/09
compiler would produce a malfunctioning "install" binary.  Details in
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/17710/focus=17760
2009-08-20 10:46:22 +02:00
Jim Meyering
a70ac4ef32 tests: make install-C slightly less prone to confusion
* tests/install/install-C: Invoke framework_failure, if necessary.
2009-08-19 17:10:23 +02:00
Jim Meyering
112bccb26b build: avoid "make dist" failure in man/
Now that "make check" no longer builds programs like arch, ...
* src/Makefile.am (dist-hook): Depend on $(all_programs), so that the
subsequent build in man/ doesn't fail due to lack of a program like
arch that is not going to be installed.
2009-08-19 08:44:40 +02:00
Jim Meyering
611870a8f3 build: update from gnulib
* gnulib: Update submodule to latest.
2009-08-18 21:07:44 +02:00
Giuseppe Scrivano
718b2790c0 nl: deprecate --page-increment in favor of --line-increment
* NEWS: Mention the change.
* doc/coreutils.texi: Document the new --line-increment option.
* src/nl.c (struct option): Add --line-increment,
(usage): Describe it,
(main): Use it.
2009-08-18 18:40:41 +02:00
Jim Meyering
6f6599a006 tests: stdbuf: fix a bug in test script
* tests/misc/stdbuf: Use skip_test_ only after it's defined.
Reported by Berhnard Voelker.

(sc_check-AUTHORS): Rename rule from check-AUTHORS.
2009-08-18 17:53:20 +02:00
Jim Meyering
d25101cc30 build: perform check-AUTHORS via syntax-check, not via "make check"
* src/Makefile.am (check): Don't depend on check-AUTHORS.
That check fails on systems for which a program like stdbuf is
not built.  Instead, move this check to "make syntax-check".
(sc_check-AUTHORS): Rename rule from check-AUTHORS.
* cfg.mk (sc_check-AUTHORS): New rule.
Reported by Berhnard Voelker.
2009-08-18 12:16:36 +02:00
Jim Meyering
ea57d46482 sort: use more portable initialization syntax
* src/sort.c (find_unit_order): Spell out 256-element static
initializer, rather than relying on C99 syntax.
Required for Forte Developer 7 C 5.4 2002/03/09 on Solaris 10.
Reported by Bernhard Voelker.
2009-08-18 11:02:36 +02:00
Jim Meyering
eca6a4a21a build: suppress warnings due to gcc's new -Wjump-misses-init
* configure.ac: Ignore -Wjump-misses-init violations in remove.c.
2009-08-17 19:37:47 +02:00
Jim Meyering
60d0413fe6 build: update from gnulib
* gnulib: Update submodule to latest.
2009-08-17 19:17:18 +02:00
Jim Meyering
dc1618fbd8 tests: tail-2/append-only: don't discard stderr
* tests/tail-2/append-only: Don't discard a diagnostic that
may help explain why this test fails for some.  Details in
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/17621/focus=17641
2009-08-16 13:54:40 +02:00
Jim Meyering
e4dcb20e83 tests: skip the misc/stdbuf test if stdbuf was not built
* tests/misc/stdbuf: Skip this test when stdbuf is not built.
Reported by Eric Blake.
2009-08-14 21:34:05 +02:00
Jim Meyering
ea5b7124b4 build: use gnulib's getopt-gnu module (getopt is now deprecated)
* bootstrap.conf (gnulib_modules): Gnulib's getopt module is now
deprecated; use the new, preferred name, getopt-gnu.
* gnulib: Update to latest.
2009-08-14 17:15:50 +02:00
Pádraig Brady
f0a1f0df22 cp,mv: fix issues with preserving timestamps of copied symlinks
* src/copy.c (copy_internal): On systems without utimensat don't
use utimens on a symlink, as that would dereference the symlink.
* tests/cp/abuse: To work around possible attribute preservation
failures breaking the test, use cp -dR rather than cp -a.
2009-08-14 17:10:53 +02:00
Pádraig Brady
8574c74325 doc: clarify the cp --reflink NEWS
* NEWS: Remove the description associated with the removed
experimental code which unconditionally tried to reflink() on copy.
Also clarify where --reflink works exactly.
2009-08-14 10:48:07 +01:00
Jim Meyering
11ccbdab27 tests: raise ulimit virt-mem limit to avoid new failure
* tests/cp/link-heap: Raise limit from 16MB to ~20MB,
to avoid spurious failure on rawhide.
2009-08-13 17:25:39 +02:00
Pádraig Brady
f43f028652 tail: fix tail -f failure when inotify used
* src/tail.c (tail_forever_inotify): Remove the redundant and
incorrect error check of the return from inotify_add_watch().
Also initialize the wd member of each File_spec to an invalid value.
Reported by C de-Avillez.
2009-08-13 16:09:27 +01:00
Pádraig Brady
e4caea5775 dd: fix a signal handling race
* src/dd.c (main): Install the signal handlers at startup
rather than just before the copy starts. In this way signals
received before the copy (like during a slow truncate for e.g.)
will be deferred and handled consistently.
* THANKS: Add Bernhard's email address.
* NEWS: Mention the fix.
Reported by Bernhard Voelker.
2009-08-13 16:06:50 +01:00
Pádraig Brady
ab274c428d tests: improve one of the tail --pid tests
* tests/tail-2/pid: Speed up the test by specifying a
timeout of 100ms rather than the default 1s.  Also
skip the test instead of failing in the unlikely case
were the pid required to be missing pid is present.
2009-08-12 22:03:33 +01:00
Jim Meyering
e32320de66 nl, pinky: replace uses of strcat
* src/nl.c (main): Avoid strcat, on principle.  Use stpcpy instead.
* src/pinky.c (print_long_entry): Likewise.
2009-08-10 09:17:07 +02:00
Jim Meyering
eb2f9e84b9 build: update from gnulib, for HOST_NAME_MAX on solaris 10
* gnulib: Update submodule to latest.
2009-08-10 09:16:57 +02:00
Giuseppe Scrivano
a1d7469835 cp: accept the --reflink option
* NEWS: Mention it.
* doc/coreutils.texi (cp invocation): Describe it.
* src/copy.h (struct cp_options) [reflink]: New member.
* src/copy.c (usage): Describe it.
(copy_reg): If reflink is true try to clone the file.
(main): Check for --reflink.
(cp_option_init): Initialize the new member.
* src/install.c (cp_option_init): Initialize the new member.
* src/mv.c (cp_option_init): Likewise.
* tests/cp/sparse: Add a new test case.
2009-08-07 17:14:22 +02:00
Jim Meyering
ff159a605e dd: preserve semantics of O_DIRECT even for final block
* src/dd.c: Include "ignore-value.h"
(iwrite): When disabling O_DIRECT, try to compensate
via POSIX_FADV_DONTNEED and fsync.
Suggested by Eric Sandeen.
2009-08-07 16:21:35 +02:00
Jim Meyering
c5c15884df maint: move selinux-at module from gl/ to gnulib
* gl/lib/selinux-at.c: Remove file.
* gl/lib/selinux-at.h: Likewise.
* gl/modules/selinux-at: Likewise.
* gnulib: update to latest, to get the new module.
2009-08-06 14:32:38 +02:00
Jim Meyering
5929322ccb dd: work around buffer length restrictions with oflag=direct (O_DIRECT)
dd oflag=direct would fail to copy a file with size that is
not a multiple of 512 (destination file system specific)

* NEWS (Bug fixes): Mention it.
* src/dd.c (iwrite): Turn off O_DIRECT for any
smaller-than-obs-sized write.  Don't bother to restore it.
* tests/dd/direct: New test for the above.
* tests/Makefile.am (TESTS): Add dd/direct.
* doc/coreutils.texi (dd invocation): Mention oflag=direct
buffer size restriction.
Details in http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/17586
Reported by Eric Sandeen.
2009-08-06 09:41:50 +02:00
Jim Meyering
365fb90eaa dd: remove unnecessary #if HAVE_FTRUNCATE
* src/dd.c (main): Remove unnecessary cpp directives.
Gnulib guarantees that ftruncate is usable.
2009-08-04 20:06:03 +02:00
Jim Meyering
eae535e1a3 cp -pP (and e.g., -a): preserve time stamps on symlinks, too
* src/copy.c (utimensat_if_possible): New function.
(copy_internal): Remove variable, "preserve_metadata".
Replace with "dest_is_symlink".  That covers all cases but one:
the one in which cp --link has created hard links to non-directories.
In that case, there is no need to update attributes of the links.
Use utimensat_if_possible, to preserve timestamps of symlinks.
* NEWS (New features): Mention this.
* tests/Makefile.am (TESTS): Add cp/preserve-slink-time.
* tests/cp/preserve-slink-time: New file.
* m4/jm-macros.m4 (coreutils_MACROS): Test for utimensat.
Reported in http://bugzilla.redhat.com/230866
2009-08-04 17:38:54 +02:00
Kamil Dudka
1762092901 install runs faster again with SELinux enabled
* m4/jm-macros.m4: Pull in SELinux libraries while checking for
matchpathcon_init_prefix ().  Emit configure warning when not found
with SELinux enabled.
* NEWS (Bug fixes): Mention it.
The bug was introduced in coreutils-7.0 via commit 0647f3eb, 2008-06-02,
"accommodate older SELinux which lacks matchpathcon_init_prefix".
2009-08-04 16:51:52 +02:00
Jim Meyering
c60f151ebd maint: move the update-copyright rule to gnulib's maint.mk
* gnulib: Update submodule to get latest maint.mk.
* Makefile.am (update-copyright): Remove rule; now it's in maint.mk.
* m4/check-decl.m4: Update sole remaining copyright year list.
2009-08-04 12:06:32 +02:00
Jim Meyering
48726556ca build: *really* update to a usable gnulib commit 2009-07-31 18:05:10 +02:00
Jim Meyering
81ae3611d3 build: update to a usable gnulib commit
The commit, 5ef90695, 2009-07-29, "maint: move update-copyright
to gnulib" recorded a local-only commit.
Reported by Pádraig Brady.
2009-07-31 09:05:25 +02:00
Jim Meyering
c06547cade tests: new function: require_openat_support_
* tests/rm/inaccessible: Factor out openat-support-detection code...
* tests/test-lib.sh (require_openat_support_): ...into this new function.
2009-07-30 17:47:21 +02:00
Jim Meyering
28e3946ef0 tail: tweak indentation
* src/tail.c (tail_forever_inotify): Adjust indentation of continued line.
2009-07-30 17:45:53 +02:00
Pádraig Brady
c9871986eb tail: properly parse fractional seconds when monitoring a pid
* src/tail.c (tail_forever_inotify): The fractional
part of the delay was 1000 times too large.
* tests/tail-2/pid: Add a test to ensure the
timeout happens for this case.
2009-07-30 17:40:43 +02:00
Jim Meyering
2ac2cace15 tests: test for just-fixed tail --pid bug
* tests/tail-2/pid: Ensure tail exits successfully when PID dies.
2009-07-30 10:27:51 +02:00
Giuseppe Scrivano
d3feea0181 tail: exit successfully upon watched process death
* src/tail.c (tail_forever_inotify): If a PID is specified and the
watched process dies, exit with status EXIT_SUCCESS, rather than
falling through to an EXIT_FAILURE.
2009-07-30 10:24:17 +02:00
Jim Meyering
5ef9069576 maint: move update-copyright to gnulib
* build-aux/update-copyright: Remove file.
* bootstrap.conf (gnulib_modules): Add update-copyright.
* gnulib: Update submodule to latest.
2009-07-29 19:30:58 +02:00
Jim Meyering
e40c5f735c maint: make update-copyright work in yet another case
* build-aux/update-copyright: Handle the case in which "\n#"
appears between the final year number and the copyright holder name.
* m4/lib-check.m4: Update copyright year list.
Reported by Joel E. Denny.
2009-07-29 15:39:25 +02:00
Jim Meyering
bc51349ccd maint: update NEWS
* NEWS (New features): Mention it.
2009-07-29 12:27:08 +02:00
Giuseppe Scrivano
4533017669 cp: support btrfs' copy-on-write file clone operation
* src/copy.c [HAVE_SYS_IOCTL_H]: Include <sys/ioctl.h>.
(BTRFS_IOCTL_MAGIC, BTRFS_IOC_CLONE): Define.
(clone_file): New function.
(copy_reg): Use the btrfs clone operation if possible.
2009-07-29 12:15:50 +02:00
Jim Meyering
095861179c maint: update sleep.c's copyright year list
* src/sleep.c: Update copyright year list to include 2009.
* tests/sort-time/rand-gen: Remove long-unused file.
* tests/sort-time/README: Likewise.
2009-07-29 11:21:21 +02:00
Joel E. Denny
1bc5395e92 maint: improve update-copyright rule
* Makefile.am (update-copyright): Relax the selection rule
to match any file containing the word "Copyright".
Correct the exclusion rule so that it also excludes ChangeLog
and COPYING files that are not in the top level directory.
2009-07-29 11:05:54 +02:00
Jim Meyering
c91c85647c maint: update-copyright: fix just-introduced bug
* build-aux/update-copyright: ... and revert-for-now the
change that made this script invoke localtime only once.
2009-07-29 10:56:10 +02:00
Jim Meyering
9d87a45b2f maint: make update-copyright handle more cases
* build-aux/update-copyright: Handle cases in which the final
year number and copyright holder are on separate lines.
Prompted by a report from Joel E. Denny.
Also, do not invoke localtime for each line we process.
2009-07-29 10:25:24 +02:00
Pádraig Brady
8aeda9b930 doc: fix the generated HTML index
* doc/coreutils.texi: Move the "SELinux context" section
down below the "System context" nodes so that the HTML
index is generated correctly. Also some extraneous and missing
'.' characters were corrected in the index.
Reported by Benno Schulenberg.
2009-07-28 23:21:43 +01:00
Giuseppe Scrivano
e81c4d88c2 tail: use the inotify backend also with --pid=PID
* src/tail.c (tail_forever_inotify): When a PID is specified, use
select to block for no more than sleep_interval seconds at a time,
and check for process death upon timeout.
(main): Adapt to new tail_forever_inotify interface.
2009-07-28 09:31:54 +02:00
Jim Meyering
5874a8215d tests: new test for bug in ls -1U dir arg ...
* tests/misc/ls-misc (multi-arg-U1): New test.
2009-07-27 17:12:58 +02:00
Kamil Dudka
493c481684 ls -1U dir arg ... now works again
* src/ls.c (print_dir): Emit "$dir_name:\n" *before* accumulating (and
possibly printing) directory entry names.
The bug was introduced in coreutils-7.0 via commit
8d974b00, 2008-07-30, "ls -U1 now uses constant memory".
Reported by Julian Bradfield.
* NEWS (Bug fixes): Mention it.
2009-07-27 17:10:39 +02:00
Heikki Orsila
6edc9c972e tr: improve --help's description of --complement (-c) 2009-07-27 11:55:35 +02:00
Pádraig Brady
2f4188ebec doc: add a sort by line length example
* doc/coreutils.texi (sort invocation): Add an example showing how
to sort data not directly supported by the sort command.
2009-07-27 01:34:35 +01:00
Pádraig Brady
0bf77fc8ec doc: mention realpath in the readlink info
* doc/coreutils.texi (readlink invocation): Add realpath to the index,
and also mention it in the readlink description so people
searching for that functionality can easily make the connection.
2009-07-27 00:53:04 +01:00
Jim Meyering
394e3ef72a build: use a fixed-name temporary in man/Makefile.am
* man/Makefile.am (check-x-vs-1): Using a fixed-name temporary file
is better than one ending in -$$, because many -$$-suffixed files
may accumulate over time.
2009-07-26 20:42:31 +02:00
Kamil Dudka
9f9e2d81d1 doc: improve readlink description here, too
* doc/coreutils.texi (readlink invocation): Update menus.
Add @cindex entries.
2009-07-24 10:25:23 +02:00
Jim Meyering
571b7e3eee readlink: improve one-line summary: prints canonical file names, too
* src/readlink.c (usage): Adjust one-line summary.
* man/readlink.x: Likewise.
Suggested by Kamil Dudka.
2009-07-24 09:33:38 +02:00
Jim Meyering
954dba24d4 build: update from gnulib
* gnulib: Update submodule to latest.
2009-07-21 18:35:28 +02:00
Jim Meyering
4612670f46 doc: point to Guile's ChangeLog-writing guidelines
* HACKING (Commit log requirements): Point to Guile's
http://www.gnu.org/software/guile/changelogs/guile-changelogs_3.html.
Mention that a bit of prose can be welcome.
2009-07-14 20:43:49 +02:00
Jim Meyering
8f3171bbc4 tail: adjust type of a local variable
* src/tail.c (tail_forever_inotify): Declare "len" to be of type
size_t, not ssize_t, since the former is what safe_read returns.
2009-07-11 09:43:25 +02:00
Jim Meyering
68149832bd tests: avoid false-positive cp/link-heap failure
* tests/cp/link-heap: Increase address space limit from 14000KB
to 16000KB, to avoid failure with Debian unstable's libc6-dev-2.9-19
2009-07-09 15:50:49 +02:00
Jim Meyering
a9461064b8 build: avoid build warn/failure due to -Wstack-protector
* configure.ac: Do not enable -Wstack-protector.
Otherwise, at least df.c would provoke a warning.
2009-07-09 15:21:53 +02:00
Ondřej Vašík
ad7b37bfd4 copy.c: remove a duplicate expression
* src/copy.c (copy_attr_error): remove a redundant expression
added in commit e0cf592f, 2009-04-27, "factor out test for errno ...".
2009-07-08 22:59:56 +01:00
Jim Meyering
0d64bc4429 build: update from gnulib
* gnulib: Update submodule to latest.
2009-07-08 22:37:29 +02:00
Jim Meyering
0e93175301 tail: use size_t for counter and index variables, ...
* src/tail.c (any_live_files): ... not "int" or even unsigned int
(tail_forever, tail_forever_inotify, main): Likewise.
2009-07-08 19:53:43 +02:00
Jim Meyering
3639a880aa tail: declare "file descriptor" variable to be "int", not size_t
* src/tail.c (tail_forever_inotify): Use "int", not size_t
as the type of a file descriptor variable.
2009-07-08 19:52:58 +02:00
Jim Meyering
ec34511ccf move argv-iter module to gnulib
* gl/lib/argv-iter.c: Remove file.
* gl/lib/argv-iter.h: Remove file.
* gl/modules/argv-iter: Remove file.
* gl/modules/argv-iter-tests: Remove file.
* gl/tests/test-argv-iter.c: Remove file.
* gnulib: Update submodule, to get argv-iter
2009-07-04 17:41:39 +02:00
Giuseppe Scrivano
2c20fd053b tests: refactor code to use require_proc_pid_status_
* tests/tail-2/tail-n0f: Read the process status using the test-lib.sh
require_proc_pid_status_ function.
2009-07-04 10:47:56 +02:00
Giuseppe Scrivano
42cd6653b0 tests: use the "nobody" user's group as the default group id
* tests/chroot/credentials: Use the group id, not its name.
* tests/test-lib.sh (NON_ROOT_GROUP): Use the "nobody" user's group in
place of "nogroup".
2009-07-04 10:47:56 +02:00
Jim Meyering
065ce24361 build: update from gnulib
* gnulib: Update submodule to latest.
2009-07-03 20:28:33 +02:00
Pádraig Brady
acc01947af sort: allow SI and IEC units on separate human sort fields
* src/sort.c: Store the si_present state per key rather than globally
* tests/misc/sort: Add a check that would have previously failed.
Also add a test to demonstrate that invalid IEC/SI mixtures are not
always noticed when they're not significant to the sort.
2009-07-03 17:00:55 +01:00
Giuseppe Scrivano
d9f83f9a60 tail: avoid an inotify portability problem in kernels prior to 2.6.21
* src/tail.c (tail_forever_inotify): Handle the special case in which
an old inotify watcher returns 0.  Affects kernels in [2.6.13, 2.6.21).
2009-07-03 17:52:30 +02:00
Jim Meyering
66ac50e723 tests: tail-2/wait: rename internal file name
* tests/tail-2/wait: Rename file from not_accessible to unreadable,
since all the test cares about is readability.
2009-07-03 17:52:30 +02:00
Giuseppe Scrivano
d106277d45 tests: tail-2/wait: don't fail when run as root
* tests/tail-2/wait: Ensure that the unreadable file really is not
readable before trying to run "tail -f" on it.
2009-07-03 17:52:30 +02:00
Pádraig Brady
962878499c doc: update the info on sort -b and -k
* doc/coreutils.texi (sort invocation): Mention in the description
of -b, that the locale can also affect whether blanks are significant.
Update the list of ordering options for a --key that cause it
to not inherit any global ordering options.
Update the list of ordering options that implicitly skip whitespace.
2009-07-03 16:49:04 +01:00
Pádraig Brady
3e565eb3a6 maint: generalize the development prerequisites docs
* README-hacking: Add a little more high level info and
merge notes on specific developer prerequisites into README-prereq
* README-prereq: Remove the Fedora 8 specific information
and generalize the information to be applicable to any system.
2009-07-03 16:47:17 +01:00
Jim Meyering
6d0d1c47b2 tail: add comments noting potential inotify-related problems
* src/tail.c (tail_forever_inotify): Add two FIXME comments.
2009-06-29 20:43:26 +02:00
Jim Meyering
5718733510 maint: bootstrap: merge changes from gnulib
* bootstrap: Indent using spaces, not TABs.
2009-06-28 12:16:28 +02:00
Jim Meyering
f24b825171 maint: bootstrap: sync submodule usage from gnulib
* bootstrap: Config for git submodule use only if .gitmodules exists.
2009-06-28 11:25:13 +02:00
Jim Meyering
07c6f21b81 maint: bootstrap: split a few long lines
* bootstrap (found_aux_dir): Avoid lines longer than 80 columns.
2009-06-28 11:17:50 +02:00
Jim Meyering
b3f293c61b maint: don't change COPYING
* COPYING: Don't modify Copyright date list in imported file.
This file is one of very few exceptions in that we version-control it,
even though its primary source is another package.
Spotted by Eric Blake.
2009-06-27 09:16:59 +02:00
Jim Meyering
e472f8fece maint: add a rule to automate the annual copyright-year-update process
* build-aux/update-copyright: New file.
* Makefile.am (changelog_etc): Add update-copyright.
(update-copyright): New rule.
2009-06-27 09:16:59 +02:00
Pádraig Brady
1c16c9598e stdbuf: fix to stop -i option causing an assertion
* src/stdbuf.c (main): Fix the array bounds check in the assert
* tests/misc/stdbuf: Add a test for all standard streams
2009-06-27 02:21:43 +01:00
Pádraig Brady
9c6c621c32 doc: clarify the tail inotify NEWS
* NEWS: Say why inotify was used
2009-06-25 14:50:05 +01:00
Jim Meyering
2232b4d08f maint: update all Copyright year lists to include 2009 2009-06-23 22:33:15 +02:00
Jim Meyering
ec00727a72 maint: remove old TODO files
* lib/TODO: Remove file.
* tests/join/TODO: Likewise.
2009-06-23 22:30:29 +02:00
Jim Meyering
f9554bbe25 doc: README-hacking tweak
* README-hacking: Move the "While building..." sentence down
to where it belongs.
2009-06-23 16:54:38 +02:00
Jim Meyering
fc66fb4d99 tests: tail-2/pid: include more info upon failure
* tests/tail-2/pid: Print unexpected $state upon failing.
2009-06-23 16:53:43 +02:00
Jim Meyering
0975852c50 doc: typo fix in README-hacking
* README-hacking: Fix a typo.
Don't make building from a git-cloned tree sound so hard.
2009-06-20 14:48:59 +02:00
Jim Meyering
0c131d4c10 build: update from gnulib (hash module updates; maint.mk tweak)
* gnulib: Update submodule to latest.
2009-06-20 00:06:42 +02:00
Jim Meyering
25a18dafb8 doc: fix a typo
* doc/coreutils.texi (stdbuf invocation): Insert missing "to".
2009-06-17 16:17:19 +02:00
Pádraig Brady
a5a2a406f8 stdbuf: A new program to run a command with modified stdio buffering
* AUTHORS: Register as the author.
* NEWS: Mention this change.
* README: Add stdbuf command to list.
* configure.ac: Only enable on ELF systems with GCC.
* cfg.mk (sc_system_h_headers): Use VC_LIST_EXCEPT rather than
VC_LIST, so we can add an exception, if needed.
* .x-sc_system_h_headers: New file.  Exempt libstdbuf.c.
* Makefile.am (syntax_check_exceptions): Add .x-sc_system_h_headers.
* doc/coreutils.texi (stdbuf invocation): Add stdbuf info.
* man/.gitignore: Ignore generated manpage.
* src/.gitignore: Ignore stdbuf and libstdbuf.so binaries.
* man/Makefile.am (stdbuf.1): Add dependency.
* man/stdbuf.x: New file with example usage.
* po/POTFILES.in: Reference new command and shared library sources.
* src/Makefile.am (build_if_possible__progs): Add stdbuf and libstdbuf,
(pkglib_PROGRAMS): Reference optional shared lib,
(libstdbuf_so_LDADD): Ensure we don't link with non PIC libcoreutils.a.
(libstdbuf_so_LDFLAGS): Add -shared GCC option,
(libstdbuf_so_CFLAGS): Add -fPIC GCC option.
(check-README): Exclude libstbuf.
(check-AUTHORS): ditto.
(sc_tight_scope): Exclude functions starting with __.
* src/libstdbuf.c: The LD_PRELOAD shared library to control buffering.
* src/stdbuf.c: New file to setup env variables before execing command.
* tests/Makefile.am: Reference new test file.
* tests/misc/help-version: Set expected exit codes.
* tests/misc/invalid-opt: ditto.
* tests/misc/stdbuf: Add 9 tests.
2009-06-17 14:54:29 +01:00
Jim Meyering
ff6fe3d17d doc: cp: describe an oddity of combining -H/-L and --preserve=links
* doc/coreutils.texi (cp invocation) [-L]: Elaborate.
[--preserve=links]: Remove comments saying that we need documentation
for just this situation.  Provide more explanation and examples.
Reported by Brian M. Carlson in http://bugs.debian.org/525048.
2009-06-16 18:08:01 +02:00
Jim Meyering
f51a401bc2 maint: revert last change: we're not ready for "local" in scripts, yet
Revert "use a local var: more readable"
This reverts commit c0d8245288.
2009-06-15 19:37:42 +02:00
Jim Meyering
c0d8245288 use a local var: more readable 2009-06-15 18:34:21 +02:00
Giuseppe Scrivano
ae494d4be8 tail: use inotify if it is available
* NEWS: Document the new feature.
* m4/jm-macros.m4: Check if inotify is present.
* src/tail.c (tail_forever_inotify): New function.
(main): Use the inotify-based function, if possible.
* tests/Makefile.am: Add new tests for tail.
* tests/test-lib.sh (require_proc_pid_status_, get_process_status_):
New functions.
* tests/tail-2/pid: New file.
* tests/tail-2/wait: New file.
* tests/tail-2/tail-n0f: Refactor code into the test-lib.sh
require_proc_pid_status_ function.
2009-06-15 18:34:14 +02:00
Jim Meyering
358aca5fb9 diag: say "failed to...", rather than "cannot..." in a few diagnostics
* src/chroot.c (main): ...it's more precise.
* src/nohup.c (main): Likewise.
* src/setuidgid.c (main): Likewise.
* src/timeout.c (main): Likewise.
2009-06-13 16:37:13 +02:00
Cliff Miller
24c727d3c2 sort: Ignore fields where end position is before the start position
* NEWS: Mention the fix
* THANKS: Add Cliff Miller
* src/sort.c (keycompare): Ensure lima >= texta
* tests/misc/sort: Add 3 corresponding tests

Signed-off-by: Pádraig Brady <P@draigBrady.com>
2009-06-13 01:25:06 +01:00
Pádraig Brady
ba1c5239bc tests: ls --color, permissions override hardlink coloring
* tests/ls/multihardlink: Add a test case to demonstrate
and test this non obvious behavior.
2009-06-11 11:39:24 +01:00
Kamil Dudka
0df338f671 ls --color: do not colorize files with multiple hard links by default
* src/ls.c: Rename hl->mh, do not colorize files with multiple
hard links by default.
* src/dircolors.c: Rename HARDLINK -> MULTIHARDLINK, hl -> mh.
* src/dircolors.hin: Do not colorize files with multiple hard links by
default.
* tests/Makefile.am: Rename the test case accordingly.
* tests/ls/multihardlink: Additionally test ls' default behavior
and factor out some duplication.
* NEWS: Mention the change in behavior.
2009-06-11 09:53:50 +02:00
Pádraig Brady
502be19e0f maint: Add a syntax-check to ensure all .x-sc_ files are distributed
* Makefile.am: Add a couple of missing entries to
syntax_check_exceptions for distribution.
* cfg.mk: Add a rule to ensure the syntax_check_exceptions list
stays in sync with the .x-sc_* files in the repository.
2009-06-08 15:35:31 +01:00
Jim Meyering
523c40505c build: update from gnulib
* gnulib: Update submodule to latest.
2009-06-07 13:58:24 +02:00
Jim Meyering
f9a950b87f sort: die immediately upon heap allocation failure
* src/sort.c (register_proc): Handle hash_insert failure.
2009-06-07 13:58:24 +02:00
Mike Frysinger
5424a74725 dircolors: add screen-256color-bce to TERM list
* src/dircolors.hin: Add screen-256color-bce.
2009-06-04 07:16:06 +02:00
Jim Meyering
d8243c25cd doc: HACKING: minor adjustments, additions
* HACKING (Amending...): Remove spurious "-e" used with commit --amend.
(log message policy): Mention the 72-column limit.
"build:" and "maint:" are common prefixes, these days.
2009-06-03 18:30:40 +02:00
Jim Meyering
59400b2884 doc: adjust wording in README-prereq 2009-06-03 14:58:57 +02:00
Jim Meyering
d7397c1e7b dircolors: recognize .xz, .txz, .tbz and .tlz suffixes
* src/dircolors.hin: Add .xz, .txz, .tbz and .tlz.
2009-06-03 14:07:27 +02:00
Jim Meyering
a65957da77 doc: use newer URL for XZ utils
* README-hacking: Use <http://tukaani.org/xz/>
* README-prereq: Mention xz, not lzma.
2009-06-03 07:19:20 +02:00
Matěj Cepl
ba6e08c627 doc: adjust README-prereq instructions
* README-prereq: Mention new requirement on automake-1.11,
with its new location and updated dependency on autoconf-2.62.
Remove the reference to coreutils-7.0 so that this file
implicitly refers to the latest or release version of coreutils.
Fix and clarify the instructions for updating the $PATH.

Signed-off-by: Pádraig Brady <P@draigBrady.com>
2009-06-03 01:03:47 +01:00
Jim Meyering
18db64ba7e doc: HACKING: mention the GNU Coding Standards
* HACKING (Add documentation): Add a link to the GCS.
2009-06-02 16:35:14 +02:00
Jim Meyering
4dbfbf3fd0 build: no longer list gnulib's "memchr" module as obsolete
* bootstrap.conf (obsolete_gnulib_modules): Remove memchr from
the list, now that it fixes a problem in some modern C libraries.
(gnulib_modules): Add it here.
2009-06-02 16:35:14 +02:00
Jim Meyering
0818c52874 build: make generated man/*.1 files read-only
This should help people notice that they are generated.
Note: each file already has a comment to that effect from help2man.
* man/Makefile.am (.x.1): Make generated files read-only.
Also, don't redirect directly to the target, $@.
2009-06-02 16:35:14 +02:00
Jim Meyering
a5c627f9c6 build (man/): use automake's new $(AM_V_GEN) variable
* man/Makefile.am (.x.1, check-x-vs-1, check-programs-vs-x):
Mark with $(AM_V_GEN), so that automake-1.11 prints
"GEN $@" by default (stick with "GEN" in spite of the latter two
rules not officially generating anything -- they're just tests).
2009-06-02 16:35:14 +02:00
Jim Meyering
b96cd035ff chroot: make --groups= work without --userspec=; be more robust
* src/chroot.c (set_additional_groups): Add comments.
Given an empty or all-comma group list, diagnose it and return nonzero.
When more than one group is invalid, diagnose all of them,
not just the first.
(main): Honor --groups= also when --userspec= is not specified.
Now that set_additional_groups consistently diagnoses its failures,
don't diagnose it separately here.
* tests/chroot/credentials: Do not invoke with an empty group list.
2009-06-02 16:34:54 +02:00
Jim Meyering
2e62250e98 chroot: don't set bogus user-ID or group-ID for --u=U: or --u=:G
* src/chroot.c (main): Initialize both "uid" and "gid".  To -1.
This also allows one to set the user-ID or primary group-ID to 0,
in case it's not that already.
* tests/chroot/credentials: Test for the above.
2009-06-02 16:34:53 +02:00
Jim Meyering
bb7ff3bccd chroot: set-*-ID failure must provoke nonzero exit before execvp
* src/chroot.c (main): Exit upon set-group-ID or set-user-ID failure.
2009-06-02 16:34:53 +02:00
Jim Meyering
df356c22ba tests: use "nobody" as the default group name in chroot test
* tests/test-lib.sh (NON_ROOT_GROUP): Use "nobody", not "nogroup".
2009-06-02 16:34:53 +02:00
Jim Meyering
f9bb168f56 build: make distcheck rules use --enable-gcc-warnings
* dist-check.mk (warn_cflags): Remove definition, now that it's
been subsumed by --enable-gcc-warnings.
(my-distcheck): Use configure with --enable-gcc-warnings and remove
use of $(warn_cflags).
2009-06-02 16:34:36 +02:00
Eric Blake
c43333419b head, tail: make --help less ambiguous
* src/head.c (usage): Use -n K, not -n N, to avoid confusion.
* src/tail.c (usage): Likewise.
* doc/coreutils.texi (head invocation, tail invocation):
Likewise.
Reported by Christophe Lyon.
2009-05-29 16:14:56 -06:00
Michael Speer
159faba137 sort: new --human-numeric-sort option to sort KiB MB etc.
* NEWS: Document the new option
* doc/coreutils.texi (sort invocation): ditto
* src/sort.c (main): handle the new --human-numeric-sort option (-h).
(human_numcompare): A new function to compare SI and IEC suffixes
before falling back to the standard --numeric comparison.
(find_unit_order): A new helper function to find the order
of magnitude of a number string as determined by its suffix.
(check_mixed_SI_IEC): A new helper function to exit with error
if both SI and IEC suffixes are presented.
* tests/misc/sort: Add 8 tests to test the new functionality.
* THANKS: Update
2009-05-26 14:49:17 +01:00
Giuseppe Scrivano
c45c51fe97 chroot: accept new options --userspec=U:G and --groups=G1,G2,G3
* NEWS: Note chroot's new options.
* doc/coreutils.texi: Document them.
* src/chroot.c (main): Add support for --userspec and --groups.
* tests/Makefile.am (root-tests): Add chroot/credentials.
* tests/chroot/credentials: New file.
* tests/test-lib.sh: Define NON_ROOT_GROUP to a default value.
2009-05-26 15:10:22 +02:00
Pádraig Brady
39285f6008 doc: clarify the operation of the comm -123 parameters
* src/comm.c (usage): give more information on the -123 parameters,
with examples to show that they can be combined.
Addresses <http://savannah.gnu.org/bugs/?24974>.
* doc/coreutils.texi (comm invocation): Mention that the
column separators are suppressed along with the column.
Suggestion from Dan Jacobson.
* man/comm.x: Reference other commands that match adjacent lines.
* man/join.x: ditto.
* man/uniq.x: ditto.
2009-05-18 16:17:31 +01:00
Jim Meyering
b7f6e0d516 build: require automake-1.11
* bootstrap.conf (buildreq): Require automake-1.11, not 1.10b,
for our use of AM_SILENT_RULES.
* configure.ac (AM_INIT_AUTOMAKE): Likewise.
2009-05-18 07:06:34 +02:00
Jim Meyering
088a7ca9b1 maint: HACKING: mention a few more useful git commands
* HACKING (Miscellaneous useful git commands): Add a few.
2009-05-17 17:51:13 +02:00
Jim Meyering
564622fbea build: avoid new "make distcheck" failure with gcc 4.5.0 20090517
* dist-check.mk (warn_cflags): Add -Wno-enum-compare.
2009-05-17 15:55:35 +02:00
Jim Meyering
2726826c72 build: avoid new warnings from gcc 4.5.0 20090517
* configure.ac: Add an explicit -Wno-logical-op,
now that not listing -Wlogical-op is insufficient.
2009-05-17 13:59:12 +02:00
Jim Meyering
9593a3d8e7 maint: use ARRAY_CARDINALITY more
* src/sort.c (main): Use ARRAY_CARDINALITY, rather than open-coding it.
* src/factor.c (WHEEL_END): Likewise.
* src/csplit.c (main): Likewise.
* src/od.c: Likewise,
* src/ls.c (main): Likewise.
(N_ENTRIES): Remove definition.  Use ARRAY_CARDINALITY instead.
* src/dircolors.c: Likewise.
(array_len): Remove definition.
2009-05-17 13:59:12 +02:00
Jim Meyering
65ed4ca07b build: tr: avoid a warning due to newer gcc's -Wenum-compare
* src/tr.c (N_CHAR_CLASSES): Remove anonymous enum definition.
(look_up_char_class): Use ARRAY_CARDINALITY, rather than N_CHAR_CLASSES.
2009-05-17 13:59:12 +02:00
Jim Meyering
9b54961b13 maint: define ARRAY_CARDINALITY in system.h
* src/system.h (ARRAY_CARDINALITY): Define if not already defined.
2009-05-17 13:59:12 +02:00
Jim Meyering
50ca12c28d build: turn off -Wlong-long
* configure.ac: With --enable-gcc-warnings, -Wlong-long would
cause compilation failure due to inclusion of lib/gethrxtime.h.
Initialize "nw".
2009-05-17 13:59:12 +02:00
Jim Meyering
242f801adf maint: cfg.mk: remove now-unnecessary gnulib_dir definition
* cfg.mk (gnulib_dir): Remove definition, now that gnulib's
maint.mk provides the default we want.
* gnulib: Update submodule to latest.
2009-05-16 09:59:53 +02:00
Pádraig Brady
bba5fed6ba tests: fix date-next-dow failure on older systems
* tests/misc/date-next-dow: In the strftime call use %Y-%m-%d
rather than the newer %F equivalent which is not available
on Solaris 8 for example.
2009-05-15 15:46:11 +01:00
Jim Meyering
fc9fdd18b3 build: update from gnulib, for rename.m4 fix, improved tests, etc.
* gnulib: Update submodule to latest.
2009-05-14 09:55:44 +02:00
Jim Meyering
42e3278f8f maint: README-release: minor improvements
* README-release: Mention gnu_ftp_host-{alpha,...} settings in cfg.mk.
Now that XZ_OPT is set via maint.mk, don't mention it here.
2009-05-14 09:54:22 +02:00
Eric Blake
60e7332dc0 truncate: fix bug in use of isspace
* src/truncate.c (main): Pass unsigned characters to isspace.
* NEWS: Mention this.
2009-05-11 05:52:50 -06:00
Jim Meyering
034cbb3923 post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2009-05-07 15:52:50 +02:00
Jim Meyering
4e54ea0480 version 7.4
* NEWS (Build-related): Mention make check fixes.
2009-05-07 15:35:19 +02:00
Jim Meyering
5aa7858385 admin: update NEWS
* NEWS (Bug fixes): Mention the date-related fixes.
(Portability): Mention the ACL-related fixes on *BSD.
2009-05-07 15:20:56 +02:00
Pádraig Brady
a6c9dd74d8 doc: note the use of LC_COLLATE in comm, join and uniq
* doc/coreutils.texi (uniq invocation): Simplify the
text to remove the inconsequential mentioning of order,
while implying that LC_COLLATE can alter equality comparisons.
* src/comm.c (usage): Mention LC_COLLATE is significant.
* src/join.c (usage): Ditto.
* src/uniq.c (usage): Ditto. Also improve the summary.
Suggestion from Andries Brouwer
2009-05-05 17:14:51 +01:00
Jim Meyering
8d00fb26f1 tests: rm/one-file-system: umount more reliably
* tests/rm/one-file-system: Run umount via trap, so it runs
also upon irregular termination.
2009-05-05 08:52:09 +02:00
Andreas Schwab
1d02be3b9d tests: fix typo in check-AUTHORS rule
* src/Makefile.am (check-AUTHORS): Set locale.
2009-05-05 08:52:03 +02:00
Jim Meyering
3a9072079c build: use a gnulib SHA1 that is not private
* gnulib: Update submodule to latest *public*.
2009-05-04 07:47:56 +02:00
Jim Meyering
975a38a267 build: update from gnulib, for ACL-related fixes
* gnulib: Update submodule to latest.
2009-05-04 07:10:12 +02:00
David Bartley
6249eb0596 mv, rm: adapt to new and improved gnulib interfaces
Use gnulib's new priv-set module and updated write-any-file.
With them, the remove-called can_write_any_file function no
longer tries to drop the unlink-directory privilege, so now
each caller of remove must do that separately, calling
priv_set_remove_linkdir.
* bootstrap.conf (gnulib_modules): Add priv-set.
* src/rm.c: Include "priv-set.h".
(main): Call priv_set_remove_linkdir.
* src/mv.c (main): Likewise.
* gnulib: Update submodule to latest.
2009-05-03 19:12:16 +02:00
Jim Meyering
181615b22a tests: correct the "make check"-run check-AUTHORS test
* src/Makefile.am (check-AUTHORS): Revert back to using
en_US.UTF-8, to ease parsing (English-only) text around the
list of names, even when .po files are not installed.
Reported by Andreas Schwab.
Along the way, use $(AM_V_GEN), not "@".
(sc_tight_scope): Use $(AM_V_GEN) here, too.
* gnulib: Update submodule to latest, for the proper_name_utf8 fix
that makes --version output print the UTF-8 rendering of author names
in more cases.
2009-05-03 15:51:27 +02:00
Jim Meyering
59e8a5e2b2 tests: add tests of e.g., date -d 'next monday'
* tests/misc/date-next-dow: New file.
* tests/Makefile.am (TESTS): Add misc/date-next-dow.
* gnulib: Update submodule to latest, for getdate.y that
handles "next Monday" properly when run on a Monday.
2009-05-03 12:03:50 +02:00
Jim Meyering
40d50b821f post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2009-05-01 18:19:19 +02:00
Jim Meyering
0ae4336f4f version 7.3
* NEWS: Record release date.
2009-05-01 18:03:50 +02:00
Jim Meyering
120118c7d8 maint: tweak release-building notes
* README-release: Specify -j1 on the command to run all tests.
Otherwise, running some in parallel would cause failures, e.g.,
for rm/ext3-perf and tail-2/assert-2.
2009-05-01 17:55:11 +02:00
Eric Blake
875cae47a9 stdopen: remove unused code
* m4/stdopen.m4: Delete now-unused file.
* lib/stdopen.h: Likewise.
* lib/stdopen.c: Likewise.
2009-04-30 16:47:13 -06:00
Jim Meyering
269bb7362f build: update from gnulib, for fixed lib/signbitl.c
* gnulib: Update submodule to latest.
2009-04-30 17:23:49 +02:00
Jim Meyering
0e945ebcc5 build: "make check" now fails in a friendlier manner for missing Perl
* doc/Makefile.am (sc-lower-case-var): Don't redirect stderr of
$(PERL) (which is sometimes build-aux/missing) to /dev/null,
so that a failing "make check" explains that Perl is not installed.
Reported by James Youngman.
2009-04-30 13:50:40 +02:00
Jim Meyering
71ebb443d8 build: doc: emit something for each "make check"-run rule
* doc/Makefile.am: Use $(AM_V_GEN) in place of each leading "@".
(check-texinfo): Align line-continuation backslashes.
2009-04-30 13:47:46 +02:00
Jim Meyering
428db13557 build: update from gnulib, for the lib/*-state.c compilation fixes
* gnulib: Update submodule to latest.
2009-04-29 07:35:43 +02:00
Pádraig Brady
0a28715b10 misc: correct NEWS entry about id -G portability
* NEWS (Portability): getgrouplist has the portability issues,
not getgroups.
2009-04-28 15:52:29 +01:00
Jim Meyering
74171b693c df: adjust comment to match recent code change
* src/df.c (main): Update comment to match.
2009-04-28 14:45:43 +02:00
Jim Meyering
c4dfd3138e misc: mention the df vs. automount change
* NEWS (Portability): Mention that df now accommodates the new
behavior of some automounters.
2009-04-28 14:32:26 +02:00
Jim Meyering
d76a1c2a2d misc: alphabetize NEWS entries 2009-04-28 14:32:26 +02:00
Tomas Smetana
dbd17157d7 df: use open(2), not stat, to trigger automounting
* src/df.c (main): When iterating over command-line arguments,
attempting to ensure each backing file system is mounted, use
open, not stat.  stat is no longer sufficient to trigger
automounting, in some cases.  Based on a suggestion from Ian Kent.
More details in http://bugzilla.redhat.com/497830
2009-04-28 14:32:17 +02:00
Ondřej Vašík
cb9fd93743 tests: ensure that cp's -a doesn't silence --preserve=context
* tests/cp/cp-a-selinux: Ensure that the -a option does not silence
error diagnostics from --preserve=context, when preserving context
is required.
2009-04-28 11:16:33 +02:00
Ondřej Vašík
8259a73a85 tests: add test for xattr diagnostics on dest. FS lacking xattr support
* tests/cp/cp-mv-enotsup-xattr: Ensure that xattr diagnostics are
displayed correctly when destination filesystem lacks xattr support.
* tests/Makefile.am (root_tests): Add new root-only test.
2009-04-28 11:16:29 +02:00
Jim Meyering
e0cf592f48 copy.c: factor out test for errno value indicating "unsupported"
* src/copy.c (errno_unsupported): New function.
(copy_attr_error, copy_internal): Use it.
2009-04-27 13:33:47 +02:00
Ondřej Vašík
1fa226772c cp -a: diagnose failure when preserving xattr/context required
* src/copy.c (copy_attr_by_fs): Always print diagnostics when preserving
xattrs is required.
(copy_attr_by_name): Likewise.
(copy_reg): Always print diagnostics when preserving SELinux
context is required.
(copy_internal): Likewise.  Also, do not ignore ENOTSUP and ENODATA
errors when preserving SELinux context is required.
* NEWS (Bug fixes): Mention it.
2009-04-27 13:33:42 +02:00
Ondřej Vašík
941bd48235 mv: ignore xattr-preservation failure when not supported by filesystem
*src/copy.c: Do not warn about xattr-preservation failure when xattrs
are not supported and preservation of xattrs is not explicitly required.
Reported by Eric Sandeen in http://bugzilla.redhat.com/496142
2009-04-27 13:26:03 +02:00
Jim Meyering
819ee4272b build: update from gnulib, for the vc-list-files fix
* gnulib: Update submodule to latest.
2009-04-25 10:29:55 +02:00
Jim Meyering
a81441557b build: adjust use of automake's new $(AM_V_GEN) variable
* src/Makefile.am (dircolors.h, wheel-size.h, wheel.h, fs.h):
(version.c, version.h): Use $(AM_V_GEN) only as a prefix of an existing
command.  Otherwise, it provokes warnings from some "make" programs.
Suggestion from Ralf Wildenhues.
2009-04-25 09:23:48 +02:00
Ralf Wildenhues
6debf54e61 tests: fix check-AUTHORS skip logic
* src/Makefile.am (check-AUTHORS): When this test is skipped, be
sure to avoid all commands in the recipe, not just those passed
to the first shell.
2009-04-25 08:35:53 +02:00
Eric Blake
c86509d86e cfg.mk: update to latest gnulib change
* cfg.mk (bootstrap-tools): Override maint.mk default to include
bison.
* gnulib: Update to latest gnulib.
2009-04-24 20:16:27 -06:00
Jim Meyering
9e7edf0006 build: move coreutils-specific rules from maint.mk to new file
* dist-check.mk: New file: coreutils-specific rules extracted
from maint.mk, now that maint.mk has migrated to gnulib.
* Makefile.am (EXTRA_DIST): Add dist-check.mk.
* coreutils/cfg.mk: Include $(srcdir)/dist-check.mk.
* gnulib: Update submodule to latest.
2009-04-24 21:41:11 +02:00
Jim Meyering
b726914a4c tests: avoid unusual (~1-in-20) failure of a new test
* tests/misc/sort: Remove one of the generated tests.
363 remain in this file alone.
2009-04-24 21:34:59 +02:00
Jim Meyering
207daac5c1 build: use automake's new $(AM_V_GEN) and $(AM_V_at) variables
* src/Makefile.am (dircolors.h, wheel-size.h, wheel.h, fs.h):
(version.c, version.h): Mark with $(AM_V_GEN) and $(AM_V_at),
so that the latest automake prints "GEN $@" by default.
2009-04-24 15:16:46 +02:00
Simon Josefsson
98dbd8cc53 build: use maint.mk from gnulib
* maint.mk: Remove file.  Now it's generated.
* .gitignore: Ignore it.
* bootstrap.conf (gnulib_modules): Add maintainer-makefile.
* gnulib: Update submodule to latest.
2009-04-24 07:40:14 +02:00
Jim Meyering
52c4018a9c build: make --enable-silent-rules the default
* configure.ac (AM_INIT_AUTOMAKE): Remove silent-rules.  Instead,...
(AM_SILENT_RULES): Use this, with it's undocumented [yes] argument.
Those who want verbose build output may configure with
--disable-silent-rules or use "make V=1".
2009-04-23 21:09:13 +02:00
Jim Meyering
0e414d9e4a * gnulib: Update submodule to latest. 2009-04-23 21:04:51 +02:00
Jim Meyering
25eb4c6909 sort -m: don't segfault when output file is also an input file
* src/sort.c (avoid_trashing_input): Fix an off-by-one error and
guard the use of memmove.
* NEWS (Bug fixes): Mention it.
* tests/misc/sort: Add tests to exercise the offending code.
* THANKS: Update.
Reported by Otavio Salvador in http://bugs.debian.org/525048.
2009-04-23 21:03:14 +02:00
Jim Meyering
f41f926aab tests: make the check-AUTHORS test more portable, now that it's...
run as part of "make check".
* src/Makefile.am (check-AUTHORS): Don't depend on en_US.UTF-8.
Instead, use the French UTF8 locale, if configure found one.
If not found, just skip the test.
2009-04-23 21:02:43 +02:00
Jim Meyering
cbc4d9bd13 avoid parallel "make distcheck" failure due to two run-in-src/ rules
Move the check-AUTHORS rule from "syntax-check" to "check".
* maint.mk (local-checks-available): Remove check-AUTHORS.
(check-AUTHORS): Remove rule.
* src/Makefile.am (CLEANFILES): Add $(no_install__progs),
since they too are built sometimes.
(check-AUTHORS): Split a longer-than-80 sed command.
(../AUTHORS): Remove obsolete rule.
2009-04-23 21:01:52 +02:00
Jim Meyering
c74fbaefeb cp: work around linux kernel bug: short-read != EOF on /proc
Remove the optimization that avoided up to 50% of cp's read syscalls.
Do not assume that a short read on a regular file indicates EOF.
When reading from a file in /proc on linux [at least 2.6.9 - 2.6.29]
into a 4k-byte buffer or larger, a short read does not
always indicate EOF.  For example, "cp /proc/slabinfo /tmp"
copies only 4068 of the total 7493 bytes.  This optimization
(25719a3315, Improve performance a bit
by optimizing away; 2005-11-24) appears to have been worth less than
a 2% speed-up (and usually much less), so the impact of removing it
is negligible.

* src/copy.c (copy_reg): Don't exit the loop early.
* tests/cp/proc-short-read: New test, lightly based on a suggestion
from Mike Frysinger, to exercise this fix.
* tests/Makefile.am (TESTS): Add cp/proc-short-read.
* NEWS (Improve robustness): Mention this change.
2009-04-22 21:52:11 +02:00
Jim Meyering
2ad7da7594 tests: avoid new "make distcheck" failure due to newer File::Temp
With newer perl (e.g., Fedora 10's 4:5.10.0-68.fc10), tests/CuTmpdir.pm
stopped removing its temporary directories, with diagnostics like this:
  cannot remove path when cwd is /c/coreutils/tests/misc/seq.tmp-e2up \
  for /c/coreutils/tests/misc/seq.tmp-e2up: at \
  /usr/lib/perl5/5.10.0/File/Temp.pm line 902
Chdir out of the target directory before that code runs:
* tests/CuTmpdir.pm (END): chdir '..'.
(chmod_tree): Remove explicit "chdir $dir".
2009-04-22 21:45:24 +02:00
Jim Meyering
4298108f46 doc: update README
* README: (Reporting bugs): List the bug-reporting address here, too,
not just in the following more test-oriented paragraph.
Reported by Tim Mooney.
All changes are no longer listed in version-controlled ChangeLog
files, so note that contributions are attributed in the commit logs.
Mention bootstrap.conf, now that it's the authoritative source of
minimal prerequisite program/version# pairs.
2009-04-19 23:11:16 +02:00
Aurelien Jarno
e453e720b9 tests: avoid failure of install-C test on FreeBSD UFS file system
* tests/install/install-C: Use 2755 (set-gid), not 1755 (sticky),
to test install -C with non-permission mode bits set.  At least on
FreeBSD with a UFS file system, a non-root user may not set the
sticky bit on a non-directory.
2009-04-19 22:17:08 +02:00
Jim Meyering
51a6c63496 comment touch up: insert a space between "#" and text of comment
* bootstrap: It's easier to read that way.
2009-04-19 21:49:14 +02:00
Ralf Wildenhues
2977df8e7d fix comment typos
* bootstrap: Fix comment typos.
* src/pr.c: Likewise.
2009-04-19 21:28:43 +02:00
Jim Meyering
48430d6a4a maint: bootstrap: sync a tiny change from gnulib
* bootstrap: rename variable to sync with gnulib: s/\$depth/$shallow/
2009-04-17 09:10:57 +02:00
Jim Meyering
f08504b43b * gnulib: Update submodule to latest. 2009-04-16 07:42:20 +02:00
Jim Meyering
ea6abe343d build: use '.'-relative name, gnulib_dir
* cfg.mk (gnulib_dir): Use "gnulib", not "/gnulib", now that
the former is a git submodule, and guaranteed to exist.
2009-04-16 07:03:59 +02:00
Jim Meyering
a46c077467 maint: clean up skipped syntax-check rules
* cfg.mk (local-checks-to-skip): Remove patch-check and changelog-check.
* maint.mk (patch-check): Remove rule.
(local-checks-available): Remove patch-check.
(changelog-check): Remove rule.
2009-04-15 20:18:24 +02:00
Ralf Wildenhues
4404198c12 build: avoid parallel distcheck failure
* Makefile.am (ALL_RECURSIVE_TARGETS): Initialize here, too,
to please automake.  Add install-root, check-root, distcheck-hook.
* cfg.mk (ALL_RECURSIVE_TARGETS): Add sc_tight_scope.
* maint.mk (ALL_RECURSIVE_TARGETS): Add patch-check,
check-AUTHORS, maintainer-distcheck, vc-dist, taint-distcheck,
my-distcheck, alpha, beta, major.
2009-04-11 15:20:37 +02:00
Jim Meyering
0523f45f66 doc: fix a typo: s/is a is a/is a/
* doc/coreutils.texi (Putting the tools together): Fix typo.
2009-04-10 12:50:14 +02:00
Jim Meyering
b571b61970 build: tight-scope test: don't build excluded programs
* src/Makefile.am (sc_tight_scope): Depend on $(bin_PROGRAMS),
not $(all_programs)
2009-04-10 11:35:10 +02:00
Jim Meyering
03490e3565 gnulib: update to latest: fix ls -v & sort -V
* NEWS (Bug fixes): Mention it.
2009-04-10 10:15:24 +02:00
Jim Meyering
854f76ed4f maint: remove obsolete utime module
* bootstrap.conf (obsolete_gnulib_modules): Remove utime.
2009-04-10 08:42:10 +02:00
Jim Meyering
6a51c69b05 maint: put each module name on its own line; sort
* bootstrap.conf (gnulib_modules): List them one per line.
2009-04-10 08:20:13 +02:00
Jim Meyering
0df3a91b25 tests: misc/ls-misc: avoid shadowing local decl of $e
* tests/misc/ls-misc (make_j_d): Rename latter $e to $env
2009-04-09 15:29:59 +02:00
Pádraig Brady
bf87a2c8ea id: fix infinite loop on some systems
Steven Parkes reported that `id -G $USER` went into an infinite loop
on Darwin systems for users in more than 10 groups:
http://bugs.gentoo.org/show_bug.cgi?id=264007
* gl/lib/mgetgroups.c (mgetgroups): Work around buggy getgrouplist
implementations that don't update the required size correctly,
by doubling the result buffer and retrying. Also return the
parameter updated by getgrouplist rather than its return value,
as the documentation doesn't actually state the number of groups
stored is returned by getgrouplist.
* tests/misc/id-groups: Add test to exercise this logic
* tests/Makefile.am: Reference new test
* NEWS: Mention the fix
* THANKS: Update
2009-04-09 14:07:29 +01:00
Jim Meyering
148ddb3232 maint: avoid "make syntax-check" failure
* src/install.c (main): Tweak syntax of new diagnostic.
2009-04-07 20:16:00 +02:00
Pádraig Brady
6fb27500ee install: deprecate the --preserve_context option
src/install.c: Print a warning when --preserve_context
rather than --preserve-context is used as per FIXME.
2009-04-07 19:10:16 +01:00
Pádraig Brady
0f1b8c021d maint: remove compiler warnings from randint and randread modules
* gl/lib/randint.c: Remove unused MAX macro
* gl/lib/randread.c (randread_error): Add __attribute__((__noreturn__))
2009-04-07 19:08:32 +01:00
Pádraig Brady
af5723c71e shred,sort,shuf: don't use /dev/urandom by default
Suggestion from Steven Schveighoffer at:
http://savannah.gnu.org/patch/?6797
to greatly speed up the random passes done by shred.
* gl/lib/randread.c: Default to using the internal
pseudorandom generator, rather than reading /dev/urandom
* src/shred.c (usage): remove mention of /dev/urandom
* src/shuf.c (usage); ditto
* src/sort.c (usage): ditto
* doc/coreutils.text: Document the new behaviour
for aquiring random data.
2009-04-07 19:01:46 +01:00
Pádraig Brady
9fdf5845fc maint: Clarify ambiguous refs to Linux kernels or GNU/Linux systems
* README-prereq: s_linux_GNU/Linux_ or s_linux_Linux kernel_
* README-valgrind: ditto
* src/chown-core.c: ditto
* src/dd.c: ditto
* src/df.c: ditto
* src/ls.c: ditto
* src/mv.c: ditto
* src/pwd.c: ditto
* src/remove.c: ditto
* src/shred.c: ditto
* src/stat.c: ditto
* src/su.c: ditto
* src/system.h: ditto
* src/timeout.c: ditto
* src/truncate.c: ditto
2009-04-07 18:57:53 +01:00
Pádraig Brady
e22f096d10 doc: add missing documentation for some SELinux options
* doc/coreutils.texi (ls invocation): Describe the --context (-Z) option
(install invocation): Describe the --preserve-context and -Z options
(id invocation): Describe the --context (-Z) option
(mkdir invocation): ditto
(mknod invocation): ditto
(mkfifo invocation): ditto
* TODO: remove the todo item
2009-04-07 18:53:51 +01:00
Jim Meyering
33e7070464 * doc/code-vs-command: Remove long-unused, never-distributed file. 2009-04-06 07:59:52 +02:00
Jim Meyering
1974dc34b6 gnulib: update to latest: includes Solaris 8 portability fixes 2009-04-04 22:53:56 +02:00
Jim Meyering
8e8b025c90 maint: clean up Makefile.am, rename remaining ChangeLog files
* Makefile.am (changelog_etc, syntax_check_exceptions): Define.
(EXTRA_DIST): Use.  Remove names that are now automatically
included: build-aux/git-version-gen, build-aux/vc-list-files.
* build-aux/ChangeLog-2007: Rename from */ChangeLog.
* doc/ChangeLog-2007: Likewise.
* lib/ChangeLog-2007: Likewise.
* m4/ChangeLog-2007: Likewise.
* po/ChangeLog-2007: Likewise.
2009-04-04 12:40:58 +02:00
Jim Meyering
7008e33441 tests: tweak po_check syntax check
* maint.mk (sc_po_check): Don't let dangling lib/*.[ch] links cause
spurious "grep: lib/file.h: No such file or directory" warnings.
2009-04-04 10:49:36 +02:00
Jim Meyering
100d4983e7 tests: improve ChangeLog syntax check
* maint.mk (sc_changelog): Use $(VC_LIST_EXCEPT), not find.
Don't hang when there are no ChangeLog files.
(sc_require_config_h): For the file-name-filter, use grep -l
to be slightly more efficient.
(sc_require_config_h_first, _header_without_use, sc_program_name):
Likewise.
2009-04-04 10:49:36 +02:00
Ralf Wildenhues
d75bcea4cf tests: make syntax-checks more robust
* maint.mk (_prohibit_regexp): Add ';' at end of ':'-introduced
comment so that the comment doesn't gobble up the following test
for a missing regexp definition.
(_header_without_use): Escape all '.'s in a header file name,
not just the first one.
2009-04-04 10:25:18 +02:00
Jim Meyering
eaacc89a45 * cfg.mk (old_NEWS_hash): Regenerate once more. 2009-04-03 22:05:10 +02:00
Jim Meyering
e1e5963a9d doc: adjust 7.2 "cat,cp,install,mv,split speed-up" NEWS item
* NEWS: Reword an entry from 7.2 and change "linux" to "GNU/Linux".
The latter was requested by Richard Stallman.
* cfg.mk (old_NEWS_hash): Regenerate.
2009-04-03 21:53:50 +02:00
Pádraig Brady
612b647dd1 ls: fix alignment when month names have varying widths
Reported by Samuel Thibault and Stéphane Raimbault, as the glibc fr_FR
locale has recently changed to use the official but variable width
abbreviated month names. Other glibc locales also have variable widths.
http://sourceware.org/ml/libc-locales/2008-q1/msg00035.html
http://sourceware.org/bugzilla/show_bug.cgi?id=9859
* NEWS: Mention the fix
* gl/lib/mbsalign.c: A new module to align and truncate a
string in a specified number of screen cells, while handling
multi-byte characters appropriately.
* gl/lib/mbsalign.h: Ditto
* gl/modules/mbsalign: Ditto
* bootstrap.conf: Reference the new module
* src/ls.c (abmon_init): New function, precompute the abbreviated
months aligned left in a minimum width column <= 5 screen cells.
(align_nstrftime): New function, replace the first %b in the
format specification to strftime with the precomputed month string.
Note using the cached month strings speeds up `ls -lU` by around 17%
on glibc-2.7-2 on linux at least.  Also if we implement this function
using heap storage rather than automatic storage, and use snprintf
instead of strcpy, ls will slow down by 2% and 1% respectively
(i.e. a net gain of 14% rather than 17%).
* tests/ls/abmon-align: A new test to test ls alignment for
various formats and locales
* tests/Makefile.am: Reference the new test
2009-04-03 00:34:11 +01:00
Pádraig Brady
34f0c3e522 doc: Clarify the help for version sorting in ls and sort
* src/ls.c: Update the -v help description
* src/sort.c: Update the -V help description
2009-04-02 13:53:43 +01:00
Jim Meyering
a5ba6c8ef8 doc: adjust README-prereq instructions
* README-prereq: Reverse order of -b/--track options.
 Pádraig Brady mentioned that is required with at least git-1.5.3.6.
Invoke automake's own bootstrap script.
2009-04-02 14:45:49 +02:00
C de-Avillez
2ade7643de build: require automake-1.10b or newer
* bootstrap.conf: Require at least automake-1.10b.
* README-prereq: Mention 1.10b, not 1.10a.
2009-04-02 08:56:32 +02:00
Jim Meyering
4145a1e54c tests: skip mv/i-3 if /dev/stdin is unreadable
* tests/mv/i-3: Skip if /dev/stdin is unreadable.
Reported by Sergei Steshenko.
2009-04-02 08:44:12 +02:00
Jim Meyering
1417251e29 build: set automake's silent-rules option via configure.ac
* bootstrap: Revert commit 9f39fa855, 2009-03-28,
"build: use automake's --silent-rules option when possible".
* configure.ac (AM_INIT_AUTOMAKE): Instead, set it here.
Require the just-released version of automake: 1.10b.
2009-03-31 20:57:11 +02:00
Jim Meyering
30071248c9 tests: enable automake's color-tests and parallel-tests via configure.ac
* gnulib-tests/Makefile.am (AUTOMAKE_OPTIONS): Don't define here.
* tests/Makefile.am (AUTOMAKE_OPTIONS): Likewise.
* configure.ac (AM_INIT_AUTOMAKE): Instead, add color-tests and
parallel-tests here.
2009-03-31 20:29:01 +02:00
Ralf Wildenhues
f8268d3bae build: use Automake's new parallel-tests feature
* build-aux/check.mk: Remove, not needed any more.
* tests/Makefile.am (AUTOMAKE_OPTIONS): Add parallel-tests and
color-tests.
* tests/check.mk: Do not include build-aux/check.mk any more.
(SUFFIXES, TEST_LOGS): Remove.
(TESTS_ENVIRONMENT): Use $$f rather than $$tst in $PERL invocation.
* gnulib-tests/Makefile.am: Do not include build-aux/check.mk.
(AUTOMAKE_OPTIONS): New macro, add parallel-test and color-tests.
(TEST_LOGS): Remove.
2009-03-31 20:29:01 +02:00
Jim Meyering
7a21310eb3 * README-release (savannah news): Also mention the Subject: to use. 2009-03-31 20:28:41 +02:00
Jim Meyering
278ae924be post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2009-03-31 14:48:50 +02:00
Jim Meyering
3dcf7a4d23 version 7.2
* NEWS: Record release date.
2009-03-31 14:11:57 +02:00
Jim Meyering
eeeccb3d0f tests: don't use lang-default from individual tests
* tests/sample-test: Don't recommend using lang-default here.
It is now run for each test automatically, via TESTS_ENVIRONMENT.
* tests/dd/reblock: Don't source lang-default here.
* tests/misc/truncate-fail-diag: Likewise.
2009-03-29 19:54:54 +02:00
Jim Meyering
6fa5f12107 tests: other-fs-tmpdir: remove just-added duplicate /usr/tmp
* tests/other-fs-tmpdir (CANDIDATE_TMP_DIRS): Remove 2nd /usr/tmp.
2009-03-29 19:42:34 +02:00
Jim Meyering
d99c479311 tests: other-fs-tmpdir: avoid bogus "skipped **********..." diagnostic
* tests/other-fs-tmpdir (CANDIDATE_TMP_DIRS): Add /dev/shm to the list.
Don't use a line of asterisks as the first line of the "why skipped"
diagnostic, now that that line is printed on 'make check's stderr.
2009-03-29 09:59:23 +02:00
Jim Meyering
9f39fa8559 build: use automake's --silent-rules option when possible
* bootstrap: Use automake's --silent-rules option.
2009-03-28 13:46:02 +01:00
Jim Meyering
00f84872e4 tests: test-argv-iter.c: avoid declaration-after-stmt
* gl/tests/test-argv-iter.c: Move declaration "up", so as not
to ruffle feathers of crufty compilers.  We accommodate such
compilers here solely because this module may migrate to gnulib.
Tiny patch by Matthew Woehlke.
2009-03-27 17:33:26 +01:00
Eric Blake
a8fde98844 tests: fix 'make sc_tight_scope' on cygwin
* src/Makefile.am (sc_tight_scope): Ignore leading underscores in symbols.
2009-03-27 06:24:48 -06:00
Jim Meyering
e412e5cb49 tests: avoid spurious test failure in set-GID build dir
* tests/install/install-C-root: Skip this test if in set-gid directory.
Reported by Sven Joachim and C de-Avillez.
2009-03-27 09:39:51 +01:00
Jim Meyering
e65d0d0525 tests: migrate setgid-check into test-lib.sh
* tests/test-lib.sh (skip_if_setgid_): New function.
* tests/setgid-check: Remove file.
* tests/Makefile.am (EXTRA_DIST): Remove setgid-check.
* tests/chmod/c-option: Use the new function rather than sourcing
the separate file.
* tests/cp/cp-parents: Likewise.
* tests/install/install-C: Likewise.
* tests/mkdir/parents: Likewise.
* tests/mkdir/perm: Likewise.
2009-03-27 09:28:08 +01:00
Jim Meyering
9b6538aa8d tests: mark the rm/ext3-perf test as "very" expensive
* tests/rm/ext3-perf: Relegate this test to the very_expensive
category, since it is failing too often for me, when run in
parallel (-j4) with other disk-hammering tests.  This test fails
when it takes too long, so the fact that it fails under pressure
is an inconvenience more than a real problem.
2009-03-26 10:35:03 +01:00
Jim Meyering
843a0f1a23 * gnulib: Update submodule to latest. 2009-03-26 10:20:43 +01:00
Paul Eggert
22fa69e27d df: port the known-value fix to AIX as well
* src/df.c (known_value): New function, which also works on AIX
/proc file systems.
(df_readable, show_dev): Use it instead of hardcoding comparison to
UINTMAX_MAX.  Suggested by Jim Meyering and Matthew Woehlke.
2009-03-26 08:53:21 +01:00
Paul Eggert
c04cb1274c df: fix a bug when totaling unknown values
* src/df.c (show_dev): Don't add UINTMAX_MAX to grand totals, as that
value indicates that the true value is unknown; adding it effectively
subtracts 1 from the total, whereas we want to leave the total alone.
2009-03-26 08:53:21 +01:00
Jim Meyering
b102ed9ba6 tests: don't fail "make syntax-check" on cygwin
* maint.mk (NEWS_hash): Remove trailing " -" or " *-".
* cfg.mk (old_NEWS_hash): Regenerate, removing " -".
Reported by Eric Blake.
2009-03-25 22:51:55 +01:00
Eric Blake
9b4aa5e268 pwd: support -L and -P
* src/pwd.c (longopts): New variable.
(logical_getcwd): New function.
(main): Use it.
(usage): Document new options.
* doc/coreutils.texi (pwd invocation): Likewise.
* NEWS: Likewise.
* TODO (pwd): Mark it done.
* tests/misc/pwd-option: New file.
* tests/Makefile.am (TESTS): Add test.
* THANKS: Update.
Reported by Paul D. Smith, in savannah bug 24949.
2009-03-25 06:33:32 -06:00
Ondřej Vašík
53191d01e2 doc: update suffix regex in version sort
* doc/coreutils.texi: Reflect current filevercmp regex.
2009-03-25 12:28:03 +01:00
Ralf Wildenhues
26559b513d tests: CuTmpdir.pm: avoid use of undefined variable in warning
* tests/CuTmpdir.pm (chmod_tree): Do not warn if $dir is undefined.
2009-03-25 10:16:34 +01:00
Jim Meyering
b498eb071d tests: ls -v: exercise yet another change in gnulib's new filevercmp
* tests/misc/ls-misc: Add names with ~ and ~.1~ suffixes.
2009-03-24 22:33:47 +01:00
Jim Meyering
991a1d6de9 * gnulib: Update submodule to latest. 2009-03-24 21:49:03 +01:00
Kamil Dudka
2827bb5704 ls: make it possible to disable coloring of hard links
* src/ls.c (print_color_indicator): Don't color hard links if disabled
(when there is an empty hl= in the LS_COLORS environment variable).
* tests/ls/hardlink: Add test case for disabled hard link highlighting.
* NEWS: Mention the change.
2009-03-24 16:11:00 +00:00
Jim Meyering
d1df6ef183 tests: search only files that are under version control
* maint.mk (sc_error_exit_success): Search only files
that are under version control.
(sc_makefile_path_separator_check): Likewise.
Check *.mk files, too, not just Makefile.am files.
2009-03-21 09:58:43 +01:00
Jim Meyering
e45c9a02a4 tests: follow own advice: use $(PATH_SEPARATOR), not ":"
* maint.mk (coreutils-path-check): Use the variable, not the literal.
2009-03-21 09:58:37 +01:00
Jim Meyering
1f95a45099 tests: modernize: use $(var) makefile notation, not @var@
* maint.mk (sc_makefile_path_separator_check): Recommend
the use of $(PATH_SEPARATOR), not @PATH_SEPARATOR@.
Remove an obsolete comment.
2009-03-21 09:58:32 +01:00
Jim Meyering
143bfd67c9 tests: teach sc_dd_O_FLAGS about new syntax in dd.c
* cfg.mk (sc_dd_O_FLAGS): Adapt to new syntax.
2009-03-20 15:20:09 +01:00
Eric Blake
0b47305caa dd: use a more portable definition of O_FULLBLOCK
* src/dd.c (O_FULLBLOCK): Compute its value without using a 180KB
macro.  This avoids triggering a compilation failure with HP-UX's cc.
Reported by Matthew Woehlke.
2009-03-20 15:16:50 +01:00
Jim Meyering
25bbb44dbb tests: avoid spurious mkdir/selinux test failure on HP-UX 11.23
* tests/mkdir/selinux: Accept yet another diagnostic.
Reported by Matthew Woehlke.
2009-03-20 15:08:50 +01:00
Jim Meyering
25507a54f7 tests: df/total-verify: avoid test failure with older Perl
* tests/df/total-verify: Don't use perl's -f option.
Reported by Matthew Woehlke.
2009-03-19 18:49:57 +01:00
Jim Meyering
8e6a68e2fd * gnulib: Update submodule to latest. 2009-03-19 07:55:03 +01:00
Jim Meyering
5b86dc69d7 tests: adjust sort-continue not to fail under valgrind
* tests/misc/sort-continue: Don't run cat inside fd-limited shell.
If sort fails to run in an fd-limited shell, skip the test.
2009-03-18 21:44:45 +01:00
Paul Eggert
f31ea18146 tests: add another sort/nmerge test
* tests/Makefile.am (TESTS): Add sort-merge-fdlimit.
* tests/misc/sort-merge-fdlimit: New file.
* doc/coreutils.texi (sort invocation): Document that we now silently
lower nmerge if necessary.
Patch by Paul Eggert, Nima Nikzad, Max Chang, Alexander Nguyen,
Sahil Amoli, and Nick Graham.
2009-03-18 21:44:45 +01:00
Paul Eggert
8f7fae5972 sort: handle fd exhaustion better when merging
This is an alternative to my 9 March patch labeled "Silently lower
nmerge; don't (sometimes incorrectly) range-check"
<http://lists.gnu.org/archive/html/bug-coreutils/2009-03/msg00070.html>.
It differs by not using 'dup' to probe for extra file descriptors;
instead, it simply calls 'open' (and 'pipe') to open files and pipes,
until one of these calls fails due to file descriptor exhaustion; it
then backs off by 1, does a merge with the files that it has opened,
and then retries with the (now-smaller) number of files.

This patch requires quite a few more changes to the source code than
the earlier patch, but it is in some sense "better" because it doesn't
need to call "dup" ahead of time in order to decide whether "open" or
"pipe" will fail.  Also, it's more robust in the case where "open" or
"pipe" fails with errno==EMFILE because some system-wide limit is
exhausted.

* src/sort.c (create_temp_file): New arg SURVIVE_FD_EXHAUSTION.
(stream_open): New function, containing guts of xfopen.
(xfopen): Use it.
(pipe_fork): Set errno on failure.
(maybe_create_temp): New function, containing guts of create_temp.
(create_temp): Use it.
(open_temp): Distinguish failures due to file descriptor exhaustion
from other failures, and on fd exhaustion return a notice to caller
rather than dying.  Don't test execlp's return value; when it returns,
it *always* returns -1.
(open_input_files): New function.
(mergefps): New arg FPS. It's now the caller's responsibility to open
the input and output files.  All callers changed.
(mergefiles): New function.
(avoid_trashing_input, merge): Handle the case where a single merge
can't merge as much as we wanted due to file descriptor exhaustion, by
merging as much as we can and then retrying.
* tests/Makefile.am (TESTS): Add misc/sort-continue.
* tests/misc/sort-continue: New file.
* THANKS: Add Glen Lenker and Matt Pham who coauthored this patch.
2009-03-18 21:44:37 +01:00
Jim Meyering
e6d2d94794 maint: normalize leading-TAB indentation in Makefiles
* maint.mk (sc_makefile_TAB_only_indentation): New rule.
Replace each TAB+8-space sequence with two TABs.
* man/Makefile.am: Likewise.
* build-aux/check.mk: Likewise.
I used this command (run it more than once, if needed):
t=$'\t'; git grep -l -E "$t {8}"|grep -E 'Makefile|\.mk$' \
| xargs perl -pi -e 's/\t {8}/\t\t/'
2009-03-18 12:40:07 +01:00
Jim Meyering
fd53921a68 maint: remove long-unused Makefile
* tests/sort-time/Makefile: Remove long-unused file.
2009-03-15 21:40:54 +01:00
Jim Meyering
20d523bfa2 maint: remove unused include and definitions
* gl/lib/randread.c (__attribute__): Remove unused definition.
(ATTRIBUTE_UNUSED): Likewise.
* gl/lib/selinux-at.c (_): Remove unused definition.
Don't include <gettext.h>.  No longer needed.
2009-03-15 08:17:41 +01:00
Jim Meyering
bd23509bef * gnulib: Update submodule to latest. 2009-03-15 08:09:53 +01:00
Jim Meyering
a4780e67f4 system.h: correct compilation error: MAX not defined
* src/system.h (io_blksize): Move definition down, so it follows that
of MAX -- to avoid compilation failure on OpenSolaris.  Reported by
David Bartley.  Details in
http://lists.gnu.org/archive/html/bug-coreutils/2009-03/msg00190.html
2009-03-14 21:46:35 +01:00
Jim Meyering
b581752137 * gnulib: Update to pull in select/interix work-around. 2009-03-14 11:49:56 +01:00
Kamil Dudka
558525592b doc: update "version sort" documentation
* doc/coreutils.texi: Reflect current filevercmp behavior.
2009-03-13 12:20:06 +01:00
Jim Meyering
ba5a1036f1 tests: groups-version: don't require that id be built
* tests/misc/groups-version: groups is now independent of id.
2009-03-12 19:48:29 +01:00
Jim Meyering
d16b4760d7 tests: skip the groups-dash test when "groups" is not built
* tests/misc/groups-dash: Skip if groups is not being installed.
Suggested by Mike Frysinger.
Also fail if groups exits with nonzero status.
2009-03-12 19:48:21 +01:00
Pádraig Brady
98aec338ef maint: mention Autoconf version required to build Automake
* README-prereq: coreutils currently requires an unreleased
version of Automake, so mention the minimum version of Autoconf
required to build that. Suggestion from James Youngman.
2009-03-12 14:19:01 +00:00
Jim Meyering
ebb9617fde * gnulib: Update submodule to latest. 2009-03-12 10:46:31 +01:00
Ondřej Vašík
c160afe902 cp: make -a option preserve xattrs, but with reduced diagnostics
* copy.c (copy_attr_by_fd): Reduce xattr diagnostics for 'cp -a'.
(copy_attr_by_name): Likewise.
* cp.c (main): Preserve xattrs with -a option, when possible.
* doc/coreutils.texi: Document that xattrs are preserved with
cp -a, with no added diagnostics.
* NEWS: Mention the change.
* tests/misc/xattr: Add tests for 'cp --preserve=all' and 'cp -a'.
2009-03-11 17:32:44 +01:00
Pádraig Brady
cf0bb5e05d maint: Document how to best to enable gcc warnings for developers
* README-hacking: Mention --enable-gcc-warnings configure option
* configure.ac: Don't scare developers away from using gcc warnings
2009-03-11 14:52:52 +00:00
Jim Meyering
20dc2a6a61 maint: remove an obsolete FIXME comment
* src/Makefile.am (../AUTHORS): Remove obsolete FIXME comment.
There are no longer any installed *.sh programs.
2009-03-11 15:43:53 +01:00
Pádraig Brady
1644e58905 cat: Fix immediate output of processed data
Introduced by commit 790892db, 2006-06-08 "Ensure that cat works ...".
* NEWS: Mention the bugfix.
* src/cat.c (cat): Fix the typo which stopped the writing
of processed data before a blocking read() is done.
* tests/misc/cat-buf: Add to ensure processed data is not buffered.
* tests/Makefile.am: Reference the new test.
2009-03-11 14:27:39 +00:00
Pádraig Brady
55efc5f3ee cat,cp,mv,install,split: Set the minimum IO block size used to 32KiB
This is following on from this change:
[02c3dc9d 2008-03-06 cat: use larger buffer sizes ...]
which increased the IO block size used by cat by 8 times,
but also capped it at 32KiB.
* NEWS: Mention the change in behavior.
* src/system.h: Add a new io_blksize() function that
returns the max of ST_BLKSIZE or 32KiB, as this was
seen as a good value for a minimum block size to use
to get good performance while minimizing system call overhead.
* src/cat.c: Use it.
* src/copy.c: ditto
* src/split.c: ditto
2009-03-11 14:19:08 +00:00
Jim Meyering
93f6771e82 tests: add a test for newly-fixed bug in comm --check-order
* tests/misc/comm (ooo-prefix): Add a test for today's fix.
* NEWS (Bug fixes): Mention it.
2009-03-08 21:34:08 +01:00
Bruno Haible
83244ba312 comm: fix a bug in its new --check-order option
* src/comm.c: Include memcmp2.h.
(check_order): Use memcmp2 instead of memcmp.
* bootstrap.conf (gnulib_modules): Add memcmp2.
2009-03-08 21:34:08 +01:00
Jim Meyering
df2e983677 tests: ls -v: exercise the bug fixed by gnulib's new filevercmp
* tests/misc/ls-misc (version-sort): New test.
(mk_file): New function.
Reported by Josh Triplett in <http://bugs.debian.org/517558>.
Details in http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/16902
* NEWS (Bug fixes): Mention it.
2009-03-08 21:18:47 +01:00
Jim Meyering
97d21865fb gnulib: sync submodule to latest 2009-03-08 21:16:30 +01:00
Jim Meyering
a4053c5291 pr: fix a bug whereby --indent=N (-o) did not indent header lines
* src/pr.c (print_header): Honor chars_per_margin also for the header.
Inspired by a patch from C de-Avillez.
This change also adjusts two other %*s directives to be %*.*s instead,
(for the padding on either side of "file_text") to correct a bug that
could make pr print one space of padding instead of none.
* NEWS (Bug fixes): Mention it.
* tests/pr/o3Jml24f-lm-lo: Adjust for new expected output.
* tests/pr/o3a3Sl24f-tn: Likewise.
* tests/pr/o3a3Snl24f-tn: Likewise.
* tests/pr/o3a3l24f-tn: Likewise.
* tests/pr/o3b3Sl24f-tn: Likewise.
* tests/pr/o3b3Snl24f-tn: Likewise.
* tests/pr/o3b3l24f-tn: Likewise.
* tests/pr/o3mSl24f-bl-tn: Likewise.
* tests/pr/o3mSnl24fbltn: Likewise.
* tests/pr/o3ml24f-bl-tn: Likewise.
2009-03-07 23:52:08 +01:00
Jim Meyering
85507b24f9 bootstrap: add to XGETTEXT_OPTIONS
* bootstrap.conf (XGETTEXT_OPTIONS): Add c-format --flag options
for verror and verror_at_line; alphabetize.
2009-03-07 18:23:17 +01:00
Jim Meyering
19a0b6be60 maint: use a git submodule for gnulib
* .gitmodules: New file, to track gnulib.
* gnulib: New file, created by running this:
git submodule add git://git.sv.gnu.org/gnulib.git gnulib
2009-03-07 18:20:26 +01:00
Jim Meyering
51b88670cb build: allow ./bootstrap --srcdir=... to work with a git submodule
* bootstrap (git_modules_config): Use GIT_CONFIG, not GIT_CONFIG_LOCAL.
The latter was removed in v1.5.6.1-109-gdc87183.
2009-03-07 18:12:03 +01:00
Jim Meyering
4f526d2d64 build: avoid "multiply defined..." warning from automake
* Makefile.am (AM_CFLAGS): Add $(WARN_CFLAGS) via +=, not =, to
avoid "multiply defined..." warning from automake.
2009-03-07 13:28:20 +01:00
Jim Meyering
02c3dc9de8 cat: use larger buffer sizes to reduce read/write-syscall overhead
* src/cat.c (max): Remove definition.  Use MAX from system.h instead.
(compute_buffer_size): New function to compute the input and output
buffer sizes, which are now set at 8 times st_blksize with a maximum
of 32KiB. Previously the typical block sizes used were 1KiB for pipes
and 4KiB for files, and now will be 8KiB and 32KiB respectively.
(main): Use it.
This change can double throughput on modern systems.  For timings,
see http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/16040
Suggestion from Tzvi Rotshtein.
2009-03-06 14:41:47 +01:00
Jim Meyering
8b638f994a maint: avoid new unused-macro warnings from gcc
* src/ls.c (ASSERT_MATCHING_DEV_INO): Comment-out unused definition,
to match commented-out use.
* src/install.c (INITIAL_HASH_MODULE, INITIAL_ENTRY_TAB_SIZE):
(READ_SIZE): Remove definitions of unused macros.
* src/mv.c (INITIAL_HASH_MODULE, INITIAL_ENTRY_TAB_SIZE): Likewise.
* src/dd.c (max): Likewise.
* src/expand.c (OUTPUT_BLOCK): Likewise.
* src/csplit.c (ALLOC_SIZE): Likewise.
* src/pr.c (NULLCOL): Likewise.
* src/ptx.c (Sword): Likewise.
* src/unexpand.c (OUTPUT_BLOCK): Likewise.
* src/factor.c (NDEBUG): Likewise.
2009-03-06 11:49:46 +01:00
Jim Meyering
5d71171e01 tests: fix just-introduced typo in rm/ext3-perf
* tests/rm/ext3-perf: Fix typo in commit 2b1e6636be,
2009-02-27 "tests: rm/ext3-perf: relax this test".
2009-03-06 11:48:16 +01:00
Jim Meyering
c763b485f5 maint: remove spurious case-ignoring option from a test
* maint.mk (sc_trailing_blank): Remove useless/harmless ignore_case=1.
2009-03-06 07:18:09 +01:00
Ralf Wildenhues
0d61f144a3 policy: use git to help avoid trailing white space
* HACKING (Avoid trailing white space): Describe how git can help.
2009-03-04 06:19:49 +01:00
Andreas Schwab
826095ffad Update Andreas Schwab's email address
* THANKS: Update Andreas Schwab's email address.
2009-03-03 23:07:16 +00:00
Jim Meyering
cb0d71399c maint: improve release-related process and documentation
* README-release: Fix typo. it's "maintainer-clean".
Refer to HACKING for full list of dependencies.
Use cvs add's -ko option to inhibit $Id$-style keyword expansion.
* maint.mk (web-manual): Factor out definition of $(manual_title).
(vc-dist): Set XZ_OPT=-9ev for the final "make dist".
* cfg.mk (manual_title): Define it here.
Suggestions from Eric Blake.
2009-03-03 08:24:29 +01:00
Jim Meyering
59cec5af12 dist: document our release procedure
* README-release: New file.
2009-03-02 19:53:25 +01:00
Jim Meyering
ce9c2c64de dist: automate the post-release web-manual update process
* maint.mk (web-manual): New rule, from m4's maint.mk.
* bootstrap.conf (gnulib_modules): Add gendocs.
2009-03-02 19:30:13 +01:00
Jim Meyering
2b1e6636be tests: rm/ext3-perf: relax this test
* tests/rm/ext3-perf: If set-up takes too long, use the set-up time
as the removal time limit.  Otherwise, a parallel "make check" would
usually fail when run with RUN_VERY_EXPENSIVE_TESTS=yes.
2009-03-02 09:35:12 +01:00
Jim Meyering
8c4f28b124 tests: don't skip setgid-dir related tests on SELinux-enabled systems
* tests/setgid-check: The change in ls (use ".", not "+") caused
this check always to report the working directory as set-gid.
Now, use stat, not ls.
2009-03-02 09:35:12 +01:00
Jim Meyering
0433f90e3d tests: reflect the s/+/./ SELinux indicator change
* tests/mkdir/perm: Now that this test is no longer always skipped,
make it work independently of ls: use stat, not ls, to get perm string.
* test-lib.sh (rwx_to_mode_): Use stat, not ls to get perm string
This test was run only when RUN_VERY_EXPENSIVE_TESTS=yes was set.
2009-03-02 09:35:12 +01:00
Jim Meyering
1c7d5b5847 tests: when skipping a test, say why on screen, not just in the log
* tests/test-lib.sh: Redirect also to descriptor 9.
Better one-line why-skip diagnostics.
* tests/check.mk (TESTS_ENVIRONMENT): Redirect 9 to stderr.
* tests/misc/pwd-unreadable-parent: Remove redundant "skipping..." diag.
2009-03-02 09:35:12 +01:00
Jim Meyering
6449370e9e maint: enable many gcc warnings
* bootstrap.conf (gnulib_modules): Add manywarnings.
* configure.ac: Use gl_MANYWARN_ALL_GCC, and exclude options
I don't want or that provoke too many warnings.
(WARN_CFLAGS, WERROR_CFLAGS): Define.
(lint, GNULIB_PORTCHECK): Define.
(_FORTIFY_SOURCE): Define to 2.
2009-03-02 09:10:26 +01:00
Jim Meyering
ebfbdf9f0e maint: avoid gcc warning about missing attributes
* src/prog-fprintf.h (prog_fprintf): Declare with printf attribute.
* src/system.h (usage): Declare with the "noreturn" attribute.
2009-03-02 09:10:17 +01:00
Jim Meyering
2d10b7617b maint: avoid warnings about potentially-counterproductive "inline"
* src/dd.c (quit): Remove "inline" attribute.
* src/test.c (advance, unary_advance): Likewise.
2009-03-02 09:10:06 +01:00
Jim Meyering
14cdeddbf3 maint: cp: avoid gcc warning about unused macro definitions
* src/cp.c (INITIAL_HASH_MODULE, INITIAL_ENTRY_TAB_SIZE): Remove.
2009-03-02 09:09:43 +01:00
Jim Meyering
2209d10f4c dist: do not emit MD5 or SHA1 checksums into announcement template
* maint.mk (announcement): Use announce-gen's new --no-print-checksums.
2009-03-02 08:59:06 +01:00
Jim Meyering
18332a65af maint: detect unnecessary inclusion of signal.h
* maint.mk (sc_prohibit_signal_without_use): New rule.
2009-02-28 11:06:35 +01:00
Jim Meyering
17b18bfa6c maint: remove an unnecessary inclusion of <signal.h>
* src/operand2sig.c: Don't include <signal.h>.
2009-02-28 11:06:35 +01:00
Pádraig Brady
eb1e30c213 tests: sort: Check skipping blanks in multibyte locales
* tests/misc/sort: On Fedora 8 at least, sort -k1b,1
mishandles blanks in multibyte locales, so add test.
2009-02-28 01:09:18 +00:00
Jim Meyering
d88c9f95e3 * HACKING: avoid trailing white space 2009-02-27 23:05:07 +01:00
Jim Meyering
b50a4ae557 cp: diagnose invalid "cp -rl dir dir" right away, once again
Running "mkdir dir; cp -rl dir dir" would create dir/dir/dir/...
rather than diagnosing the "copy-into-self" failure.

The easy fix would have been to revert this part of the change
[3ece0355 2008-11-09 cp: use far less memory in some cases]
that introduced the bug:

-         remember_copied (dst_name, dst_sb.st_ino, dst_sb.st_dev);
+         if (!x->hard_link)
+           remember_copied (dst_name, dst_sb.st_ino, dst_sb.st_dev);

However, that would have induced the failure of the new cp/link-heap
test, due to the added memory pressure of recording 10k dev/ino pairs.
And besides, I liked that improvement and wanted to keep it.

Now that it's obvious recording the just-created-directory dev/ino
needn't depend on the setting of hard_link, I realized it is necessary
to record the pair only for the first directory created for each
source command-line argument.

I made that change, then noticed the new test, cp -rl a d d, would pass
when run once, yet output the into-self diagnostic twice.  Also note
the side effect: it creates d/a and d/d.  However, running that same
command a second time, now with the modified directory, would fail.

That turned out to be due to the fact that although the first into-self
failure was detected in copy_dir, that function would continue copying
other entries regardless -- and that would make it fail (eventually)
with the unwanted recursion.

* src/copy.c (copy_internal): This function needed an indicator of
whether, for a give command line argument, it had already created its
first directory.  If so, no more need to record dev/ino pairs.  If this
is the first, then do record its pair.  Hence, the new parameter.
(copy_dir, copy): Update callers.
(copy_dir): Upon any into-self failure, break out of the loop.
* tests/cp/into-self: Test for the above.
Reported by Mikael Magnusson.
2009-02-27 11:44:26 +01:00
Jim Meyering
3a914fa76d tests: stty-row-col would hang when run in the background
* tests/misc/stty-row-col: Don't hang when run in background
at least on Solaris 10 and OpenBSD.
2009-02-26 20:25:42 +01:00
Pádraig Brady
224a69b56b sort: Fix two bugs with determining the end of field
* src/sort.c: When no specific number of chars to skip
is specified for the end field, always skip the whole field.
Also never include leading spaces from next field.
* tests/misc/sort: Add 2 new tests for these cases.
* NEWS: Mention this bug fix.
* THANKS: Add bug reporter.
Reported by Davide Canova.
2009-02-26 14:40:28 +00:00
Eric Blake
9a2a8f0b3e argv-iter: avoid variadic macro
* gl/lib/argv-iter.h (_ATTRIBUTE_NONNULL_): Don't assume C99 variadic
macros are portable yet; needed for at least IRIX/MIPSpro.
* THANKS: Update.
Reported by Stuart Shelton.
2009-02-26 07:00:30 -07:00
Pádraig Brady
3f1579c470 tests: Remove system specific error strings
* tests/dd/skip-seek-past-file: Just check for
the non system specific part of the error strings.
This was causing an erroneous failure on NetBSD 1.6 at least.
2009-02-26 09:50:30 +00:00
Jim Meyering
bba5a47651 tests: using printf with \e for ESC isn't portable
* tests/ls/color-clear-to-eol: Use \33, not \e for ascii ESC.
This test failed when using the built-in printf of /bin/sh from
NetBSD 1.6.
2009-02-25 22:43:07 +01:00
Pádraig Brady
ca4e48f822 Ensure comment for translators is included in po file
Issue reported by Göran Uddeborg.

* src/system.h: Move the translator comment adjacent
to the translated string.
* THANKS: Update Göran's email address.
2009-02-24 11:58:01 +00:00
Tobias Stoeckmann
3a8d16800c truncate: fix typo in man page
* man/truncate.x: Fix spelling.
* THANKS: Update.
2009-02-22 10:16:15 -07:00
Andrew Church
de13679b32 doc: describe dd's status=noxref option
* doc/coreutils.texi (dd invocation): Describe status=noxref.
2009-02-22 10:26:22 +01:00
Jim Meyering
f7da3f1c10 tests: reenable temporarily-disabled tests using e.g., trap '' TTOU
Revert "tests: skip newly-modified tests unconditionally..."
This reverts commit 773a88d33f.
* tests/misc/stty: Don't skip.
* tests/misc/stty-invalid: Likewise.
* tests/mv/i-3: Likewise.
2009-02-22 01:42:43 +01:00
James Youngman
9bde4fd426 update James Youngman's email address
* THANKS: Update James Youngman's email address
2009-02-22 01:41:47 +01:00
Jim Meyering
359c48d5c6 post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2009-02-21 22:49:24 +01:00
Jim Meyering
74ba433a14 version 7.1
* NEWS: Record release date.
2009-02-21 22:35:33 +01:00
Jim Meyering
c980b0566a * README: Mention that c99-to-c89.diff is no longer maintained. 2009-02-21 21:32:17 +01:00
Jim Meyering
31896c21c6 tests: skip new install-C test if working directory is set-gid
* tests/install/install-C: Use setgid-check.
2009-02-21 19:49:40 +01:00
Jim Meyering
773a88d33f tests: skip newly-modified tests unconditionally, just to be safe
* tests/misc/stty-invalid: Skip.
* tests/misc/stty: Likewise.
* tests/mv/i-3: Likewise.
2009-02-21 16:52:42 +01:00
Jim Meyering
cd78f85b0b tests: don't let SIGTTOU/TTIN hang a backgrounded "make check"
Running "make check &" would hang due to SIGTTOU and SIGTTIN signals.
* tests/misc/stty: Ignore SIGTTOU.
* tests/misc/stty-invalid: Likewise.
* tests/mv/i-3: Ignore SIGTTIN.
2009-02-21 16:52:39 +01:00
Jim Meyering
2061cd8aa6 doc: ls: clarify description of -s
* src/ls.c (usage): Make the description of -s mention "allocated size",
so that it's less likely to be confused with an apparent byte-count.
Suggested by Vito Caputo.
2009-02-20 19:32:02 +01:00
Jim Meyering
0c91ae335d doc: dd: document that the default block size is 512 bytes
* src/dd.c (usage): Document the default block size.
* doc/coreutils.texi (dd invocation): Document that the default
block size (bs, ibs, obs) is 512 bytes.
Reported by Petr Uzel.
2009-02-19 12:45:18 +01:00
Jim Meyering
0e40e9de57 maint: changing NEWS' copyright date must not invalidate checksum
* maint.mk (NEWS_hash): Don't let the Copyright date line contribute
to the checksum.
* cfg.mk (old_NEWS_hash): Update to reflect the new policy.
2009-02-18 16:09:45 +01:00
Jim Meyering
0a3f944791 doc: explain how to recover from changes committed to master
* HACKING: A beginner's commit-to-master is so common,
and causes enough confusion, that we describe how to recover.
2009-02-18 15:40:53 +01:00
Jim Meyering
fa391362e1 maint: add copyright notices
* HACKING: Add copyright notice.
* tests/test-lib.sh: Likewise.
2009-02-18 15:40:44 +01:00
Ondřej Vašík
8c243ff965 cp: -a now preserves SELinux context, with reduced diagnostics
* copy.c (copy_reg): Reduce SELinux context diagnostics for 'cp -a'.
(copy_internal): Likewise
* copy.h (cp_options): Add boolean reduce_diagnostics.
* cp.c (usage): Say that --archive (-a) behaves like -dR --preserve=all.
(cp_option_init): Initialize added reduce_diagnostics.
(main): Add reduce_diagnostics for the -a option, and preserve SELinux
context, if possible.
* mv.c (cp_options_init): Initialize new cp_options booleans.
* install.c (cp_option_init): Likewise.
* NEWS: Mention those behaviour changes.
* doc/coreutils.texi: Document --preserve=context, document that
diagnostics are not shown for failures of non-mandatory attributes
(just SELinux at the moment).
* tests/cp/cp-a-selinux: Check not only failures, but succesful use
of preserving SELinux context in cp.
2009-02-18 15:27:10 +01:00
Eric Blake
86cef85b36 add missing copyright dates
* NEWS: Add 2009 to copyright.
* README: Likewise.
* README-hacking: Likewise.
* TODO: Likewise.
* doc/Makefile.am: Likewise.
* m4/prereq.m4: Likewise.
* src/nl.c: Likewise.
* src/seq.c: Likewise.
* tests/cp/cp-i: Likewise.
* tests/install/install-C: Likewise.
* tests/install/install-C-root: Likewise.
* tests/install/install-C-selinux: Likewise.
* tests/misc/seq: Likewise.
* tests/mv/mv-n: Likewise.
2009-02-18 06:07:30 -07:00
Eric Blake
65ba955988 install: compare files in binary mode
* src/install.c (need_copy): Use O_BINARY when it matters.
2009-02-17 07:58:39 -07:00
Kamil Dudka
dac5f12c6e install: add --compare (-C) option to install file only when necessary
* src/install.c (have_same_content): New function to compare files
content.
(extra_mode): New function checking for non-permission bits in mode.
(need_copy): New function to check if copy is necessary.
(main): Handle new option --compare (-C).
(copy_file): Skip file copying if not necessary.
(usage): Show new option --compare (-C) in --help.
* tests/install/install-C: Basic tests for install --compare (-C).
* tests/install/install-C-root: Tests requiring root privileges.
* tests/install/install-C-selinux: Tests requiring SELinux.
* tests/Makefile.am: Add new tests for install --compare (-C).
* doc/coreutils.texi: Document new install option --compare (-C).
* NEWS: Mention the change.
2009-02-17 14:12:44 +01:00
Ondřej Vašík
26d3d090bd nl: correct long-option name for -v in usage
* nl.c (usage): Use --starting-line-number, not --first-page for -v
2009-02-17 14:10:39 +01:00
Jim Meyering
1eaacac312 doc: id: make --help and .man more descriptive
* src/id.c (usage): Improve description, based on a suggestion
from Brian M. Carlson in http://bugs.debian.org/514675
* man/id.x: Use a better one-liner, based on the one at top of id.c.
2009-02-15 10:17:19 +01:00
Pádraig Brady
5d0b158f4c seq: Fix equal width calculation when '.' added to last number
Issue reported by Samuel Hapák.
<http://lists.gnu.org/archive/html/bug-coreutils/2009-02/msg00139.html>

* src/seq.c: Account for '.' added to "last" number.
* tests/misc/seq: Add corresponding test.
* NEWS: Mention the fix.
2009-02-14 23:47:14 +00:00
Jim Meyering
982504452d du,chgrp,chmod,chown: use FTS_DEFER_STAT
* src/du.c (main): Use FTS_DEFER_STAT, for better locality of inode
reference.  Important when traversing file systems with fake inodes.
* src/chgrp.c (main): Likewise.
* src/chmod.c (main): Likewise.
* src/chown.c (main): Likewise.
The only remaining fts client, chcon, doesn't need this, since it goes
further and uses FTS_NOSTAT, which suppresses all non- directory
stat calls.
2009-02-13 18:41:01 +01:00
Pádraig Brady
48cae1e864 maint: mention how to run a single test in HACKING docs
* HACKING: Give an example of how to run a test in isolation.
* README: Fix/simplify example for running a single test.
* README-hacking: Reference the HACKING file.
2009-02-13 11:13:33 +00:00
Eric Blake
022889a457 ln: add details to --help text
* src/ln.c (usage): Mention more about symlink properties.
* doc/coreutils.texi (ln invocation): Likewise.
* THANKS: Update.
Reported by Vitali Lovich.

Signed-off-by: Eric Blake <ebb9@byu.net>
2009-02-11 21:26:51 -07:00
Jim Meyering
adc62b5d9f ls: clean up after wrapped+colored file names with clear-to-EOL
This change addresses a relatively unusual case: ls --color, with
a highlighted name being printed initially in the last row of a
terminal emulator (possibly followed by other lines of output) such
that it is wrapped onto the following line, as the terminal emulator
scrolls the output.  That would cause the entire following line to
be highlighted, even if the name happened to use only one position.
The least-invasive patch would have made colorized output larger for
all uses.  The approach taken below is more invasive, but limits the
increase in overhead to only those lines that are expected to wrap.
* src/ls.c (enum indicator_no): Add C_CLR_TO_EOL.
(indicator_name): Add "cl".
(color_indicator): Add default escape codes for "cl".
(print_long_format): Propagate width to print_name_with_quoting.
(print_name_with_quoting): Print new C_CLR_TO_EOL string if needed.
Return the width of what we're printing.
(print_file_name_and_frills): Propagate width.
(print_type_indicator): Return bool (aka width).
(print_many_per_line): Pass column position to print_* function.
(print_current_files): Likewise.
(print_horizontal): Likewise.
(print_with_commas): Likewise.
* src/dircolors.c (slack_codes): Add "CLRTOEOL".
(ls_codes): Add "cl".
* tests/ls/color-clear-to-eol: New file.  Test for this fix.
* tests/Makefile.am (TESTS): Add ls/color-clear-to-eol.
* THANKS: Update.
Reported by Alexander V. Lukyanov.  See thread for details:
http://thread.gmane.org/gmane.linux.kernel/740021/focus=14824
Thanks to Jan Engelhardt for helping me reproduce the problem.

Demonstrate with this in an 80-column xterm:
  seq 200 # to start in the "bottom" row
  touch zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz.foo
  env LS_COLORS='*.foo=0;31;42' ls -og --color=always

Before the fix, you'd see something like this:
(where the file name is printed in red on a green background,
and each "=" denotes a space on a green background)
...
  -rw-r--r--  1       0 Feb  5 11:31 zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz\
  zzzzzzzzzzzzzz.foo===================================================

After the patch, the trailing green spaces are gone:

  -rw-r--r--  1       0 Feb  5 11:31 zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz\
  zzzzzzzzzzzzzz.foo
2009-02-10 14:47:39 +01:00
Jim Meyering
1f4fcd083d * tests/test-lib.sh: Use skip_test_... in place of echo...;exit 77. 2009-02-10 14:39:10 +01:00
Nix
9c8e4f6918 tests: avoid skipping stty-* tests
* tests/test-lib.sh (require_controlling_input_terminal_):
Check stdout, not stdin.
2009-02-10 14:38:42 +01:00
Jim Meyering
ed85df444a touch: deprecate --file option: equivalent to --reference (-r)
* src/touch.c: Mark long-undocumented --file for removal in 2010.
(main): Warn upon use of --file.
2009-02-09 11:44:40 +01:00
Pádraig Brady
0dc4478f13 tests: fix dd skip=greater_max_file_size test on Solaris 10
* tests/dd/skip-seek-past-file: I had previously commented that
on some systems lseek(> max file size) may succeed, but left
the possibility of failure in that case, so that I could determine
specific systems to put in the comments for both failure modes.
2009-02-06 07:46:08 +01:00
Jim Meyering
8ed84c3438 avoid spurious parentheses/arith-op-related warnings from newer gcc
* src/copy.c (set_owner): Use && rather than &.
* src/stty.c (main): Likewise.
* src/wc.c (wc): Likewise.
2009-02-05 14:53:10 +01:00
Jim Meyering
c55c0e7369 maint: tighten atoi/atof-prohibiting regexp, clean up .x-sc- file
* maint.mk (sc_prohibit_atoi_atof): Require "(" after token.
* .x-sc_prohibit_atoi_atof: Remove names that no longer contain a match.
2009-02-02 09:37:48 +01:00
Jim Meyering
e3e9713fad doc: preserve --help line breaks in 'REPORTING BUGS' man page section
* man/help2man: Insert .br between adjacent lines.
2009-02-02 09:37:48 +01:00
Jim Meyering
6b8578af5e * src/system.h (emit_bug_reporting_address): Remove periods. 2009-02-02 09:37:48 +01:00
Jim Meyering
04d49874a2 update copyright dates from recent changes
* src/dd.c: Add 2009 to list of copyright years.
* tests/dd/seek-skip-past-file: Likewise.
* tests/dd/seek-skip-past-dev: Likewise.
* m4/xattr.m4: Likewise.
* src/copy.h: Likewise.
2009-02-02 09:37:48 +01:00
Jim Meyering
18810ae65f * maint.mk (sc_redundant_const): Use $(_prohibit_regexp). 2009-02-02 09:37:48 +01:00
jidanni@jidanni.org
d3dcb10f90 date doc: warn at -d about LC_TIME
We also warn here about LC_TIME, so the user will know even if he
doesn't look in the @xref{Date input formats}.
2009-02-02 08:40:18 +01:00
jidanni@jidanni.org
52b4d2a51a document sort --ignore-case --unique interaction 2009-02-02 08:38:41 +01:00
Jim Meyering
2b32399fdc maint: detect useless inclusion of c-ctype.h
* maint.mk (sc_prohibit_c_ctype_without_use): New rule.
2009-01-31 09:39:12 +01:00
Jim Meyering
44421c22a3 maint: teach "make syntax-check" to print each check name as it's run
* maint.mk (%.m): New rules to print each syntax-checking rule name,
just before running its commands.
($(syntax-check-rules)): Depend on it.
2009-01-29 13:31:28 +01:00
Jim Meyering
61a42e3743 maint: silence some syntax-check rules
* cfg.mk (sc_strftime_check): Silence the rule.
(sc_tight_scope): Likewise.
* src/Makefile.am (check-AUTHORS): Likewise.
2009-01-29 13:31:15 +01:00
Jim Meyering
60ca9e1599 maint: factor syntax-check rules
* maint.mk (_ignore_case): New macro.
(_prohibit_regexp): Use it.
Factor many existing syntax-check rules to use $(_prohibit_regexp).
2009-01-29 13:30:45 +01:00
Kamil Dudka
0889381cbf cp/mv: add xattr support
This patch was originally written by Andreas Grünbacher, nowadays
available at
http://www.suse.de/~agruen/coreutils/5.91/coreutils-xattr.diff

* bootstrap.conf: Add gnulib module verror.
* po/POTFILES.in: Add lib/verror.c.
* m4/xattr.m4: Check for libattr availability, new configure option
--disable-xattr.
* m4/prereq.m4: Require gl_FUNC_XATTR.
* src/Makefile.am: Link cp, mv and ginstall with libattr.
* src/copy.h: Add preserve_xattr and require_preserve_xattr to
cp_options.
* src/copy.c (copy_attr_error): New function to handle errors during
xattr copying.
(copy_attr_quote): New function to quote file name in error messages
printed by libattr.
(copy_attr_free): Empty function requested by libattr to free quoted
string.
(copy_attr_by_fd): New fd-oriented function to copy xattr.
(copy_attr_by_name): New name-oriented function to copy xattr.
(copy_reg, copy_internal): Call copy_extended_attributes function.
* src/cp.c (usage): Mention new --preserve=xattr option.
(decode_preserve_arg): Handle new --preserve=xattr option.
* src/mv.c: Always attempt to preserve xattr.
* src/install.c: Never attempt to preserve xattr.
* tests/misc/xattr: New test for xattr support in cp, mv and install.
* tests/Makefile.am: Add the new test to list.
* doc/coreutils.texi: Mention xattr support, new --preserve=xattr
option.
* NEWS: Mention the change.
2009-01-29 13:26:07 +01:00
Jim Meyering
1bdf77ad52 system.h: add a comment re autoconf's new AC_PACKAGE_URL
* src/system.h (emit_bug_reporting_address): Add a comment
suggesting to use AC_PACKAGE_URL once we require autoconf-2.64.
2009-01-28 18:36:08 +01:00
Pádraig Brady
05a50b7848 tests: Fixup shred-passes test
* tests/misc/shred-passes: Set the $fail variable correctly.
The issue was noticed by Jim Meyering.
2009-01-28 16:43:52 +00:00
Pádraig Brady
2f61473e85 tests: Add a test to verify shred's default operations
* tests/Makefile.am: add new test
* tests/misc/shred-passes: Verify the operations shred
does by default to overwrite and remove a zero length file.
2009-01-28 15:39:18 +00:00
Pádraig Brady
460ebb078e dd: Better handle user specified offsets that are too big
Following are the before and after operations for seekable files,
for the various erroneous offsets handled by this patch:

skip beyond end of file
  before: immediately exit(0);
  after : immediately printf("cannot skip to specified offset"); exit(0);

skip > max file size
  before: read whole file and exit(0);
  after : immediately printf("cannot skip: Invalid argument"); exit(1);
seek > max file size
  before: immediately printf("truncate error: EFBIG"); exit(1);
  after : immediately printf("truncate error: EFBIG"); exit(1);

skip > OFF_T_MAX
  before: read whole device/file and exit(0);
  after : immediately printf("cannot skip:"); exit(1);
seek > OFF_T_MAX
  before: immediately printf("truncate error: offset too large"); exit(1);
  after : immediately printf("truncate error: offset too large"); exit(1);

skip > device size
  before: read whole device and exit(0);
  after : immediately printf("cannot skip: Invalid argument"); exit(1);
seek > device size
  before: read whole device and printf("write error: ENOSPC"); exit(1);
  after : immediately printf("cannot seek: Invalid argument"); exit(1);

* NEWS: Summarize this change in behavior.
* src/dd.c (skip): Add error checking for large seek/skip offsets on
seekable files, rather than deferring to using read() to advance offset.
(dd_copy): Print a warning if skip past EOF, as per FIXME comment.
* test/Makefile.am: Add 2 new tests.
* tests/dd/seek-skip-past-file: Add tests for first 3 cases above.
* tests/dd/seek-skip-past-dev: Add root only test for last case above.
2009-01-28 15:14:57 +00:00
Jim Meyering
0d5508de13 doc: emit better bug-reporting info, to help help2man
* src/system.h (emit_bug_reporting_address): End each "sentence"
with period, mark URLs with <...>.
Based on a suggestion from Eric Blake.
Use fputs on a string without %s, not printf.
2009-01-27 20:20:20 +01:00
Jim Meyering
ddf56e0440 doc: ensure that emit_bug_reporting_address changes propagate to *.1
* man/Makefile.am ($(MAN)): Depend on system.h.
2009-01-27 20:20:07 +01:00
Jim Meyering
2fbee63cc9 doc: restore "REPORTING BUGS" section to generated man pages
* man/help2man ($PAT_BUGS): Update regexp to match the newer
"Report PROG bugs ..." --help output, as well as "Report bugs...".
Reported by Eric Blake.
2009-01-27 19:17:14 +01:00
Jim Meyering
b27275c668 tests: generalize install-transform-check
* maint.mk (install-transform-check): Generalize to work also
in a project that installs manuals in a section other than "1".
2009-01-26 18:54:58 +01:00
Jim Meyering
016f8c9998 build: resolve conflict with new declaration from version-etc.h
* src/system.h (emit_bug_reporting_address): Define away,
now, gnulib's version-etc.h also declares this function.
In this package, we choose to include each program's name in
the diagnostic.  Define away the conflicting declaration.
(emit_bug_reporting_address): Also emit home page and
"General help..." links, like the new function does.
Reported by Bob Proulx.
2009-01-23 18:27:36 +01:00
Pádraig Brady
10f3e12a0d doc: shred: Correct docs on default number of overwrites.
* NEWS: Mention the change to the default number of passes.
* doc/Makefile.am: Update constants.texi with the default
number of passes shred uses, so that the documentation
will automatically reflect any future changes.
* doc/coreutils.texi (shred invocation): Update the description
of the --iterations option to have the correct default number,
while still conveying that there are 25 internal patterns
that may be useful.
2009-01-22 23:42:51 +00:00
Pádraig Brady
83ae1bdd44 shred: change default number of overwrites from 25 to 3
* src/shred.c: The concensus is that a default of 3
passes is appropriate for current drive technologies.
* src/TODO: Reference Paul Eggert's suggestion
of enhancing shred to conform to DoD 5220 rules.
2009-01-22 13:26:04 +00:00
Jim Meyering
2a8f5104cd m4: don't use AC_REQUIRE([AC_C_BIGENDIAN])
* m4/jm-macros.m4: Use AC_REQUIRE([gl_BIGENDIAN]) instead.
This avoids a subtle problem recently documented in autoconf:
http://git.sv.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=34e2c8d5484
2009-01-21 14:48:39 +01:00
Jim Meyering
065f14f471 no longer define *_FILENO constants
* src/system.h (STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO):
Remove definitions.  Now guaranteed by gnulib.
2009-01-19 21:27:57 +01:00
Jim Meyering
9a45c19667 build: use dist-xz, not dist-lzma, cont'd
* README-hacking: mention XZ utils
* README-prereq: Add a FIXME comment.
2009-01-19 13:47:04 +01:00
Jim Meyering
f6240c49df tests: tail-2/infloop-1 is racy
* tests/tail-2/infloop-1: Add a comment to that effect.
2009-01-19 12:09:12 +01:00
Jim Meyering
b52a88607f build: use dist-xz, not dist-lzma
* configure.ac (AM_INIT_AUTOMAKE): s/dist-lzma/dist-xz/.
Requires recent "xz" from git://ctrl.tukaani.org/lzma-utils.git
2009-01-18 13:20:26 +01:00
Jim Meyering
f15842de47 maint: remove obsolete sc_author_mark_check rule
* maint.mk (sc_author_mark_check): Remove rule.
"and" no longer appears in the definition of AUTHORS.
2009-01-16 23:31:04 +01:00
Jim Meyering
c926d002b5 Merge branch 'master' of git://git.sv.gnu.org/coreutils 2009-01-16 23:30:27 +01:00
Jim Meyering
31b6c0489a maint: enforce existing prohibition: no cvs $keywords$
* maint.mk (sc_prohibit_cvs_keyword): New rule.
2009-01-16 23:28:20 +01:00
Jim Meyering
a488f288a2 echo, printf, test: remove unused #include directives
* src/echo.c: Don't include "long-options.h". No longer used.
* src/printf.c: Likewise.
* src/test.c: Likewise.
2009-01-16 13:37:32 +01:00
Pádraig Brady
a7592cfcb2 pathchk: avoid -Wsign-compare warnings
* src/pathchk.c: Compare pathconf limits to _signed_ MAX constants,
as pathconf returns signed values.
2009-01-16 11:06:09 +00:00
Pádraig Brady
3288ebb0d7 pr: avoid -Wsign-compare warnings
* src/pr.c: Use unsigned variables in unsigned comparisons.
2009-01-16 11:06:09 +00:00
Pádraig Brady
9934f50282 shred: avoid -Wsign-compare warnings
* src/shred.c: Use already assigned signed variable sizeof_r,
rather than the unsigned sizeof(r). Don't use signed integer
overflow check that contemporary compilers may remove anyway.
2009-01-16 11:06:09 +00:00
Pádraig Brady
46d6df933e simplify mgetgroups() and avoid -Wsign-compare warnings
* gl/lib/mgetgroups.c: Avoid -Wsign-compare warning by using unsigned
types for the parameters of the new function realloc_groupbuf().
mgetgroups() was refactored to use this function rather than
explicitly allocating and copying from automatic storage itself.
* src/group-list.c: Use int rather than size_t as variable is
used in signed comparisons.
* src/id.c: ditto.
2009-01-16 11:06:09 +00:00
Eric Blake
7b1967351c test, echo, printf: don't accept option abbreviation
* src/test.c (main): Directly parse accepted options, thus
avoiding abbreviations.
* src/echo.c (main): Likewise.
* src/printf.c (main): Likewise.
2009-01-14 14:32:13 -07:00
Kamil Dudka
d01338eb3d cp/mv: add --no-clobber (-n) option to not overwrite target
* src/cp.c (usage): Show new option -n in --help.
(main): Handle new option -n.
* src/mv.c (usage): Show new option -n in --help.
(main): Handle new option -n.
* doc/coreutils.texi: Document new cp/mv option -n.
* tests/cp/cp-i: Add tests for -f, -i and -n options.
* tests/mv/mv-n: New test for mv -n.
* tests/Makefile.am: Add test mv/mv-n to the list.
* NEWS: Mention the change.
2009-01-14 09:09:22 +01:00
Eric Blake
a99c35b04d option handling: make exceptions more consistent
* doc/coreutils.texi (Common options): Not all utilities reject
option abbreviations.
* src/chroot.c (main): Report correct name on failure.
* src/echo.c (usage): Clarify long option usage.
* src/setuidgid.c (usage): Likewise.
* src/hostid.c (usage): Condense.
2009-01-08 07:57:36 -07:00
Jim Meyering
5e3a5ae519 * bootstrap.conf (avoided_gnulib_modules): Add dummy. 2009-01-07 22:57:19 +01:00
Jim Meyering
1fd718e93c * maint.mk: align some backslashes 2009-01-07 22:54:11 +01:00
Pádraig Brady
972967903d doc: pathchk description enhancements
* doc/coreutils.texi (pathchk invocation): Mention pathchk
checks validity (for current system) as well as portability.
Say messages go to stderr, and reorder description of checks
done for the -p option, to match what's done in code.
* src/pathchk.c (usage): Mention pathchk checks name validity.
Suggested clarifications were from Dan Jacobson.
2009-01-05 00:01:21 +00:00
Pádraig Brady
e0035fa4eb src/.gitignore: Ignore getlimits utility
* src/.gitignore: Ignore getlimits
2009-01-03 15:10:42 +00:00
Pádraig Brady
99be907838 tests: refactor to use the new getlimits utility
* tests/Coreutils.pm: Add function to make limits available
* tests/test-lib.sh: ditto
* tests/misc/join: Check for both SIZE_OFLOW and UINTMAX_OFLOW
rather than using arbitrary 2^128
* tests/misc/sort: ditto
* tests/misc/uniq: ditto
* tests/misc/printf: Check for both INT_OFLOW and INT_UFLOW
rather than using arbitrary -2^31
* tests/misc/seq-long-double: Check for INTMAX_OFLOW
rather than using arbitrary 2^63
* tests/misc/split-fail: Check --lines --bytes and --line-bytes
options limits on all platforms. Note getlimits obviates the
need to use expr to check if 32 bit integers are supported,
which I think was invalid anyway as expr now supports bignum?
* tests/misc/test: Check for UINTMAX_OFLOW rather than
using arbitrary 2^64 and 2^128. Check for INTMAX_UFLOW
rather than using arbitrary -2^64
* tests/misc/timeout-parameters: Check for UINT_OFLOW
rather than using arbitrary 2^32
* tests/misc/truncate-overflow: Don't depend on truncate
to determine if we're on a 32 or 64 bit platform and
instead use the various OFF_T limits
* tests/misc/sort-merge: Check for UINTMAX_OFLOW
rather than using arbitrary 2^64+1
* tests/misc/unexpand: ditto
2009-01-03 15:10:42 +00:00
Michael Meskes
1ead085826 stat: print file-system total inode count (%c) as an unsigned number
* src/stat.c (print_statfs): Print statfs.f_files, the total inode
count of a file system, as an unsigned number.
2009-01-03 09:42:39 +01:00
Jim Meyering
695682d514 tests: factor ls-misc (no semantic change)
* tests/misc/ls-misc: Factor out uses of "\e[0m".
2009-01-01 10:05:24 +01:00
Jim Meyering
442d63051c update copyright year
* doc/coreutils.texi: Likewise.
* tests/sample-test: Likewise.
2009-01-01 02:15:07 +01:00
Jim Meyering
7fc5292a29 improve M4 quoting
* configure.ac: Add quotes.
* gl/m4/mgetgroups.m4 (gl_MGETGROUPS): Likewise.
* m4/boottime.m4 (GNULIB_BOOT_TIME): Likewise.
* m4/check-decl.m4 (gl_CHECK_DECLS): Likewise.
* m4/gmp.m4 (cu_GMP): Likewise.
* m4/jm-macros.m4 (coreutils_MACROS, gl_CHECK_ALL_HEADERS): Likewise.
(gl_CHECK_ALL_TYPES): Likewise.
* m4/lib-check.m4 (cu_LIB_CHECK): Likewise.
* m4/stat-prog.m4 (cu_PREREQ_STAT_PROG): Likewise.

FYI, I first ran this command:
git ls-files | grep -E '\.(m4|ac)$' | xargs perl -pi \
-e 's/(AC_[A-Z_]+\()([^[()]+?)([,)])/$1\[$2]$3/g;' \
-e 's/(AC_[A-Z_]+\(\[[^,]+?\], )([^,[()]+?)([,)])/$1\[$2]$3/g;' \
-e 's/(AC_[A-Z_]+\((?:\[[^,]+?\], ){2})([^,[()]+?)([,)])/$1\[$2]$3/g'
Then I updated serial numbers and copyright dates manually.
Also, I manually added two pairs of quotes in boottime.m4.
2009-01-01 02:15:07 +01:00
Jim Meyering
cf5616a0aa bootstrap: don't use cmp's -s option when reading from a pipe
GNU cmp exits without reading all input when given the -s option,
and that can cause termination of the writing process via SIGPIPE.
Instead, when reading from a pipe, just redirect output to /dev/null
so that all input is read.
2009-01-01 02:15:07 +01:00
Jim Meyering
13601dd3cf maint: factor out common code; prohibit use of HAVE_MBRTOWC
* maint.mk (_prohibit_regexp): New macro.
(sc_avoid_if_before_free, sc_cast_of_argument_to_free):
(sc_cast_of_x_alloc_return_value, sc_cast_of_alloca_return_value):
(sc_space_tab, sc_prohibit_atoi_atof, sc_prohibit_strcmp):
(sc_prohibit_stat_st_blocks, sc_prohibit_S_IS_definition): Use it.
(sc_prohibit_HAVE_MBRTOWC): New rule.
2009-01-01 02:15:07 +01:00
Jim Meyering
1ee192a9ff maint: use more sc_-prefixed names
* maint.mk (sc_po_check): Renamed from po-check.
(sc_author_mark_check): Renamed from author_mark_check.
(sc_copyright_check): Renamed from copyright-check.
(sc_makefile_path_separator_check): Renamed from
makefile_path_separator_check.
(local-checks-available): Remove the old names.
* Makefile.am (EXTRA_DIST): Reflect the renaming: .x-sc_po_check
* .x-po-check: Rename to...
* .x-sc_po_check: ...new file.
2009-01-01 02:15:07 +01:00
Jim Meyering
cbecb8cab8 maint: tighten m4 AC_ quoting check
* maint.mk (sc_m4_quote_check): Renamed from m4-check.
Also search for AC_DEFINE and AC_DEFINE_UNQUOTED.
Also search in configure.ac.
* configure.ac: Quote first argument of AC_DEFINE.
* jm-macros.m4 (coreutils_MACROS): Quote the first argument to AC_DEFINE.
2009-01-01 02:15:07 +01:00
Jim Meyering
fb992bae4c maint: move coreutils-specific syntax check rules into cfg.mk
* maint.mk (sc_dd_max_sym_length, sc_prohibit_jm_in_m4):
(sc_root_tests, sc_always_defined_macros, sc_system_h_headers):
(sc_sun_os_names, sc_tight_scope, sc_no_exec_perl_coreutils):
Move rules into cfg.mk.
(sc_strftime_check): Renamed from strftime-check, and moved, too.
* cfg.mk: Add the above rules.
2009-01-01 02:15:07 +01:00
Jim Meyering
ac9e4915ad portability: accommodate gnulib's getaddrinfo change
* src/Makefile.am (pinky_LDADD, who_LDADD): Append $(GETADDRINFO_LIB)
2009-01-01 02:15:07 +01:00
Jim Meyering
92465d59c6 cleanup/modernize: don't test HAVE_MBRTOWC; now gnulib provides it
* bootstrap.conf (gnulib_modules): Include mbrtowc explicitly.
* src/ls.c (quote_name): Don't test HAVE_MBRTOWC, now that we're
guaranteed to have the function.
* src/wc.c (wc): Likewise.
2009-01-01 02:15:07 +01:00
Eric Blake
921feefb12 doc: mention long option abbreviation
* doc/coreutils.texi (Common options): Give example of
abbreviating options.
* THANKS: Update.
Reported by Adam Jimerson.
2008-12-27 10:32:58 -07:00
Jim Meyering
0c65638b0f maint: ensure dd's computation of O_FULLBLOCK uses all O_ symbol names
* src/dd.c (O_FULLBLOCK): Use a more uniform initializer, that makes
it easier to extract all O_ symbol names.
* maint.mk (syntax-check-rules): Also search for sc_ rules in cfg.mk.
(sc_root_tests): Ensure that this rule sets $diff.
* cfg.mk (sc_dd_O_FLAGS): New rule.
2008-12-26 12:08:51 +01:00
Matt Harden
5c065bb0cb dd: add support for opening files in Concurrent I/O (CIO) mode
* src/dd.c (O_CIO): New flag.
* src/dd.c (O_FULLBLOCK): Add O_CIO to the list of flags that
O_FULLBLOCK should be greater than.
* src/dd.c (flags): Give the name "cio" to the new O_CIO flag, mirroring
the treatment of O_DIRECT.
* src/dd.c (usage): Add a description of the new flag when it is available.
* doc/coreutils.text (dd invocation): Describe the new flag.
* NEWS: Mention the new feature.
2008-12-26 10:57:05 +01:00
Jim Meyering
680afe6751 build: do enable $(WERROR_CFLAGS) for src/ files.
This reverts the more recent commit (of two) entitled "build:
add configure-time --enable-gcc-warnings option; avoid warnings".
Pádraig Brady spotted the contradiction between the log message
and actual change.

This reverts commit 292d68565a.
2008-12-23 17:22:57 +01:00
Pádraig Brady
0fcf730104 doc: stty: Clarification of some input and output settings
* doc/coreutils.texi (stty invocation): Clarify any
ambiguity in regard to the direction of input and output settings.
Add some notes on the case changing settings.
Most of the text was supplied by Dan Jacobson.
2008-12-23 14:26:22 +00:00
Pádraig Brady
f144582e17 timeout: remove problematic casts
* src/timeout.c (apply_time_suffix): Change input parameter from
unsigned int to unsigned long, which is the type of the variable it's
actually manipulating.  This removes the need for the cast which was
giving a warning with the gcc options: -fstrict-aliasing
-Wstrict-aliasing.  Also add a check for overflow possible on 16-bit
platforms, and fix indents.
(main): Remove a redundant cast in the alarm() call.
2008-12-23 10:29:05 +00:00
Jim Meyering
9a913a2461 * .x-sc_require_config_h: Remove obsolete regexps. 2008-12-21 17:50:09 +01:00
Jim Meyering
317d2c6384 maint.mk: enforce the "include <config.h> first" rule
* maint.mk (sc_require_config_h_first): New rule.
* .x-sc_require_config_h_first: New file.
2008-12-21 17:49:58 +01:00
Jim Meyering
292d68565a build: add configure-time --enable-gcc-warnings option; avoid warnings
* bootstrap.conf (gnulib_modules): Add "warnings" module.
* configure.ac: Add --enable-gcc-warnings, derived from code in bison.
* src/Makefile.am (AM_CFLAGS): Set to $(WARN_CFLAGS) # $(WERROR_CFLAGS)
* lib/Makefile.am (AM_CFLAGS): Change spelling to $(WARN_CFLAGS)
Don't use $(WERROR_CFLAGS), yet.
* src/system.h (usage): Declare.
* src/base64.c (usage): Declare to be global, for consistency.
* src/timeout.c (usage): Likewise.
* src/truncate.c (usage): Likewise.
* src/getlimits.c (usage): Likewise.
* src/pinky.c (ttyname): Declare with prototype, rather than an
empty argument list.
* src/who.c (ttyname): Likewise.
* src/su.c (crypt, getusershell, setusershell, endusershell): Likewise.
2008-12-21 17:49:58 +01:00
Jim Meyering
c352bb469d build: turn on $(WERROR_CFLAGS) for src/ 2008-12-21 17:49:58 +01:00
Jim Meyering
22a2a43021 build: add configure-time --enable-gcc-warnings option; avoid warnings
* bootstrap.conf (gnulib_modules): Add "warnings" module.
* configure.ac: Add --enable-gcc-warnings, derived from code in bison.
* src/Makefile.am (AM_CFLAGS): Set to $(WARN_CFLAGS) # $(WERROR_CFLAGS)
* lib/Makefile.am (AM_CFLAGS): Change spelling to $(WARN_CFLAGS)
Don't use $(WERROR_CFLAGS), yet.
* src/system.h (usage): Declare.
* src/base64.c (usage): Declare to be global, for consistency.
* src/timeout.c (usage): Likewise.
* src/truncate.c (usage): Likewise.
* src/getlimits.c (usage): Likewise.
* src/pinky.c (ttyname): Declare with prototype, rather than an
empty argument list.
* src/who.c (ttyname): Likewise.
* src/su.c (crypt, getusershell, setusershell, endusershell): Likewise.
2008-12-21 17:49:58 +01:00
Pádraig Brady
4000c35ae3 doc: Remove curly quotes from shell examples in man pages
Use \(aq rather than a literal ' as groff will convert apostrophe
to a right quote (\u2029) in utf8 locales for example.
Stepan Kasal details the issue and fix here:
http://lists.gnu.org/archive/html/bug-coreutils/2008-12/msg00124.html
2008-12-17 10:47:23 +00:00
Jim Meyering
99eccc3359 ChangeLog-2008: say ChangeLog files are no longer manually maintained
and point to HACKING's policy.  Suggestion from Dan Jacobson.
2008-12-16 08:15:39 +01:00
Jim Meyering
9965d234e5 du: -H now does what POSIX requires
* src/du.c (usage): Update --help output.
(main): Move -H-handling code from the --si block to
the one for --dereference-args (-D).
* doc/coreutils.texi (du invocation): Update description.
* NEWS (Changes in behavior): Mention this.
2008-12-16 08:04:01 +01:00
Jim Meyering
a011b01af1 doc: pr: formatting corrections
* doc/coreutils.texi (pr invocation): Fix some overzealous uses of @var.
Reported by Andreas Schwab.
2008-12-13 18:00:47 +01:00
Ralf Wildenhues
28fbe5a487 more portable bootstrap procedure
* bootstrap (get_version): Fix portability issues in sed script.
(check_versions): For buildreq apps, honor the corresponding
$APP variable like $AMTAR, $AUTOCONF.
(usage): Document this.
(update_po_files): Honor $SHA1SUM.
(main): Honor $AUTOPOINT, $ACLOCAL, $AUTOCONF, $AUTOHEADER,
$AUTOMAKE, $LIBTOOLIZE.
2008-12-13 18:00:44 +01:00
Jim Meyering
9b8023e69c tests: ensure that chmod, chgrp and chown honor --silent
* tests/chmod/silent: New file, to test all three programs.
* tests/Makefile.am (TESTS): Add chmod/silent.
* NEWS (Bug fixes): Mention this.
The bug was introduced in 96a5d2ce6a.
2008-12-03 11:02:57 +01:00
Ondřej Vašík
b8497a3a7a chmod, chown, chgrp: honor --silent (-f) once again
* chmod.c (process_file): Make -f suppress fts-related diagnostics.
* chown-core.c (change_file_owner): Likewise.
Reported via <http://bugzilla.redhat.com/474220>.
2008-12-03 11:02:45 +01:00
Jim Meyering
c2e56e0de7 wc: read and process --files0-from= input a name at a time,
when the file name list is not too large.  Before, wc would always read
the entire file name list into memory and *then* process each file name.
wc does read the list into memory when the list is known not to be too
large; this is done in order to be able to align the output numbers,
as it does with arguments specified on the command-line
* src/wc.c: Include "argv-iter.h".
(main): Rewrite to use argv-iter when the input file name list
is known to be too large.
* NEWS (Bug fixes): Mention it.
2008-12-02 13:12:22 +01:00
Jim Meyering
031e2fb5e9 du: read and process --files0-from= input a name at a time,
rather than by reading the entire input into memory and *then*
processing each file name.
* src/du.c: Include "argv-iter.h", not "readtokens0.h".
(main): Rewrite to use argv-iter.
Call xfts_open on each argument, rather than on the entire
argv list at once.
Call print_size here, not from du_files.
Diagnose read failure.
* NEWS (Bug fixes): Mention it.
* THANKS: update.
Reported by Barry Kelly.  More details in
http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/15159/
2008-12-02 13:12:13 +01:00
Jim Meyering
e181802521 seq: plug a leak
* src/factor.c (emit_ul_factor): Call mpz_clear.
2008-12-01 22:44:20 +01:00
Jim Meyering
c58b5daa33 avoid warnings about initialization of automatic aggregates
* src/system.h (DZA_CONCAT0, DZA_CONCAT): New macros.
(DECLARE_ZEROED_AGGREGATE): New macro.
* src/ls.c (quote_name): Use it.
* src/pathchk.c (portable_chars_only): Use it.
* src/shred.c (main): Use it.
* src/stty.c (main): Use it.
* src/wc.c (SUPPORT_OLD_MBRTOWC): Use it.
2008-12-01 21:18:52 +01:00
Jim Meyering
80325aca2d * bootstrap.conf (gnulib_modules): Add argv-iter. 2008-12-01 17:41:18 +01:00
Jim Meyering
d3b5555f10 argv-iter: add tests
* gl/modules/argv-iter-tests: New module.
* gl/tests/test-argv-iter.c: New file.
2008-12-01 17:41:08 +01:00
Jim Meyering
ca738e4414 argv-iter: new module
* gl/lib/argv-iter.h: New file.
* gl/lib/argv-iter.c: New file.
* gl/modules/argv-iter: New file.
With a suggestion for improved memory management by Pádraig Brady.
2008-12-01 17:40:59 +01:00
Jim Meyering
21eb87e6ea * src/hostname.c (sethostname) [!HAVE_SETHOSTNAME]: Remove declaration. 2008-12-01 17:40:27 +01:00
Jim Meyering
7ef56a26fd cp, mv: remove 3-year-deprecated+warned-about --reply option
* src/cp.c (reply_args, reply_vals): Remove globals.
[REPLY_OPTION]: Remove enum.
(long_opts) ["reply"]: Remove initializer.
(main): Remove case stmt.
* src/mv.c: Likewise.
Don't include "argmatch.h".  No longer used.
* NEWS (Changes in behavior): Mention this.
* tests/Makefile.am (TESTS): Remove mv/reply-no.
* tests/mv/reply-no: Remove file.
* tests/mv/i-link-no: Update, now that --reply= is gone.
2008-12-01 17:03:37 +01:00
Pádraig Brady
aa2617b908 doc: Make descriptions of ASCII NUL and --zero-terminated option consistent
doc/coretuils.texi: Refactor shuf, sort and uniq --zero-terminated
option to use the same text. Also refer to NUL characters as
@acronym{ASCII} @sc{nul} consistently.
2008-12-01 14:05:56 +00:00
Jim Meyering
016958f2f0 doc: enforce @var{lower} policy
* doc/coreutils.texi: Fix remaining violations.
* doc/Makefile.am (sc-lower-case-var): New rule.
Add some command-suppressing "@" directives so that a successful
"make check" run is less noisy.
2008-12-01 09:25:06 +01:00
Pádraig Brady
1ce9d86c30 doc: Tweak info docs to standarise on lower-case @var{file}
* doc/coreutils.texi: s/@var{FILE}/@var{file}/
2008-12-01 02:29:57 +00:00
Pádraig Brady
00b5a2db33 doc: Improve description of --files0-from option
* doc/coreutils.texi: Describe the most common
usage of --files0-from=- to read names from stdin.
* src/du.c: Likewise.
* src/sort.c: Likewise.
* src/wc.c: Likewise.
2008-12-01 02:09:19 +00:00
Pádraig Brady
e34894bf3f tests: dd/reblock: Reduce chance of timing related failures
* tests/dd/reblock: Change the IPC mechanism to the dd process
under test, from pipes to fifos. Also change the delay
between data writes to 0.2s for both tests.
This should increase the chance that the dd process
will read the data chunks separately.
2008-12-01 01:20:18 +00:00
Jim Meyering
b14e5c40b9 m4: avoid a warning from gcc's -Wstrict-prototypes
* m4/jm-macros.m4 (ARGMATCH_DIE_DECL): Use proper prototype for usage.
2008-11-30 19:15:51 +01:00
Jim Meyering
90f74735aa tests: df: skip total-verify if df fails
* tests/df/total-verify: Skip the test if df fails.
2008-11-30 19:15:51 +01:00
Jim Meyering
d6a62182f0 build: don't reject definition of STREQ
* maint.mk (sc_prohibit_strcmp): Tighten rule: exclude
macro definitions like the one in system.h.
* .x-sc_prohibit_strcmp: Don't exempt src/system.h.
2008-11-30 19:15:51 +01:00
Jim Meyering
847ab6a518 tests: start long-running cp/link-heap earlier
* tests/Makefile.am (TESTS): Move cp/link-heap nearer the start of the
list, so that its termination doesn't delay a parallel "make check".
2008-11-30 19:15:51 +01:00
Jim Meyering
b5b3690d06 tests: avoid failure of cp/link-heap on some systems
* tests/cp/link-heap: Raise virtual memory limit from 10,000
to 14,000, to avoid failure on Debian/unstable (libc6 2.7-16).
2008-11-30 19:15:51 +01:00
Jim Meyering
57e2022b8d remove explicit declaration of putenv, ...
* src/date.c: ... now that gnulib guarantees that it's in <stdlib.h>.
* src/env.c: Likewise.
2008-11-30 19:14:29 +01:00
Jim Meyering
be6b4218e4 tests: dd/reblock: avoid occasional failure
* tests/dd/reblock: Sleep longer to avoid a race condition.
Reported by Bob Proulx.
2008-11-30 19:01:45 +01:00
James Youngman
48a05a9ce9 pwd: add pwd -P, -L to TODO
* TODO: Add to-do entry for -P and -L options of pwd.
2008-11-27 12:22:59 +01:00
Ondřej Vašík
fc3b301d4f doc: fix typo in units factorization, removed TODO items
* doc/coreutils: switch typo (switched gibibytes/gigabytes)
* TODO:          removed missing chcon and runcon documentation from list
2008-11-26 16:18:50 +01:00
Jim Meyering
c7e971bee0 doc: factor out list of suffix-to-number (e.g., KB->1000B) mappings
* coreutils.texi (multiplierSuffixes, multiplierSuffixesNoBlocks):
New macros.
(od invocation, head invocation, tail invocation, split invocation):
(truncate invocation): Use them.
2008-11-26 15:37:47 +01:00
Jim Meyering
b0312caf6f doc: tail: one more s/bytes/n/ change
* doc/coreutils.texi (tail invocation): Make one more
@var{bytes} -> @var{n} change.
2008-11-26 15:36:55 +01:00
Pádraig Brady
1c318d52de doc: tail: fix description of --bytes=N (-c)
* doc/coreutils.texi (tail invocation): Use @var{n} consistently,
not a mix of that and @var{bytes}.  Reported by anonymous
in <http://savannah.gnu.org/bugs/?24934>.
2008-11-26 14:27:09 +00:00
Karl Berry
186b655094 doc: move @shortcontents and @contents from end to start
* doc/coreutils.texi: Move @shortcontents and @contents from the
end to the beginning, just after "@end titlepage".
2008-11-23 12:45:40 +01:00
Jim Meyering
8333cc3c0f doc (stat): clarify: there are two sets of format directives
* doc/coreutils.texi (stat invocation): Clarify description of
--file-system format directives.
2008-11-23 12:36:13 +01:00
Karl Berry
c27c4a0957 doc (stat): correct formatting in coreutils.texi
* doc/coreutils.texi (stat invocation): Move the list of regular,
non-file-system, format directives from the description of --terse,
out of the enclosing table.
2008-11-23 12:36:08 +01:00
Jim Meyering
a5e53ecc2c tests: dd: add a test for the required behavior
* tests/dd/reblock: New file.  Test for the required functionality.
Based on an example and discussion from this thread:
http://lists.gnu.org/archive/html/bug-coreutils/2008-11/msg00153.html
* tests/Makefile.am (TESTS): Add dd/reblock.
2008-11-22 10:31:08 +01:00
Pádraig Brady
d5ab05998c Revert part of "dd: avoid unnecessary memory copies"
This reverts part of commit fbd87029cf.
Paul Eggert noticed the problem in
http://lists.gnu.org/archive/html/bug-coreutils/2008-11/msg00153.html
* doc/coreutils.texi (dd invocation): Clarify.
2008-11-22 10:20:31 +01:00
Pádraig Brady
a2be861b04 getlimits: A new utility for use in coreutils' tests
* src/getlimits.c: A utility to print platform dependent
limits in a format suitable for use in shell scripts.
* src/Makefile.am: Add getlimits to list of utilities
to build but not install. Also add it to the list linked
with libiconv
* po/POTFILES.in: Add getlimits to translation list.
2008-11-21 15:46:26 +00:00
Pádraig Brady
fbd87029cf dd: avoid unnecessary memory copies
* src/dd.c (scanargs): When not otherwise required (e.g. for
conversion), use two-buffer mode only when the input and output
buffer sizes differ.  Before, some of the most basic invocations of
dd, e.g., dd < in > out, would unnecessarily use separate buffers
and perform memory copies between them.
2008-11-21 11:50:59 +00:00
Jim Meyering
3ece0355d5 cp: use far less memory in some cases
cp --link was "remembering" many name,dev,inode triples unnecessarily.
cp was doing the same, even without --link, for every directory in the
source hierarchy, while it can do its job with entries merely for the
command-line arguments.  Prompted by a report from Patrick Shoenfeld.
Details <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/15081>.
* src/copy.c (copy_internal): Refrain from remembering
name,dev,inode for most files, when invoked via cp --link.
Record an infloop-avoidance triple for each directory specified
on the command line, not for each directory in the source tree.
Don't record a dir-triple when x->hard_link is set.
* NEWS (Buf fixes): Mention it.
* tests/cp/link-heap: New file.  Test for cp's lowered memory usage.
* tests/Makefile.am (TESTS): Add link-heap.
2008-11-20 10:21:52 +01:00
Jim Meyering
1760ade090 tests: add a test of cp --preserve=links
* tests/cp/link-preserve: Add a case and comments.
2008-11-20 10:21:52 +01:00
Jim Meyering
ed017d44b2 cp: remove unused code
* src/cp-hash.c (remember_created): Remove unused function.
Remove thus-obviated headers: <stdio.h>, "quote.h", "error.h".
* src/cp-hash.h (remember_created): Remove declaration.
2008-11-20 10:21:52 +01:00
Jim Meyering
8b09875b59 doc: HACKING: reference http://www.gnu.org/licenses/why-assign.html
Suggestion from Patrick Schoenfeld.
2008-11-17 11:16:19 +01:00
Jim Meyering
4e38e6a19c tests: remove debug code that would try to write into /t/k-env
* tests/ls/no-cap: Remove debugging "tee".
2008-11-16 10:45:41 +01:00
Jim Meyering
b3e779c090 tests: change misc/printf-surprise so that it doesn't segfault anymore
* tests/misc/printf-surprise: Disable MALLOC_PERTURB_, so that "make
check" no longer provokes a segfault from printf(1).  Before, that
would be detected as a known problem and cause the test to be skipped.
Adjust the test so that a segfault once again results in test failure.
2008-11-16 09:53:48 +01:00
Jim Meyering
17409787bb tests: remove df/total
* tests/df/total: Remove file.
* tests/Makefile.am (TESTS): Remove df/total.
It is subsumed by df/total-verify.
2008-11-12 13:29:38 +01:00
Ondřej Vašík
ac819e1044 * tests/df/total-verify [VERBOSE]: Run df --version, not ls --version. 2008-11-12 13:27:23 +01:00
Jim Meyering
36eb45201f avoid spurious test failure when df always fails
* tests/df/total-verify: Skip upon _df_ failure, not tee failure.
Reported by Ondřej Vašík.  Details in
<http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/15028>.
2008-11-12 12:53:54 +01:00
Eric Blake
b43255473f jm-macros.m4: avoid syntax issue with newer autoconf
* jm-macros.m4 (coreutils_MACROS): Make LIB_CAP assignment persistent.

Signed-off-by: Eric Blake <ebb9@byu.net>
2008-11-11 10:44:59 -07:00
Jim Meyering
90a83264b9 Update references to GFDL: 1.2 -> 1.3
* doc/coreutils.texi: Likewise.
* doc/perm.texi: Likewise.
* old/fileutils/NEWS: Likewise.
* old/sh-utils/NEWS: Likewise.
* old/textutils/NEWS: Likewise.
2008-11-11 09:51:30 +01:00
Jim Meyering
43448b0493 make --help print "Report PROGRAM translation bugs to <...>."
for all but the C/POSIX locale.
* src/system.h: Include "hard-locale.h".
(emit_bug_reporting_address): Tell where to report translation bugs.

don't include "hard-locale.h", now that system.h does
* src/comm.c: Likewise.
* src/join.c: Likewise.
* src/ls.c: Likewise.
* src/pinky.c: Likewise.
* src/pr.c: Likewise.
* src/sort.c: Likewise.
* src/uniq.c: Likewise.
* src/who.c: Likewise.
2008-11-10 08:19:52 +01:00
Jim Meyering
854284f788 avoid warnings about discarding "qualifiers from pointer target type"
Use the new "bad_cast" function or an actual cast-to-"(char *)"
to avoid warnings.
* src/system.h (bad_cast): Define.
* src/chown.c (main):
* src/chroot.c (main):
* src/date.c (main):
* src/du.c (main):
* src/expand.c (stdin_argv):
* src/ls.c (decode_switches):
* src/md5sum.c (main):
* src/paste.c (main):
* src/pr.c (col_sep_string, column_separator, line_separator, main):
* src/sort.c (main):
* src/split.c (main):
* src/tail.c (main):
* src/unexpand.c (stdin_argv):
* src/yes.c (main):
2008-11-10 08:11:59 +01:00
Jim Meyering
0e2ac2de24 avoid a compiler warning
(strip_program): Declare to be const.
2008-11-10 08:11:59 +01:00
Jim Meyering
03911ef780 use xfreopen in place of unchecked freopen
* bootstrap.conf (modules): Add xfreopen.
* src/cat.c (main): Include "xfreopen.h".  Use xfreopen.
* src/cksum.c (cksum): Likewise.
* src/head.c (head_file, main): Likewise.
* src/md5sum.c (digest_file): Likewise.
* src/od.c (open_next_file): Likewise.
* src/split.c (type_undef): Likewise.
* src/sum.c (bsd_sum_file, sysv_sum_file): Likewise.
* src/tac.c (tac_file, main): Likewise.
* src/tail.c (tail_file, main): Likewise.
* src/tee.c (tee_files): Likewise.
* src/tr.c (main): Likewise.
* src/wc.c (wc_file): Likewise.
* po/POTFILES.in: Add lib/xfreopen.c
2008-11-10 08:11:59 +01:00
Jim Meyering
32d4d0dd5e xfreopen: new module
* gl/lib/xfreopen.c: New file.
* gl/lib/xfreopen.h: New file.
* gl/modules/xfreopen: New file.
2008-11-10 08:11:59 +01:00
Jim Meyering
cfa2120e83 Update URL: s!www.iro.umontreal.ca!translationproject.org/team/...!
* Makefile.am (THANKS-to-translators): Update URL template.
2008-11-09 15:35:51 +01:00
James Youngman
1c5e5d6277 install: indicate clearly it's not for installing packages
* src/install.c (usage): Indicate the program copies files,
as opposed to installing packages.
2008-11-09 13:56:00 +01:00
Jim Meyering
41ec3548b0 emit more precise bug-reporting instructions
Hoping that this will decrease the volume of bug reports
mistakenly directed to the coreutils mailing list.
* src/system.h (emit_bug_reporting_address): Specify the program
name in the "Report bugs to <...>." line in each program's --help
output and man page.  Now, it will say "Report PROGRAM_NAME bugs
to <...>."  Suggestion from Ondřej Vašík.
2008-11-08 19:59:52 +01:00
Jim Meyering
5b27ec57b0 include gnulib's strdup module explicitly
* bootstrap.conf (gnulib_modules): Include strdup explicitly, to
keep the latest version of gnulib-tool from omitting this now-marked-
as-obsolete module.
2008-11-05 19:18:59 +01:00
Kamil Dudka
1e48b1fee5 ls: --color now highlights hard linked files, too
* src/ls.c (print_color_indicator): Colorize hard linked files.
* src/dircolors.c: Add color for hard link.
* src/dircolors.hin: Add color for hard link.
* tests/ls/hardlink: Test for ls - colorize hard linked files.
* tests/Makefile.am (TESTS): Add ls/hardlink.
* NEWS: Mention the change.
2008-10-28 21:08:30 +01:00
Jim Meyering
5dc070cc86 tests: ls/stat-failed: don't discard stderr.
* tests/ls/stat-failed: Let stderr be recorded, to ease debugging.
2008-10-28 09:24:01 +01:00
Jim Meyering
b4ec994b26 tests: seq: check for today's extended long double fix
* tests/misc/seq-long-double: New file.  Test for today's bug fix.
* tests/check.mk (TESTS_ENVIRONMENT): Export CC definition.
* tests/Makefile.am (TESTS): Add misc/seq-long-double.
* NEWS (Bug fixes): Mention it.
2008-10-26 10:45:34 +01:00
Paul Eggert
2bf151cd93 seq: improve quality of format-checking code
* src/seq.c (validate_format): Remove. Migrate its checks into...
(long_double_format): Report an error and exit if an error is found,
instead of returning NULL.  All callers changed.
Use a more-consistent format for diagnostics.
* tests/misc/seq: Adjust to the more-consistent format for diagnostics.
2008-10-26 09:51:33 +01:00
Jim Meyering
153477479a factor: avoid compilation failure without libgmp
* src/factor.c (debug) [!HAVE_GMP]: Define.
Reported by Bob Proulx.
2008-10-25 22:57:42 +02:00
Paul Eggert
fec0e89c20 factor: remove --bignum and --no-bignum options
Here's a patch to remove the --bignum and --no-bignum options from
'factor'.  The case for removing --bignum isn't as strong as that for
'expr', but still, it seems to me that these options are not needed and
complicate the documentation unnecessarily.

* doc/coreutils.texi (factor invocation): Remove --bignum, --no-bignum.
* src/factor.c (algorithm, ALGORITHM_CHOICE, USE_BIGNUM, NO_USE_BIGNUM):
Remove; all uses removed.
(extract_factors_multi): Remove, replacing with....
(print_factors_multi): New function, with signature similar to that
of new signature of print_factors_single.
(print_factors_single): Migrate checking code to caller.
(print_factors): Use GMP if it's available; don't bother asking user.
Improve accuracy of check for "large" numbers.
(long_options, main): Remove support for --bignum.
2008-10-25 21:05:41 +02:00
Jim Meyering
407e8f0fdd tests: df/total: don't fail for an inaccessible mount point
* tests/df/total: Ignore nonzero exit status from df.
2008-10-25 16:30:54 +02:00
Paul Eggert
461231f022 seq: revert Solaris 8 work-around that caused x86 regression
* src/seq.c: Don't include <math.h>, <float.h>.
(abs_rel_diff): Remove.
(print_numbers): Test for equality, not for an epsilonish value.
This reverts 4827dd27b0, aka
v6.10-185-g4827dd2, which broke 'seq' on the x86; for example, it
causes "seq 9223372036854775807 9223372036854775808" to incorrectly
output 3 numbers instead of 2.  It's better to punish obsolescent
hosts that have incorrectly-working floating-point than to punish
correctly-working hosts.
* tests/misc/seq: Use 0.9000000000000, rather than
0.90000000000000000000, to avoid tickling a bug in Solaris 8 strtold,
which converts "0.9" and "0.9000000000000" correctly, but incorrectly
converts "0.90000000000000000000" to a smaller value.
2008-10-25 10:59:07 +02:00
Eric Blake
b705e9a9e7 group-list: avoid compiler warning
* src/group-list.c (print_group_list) [!HAVE_GETGROUPS]: Always
return value.
2008-10-24 11:44:48 -06:00
Jim Meyering
b3677e5e38 ls: use '.' (not +) as SELinux-only alt. access flag in ls -l output
* src/ls.c (gobble_file) [long_format]: Map SELinux-only to '.',
any other nonempty combination of MAC and ACL to '+', and all else
to the usual ' '.  Suggested by Michael Stone.
* tests/misc/selinux: Adapt: expect '.', not '+'.
* doc/coreutils.texi (What information is listed): Document this.
* NEWS (Changes in behavior): Mention it.
2008-10-23 14:18:25 +02:00
Pádraig Brady
cc0f637b6d Remove lzma as a specific build requirement
* bootstrap.conf: lzma was added as a build requirement
in the recently added build tools requirements check.
Remove that as it's quite new and also only required
for the make dist stage.
2008-10-22 22:15:10 +01:00
Paul Eggert
7920f2c14a * src/ls.c (usage): Describe exit statuses more concisely. 2008-10-22 18:40:56 +02:00
Pádraig Brady
99f4994982 Add better checks and docs for build tools
Prompted by a report from Ed Avis:
<http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/14710>

* README-hacking: Organise LZMA and Valgrind as
as optional requirements rather than in their own sections.
Mention bootstrap will now check tool versions.
* README-prereq: Make a start on specific instructions
for optaining build tools. Currently we just have notes
for Fedora linux.
* bootstrap.conf: Add the list of tools and versions required.
* bootstrap: Add the logic to check for the required tools,
and list all required tools and versions if any are missing.
2008-10-22 16:31:57 +01:00
Jim Meyering
5afac2aee1 clean up gl/modules/selinux-at
* gl/modules/selinux-at:
Ensure that LIB_SELINUX is cleared, in case it's set in the environment.
m4-quote the first two args to AC_SEARCH_LIBS.
Don't violate autoconf's ac_ namespace: s/ac_save/gl_save/
Drop the useless double quotes around a simple assignment RHS.
2008-10-22 12:44:17 +02:00
Jim Meyering
aa67daf63b move selinux-h module from gl/ to gnulib
* gl/lib/se-context.in.h: Remove file.
* gl/lib/se-selinux.in.h: Likewise.
* gl/m4/selinux-context-h.m4: Likewise.
* gl/m4/selinux-selinux-h.m4: Likewise.
* gl/modules/selinux-h: Likewise.
2008-10-21 18:05:55 +02:00
Jim Meyering
f7a009c17c prepare to move selinux-h module to gnulib
* gl/modules/selinux-h (Makefile.am)
[selinux/selinux.h, selinux/context.h]:
Remove temporary file and target, in case they're read-only.
Use $(MKDIR_P), not mkdir -p.
(License): Relax to LGPLv2+.
Remove vestigial comments.
2008-10-21 15:58:11 +02:00
Jim Meyering
028e12ce3b tests: test today's ls-vs-capability fix
Test for this fix: f3f1ccfd87.
* tests/Makefile.am (TESTS): Add ls/no-cap.
* tests/ls/no-cap: New file.
2008-10-21 13:09:58 +02:00
Kamil Dudka
f3f1ccfd87 ls: make it possible to disable file capabilities checking
* ls.c (print_color_indicator): Do not check for file capability
if that attribute is not being colored.
Since 84f6abfe00, ls --color would check
each file for "capabilities".  In <http://bugzilla.redhat.com/467508>,
James Antill reported that ls --color seemed slower with capabilities
detection.
2008-10-21 11:13:01 +02:00
Jim Meyering
08c38ab7cb reflect gnulib's removal of lstat.h
* src/copy.h: Don't include "lstat.h".
* src/ls.c: Likewise.
* src/remove.c: Likewise.
* src/rm.c: Likewise.
2008-10-21 08:10:29 +02:00
Pádraig Brady
d60e33e241 expr: Fixup authors
* src/expr.c: Standardise the format of AUTHORS to
that used in other utils with multiple authors.
Also add Paul Eggert since he basically rewrote it
with his bignum fixes.
* AUTHORS (expr): Add Paul Eggert.
2008-10-20 15:40:50 +01:00
Jim Meyering
31a884dab7 accommodate gnulib header removals
* src/copy.c: Don't include "euidaccess.h" or "lchmod.h".
* src/cp.c: Don't include "lchmod.h".
* src/ls.c: Don't include "dirfd.h".
* src/mkdir.c: Don't include "lchmod.h".
* src/pwd.c: Don't include "dirfd.h".
* src/remove.c: Don't include "dirfd.h" or "euidaccess.h".
* src/test.c: Don't include "euidaccess.h".
* gl/modules/getloadavg.diff: Adjust diff for changed context.
* src/uptime.c (uptime): Remove declaration.
2008-10-19 14:15:31 +02:00
Jim Meyering
74443830ea * maint.mk (coreutils-path-check): New definition, now run
only if src/true.c exists.  Factored out of...
(my-distcheck):  ...here.
2008-10-18 12:55:04 +02:00
Jim Meyering
2ae61facc7 maint: avoid warning in ls.c
* src/ls.c (has_capability) [!HAVE_CAP]: Add unused attribute.
2008-10-17 08:55:12 +02:00
Jim Meyering
bb7fa1e932 maint: avoid warnings due to attribute warn_unused_result
Now that a (void) cast no longer suffices to ignore warnings from gcc
about uses of functions marked with the warn_unused_result attribute,
we need an alternative.  For the record, here's one of the ignorable
warnings: "copy.c:233: warning: ignoring return value of 'fchown',
declared with attribute warn_unused_result"
* bootstrap.conf (gnulib_modules): Import ignore-value.
* src/copy.c: Include "ignore-value.h".
(set_owner): Use ignore_value in place of "(void)" casts,
to ignore lchown and fchown failures.
* src/cp.c (re_protect): Likewise, to ignore lchown failure.
* src/remove.c (preprocess_dir): Remove unnecessary "(void)" cast.
2008-10-17 07:06:54 +02:00
Jim Meyering
16c8062085 mktemp: diagnose freopen failure
* src/mktemp [--quiet]: Don't ignore freopen failure.
2008-10-16 23:00:22 +02:00
Paul Eggert
17278118ee * src/mktemp.c (main): Add 'const' twice to avoid GCC warning. 2008-10-16 22:27:08 +02:00
Jim Meyering
7f6fb43e7d build: when po-check fails, say why and suggest a fix
* maint.mk (po-check): Before, when this check failed, it just
spat out a diff mentioning two temporary files.  Now, it tells
you what's wrong and suggests a fix with a patch using the name
of the affected file (rather than temporary file names) in the
diff output.
2008-10-16 14:25:53 +02:00
Eric Blake
ddc409b59e csplit: prefer sigaction over signal
* bootstrap.conf (gnulib_modules): Import sigaction.
* src/csplit.c (sigprocmask, siginterrupt) [SA_NOCLDSTOP]: Delete
workarounds.
(interrupt_handler, main): Drop use of signal.  Rely on sigaction
to block fatal signal during cleanup, and to restore it to default
in case of nested signals.
2008-10-16 06:20:50 -06:00
Pádraig Brady
7eb3aab88b tests: add option processing tests for 'expr'
* tests/misc/expr: Add tests for various combinations
of options where the first part of the expression
could be confused with an option.
2008-10-15 16:32:05 +02:00
Paul Eggert
4fb3704c25 expr: remove --bignum and --no-bignum options
* doc/coreutils.texi (expr invocation): Remove the --bignum and
--no-bignum options.  They weren't really needed, and they broke
longstanding (albeit nonportable) scripts.
* src/expr.c: Don't include <assert.h>.  Include "inttostr.h",
"long-options.h", "verify.h".  Check at compile-time that
size_t fits in unsigned long int, as the code assumes this in
several places.
(HAVE_GMP): Define to 0 if not defined, for convenience.
(mpz_t, mpz_clear, mpz_init_set_ui, mpz_init_set_str, mpz_add):
(mpz_sub, mpz_mul, mpz_tdiv_q, mpz_tdiv_r, mpz_get_str, mpz_sgn):
(mpz_fits_ulong_p, mpz_get_ui, mpz_out_str):
Supply substitutes when !HAVE_GMP, which work well enough for
expr's purposes.
(mp_integer): Remove.  All integers are gmp, if gmp is available.
(struct valinfo): Remove 'z' member; no longer needed.  The 'i'
member is always of type mpz_t.
(enum arithmetic_mode, MP_NEVER, MP_ALWAYS, MP_AUTO, mode):
Remove; no longer needed.
(usage): Remove documentation of --bignum and --no-bignum.
(integer_overflow): Abort if error misbehaves, to pacify GCC.
Restore old message on arithmetic overflow, to be conservative.
(die): Omit exit_status parameter; not needed (is always EXPR_FAILURE).
(string_too_long, USE_BIGNUM, NO_USE_BIGNUM, long_options):
Remove; no longer needed.
(main): Don't use getopt_long; this breaks old nonportable scripts.
(int_value): Arg is unsigned, in case we have strings whose length
exceeds LONG_MAX (!).
(int_value, freev, printv, null, tostring, toarith):
(eval6, eval4, eval3):
Always use mpz_ functions, to simplify the code.
(substr_value): Remove; no longer needed.
(getsize): Simplify the API: one arg rather than 3.  Don't assume
unsigned long int fits in size_t.
(promote, domult, dodivide, doadd): Remove; no longer needed.
* tests/misc/expr: Don't use --bignum to test for bignum support.
Instead, use big numbers to test this.
2008-10-15 16:30:28 +02:00
Jim Meyering
514b7fbc00 expr: don't interpret argv[0] as an operand
* src/expr.c (main): Given a first argument like -22 (negative, with
two or more digits), expr would decrement optind to 0 and then attempt
to evaluate argv[0].
2008-10-15 15:34:58 +02:00
Jim Meyering
555c219d9e doc: cp, mv: remove mention of deprecated --reply= option
* doc/coreutils.texi (cp invocation, mv invocation): Don't mention it.
2008-10-15 15:08:58 +02:00
Jim Meyering
59964c164b doc: adjust spacing in ls --help output, for better man formatting
* src/ls.c (usage): Adjust spacing so the "Exit status:" list
renders well in the help2man-generated man page.
2008-10-13 21:08:07 +02:00
Ondřej Vašík
7377f49ea8 doc: ls: clarify exit status description
* src/ls.c (exit_status): Clarify comments.
(usage): Clarify exit status description in --help output.
* doc/coreutils.texi (ls invocation): Clarify exit status documentation
Reported by Greg Metcalfe in <http://bugzilla.redhat.com/446294>.
2008-10-13 09:01:54 +02:00
Jim Meyering
969841cb77 doc: reorder tsort/ptx nodes so body and menu ordering are consistent
* doc/coreutils.texi (tsort invocation, tsort background): Move these
nodes "down", so that they follow the ptx nodes, thus matching the
alphabetized order in the menu.
(tsort background): Make this a subsection.
Suggested by Karl Berry.
2008-10-12 19:53:20 +02:00
Jim Meyering
c3e1fe230b tests: move check-misc targets from src/Makefile.am to maint.mk
* src/Makefile.am (check): Remove check-misc.
(check-misc): Remove target.
* maint.mk (sc_prohibit_stat_st_blocks): New target.
(sc_prohibit_S_IS_definition): New target.
* Makefile.am (EXTRA_DIST): Add .x-sc_prohibit_stat_st_blocks.
* .x-sc_prohibit_stat_st_blocks: New file.
Andreas Schwab reported that "make check" could fail to detect
violation of the no-S_IS*-definition policy.
2008-10-12 11:21:19 +02:00
Jim Meyering
1833a876ae tests: df: avoid test failure when using mawk
* tests/df/total-awk: Rewrite to use $PERL, not $AWK.
mawk can't even count above 2^31.  Reported by Ed Avis.
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/14792/focus=14802
* tests/df/total-verify: Rename from total-awk.
* tests/Makefile.am (TESTS): Reflect renaming.
2008-10-12 11:11:38 +02:00
Jim Meyering
0f5695bd59 bootstrap: merge from gnulib 2008-10-10 09:13:58 +02:00
Ondřej Vašík
42df6d7de2 doc: document runcon and chcon in SELinux context section
* doc/coreutils.texi: Document runcon and chcon.
Add minimal SELinux context section.
2008-10-07 23:43:27 +02:00
Ondřej Vašík
9c0c57a1b4 chcon: remove traces of unimplemented --change (-c) option
This option was never supported in upstream coreutils.
* chcon.c (usage): Remove --change (-c) from help message.
(main): Remove 'c' from getopt string.
Remove related and now-unused enums.
2008-10-06 22:53:04 +02:00
Andreas Dilger
a36f4cb451 stat: add lustre filesystem type
* src/stat.c (human_fstype) [S_MAGIC_LUSTRE]: Add case.
Make "stat -f" recognize the "Lustre" filesystem type.
<http://en.wikipedia.org/wiki/Lustre_(file_system)>
* NEWS: Mention this feature.
2008-10-06 22:35:57 +02:00
Jim Meyering
ed0a1c9f94 remove.c: avoid compile failure on OS/2
* src/remove.c (dirent_inode_sort_may_be_useful): Guard also with
"#if defined __linux__".  Reported by Elbert Pol.
2008-10-06 07:31:50 +02:00
Jim Meyering
f9da2d0e87 post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2008-10-05 21:27:05 +02:00
Jim Meyering
42285406aa version 7.0
* NEWS: Record release date.
2008-10-05 20:40:19 +02:00
Jim Meyering
5149348906 * maint.mk (alpha beta major): Add "-a" to git commit ... command. 2008-10-05 20:31:35 +02:00
Jim Meyering
fbc5aa7c47 tests: fix the install/strip-program test
* tests/install/strip-program: Use $PREFERABLY_POSIX_SHELL,
not POSIX_SHELL.  The latter may be empty, and would fail
on OpenBSD 3.9.
* tests/check.mk (TESTS_ENVIRONMENT): Propagate
PREFERABLY_POSIX_SHELL to tests.
2008-10-04 17:12:08 +02:00
Jim Meyering
15f4d612df timeout.c: don't use perror; exit 125 upon failed fork
* src/timeout.c (main): Use "error", not perror.
Elbert Pol noticed a build failure on OS/2.
* src/timeout.c (main): Exit 125 (not errno) upon failed fork.
Make the failed fork diagnostic match the one from install.c.
2008-10-03 18:39:31 +02:00
Kamil Dudka
e505736f82 ls and sort: use filevercmp instead of strverscmp
* src/ls.c (cmp_version): Use filevercmp instead of strverscmp.
* src/sort.c (usage): Remove mna reference to strverscmp(3).
(compare_version): Use filevercmp instead of strverscmp.
* bootstrap.conf: Add filevercmp to list of gnulib modules.
* tests/misc/sort-version: Remove conflicting string and enhance test.
* NEWS: Mention the change.
2008-10-03 11:59:17 +02:00
Jim Meyering
7eb15e1020 tests: skip a root-only test when configured without libcap
* tests/ls/capability: Test for HAVE_CAP definition in config.h.
2008-10-02 15:54:36 +02:00
Eric Blake
ef13885b37 ignore additional built file 2008-10-02 13:18:00 +02:00
Eric Blake
0628b73f35 remove.c: allow compilation on cygwin
* src/remove.c (dirent_inode_sort_may_be_useful)
[!HAVE_STRUCT_DIRENT_D_TYPE]: Elide definition when there is no point
in trying to use it.
2008-10-02 13:17:48 +02:00
Jim Meyering
dafbd407bc bootstrap: merge from gnulib
* bootstrap: add submodule support, git-merge-changelog
2008-10-02 13:16:47 +02:00
Jim Meyering
94c59c97f9 remove.c: combine two helper functions, to avoid sign-extension
* src/remove.c (fs_handles_readdir_ordered_dirents_efficiently):
Remove function, so as not to have to worry about the type of
statfs.f_type and sign extension.
(dirent_inode_sort_may_be_useful): Adjust comment.
Perform the switch directly on the struct.member here, instead.
Andreas Schwab spotted the potential for a sign-extension bug,
that happens not to bite for the S_* f_type values currently used.
2008-10-01 12:27:10 +02:00
Jim Meyering
ab02e256e9 rm: don't preprocess a directory on a file system of type tmpfs or nfs
The preprocessing phase is not necessary on tmpfs, and induces
a 20% performance decrease when removing a 2M-entry directory.
* src/remove.c (fs_handles_readdir_ordered_dirents_efficiently):
(dirent_inode_sort_may_be_useful): New functions from gnulib/fts.c.
They'll probably become a gnulib module -- eventually.
(preprocess_dir): Use dirent_inode_sort_may_be_useful.
2008-10-01 09:00:52 +02:00
Jim Meyering
0eff09dfcf tests: use our new timeout program
* tests/rm/ext3-perf: Also, record set-up duration and FS type.
2008-10-01 08:45:26 +02:00
Ralf Wildenhues
0482f193b5 fix make variable quotation error
* tests/check.mk (TESTS_ENVIRONMENT): Quote shell variable
$tmp__, fix expansion.
2008-09-29 22:49:08 +02:00
Jim Meyering
cfe3602ad6 seq: solve e13188e7ef more cleanly
* src/seq.c (print_numbers): Don't switch c_strtold -> strtold
in order to accommodate the locale-dependent behavior of our internal
asprintf use.  Instead, simply set the locale to C before calling
asprintf, and then set it back afterwards.
2008-09-29 15:28:03 +02:00
Jim Meyering
cee53c1430 build: avoid spurious valgrind warning about uses of touch
* .vg-suppressions (utimensat-NULL): Avoid bogus valgrind warning
that appears on at least Fedora 9.
2008-09-28 23:02:41 +02:00
Jim Meyering
0643c51cab mktemp: plug an inconsequential leak
* src/mktemp.c (main) [lint]: Free template.
2008-09-28 23:02:40 +02:00
Jim Meyering
b616886492 THANKS: add Erik Auerswald 2008-09-28 23:02:15 +02:00
Eric Blake
58aaf71f07 remove.c: avoid compiler warning
* src/remove.c (compare_ino, dirent_count)
[!HAVE_STRUCT_DIRENT_D_TYPE]: Mask declaration when unused.

Signed-off-by: Eric Blake <ebb9@byu.net>
2008-09-27 18:14:07 -06:00
Jim Meyering
24412edeaf rm -r: avoid O(n^2) performance for a directory with very many entries
This enhancement works around a problem that is specific to at least
ext3 and ext4 file systems.  With them, it would take hours to remove
a two-million-entry directory.  RAM-backed file systems (tmpfs) are
not affected, since there is no seek penalty.
* remove.c (rm_malloc, rm_free, compare_ino): New functions.
(dirent_count, preprocess_dir): New function.
[struct readdir_data]: New struct.
(remove_cwd_entries): Call preprocess_dir.
* tests/rm/ext3-perf: New file.  Test for the performance fix.
* NEWS: mention the new feature
2008-09-27 00:10:08 +02:00
Jim Meyering
a5111af33e remove.c: don't use xmalloc; don't let obstack call exit on failure
(obstack_chunk_alloc, obstack_chunk_free): Don't define.
(top_dir): Param is no longer "const".
Use malloc, not xmalloc, and call longjmp upon failed malloc.
(obstack_init_minimal): New function.
(ds_init): Don't use xmalloc.  Instead, use caller-supplied buffer.
Use obstack_specify_allocation_with_arg, not obstack_init, so
that we control what happens upon allocation failure.
Arrange for ds_free not to free uninitialized if/when
any obstack_specify_allocation_with_arg allocation fails.
(ds_free): Don't free DS, now that it's no longer malloc'd.
(rm): Allocate DS on the stack.
Arrange to handle ds_init allocation failure.

step1
2008-09-27 00:10:08 +02:00
Jim Meyering
1e3ebd660a * maint.mk (my-distcheck): remove duplicate c99-related test code 2008-09-27 00:10:08 +02:00
Jim Meyering
2f706199d0 maint: allow more C99 constructs; stop maintaining c99-to-c89 patch set
* cfg.mk (local-checks-to-skip): Add patch-check.
With the recent changes to remove.c, I no longer wish
to maintain the c99-to-c89 patch set.
2008-09-27 00:08:39 +02:00
Jim Meyering
e13188e7ef seq -0.1 0.1 2: print final number when locale's decimal point is ","
* src/seq.c (print_numbers): Use strtold, not c_strtold to convert
from just-formatted-using-asprintf string back to double, since
asprintf may have used something other than "." as the decimal point.
Reported by lsof@nodata.co.uk as <http://bugzilla.redhat.com/463556>.
Thanks to Ondřej Vašík for discovering that the bug was locale-related.

    $ LC_ALL=cs_CZ.UTF-8 seq -0.1 0.1 2|grep 2.0
    [Exit 1]
    $ seq -0.1 0.1 2|grep 2.0
    2.0

* tests/check.mk (TESTS_ENVIRONMENT): Add LOCALE_FR_UTF8, for...
* tests/misc/seq [locale-dec-pt]: New test for the above.
* NEWS (bug fix): Mention it.
2008-09-26 23:31:30 +02:00
Jim Meyering
2a4dcb627e maint: relax a check so "make distcheck" succeeds again
* maint.mk (makefile-check): Relax the check, in order to exempt
the necessary use of a sole @...@-delimited Makefile.am variable.
2008-09-26 23:21:25 +02:00
Jim Meyering
13a2025998 maint: avoid using find -name Makefile.am; could get false positives
* maint.mk (makefile-check): Instead, search for the offending
@...@ construct only in version-controlled files.
2008-09-24 16:25:02 +02:00
Benno Schulenberg
9a33347007 pinky: gettextize two missed strings
Additionally differentiate the strings for unknown idle time and
unknown real name so they can be translated differently.
2008-09-24 08:05:07 +02:00
Jim Meyering
e916c8ff05 cp.c: adjust a comment to make it consistent with documentation
'-a' is equivalent to -dpR, so s/-dpPR/-dpR/;  the -P is redundant,
since -d already implies -P, and both --help and "info cp" say -dpR:
Corresponding doc changes: 080ac77850
b7c2db6766.
2008-09-24 07:24:47 +02:00
Ralf Wildenhues
beaee48f26 fix installation with ./ginstall in src
* src/Makefile.am (cu_install_program): New variable, set to
either ./ginstall or @INSTALL_PROGRAM@ (for cross compilation).
(INSTALL_PROGRAM): Override AC_SUBST unconditionally, to avoid
warning, and wrong initialization order.
2008-09-22 22:42:20 +02:00
Benno Schulenberg
2643b4b77d doc: alphabetize 'who's option descriptions
* doc/coreutils.texi (who invocation): Alphabetize.
2008-09-22 10:00:20 +02:00
Benno Schulenberg
8c4a656fad who --help: add a general description 2008-09-19 12:27:37 +02:00
Benno Schulenberg
fec05eb377 uptime --help: put together message parts that belong together 2008-09-19 12:27:37 +02:00
Benno Schulenberg
6d5bf36d5c tr --help: gettextize a single paragraph as a single string
Breaking a paragraph into several strings is awkward for translators.
2008-09-19 12:27:37 +02:00
Benno Schulenberg
be11df4916 tail: gettextize the string, "standard input" 2008-09-19 12:27:37 +02:00
Benno Schulenberg
2f776f3096 tail --help: move the --retry entry into alphabetical order
* src/tail.c (usage): Also simplify --retry description, split a
long string in two, remove a stray period, and add the usual indent.
2008-09-19 12:27:37 +02:00
Benno Schulenberg
13edec7c62 shred --help: lowercase a stray capital 2008-09-19 12:27:37 +02:00
Benno Schulenberg
57622cac71 stty --help: correct the alignment of an entry
* src/stty.c (usage): Also remove a stray period, and ungettextize
a debugging message.
2008-09-19 12:27:37 +02:00
Benno Schulenberg
3b39aa796f sort --help: sort the options better alphabetically
Take the opportunity to split the long message into three parts.
2008-09-19 12:27:37 +02:00
Benno Schulenberg
a7ea04404c rmdir --help: use lower case in option description; adjust indentation 2008-09-19 12:27:37 +02:00
Benno Schulenberg
e34eb51728 remove.c: move comment to right before string, so gettext will pick it up 2008-09-19 12:27:36 +02:00
Benno Schulenberg
771484f47a pr --help: elide arguments after short options that allow a space
* src/pr.c (usage): Also, put the -S option with its description.
2008-09-19 12:27:36 +02:00
Benno Schulenberg
c7c961a3e5 od: ungettextize debugging messages 2008-09-19 12:27:36 +02:00
Benno Schulenberg
4718a2fdf4 nohup, remove, tr: also gettextize the alternative messages 2008-09-19 12:27:36 +02:00
Benno Schulenberg
2298544c64 od --help: avoid concatening two messages without a newline
src/od.c (usage): Better: make them into two separate paragraphs.
2008-09-19 12:27:36 +02:00
Benno Schulenberg
18efee4e2a mkfifo, mknod --help: put -Z option in its alphabetical position
Options are normally sorted by their short form, not their long form.
Also line up their descriptions.
2008-09-19 12:27:36 +02:00
Jim Meyering
f923ceceba doc: coreutils.texi (csplit invocation): Add an example. 2008-09-19 09:27:43 +02:00
Ralf Wildenhues
e10e4b6697 various VPATH-related fixes
* maint.mk (VC_LIST): Prepend '$(srcdir)/'.
(patch-check): Fix to make it work with a VPATH build.
* src/Makefile.am (sc_tight_scope): Likewise.
* man/Makefile.am (.x.1): Do not make outputs unwritable.
2008-09-14 17:42:48 +02:00
Jim Meyering
cddcb5d468 stat: remove obsolete and undocumented option, --filesystem
* src/stat.c: Remove obsolete and undocumented --filesystem.
2008-09-14 09:38:59 +02:00
Jim Meyering
3e8f9c8d35 tests: reenable disabled test, now that automake can handle it
This reverts the change in ae1c205fc4.
2008-09-13 15:08:16 +02:00
Jim Meyering
ae1c205fc4 tests: temporarily disable part of "make distcheck"
* maint.mk (install-transform-check): Temporarily disable.
2008-09-11 22:37:39 +02:00
Jim Meyering
2221ea2c3a tweak wording and check to avoid failure
* doc/coreutils.texi (printf invocation): Tweak wording.
* doc/Makefile.am (check-texinfo): Allow "search path".
2008-09-11 18:14:00 +02:00
Jim Meyering
a06afbeec5 doc: mention which commands may be built-in functions
* doc/coreutils.texi (mayConflictWithShellBuiltIn): New macro.
(mknod invocation, stat invocation, echo invocation)
(printf invocation, test invocation, pwd invocation)
(nice invocation, kill invocation, sleep invocation): Use it.
(printf invocation): Invoke via "env" rather than using a
literal /usr/local/bin/ prefix in examples.
2008-09-10 13:20:27 +02:00
Ralf Wildenhues
d9903062cf simplify installation rules, using new Automake
This relies on development Automake to provide multi-file
installation, and avoids relying on undocumented Automake
interfaces.  It also removes special-casing for `['.
* configure.ac (AM_INIT_AUTOMAKE): Depend on 1.10a.
(CROSS_COMPILING): New Automake conditional.
* src/Makefile.am (install-exec-am, filtered_PROGS)
(d_bindir, cu-install-binPROGRAMS): Remove.
(INSTALL_PROGRAM) [!CROSS_COMPILING]: Set to `./ginstall'.
2008-09-10 13:20:27 +02:00
Ralf Wildenhues
9dcebc51be fix minor shell issues in test suite
* tests/misc/help-version: Fix bad quoting.
* tests/cp/same-file: Fix unportable shell quoting.
* tests/mv/part-symlink: Likewise.
2008-09-10 13:20:27 +02:00
Jim Meyering
1084bf78ea tests: don't use "local" in bourne shell scripts
* tests/test-lib.sh (remove_tmp_, skip_if_mcstransd_is_running_):
Avoid failure on Solaris 11, since their /bin/sh passes the tests
in posix-shell.m4, yet does not support "local" (which is not POSIX).
2008-09-10 13:20:27 +02:00
Jim Meyering
68561594ca tests: use "Exit $fail", not (exit $fail); exit $fail
* tests/test-lib.sh (Exit): New function by Ralf Wildenhues in automake
http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=20594c08f63
* tests/**: Convert all uses:

This restrictive change converted the vast majority:

  git grep -l '^(exit \$fail); exit \$fail$' \
    | xargs perl -pi -e 's/'^\(exit \$fail\); exit \$fail$/Exit \$fail/'

And this did the rest, plus a few undesirable ones, so I manually
backed out the changes to ChangeLog-* and build-aux/check.mk:

  git grep -l -E '\(exit [^)]+\); exit ' \
    | xargs perl -pi -e 's/\(exit (.+?)\); exit \1/Exit $1/'
2008-09-10 13:20:10 +02:00
Jim Meyering
22e5102f19 tests: move input-tty into a test-lib.sh function
* tests/test-lib.sh (require_controlling_input_terminal_): New function, from
* tests/input-tty: ...here.  Remove file.
* tests/Makefile.am (EXTRA_DIST): Remove input-tty.
* tests/mv/i-3: Use the function, not the file.
* tests/misc/stty: Likewise.
* tests/misc/stty-row-col: Likewise.
* tests/misc/stty-invalid: Likewise.
2008-09-08 08:20:03 +02:00
Jim Meyering
e4fa3e7808 tests: work around Solaris 11 bug
* tests/misc/printf-surprise: Accept bogus prefix on stderr output.
2008-09-07 20:50:49 +02:00
Jim Meyering
737461d23f tests: don't let rounding-to-1KB blocks provoke a failure
* tests/df/total-awk: Use df's --block-size=512 option.
2008-09-07 20:49:34 +02:00
Jim Meyering
6b22726dd4 tests: don't fail due to built-in sleep from Solaris 11's /bin/sh
* tests/misc/help-version (id_args): Invoke via env to ensure we
run the just-built version of sleep.
2008-09-07 19:16:42 +02:00
Kamil Dudka
54281e9c60 install: new option: --strip-program,
...to specify the program used to strip binaries
* src/install.c (main): Handle new option --strip-program.
(strip): Use strip program from global variable strip_program.
(usage): Mention new option --strip-program in --help.
* tests/tests/strip-program: Test case for new option --strip-program.
* tests/Makefile.am: Add new test case to test set.
* doc/coreutils.texi: Mention new option --strip-program.
* NEWS: Mention the change.
* TODO: Remove completed task.
2008-09-06 13:38:20 +02:00
Kamil Dudka
ea2887bbe4 df: new option: --total to print grand totals
* src/df.c (add_uint_with_neg_flag): New function to add two integral
values with separate negation flag.
(show_dev): New parameter force_fsu to display numbers directly. Collect
summary statistics on each printed device.
(usage): Mention new option --total in --help.
(main): Initialize summary on program start. Handle new option --total.
* tests/df/total: Dummy test case for new --total option.
* tests/df/total-awk: Better test case for new --total option (requires
awk).
* doc/coreutils.texi: Mention new parameter --total.
* NEWS: Mention the change.
* TODO: Removed completed task.
2008-09-03 15:39:28 +02:00
Jim Meyering
ef6a361a07 TODO: add an item for a chmod optimization 2008-09-03 09:11:05 +02:00
Jerry Snitselaar
63a7120c28 env, groups: remove duplicate inclusion of <getopt.h>
* src/env.c: Remove redundant #include.
* src/groups.c: Likewise.
Tiny change.
2008-08-31 15:58:27 +02:00
Jim Meyering
5bf3e7ee96 generate version.c and version.h
* src/Makefile.am (version.c, version.h): New rules.  Generate.
(nodist_libver_a_SOURCES): Define
* .gitignore: Add src/version.c and src/version.h.
(DISTCLEANFILES): Add version.c and version.h.
2008-08-26 18:45:06 +02:00
Jim Meyering
0c1fc1c715 use new global, "Version", rather than macro, VERSION
With this change, a version-string update no longer
forces recompilation of 100+ src/*.o files.
* src/version.c (Version): New global.  New file.
* src/version.h: Declare it.
* src/Makefile.am: Put it in a library that everyone links to.
(noinst_LIBRARIES, libver_a_SOURCES): Define.
(LDADD): Add libver.a.
(sc_tight_scope): Use perl (was sed), and a more relaxed regexp
to build the global-variable-name-recognizing regexp list.
* src/system.h: Include "version.h".
(case_GETOPT_VERSION_CHAR): Use Version rather than VERSION.
* src/basename.c (main): Use Version rather than VERSION.
* src/chroot.c (main): Likewise.
* src/cksum.c (main): Likewise.
* src/dd.c (main): Likewise.
* src/dirname.c (main): Likewise.
* src/echo.c (main): Likewise.
* src/hostid.c (main): Likewise.
* src/hostname.c (main): Likewise.
* src/link.c (main): Likewise.
* src/logname.c (main): Likewise.
* src/nice.c (main): Likewise.
* src/nohup.c (main): Likewise.
* src/printenv.c (main): Likewise.
* src/printf.c (main): Likewise.
* src/pwd.c (main): Likewise.
* src/setuidgid.c (main): Likewise.
* src/sleep.c (main): Likewise.
* src/sync.c (main): Likewise.
* src/test.c (main): Likewise.
* src/timeout.c (main): Likewise.
* src/true.c (main): Likewise.
* src/tsort.c (main): Likewise.
* src/unlink.c (main): Likewise.
* src/uptime.c (main): Likewise.
* src/users.c (main): Likewise.
* src/whoami.c (main): Likewise.
* src/yes.c (main): Likewise.
2008-08-26 18:45:06 +02:00
Jim Meyering
f03a67735a bootstrap: preserve permissions of more copied files
* bootstrap (cp_mark_as_generated): Preserve perms of copied files.
Remove a kludge, now that this is fixed.
2008-08-26 18:43:52 +02:00
Bruno Haible
f325d180cf doc: clarify wc -L documentation
* doc/coreutils.texi (wc invocation): Explain what the -L option
measures.
2008-08-23 15:52:02 +02:00
Eric Blake
bfe4a55520 ls: adjust to gnulib change
* src/ls.c (includes): "strverscmp.h" no longer exists.
2008-08-20 12:43:27 +02:00
Eric Blake
8ea96a5c90 .gitignore: ignore more files
* .gitignore: Ignore directories created by gnulib.

Signed-off-by: Eric Blake <ebb9@byu.net>
2008-08-19 18:38:24 +02:00
Eric Blake
f3574102d3 .gitattributes: generalize
* .gitattributes: Relax the glob pattern, so it matches *.texinfo, too.
Suggest a POSIX BRE, rather than one that uses the GNU extension, \\+.
2008-08-19 08:56:29 +02:00
Eric Blake
edd292f8d4 sort: improve usage wording
* src/sort.c (usage): Mention that -k defaults to end of line if
POS2 omitted.
* THANKS: Update.
Reported by Tim Ryan.

Signed-off-by: Eric Blake <ebb9@byu.net>
2008-08-18 21:52:04 -06:00
Jim Meyering
929479026b adjust 2008-08-15 10:18:51 +02:00
Bruce Korb
4c9fae4e97 sort: new option, --sort=version, for version number ordering
* src/sort.c [struct keyfield] (version): New member.
(usage): Describe --version-sort.
(sort_options): Add 'V'.
(long_options): Add "version-sort".
(CHECK_TABLE, _ct_, SORT_TABLE, _st_): Define new macros.
(check_args, sort_args, sort_types): Use these new macros in declarations.
(ARGMATCH_VERIFY): Remove use.  No longer needed.
(compare_version): New function.
(key_compare): Add a case.
(check_ordering_compatibility): Handle new type.
(main): Likewise.  Reformat two expressions for readability.
* tests/misc/sort-version: new test file
* tests/Makefile.am: add it to the list
* doc/coreutils.texi (sort invocation): Document it.
* NEWS: Mention the new feature.
2008-08-15 09:52:06 +02:00
Jim Meyering
a01c4720d6 set envvars via "env" to avoid spurious set -x output from bad shells
* tests/dd/misc: Set LC_ALL=C via env.
* tests/cp/thru-dangling: Set POSIXLY_CORRECT via env.
This is necessary at least on AIX 5.3.
Reported by Jeph Cowan and Ralf Wildenhues.  Details here:
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/14235/focus=14257
2008-08-14 23:08:03 +02:00
Jim Meyering
081ebb2822 "expr --bignum 1" now fails when expr is built without libgmp
* src/expr.c (main): When --bignum is requested, yet expr was built
without libgmp, exit nonzero (3) in addition to giving a diagnostic.
2008-08-14 14:37:49 +02:00
Jim Meyering
22999697b8 mktemp, sort, tac: don't use undefined after mkstemp failure
When mkstemp fails, the template buffer may have undefined
contents, so we must not print it.
* src/sort.c (create_temp_file): Use temp_dir, not "file"
when diagnosing failed mkstemp, because "file" may be undefined.
* tests/misc/sort-merge: Adjust for new expected output.
Jeph Cowan and Ralf Wildenhues reported the test failure:
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/14235/focus=14257
* src/tac.c (copy_to_temp): Don't use template buffer after
failed mkstemp call, since its contents may be undefined.
* tests/misc/tac (pipe-bad-tmpdir): New test for the above.
* src/mktemp.c (main): Save a copy of the template string,
solely for use in case mkstemp fails.
* tests/misc/mktemp (pipe-bad-tmpdir): New test for the above.
2008-08-14 14:37:37 +02:00
Benno Schulenberg
7e0019b168 kill: micro grammar nit in description of SIGNAL 2008-08-12 20:41:25 +02:00
Benno Schulenberg
64c25ed741 groups: let synopsis show that the command allows multiple usernames
Also make the docstring say so.
2008-08-12 20:41:25 +02:00
Benno Schulenberg
d9c0881137 id: remove superfluous condition test; it is caught at -Z above 2008-08-12 20:41:25 +02:00
Benno Schulenberg
4290abda87 id: gettextize a few missed tiny strings 2008-08-12 20:41:25 +02:00
Benno Schulenberg
5a74a2d566 fmt: remove the 'no file' sentence; the standard phrase is given below
Replace the sentence with a more useful explanation of -DIGITS.
2008-08-12 20:38:37 +02:00
Benno Schulenberg
7ee3d2430a echo: correct description of \c
* src/echo.c (usage): Correct description of \c.
* coreutils.texi (echo invocation): Likewise.
* src/echo.c: Remove --help-duplicating comment.
2008-08-11 10:09:56 +02:00
Benno Schulenberg
f0f6e14610 doc: the quote operator for expr is '+', not 'quote' 2008-08-11 09:47:01 +02:00
Benno Schulenberg
e4fd2bf4e6 factor: remove duplicate docstring; use the more detailed one 2008-08-11 09:47:01 +02:00
Benno Schulenberg
18e2a330b9 echo: gettextize the alternative option description too 2008-08-11 09:47:01 +02:00
Benno Schulenberg
4ebf956b4e dd: clarify meaning of multiplication factors; put xM in order 2008-08-11 09:47:01 +02:00
Benno Schulenberg
0392142b87 doc: remove stray word from date's field width description 2008-08-11 09:47:01 +02:00
Benno Schulenberg
127c689f64 date: remove confusing and unneeded sentence from --help
It makes it unclear what 'sequences' refers to,
and the -u option already says enough.
2008-08-11 09:47:01 +02:00
Benno Schulenberg
baad54258d printenv: say what it does when variables are specified 2008-08-11 09:47:01 +02:00
Benno Schulenberg
d3ad58376d doc: put the exitstatus paragraph in a better place
* doc/coreutils.texi (tsort invocation): move two lines
2008-08-11 09:47:01 +02:00
Benno Schulenberg
a1cb30c1fb cp: move a newline to make second message identical to others 2008-08-11 09:47:00 +02:00
Benno Schulenberg
d7e2f425e7 who: Gettextize two forgotten strings 2008-08-11 09:47:00 +02:00
Jim Meyering
4b5e044be3 sort: remove unnecessary declaration of strtod
* src/sort.c (STDC_HEADERS): Remove declaration of strtod.
2008-08-10 16:49:59 +02:00
Jim Meyering
43f66923cc sort: avoid erroneous cast
* src/sort.c (OPEN_MAX): Define if not already defined.
(MAX_NMERGE): Remove definition.
(specify_nmerge): Don't cast MAX_NMERGE (of type size_t) to unsigned int.
Instead, use OPEN_MAX as the fall-back value.
2008-08-10 16:49:40 +02:00
Jim Meyering
cd1f4bc1ec sort: don't print uninitialized in diagnostic
* src/sort.c (specify_nmerge): Do use uinttostr value.
Provoke with e.g., sort -m --batch-size=18446744073709551617
Omit quotes around known-numeric value in diagnostic.
* tests/misc/sort-merge [nmerge-big]: Tighten ERR_SUBST regexp
to require a numeric value in that diagnostic, so this particular
failure cannot reappear.
2008-08-10 16:48:55 +02:00
Jim Meyering
b673a5b8ac * .gitattributes: Better diff output for texinfo sources. 2008-08-09 16:56:01 +02:00
Jim Meyering
2a2d3f237b dd.c: reduce duplication in new O_FULLBLOCK-defining code
* src/dd.c (MULTIPLE_BITS_SET): New macro, extracted from...
(multiple_bits_set): ...this function.
Use a single-line, and far simpler expression (no need to list all
O_* symbols again) to validate the derived O_FULLBLOCK value.
2008-08-09 16:56:01 +02:00
Jim Meyering
0d279d2378 * coreutils.texi (factor invocation, expr invocation): Adjust wording. 2008-08-09 16:56:01 +02:00
Jim Meyering
c339cff4a6 expr: avoid compiler warnings
* src/expr.c (die): New "noreturn" function to wrap one-arg use of
error
(string_too_long): Use die rather than error.
(toint): Remove definition of now-unused function.
(eval6): Remove a little duplication.
Use die rather than error.
(dodivide): Remove declaration of now-unused variable.
2008-08-09 16:56:01 +02:00
Jim Meyering
ae5ae5e117 * tests/misc/expr: Add tests of the new GMP-based code. 2008-08-09 16:55:45 +02:00
James Youngman
f65cafd67b expr: support arbitrary-precision arithmetic
* src/Makefile.am (expr_LDADD): Link expr against GNU MP.
* doc/coreutils.texi (expr invocation): Describe --bignum,
--no-bignum.   Explain the new arbitrary-precision functionality.
* NEWS: Indicate that arbitrary-precision arithmetic is now
supported in expr.
* src/expr.c (enum valtype): Added mp_integer, signifying a GNU MP
number.
(usage): Document the new options --bignum and --no-bignum which
force and prohibit the use of arbitrary-precision arithmetic,
respectively.
(long_options): data structure for getopt_long, which we need to
use to parse the options mentioned above.
(main): parse these options with getopt_long instead of
parse_long_options.
(valinfo): Downgrade the numeric member of the union from
intmax_t to signed long, since MP lacks functions for promoting an
intmax_t to an arbitrary-precision quantity.
(enum arithmetic_mode): Represents the current choice between
--bignum, --no-bignum and the default (automatically switch from
one to the other if needed).
(integer_overflow): issue a more explicit error message indicating
that MP is not available.
(string_too_long): new function, emits a fatal error message for
the case where an argument to the 'index' expression is too long
for a string offset to be represented.
(int_value): With --bignum, create the value as mp_integer rather
than plain integer.
(substr_value): factored out of eval6; implements "substr".
(freev): also destroy mp_integer values.  Check that no mp_integer
values exist if --no-bignum was specified.
(printv, null, tostring): support mp_integer.
(toint): new funtion for converting from string or mp_integer to
integer.
(getsize): extracts a size_t value from a VALUE object; used to
implement substr.
(promote): promotes a value from integer to mp_integer.
(domult, dodivide): functions for multiplication and division,
factored out of eval4.
(doadd): addition/subraction function, factpred out of eval3.
(eval3): support mp_integer types; call doadd.
(eval4): support mp_integer types; call domult, dodivide.
(eval6): support mp_integer offsets and lengths for "substr" and
"index".
* TODO: Mention that expr supports arbitrary-precision arithmetic,
and suggest that this might also be a good idea for seq.
* AUTHORS (expr): Add James Youngman.
2008-08-06 08:47:55 +02:00
James Youngman
d9207b48a3 doc: mv,cp: undocument the --reply option
* doc/coreutils.texi (mv invocation): Remove documentation for mv --reply.
(cp invocation): Likewise.
* NEWS: mention this.
2008-08-06 08:36:46 +02:00
James Youngman
d7f79cf6cb document the supported baud rates beyond 38400
* doc/coreutils.texi (Special):  Document the supported baud rates
beyond 38400.
2008-08-06 08:34:50 +02:00
John David Anglin
8c3835bf93 ls: ignore spurious getfilecon failure due to lack of SELinux support
* src/ls.c (gobble_file): Upon failed getfilecon, treat an errno value
of EOPNOTSUPP just like ENOTSUP.  See <http://bugs.debian.org/488549>.
2008-08-05 12:27:18 +02:00
James Youngman
273c10fc2c Document uptime.
* doc/coreutils.texi (uptime invocation): document uptime.
* TODO: uptime is documented now.
* src/uptime.c (print_uptime): Use fprintftime to print the time, rather
than printf. This should make the situation better for translations.
2008-08-05 12:21:30 +02:00
Benno Schulenberg
f4bffea5e9 doc: correct and normalize --help output of several tools
* src/chroot.c (usage): Add "[ARG]" to synopsis.
* src/cut.c (usage): Remove an inconsistent period in an option
description.
* src/du.c (usage): Remove superfluous argument after short option -X.
Also remove inconsistent uppercase and final period.
Use a single indent level for prettiness.
* src/shred.c (usage): Normalize the synopsis.
* src/stty.c (usage): Options -F and --file are alternatives, cannot
both be used.
* src/sum.c (usage): -r does not overrule -s; the last one counts.
* src/uptime.c (usage): Remove inconsistent space from the synopsis.
* src/users.c: Likewise.
2008-08-04 11:10:14 +02:00
Jim Meyering
6b9f1bdd66 false: mark "false" description for translation
* src/true.c (usage): Mark both strings with N_, so that
the one for "false" is also extracted for translation.
For consistency, mark both, although only the latter one needed it.
Inspired by a patch from Benno Schulenberg.
2008-08-04 10:28:16 +02:00
James Youngman
ffc630e598 factor: credit Torbjörn Granlund
* src/factor.c: Credit Torbjörn Granlund as the author of the
arbitrary-precision factorization code.
2008-08-04 09:11:19 +02:00
Jim Meyering
c4c3dbc024 doc: make it clear we're talking about the Linux kernel
* doc/coreutils.texi (mv invocation): tweak wording
2008-08-03 08:53:52 +02:00
Ralf Wildenhues
110df929fc tests: fix build-aux/check.mk for non-GNU make
* build-aux/check.mk ($(TEST_LOGS)) [!GNU_MAKE]: Check for
a $(TESTS) test in the build dir, before one in srcdir.  For details,
see <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/14198>.
2008-08-02 13:57:17 +02:00
Ralf Wildenhues
e3b5543ea8 * bootstrap: Fix unportable expr usage. 2008-08-02 10:49:35 +02:00
Kamil Dudka
84f6abfe00 ls: --color now highlights files with capabilities, too
* src/ls.c: [HAVE_CAP] Include <sys/capability.h>.
(has_capability): New function for capability detection.
(print_color_indicator): Colorize file with capability.
* m4/jm-macro.m4: New configure option: --disable-libcap.
Check for libcap usability.
* src/Makefile.am (dir_LDADD, ls_LDADD, ...): Append $(LIB_CAP).
* src/dircolors.c: Update color lists.
* src/dircolors.hin: Mention new CAPABILITY color attribute.
* tests/ls/capability: Test for ls - colorize file with capability.
* tests/Makefile.am (root_tests): Add ls/capability.
* NEWS: Mention the change.
2008-08-01 22:13:25 +02:00
James Youngman
00c6aacf31 factor arbitrarily large numbers
* m4/gmp.m4: New file; adds cu_GMP, which detects GNU MP.
* configure.ac: Use cu_GMP.
* src/Makefile.am: Link factor against libgmp if available.
* src/factor.c: Use GNU MP if it is available.
(emit_factor, emit_ul_factor, factor_using_division,
factor_using_pollard_rho, extract_factors_multi,
sort_and_print_factors, free_factors): new functions
for the arbitrary-precision implementation, taken from an example
in GNU MP.
(factor_wheel): Renamed; was called factor.
(print_factors_single): Renamed; was called print_factors.
(print_factors): New function, chooses between the single- and
arbitrary-precision algorithms according to availability of GNU MP
and the length of the number to be factored.
(usage, main): New options --bignum and --no-bignum.
* coreutils.texi (factor invocation): Document new command-line
options for the MP implementation and update the performance
numbers to take into account the asymptotically faster algorithm.
* TODO: Remove item about factoring large primes (it's done).
* m4/gmp.m4: Add support for --without-gmp.
* NEWS: Mention the new feature.
2008-08-01 11:15:05 +02:00
Kamil Dudka
8d974b00fb ls -U1 now uses constant memory
When printing one name per line and not sorting, ls now uses
constant memory per directory, no matter how many files are in
the directory.
* ls.c (print_dir): Print each file name immediately, when possible.
* NEWS: Mention the improvement.
2008-08-01 08:36:38 +02:00
Jim Meyering
b44f5f74aa * timeout.c: Fix grammar in a comment. Normalize comment syntax. 2008-07-30 15:42:52 +02:00
Jim Meyering
662ce25d83 bootstrap: work also when there are no .po files in po/
* bootstrap (update_po_files): Complete the change that I began
in 7ba2dd8082.
2008-07-28 20:36:52 +02:00
Jim Meyering
0d75784da0 * NEWS: Move shuf --zero-terminated item into bug-fixes section. 2008-07-27 22:21:14 +02:00
Mikael Magnusson
cbdcc9fb4e shuf: correctly document --head-count
* src/shuf.c (usage): Correct --help output.
* doc/coreutils.texi: Correct option listing.
* NEWS: Mention correction.
2008-07-27 22:18:06 +02:00
Jim Meyering
bee58d8a04 shuf: honor --zero-terminated option even with --input-range=LO-HI
* src/shuf.c (write_permuted_output): Add EOLBYTE parameter and use
it rather than hard-coding "\n".
(main): Adjust sole caller.
* tests/misc/shuf: Add a test to exercise this bug fix.
* NEWS: Mention it.
2008-07-27 15:25:27 +02:00
Jim Meyering
e535754fdb dd: minor fullblock changes
* src/dd.c (O_FULLBLOCK): Define using an enum, not #define.
Derive the value, rather than hard-coding to one that might conflict.
(usage): Mention iflag=fullblock in --help output.
(scanargs): Reset the O_FULLBLOCK bit, so that we don't try to set
an undefined attribute via fcntl (fd, F_SETFL, ...
* tests/dd/misc: Signal framework_failure when necessary.
Use "compare actual expected", so any diffs look "right".
* NEWS (dd): Alphabetize and reword.
* coreutils.texi (dd invocation): Adjust wording.
2008-07-23 15:55:45 +02:00
Kamil Dudka
f674a10f7e dd: new option: iflag=fullblock to accumulate full input blocks
* src/dd.c (iread_fullblock): New function for reading full blocks.
(scanargs): Check for new parameter iflag=fullblock.
(skip): Use iread_fnc pointer instead of iread function.
(dd_copy): Use iread_fnc pointer instead of iread function.
* tests/dd/misc: Add test for dd - read full blocks.
* doc/coretuils.texi: Mention new parameter iflag=fullblock.
* NEWS: Mentioned the change.
2008-07-23 15:55:45 +02:00
Jim Meyering
4fff95cfe1 dd: adjust --help output so help2man formats the man page properly
* src/dd.c (usage): Use two spaces (not one) to separate
"directory" from its description, so help2man formats
the derived man page properly.
2008-07-23 15:50:40 +02:00
Reuben Thomas
77d97a1be4 doc: add example .bashrc code for a ~/.dircolors file
* coreutils.texi: Add tip for .bashrc use from Jim Meyering.
2008-07-23 09:11:53 +02:00
Jim Meyering
f82c5ba71e tests: do not run chmod on a prefix of space-embedded tmpdir
* TESTS/test-lib.sh (remove_tmp_): New function.
(trap 0): Use it instead of open-coded (and misquoted) version.
2008-07-22 13:15:02 +02:00
Jim Meyering
9bb0d5766e tests: ensure "make check" w/tainted build dir no longer impacts $HOME
* maint.mk (taint-distcheck): New rule.
(maintainer-distcheck): Make it.
2008-07-22 13:15:02 +02:00
Ralf Wildenhues
1ee81530c0 tests: again, do not change the mode of all directories below $HOME
* tests/CuTmpdir.pm (chmod_tree): Do not run chmod on undefined
argument, can happen when the build path contains spaces.
2008-07-22 13:15:02 +02:00
Jim Meyering
ecb0ea20ca * THANKS: Update, now that I have a name for jemm4jemm. 2008-07-19 15:42:49 +02:00
Andreas Schwab
9a221e27f5 mknod: correct misplaced -Z description in --help output
* src/mknod.c (usage): Put it after the "Mandatory arguments..." line.
2008-07-18 17:51:58 +02:00
Jim Meyering
4e6af68846 dircolors.hin: add Ogg/Theora-related extensions
* dircolors.hin: Add extensions from
http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
Suggestion from jemm4jemm@yahoo.com.
2008-07-16 15:29:11 +02:00
Jim Meyering
186b45aaed * HACKING: describe how to find a misplaced change-set 2008-07-16 15:29:04 +02:00
Jim Meyering
773be9eca8 fix two bugs in ptx
* src/ptx.c (fix_output_parameters): Don't let before_max_width
go negative -- that would cause an infloop in define_all_fields.
(main): Don't clobber name[0] with lists of two or more input files.
* tests/misc/ptx: New file.  Test for the above.
* tests/Makefile.am (TESTS): Add misc/ptx.
2008-07-15 08:30:38 +02:00
Pádraig Brady
8461d49df0 tests: expand: test for lines starting with both spaces and tabs
The expand released in current distributions (Fedora Core 4 - Fedora 9
at least), doesn't expand --initial tabs if spaces are present.

tests/misc/expand: Add test to verify --initial works correctly
with lines starting with both spaces and tabs.
2008-07-11 14:03:23 +02:00
Jim Meyering
b1a1fcbf57 make check: accommodate stricter POSIX-conforming shells
Without this, test-related variable settings were not exported to
the shell_or_perl_ function when using dash or Solaris 11's /bin/sh.
* tests/check.mk (TESTS_ENVIRONMENT): Use an explicit "export",
so as not to rely on non-POSIX behavior of some /bin/sh (e.g.,
bash-based ones).
2008-07-10 08:41:28 +02:00
Jim Meyering
0fb0a03c5c * bootstrap: Remove $bt and $bt2 also when not using gettext. 2008-07-06 23:15:23 +02:00
Jim Meyering
63467fa187 who -r: don't print "last=" when the corresponding byte is unprintable
* src/who.c (print_runlevel): Print last=%c only when the "preceding
run-level" byte is printable.  Reported by Gian Piero De Lolliis in
<http://bugzilla.redhat.com/453249>.
2008-07-04 16:34:39 +02:00
Ondřej Vašík
5483165b12 doc: describe who's -p, -r, and -t options
* doc/coreutils.texi (who invocation):
2008-07-04 16:03:50 +02:00
Jim Meyering
9a4e22d036 install with just-built ./ginstall only when not cross-compiling
* src/Makefile.am (install-exec-am): ...otherwise, use the default
value, $(INSTALL_PROGRAM).  Reported by Brian Silverman.
2008-07-04 09:46:31 +02:00
Jim Meyering
bba4d3e054 * README-hacking: Update the section on LZMA. 2008-07-04 09:46:31 +02:00
Pádraig Brady
760bc6f7e7 truncate: ignore whitespace in --size parameters
Without this, `truncate -s '> -1' F` would truncate F to length 0,
and `truncate -s " +1" F` would truncate F to 1 byte.  Now, each
elicits a diagnostic.
* src/truncate.c: Skip leading white space in the --size option
argument and any white space after one of the relative modifiers,
so that the presence of a +/- modifier can be detected reliably.
* tests/misc/truncate-parameters: Add tests for the above.
2008-06-30 10:23:17 +02:00
Jim Meyering
9396eb9037 doc: add "..." to Usage, to indicate there may be multiple OPTIONs
* src/base64.c (usage): Likewise.
* src/cat.c (usage): Likewise.
* src/md5sum.c (usage): Likewise.
* src/mkdir.c (usage): Likewise.
* src/mkfifo.c (usage): Likewise.
* src/split.c (usage): Likewise.
* src/stat.c (usage): Likewise.
Heiko Marr reported the problem with mkdir.
2008-06-28 10:03:27 +02:00
Jim Meyering
8da8dfc470 mkfifo: correct misplaced -Z description in --help output
* src/mkfifo.c (usage): Put it *after* the "Mandatory arguments..." line.
2008-06-28 09:48:11 +02:00
Jim Meyering
1d9b3de948 uniq: remove redundant test
* src/uniq.c (find_field): Remove redundant test in outer loop-
termination expression. Also, add a "const" attribute.
2008-06-28 00:12:40 +02:00
Pádraig Brady
f38003890b timeout: fix invalid argument tests
* tests/misc/timeout-parameters: Remove test for invalid
signal number (we don't know what signal numbers are
invalid on all systems). Also tweak the other invalid
signal check so that the rest of the arguments are correct.
2008-06-27 17:46:52 +02:00
Jim Meyering
5b610a06b2 avoid a -Wsign-compare warning
* src/tee.c (tee_files): Swap fwrite's size/n_elem args and
compare the return value against "1".
2008-06-27 16:34:00 +02:00
Jim Meyering
5cc42f7de6 base64: don't rely on feof returning 0/1
* src/base64.c (do_decode): feof is specified to return nonzero,
not 0/1, so use "k < 1 + !!feof(in)" as the loop termination test.
2008-06-27 16:26:05 +02:00
Pádraig Brady
0a98d79bd2 truncate: silence -Wsign-compare warnings
* src/truncate.c: Cast signed to unsigned to
confirm intent which will silence -Wsign-compare warnings
2008-06-27 16:02:54 +02:00
Jim Meyering
a676856285 factor out time_t-to-string conversion idiom
* src/system.h: Include "inttostr.h".
(timetostr): New function, factored out of...
* src/date.c (show_date): Use timetostr.
* src/du.c (show_date): Likewise.
* src/ls.c (print_long_format): Likewise.
* src/pinky.c (time_string): Likewise.
* src/stat.c (human_time): Likewise.
* src/*.c: Don't include inttostr.h, since system.h does.
* src/c99-to-c89.diff: Adjust offsets.
2008-06-27 10:54:23 +02:00
Pádraig Brady
e2dbcee444 truncate: Fix integer portability issues
* src/truncate.c: Explicitly convert from off_t to intmax_t
when printing numbers as they may be different types.
Also don't mix size_t and off_t types in operations as
the latter will be promoted to unsigned when these types
are the same size.
2008-06-27 08:11:21 +02:00
Jim Meyering
8ce745dc61 tests: adjust c99-to-c89 patch as well as the code to generate it
* maint.mk (patch-check) [REGEN_PATCH]: Trim some trailing blanks.
* src/c99-to-c89.diff: Adjust shred.c offsets.
2008-06-26 23:31:05 +02:00
Jim Meyering
1fcd8cf8b4 tests: fix make distcheck failure due to TODO change
* maint.mk (po-check): Limit check for e.g., _(...)-marked
messages to files matching *.? and *.??, thus excluding TODO
and *.diff.
2008-06-26 22:45:57 +02:00
Jim Meyering
595fc63c42 * TODO: Add item: remove uses of imaxtostr. 2008-06-26 21:16:17 +02:00
Peter O'Gorman
58b2e1204a tests: accommodate difference in an AIX 5.3 diagnostic
* tests/mkdir/selinux: Handle different strerror (ENOTSUP) spelling.
2008-06-26 21:08:22 +02:00
Jim Meyering
27311c9e85 shred: also ignore EISDIR upon failed fsync/fdatasync on HP-UX
* src/shred.c (ignorable_sync_errno): New function.
(dosync): Use it.
Based on a patch from Peter O'Gorman.
2008-06-26 21:08:22 +02:00
Jim Meyering
556fbb5721 * HACKING: use shorter "-1" (over HEAD~1) with git format-patch 2008-06-26 21:08:22 +02:00
Jim Meyering
b1a1c9ee06 bootstrap.conf: don't list "open" specifically
It is no longer necessary to list it specifically,
now that several gnulib modules depend on the "open" module.
This reverts commit 3ea1fe588e.
2008-06-26 08:01:26 +02:00
Jim Meyering
3d309aa725 truncate: handle the case in which off_t != intmax_t
* src/truncate.c (parse_len): Use a temporary of type intmax_t,
rather than off_t; detect out of range [OFF_T_MIN..OFF_T_MAX].
(main) [IF_LINT]: Initialize, to avoid an unwarranted
"may be used uninitialized" warning.
Reported by Michael Geng.

Signed-off-by: Pádraig Brady <P@draigBrady.com>
2008-06-26 07:48:25 +02:00
Jim Meyering
4f4700cca8 basename: List David MacKenzie as the author.
* src/basename.c (AUTHORS): List David as the author.
* AUTHORS: Update here, too.
2008-06-23 14:54:33 +02:00
Ondřej Vašík
2e6fa14d16 echo: use AUTHORS from bash's built-in echo
* AUTHORS,src/echo.c: Use bash builtin echo authors instead of FIXME unknown
2008-06-23 14:46:05 +02:00
Jim Meyering
3ea1fe588e use gnulib's "open" module
* bootstrap.conf (gnulib_modules): Add open.
This is required at least for Solaris 9 and HP-UX 11, to
avoid a truncate test failure.  For details, see this thread:
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13755
2008-06-22 18:57:39 +02:00
Jim Meyering
574f761403 stat: warn that the --context (-Z) option (a no-op) is obsolete
* src/stat.c (main): It will be removed in a couple years.
* NEWS (Change in behavior): Mention this.
2008-06-22 12:27:49 +02:00
Jim Meyering
c1aabf84e6 make "make syntax-check" quieter
* maint.mk (po-check, makefile-check, sc_proper_name_utf8_requires_ICONV):
Add "@" prefix.
2008-06-20 11:30:34 +02:00
Bo Borgerson
02bfd65480 sort: Fix bug where --batch-size option shrank SORT_SIZE.
* src/sort.c (specify_nmerge, main): Only adjust SORT_SIZE if it's already set.
* tests/misc/sort-merge: Test bug fix.
2008-06-20 08:47:28 +02:00
Jim Meyering
2c88abe2a2 tests: avoid test failure when root's primary group-ID is not 0
* tests/cp/preserve-gid: Expect a cp-without-`-p'-created file to
have a group ID of $(id -g).  Reported by Jarod Wilson.  Details in
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13803/focus=13837
2008-06-19 09:20:31 +02:00
Jim Meyering
7d10e30088 tests: avoid root-only test failure when run in a chroot
* tests/misc/runcon-no-reorder: Accept the diagnostic that is
produced when running in a chroot without /selinux/context.
Reported by Jarod Wilson.  Details in
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13803/focus=13837
2008-06-19 09:20:31 +02:00
Jim Meyering
61f94d4dbc * tests/check.mk: Fix a typo in a comment. 2008-06-18 10:01:54 +02:00
Jim Meyering
a087f17a44 doc: fix a syntax error
* coreutils.texi (du invocation): Add missing comma.
2008-06-17 23:34:47 +02:00
Bo Borgerson
20905b0cdc sort: accept new option --batch-size=NMERGE
* src/sort.c: (static unsigned int nmerge) Replace constant NMERGE.
(specify_nmerge) Validate and apply new option.
(mergefps) Replace some arrays with pointers to xnmalloc'd storage.
* tests/misc/sort-merge: Test new option.
* doc/coreutils.texi: Describe new option.
* NEWS: Advertise new option.
2008-06-17 22:36:51 +02:00
Bo Borgerson
322c6f2e5c sort: add new option --files0-from=F
* src/sort.c: Support new option.
* tests/misc/sort-files0-from: Test new option.
* tests/misc/Makefile.am: Indicate new test.
* docs/coreutils.texi: Explain new option.
* NEWS: Advertise new option.

Signed-off-by: Bo Borgerson <gigabo@gmail.com>
2008-06-17 08:50:41 +02:00
Bo Borgerson
3435bb7f40 HACKING: Add section for tips on reducing translator workload.
* HACKING (Be nice to translators): New section.
Add Jim's suggestion to avoid changing translatable strings if possible.
2008-06-17 08:29:23 +02:00
Jim Meyering
96ae7199c4 * THANKS: Add name and email for Carl Roth. 2008-06-17 08:18:49 +02:00
Eric Blake
a7a328af0f ls, od: avoid redundant const
* src/ls.c (long_time_format, sort_functions): Avoid redundant const.
* src/od.c (charname): Likewise.
* maint.mk (sc_redundant_const): Add rule to detect this.
2008-06-17 08:17:14 +02:00
Bo Borgerson
94cecb5cf6 join: improve memory management
* src/join.c (struct seq): Use a (struct line **) for `lines' rather than
one long (struct line *).  This allows individual lines to be swapped out
if necessary.
(reset_line): Get a line ready for new input.
(init_linep): Create a new line and assign it to the the pointer passed in.
(spareline[2]): Hold a spare line for each input file.
(free_spareline): Clean up.
(get_line): Take a (struct line **) instead of a (struct line *).  If the
line to be overwritten is the previous line for the current file then swap
it out for the spare.
(join): Accomodate new structure of SEQs and new parameters to get_line;
Don't free stale lines until the end -- they're re-usable now.
(dup_line): Remove function.
* NEWS: Mention the performance improvement.
2008-06-17 00:52:30 +02:00
Ralf Wildenhues
58db1bb942 * doc/coreutils.texi (join invocation): Drop leading blanks. 2008-06-16 19:58:53 +02:00
Jim Meyering
45e67188d6 remove redundant const directives
In 1463824d8e, I added some
missing "const" directives, as well as some new, redundant ones.
This removes the redundant ones.  Pointed out by Eric Blake.
* base64.c, cat.c, chcon.c, chgrp.c, chmod.c, chown.c, comm.c:
* cp.c, csplit.c, cut.c, date.c, dd.c, df.c, dircolors.c, du.c:
* env.c, expand.c, fmt.c, fold.c, groups.c, head.c, id.c:
* install.c, join.c, kill.c, ln.c, ls.c, md5sum.c, mkdir.c:
* mkfifo.c, mknod.c, mktemp.c, mv.c, nice.c, nl.c, od.c:
* paste.c, pathchk.c, pinky.c, pr.c, ptx.c, readlink.c, rm.c:
* rmdir.c, runcon.c, seq.c, shred.c, shuf.c, sort.c, split.c:
* stat.c, stty.c, su.c, sum.c, tac.c, tail.c, tee.c, timeout.c:
* touch.c, tr.c, truncate.c, tty.c, uname.c, unexpand.c, uniq.c:
* wc.c, who.c: Remove redundant const directives.
* maint.mk (sc_const_long_option): Don't require redundant "const".
2008-06-16 16:40:59 +02:00
Jim Meyering
3de1559830 chcon: correct --verbose output to include newlines
* src/chcon.c (process_file): Append "\n" to --verbose diagnostic.
* tests/misc/chcon: Add a test for the above.
* NEWS: mention the bug fix
Reported by Carl D. Roth in http://bugzilla.redhat.com/451478.
2008-06-16 13:42:01 +02:00
Jim Meyering
956abf969c address root cause of compilation failures:
The affected code wasn't even being compiled on my system,
because HAVE_NL_LANGINFO was not defined.  On other systems, where
vasnprintf.m4 determines it needs %A or %a replacement support, it
_would_ check for nl_langinfo, and expose the compilation failure.
* m4/jm-macros.m4: Check for nl_langinfo, required by sort.c.
2008-06-15 18:57:13 +02:00
Jim Meyering
b1db942595 fix the compilation failure for real
* src/sort.c (monthtab): Neither "const" may be added.
2008-06-15 18:52:27 +02:00
Jim Meyering
2cbbbf6319 fix a const-related compilation failure in sort.c
* src/sort.c (monthtab): Remove overzealous "const".
Table entries are modified in an #if HAVE_NL_LANGINFO block.
Introduced by 1463824d8e.
2008-06-15 16:28:48 +02:00
Jim Meyering
837bb31803 update HACKING guidelines
* HACKING: Don't suggest --signoff; it's redundant.
(log requirements): Specify preferred forms.
Mention preference for "<" over ">".
Mention the "const placement" preference.
2008-06-15 16:01:29 +02:00
Jim Meyering
44530f2ddd run gnulib-tests in parallel
* tests/Makefile.am: Define AUTOMAKE_OPTIONS, so check.mk can append.
* tests/check.mk: Define SUFFIXES, so check.mk can append.
* build-aux/check.mk (SUFFIXES): Append, so as not to evoke
automake warning the prior definition in gnulib-tests/gnulib.mk.
(AUTOMAKE_OPTIONS): Likewise.
* gnulib-tests/Makefile.am (TEST_LOGS): Define.
Include build-aux/check.mk
2008-06-14 22:35:02 +02:00
Jim Meyering
9823682c2f * maint.mk (sc_proper_name_utf8_requires_ICONV) Fix typo in diagnostic. 2008-06-14 22:26:29 +02:00
Jim Meyering
1463824d8e add "const" attribute, where possible
* maint.mk (sc_const_long_option): New rule.  Enforce global change.
* src/base64.c (long_options): Use "const" where possible.
* src/cat.c (main): Likewise.
* src/chcon.c (long_options): Likewise.
* src/chgrp.c (long_options): Likewise.
* src/chmod.c (long_options): Likewise.
* src/chown.c (long_options): Likewise.
* src/comm.c (long_options, OUTPUT_DELIMITER_OPTION): Likewise.
* src/cp.c (long_opts): Likewise.
* src/csplit.c (longopts): Likewise.
* src/cut.c (longopts): Likewise.
* src/date.c (long_options): Likewise.
* src/dd.c (conversions, flags, statuses): Likewise.
* src/df.c (long_options): Likewise.
* src/dircolors.c (long_options): Likewise.
* src/du.c (long_options): Likewise.
* src/env.c (longopts): Likewise.
* src/expand.c (longopts): Likewise.
* src/fmt.c (long_options): Likewise.
* src/fold.c (longopts): Likewise.
* src/groups.c (longopts): Likewise.
* src/head.c (long_options): Likewise.
* src/id.c (longopts): Likewise.
* src/install.c (long_options): Likewise.
* src/join.c (longopts): Likewise.
* src/kill.c (long_options): Likewise.
* src/ln.c (long_options): Likewise.
* src/ls.c (long_time_format, long_options, sort_functions): Likewise.
* src/md5sum.c (long_options): Likewise.
* src/mkdir.c (longopts): Likewise.
* src/mkfifo.c (longopts): Likewise.
* src/mknod.c (longopts): Likewise.
* src/mktemp.c (longopts): Likewise.
* src/mv.c (long_options): Likewise.
* src/nice.c (longopts): Likewise.
* src/nl.c (longopts): Likewise.
* src/od.c (charname, long_options): Likewise.
* src/paste.c (longopts): Likewise.
* src/pathchk.c (longopts): Likewise.
* src/pinky.c (longopts): Likewise.
* src/pr.c (long_options): Likewise.
* src/ptx.c (long_options): Likewise.
* src/readlink.c (longopts): Likewise.
* src/rm.c (long_opts): Likewise.
* src/rmdir.c (longopts): Likewise.
* src/runcon.c (long_options): Likewise.
* src/seq.c (long_options): Likewise.
* src/shred.c (long_opts): Likewise.
* src/shuf.c (long_opts): Likewise.
* src/sort.c (monthtab, long_options): Likewise.
* src/split.c (longopts): Likewise.
* src/stat.c (long_options): Likewise.
* src/stty.c (mode_info, control_info, longopts, set_mode) Likewise.
(set_control_char, speeds): Likewise.
* src/su.c (longopts): Likewise.
* src/sum.c (longopts): Likewise.
* src/tac.c (longopts): Likewise.
* src/tail.c (long_options): Likewise.
* src/tee.c (long_options): Likewise.
* src/timeout.c (long_options): Likewise.
* src/touch.c (longopts): Likewise.
* src/tr.c (long_options): Likewise.
* src/truncate.c (longopts): Likewise.
* src/tty.c (longopts): Likewise.
* src/uname.c (uname_long_options, arch_long_options): Likewise.
* src/unexpand.c (longopts): Likewise.
* src/uniq.c (longopts): Likewise.
* src/wc.c (longopts): Likewise.
* src/who.c (longopts): Likewise.
2008-06-14 22:24:28 +02:00
Jim Meyering
d42994df5d revert previous change, "don't use "const" with scalar types"
* src/truncate.c: There is nothing wrong with that construct.
This reverts commit d7d80c5b7b.
2008-06-14 11:04:41 +02:00
Jim Meyering
d7d80c5b7b don't use "const" with scalar types
* src/truncate.c: Several vendor compilers reject that.
See http://article.gmane.org/gmane.comp.lib.gnulib.bugs/13876
2008-06-14 09:47:44 +02:00
Eric Blake
20c0b8701f od: improve handling of padding
* src/od.c (decode_one_format): Alter the format, again.
(FMT_BYTES_ALLOCATED): Reduce size by adjusting to new format.
(MAX_INTEGRAL_TYPE_SIZE): Move earlier in the file.
(charname): Turn it into a 2D array, since there's no need for
pointers now.
(PRINT_TYPE, print_named_ascii, print_ascii): Add a width
parameter.
(write_block): Account for width parameter.
Using ideas from Paul Eggert.
2008-06-13 23:07:58 +02:00
Eric Blake
46a811b9e7 od: align multiple -t specs
* src/od.c (struct tspec): Add pad_width field, and adjust
print_function prototype.
(decode_one_format): Rewrite all fmt_string values to account for
pad width.
(FMT_BYTES_ALLOCATED): Adjust to new format style.
(main): Compute pad width per spec.
(write_block): Account for pad width.
(dump): Don't print padding-only fields.
(PRINT_TYPE, print_named_ascii, print_ascii): All print functions
adjusted to use variable pad width.
* tests/Makefile.am (TESTS): Add test.
* tests/misc/od-multiple-t: New file.
* THANKS: Update.
* NEWS: Mention the improvement.
Reported by Gary Johnson.
2008-06-13 23:06:03 +02:00
Eric Blake
bbbc35c9ed od: use gnulib printf replacement as necessary
* src/od.c (includes): Add xprintf.h.
(PRINT_TYPE): New macro, using xprintf instead of printf.
(print_s_char, print_char, print_s_short, print_short, print_int)
(print_long, print_long_long, print_float, print_double)
(print_long_double): Factor into PRINT_TYPE macro.
(print_named_ascii, print_ascii): Use xprintf.
* NEWS: Mention this as a bug fix.
2008-06-13 23:00:04 +02:00
Eric Blake
c49b2e32bb od: simplify long double support
* m4/jm-macros.m4 (gl_CHECK_ALL_TYPES): Remove obsolete check for
AC_C_LONG_DOUBLE.
* src/od.c (LONG_DOUBLE): Delete.
(width_bytes, MAX_FP_TYPE_SIZE, decode_one_format, main): Just use
'long double' directly.
(print_long_double): No longer protect by HAVE_LONG_DOUBLE.
2008-06-13 22:46:50 +02:00
Eric Blake
b83c498809 doc: od defaults to -toS, not -td2
* src/od.c (usage): Correct description of default.
2008-06-13 22:46:50 +02:00
Jim Meyering
6c79825ce9 skip (don't fail) root-only tests for common set-up failures
Address 2 of 4 failures reported by Jarod Wilson in
http://bugzilla.redhat.com/442352.  More details here:
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13803
* tests/cp/cp-a-selinux: Skip the test if "mkfs -t ext2" fails.
* tests/rm/fail-2eperm: Skip the test if "rm" is not accessible.
2008-06-13 22:45:50 +02:00
Jim Meyering
3808eccbbf tweak to conform with syntax policy
Use "<" or "<=" rather than ">" or ">=".
Use "Type const *", rather than "const Type *".
2008-06-12 21:38:17 +02:00
Bo Borgerson
81d0c8f367 comm: accept new option: --output-delimiter=STR
* src/comm.c (delimiter): New global.
(writeline): Use delimiter string instead of single TAB character.
(main): Initialize delimiter.
* tests/misc/comm: Add tests for comm output delimiter specification.
* doc/coreutils.texi: Document new option.
* NEWS: Advertise new option.
* TODO: Remove associated item.
2008-06-12 21:03:05 +02:00
Bo Borgerson
98a96822d9 comm: ensure that input files are sorted
* NEWS: List new behavior.
* doc/coreutils.texi (checkOrderOption) New macro for
describing `--check-order' and `--nocheck-order', used in
both join and comm.
* src/comm.c (main): Initialize new options.
(usage): Describe new options.
(compare_files): Keep an extra pair of buffers for the previous
line from each file to check the internal order.
(check_order): If an order-check is required, compare and handle
the result appropriately.
(copylinebuffer): Copy a linebuffer; used for copy before read.
* tests/misc/Makefile.am: List new test.
* tests/misc/comm: Tests for the comm program, including the
new order-checking functionality and attendant command-line options.
2008-06-12 19:38:43 +02:00
Jim Meyering
5f47278372 fix another unportable use of 'tr'
* configure.ac [EXTRA_PROGRAMS]: Add omitted space in tr's STRING2.
Spotted by Denis Excoffier, upon Solaris 8 build failure.
2008-06-11 14:18:36 +02:00
Jim Meyering
47ed009e57 tests: skip a chown test on FreeBSD 6.x
* tests/chown/separator: Skip this test if is likely to fail
due to the combination of a bogus group name and a broken
getgrnam function.
2008-06-11 11:52:03 +02:00
Jim Meyering
394f88c4aa tests: remove duplicate mention of misc/selinux
* tests/Makefile.am (TESTS): Remove misc/selinux, since it's
already listed in $(root_tests).
2008-06-11 11:02:32 +02:00
Bruno Haible
8253a9aeb4 fix build failure on AIX 4
* configure.ac: Fix unportable invocation of 'tr', introduced on
2008-04-22.  Affects tr from at least AIX 4.3.2.
2008-06-11 08:09:46 +02:00
Pádraig Brady
a16bee4f07 remove test for specific diagnostic when truncating missing directory
Solaris 10 returns ENOTDIR when truncating a nonexistent directory,
whereas Linux returns EISDIR (because it has a trailing /).
* tests/misc/truncate-fail-diag: Remove the test for the specific error.
2008-06-10 08:32:52 +02:00
Pádraig Brady
e63c9825da timeout: use system-independent exit values
Change exit values from ETIMEDOUT and ECANCELED,
the values of which are system dependent, to
124 and 125 respectively.
* src/timeout.c (EXIT_TIMEDOUT, EXIT_CANCELED): Define.
(usage, main): Adjust.
* coreutils.texi (timeout invocation): Update.
* tests/misc/timeout: Adjust.
2008-06-10 08:27:52 +02:00
Jim Meyering
263bb1be67 enforce the proper_name_utf8-requires-ICONV link rule
* maint.mk (sc_proper_name_utf8_requires_ICONV): New rule.
* src/Makefile.am (timeout_LDADD, truncate_LDADD): Add $(LIBICONV).
2008-06-09 10:54:57 +02:00
Bruno Haible
23c2a0cbac * NEWS (Improvements): Mention improved (via gnulib) ACL support. 2008-06-09 09:11:04 +02:00
Jim Meyering
252d6d01c9 maint.mk: my-distcheck runs $(MAKE) syntax-check once again
* maint.mk (my-distcheck): Run $(MAKE) syntax-check once again.
Run "$(MAKE) check" _after_ the less expensive syntax-check.
2008-06-08 12:33:28 +02:00
Bo Borgerson
6eec737ade standardize some error messages
* maint.mk: (sc_error_message_warn_fatal, sc_error_message_uppercase):
(sc_error_message_period): Add automatic checks for non-standard error
messages.
* .x-sc_error_message_uppercase: explicit exclusion for this check
* src/cp.c: Standardize some error messages.
* src/date.c: Likewise.
* src/dircolors.c: Likewise.
* src/du.c: Likewise.
* src/expr.c: Likewise.
* src/install.c: Likewise.
* src/join.c: Likewise.
* src/ln.c: Likewise.
* src/mv.c: Likewise.
* src/od.c: Likewise.
* src/pr.c: Likewise.
* src/split.c: Likewise.
* src/truncate.c: Likewise.
* src/wc.c: Likewise.
* tests/du/files0-from: Expect new error message.
* tests/misc/join: Likewise.
* tests/misc/split-a: Likewise.
* tests/misc/wc-files0-from: Likewise.
* tests/misc/xstrtol: Likewise.
* lib/xmemxfrm.c: Likewise.
2008-06-08 12:11:47 +02:00
Jim Meyering
68158e6b10 syntax-check: detect anachronistic Perl-based tests
* maint.mk (sc_no_exec_perl_coreutils): Rename and rewrite.
2008-06-08 10:30:50 +02:00
Pádraig Brady
75e0047c4b Add new program: truncate
* AUTHORS: Register as the author
* NEWS: Mention this change
* README: Add truncate command to list
* src/truncate.c: New command
* src/Makefile.am: Add truncate command to list to build
* src/.gitignore: Add truncate binary to list to ignore
* doc/coreutils.texi (truncate invocation): Add truncate info
* man/Makefile.am: Add truncate man page to list to build
* man/truncate.x: Add truncate man page template
* po/POTFILES.in: Add truncate to list to translate
* tests/Makefile.am: Add truncate tests
* tests/misc/help-version: Add support for new truncate command
* tests/misc/truncate-dangling-symlink: check dangling link ok
* tests/misc/truncate-dir-fail: ensure dirs fail
* tests/misc/truncate-fail-diag: validate messages for missing paths
* tests/misc/truncate-fifo: ensure fifos ignored
* tests/misc/truncate-no-create-missing: ensure -c option honoured
* tests/misc/truncate-overflow: check signed integer overflows
* tests/misc/truncate-owned-by-other: root permissions check
* tests/misc/truncate-parameters: check invalid parameter combinations
* tests/misc/truncate-relative: check invalid relative sizes
2008-06-06 14:16:45 +02:00
Eric Blake
74c0bfbc4c improve 'date +%C' documentation
* src/date.c (usage): Use 20, not 21, for current century.
* THANKS: Update.
Reported by Dameon G. Rogers, fix suggested by Philip Rowlands.

Signed-off-by: Eric Blake <ebb9@byu.net>
2008-06-06 08:22:02 +02:00
Jim Meyering
80213bc66d nice.c: avoid a cast
* src/nice.c (main): Use argv[0], rather than
"program_name with a cast".  Suggestion from Eric Blake.
2008-06-03 13:58:07 +02:00
Jim Meyering
4b92612944 adjust c99-to-c89 patch as well as the code to generate it
* maint.mk (patch-check) [REGEN_PATCH]: Eliminate date-related
differences in generated diffs.
* src/c99-to-c89.diff: Adjust offsets.
2008-06-03 10:33:17 +02:00
Jim Meyering
896b672499 use gnulib's progname module
* bootstrap.conf (gnulib_modules): Add progname.
* src/*.c (program_name): Remove declaration.
* (main): Call set_program_name rather than setting program_name.
* src/nice.c (main): Cast program_name to "(char *)".
* src/prog-fprintf.c: Include "system.h"
* src/system.h: Include "progname.h".
* maint.mk (sc_program_name): Adjust rule.
Suggestion from Eric Blake.
2008-06-03 09:15:00 +02:00
Jim Meyering
1b0b6c8d08 remove duplicate definition of matchpathcon_init_prefix
* gl/lib/se-selinux.in.h (matchpathcon_init_prefix): Remove definition.
It is already defined there.  Reported by Eric Blake.
2008-06-03 07:44:09 +02:00
Jim Meyering
cc4bdb92f9 fix cpp indentation policy violations
* src/copy.c (mkfifo): Indent nested "# define".
* src/timeout.c (ECANCELED): Likewise.
2008-06-02 21:47:19 +02:00
Jim Meyering
0647f3eb5a accommodate older SELinux which lacks matchpathcon_init_prefix
* m4/jm-macros.m4: Check for matchpathcon_init_prefix.
* src/install.c [!HAVE_MATCHPATHCON_INIT_PREFIX]
(matchpathcon_init_prefix): Define away.
* gl/lib/se-selinux.in.h (matchpathcon_init_prefix): Define.
Reported by Ilya N. Golubev in
<http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13686>.
2008-06-02 21:34:40 +02:00
Jim Meyering
77b1bfc85c each file with a "main" must also declare program_name
* maint.mk (sc_program_name): New rule.
* .x-sc_program_name: New file.
* Makefile.am (EXTRA_DIST): Add .x-sc_program_name.
2008-06-02 18:50:00 +02:00
Jim Meyering
434258ca73 declare program_name consistently
* src/base64.c: Likewise.
* src/basename.c: Likewise.
* src/cat.c: Likewise.
* src/chcon.c: Likewise.
* src/chgrp.c: Likewise.
* src/chmod.c: Likewise.
* src/chown.c: Likewise.
* src/chroot.c: Likewise.
* src/cksum.c: Likewise.
* src/comm.c: Likewise.
* src/cp.c: Likewise.
* src/csplit.c: Likewise.
* src/cut.c: Likewise.
* src/date.c: Likewise.
* src/dd.c: Likewise.
* src/df.c: Likewise.
* src/dircolors.c: Likewise.
* src/dirname.c: Likewise.
* src/du.c: Likewise.
* src/echo.c: Likewise.
* src/env.c: Likewise.
* src/expand.c: Likewise.
* src/expr.c: Likewise.
* src/factor.c: Likewise.
* src/fmt.c: Likewise.
* src/fold.c: Likewise.
* src/groups.c: Likewise.
* src/head.c: Likewise.
* src/hostid.c: Likewise.
* src/hostname.c: Likewise.
* src/id.c: Likewise.
* src/install.c: Likewise.
* src/join.c: Likewise.
* src/kill.c: Likewise.
* src/link.c: Likewise.
* src/ln.c: Likewise.
* src/logname.c: Likewise.
* src/ls.c: Likewise.
* src/md5sum.c: Likewise.
* src/mkdir.c: Likewise.
* src/mkfifo.c: Likewise.
* src/mknod.c: Likewise.
* src/mktemp.c: Likewise.
* src/mv.c: Likewise.
* src/nice.c: Likewise.
* src/nl.c: Likewise.
* src/nohup.c: Likewise.
* src/od.c: Likewise.
* src/paste.c: Likewise.
* src/pathchk.c: Likewise.
* src/pinky.c: Likewise.
* src/pr.c: Likewise.
* src/printenv.c: Likewise.
* src/printf.c: Likewise.
* src/ptx.c: Likewise.
* src/pwd.c: Likewise.
* src/readlink.c: Likewise.
* src/rm.c: Likewise.
* src/rmdir.c: Likewise.
* src/runcon.c: Likewise.
* src/seq.c: Likewise.
* src/setuidgid.c: Likewise.
* src/shuf.c: Likewise.
* src/sleep.c: Likewise.
* src/sort.c: Likewise.
* src/split.c: Likewise.
* src/stat.c: Likewise.
* src/stty.c: Likewise.
* src/su.c: Likewise.
* src/sum.c: Likewise.
* src/sync.c: Likewise.
* src/tac.c: Likewise.
* src/tail.c: Likewise.
* src/tee.c: Likewise.
* src/test.c: Likewise.
* src/timeout.c: Likewise.
* src/touch.c: Likewise.
* src/tr.c: Likewise.
* src/true.c: Likewise.
* src/tsort.c: Likewise.
* src/tty.c: Likewise.
* src/uname.c: Likewise.
* src/unexpand.c: Likewise.
* src/uniq.c: Likewise.
* src/unlink.c: Likewise.
* src/uptime.c: Likewise.
* src/users.c: Likewise.
* src/wc.c: Likewise.
* src/who.c: Likewise.
* src/whoami.c: Likewise.
* src/yes.c: Likewise.
2008-06-02 17:47:32 +02:00
Eric Blake
eebe731014 export program_name, required by gnulib
* src/timeout.c (program_name): Export.
2008-06-02 16:04:50 +02:00
Jim Meyering
91c1384602 revert inadvertent change in last patch
* configure.ac (AM_INIT_AUTOMAKE): Restore accidentally-modified
options.  Spotted by Eric Blake.
2008-06-02 15:07:37 +02:00
Pádraig Brady
265c4b83a8 new program: timeout
* AUTHORS: Register as the author.
* NEWS: Mention this change.
* README: Add timeout command to list.
* src/timeout.c: New file.
* src/kill.c (operand2sig): Move function to its own file,
now that timeout.c will also use it.
* src/operand2sig.c (operand2sig): New file, extracted from kill.c.
* src/operand2sig.h (operand2sig): Declare.
* src/Makefile.am (EXTRA_PROGRAMS): Add timeout.
* src/.gitignore: Add timeout binary to list to ignore.
* doc/coreutils.texi (timeout invocation): Add timeout info.
(Signal specifications): New section, also referenced by kill.
* man/Makefile.am (timeout.1): Add dependency.
* man/timeout.x: New file.
* po/POTFILES.in: Add timeout.c and operand2sig.c to list to translate.
* tests/Makefile.am (TESTS): Add the two new tests.
* tests/misc/help-version: Add support for new timeout command.
* tests/misc/invalid-opt: Add support for new timeout command.
* tests/misc/timeout: New file: check basic timeout operation.
* tests/misc/timeout-parameters: New file: check invalid parameter
combinations.
2008-06-02 14:40:26 +02:00
Jim Meyering
4a510cd399 spell author names consistently
* src/comm.c (AUTHORS): Use RMS' middle initial.
* src/ls.c (AUTHORS): Likewise.
* src/rm.c (AUTHORS): Likewise.
* src/uniq.c (AUTHORS): Likewise.
* src/cut.c (AUTHORS): Use David M. Ihnat's middle initial.
* AUTHORS: Update to match.
Reported by Michael Piefel.
2008-06-02 14:12:59 +02:00
Simon Josefsson
ecb67c8389 doc: adjust base64 documentation
* coreutils.texi (base64 invocation): Use RFC 4648 as the specification.
Move the URL down a bit in the text.
2008-06-01 18:02:32 +02:00
Erik Auerswald
86535835fe md5sum: new option, --quiet, to suppress OK messages
sha1sum, sha224sum, sha384sum, and sha512sum accept it, too.
* src/md5sum.c: add option --quiet to suppress OK messages
* doc/coreutils.texi: document option --quiet
* tests/misc/md5sum: add test for option --quiet
* NEWS: mention new option --quiet for md5sum+sha*sum in "New
  features" section
2008-06-01 16:55:11 +02:00
Jim Meyering
01e6181965 add rules to commit three post-release changes automatically
* maint.mk (noteworthy): Define.
(emit-commit-log): Define.
(alpha beta major): Also update NEWS and cfg.mk automatically,
and commit all three changes at once.
2008-06-01 14:48:07 +02:00
Jim Meyering
8a4192d3c0 update old_NEWS_hash
* cfg.mk (old_NEWS_hash): Update by running "make update-NEWS-hash".
Reported by Erik Auerswald.
2008-06-01 14:44:50 +02:00
Simon Josefsson
423f28be77 src/base64.c: Improve comments. 2008-06-01 13:25:57 +02:00
Jim Meyering
dd3612a12b * NEWS: add header line for next release 2008-06-01 11:00:51 +02:00
Jim Meyering
3cafcf8584 adjust format of .prev-version commit message
* maint.mk (alpha beta major): Start with "*", omit version number.
2008-06-01 10:39:13 +02:00
Jim Meyering
4db4c2aa6d * .prev-version: Record previous version. 2008-06-01 10:11:01 +02:00
Jim Meyering
d81d2e0ba6 Version 6.12.
* NEWS: Record release date.
2008-05-31 23:20:56 +02:00
Jim Meyering
eba365275b install: reenable matchpathcon-related code
The underlying performance problem is being dealt with in Automake
by limiting the number of install invocations, and in SELinux with
incremental changes as well as a potential new implementation.
* src/Makefile.am (ginstall_CPPFLAGS) [ENABLE_MATCHPATHCON]: Define.
* src/install.c [ENABLE_WHEN_MATCHPATHCON_IS_MORE_EFFICIENT]:
Rename to ENABLE_MATCHPATHCON.
* NEWS: mention this change
2008-05-31 22:42:20 +02:00
Jim Meyering
eb4b2d462e configure.ac: remove explicit use of AB_INIT
* configure.ac: Don't invoke AB_INIT directly, now that it's
done automatically via gl_INIT.
2008-05-30 14:14:43 +02:00
Jim Meyering
72df741618 tests: ignore known failure on all Darwin 8.x / Mac OS X v10.4.x
* tests/chgrp/basic: Update comment and host_triplet version test.
2008-05-30 10:45:45 +02:00
Jim Meyering
fc6827e2bb tests: avoid failure with older version of Perl's File::Temp
* tests/CuTmpdir.pm (import): Use &File::Temp::cleanup only
if it is defined.  Reported by Bruno Haible in
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13652
2008-05-30 09:45:53 +02:00
Jim Meyering
6c9b505329 NEWS: mention that cp -p copies permissions more portably
Based on wording suggested by Bruno Haible.
2008-05-30 09:08:51 +02:00
Jim Meyering
9f678af5f3 improve description of du's--separate-dirs option
* coreutils.texi (du invocation): Prompted by Volker Badziong's
report in http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13646
2008-05-29 21:32:40 +02:00
Jim Meyering
8581bcc9e3 du.c: tiny cleanup (no semantic change)
* src/du.c (process_file): Use "file", rather than
equivalent "ent->fts_path".
2008-05-29 18:01:05 +02:00
Jim Meyering
00a3098235 in 280+ tests/* files, use $srcdir, not $top_srcdir/tests 2008-05-27 13:48:32 +02:00
Jim Meyering
c6c9e8730e prefer abs_srcdir over abs_top_srcdir, ...
so that e.g., tests/* may refer to absolute names without
hard-coding the name of the containing directory (tests/, here).
* tests/check.mk (TESTS_ENVIRONMENT): Define abs_srcdir.
* tests/pr/pr-tests: Use $abs_srcdir/pr not $abs_top_srcdir/tests/pr.
* tests/chmod/c-option: Use $abs_srcdir, not $abs_top_srcdir/tests.
* tests/cp/cp-parents: Likewise.
* tests/mkdir/parents: Likewise.
* tests/mkdir/perm: Likewise.
* tests/mv/acl: Likewise.
* tests/mv/backup-is-src: Likewise.
* tests/mv/hard-link-1: Likewise.
* tests/mv/into-self-2: Likewise.
* tests/mv/leak-fd: Likewise.
* tests/mv/mv-special-1: Likewise.
* tests/mv/part-fail: Likewise.
* tests/mv/part-hardlink: Likewise.
* tests/mv/part-rename: Likewise.
* tests/mv/part-symlink: Likewise.
* tests/mv/partition-perm: Likewise.
* tests/mv/sticky-to-xpart: Likewise.
* tests/mv/to-symlink: Likewise.
* tests/rm/one-file-system: Likewise.
* tests/sample-test: Likewise.
2008-05-27 13:30:44 +02:00
Jim Meyering
8976a2b27e tests: generalize my-distcheck
* maint.mk (my-distcheck): Accommodate missing gnulib-tests.
2008-05-27 12:29:57 +02:00
Jim Meyering
87386cc8a9 reflect renaming of acl.c in gnulib
* POTFILES.in: s/acl.c/set-mode-acl.c/
2008-05-26 19:42:24 +02:00
Jim Meyering
545a116748 test installation results more thoroughly
* maint.mk (my-distcheck): Ensure that properly-named binaries
are installed.  Also check all man pages, except [.1.
Move configure-time --prefix= to install-time prefix=.
(my-instcheck, install-transform-check): Define.
2008-05-26 14:34:17 +02:00
Jim Meyering
9d59509937 install many binaries at once, when possible
* src/Makefile.am (install-exec-am): Override the standard
automake-generated target, so we can decide whether to use
the usual install-one-by-one rule, or whether we can use
the new install-many-at-once rule:
(cu-install-binPROGRAMS): New rule.
2008-05-26 12:10:21 +02:00
Jim Meyering
26552f2756 * src/runcon.c: Add copyright comment. 2008-05-26 08:40:33 +02:00
Jim Meyering
86837548f1 adjust AUTHORS and check-AUTHORS rule to accommodate
* AUTHORS: Add coding: utf-8 comment at end.
Spell François' and Torbjörn's names properly.
* src/Makefile.am: Parse AUTHORS file more carefully.
Use perl to join now-split lines.
Use en_US.UTF-8 to generate --version output.
2008-05-26 08:40:33 +02:00
Jim Meyering
199d850038 * src/c99-to-c89.diff: Adjust offsets. 2008-05-26 08:40:33 +02:00
Jim Meyering
581b2e3cee adjust copyright dates 2008-05-26 08:40:33 +02:00
Jim Meyering
d8382a4d26 convert the rest to use proper_name -- manually
* src/base64.c (AUTHORS): Rename from AUTHOR, for consistency.
2008-05-26 08:40:33 +02:00
Jim Meyering
74a106985a convert 3-author programs to use proper_name
g grep -E -l 'define AUTHORS "[^,]+", "[^,]+", "[^,]+"$'|xargs perl -pi -e \
  's/(define AUTHORS) ("[^,]+"), ("[^,]+"), ("[^,]+")$/$1 \\\n  proper_name ($2), \\\n  proper_name ($3), \\\n  proper_name ($4)/'
2008-05-26 08:40:33 +02:00
Jim Meyering
be2abe31fd convert 2-author programs to use proper_name
g grep -E -l 'define AUTHORS "[^,]+", "[^,]+"$'|xargs perl -pi -e \
  's/(define AUTHORS) ("[^,]+"), ("[^,]+")$/$1 \\\n  proper_name ($2), \\\n  proper_name ($3)/'
2008-05-26 08:40:33 +02:00
Jim Meyering
b69b4cca95 convert single-author programs to use proper_name
g grep -E -l 'define AUTHORS "[^,]+"$'|xargs perl -pi -e \
  's/(define AUTHORS) ("[^,]+")$/$1 proper_name ($2)/'
2008-05-26 08:40:32 +02:00
Jim Meyering
7855cbfcac use gnulib's proper_name_utf8 function, but *not* proper_name
* bootstrap.conf (gnulib_modules): Add propername.
(XGETTEXT_OPTIONS): Add options to tell xgettext about the functions.
* src/cat.c, src/cp.c, src/df.c, src/du.c, src/split.c:
Mark Torbjörn Granlund's name.
* src/ptx.c: Mark François Pinard's name.
Use "TRANSLATORS:" comment marker, rather than "Note to translators:".
* src/system.h: Include propername.h.
(proper_name): Define away.
* src/Makefile.am (cat_LDADD, df_LDADD, du_LDADD, ptx_LDADD, split_LDADD):
Initialize, so we can...
(cat_LDADD, cp_LDADD, df_LDADD, du_LDADD, ptx_LDADD, split_LDADD):
...Use "+=" to append $(LIBICONV) for each program that uses
proper_name_utf8.
2008-05-26 08:37:08 +02:00
Jim Meyering
29290d0485 * POTFILES.in: Add lib/copy-acl.c.
Signed-off-by: Jim Meyering <meyering@redhat.com>
2008-05-24 09:29:33 +02:00
Jim Meyering
3ceabe1bfc install: avoid a leak in currently-ifdef'd-out code
* src/install.c (setdefaultfilecon)
[ENABLE_WHEN_MATCHPATHCON_IS_MORE_EFFICIENT]:
Call matchpathcon_init_prefix only once.
Suggestion from Stephen Smalley.  Reported by Ben Webb in
<http://bugzilla.redhat.com/447410>.
2008-05-20 21:35:40 +02:00
Jim Meyering
5e6a1837ea use gnulib's base64 module, now that it's sync'd to match this one
* gl/lib/base64.c: Remove file.
* gl/lib/base64.h: Remove file.
2008-05-19 19:50:34 +02:00
Pádraig Brady
76367f06b3 doc: clarify field delimiter description in uniq --help output
* src/uniq.c: Clarify in help output that field delimiters are
blanks and not the larger set of whitespace characters.
2008-05-19 13:47:14 +02:00
Jim Meyering
c4a9551eee tests: skip when a debian libc6-2.7-11 bug makes printf segfault
* tests/misc/printf-surprise: Detect case of a low-memory-provoked
segfault and skip the test (this is actually a bug in snprintf).
For details, see http://bugs.debian.org/481543
2008-05-17 08:29:00 +02:00
Jim Meyering
9300779cc8 tests: sync and update wc and du --files0-from tests
* tests/du/files0-from: Sync from tests/misc/wc-files0-from.
(minus-in-minus): New test.
Adjust for new diagnostics.
* tests/misc/wc-files0-from: Adjust for new diagnostics.
2008-05-17 08:29:00 +02:00
Jim Meyering
878e51ebfa du, wc: merge improved --files0-from=F-related diagnostics
du gave a better diagnostic for one unusual case,
and wc gave a better diagnostic for a different one.
Now each diagnoses both unusual cases.
* src/du.c (main): Disallow '-' as file name when reading from stdin.
* src/wc.c (main): Give a better diagnostic for a zero-length file name.
2008-05-17 08:28:59 +02:00
Jim Meyering
51243cdaca test invalid-option handling in all programs
* tests/Makefile.am (TESTS): Add misc/invalid-opt.
* tests/misc/invalid-opt: New file.
2008-05-17 08:28:59 +02:00
Jim Meyering
1081bbc74e tests: remove ugly /bin/sh wrapper around each perl-based test script
* tests/check.mk (TESTS_ENVIRONMENT): Save and restore TMPDIR around
envvar-check, so that the few scripts that require $TMPDIR don't fail.
This is also good to let a user's default TMPDIR setting be used e.g.,
in the search for an 'other-partition'.
FIXME: this is pretty ugly.  maybe undo it and find a better way.
(TESTS_ENVIRONMENT): Invoke perl scripts with $(PERL), and use -T
if the script requires that.  Otherwise, use $(SHELL).

* tests/misc/md5sum-newline: Create a file whose name contains
a newline in Perl (resort to using "system", since open refuses).

Fix old brokenness exposed by this change:
* tests/du/files0-from: Correct test not to rely on stdin
being attached to a non-tty.
* tests/misc/sort (3g, 3h, 3i): Likewise: add explicit empty input file.
Avoid warnings about using qw()-around-commas.

* tests/rm/fail-eperm: Now that this test is run from a temporary
subdirectory, adjust the full name of the "rm" program we're going
to run.

Change #!/bin/sh to #!/usr/bin/perl, and factor out the few lines
of boilerplate code to invoke perl.  Do not "require 5.00x";
a configure-time Perl test handles that
* tests/dd/skip-seek:
* tests/misc/base64:
* tests/misc/basename:
* tests/misc/cut:
* tests/misc/date:
* tests/misc/dircolors:
* tests/misc/dirname:
* tests/misc/expand:
* tests/misc/expr:
* tests/misc/factor:
* tests/misc/fmt:
* tests/misc/fold:
* tests/misc/head:
* tests/misc/head-elide-tail:
* tests/misc/join:
* tests/misc/ls-misc:
* tests/misc/md5sum:
* tests/misc/md5sum-newline:
* tests/misc/mktemp:
* tests/misc/od:
* tests/misc/paste:
* tests/misc/pr:
* tests/misc/printf-cov:
* tests/misc/seq:
* tests/misc/sha1sum:
* tests/misc/sha1sum-vec:
* tests/misc/sha224sum:
* tests/misc/sha256sum:
* tests/misc/sha384sum:
* tests/misc/sha512sum:
* tests/misc/sort-merge:
* tests/misc/stat-printf:
* tests/misc/sum:
* tests/misc/tac:
* tests/misc/tail:
* tests/misc/test:
* tests/misc/test-diag:
* tests/misc/tr:
* tests/misc/tsort:
* tests/misc/tty-eof:
* tests/misc/unexpand:
* tests/misc/uniq:
* tests/misc/wc:
* tests/misc/wc-files0-from:
* tests/misc/xstrtol:
* tests/mv/i-1:
* tests/pr/pr-tests:
* tests/rm/empty-name:
* tests/rm/fail-eperm:
* tests/rm/unreadable:
2008-05-17 08:27:58 +02:00
Jim Meyering
ea54b6f47c tests: allow to run Perl tests more cleanly
Before this change, perl tests were run via a #!/bin/sh script
in which perl was invoked via $(PERL) ... -- - <<\EOF.
That made some stty tests fail due to the way stdin was usurped.
* build-aux/check.mk (am__check_pre): Don't append $(SHELL) to this
nominally automake-internal variable.
* tests/check.mk (TESTS_ENVIRONMENT): Instead, define a shell function
here, and append it to the more user-visible $(TESTS_ENVIRONMENT).
2008-05-16 10:10:34 +02:00
Jim Meyering
4a4fe636dc tests: env-related clean up
* tests/Coreutils.pm: tiny clean-up: s/env/env --/
* tests/misc/help-version: Use "env" rather than an absolute file
name prefix.
* tests/misc/printf-surprise: Likewise.
2008-05-16 10:10:34 +02:00
Jim Meyering
c6a3937288 tests: improve coverage of printf.c
* tests/misc/printf-cov: New file.
* tests/Makefile.am (TESTS): Add misc/printf-cov.
* tests/misc/help-version: Use env rather than abs file name prefix.
2008-05-16 10:10:34 +02:00
Jim Meyering
0bf3eb3682 make HACKING slightly more generic
* HACKING: remove some uses of "coreutils"
Point to git's own SubmittingPatches URL.
2008-05-16 10:08:56 +02:00
Bruno Haible
513a235858 doc: some Unicode characters cannot be specified via \u or \U
* doc/coreutils.texi (printf invocation): Clarify invalid ranges for
Unicode character escape syntax.
2008-05-15 09:33:33 +02:00
Jim Meyering
433881d802 move sha256 and sha512 modules to gnulib
* bootstrap.conf (gnulib_modules) [sha256, sha512]: Add "crypto/"
prefix to module name, now that they come from gnulib.
* gl/lib/sha256.c: Remove file.
* gl/lib/sha256.h: Likewise.
* gl/lib/sha512.c: Likewise.
* gl/lib/sha512.h: Likewise.
* gl/lib/u64.h: Likewise.
* gl/m4/sha256.m4: Likewise.
* gl/m4/sha512.m4: Likewise.
* gl/modules/sha256: Likewise.
* gl/modules/sha512: Likewise.
2008-05-11 09:00:59 +02:00
Jim Meyering
295d47736a now that the last of the mk-script-using tests is gone...
* tests/Makefile.am (EXTRA_DIST): Remove Makefile.am.in and mk-script.
Move/adjust SUBDIRS-related comments.
* tests/Makefile.am.in: Remove file, no longer used.
* tests/mk-script: Likewise.
* bootstrap: Remove coreutils-specific SUBDIRS-related code.
2008-05-10 13:35:30 +02:00
Jim Meyering
346dd8b5bf tests: remove directory, tests/join/
* configure.ac (AC_CONFIG_FILES): Remove tests/join/Makefile.
* tests/misc/join: New file, with tests from...
* tests/join/Test.pm: ...here.  Remove file.
* tests/Makefile.am (SUBDIRS): Remove definition.
2008-05-10 13:35:30 +02:00
Jim Meyering
65d65fe094 * tests/misc/tac: Also perform stdin and piped tests. 2008-05-10 13:35:29 +02:00
Jim Meyering
a59258fbc7 tests: convert pr tests
* configure.ac (AC_CONFIG_FILES): Remove tests/pr/Makefile.
* tests/Makefile.am (SUBDIRS): Remove pr.
* tests/pr/pr-tests: New file, with tests from...
* tests/pr/Test.pm: ...here.  Remove file.
* tests/Makefile.am (EXTRA_DIST): Add $(pr_data).
(pr_data): List all of the pr's test-related data files.
2008-05-10 13:35:29 +02:00
Jim Meyering
b347377bd3 tests: remove directory, tests/tail/
* configure.ac (AC_CONFIG_FILES): Remove tests/tail/Makefile.
* tests/Makefile.am (SUBDIRS): Remove tail.
* tests/misc/tail: New file, with tests from...
* tests/tail/Test.pm: ...here.  Remove file.
2008-05-10 10:11:45 +02:00
Bernhard Marx
0fe9fc4558 doc: improve description of "niceness" values
* doc/coreutils.texi (nice invocation):
2008-05-09 08:50:46 +02:00
Jim Meyering
15b0d75930 tests: remove directory, tests/sort/
* configure.ac (AC_CONFIG_FILES): Remove tests/sort/Makefile.
* tests/Makefile.am (SUBDIRS): Remove sort.
* tests/misc/sort: New file, with tests from...
* tests/sort/Test.pm: ...here.  Remove file.
2008-05-09 08:11:12 +02:00
Bruno Haible
f0ad302ca9 Speed up "wc -m" and "wc -w" in multibyte case.
* src/wc.c: Include mbchar.h.
(wc): New variable in_shift. Use it to avoid calling mbrtowc for most
ASCII characters.  Reported via Jan Engelhardt in
http://bugzilla.novell.com/381873 with discussion here
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13520
2008-05-08 23:21:04 +02:00
Jim Meyering
28c9d4ecff tests: remove directory, tests/tac/
* configure.ac (AC_CONFIG_FILES): Remove tests/tac/Makefile.
* tests/Makefile.am (SUBDIRS): Remove tac.
* tests/misc/tac: Many new tests, from...
* tests/tac/Test.pm: ...here.  Remove file.
2008-05-08 10:33:15 +02:00
Jim Meyering
ce7b12ef1b tests: remove directory, tests/test/
* configure.ac (AC_CONFIG_FILES): Remove tests/test/Makefile.
* tests/Makefile.am (SUBDIRS): Remove test.
* tests/misc/test: Many new tests, from...
* tests/test/Test.pm: ...here.  Remove file.
2008-05-08 09:12:53 +02:00
Jim Meyering
7fcb73cec0 tests: Coreutils.pm: support running a program that is a shell built-in
* tests/Coreutils.pm (run_tests): Add support for running a
program like 'test', that is a shell built-in.
2008-05-08 09:12:43 +02:00
Jim Meyering
6a9c6804dd * TODO: Bo Borgerson is rewriting support for cp --recursive 2008-05-06 14:29:57 +02:00
Jim Meyering
7c9c6c7875 tests: remove directory, tests/tr/
* configure.ac (AC_CONFIG_FILES): Remove tests/tr/Makefile.
* tests/Makefile.am (SUBDIRS): Remove tr.
* tests/misc/tr: Many new tests, from...
* tests/tr/Test.pm: ...here.  Remove file.
* tests/tr/failures: Remove file.
* tests/tr/TODO: Remove file.
2008-05-06 11:00:29 +02:00
Jim Meyering
d3dc29c0be tests: skip another test if mcstransd is running
* tests/test-lib.sh (skip_if_mcstransd_is_running_): New function,
extracted from...
* tests/misc/chcon: ...here.  Use function, not open-coded test.
* tests/misc/selinux: Use the function here, too.
Require root, not non-root.
* tests/Makefile.am (root_tests): Add misc/selinux.
2008-05-06 08:21:30 +02:00
Jim Meyering
6ec3a4f033 tests: translate uniq-z-test-adding code to new framework
* tests/misc/uniq (add-z-variants): New function.
Use it.
2008-05-06 08:21:30 +02:00
Jim Meyering
7cc3733f29 tests: remove directory, tests/uniq/
* configure.ac (AC_CONFIG_FILES): Remove tests/uniq/Makefile.
* tests/Makefile.am (SUBDIRS): Remove uniq.
* tests/misc/uniq: Many new tests, from...
* tests/uniq/Test.pm: ...here.  Remove file.
2008-05-06 08:21:30 +02:00
Jim Meyering
e98006dde0 tests: remove directory, tests/cut/
* configure.ac (AC_CONFIG_FILES): Remove tests/cut/Makefile.
* tests/Makefile.am (SUBDIRS): Remove cut.
* tests/misc/cut: Many new tests, from...
* tests/cut/Test.pm: ...here.  Remove file.
2008-05-06 08:21:30 +02:00
Jim Meyering
bc2b9e04e9 tests: remove directory, tests/head/
* configure.ac (AC_CONFIG_FILES): Remove tests/head/Makefile.
* tests/Makefile.am (SUBDIRS): Remove head.
* tests/misc/head: New file, derived from ...
* tests/head/Test.pm: ...this.  Remove file.
* tests/head/in: Remove file.
* tests/head/in-1024: Remove file.
* tests/Coreutils.pm (triple_test): New function.
2008-05-06 08:21:30 +02:00
Jim Meyering
5ad6145142 tests: Coreutils.pm improvements
* tests/Coreutils.pm: Allow test names longer than 12.
Print a useful diagnostic for bogus spec entry.

Handle the combination of IN_PIPE and ENV properly.
* tests/Coreutils.pm (run_tests): Put ENV right before command,
not before the "cat INPUT_FILE |" prefix.
2008-05-06 08:21:30 +02:00
Jim Meyering
2656da4705 tests: move "sparse-file" into test-lib.sh
* tests/sparse-file: Remove file  Move contents into ...
* tests/test-lib.sh (require_sparse_support_): ...here.  New function.
* tests/cp/sparse: Use the function, not the file.
* tests/du/8gb: Likewise.
* tests/Makefile.am (EXTRA_DIST): Remove sparse-file.
2008-05-06 08:21:30 +02:00
Jim Meyering
3269104d17 tests: move "group-names" into test-lib.sh
* tests/group-names: Remove file  Move contents into ...
* tests/test-lib.sh (require_membership_in_two_groups_): ...here.  New function.
* tests/chgrp/basic: Use the function, not the file.
* tests/chgrp/default-no-deref: Likewise.
* tests/chgrp/deref: Likewise.
* tests/chgrp/no-x: Likewise.
* tests/chgrp/posix-H: Likewise.
* tests/chgrp/recurse: Likewise.
* tests/cp/existing-perm-race: Likewise.
* tests/Makefile.am (EXTRA_DIST): Remove group-names.
2008-05-06 08:21:30 +02:00
Jim Meyering
f15e62d12e tests: use printf+sed rather than yes+head+tr
* tests/misc/fmt-long-line: Minor clean-up.
Using "yes" like that has caused trouble in the past.
2008-05-06 08:21:30 +02:00
Jim Meyering
32b84c9c90 tests: save and restore TERM around use of TESTS_ENVIRONMENT,
now that TESTS_ENVIRONMENT unsets it.
* check.mk (am__check_pre): Save $TERM.
(am__check_post): Restore saved value of TERM and export.
2008-05-06 08:21:30 +02:00
Jim Meyering
1f3e964802 tests: hoist the sourcing of "lang-default"
* tests/check.mk (TESTS_ENVIRONMENT): Source lang-default here, ...
... rather than in each of 100+ test scripts.
* tests/chgrp/basic:
* tests/chgrp/no-x:
* tests/chmod/c-option:
* tests/chmod/no-x:
* tests/chmod/setgid:
* tests/chmod/thru-dangling:
* tests/chmod/umask-x:
* tests/chmod/usage:
* tests/chown/basic:
* tests/chown/deref:
* tests/chown/preserve-root:
* tests/cp/abuse:
* tests/cp/acl:
* tests/cp/backup-is-src:
* tests/cp/cp-a-selinux:
* tests/cp/cp-i:
* tests/cp/cp-mv-backup:
* tests/cp/deref-slink:
* tests/cp/fail-perm:
* tests/cp/into-self:
* tests/cp/link-preserve:
* tests/cp/preserve-gid:
* tests/cp/same-file:
* tests/cp/slink-2-slink:
* tests/cp/special-f:
* tests/cp/symlink-slash:
* tests/cp/thru-dangling:
* tests/du/basic:
* tests/du/hard-link:
* tests/du/inacc-dest:
* tests/du/long-sloop:
* tests/du/no-x:
* tests/install/basic-1:
* tests/ln/hard-backup:
* tests/ln/sf-1:
* tests/ls/file-type:
* tests/ls/infloop:
* tests/ls/nameless-uid:
* tests/ls/rt-1:
* tests/ls/stat-failed:
* tests/ls/symlink-slash:
* tests/ls/x-option:
* tests/misc/chcon:
* tests/misc/chcon-fail:
* tests/misc/csplit:
* tests/misc/df-P:
* tests/misc/groups-dash:
* tests/misc/groups-version:
* tests/misc/nohup:
* tests/misc/printf-surprise:
* tests/misc/runcon-no-reorder:
* tests/misc/selinux:
* tests/misc/split-a:
* tests/misc/split-fail:
* tests/misc/tac-continue:
* tests/misc/wc-files0:
* tests/mkdir/p-v:
* tests/mkdir/selinux:
* tests/mv/acl:
* tests/mv/backup-dir:
* tests/mv/backup-is-src:
* tests/mv/childproof:
* tests/mv/diag:
* tests/mv/dir2dir:
* tests/mv/dup-source:
* tests/mv/force:
* tests/mv/hard-link-1:
* tests/mv/hard-verbose:
* tests/mv/i-2:
* tests/mv/i-3:
* tests/mv/i-4:
* tests/mv/i-5:
* tests/mv/i-link-no:
* tests/mv/into-self:
* tests/mv/into-self-2:
* tests/mv/into-self-3:
* tests/mv/mv-special-1:
* tests/mv/part-fail:
* tests/mv/part-symlink:
* tests/mv/partition-perm:
* tests/mv/perm-1:
* tests/mv/reply-no:
* tests/mv/sticky-to-xpart:
* tests/mv/update:
* tests/rm/cycle:
* tests/rm/dir-no-w:
* tests/rm/dir-nonrecur:
* tests/rm/fail-2eperm:
* tests/rm/fail-eacces:
* tests/rm/inaccessible:
* tests/rm/interactive-always:
* tests/rm/interactive-once:
* tests/rm/isatty:
* tests/rm/one-file-system:
* tests/rm/r-1:
* tests/rm/r-2:
* tests/rm/rm1:
* tests/rm/rm2:
* tests/rm/rm3:
* tests/rm/rm4:
* tests/rm/rm5:
* tests/rm/unread2:
* tests/rm/v-slash:
* tests/touch/fail-diag:
* tests/touch/not-owner:
2008-05-06 08:21:29 +02:00
Jim Meyering
62ebe4dabd tests: hoist envvar-check so it is run for every test
I.e., also for Perl-based tests; not just the ones using test-lib.sh.
* tests/check.mk (TESTS_ENVIRONMENT): Source envvar-check here, ...
* tests/test-lib.sh: ...not here.
2008-05-06 08:21:29 +02:00
Jim Meyering
cca51697aa fix typo in comments: s/ouput/output/
adjust spelling in that same comment: s/localisation/localization/
2008-05-06 08:21:29 +02:00
Jim Meyering
22adc16d9c * tests/touch/Makefile.am: Remove now-unused file. 2008-05-06 08:21:29 +02:00
Jim Meyering
f375a52f51 tests: test split more thoroughly
* tests/misc/split-a: Clean up.  Catch more failures.
2008-05-06 08:21:28 +02:00
Jim Meyering
eb62800728 * tests/misc/wc: Remove an unused variable. 2008-05-06 08:21:28 +02:00
Jim Meyering
f02102211e tests: detect and check more uses of strcmp
* maint.mk (sc_prohibit_strcmp): Relax regexp to recognize other
formatting styles.
2008-05-06 08:21:28 +02:00
Jim Meyering
209850fd7e avoid problems with sign-extended "char" operand to is* functions
* src/cut.c (set_fields): Apply to_uchar to isblank operands.
* src/uniq.c (find_field): Likewise.
* src/seq.c (scan_arg): Likewise, for isspace.
* tests/misc/uniq: New file.  Test for the above, but only
when isspace(0240).
* tests/Makefile.am (TESTS): Add misc/uniq.
* configure.ac: Use gt_LOCALE_FR.
* tests/check.mk (TESTS_ENVIRONMENT): Propagate LOCALE_FR to scripts.
* NEWS: Mention the bug fixes.

Before this patch, on FreeBSD 6:

  $ printf 'x y z\nx \xa0 y z\n' > in
  $ LC_ALL=fr_FR.UTF-8 uniq -f2 in|tr ' ' .
  x.y.z
  x. .y.z

With the patch:

  $ LC_ALL=fr_FR.UTF-8 uniq -f2 in|tr ' ' .
  x.y.z

This also affected many other locales:
for i in $(locale -a); do test $(LC_ALL=$i ./uniq -f1 in|wc -l)
  = $(LC_ALL=$i uniq -f1 in|wc -l) || echo $i ; done
...
en_GB.ISO8859-1
en_GB.ISO8859-15
en_GB.UTF-8
en_IE.UTF-8
en_NZ.ISO8859-1
en_NZ.ISO8859-15
en_NZ.UTF-8
en_US.ISO8859-1
en_US.ISO8859-15
en_US.UTF-8
...
2008-05-06 08:21:28 +02:00
Bo Borgerson
4d3bf408b9 base64: remove some unused/redundant getopt code
* src/base64.c (struct option long_option): Remove redundant help/version
option items.
(main): Remove unused 'q' from short options.

Signed-off-by: Bo Borgerson <gigabo@gmail.com>
2008-05-06 08:19:28 +02:00
Jim Meyering
2224ef83fe help2man: fix perl 5.10 problem properly
* man/help2man: Do pull LC_ALL via "use POSIX".
Instead, limit the importing of gettext-related symbols
to just those two we'll use: gettext and textdomain.
2008-05-06 00:35:28 +02:00
Jim Meyering
0b66c5776e help2man: avoid failure with Debian unstable's Perl 5.10.0
Avoid failure that produced this diagnostic:
Constant subroutine main::LC_ALL redefined at /.../Exporter.pm
* man/help2man: Don't include LC_ALL in the "use POSIX" list,
since Locale::gettext->import will get it.
2008-05-05 23:46:30 +02:00
Bo Borgerson
c64411a38a base64 module: adjust API so it's compatible with gnulib's
* gl/lib/base64.c (base64_decode_ctx): If no context structure was passed in,
treat newlines as garbage (this is the historical behavior).  Formerly
base64_decode.
(base64_decode_alloc_ctx): Formerly base64_decode_alloc.
* gl/lib/base64.h (base64_decode): Macro for four-argument calls.
(base64_decode_alloc): Likewise.
* src/base64.c (do_decode): Call base64_decode_ctx instead of base64_decode.

Signed-off-by: Bo Borgerson <gigabo@gmail.com>
2008-05-05 17:57:41 +02:00
Jim Meyering
fcd450ecb9 * tests/misc/tac: Set execute bit. 2008-05-05 13:53:36 +02:00
Jim Meyering
d701f6abb7 tac: avoid segfault for e.g., "echo > x; tac -r x x"
* src/tac.c (tac_seekable): Move local "regs" declaration out
to file scope, so its values aren't clobbered between calls.
Discovered by Cristian Cadar, Daniel Dunbar and Dawson Engler,
reported in http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13501
* NEWS: Mention the bug fix.
* tests/Makefile.am (TESTS): Add misc/tac.
* tests/misc/tac: New file.  Test for the above.
2008-05-05 13:15:32 +02:00
Jim Meyering
a892af0d48 tests: avoid a "make check-root" failure when mcstransd is running
* tests/misc/chcon: Skip this test if mcstransd seems to be running.
2008-04-30 23:29:22 +02:00
Jim Meyering
e3171c43eb tests: avoid spurious "make check-root" failure
* README (Running tests as root): Also set PATH in suggested "sudo"
command.  This avoids failure of at least tests/cp/cp-a-selinux
when the default PATH does not contain /sbin.
* tests/cp/cp-a-selinux: Don't redirect stderr to /dev/null.
"mkfs" was failing due to /sbin not being in PATH.
2008-04-30 23:29:10 +02:00
Bo Borgerson
bbc49eb536 Add Daniel Dunbar's lcov instructions to HACKING
* HACKING: New section `Finding things to do', points to TODO file and
gives instructions on generating an html coverage report as provided by
Daniel Dunbar.
* TODO: Add item for improving test coverage.  Point back to HACKING.

Signed-off-by: Bo Borgerson <gigabo@gmail.com>
2008-04-30 16:09:33 +02:00
Jim Meyering
bbc0cb0f37 chcon, runcon: make --help print the bug-reporting address
* src/chcon.c (usage): Use emit_bug_reporting_address.
* src/runcon.c (usage): Likewise.
* tests/misc/help-version: Don't exempt chcon and runcon.
* NEWS: Mention this.
2008-04-29 14:55:38 +02:00
Jim Meyering
28f1b61e59 tests: don't hard-code coreutils list of tests/ SUBDIRS in bootstrap
* bootstrap: Extract the list from tests/Makefile.am, and die
when it is empty -- it will be, eventually.
2008-04-28 22:59:24 +02:00
Bo Borgerson
29a2fb3856 tests: remove references to tests/wc from bootstrap
* bootstrap: Don't try to initialize anything in tests/wc.

Signed-off-by: Bo Borgerson <gigabo@gmail.com>
2008-04-28 22:47:09 +02:00
Jim Meyering
ed30cd94e3 tests: slightly relax sc_cast_of_argument_to_free syntax check
* maint.mk (sc_cast_of_argument_to_free): Relax regexp slightly.
(sc_no_have_config_h): Add a comment.
2008-04-28 22:44:56 +02:00
Bo Borgerson
eef629eea1 tests: don't chmod after a failed chdir in cleanup
* tests/CuTmpdir.pm (chmod_tree): Don't chmod if chdir failed.

Signed-off-by: Bo Borgerson <gigabo@gmail.com>
2008-04-28 19:29:15 +02:00
Bo Borgerson
2f55920ffc Only cleanup test dirs from the process that created them.
* tests/CuTmpdir.pm (import): Use closure around current PID to avoid cleanup races.

Signed-off-by: Bo Borgerson <gigabo@gmail.com>
2008-04-28 17:28:58 +02:00
Jim Meyering
d6ec836387 move wc tests from own subdir into a single script
* configure.ac (AC_CONFIG_FILES): Remove wc/Makefile from the list.
* tests/Makefile.am (SUBDIRS): Remove wc from the list.
(TESTS): Add misc/wc.
* tests/misc/wc: New file, derived from tests/wc/Tests.pm.
* tests/wc/Test.pm: Remove file.
2008-04-27 21:31:33 +02:00
Jim Meyering
5a3b0c4805 tests: remove temporary log file upon catchable signal
* check.mk (am__check_pre): Add signal handler to remove $@-t.
2008-04-27 21:31:33 +02:00
Jim Meyering
972e2737ab tests: don't source envvar-check manually, test-lib.sh does it
* tests/cp/abuse: Remove ". $top_srcdir/tests/envvar-check".
* tests/cp/parent-perm: Likewise.
* tests/cp/special-f: Likewise.
* tests/ls/proc-selinux-segfault: Likewise.
* tests/misc/help-version: Likewise.
* tests/mkdir/selinux: Likewise.
* tests/mv/sticky-to-xpart: Likewise.
* tests/touch/now-owned-by-other: Likewise.
* tests/sample-test: Remove commented out suggestion.
2008-04-27 21:31:33 +02:00
Jim Meyering
816e56a3de tests: ensure at least one failure when $built_programs is empty
Before, this test and others would pass with empty $built_programs.
* tests/misc/help-version: Fail if built_programs is empty.
2008-04-27 21:31:33 +02:00
Jim Meyering
bbafdc3c8f tests: improve perl-based tempdir handling
Before, upon interrupt, directories would be left behind.
* tests/CuTmpdir.pm: Remove temporary directory on interrupt.
2008-04-27 21:31:32 +02:00
Jim Meyering
dfdb532fd3 tests: reorder some tests in the long list
* tests/Makefile.am (TESTS): Move some tests that use sleep
"up" in the list so that they don't delay even a little the
completion of "make check".  Also run a chmod test early.
2008-04-27 21:31:32 +02:00
Jim Meyering
53d8a2c412 tests: put root-only (usually skipped) tests at the end
* tests/Makefile.am (TESTS): Don't list root-only tests explicitly.
Instead, just use $(root_tests).
* tests/check.mk (vc_exe_in_TESTS): Now that root_tests are separate,
parse out the union of $(TESTS) and $(root_tests).
2008-04-27 21:31:32 +02:00
Jim Meyering
427f179542 tests: move another file (expensive) into test-lib.sh
* tests/expensive: Remove file.  Move contents into ...
* tests/test-lib.sh (expensive_): ...here.  New function.
* tests/du/fd-leak: Update caller to use the new function.
* tests/mv/leak-fd: Likewise.
* tests/rm/hash: Likewise.
* tests/tail-2/big-4gb: Likewise.
* tests/Makefile.am (EXTRA_DIST): Remove its name.
2008-04-27 21:31:32 +02:00
Jim Meyering
8dc387dba5 tests: cp/perm (usually not run) was failing on systems with SELinux
* tests/cp/perm: Use stat to get the permission string, not ls.
This test was run only when RUN_VERY_EXPENSIVE_TESTS=yes was set
in the environment.  It would fail on SELinux-enable systems
because ls-generated permission strings would not match, e.g.,
"test _-rw-r--r--+ = _-rw-r--r--" would fail.
2008-04-27 21:31:32 +02:00
Jim Meyering
cca6a8d7e5 tweak HACKING advice 2008-04-27 21:31:08 +02:00
Jim Meyering
6bbbd65d89 tests: do define built_programs
* tests/check.mk (built_programs): Define here, where it's used.
This definition was in now-removed tests/misc/Makefile.am.
2008-04-24 12:31:13 +02:00
Jim Meyering
d30ac3d321 tests: update commented-out examples in sample-test, too
* tests/sample-test: Use $top_srcdir/tests/SCRIPT_NAME, not
$top_srcdir/../SCRIPT_NAME here, too.
2008-04-23 21:33:24 +02:00
Ondřej Vašík
37370a584c tests: don't fail in a non-English locale
* tests/chmod/thru-dangling: Source lang-default.
* tests/cp/thru-dangling: Likewise.
* tests/misc/printf-surprise: Likewise.
2008-04-23 20:17:55 +02:00
Jim Meyering
8657cf19e2 tests: remove now-unused Makefile.am
* tests/misc/Makefile.am: Remove file.
2008-04-23 17:51:44 +02:00
Ondřej Vašík
1a5b6e3a50 id: do not print SELinux context when invoked with a USERNAME argument
* NEWS: Mention new behaviour.
* src/id.c (main): Do not print SELinux context when user is specified.
* tests/Makefile.am: Add the new test.
* tests/misc/id-context: New file.  Test for the fix.
Problem reported by Ronny Buchmann in http://bugzilla.redhat.com/443485.
2008-04-23 17:51:44 +02:00
Jim Meyering
0a4a938b6b id: do print the AFS-specific nameless group ID (called a PAG)
In 6.11, we mistakenly suppressed the printing of certain group IDs,
thinking they were useless AFS-specific artifacts.
This change reverts that, so now they are printed once again.
http://thread.gmane.org/gmane.org.fsf.announce/867/focus=13345
This also reverts the bug-fix that applied solely to the new code
used to avoid printing those IDs

Revert "id bug fix: don't point to potentially clobbered static storage"
This reverts commit f7d1c59c22.
Revert "Work around AFS bug: id and groups would print invalid group number."
This reverts commit b7a836c0a3.
Revert "* src/c99-to-c89.diff: Accommodate a C99-ism in id.c."
This reverts commit d44893c5db.
2008-04-23 15:29:11 +02:00
Jim Meyering
d9c1b8fd30 build: move a project-specific definition to cfg.mk
* cfg.mk (old_NEWS_hash): Define here, ...
* maint.mk: ... not here.
(update-NEWS-hash): Update comment.
Suggestion from Eric Blake.
2008-04-22 21:28:33 +02:00
Jim Meyering
0bc8813b1e Accommodate building on OS/2 (www.ecomstation.com Ecs v2 rc4)
* configure.ac: Filter out carriage returns in more places.
Reported by Elbert Pol, details here:
http://thread.gmane.org/gmane.org.fsf.announce/867/focus=13332
2008-04-22 10:52:37 +02:00
Jim Meyering
68466d44b1 guard against inserting a NEWS entry into a block for a prior release
Without a guard like this, it is far too easy to apply a patch
prepared against a preceding release, and not notice that a NEWS
entry is inserted into the wrong block.
* maint.mk (sc_immutable_NEWS): New rule.
(update-NEWS-hash): New rule to update the hard-coded hash.
2008-04-22 10:45:21 +02:00
Jim Meyering
79a98d9bc1 tests: ensure that all exec-$PERL lines are the same
* maint.mk (sc_perl_coreutils_test): New rule.
2008-04-22 09:33:25 +02:00
Jim Meyering
a6894d063c tests: skip (don't fail) rm/one-file-system when mount --bind fails
* tests/rm/one-file-system: Reported by Allen Hewes.
2008-04-21 14:48:19 +02:00
Jim Meyering
90bc2fe272 tests: convert umask-check to a function
* tests/test-lib.sh (working_umask_or_skip_): New function, from...
* tests/umask-check: ...here.  Remove file.
* tests/Makefile.am (EXTRA_DIST): Remove umask-check.
* tests/mkdir/perm: Use the function rather than sourcing the file.
* tests/cp/cp-parents: Likewise.
* tests/cp/parent-perm: Likewise.
Bruno Haible reported that parent-perm was failing to run umask-check.
2008-04-21 00:02:00 +02:00
Jim Meyering
c51900a6bd tests: adjust perl -I to use $top_srcdir/tests, not $srcdir/.. 2008-04-21 00:02:00 +02:00
Jim Meyering
b214b51ca0 tests: clean up root tests; adapt to new layout
* tests/Makefile.am (root_tests): New list.
(check-root): Add 'SUBDIRS='.
(root-hint): Point to README.
* Makefile.am (check-root): Add 'SUBDIRS=' here, too.
* maint.mk (sc_root_tests): Adapt rule to new syntax used
in tests/Makefile.am.
2008-04-21 00:02:00 +02:00
Jim Meyering
512e111a92 Revamp test-related Makefiles.
One side-effect of this change is that "make check" now works even if
you put "." early in your shell's search PATH (don't do that!).

Remove all test-related Makefile.am files, except those generated
by mk-script.  Instead, tests/Makefile.am now lists not only the
tests directly under tests/, but also those in tests/*/ that are
not generated by mk-script, e.g., cp/abuse, cp/acl, mv/i-1, etc.

A lot of these changes are like this:

-. $srcdir/../lang-default
+. $top_srcdir/tests/lang-default

-. $srcdir/../test-lib.sh
+. $top_srcdir/tests/test-lib.sh

* configure.ac (AC_CONFIG_FILES): Remove corresponding Makefiles.
* tests/check.mk (vc_exe_in_TESTS): Relax syntax requirements.
* tests/rwx-to-mode: Remove file.  Rewritten as...
* tests/test-lib.sh (rwx_to_mode_): ...this new function.
* tests/Makefile.am (EXTRA_DIST): Remove rwx-to-mode.
(SUBDIRS): Remove each dir with a removed Makefile.am.
(EXTRA_DIST): Add $(TESTS).
(TESTS): Add over 300 entries.
2008-04-21 00:01:51 +02:00
Jim Meyering
d25bf9dceb * tests/misc/Makefile.am (built_programs): Remove. Unused. 2008-04-20 23:19:07 +02:00
Jim Meyering
fdb7e5b44c Use "env" to invoke potential built-ins.
* tests/misc/pwd-unreadable-parent: Invoke pwd via "env -- pwd",
rather than via an absolute name.
* tests/touch/not-owner: Likewise for test.
* tests/chmod/setgid: Likewise.
2008-04-20 23:18:48 +02:00
Jim Meyering
b29e812e82 * .prev-version: Record previous version: 6.11. 2008-04-19 23:29:02 +02:00
Jim Meyering
e347e9d722 Version 6.11.
* NEWS: Record release date.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2008-04-19 23:26:54 +02:00
Jim Meyering
87de29e6f0 * maint.mk (writable-files): Fix syntax error. 2008-04-19 16:47:26 +02:00
Jim Meyering
dc4a8e6280 * doc/.gitignore: Add texinfo-related outputs. 2008-04-19 15:23:40 +02:00
Sven Joachim
b021f59dfa * THANKS: Update my address, correct encoding for a name. 2008-04-19 13:46:52 +02:00
Jim Meyering
6856089f7b pr -e, with a mix of backspaces and TABs, could corrupt the heap
* tests/pr/Test.pm: New tests for the above.
* src/pr.c (char_to_clump): Ensure that "input_position" never
goes below 0.
Also, elide any backspace encountered when input_position is 0,
to be compatible at least with /bin/pr from Solaris 10.
This bug is present in the original version:
b25038ce9a
* NEWS [Bug fixes]: Mention this.
Report and diagnosis by Cristian Cadar, Daniel Dunbar and Dawson Engler
in http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13272
2008-04-19 13:34:38 +02:00
Mike Frysinger
7e1075dd74 * src/dircolors.hin: Add .flv. Move .svgz to "image formats". 2008-04-19 08:52:08 +02:00
Jim Meyering
a85752ff4b md5sum -c: ignore a line with a NUL byte among checksum hex digits
* src/md5sum.c (hex_digits): Require that all "digest_hex_bytes"
be hexadecimal digits, not just those before the first NUL byte.
This bug dates back to the original version:
3763a4f24e
* tests/misc/md5sum (nul-in-cksum): Test for the above.
* NEWS [Bug fixes]: Mention this.
Prompted by a report from Flóki Pálsson in
http://bugzilla.redhat.com/439531
2008-04-19 00:24:55 +02:00
Matthew Woehlke
0d03baa068 tests: accommodate built-in mknod more cleanly still
* tests/mkdir/selinux: Use "env" rather than "nice".
2008-04-16 19:16:13 +02:00
Jim Meyering
57ae7da075 tests: accommodate built-in mknod more cleanly
* tests/mkdir/selinux: Undo most of previous change,
bc22dbbf84, and instead
invoke the command via "nice".  Using "exec" should be
enough, but isn't with OpenBSD's PD KSH v5.2.14 99/07/13.2.
Eric Blake suggested using nice.
2008-04-16 15:28:33 +02:00
Jim Meyering
9bb5e5e9af mknod --help: note that this command may be a shell built-in
* src/mknod.c (usage): Print USAGE_BUILTIN_WARNING.
Suggestion from Eric Blake.
2008-04-16 14:21:40 +02:00
Jim Meyering
d9cdf8ce28 avoid "may be used uninitialized" warning from newer gcc
* src/md5sum.c (digest_check) [lint]: Initialize local, "filename".
2008-04-16 11:20:28 +02:00
Jim Meyering
5d8b8d8b74 tests: add a comment explaining the potential failure 2008-04-16 11:17:37 +02:00
Jim Meyering
bc22dbbf84 tests: avoid mkdir/selinux failure when mknod is a shell built-in
* tests/mkdir/selinux: Skip the mknod test if it's a built-in.
2008-04-16 10:29:10 +02:00
Jim Meyering
7cb24684cc md5sum, sha1sum, etc: handle invalid input (i.e., don't segfault)
* src/md5sum.c (bsd_split_3): Return right away if s_len == 0.
* tests/misc/md5sum (bsd-segv): New test for the above.
* tests/misc/sha1sum (bsd-segv): Likewise.
* NEWS: Mention the bug fix.
Reported by Cristian Cadar, Daniel Dunbar and Dawson Engler.
2008-04-15 08:46:48 +02:00
Jim Meyering
739cf4e832 tests: don't fail on systems without a "stat" syscall
* tests/test-lib.sh (require_strace_): Add a syscall parameter.
* tests/ls/stat-free-symlinks: Update caller.
* tests/mv/atomic: Likewise.
* tests/mv/atomic2: Likewise.
Reported by Mike Frysinger in
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13222
2008-04-14 23:33:43 +02:00
Jim Meyering
08f2a71ee3 tests: accommodate a different errno string on Irix 6.5
* tests/mkdir/selinux: Also handle "Not supported".
Reported by Peter Fales.
2008-04-14 22:17:23 +02:00
Jim Meyering
4827dd27b0 seq: work around floating point inaccuracies on more systems
* src/seq.c: Include <math.h> for fabs.
Include <float.h> for DBL_EPSILON.
(abs_rel_diff): New function.
(print_numbers): Use abs_rel_diff rather than a strict equality test.
Without this change, Solaris 8 and Irix 6.2 would fail the float-6
test.  Reported by Peter Fales in
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13183
* src/c99-to-c89.diff: Adjust seq.c offsets.
2008-04-14 11:29:20 +02:00
Jim Meyering
f91dec277a doc: fix typo
* coreutils.texi (sort invocation): s/Whitespace/White space/
2008-04-14 09:02:20 +02:00
Jim Meyering
512c906ca6 tests: Accommodate a different errno value on OSF/1 4.0F.
* tests/mkdir/selinux: Also handle "Function not implemented".
2008-04-12 13:14:29 +02:00
Jim Meyering
2ef40e9654 Avoid link failure when using mkstemp replacement.
* src/Makefile.am (tac_LDADD): Add $(LIB_CLOCK_GETTIME).
This is necessary at least on a DEC Alpha OSF/1 4.0F.
2008-04-12 12:43:24 +02:00
Jim Meyering
051c345f17 tests: always enable VERBOSE output, now that test framework works better
* cfg.mk: Set VERBOSE=yes.
* tests/check.mk: Likewise.
2008-04-12 09:52:42 +02:00
Jim Meyering
a899840bcc doc: avoid "make pdf" failure (due to texi2dvi bug?)
* doc/coreutils.texi (filesZeroFromOption):
Comment out @cindex-in-@macro use.
2008-04-11 12:11:06 +02:00
Jim Meyering
40c2d565ba doc: use a valid texinfo macro name
* doc/coreutils.texi (filesZeroFromOption): s/0/Zero/
2008-04-11 12:08:41 +02:00
Jim Meyering
eab0cebc76 tests: accommodate a different errno value on HPUX-10.20
* tests/mkdir/selinux: Also handle "Unknown system error".
Reported by Peter Fales.
2008-04-08 08:01:00 +02:00
Jim Meyering
8b3ec19019 doc: factor out --files0-from duplication
* coreutils.texi (wc invocation) [files0fromOption]: New macro.  Use it.
(du invocation): Use it here, too.
2008-04-06 22:10:18 +02:00
Jim Meyering
383b1e3b5c * src/c99-to-c89.diff: Adjust remove.c diffs. 2008-04-06 19:02:02 +02:00
Jim Meyering
9982e26c12 remove.c: accommodate systems with negative errno values
This is required at least on Haiku and BeOS.
* src/remove.c (write_protected_non_symlink): Return 1 for a write-
protected non-symlink, 0 if we determine it's not, and -1 upon
error (setting errno accordingly only in this final case).
(prompt): Deal with the changed semantics of the above function.
Based on this patch from Axel Dörfler:
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13071
2008-04-06 09:26:32 +02:00
Jim Meyering
2741677b28 Accommodate building on OS/2 (www.ecomstation.com Ecs v2 rc4)
* configure.in: Also filter out carriage returns from the value
of $no_install_progs_default.  Reported by Elbert Pol.
2008-04-05 12:13:57 +02:00
Jim Meyering
c1b6f9458a "touch E; mkfifo F; cp -fR F E" no longer fails due to existing E
* src/copy.c (copy_internal): Revert change of 2005-03-01,
4303f04545
Prompted by Michael Stone, who pointed me to an old bug report from
Ian Jackson: http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/7504
* tests/cp/special-f: New file.  Test for the above.
* tests/cp/Makefile.am (TESTS): Add special-f.
* NEWS: mention this bug fix.
2008-04-02 18:23:04 +02:00
Jim Meyering
f3653f0d20 copy.c: remove an in-function #ifdef
* src/copy.c (rpl_mkfifo) [! HAVE_MKFIFO]: New function.
(mkfifo) [! HAVE_MKFIFO]: Define to rpl_mkfifo.
(copy_internal): Remove #ifdef.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2008-04-02 18:22:59 +02:00
Jim Meyering
184a0298f3 HACKING: rename README-contribution-guidelines
README-contribution-guidelines: Rename to ..
HACKING: ...this.
2008-04-02 09:08:08 +02:00
Jim Meyering
1fb8739c0b bootstrap: remove dangling *.[ch] symlinks from lib
* bootstrap [dangling symlink removal]: Match *.[ch] files, too.
Suggestion from Eric Blake.
2008-04-01 21:18:56 +02:00
Jim Meyering
a1a0b32bd7 bootstrap: make find's -depth option be the first.
* bootstrap [dangling symlink removal]: Move find's -depth
option to precede all others, to avoid a warning.
2008-04-01 17:12:12 +02:00
Jim Meyering
9b16f4cc8c * bootstrap: Remove dangling symlinks from lib (aka $source_base), too. 2008-04-01 17:05:31 +02:00
Jim Meyering
6e177448b9 Avoid root-only SELinux-related test failures w/o mcstransd.
When mcstransd is not running (i.e., after service mcstrans stop),
"make check" as root would provoke two test failures.
* tests/cp/cp-a-selinux: Use the context, root:object_r:tmp_t:s0,
that works both with and without mcstransd.
Thanks to Eric Paris for the tip and to Ondřej Vašík for alerting
me to the problem.
Reported by Robert Scheck in <http://bugzilla.redhat.com/436717>.
2008-04-01 16:34:08 +02:00
Jim Meyering
504fa74e24 root tests: Set NON_ROOT_USERNAME if not set already.
* tests/test-lib.sh (require_root_): This avoids failure of a
couple of root-only tests that require a value for that envvar.
2008-04-01 16:13:02 +02:00
Jim Meyering
157ff3506e texinfo formatting tweaks
* coreutils.texi: Avoid some overfull hbox warnings.
(Treating / specially): Use @file{/} rather than a bare /.
2008-04-01 12:06:10 +02:00
Jim Meyering
5916dec460 printf doc: xref print(3) and libc's "Output Conversion Syntax" node
* coreutils.texi (printf invocation): Add xref.
Use "The GNU C Library Reference Manual" as the name of the 'libc'
document consistently.
* man/printf.x: Add See also: printf(3).
Suggested by A. Costa in http://bugs.debian.org/465522
2008-04-01 12:06:05 +02:00
Jim Meyering
94251ff084 Emit "#line 1" right after the two 'read-only/GENERATED' lines.
* bootstrap (cp_mark_as_generated): This preserves line numbering
e.g., in assertions, which is important when correlating between
coreutils test failures and the original files in gnulib/tests.
Suggested by Eric Blake.
2008-03-31 22:42:35 +02:00
Jim Meyering
1a0104fc63 * README-contribution-guidelines: Mention how to amend a commit.
Suggestion from Pádraig Brady.
2008-03-31 17:28:23 +02:00
Jim Meyering
ed9120545f Begin documenting contribution guidelines.
* README-contribution-guidelines: New file.  For now, not distributed.
2008-03-31 17:14:30 +02:00
Jim Meyering
f433c3835f "rm -r DIR" would mistakenly prompt about very long names
* src/remove.c (write_protected_non_symlink): Return 0(-1) when
euidaccess_stat pronounces a writable(not-writable) file, not -1(0).
* tests/rm/deep-2: New file.  Test for the above-fixed bug.
* tests/rm/Makefile.am (TESTS): Add deep-2.
Discovered while reviewing this change:
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13071
2008-03-31 13:46:34 +02:00
Jim Meyering
0d34887fe9 * NEWS: Note the dd bug fix. The bug was introduced over 8 years ago:
9fca49f67c
2008-03-31 09:11:15 +02:00
Paul Eggert
e373bb1933 dd bug fix: accept e.g., if=/dev/stdin and of=/dev/stdout
* lib/fd-reopen.c: Work even if FILE is "/dev/stdin".
Problem reported by Geoffrey Lee in <http://bugs.debian.org/290727>.
* tests/dd/misc: Check for this bug.
2008-03-31 08:37:58 +02:00
Jim Meyering
72e962c97e avoid failure of new test on kernel without SELinux support
* tests/mkdir/selinux: Also accept ENOENT.
Reported by Sven Joachim.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2008-03-29 22:43:46 +01:00
Jim Meyering
0ec483f365 tests: accept ENOTSUP message as well as the EINVAL one
This test would fail on most non-Linux systems because the original
expected an "Invalid argument" diagnostic, yet they all produced
"Operation not supported".
* tests/mkdir/selinux: Accept both strings.  Factor out duplication.
2008-03-29 10:00:44 +01:00
Jim Meyering
76576ba2f5 Work around a recent glibc/getopt.c diagnostic change.
* tests/misc/factor: Map new "-- '1'" to expected "-- 1".

Signed-off-by: Jim Meyering <meyering@redhat.com>
2008-03-29 00:11:52 +01:00
Jim Meyering
eb8fa94f2c mknod, mkfifo: don't segfault when diagnosing invalid SELinux context
Identical to the bug fixed by 72d052896a.
* src/mkfifo.c (main): Use "scontext", not NULL optarg in diagnostic.
* src/mknod.c (main): Likewise.
Reported by Cristian Cadar, Daniel Dunbar and Dawson Engler.
* tests/mkdir/selinux: Test for the above fixes.
* NEWS: Mention the fixes.
2008-03-28 23:03:27 +01:00
Jim Meyering
cdb16829a6 Fix typo in old NEWS and ChangeLog: s/commmand/command/.
* ChangeLog-2007: Likewise.
* NEWS: Likewise.
Prompted by http://bugzilla.redhat.com/439410
2008-03-28 20:20:49 +01:00
Pádraig Brady
dc16dc835c tests: Factor out code that's going to be reused.
* tests/test-lib.sh (mkfifo_or_skip_): New function, factored out of...
* tests/touch/fifo: ...here.
2008-03-28 14:33:27 +01:00
Jim Meyering
17720c10cd Require that "(exit $fail); exit $fail" be last line of each test.
* maint.mk (sc_require_test_exit_idiom): New rule to enforce policy.
* tests/cp/acl: Adhere to the new policy.
* tests/cp/preserve-gid: Likewise.
* tests/dd/misc:
* tests/install/create-leading:
* tests/ln/sf-1:
* tests/ls/symlink-slash:
* tests/misc/help-version:
* tests/misc/ls-time:
* tests/misc/nice:
* tests/misc/shred-remove:
* tests/misc/stty:
* tests/misc/stty-row-col:
* tests/mkdir/p-1:
* tests/mkdir/p-2:
* tests/mkdir/p-3:
* tests/mkdir/p-v:
* tests/mkdir/special-1:
* tests/mkdir/writable-under-readonly:
* tests/mv/acl:
* tests/mv/backup-is-src:
* tests/mv/diag:
* tests/mv/dir-file:
* tests/mv/force:
* tests/mv/hard-link-1:
* tests/mv/i-2:
* tests/mv/i-4:
* tests/mv/into-self:
* tests/mv/into-self-2:
* tests/mv/into-self-3:
* tests/mv/partition-perm:
* tests/mv/to-symlink:
* tests/rmdir/ignore:
* tests/tail-2/assert:
* tests/tail-2/assert-2:
* tests/touch/dangling-symlink:
* tests/touch/dir-1:
* tests/touch/empty-file:
* tests/touch/fifo:
* tests/touch/no-rights: Likewise.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2008-03-28 14:21:28 +01:00
Jim Meyering
818dbee8dc Perform explicit exit-nonzero if the embedded Perl script fails.
* tests/misc/pwd-long: Add canonical '(exit $fail); exit $fail'.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2008-03-28 14:21:27 +01:00
Jim Meyering
b58a8b4ef5 paste -d\\: avoid heap overrun for backslash at end of delim list
* src/paste.c: Include "quotearg.h".
(collapse_escapes): Handle backslash-escaped backslash explicitly.
Handle unescaped backslash at end of string by returning nonzero,
rather than by overrunning memory.
(main): Diagnose an invalid delimiter list -- carefully.
Reported by Cristian Cadar, Daniel Dunbar and Dawson Engler.
* tests/misc/paste-no-nl (delim-bs): Add a test to demonstrate the
heap-smashing capability.
(delim-bs2): Prior to coreutils-5.1.2, this bug was a little harder
to demonstrate: it would corrupt a first-argument containing e.g., \b
* NEWS: Mention the bug fix.
* tests/misc/Makefile.am (TESTS): Reflect renaming.
* tests/misc/paste: Rename from paste-no-nl.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2008-03-27 13:32:38 +01:00
Jim Meyering
6743f81136 * src/join.c (keycmp): Document new parameters. 2008-03-26 01:17:15 +01:00
Jim Meyering
0e5381fe93 Test for mkdir bug fix.
* tests/mkdir/selinux: New file: test for today's fix.
* tests/mkdir/Makefile.am (TESTS): Add selinux.
2008-03-26 01:11:16 +01:00
Daniel Dunbar
72d052896a mkdir -Z x d: don't segfault when diagnosing invalid context "x" (tiny change)
* src/mkdir.c (main): Use "scontext", not NULL optarg in diagnostic.
Reported by Cristian Cadar, Daniel Dunbar and Dawson Engler.
* NEWS: Mention the bug fix.
2008-03-26 00:57:29 +01:00
Peter Fales
f7d1c59c22 id bug fix: don't point to potentially clobbered static storage
On at least Mac OS, when calling getpwuid twice with the same UID,
the static storage containing results from the first call is
invalidated by the second call.
* src/id.c (main): Point to a copy of the user name string.
2008-03-25 22:47:15 +01:00
Eric Blake
5f2ea441ac Use new gnulib gnumakefile module.
* bootstrap.conf (gnulib_modules): Pull in new module.
* GNUmakefile: Remove from version control.
* .gitignore: Update.
* configure.ac (AC_CONFIG_LINKS): Delete; rely on gnulib to do
this now.
* Makefile.am (EXTRA_DIST, distclean-local): Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
2008-03-25 21:56:39 +01:00
Jim Meyering
da9f5e7fdf join bug fix: adapt keycmp to work with new order-checking feature
* src/join.c (keycmp): Add two join-field parameters.
(check_order, join): Update callers.
Reported by Dmitry V. Levin in
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12731/focus=13017
* tests/join/Test.pm (chkodr-7): New test for this fix.
2008-03-25 19:10:10 +01:00
Jim Meyering
157a274da5 join.c: syntax/style tweaks
* src/join.c (check_order): Rename from checkorder.
Move definition to precede first use and remove prototype.
Use EXIT_FAILURE, rather than "1".
(key_cmp): Move definition to precede first use.
2008-03-23 11:18:38 +01:00
Jim Meyering
1a7f64b157 portability: work around a "busybox sed" limitation
* configure.ac: While every other sed tested supports usage like
'/\(re\)/{s//\1/;...<NEWLINE>}', and POSIX appears to requires this,
busybox's sed does not support it.  So duplicate the regexp:
'/\(re\)/{s/\(re\)/\1/;...<NEWLINE>}'.  Reported by Vincent Lefevre:
<http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13013>.
2008-03-22 19:13:34 +01:00
Jim Meyering
c3869f6564 * src/c99-to-c89.diff: Adjust seq.c offsets. 2008-03-21 21:01:10 +01:00
Jim Meyering
a0851554bd ptx: avoid heap overrun for backslash at end of optarg string
* src/ptx.c (copy_unescaped_string): Ignore a lone backslash
at end of string.  Reported by Cristian Cadar, Daniel Dunbar
and Dawson Engler.  Details here:
<http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13005>.
* tests/misc/Makefile.am (TESTS): Add ptx-overrun.
* tests/misc/ptx-overrun: New file.  Test for the above fix.
* NEWS: Mention the fix.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2008-03-21 20:58:15 +01:00
Jim Meyering
4f812540a2 ptx.c readability
* src/ptx.c (copy_unescaped_string): Add braces around 80+-line
single-stmt while-loop body.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2008-03-21 20:58:15 +01:00
Jim Meyering
6e5bbc267a Write NEWS and update c99-to-c89 patch for today's rm improvement.
* NEWS: call this a "portability improvement" ;-)
* src/c99-to-c89.diff: Adjust remove.c offsets.
2008-03-21 16:01:29 +01:00
Ingo Weinhold
e73dfc3899 remove.c: Accommodate systems with negative errno values.
* src/remove.c (cache_fstatat): Store errno value directly in
the st_ino field, rather than trying to shoehorn it into st_size.
This is required at least on BeOS and Haiku.
2008-03-21 16:01:29 +01:00
Jim Meyering
18ce670a33 * src/seq.c (long_double_format): Add a comment. 2008-03-21 15:59:41 +01:00
Jim Meyering
04f1470c51 * GNUmakefile: Update from gnulib. 2008-03-21 00:33:26 +01:00
Jim Meyering
677610ec7c Remove today's automake kludge, altogether. Fix properly.
* man/Makefile.am: Use dist_man1_MANS instead of dist_man_MANS.
Suggestion from Ralf Wildenhues.
2008-03-20 19:04:50 +01:00
Jim Meyering
ba4b9d9d6e Add a check to detect this problem, in case it reappears.
* maint.mk (my-distcheck): Run "make install", and then ensure
that ls.1 is installed.
2008-03-20 18:43:03 +01:00
Jim Meyering
4682f132f2 Kludge to make automake generate install-man rules
* man/Makefile.am (dist_man_MANS): Add a literal, rm.1.
Without this, "make install" would not install man pages.
However, with this kludge, the rm.1 man page is installed
even when you configure with --enable-no-install-program=rm.
2008-03-20 18:01:35 +01:00
Jim Meyering
8058da0065 Revert recent man/Makefile.am change.
Revert 4b544e447e.
* man/Makefile.am: That change was only a band-aid.  It solved
the stated problem, but not a deeper one: that "make install"
would no longer man pages.  Reported by Dmitry V. Levin.
The latter problem arose in
167b8025ac with the removal of
the sole literal from the definition of dist_man_MANS.  When
automake perceives dist_man_MANS as empty, it no longer emits
the install-man* rules.
2008-03-20 17:59:44 +01:00
Eric Blake
2c7bed000e Sync GNUmakefile with gnulib.
* GNUmakefile (Makefile.cfg): Rename...
(cfg.mk): ...to this, and make optional.
(GNUmakefile.cfg): Delete, redundant with cfg.mk.
(Makefile.maint): Rename...
(maint.mk): ...to this.
(all) [!_have-Makefile]: Rename...
(abort-due-to-no-makefile): ...to this, and invoke via
.DEFAULT_GOAL to pick up all targets.
* Makefile.cfg: Rename...
* cfg.mk: ...to this.
* Makefile.maint: Rename...
* maint.mk ...to this.
(ME): Reflect rename.
(makefile-check, m4-check, author_mark_check, msg): Use $(ME)
rather than hard-coded name.
* Makefile.am (EXTRA_DIST): Distribute renamed files.
* .x-sc_file_system: Remove Makefile.maint along with others. No longer needed.
* .x-sc_obsolete_symbols: Likewise.
* .x-sc_prohibit_atoi_atof: Reflect renaming and remove no-longer-VC'd names.
* TODO: Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
2008-03-20 14:52:55 +01:00
Bob Proulx
9e2ed5521d make check: Remove /tmp/ls-creating debug code.
* tests/misc/ls-misc: Remove debug code creating /tmp/ls.
2008-03-19 23:52:16 +01:00
Jim Meyering
22e66dfc12 bootstrap: restore kludge removed on 2008-03-12: it's still necessary.
* bootstrap: Make the gnulib-tests/test-*.sh scripts executable.
This restores code removed by dec8bb25bb.
Reported by Bob Proulx.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2008-03-19 23:50:19 +01:00
Jim Meyering
092239c608 Check for -- and remove -- some unnecessarily included header files.
* Makefile.maint: Add checks for a handful of additional header files.
* src/mktemp.c: Don't include "long-options.h".  Not used.
* src/pr.c: Don't include "inttostr.h".  Not used.
* src/printenv.c: Don't include "error.h".  Not used.
* src/test.c: Don't include "error.h".  Not used.
* src/touch.c: Don't include "safe-read.h".  Not used.
2008-03-19 16:48:32 +01:00
Jim Meyering
116f832b45 Remove more vestiges of CVS.
* Makefile.maint (VC_LIST): Rename from CVS_LIST.
(VC_LIST_EXCEPT): Rename from CVS_LIST_EXCEPT.
2008-03-19 14:34:11 +01:00
Jim Meyering
63feb84a2d mv: never unlink a destination file before calling rename
While cp --preserve=links must unlink certain destination files,
mv must never do that.
* src/copy.c (copy_internal): Pull the '! x->move_mode' test "up",
so it affects the entire condition, and not just DEREF_NEVER mode.
Reported by James Ralston in <http://bugzilla.redhat.com/438076>.
* tests/mv/atomic2: New file.  Test for the above fix.
* tests/mv/Makefile.am (TESTS): Add atomic2.
* NEWS: Mention the bug-fix.
[Bug introduced in 367719ba5f]
2008-03-19 13:38:27 +01:00
Jim Meyering
4b544e447e "make" would not always update man/*.1 files (but "make dist" would)
* man/Makefile.am (BUILT_SOURCES): Define, so that "make" always
updates man/*.1 files.  Reported by Bob Proulx.
2008-03-19 08:46:41 +01:00
Jim Meyering
2708cd9ca0 syntax-check: Make the space-before-open-paren optional.
* Makefile.maint (sc_prohibit_assert_without_use): Match also
when there is no space before the opening parenthesis.
(sc_prohibit_getopt_without_use): Likewise.
(sc_prohibit_quotearg_without_use): Likewise.
(sc_prohibit_quote_without_use): Likewise.
2008-03-18 23:51:58 +01:00
Jim Meyering
7feeb7cf23 * Makefile.maint (sc_no_have_config_h): Use a more precise regexp. 2008-03-18 23:44:53 +01:00
Jim Meyering
8378eca4d4 * Makefile.maint (CVS): Remove now-unused definition. 2008-03-18 23:40:41 +01:00
Jim Meyering
e3b22389a8 Factor out duplication in sc_prohibit_*_without_use rules.
* Makefile.maint (_header_without_use): New "command",
factored out of four sc_prohibit_HEADER_without_use rules.
(sc_prohibit_assert_without_use): Rewrite using $(_header_without_use).
(sc_prohibit_getopt_without_use): Likewise.
(sc_prohibit_quotearg_without_use): Likewise.
(sc_prohibit_quote_without_use): Likewise.
2008-03-18 21:32:03 +01:00
Dmitry V. Levin
29ff7a3943 Correct typo in "make syntax-check" diagnostic.
* Makefile.maint (sc_prohibit_getopt_without_use): s/assert.h/getopt.h/
2008-03-18 20:33:36 +01:00
Jim Meyering
0ecdb0a52a Prohibit inclusion of getopt.h without use.
* Makefile.maint (sc_prohibit_getopt_without_use): New rule.
2008-03-16 19:04:29 +01:00
Jim Meyering
12ff1eb9b9 Include <getopt.h> only if used.
* src/group-list.c: Don't include <getopt.h>.
* src/printf.c: Likewise.
2008-03-16 19:04:29 +01:00
J. Scott Edwards
c960211fe7 sha512_process_bytes: fix a bug in processing a buffer where length&64 != 0
* gl/lib/sha512.c (sha512_process_bytes): s/63/127/.
2008-03-16 19:04:24 +01:00
Jim Meyering
a5d8b18bea Generalize GNUmakefile, ...
...so that it can be used unmodified by autoconf.
* GNUmakefile: Include optional file, GNUmakefile.cfg.
Autoconf will use this to override _autoreconf and to export PATH.
(_autoreconf): Define.
(_dummy): cd to $(srcdir) before removing autom4te.cache.
2008-03-12 13:52:51 +01:00
Jim Meyering
dec8bb25bb * bootstrap: Sync from gnulib and remove part of a local kludge. 2008-03-12 11:47:53 +01:00
Ondřej Vašík
9c393fa194 install, rmdir: write --verbose output to stdout, not to stderr.
* src/install.c (announce_mkdir): Write verbose output to stdout,
not to stderr.
* src/mkdir.c (announce mkdir): Use prog_fprintf for verbose output.
* src/prog-fprintf.c (prog_fprintf): New function and file.
* src/prog-fprintf.h: New file.
* src/rmdir.c (main): Write verbose output to stdout, not to stderr.
Quote directory name in a diagnostic.
* src/rmdir.c (remove_parents): Write verbose output to stdout,
not to stderr.
* doc/coreutils.texi: Mention that shred verbose output is to stderr.
* NEWS: Mention the changes.

Signed-off-by: Ondřej Vašík <ovasik@redhat.com>
2008-03-10 19:47:15 +01:00
Jim Meyering
3c7a6ae340 make syntax-check: also check src/*.h files for extern functions,
* src/Makefile.am (sc_tight_scope): ... now that there is one.
2008-03-10 19:23:41 +01:00
Jim Meyering
381e69eace dd: avoid unnecessary, but harmless close_stdout call.
* src/dd.c (close_stdout_required): New global.
(maybe_close_stdout): New function.
(main): Set the global.
Reported by Ulrich Drepper in http://bugzilla.redhat.com/436368
2008-03-07 12:21:37 +01:00
Jim Meyering
c58c2ea3e4 Now that ChangeLog is no longer under version control, ...
* Makefile.maint (alpha beta major): Don't make changelog-check.
(changelog-version-check): Rename from changelog-check.
2008-03-06 14:33:20 +01:00
Jim Meyering
d44893c5db * src/c99-to-c89.diff: Accommodate a C99-ism in id.c. 2008-03-05 11:38:30 +01:00
ribalba
b7a836c0a3 Work around AFS bug: id and groups would print invalid group number.
* src/id.c (main): Call print_group_list with a user name, if possible.
* src/groups.c (main): Likewise.
* NEWS: Mention this.
For details, see
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12852
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12875

Signed-off-by: ribalba <geerd.dietger.hoffmann@gmail.com>
2008-03-05 11:38:26 +01:00
Jim Meyering
f5d58041d5 Now that Makefile.maint is used in VPATH builds, too...
* Makefile.maint (prev_version_file): Prefix with $(srcdir)/.
(syntax-check-rules): Prefix $(ME) with $(srcdir)/.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2008-03-05 10:36:21 +01:00
Jim Meyering
c7d33788e0 Avoid new "make distcheck" failure, now that VPATH has GNUmakefile.
* GNUmakefile: Remove commands to create ".version".
They were unnecessary, and caused creation of a newer .version
file in a VPATH build, which in turn caused creation of updated
man/*.1 files reflecting the newer time stamp on .version.
Those *.1 files were not removed (since they're distributed), and
the fact that they remained after "distclean" triggered the failure.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2008-03-05 10:36:21 +01:00
Eric Blake
07bc841590 Reinstate GNUmakefile patch, but with workaround for automake.
* configure.ac (AC_CONFIG_LINKS): Use shell variable to bypass
automake distclean rules.
* Makefile.am (distclean-local): Clean GNUmakefile in VPATH builds,
since we are bypassing automake.
* GNUmakefile (_is-dist-target): 'distclean' is not a dist target.
2008-03-04 20:54:45 +01:00
Jim Meyering
dd647e78ca Clarify comment and attribute preceding change: Reported by Ralf Wildenhues. 2008-03-04 12:59:40 +01:00
Jim Meyering
87a2903cca Comment out yesterday's VPATH-friendly addition, for now.
* configure.ac: ...while we wait for a fixed version of automake.
2008-03-04 12:56:45 +01:00
Eric Blake
137c167a16 Use m4_PACKAGE_VERSION, not AC_AUTOCONF_VERSION.
* configure.ac: The latter is only in post-2.61 autoconf.
2008-03-03 23:52:19 +01:00
Eric Blake
8eacedd3b5 GNUmakefile build tweaks.
* GNUmakefile: When Makefile is not present, make common targets depend
on "all" in order to trigger nicer error message.
* configure.ac: If autoconf is new enough, link GNUmakefile into VPATH
builds.
For more details, see
<http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/12853>.

Signed-off-by: Eric Blake <ebb9@byu.net>
2008-03-03 21:19:10 +01:00
Simon Josefsson
dcc543f44c Define SHA*_DIGEST_SIZE symbols.
* gl/lib/sha256.h (SHA224_DIGEST_SIZE, SHA256_DIGEST_SIZE): Define.
* gl/lib/sha512.h (SHA384_DIGEST_SIZE, SHA512_DIGEST_SIZE): Define.
2008-03-03 08:56:52 +01:00
Ralf Wildenhues
b22067a582 Fix so that out-of-tree VPATH "make dist" works, too.
* GNUmakefile: Add $(srcdir)/ prefix to git-version-gen and argument.
2008-03-02 22:18:37 +01:00
Jim Meyering
cce03822fc One more for non-srcdir "make dist".
* GNUmakefile: Also cd $(srcdir) before running autoreconf.
2008-03-02 16:33:53 +01:00
Jim Meyering
b4be756402 Adjust so that non-srcdir "make dist" works, too.
* GNUmakefile: Add $(srcdir)/ prefix to git-version-gen and argument.
2008-03-02 16:24:52 +01:00
Jim Meyering
e8139f2768 Don't infringe namespace of "sub"-Makefiles.
* GNUmakefile (_dummy, _have-Makefile): Add "_" prefix.
2008-03-02 16:13:02 +01:00
Jim Meyering
f33599c144 Create sha256 and sha512 modules and move files into gl/.
* bootstrap.conf (gnulib_modules): Add sha256 and sha512.
* m4/prereq.m4: Don't require gl_SHA256 or gl_SHA512.
* gl/modules/sha512: New file.
* gl/modules/sha256: New file.
* m4/sha256.m4: Move to ...
* gl/m4/sha256.m4: ...here, removing use of AC_SOURCES.
* m4/sha512.m4: Move to ...
* gl/m4/sha512.m4: ...here, removing use of AC_SOURCES.
* lib/sha256.c, lib/sha256.h: Move to ...
* gl/lib/sha256.c, gl/lib/sha256.h: ...here.
* lib/sha512.c, lib/sha512.h: Move to ...
* gl/lib/sha512.c, gl/lib/sha512.h: ...here.
* lib/u64.h: Move to ...
* gl/lib/u64.h: ...here.
2008-03-02 12:16:49 +01:00
Jim Meyering
39fc8c581b * bootstrap: Remove only *.m4, and only from $m4_base/. Rewrite the comment. 2008-03-02 10:46:48 +01:00
Jim Meyering
d622ad088b * bootstrap: Sync from gnulib. 2008-03-02 10:14:58 +01:00
Jim Meyering
5a0b032e9e Don't skip the groups-version test.
* tests/Makefile.am (built_programs): Remove unused definition.
* src/Makefile.am (built_programs.list): Print a space-separated
list of program names, not NL-separated, since all clients now
expect a space-separated list.
2008-03-01 10:50:35 +01:00
Jim Meyering
e81d5a49b7 Don't exempt "groups" from write-failure test, now that it's a C program.
* tests/misc/help-version: Since groups is no longer a shell
script, a buggy bourne shell can't cause trouble.
2008-03-01 10:39:12 +01:00
Jim Meyering
710e5f32fc * configure.ac (AC_INIT): Use .tarball-version, not .version. 2008-03-01 10:01:09 +01:00
Jim Meyering
46e51208c7 Don't depend on gnulib's deprecated "free" module.
* bootstrap.conf (obsolete_gnulib_modules): Remove free.
* gl/modules/mgetgroups (Depends-on): Remove free.
2008-03-01 09:56:56 +01:00
Jim Meyering
d2177c280c Merge bootstrap changes from gnulib.
* bootstrap (MSGID_BUGS_ADDRESS): Define and use.
(version_controlled_file): Use "git rm", not "git-rm".
2008-02-29 13:36:00 +01:00
Jim Meyering
0dc92c8fde Use "git tag", not "git-tag", in preparation for git-1.6.0.
* Makefile.maint (VC-tag): Remove '-': s/git-tag/git tag/
2008-02-29 13:35:52 +01:00
Jim Meyering
3bb1783158 Make copyright comments consistent.
* src/mktemp.c: Update copyright to use newer form.

Make first copyright lines consistent. Some did not end in ", Inc.".
Due to that missing ", Inc" at end of line, emacs' copyright-updating
code missed some opportunities.  This corrects most of those, and
adds some mistakenly omitted years.
* src/chown-core.c: Adjust.
* src/chown-core.h: Likewise.
* src/copy.c: Likewise.
* src/copy.h: Likewise.
* src/cp-hash.c: Likewise.
* src/cp.c: Likewise.
* src/group-list.h: Likewise.
* src/mktemp.c: Likewise.
* src/stat.c: Likewise.
* tests/chmod/equal-x: Likewise.
* tests/dd/skip-seek: Likewise.
* tests/envvar-check: Likewise.
* tests/mv/into-self-2: Likewise.
2008-02-28 19:53:07 +01:00
Bob Proulx
fcdf32c159 Fix test failure where rm would appear to succeed incorrectly.
* tests/rm/fail-eperm: Ignore files that were opportunistically chosen
to test permission failures but disappear before we can finish the test.
2008-02-25 21:03:53 +01:00
Jim Meyering
9396e9104e * gl/lib/mgetgroups.c (mgetgroups): Parenthesize correctly. 2008-02-24 18:12:15 +01:00
Jim Meyering
dacff7cb2b * gl/lib/mgetgroups.c: Include <stdlib.h>. 2008-02-24 14:56:19 +01:00
Jim Meyering
f656cafd4c Avoid test failures when root (/) is not readable.
* tests/test-lib.sh (require_readable_root_): New function.
* tests/misc/pwd-long: Skip this test when / is unreadable.
* tests/du/slash: Likewise.
This is required at least for Mandrake/Mandriva in "secure" mode.
Reported by Theodoros V. Kalamatianos in
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12800
2008-02-23 23:25:17 +01:00
Jim Meyering
a15329798c id: avoid race when a group is added between getgrouplist calls
* gl/lib/mgetgroups.c (mgetgroups) [N_GROUPS_INIT]: Rename enum.
Use a larger value.
Update *groups only upon success.
Iterate upon failed getgrouplist.
2008-02-22 20:47:54 +01:00
James Youngman
49f7ebaac4 id: use getgrouplist when possible
* gl/m4/mgetgroups.m4: Check for getgrouplist.
* gl/lib/mgetgroups.c (mgetgroups): Use getgrouplist, if available.
* TODO: Remove the item about switching to getgrouplist.
* NEWS: mention this
2008-02-21 15:02:07 +01:00
Paul Eggert
bf9e98344d du vs. hard links and argument order: improve documentation
* doc/coreutils.texi (du invocation): Document default behavior on
hard links, and why argument order matters.
2008-02-21 09:40:07 +01:00
James Youngman
0f8faebb97 join: avoid new leaks
* src/join.c (prevline): Make prevline module-level static, so that
the allocated items can be freed at exit.
(free_prevline): new atexit function; frees items in prevline[].
Use ARRAY_CARDINALITY, so include "argmatch.h" to get that.
(main): Arrange for free_prevline to be called during exit.
(get_line): Free prevline[which - 1] also, as that
will have been allocated by dup_line.
2008-02-20 21:44:53 +01:00
Jim Meyering
d2d9234098 Remove xdelta support, clean up distcheck process.
* Makefile.maint (writable-files): Don't create $(release_archive_dir).
(my-distcheck): Don't depend on prev-tgz.
Remove xdelta-related variables and uses.
(alpha beta major): Skip steps if $(release_archive_dir) doesn't exist.
2008-02-20 19:33:56 +01:00
Jim Meyering
a1ec12dad6 * bootstrap: Remove dangling symlinks before invoking aclocal. 2008-02-20 19:29:28 +01:00
Andreas Schwab
cb3147d298 sort: add --sort=... option.
* src/sort.c (SORT_OPTION): New enum.
(sort_args, sort_types): Define.
(usage, long_options, main): New option --sort.
* tests/sort/Test.pm: Test it.
* doc/coreutils.texi (sort invocation): Document --sort option.
* NEWS: Mention this.
2008-02-20 08:41:29 +01:00
Jim Meyering
c78039b87d 2008-02-19 Jim Meyering <meyering@redhat.com>
* TODO: Remove final seq-related item.
2008-02-19 18:20:46 +01:00
Jim Meyering
59b803e3d0 * src/c99-to-c89.diff: Adjust seq.c offsets. Accommodate a new C99-ism. 2008-02-19 15:41:16 +01:00
Steven Schubiger
4f3ff2e700 seq: give better diagnostics for invalid formats.
* src/seq.c: (validate_format): New function.
(main): Use it.
* tests/misc/seq (fmt-d, fmt-e): Test for expected diagnostics with
invalid formats.
* NEWS: Mention this change.
* TODO: Remove this item.
[jm: src/seq.c: make diagnostics more consistent
 tests/misc/seq (fmt-eos1): adjust the expected diagnostic ]
2008-02-19 15:41:16 +01:00
James Youngman
a1e715698a join: new options: --check-order and --nocheck-order.
* src/join.c: Support --check-order and --nocheck-order.
New variables check_input_order, seen_unpairable and
issued_disorder_warning[]. For --check-order, verify that the
input files are in sorted order.  For the default case, check the
order only if there are unpairable lines.
(join): Perform ordering checks after reaching EOF on either
input.
(usage): Mention --check-order and --nocheck-order.
(dupline): Save a copy of the previously-read input line so that
we can detect disorder on the input.
(get_line): Temporarily save a copy of the previous line (by
calling dupline) and check relative ordering (by calling
checkorder) before returning the newly-read line.
(getseq, join): Tell get_line which file we are reading from.
(advance_seq): New function, factoring out some of the code
commonly surrounding calls to getseq.
(checkorder): New function.  Verifies that a pair of consecutive
input lines are in sorted order.
* doc/coreutils.texi (join invocation): Document the new options
--check-order and --nocheck-order.
* tests/join/Test.pm (tv): Added tests for --check-order and
--nocheck-order.
* NEWS: Mention this new feature.
2008-02-19 15:17:39 +01:00
James Youngman
4242d4f5c4 Fix non-srcdir "make distcheck" failure.
* Makefile.am (check-ls-dircolors): Look for sources under
$(srcdir), not under ".".
2008-02-19 13:31:56 +01:00
Jim Meyering
b8108fd2dd seq: give a proper diagnostic for an invalid --format=% option
* src/seq.c (long_double_format): Handle '%' at end of string.
* tests/misc/seq [fmt-eos1, fmt-eos2]: New tests for the bug.
* NEWS: Mention this.
Reported by Pádraig Brady.
2008-02-18 18:38:52 +01:00
Jim Meyering
1d96b88c66 .gitignore, src/.gitignore: ignore more 2008-02-17 12:20:17 +01:00
Jim Meyering
38bfb60c11 Clean up Makefile.maint.
* Makefile.maint: Remove obsolete comments.
(local-checks-available): Remove changelog-check.
2008-02-17 11:16:18 +01:00
Jim Meyering
f0bafdb427 Clean up ls.c.
* src/ls.c (put_indicator): Use fwrite, not a loop.
2008-02-17 11:16:18 +01:00
Jim Meyering
ace5387fb6 Ensure that dircolors.c and ls.c remain in sync.
* Makefile.am (check-ls-dircolors): New rule.
(distcheck-hook): Depend on it.
2008-02-17 11:16:18 +01:00
Jim Meyering
bbb82c231a Expand "ls --color" tests to also use the dircolors defaults.
* tests/misc/ls-misc: Adjust this test so each is run twice.  First, as usual,
and the second time with LS_COLORS set using the default settings
produced by running dircolors.
* tests/Coreutils.pm: See below.

This required some changes:
  - save and restore $ENV{LS_COLORS} for each individual test
  that requires a specific value.
  - Since this is the first test to call the run_tests command more
  than once, it has exposed that that function erroneously modifies
  the \@Tests array.  Fix that in tests/Coreutils.pm.
2008-02-17 11:16:18 +01:00
Jim Meyering
5b9f908ce3 Adjust dircolors to match ls.c.
* src/dircolors.hin: comment out NORMAL and FILE, define RESET.
* src/dircolors.c (slack_codes) Add "RESET".
(ls_codes): Add "rs".
2008-02-17 11:16:18 +01:00
Ed Avis
483297d5dd ls --color no longer outputs unnecessary escape sequences
In --color mode, plain files do not get any color, not even white.
When no highlighting is required, ls outputs no escape sequence at all.
* src/ls.c (print_with_color):
(used_color): New global.
(indicator_no) [C_RESET]: New enum value.
(indicator_name) ["rs"]: Corresponding new string.
(color_indicator): Make the 'normal' and 'file' markers be NULL.
Use "rs" (C_RESET) to reset to ordinary colors.
(process_signals): Restore default colors only if necessary.
(main): Don't call prep_non_filename_text here.
(print_name_with_quoting): Call it here, instead.
(prep_non_filename_text): Use C_RESET, not C_NORM.
(print_color_indicator): Return bool, not void.
Print nothing, when possible.
(put_indicator): Call prep_non_filename_text the first time.
* tests/misc/ls-misc: Test for above.
* tests/ls/color-dtype-dir: Adapt: no escapes around regular file name.
* TODO: Remove item.
* NEWS: Mention this.
2008-02-17 11:16:08 +01:00
Dan Jacobson
7dc26da47c ls: Improve description of --group-directories-first.
* src/ls.c (usage) [--group-directories-first]: Improve description.
* doc/coreutils.texi (Which files are listed): Likewise.
2008-02-17 08:53:28 +01:00
Jim Meyering
526e43a1c2 Avoid tests/cp/acl test failure.
* tests/check.mk (TESTS_ENVIRONMENT) [CONFIG_HEADER]: Define
to an absolute name, so it can be used from any point in the
test hierarchy.  Reported by James Youngman.
2008-02-16 23:10:45 +01:00
James Youngman
2c42c1c2ce Use the gettime module in ls.c.
Implement TODO list item to make ls.c use the gettime module.
* TODO (ls): Now that we use gettime, remove the TODO entry.
* src/ls.c: Use timespec.h and the gettime module.
(current_time): Change type from time_t to struct timespec.
(current_time_ns): Removed.
(get_current_time): Removed.
(print_long_format): Remove when and when_ns, since we have
when_timespec anyway.  Change type of variable six_months_ago from
time_t to struct timespec.
2008-02-16 19:30:55 +01:00
Jim Meyering
cc8b73b1d9 groups: don't test printf and putchar calls for failure
They are unnecessary, since we use gnulib's closeout module.
* src/group-list.c (print_group): Remove explicit error tests.
* src/groups.c (main): Likewise.
(write_error): Remove function.
2008-02-14 11:31:57 +01:00
James Youngman
167b8025ac Replace groups.sh with groups.c.
* src/groups.c (main): New file, replacing groups.sh.
* src/group-list.c, src/group-list.h: New files, factored out of id.c,
implementing the functionality that "id" and "groups" have in common.
* src/id.c (print_full_info): Avoid a segfault when trying to print
an error message if getgroups fails.
(print_group_list): Move to group-list.c.
(print_group): Likewise.
* man/Makefile.am: When building groups.1, obtain the help text
from src/groups.c, not src/groups.sh.
(noinst_HEADERS): Add group-list.h.
(group): Remove rule.
(dist_man_MANS): Remove groups.1.
* doc/coreutils.texi (groups: Print group names a user is in):
Explain why "groups" and "groups $(id -un)" give different results
in existing login sessions after you change the group database.
(id: Print user identity): Likewise for "id".
* po/POTFILES.in: Add src/group-list.c and src/groups.c.
* NEWS: mention this.
* AUTHORS: Update.
2008-02-13 14:37:22 +01:00
Jim Meyering
0601086bd8 Move more test_skip_-using code to follow ". test-lib.sh".
* tests/mv/acl: Likewise.
* tests/cp/acl: Likewise.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2008-02-12 18:48:14 +01:00
Peter Fales
70a2bd1864 tests/touch/not-owner: Source test-lib.sh before using skip_test_.
Signed-off-by: Jim Meyering <meyering@redhat.com>
2008-02-12 18:48:14 +01:00
Jim Meyering
31d7d5d8c8 * tests/Makefile.am (EXTRA_DIST): Remove strace. 2008-02-12 00:10:06 +01:00
Jim Meyering
6ed90c719e tests: Migrate sourced strace file into a function, require_strace_.
* tests/strace: Remove file.
* tests/test-lib.sh (require_strace_): New function.
* tests/mv/atomic: Use require_strace_, rather than ". strace".
* tests/ls/stat-free-symlinks: Likewise.
Peter Fales reported that stat-free-symlinks failed without strace.
2008-02-11 21:44:54 +01:00
Jim Meyering
5b954a8756 * tests/rm/inaccessible: Source test-lib.sh *before* using skip_test_.
Reported by Peter Fales.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2008-02-11 21:40:07 +01:00
Jim Meyering
2746a6c05c Ensure there are no removable (useless) if-before-free tests.
* bootstrap.conf (gnulib_modules): Add useless-if-before-free.
* Makefile.maint (sc_avoid_if_before_free): New rule.
2008-02-10 17:18:03 +01:00
Jim Meyering
d80aaca2da Use a better dirname emulation.
* build-aux/check.mk (_dirname): Define.
(am__check_pre): Use it.
2008-02-10 13:52:47 +01:00
Jim Meyering
48b9ff8555 Avoid test failure when run with risky PATH ("." before /usr/bin).
* build-aux/check.mk (approx_dirname_filter): Define.
(am__check_pre): Emulate dirname using sed.
Report and suggested fix from Bruno Haible in
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12587/focus=12590
2008-02-10 11:26:57 +01:00
Jim Meyering
b0823fb415 * build-aux/.gitignore: Remove file from version control. It's generated.
Signed-off-by: Jim Meyering <meyering@redhat.com>
2008-02-10 10:53:24 +01:00
Jim Meyering
61d93cb0d8 Generate ChangeLog from git log.
* bootstrap.conf (gnulib_modules): Add gitlog-to-changelog.
Ensure that ChangeLog exists, for automake.
* Makefile.am (gen-ChangeLog): New rule.
(dist-hook): Depend on it.
(EXTRA_DIST): Add ChangeLog-2006, ChangeLog-2007, ChangeLog-2008.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2008-02-10 10:53:16 +01:00
Jim Meyering
29ebe8f50a Remove ChangeLog, dividing its content into ChangeLog-200?
* ChangeLog: Remove file.
* ChangeLog-2005: Prepend the 2005 entries.
* ChangeLog-2006: New file.
* ChangeLog-2007: New file.
* ChangeLog-2008: New file.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2008-02-10 10:44:47 +01:00
Jim Meyering
06a369c34e * ChangeLog: Manually update copyright notice at *bottom*.
Signed-off-by: Jim Meyering <meyering@redhat.com>
2008-02-10 10:44:47 +01:00
Jim Meyering
64b39468b8 tests: rm/fail-eperm: require-non-root in perl, not sh
Since it creates no temporaries and since it requires non-root,
do the require-non-root bit in perl, rather than using test-lib.sh.
2008-02-09 10:30:34 +01:00
Jim Meyering
39137a5d05 tests: Remove priv-check. Use new require_root_ function instead.
* tests/priv-check: Remove file.
* tests/Makefile.am (EXTRA_DIST): Remove priv-check.
* tests/test-lib.sh (require_root_): New function.
Use this function rather than sourcing the priv-check file.
* tests/sample-test: Use require_root_ rather than priv-check.
* tests/chown/basic: Likewise.
* tests/cp/cp-a-selinux: Likewise.
* tests/cp/preserve-gid: Likewise.
* tests/cp/special-bits: Likewise.
* tests/ls/nameless-uid: Likewise.
* tests/misc/chcon: Likewise.
* tests/mkdir/writable-under-readonly: Likewise.
* tests/mv/sticky-to-xpart: Likewise.
* tests/rm/fail-2eperm: Likewise.
* tests/rm/no-give-up: Likewise.
* tests/rm/one-file-system: Likewise.
* tests/tail-2/append-only: Likewise.
* tests/touch/now-owned-by-other: Likewise.
* tests/rm/fail-eperm: Use skip_if_root_ rather than priv-check.
* Makefile.maint (sc_root_tests): Reflect this change:
search for the new function name.
2008-02-09 10:30:33 +01:00
Jim Meyering
5282e54c08 tests: factor out the perl-requiring code in many test scripts
* tests/require-perl: New file.
* tests/Makefile.am (EXTRA_DIST): Add require-perl.
* tests/dd/skip-seek: Use it, and remove manual tests.
* tests/du/files0-from: Likewise.
* tests/ls/nameless-uid: Likewise.
* tests/misc/base64: Likewise.
* tests/misc/basename: Likewise.
* tests/misc/cut: Likewise.
* tests/misc/date: Likewise.
* tests/misc/dircolors: Likewise.
* tests/misc/dirname: Likewise.
* tests/misc/expand: Likewise.
* tests/misc/expr: Likewise.
* tests/misc/factor: Likewise.
* tests/misc/fmt: Likewise.
* tests/misc/fold: Likewise.
* tests/misc/head-elide-tail: Likewise.
* tests/misc/ls-misc: Likewise.
* tests/misc/md5sum: Likewise.
* tests/misc/md5sum-newline: Likewise.
* tests/misc/mktemp: Likewise.
* tests/misc/od: Likewise.
* tests/misc/paste-no-nl: Likewise.
* tests/misc/pr: Likewise.
* tests/misc/pwd-long: Likewise.
* tests/misc/seq: Likewise.
* tests/misc/sha1sum: Likewise.
* tests/misc/sha1sum-vec: Likewise.
* tests/misc/sha224sum: Likewise.
* tests/misc/sha256sum: Likewise.
* tests/misc/sha384sum: Likewise.
* tests/misc/sha512sum: Likewise.
* tests/misc/sort-merge: Likewise.
* tests/misc/stat-printf: Likewise.
* tests/misc/sum: Likewise.
* tests/misc/sum-sysv: Likewise.
* tests/misc/test-diag: Likewise.
* tests/misc/tsort: Likewise.
* tests/misc/tty-eof: Likewise.
* tests/misc/unexpand: Likewise.
* tests/misc/wc-files0-from: Likewise.
* tests/misc/xstrtol: Likewise.
* tests/mv/i-1: Likewise.
* tests/rm/empty-name: Likewise.
* tests/rm/fail-eperm: Likewise.
* tests/rm/unreadable: Likewise.

(EXTRA_DIST): *do* require require-perl as a stand-alone, 'source'able script.
2008-02-09 10:30:33 +01:00
Jim Meyering
72565ddffe tests: call skip_test_ in place of echo+exit 77
* tests/mv/no-target-dir: Likewise.
* tests/other-fs-tmpdir: Likewise.
* tests/rm/empty-name: Likewise.
* tests/rm/fail-eperm: Likewise.
* tests/rm/inaccessible: Likewise.
* tests/rm/isatty: Likewise.
* tests/rm/unreadable: Likewise.
* tests/setgid-check: Likewise.
* tests/sparse-file: Likewise.
* tests/strace: Likewise.
* tests/tail-2/append-only: Likewise.
* tests/tail-2/big-4gb: Likewise.
* tests/tail-2/tail-n0f: Likewise.
* tests/touch/dangling-symlink: Likewise.
* tests/touch/fifo: Likewise.
* tests/touch/not-owner: Likewise.
* tests/mv/i-3: Likewise.
* tests/umask-check: Likewise.
* tests/mv/acl: Likewise.
* tests/cp/acl: Likewise.
* tests/chgrp/deref: Likewise.
* tests/chmod/setgid: Likewise.
* tests/cp/existing-perm-race: Likewise.
* tests/cp/file-perm-race: Likewise.
* tests/cp/parent-perm-race: Likewise.
* tests/du/2g: Likewise.
* tests/du/8gb: Likewise.
* tests/du/long-from-unreadable: Likewise.
* tests/du/long-sloop: Likewise.
* tests/du/slink: Likewise.
* tests/ls/nameless-uid: Likewise.
* tests/ls/stat-dtype: Likewise.
* tests/misc/cat-proc: Likewise.
* tests/misc/md5sum-newline: Likewise.
* tests/misc/nice: Likewise.
* tests/misc/od-x8: Likewise.
* tests/misc/pwd-unreadable-parent: Likewise.
* tests/misc/selinux: Likewise.
* tests/misc/stty-row-col: Likewise.
* tests/misc/tac-continue: Likewise.
* tests/misc/arch: Likewise, and source $srcdir/../test-lib.sh *before*
the use of skip_test_.
2008-02-09 10:30:33 +01:00
Jim Meyering
52d9bba712 tests: move the very-expensive file into test-lib.sh
* tests/very-expensive: Remove file.
* tests/test-lib.sh (very_expensive_): New function.
* tests/Makefile.am (EXTRA_DIST): Remove very-expensive.
* tests/cp/perm: Call the new function, rather than sourcing the file.
* tests/tail-2/assert: Likewise.
* tests/tail-2/assert-2: Likewise.
* tests/du/2g: Likewise.
2008-02-09 10:30:33 +01:00
Jim Meyering
0f197c8acd tests: start migrating sourced-file function-like tests into test-lib.sh.
* tests/acl: Remove file.
* tests/test-lib.sh (require_acl_): New function.
* tests/cp/acl: Use require_acl_ instead.
* tests/mv/acl: Likewise.
* tests/Makefile.am (EXTRA_DIST): Remove acl.
2008-02-09 10:30:33 +01:00
Jim Meyering
1bfffd6a2d tests: mv/acl: Don't mention "yes" as a partition name in diagnostic. 2008-02-09 10:30:33 +01:00
Jim Meyering
16c005fe6a We *do* need two different version files.
One for tarball-only, the other to be updated any time we
get a new value of $(VERSION).
* Makefile.am (dist-hook): Create .tarball-version in dist tarball.
* GNUmakefile (_curr-ver): Make git-version-gen use it.
* .gitignore: Ignore it.
2008-02-07 23:31:17 +01:00
Jim Meyering
5ae0543737 Fix a typo in description of size suffixes: s/GB/G/.
* doc/coreutils.texi (od invocation, head invocation, tail invocation):
Spotted by Bert Wesarg.
2008-02-07 23:06:28 +01:00
Jim Meyering
dcc6638e46 NEWS [6.9.90]: head, od, split and tail accept the standard size suffixes 2008-02-07 22:58:38 +01:00
Steven Schubiger
a09dadf100 mkdir, split: write --verbose output to stdout, not stderr.
* src/mkdir.c (verbose_output): New function.
(announce_mkdir): Use it.
* src/split.c (usage): Update.
* src/split.c (cwrite): Write to stdout, not stderr.
* doc/coreutils.texi (split invocation): Remove the mention
of --verbose output being printed to stderr.
* tests/mkdir/p-v: Redirect stdout, not stderr.
* tests/misc/split-a: Likewise.
* NEWS: Mention this change.
* TODO: Remove this item.
2008-02-07 08:26:48 +01:00
Jim Meyering
0981b56f26 Makefile.maint (announcement): Remove stale comment. 2008-02-04 13:24:01 +01:00
Jim Meyering
ae96ae296b Clarify a comment.
* tests/sort/Test.pm: Replace a vague ChangeLog reference with a URL.
2008-02-02 09:04:24 +01:00
Bob Proulx
7cf7888ee9 Improve wording of date and time man page.
* man/date.x: Improve compact description of the --date=STRING.
* man/touch.x: Likewise.
Suggested by A. Costa.
2008-01-31 17:33:54 +01:00
Jim Meyering
1d6931a643 Remove alignment constraint from the sha*_read_ctx functions.
* lib/sha256.c (set_uint32): New function.
(sha256_read_ctx, sha224_read_ctx): Use it.
* lib/sha512.c (set_uint64): New function.
(sha512_read_ctx, sha384_read_ctx): Use it.
* lib/sha256.h: Remove warning about alignment constraint.
* lib/sha512.h: Likewise.
Prompted by similar changes in gnulib's sha1 and md[45] modules.
2008-01-31 14:45:02 +01:00
Jim Meyering
ffd3ba2805 Adapt to new version of vc-list-files.
* tests/check.mk (vc_exe_in_TESTS): Adapt to new constraint
that vc-list-files be run only from $(top_srcdir).
2008-01-31 13:26:28 +01:00
Jim Meyering
9a0b4599c7 Pull vc-list-files from gnulib.
* bootstrap.conf (gnulib_modules): Add vc-list-files.
* build-aux/vc-list-files: Remove file.
2008-01-31 12:17:07 +01:00
Jim Meyering
49d22be1a6 Improve the cp/parent-perm test.
* tests/cp/parent-perm: Also check that perms of existing dest
dirs are changed to match those of corresponding src dir
2008-01-31 10:06:06 +01:00
Paul Eggert
e8bb94a4e3 Don't modify argv in dd due to ',' in arguments.
* src/dd.c: Include quotearg.h.
(operand_matches): New function.
(parse_symbols, operand_is): Use it.
(parse_symbols): 1st arg is now const pointer.  Don't modify it.
msgid arg is now just the message, not a format.
(scanargs): Add some 'const's to check for problems like the above.
2008-01-31 09:24:35 +01:00
Jim Meyering
62b7b422a2 * src/c99-to-c89.diff: Adjust remove.c offsets, again. 2008-01-30 19:37:07 +01:00
Jim Meyering
839f321fde Now that system.h defines is_empty_dir, include "openat.h".
* src/system.h: Include "openat.h" here, ...
* src/chcon.c: ... not here.
* src/chmod.c: Likewise.
* src/chown-core.c: Likewise.
* src/remove.c: Likewise.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2008-01-30 19:29:11 +01:00
Jim Meyering
afeeea66f3 * src/c99-to-c89.diff: Adjust remove.c offsets. 2008-01-30 16:15:18 +01:00
Jim Meyering
ed5c4e770a Improve "rmdir --ignore-fail-on-non-empty"
* src/rmdir.c (remove_parents, main): With --ignore-fail-on-non-empty,
suppress a diagnostic also for other errno values, which can arise
with read-only media or when the parent directory has the immutable
attribute (set via chattr +i).
(errno_may_be_empty, ignorable_failure): New functions.
* src/remove.c (is_empty_dir): Move function to ...
* src/system.h (is_empty_dir): ...here, and make it inline.
Suggested by Josselin Mouette in <http://bugs.debian.org/363011>
via Bob Proulx.
* NEWS: Mention the improvement.
2008-01-30 13:51:38 +01:00
Paul Eggert
194ca7b3f9 Don't modify argv in dd.
* src/dd.c (operand_is): New function.
(scanargs): Use it so that we don't need to modify argv, as a nicety.
Problem reported by Adam Goode in
<http://lists.gnu.org/archive/html/bug-coreutils/2008-01/msg00264.html>.
2008-01-30 07:33:01 +01:00
Jim Meyering
b0d3d97a0f * Makefile.am (BUILT_SOURCES): Ensure that .version exists.
Reported by Bob Proulx.
2008-01-29 17:19:29 +01:00
Bob Proulx
69b1a35c6d Improve the man pages of --date=STRING for 'date' and 'touch'.
* man/date.x: Add a compact description of the --date=STRING.
* man/touch.x: Likewise.
Reported by A. Costa in http://bugs.debian.org/363011
2008-01-29 14:27:06 +01:00
Michael Stone
c1c51585f6 Improve the description of when dd outputs its final statistics.
* doc/coreutils.texi (dd invocation): Say that dd prints stats
upon normal termination and upon SIGINT.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2008-01-29 14:14:07 +01:00
Jim Meyering
a7f5e64909 Avoid "make distcheck" failure: newly-created man/*.1 files not removed
* Makefile.am (EXTRA_DIST): Add .version.
(.version): New rule.
(dist-hook): Don't create $(distdir)/.version here, now that it's
being distributed.
* man/Makefile.am (common_dep): Use ../.version, not ../VERSION.
(../VERSION): Remove rule.
* GNUmakefile (dummy): Create .version, not VERSION.
Add an extra "...:= $(shell..." statement to ensure that
.version exists even when the preceding code is not run.
* .gitignore: Remove both .version and VERSION.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2008-01-29 09:40:31 +01:00
Jim Meyering
533391a2a7 ls: don't segfault on files in /proc with an old libselinux
* src/ls.c (gobble_file): Work around a bug in libselinux1-2.0.15
whereby getfilecon returns 0 yet sets the context to NULL.
Reported by Jan Moringen via Michael Stone in
http://bugs.debian.org/463043
* tests/ls/Makefile.am (TESTS): Add proc-selinux-segfault.
* tests/ls/proc-selinux-segfault: Test for the above fix.
* NEWS: Mention the fix.
2008-01-29 09:23:51 +01:00
Jim Meyering
a6228c5437 Work around Darwin9's set-GID-like group ownership inheritance.
This avoids another spurious Mac OS 10.5.1 (Darwin 9.1) test failure.
* tests/cp/preserve-gid: Accept a group ID of 0, as well.
Reported by Elias Pipping.
2008-01-26 23:05:01 +01:00
Jim Meyering
77abf69a60 Emit "info coreutils 'PROG invocation'" into the man page,
rather than just "info PROG".  The latter would often fail
or simply display the man page.
* man/help2man: Change the template.
Prompted by http://bugs.debian.org/399684
2008-01-26 19:37:23 +01:00
Jim Meyering
ae17ae779e chcon: correct description of --no-dereference (-h) option.
* src/chcon.c (usage): Remove invalid reference to lchown.
Reported by Göran Uddeborg.
2008-01-26 17:40:28 +01:00
Jim Meyering
ca3de82a18 Ensure that each version string change propagates to man pages.
* man/Makefile.am (common_dep): Don't depend on configure.ac for
version changes.  Instead, depend on ../VERSION.
(../VERSION): New rule.
* Makefile.am (DISTCLEANFILES): Define.
* GNUmakefile: Update ./VERSION.
* .gitignore: List VERSION.
Reported by Sven Joachim.
2008-01-26 17:16:38 +01:00
Jim Meyering
76c9c9845e Avoid cp/preserve-gid test failure on Mac OS 10.5.1 (Darwin 9.1)
* tests/cp/preserve-gid: Set group as well as owner on ".".
Reported by Elias Pipping.
2008-01-26 17:16:38 +01:00
Jim Meyering
c0c8685d46 Improve a warning about non-portable "mv" usage.
* doc/coreutils.texi (mv invocation): Adjust the warning: moving a
dir-symlink-specified-with-a-trailing-slash works in a surprising
manner only on some systems.  Reported by Tomas Pospisek in
http://bugs.debian.org/343652.
2008-01-26 17:16:38 +01:00
Mike Frysinger
2c6754363f src/dircolors.hin (TERM): Add jfbterm. 2008-01-26 17:16:37 +01:00
Jim Meyering
b5d6e9db91 Clean up build-related rules.
* Makefile.cfg (gnulib_dir): Update comment.
* Makefile.maint (announcement) [cl_date, utc_date]: Don't set
now-unused variables.
2008-01-26 17:16:22 +01:00
Jim Meyering
73cfcbac05 TODO: Update the note on getgrouplist. 2008-01-26 12:31:19 +01:00
Zvi Har'El
6b5f3dd224 Add a ";", so "make install" works with --enable-install-program=su.
* src/Makefile.am (install_su): Add a semicolon.
2008-01-26 10:04:17 +01:00
Jim Meyering
d81716addb Avoid misinterpreting mgetgroups failure in running root-only tests.
* src/setuidgid.c (main): Don't misinterpret as size_t an error
return from mgetgroups.  Reported by Theodoros V. Kalamatianos.
2008-01-26 10:04:17 +01:00
Jim Meyering
3b9b0c5c16 * README: Remove/convert a few stray mentions of CVS. 2008-01-23 00:18:24 +01:00
Jim Meyering
5983242eef Require automake-1.10.1, for its support of dist-lzma.
* configure.ac (AM_INIT_AUTOMAKE): Require 1.10.1.
2008-01-22 23:03:48 +01:00
Jim Meyering
ce0adae571 .prev-version: Record version: 6.10. 2008-01-22 08:12:02 +01:00
Jim Meyering
1440ca24fd Version 6.10 2008-01-22 00:31:02 +01:00
Jim Meyering
9675ed627d * NEWS: Record release date. 2008-01-22 00:30:14 +01:00
Jim Meyering
ec8e146a6d * README-hacking: Update to reflect existence of automake-1.10.1. 2008-01-22 00:28:23 +01:00
Jim Meyering
9783d76bf6 Update README.
* README: Remove a note about failing tests on SunOS 4.
On Mac OS 10.5.1 (Darwin 9.1), you'll need --disable-acl.
(Running tests as root): Recommend using "check-root", not "check".
2008-01-18 09:26:49 +01:00
Jim Meyering
27d1636b33 Do not define-away __attribute__ when __STRICT_ANSI__ is set.
* src/system.h (__attribute__): Remove the __STRICT_ANSI__ disjunct.
It has been unnecessary since approximately gcc-2.6, and now, leaving
it would cause gcc -Werror -ansi to fail to compile csplit.c.
* gl/lib/randread.c (__attribute__): Likewise.
2008-01-17 10:53:44 +01:00
Jim Meyering
0702758ca4 NEWS: Mention the configure.ac fix. 2008-01-16 21:20:36 +01:00
Jim Meyering
1a8e00ef27 * TODO: Add an introduction.
Remove a few entries.  Update a few others.
2008-01-16 20:18:47 +01:00
Jim Meyering
d2e298b45d Remove each output redirection target before writing to it.
* tests/check.mk (vc_exe_in_TESTS): Remove t1 and t2 _first_,
in case they exist beforehand and are not writable.
* build-aux/check.mk (am__check_pre): Likewise, remove $@-t.
2008-01-13 12:47:42 +01:00
Elias Pipping
f088d94d25 * configure.ac: Correct a non-portable use of sed. 2008-01-13 09:16:09 +01:00
Mike Frysinger
9e8a6b696e * src/dircolors.hin (image formats): Add the .svg suffix. 2008-01-12 16:21:04 +01:00
Jim Meyering
daf28a3110 Use new version of announce-gen.
* Makefile.maint (announcement): Remove use of the
--gnulib-snapshot-time-stamp option.
Use new --gnulib-version option instead.
(gnulib-version): New variable.
2008-01-12 09:55:29 +01:00
Jim Meyering
e4c0fce73c .prev-version: Record previous version: 6.9.92. 2008-01-12 01:17:10 +01:00
Jim Meyering
8ad8aa5322 Version 6.9.92 2008-01-12 00:34:31 +01:00
Jim Meyering
e52a7c28ac tests/tr/Test.pm: Prefer en_US.ISO-8859-1 to en_US.iso88591.
Suggestions from James Youngman and Pádraig Brady in
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12218/focus=12227
2008-01-11 10:07:01 +01:00
Jim Meyering
6d80b05c5a * README-hacking: Add Git to the list of required tools. 2008-01-10 14:43:17 +01:00
Paul Eggert
424feb6301 Fix a minor race condition when using cp -p --parents.
* src/cp.c (make_dir_parents_private): If stat fails on the parent
directory, do not add it to the list of directories whose modes
might need fixing later.  Also, do not bother invoking 'stat'
unless the stat results might be needed later.
2008-01-09 11:24:12 +01:00
Jim Meyering
e80379051b parent-perm: avoid a bizarre test failure.
* tests/cp/parent-perm: Accommodate the situation in which
chmod ("dir", 02755) returns 0 yet fails to set the S_ISGID bit.
2008-01-08 15:53:29 +01:00
Jim Meyering
0c3544ddc2 Remove uses of now-undefined Makefile variable.
* src/Makefile.am (dir_LDADD, ls_LDADD, vdir_LDADD): Remove uses
of no-longer-defined variable, $(LIB_ACL_TRIVIAL).
2008-01-08 10:34:56 +01:00
Jim Meyering
b84880d980 cp (but not copy.c): plug a small leak.
* src/cp.c (do_copy) [--parents]: Free the attribute list.
2008-01-07 17:10:07 +01:00
Jim Meyering
2deb4bd589 Make a racy test failure less likely to happen.
* tests/misc/tty-eof: Uncomment a debug "warn".
This change happens to make this test far less likely to fail.
With that statement commented out, this test would fail about
20% of the time on my desktop.  Now, it's gone 100 iterations
in a row with no failure.
2008-01-07 14:21:34 +01:00
Jim Meyering
ab1c9b54b1 NEWS: Mention the cp bug fix. 2008-01-07 12:18:00 +01:00
Jan Blunck
a54e8bb8a5 cp --parents: don't use uninitialized memory when restoring permissions
* src/cp.c (make_dir_parents_private): Always stat each source
directory, in case its permissions are required in re_protect,
when setting permissions of a just-created destination directory.
2008-01-07 12:13:42 +01:00
Jim Meyering
db58094e11 cp: add a test for today's bug fix.
* tests/cp/parent-perm: New script.  Test today's change.
Based on reproducer from Jan Blunck.
* tests/cp/Makefile.am (TESTS): Add parent-perm.
2008-01-07 12:07:07 +01:00
Jim Meyering
9b76bc2b54 touch: add a test for today's change.
* tests/touch/now-owned-by-other: New script.  Test today's change.
* tests/touch/Makefile.am (TESTS): Add now-owned-by-other.
* tests/Makefile.am (all_t): Add td, a new root-only test.
(td): New target.
* NEWS: Mention the improvement.
2008-01-06 12:50:54 +01:00
Paul Eggert
fd12e98f36 touch: ignore "-d now" option, when appropriate
* src/touch.c (main): Treat "-d now" as if it were absent, if
neither -a nor -m is specified.  Problem reported by Dan Jacobson in:
http://lists.gnu.org/archive/html/bug-coreutils/2008-01/msg00010.html
2008-01-06 09:54:15 +01:00
Jim Meyering
6efd10462d Avoid tr case-conversion failure in some locales.
* src/tr.c (skip_construct): New function.
(main): When processing a pair of case-converting classes, don't
iterate through the elements of each [:upper:] or [:lower:] class.
Reported by Gerald Pfeifer in
<http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12218>.
* tests/tr/Test.pm [tolower-F]: New test for the above fix.
[upcase-xtra, dncase-xtra]: New tests, for a related code path.
* NEWS: Mention the tr bug fix.
2008-01-06 00:09:29 +01:00
Jim Meyering
df8c2bcfe0 * .gitignore: Ignore lzma-compressed files, too.
Signed-off-by: Jim Meyering <meyering@redhat.com>
2008-01-02 20:06:09 +01:00
Jim Meyering
092a7e3e4b Update copyright date.
* tests/sample-test: Likewise.
* doc/coreutils.texi: Likewise.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2008-01-02 20:06:09 +01:00
Jim Meyering
d1cfc46855 Add a syntax check, so this doesn't recur. Reorganize existing checks.
* doc/Makefile.am (sc-exponent-grouping):
(syntax_checks): New variable.
(sc-avoid-io, sc-avoid-non-zero, sc-avoid-timezone):
(sc-avoid-zeroes, sc-use-small-caps-NUL): New rules, extracted
from check-texinfo.
(check-texinfo): Depend on $(syntax_checks).
2007-12-31 11:28:02 +01:00
Jim Meyering
bad0510aea doc: Put braces around multi-digit exponents.
Reported by Darrel Francis.
2007-12-31 11:24:14 +01:00
Mike Frysinger
eef4fff743 * src/dircolors.hin (TERM): Add gnome-256color. 2007-12-30 09:25:06 +01:00
Ralf Wildenhues
012f96b95d doc/coreutils.texi: Fix a typo. Avoid the term `relationals'. 2007-12-21 19:34:50 +01:00
Jim Meyering
c3cac089b1 Use comma-separated list in ./configure --help output.
* configure.ac: Map commas to spaces in excluded-program list.
Use a comma-separated list, not a space-separated one.
* m4/include-exclude-prog.m4 (gl_INCLUDE_EXCLUDE_PROG):
Expect list of program names to be comma-separated.
Reported by Jan Bauke Douma.
2007-12-20 17:38:57 +01:00
Jim Meyering
2fc00bda8c Avoid another "make check" failure due to omitted programs.
* tests/test-lib.sh (require_built_): New function.
* tests/misc/groups-version: Use it to skip this test if
either groups or id is not built.
2007-12-20 14:19:56 +01:00
Jim Meyering
8ddc5056f2 Avoid spurious "make check" failures due to omitted programs.
* man/Makefile.am (distcheck-hook): Make check rules dependents of
this target, not of check-local, so that people aren't distracted by
failures due to programs omitted via --enable-no-install-program=...
2007-12-20 14:03:12 +01:00
Paul Eggert
875e96efab Improve wording in uniq's --help "Note". 2007-12-19 10:01:57 +01:00
Jim Meyering
bbc55e488d * src/uniq.c (usage): Say "key-selection", not "field-selection".
Quote example commands consistently.
2007-12-18 21:14:49 +01:00
Jim Meyering
e19a5aa428 Note that sorting uniq's input is often useful.
Suggested by Eric Blake.
2007-12-18 11:20:45 +01:00
Jim Meyering
d1dba816fb .prev-version: Record previous version: 6.9.91. 2007-12-15 10:13:44 +01:00
Jim Meyering
7477cd1662 Version 6.9.91. 2007-12-15 09:44:40 +01:00
Jim Meyering
e657807596 * Makefile.cfg (gpg_key_ID): Use new, longer signing subkey. 2007-12-15 09:43:43 +01:00
Jim Meyering
d11bfb0454 * tests/mv/part-symlink: Redirect diff output to stderr. 2007-12-12 10:25:38 +01:00
Jim Meyering
7407dc042a Add a test to exercise today's bug fix.
* tests/misc/selinux: Test for today's bug fix.
* NEWS: Mention the SELinux "ls -l" fix.
2007-12-11 21:41:52 +01:00
Paul Eggert
4245876e23 "ls -l" wouldn't output "+" on SELinux hosts unless -Z was also given.
* src/ls.c (gobble_file): Also get the file context if -l is specified.
Treat getfilecon failures like file_has_acl failures.
(UNKNOWN_SECURITY_CONTEXT): New constant.
(clear_files): Don't free it.
(gobble_file): Set unknown security contexts to it; that way, we
don't have to have special cases for unknown contexts.
(print_long_format, print_file_name_and_frills): Don't worry
about scontext being null, since it's always some string now.
2007-12-11 21:16:24 +01:00
Jim Meyering
291eb90a0a * NEWS: Add the "Bug fixes" heading. 2007-12-11 19:08:03 +01:00
Jim Meyering
de5b055bbf "rm" as root would fail to unlink a non-directory on OS X 10.4.x
* src/remove.c (remove_entry) ["can unlink directories"]: Fix a
mistakenly reversed condition.
* NEWS: Mention this bug fix.
Reported by Pieter Bowman.
2007-12-09 00:57:00 +01:00
Jim Meyering
f16499e4d5 * src/c99-to-c89.diff: Adjust shred.c offsets. 2007-12-08 14:08:16 +01:00
Jim Meyering
d7ed77980b Reflect change in gnulib: don't include getpagesize.h,
now that it's provided by unistd.h.
* src/cat.c: Don't include getpagesize.h.
* src/copy.c: Likewise.
* src/dd.c: Likewise.
* src/shred.c: Likewise.
* src/split.c: Likewise.
2007-12-04 00:42:18 +01:00
Jim Meyering
ecec47635a Copy a .po file into place also when the target doesn't exist.
* bootstrap (gnulib_tool): ... not just when the checksum differs.
So now, if I manually remove po/xx.po, rerunning bootstrap will
copy the latest into place.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2007-12-02 21:03:42 +01:00
Jim Meyering
681dc1ee01 Make my-distcheck depend on "check".
* Makefile.maint (my-distcheck): Also depend on "check", so I can't tag
and release something that fails "make check" (however harmless) when
run in a checked-out-from-git dir, but not in the distributed tarball.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2007-12-02 21:03:42 +01:00
Jim Meyering
b1a1db5900 * NEWS: Add the usual "Noteworthy changes in release 6.9.91..." line. 2007-12-02 18:39:40 +01:00
Jim Meyering
6bbbf0314e Remove just-installed su, if unable to make it set-UID root.
Normally, su isn't even installed.  However, if you configure with
--enable-install-program=su, and then install with insufficient
privileges, we now make sure to remove the just-installed binary.
* src/Makefile.am (install-exec-hook): Rename from install-exec-local,
so that this rule is guaranteed to be run *after* installation.
If unable to chown and chmod the installed "su" program, remove it.
Reported by Greg Schaefer.
2007-12-02 16:19:04 +01:00
Bob Proulx
5891814f34 Make test script, existing-perm-race, executable.
* tests/cp/existing-perm-race: Update file mode.
2007-12-02 08:57:38 +01:00
Jim Meyering
cc5f0b31b2 .prev-version: Record previous version: 6.9.90. 2007-12-01 23:11:13 +01:00
Jim Meyering
98b872c48a Version 6.9.90. 2007-12-01 22:46:33 +01:00
Jim Meyering
bb5c20212f NEWS: Remove the now-untrue statement about cp vs. dangling symlinks 2007-12-01 22:46:05 +01:00
Jim Meyering
065db950f0 Change release procedure: tag *before* running e.g., "make stable".
* Makefile.maint (vc-dist): Don't tag.  Now, you must apply the tag
before running "make beta", "make stable", etc.
(vc-tag-check): Remove rule.  No longer makes sense.
2007-12-01 20:04:44 +01:00
Jim Meyering
f25ce1bc94 * Makefile.maint (vc-tag-check): Correct check for existing git tag. 2007-12-01 19:03:00 +01:00
Jim Meyering
214d27e146 Defer NEWS and ChangeLog checks until after the version-changing tag.
* Makefile.maint (alpha beta major): Don't depend on the
news-date-check changelog-check targets.  They must fail before
applying the version-changing tag.  Instead, run them after "vc-dist".
2007-12-01 18:50:40 +01:00
Jim Meyering
ab73462d4b * NEWS: Mention some of the SELinux changes.
Record release date and new version number.
* src/stat.c (main): Adjust a comment.
2007-12-01 18:48:43 +01:00
Jim Meyering
e7c03171d1 TODO: Add entries (documentation needed); remove the "add mktemp program" one. 2007-12-01 17:43:49 +01:00
Jim Meyering
0d9438bb87 Add "extern" keyword to declaration of cp_options_default.
* src/copy.c (cp_options_default): Mark as "extern", so the
"sc_tight_scope" part of "make distcheck" passes.
2007-12-01 17:04:52 +01:00
Jim Meyering
9fed2e35c0 Change comments: say bug present up to coreutils-6.9, not fixed in 6.10.
* tests/cut/Test.pm: Adjust comment.
* tests/misc/cut: Likewise.
* tests/misc/ls-misc: Likewise.
* tests/misc/od: Likewise.
* tests/misc/stty-invalid: Likewise.
* tests/tr/Test.pm: Likewise.
2007-12-01 16:22:47 +01:00
Paul Eggert
20ef6c7b9c Add a test for cp -p and existing file permissions.
* tests/cp/Makefile.am (TESTS): Add existing-perm-race.
* tests/cp/existing-perm-race: New test.  It isn't much of a
test yet, since it's hard to catch the race, but it has a FIXME
that will let us do a better test later.
2007-12-01 10:10:52 +01:00
Paul Eggert
b64119bc54 Fix a security race with "cp -p A B" when B already exists.
* src/copy.h (struct cp_options): New member owner_privileges.
* src/copy.c (USE_ACL): Define to 0 if not defined, for convenience.
(owner_failure_ok): New function.
(set_owner): Avoid a security-related race by doing an extra chmod
first if it looks like there might be trouble right after a chown.
Accept a source struct stat rather than a uid and gid, and
accept a boolean NEW_DST and destination struct stat.
All callers changed.
* src/copy.h (cp_options_default): New function, replacing the
old chown_privileges.
* src/copy.c (cp_options_default): Likewise.
* src/cp.c (cp_option_init): Use it.
* src/install.c (cp_option_init): Likewise.
* src/mv.c (cp_option_init): Likewise.
2007-12-01 10:09:57 +01:00
Jim Meyering
317413874c Avoid a spurious test failure when build directory is set-GID.
* tests/cp/fail-perm: Ensure that '.'s set-GID bit is off.
2007-11-30 17:05:07 +01:00
Jim Meyering
9db1c230c4 Be extra careful to quote $abs_top_builddir-derived names.
* tests/misc/ls-misc (shell_quote): New function.
Use it to quote file names derived from $abs_top_builddir,
in case it contains shell meta-characters.  This is not currently
needed, since CuTmpdir detects the fishy name and skips the test.
But it's important enough to add the extra protection.
Reported by Ralf Wildenhues.
2007-11-30 13:45:38 +01:00
Jim Meyering
94a2bd5bf7 Include test name in the "unsafe working directory name" diagnostic.
* tests/CuTmpdir.pm (import): If $ME is '-', use $prefix.
2007-11-30 13:40:25 +01:00
Ralf Wildenhues
0db207c66c Add quotes to protect against white space in build dir name.
* tests/check.mk (TESTS_ENVIRONMENT): Quote $(abs_srcdir).
* tests/chmod/setgid: Quote absolute names.
* tests/misc/help-version: Likewise.
* tests/misc/pwd-unreadable-parent: Likewise.
* tests/rmdir/ignore: Likewise.
* tests/test-lib.sh: Likewise.
2007-11-30 12:14:57 +01:00
Ralf Wildenhues
d7ed3bcb8d Define `tst', for CU_TEST_NAME.
* build-aux/check.mk (am__check_pre): Set `tst', for
CU_TEST_NAME in tests/check.mk.
2007-11-30 10:25:09 +01:00
Ralf Wildenhues
688073771d * tests/CuTmpdir.pm (END): Do not do the cleanup if $dir is not
defined, because it then goes wild and changes the mode of all
directories below $HOME.  Undefined $dir can happen if the test
is to be skipped because of an unsafe working directory name.
2007-11-30 08:53:38 +01:00
Paul Eggert
9962f24cc4 Close a file descriptor leak when cp --preserve=context fails.
* src/copy.c (copy_reg): Close dest_desc too, if getfscreatecon
or fsetfilecon fail.
2007-11-29 08:32:54 +01:00
Jim Meyering
4352534a0c README: Document the known problem with gettext <= 0.17. 2007-11-28 22:44:38 +01:00
Paul Eggert
77f8502ea7 * gl/modules/randread (Depends-on): Remove nonexistent rand-isaac. 2007-11-28 22:29:38 +01:00
Jim Meyering
9696161574 Don't block use of 'cat' or 'wc' in "make check".
* Makefile.maint (my-distcheck): Add "cat" and "wc" to the list
of programs that we can't blacklist.
2007-11-27 20:03:08 +01:00
Jim Meyering
3a60f14cbb Fix md5sum+sha*sum on sparc: regenerate files with latest autoconf.
* configure et al: Regenerate with very latest version of autoconf
(v2.61a-312-gb524b0f), to fix md5sum and sha*sum miscompilation
on big-endian systems (like sparc) due to lack of the required
definition in of WORDS_BIGENDIAN in lib/config.h.
2007-11-27 19:26:25 +01:00
Jim Meyering
ac8a9a1ff0 setuidgid.c: more cleanup
* src/setuidgid.c: Include "mgetgroups.h".
(main): Don't presume there's a fixed limit on the maximum number
of group IDs.  Don't use NGROUPS; it's artificially low.
Change the name of a local: s/gids_count/n_gids/.
Remove non-portable "const": s/const int tmp =.../int tmp =.../
2007-11-26 18:16:13 +01:00
Jim Meyering
9d0a315369 Document install's -D option.
* doc/coreutils.texi (install invocation): Document -D.
Reported by Akim Demialle.
2007-11-25 18:39:47 +01:00
Jim Meyering
910267665e setuidgid: Update --help output.
* src/setuidgid.c (usage): Describe -g GID[,GID1...] option.
Mention that USER may be a numeric ID or a user name.
2007-11-25 18:26:03 +01:00
Jim Meyering
3669d2b820 Tweak new test.
* tests/cp/preserve-gid: Split some long lines.
Prepend "+" to numeric uid and gid chown arguments, on principle.
Use skip_test_.
2007-11-24 15:10:59 +01:00
Jim Meyering
ada15fc823 setuidgid: minor clean-up.
* setuidgid.c: Include "xstrtoul.h".
(main): Detect overflow in string-to-gid_t and -to-uid_t conversions.
Improve diagnostics.
2007-11-24 15:10:28 +01:00
Jim Meyering
0125fd0fcb setuidgid.c: Normalize leading white space: no more TABs 2007-11-24 15:10:04 +01:00
Lasse Collin
a382db6a04 Test the new feature: cp -p preserves the GID whenever possible.
* tests/cp/preserve-gid: New file.  Test for today's change.
* tests/cp/Makefile.am (TESTS): Add preserve-gid.
* tests/Makefile.am (all_t): Add tc.
(tc): New target.
2007-11-24 15:09:17 +01:00
Lasse Collin
5c11250915 setuidgid: accept numeric UID, and new option -g GID,GID1,GID2,...
* src/setuidgid.c: Add functionality for the new test above.
2007-11-24 15:08:43 +01:00
Lasse Collin
cbc06bb639 "cp -p" tries to preserve GID even if preserving the UID fails.
* NEWS: Mention this new feature.
* src/copy.c (set_owner): Try to preserve just the GID,
when initial fchown/lchown fails.
* src/cp.c (re_protect): Likewise.
2007-11-24 15:06:43 +01:00
Jim Meyering
ad8fbe0dd2 * src/runcon.c (main): Remove unused parameter, "envp". 2007-11-23 09:03:23 +01:00
Jim Meyering
0e9b06482e Add tests to show new class of strings accepted by date -d.
* tests/misc/date (rel-1day, rel-plus1): New tests for the recent
change in gnulib's getdate.y.
* NEWS: Mention the fix.
2007-11-23 08:27:16 +01:00
Jim Meyering
849c3830dc Quiet warnings about unused parameters.
* src/copy.c (set_author) [!HAVE_STRUCT_STAT_ST_AUTHOR]:
"Use" each of the parameters.
2007-11-22 09:24:17 +01:00
Jim Meyering
7794100ef8 * GNUmakefile: Correct the "rerunning..." diagnostic. 2007-11-22 08:44:38 +01:00
Jim Meyering
fe9033c309 Make it easier to diagnose PATH-induced "make distcheck" failures.
* Makefile.maint (write_loser): Define.
(my-distcheck): Use an always-failing wrapper script, that gives
a diagnostic, not "false".
Run only "make -C tests check" with the restrictive PATH.
Run the new gnulib-tests/ with the usual PATH.
2007-11-22 08:42:32 +01:00
Jim Meyering
2bdc481219 cp: by default, refuse to copy through a dangling destination symlink
* NEWS: Mention this change.
* doc/coreutils.texi (cp invocation): Describe the new behavior.
* src/copy.c: No longer include "canonicalize.h".
(copy_reg): Upon failure to open a dangling destination symlink, don't
canonicalize the name, but rather fail (default) or, with POSIXLY_CORRECT,
repeat the open call without O_EXCL (potentially dangerous).
* src/copy.h (struct cp_options) [open_dangling_dest_symlink]:
New member.  Reorder the others, grouping "bool" and "enum"
members together.
* tests/cp/thru-dangling: Test for changed and new behavior.
* src/cp.c (cp_option_init): Initialize new member.
* src/install.c (cp_option_init): Likewise.
* src/mv.c (cp_option_init): Likewise.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2007-11-22 00:19:06 +01:00
Jim Meyering
fa636dcf6a Fix Pádraig's name in ChangeLog. 2007-11-21 22:13:17 +01:00
Pádraig Brady
4e732c7379 Improve the descriptions of the split command options.
* doc/coreutils.texi (split invocation):
2007-11-21 21:07:50 +01:00
Jim Meyering
2fb649815c * src/c99-to-c89.diff: Adjust seq.c offsets. 2007-11-21 18:41:06 +01:00
Paul Eggert
32f31bad5e * src/seq.c (print_numbers): Rewrite in an attempt to avoid the
more-general rounding issues exposed by the previous patch.
2007-11-21 18:37:08 +01:00
Jim Meyering
a9805326e4 * src/c99-to-c89.diff: Adjust seq.c offsets. 2007-11-18 21:20:37 +01:00
Jim Meyering
98ed526f44 Remove unused parameter in remove.c.
* src/remove.c (fd_to_subdirp): Remove unused parameter.
(remove_cwd_entries, remove_dir): Update callers.
2007-11-18 21:19:33 +01:00
Jim Meyering
e81fce4a73 bootstrap: work also with 4-argument variant of AC_INIT (from gnulib)
2007-11-18  Sergey Poznyakoff  <gray@gnu.org.ua>
* bootstrap (gnulib_extra_files): Adjust sed command.
2007-11-18 11:55:45 +01:00
Jim Meyering
93914c7b12 Correct preceding patch.
* src/seq.c (print_numbers): Also handle first < last && step < 0.
* tests/misc/seq [empty-rev]: New test for this case.
2007-11-17 10:04:07 +01:00
Jim Meyering
a03811f519 "seq .1 .1" would mistakenly generate no output on some systems
* NEWS: Say this.
* src/seq.c (print_numbers): Handle another floating point corner case.
This avoids failure of seq's eq-wid-7 test on FreeBSD 6.1.
2007-11-17 09:39:42 +01:00
Paul Eggert
6076d0ae2f Port tests/rmdir/ignore away from GNU/Linux.
* tests/rmdir/ignore: Don't assume that rmdir($PWD) will fail
with errno==ENOTEMPTY when $PWD is not empty; Posix also allows
rmdir to fail with errno==EBUSY.
2007-11-17 00:04:08 +01:00
Jim Meyering
a2f12f2e41 Avoid an obscure new "make distcheck" failure.
* Makefile.maint (my-distcheck): Also allow 'mv', for its use
in gnulib-tests/Makefile.
2007-11-16 11:08:19 +01:00
Paul Eggert
fe18e9f7e5 Port readlink-fp-loop to Solaris.
* tests/misc/readlink-fp-loop (symlink_loop_msg): New var,
which records the symlink-loop message, whose wording is
not standardized by Posix.  Do not rely on "echo x > p/1"
to work when p/1 has a lot of indirect symlinks.  (I'm surprised
that it works on Linux.  Perhaps a Linux bug?)
2007-11-16 11:04:31 +01:00
Jim Meyering
1379ed974f Port to Solaris 'make' and use a Posixish shell on Solaris.
* bootstrap.conf (gnulib_modules): Add gnu-make, posix-shell.
* build-aux/check.mk (SHELL): Set to $(PREFERABLY_POSIX_SHELL),
so that commands can assume Posix syntax.
(ENABLE_HARD_ERRORS, TEST_LOGS): Don't use GNU Make's "?=" syntax.
(SH_E_WORKAROUND): New macro.
(am__check_pre, $(TEST_SUITE_LOG)): Use it.
(am__check_pre): Fail if "mkdir" fails.  Use $(SHELL)
rather than relying on the "#!/bin/sh" in the file, so that tests
can use Posix syntax.
(am__check_pre, am__tty_colors): Use $$src rather than $$<, to
support the Posix-make $(TEST_LOGS) rule.
(%.log: %.test, %.log: %$(EXEEXT)): Remove unused inference rules
that rely on a GNU Make extension and cause Solaris 'make' to fail.
(SUFFIXES): New macro, so that we can use Posix style inference rules.
(%.log: %): Use this rule only if GNU_MAKE.
Set $$src so that macros can use $$src rather than $$<.
(CHECK-FORCE, DEPENDENCY, $(TEST_LOGS)): New macros and rules,
which rely only on Posix 'make' semantics, and are used only with
non-GNU 'make' implementations.  $(TEST_LOGS) invokes 'make'
recursively (and a bit inefficiently) to simulate the GNU 'make'
rules.
(.log.html): Renamed from "%.html: %.log", so that it relies only
on Posix 'make' semantics.
(check-clean, .PHONY): Do not depend on check-clean-local, since
Solaris 'make' complains about nonexistent rules like that.
* src/Makefile.am (SUFFIXES): Remove; no longer needed.
(groups): Use a specific rule rather than an inference rule that
is only instantiated once.  The inference-rule approach does not
work with Solaris 'make', which gets confused by the "groups:
Makefile" line.  It's not clear from the Posix spec that Solaris
'make' is buggy here, so instead of worrying about it, rewrite
the makefile so that it clearly conforms to Posix.
* tests/check.mk (TESTS_ENVIRONMENT): Export PACKAGE_BUGREPORT.
GNU 'make' does this automatically for us, but Solaris 'make'
doesn't.

2007-11-15  Paul Eggert  <eggert@cs.ucla.edu>
2007-11-16 11:03:03 +01:00
Paul Eggert
f77576a775 Port to Solaris 8 perl, which does not support "use warnings;".
* tests/dd/skip-seek: Skip test if "use warnings;" fails.
* tests/du/files0-from: Likewise.
* tests/misc/base64: Likewise.
* tests/misc/basename: Likewise.
* tests/misc/cut: Likewise.
* tests/misc/date: Likewise.
* tests/misc/dircolors: Likewise.
* tests/misc/dirname: Likewise.
* tests/misc/expand: Likewise.
* tests/misc/expr: Likewise.
* tests/misc/factor: Likewise.
* tests/misc/fmt: Likewise.
* tests/misc/fold: Likewise.
* tests/misc/head-elide-tail: Likewise.
* tests/misc/ls-misc: Likewise.
* tests/misc/md5sum: Likewise.
* tests/misc/md5sum-newline: Likewise.
* tests/misc/mktemp: Likewise.
* tests/misc/od: Likewise.
* tests/misc/paste-no-nl: Likewise.
* tests/misc/pr: Likewise.
* tests/misc/seq: Likewise.
* tests/misc/sha1sum: Likewise.
* tests/misc/sha1sum-vec: Likewise.
* tests/misc/sha224sum: Likewise.
* tests/misc/sha256sum: Likewise.
* tests/misc/sha384sum: Likewise.
* tests/misc/sha512sum: Likewise.
* tests/misc/sort-merge: Likewise.
* tests/misc/stat-printf: Likewise.
* tests/misc/sum: Likewise.
* tests/misc/test-diag: Likewise.
* tests/misc/tsort: Likewise.
* tests/misc/unexpand: Likewise.
* tests/misc/wc-files0-from: Likewise.
* tests/misc/xstrtol: Likewise.
* tests/mv/i-1: Likewise.
* tests/rm/empty-name: Likewise.
* tests/rm/unreadable: Likewise.
2007-11-16 09:35:54 +01:00
Andreas Schwab
9c31db8cc4 * m4/include-exclude-prog.m4 (gl_REMOVE_PROG): Fix syntax error.
Remove trailing space from result.
2007-11-15 14:06:12 +01:00
Jim Meyering
2ed532618f Avoid misbehavior of a cross-device "mv" or "install".
Those programs must not dereference a destination symlink.
* src/copy.c (copy_reg): Don't treat a dangling destination symlink
differently in move mode.  In move mode, the only way the added
O_EXCL can cause failure is when some other process has recreated
the file this code unlinked a few instructions before.
2007-11-15 13:04:13 +01:00
Jim Meyering
47a46c844c Another bootstrap kludge.
* bootstrap: Ensure gnulib-tests/test-*.sh are executable
2007-11-14 23:52:42 +01:00
Jim Meyering
9c59b53d8b src/install.c (setdefaultfilecon): Stub-out the entire function. 2007-11-14 23:34:56 +01:00
Jim Meyering
92490afb6d #ifdef-out matchpathcon-related code, for now.
* src/install.c (setdefaultfilecon): #ifdef-out all of the
matchpathcon-related code, until it's more efficient.
2007-11-14 22:36:10 +01:00
Jim Meyering
8e412d1ac0 Use gnulib's stpncpy module, now required by install.c
* bootstrap.conf (gnulib_modules): Add stpncpy.
2007-11-14 20:37:06 +01:00
Jim Meyering
c369e79c60 Enable gnulib-tool's --with-tests option.
* bootstrap: After all is done, transform the generated gnulib-tests/gnulib.mk.
* bootstrap.conf (gnulib_tool_option_extras): Set it here.
* gnulib-tests/Makefile.am: New file.
* Makefile.am (SUBDIRS): Add gnulib-tests.
* configure.ac (AC_CONFIG_FILES): Add gnulib-tests/Makefile.
* m4/jm-macros.m4 (coreutils_MACROS) [ARGMATCH_DIE_DECL]: Omit the
"extern " prefix to "void usage ()", so that the macro string value can
be used to construct a function definition in gnulib's test-argmatch.c.
2007-11-14 20:35:34 +01:00
Benno Schulenberg
080ac77850 Likewise for description of cp -a in doc/coreutils.texi: s/-dpPR/-dpR/. 2007-11-13 00:02:29 +01:00
Benno Schulenberg
b7c2db6766 Clarify description of cp's -a option.
* src/cp.c (usage) [-a]: Remove unnecessary 'P'.
Since option -d of 'cp' includes the function of -P, mentioning the
latter in the description of option -a is redundant and therefore
slightly confusing, as the reader tries to figure out what it adds.
2007-11-12 19:13:32 +01:00
Jim Meyering
ba34974090 bootstrap: fix typo to enable use of $gnulib_tool_option_extras.
* bootstrap (gnulib_tool_options): Add a space before the use
of $gnulib_tool_option_extras, so that it's separated from the
preceding argument.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2007-11-10 18:41:41 +01:00
Jim Meyering
56e3106e93 install+SELinux: reduce a 12x performance hit to ~1.5x
* src/install.c (setdefaultfilecon): Call matchpathcon_init_prefix,
to mitigate what would otherwise be a large performance hit due to
the use of matchpathcon.
Dan Walsh suggested the use of matchpathcon_init_prefix.
* gl/lib/se-selinux.in.h (matchpathcon_init_prefix): Define.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2007-11-10 18:41:14 +01:00
Jim Meyering
ca5b9746c8 Adapt to gnulib's s/jm_/gl_/ cache variable renaming.
* configure.ac: Change the cache variable name prefix "jm_" to "gl_",
to match today's change in gnulib.
2007-11-08 10:55:02 +01:00
Jim Meyering
656c37d630 Fix bootstrap failure to handle files like lib/uniwidth/cjk.h.
* bootstrap (cp_mark_as_generated): Create any required parent
destination directories before copying a file into place.
2007-11-05 18:06:38 +01:00
Jim Meyering
17d3924e9e * src/c99-to-c89.diff: Adjust offsets. 2007-11-05 14:57:09 +01:00
Jim Meyering
3bf4bb761c Don't use GNU-sed-specific \< \> operators here, either.
* m4/include-exclude-prog.m4 (gl_REMOVE_PROG): Use a loop, as below.
2007-11-05 12:08:27 +01:00
Jim Meyering
d471effd85 Use tighter regexps when performing name substitution.
* man/Makefile.am (mapped_name): Add ^ and $$ anchors.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2007-11-05 11:14:05 +01:00
Jim Meyering
25e3dd5365 Don't use GNU-sed-specific \< \> operators.
* configure.ac (MAN): Transform ginstall.1 to install.1 using
a loop, rather than sed with \<...\>.
Problem reported by Bruno Haible.
Andreas Schwab reminded me that \< and \> are not portable.
2007-11-05 11:13:21 +01:00
Jim Meyering
b8da93bee9 Get git-version-gen from gnulib.
* build-aux/git-version-gen: Remove file.
* build-aux/.gitignore: Add git-version-gen.
* bootstrap.conf (gnulib_modules): Add git-version-gen.
2007-11-05 08:31:51 +01:00
Jim Meyering
4c9b376271 git-version-gen: Sync from autoconf's version.
* build-aux/git-version-gen: Run git-status
2007-11-03 22:52:33 +01:00
Jim Meyering
ae559eabcd Sync copyright and scriptversion bits from gnulib.
* build-aux/git-version-gen: No semantic change.
2007-11-03 18:04:40 +01:00
Jim Meyering
8beb69b148 Change the first '-' to '.' in the snapshot version string,
e.g., 6.9-377-08144 -> 6.9.377-08144
* build-aux/git-version-gen: ... and add comments.
2007-11-03 17:46:42 +01:00
Jim Meyering
0814422a7d seq: add another test for the %% bug
* tests/misc/seq (fmt-c): Test the other fixed case, too.
2007-11-03 10:42:52 +01:00
Paul Eggert
a860ca32b0 Fix bug with "seq 10.8 0.1 10.95", plus another bug with %% in format.
* NEWS: Mention the %%-in-format bug fix.
* src/seq.c (struct layout): New type.
(long_double_format): New arg LAYOUT.  Fill it in.  Fix mishandling
of %% in formats.
(print_numbers): New arg LAYOUT.  Don't convert LAST to output format
when deciding whether to go slightly past LAST.  Instead, convert
X to output format and back.  This fixes a bug reported by
Andreas Schwab in
<http://lists.gnu.org/archive/html/bug-coreutils/2007-10/msg00237.html>
where "seq 10.8 0.1 10.95" would output 11.0 on platforms where
10.95 rounds to a value that prints as 11.0 when only one digit
past the decimal point is asked for.
(main): Compute layout, for benefit of print_numbers.
* tests/misc/seq (float-3): Undo previous change, since the bug
should be fixed now.
(fmt-b): New test, for the %% bug.
2007-11-03 10:00:26 +01:00
Jim Meyering
3e3f8f0161 tests/misc/printf-surprise: Correct sed transform.
Reported by Bob Proulx.
2007-11-01 23:40:21 +01:00
Jim Meyering
c70fc8d87b Add example inspired by "make dist" running gzip and lzma in sequence.
* doc/coreutils.texi (tee invocation): Show how to run tar just
once, compressing the tee'd output streams in parallel.
2007-11-01 22:34:36 +01:00
Jim Meyering
e556eaa59e Say that the first process substitution example is contrived.
* doc/coreutils.texi (tee invocation): ... and show how to do
it properly.  Pointed out by James Antill.
2007-11-01 21:25:28 +01:00
Jim Meyering
636f0e101a Use mktemp, not mkdtemp, to create test directories.
* tests/test-lib.sh: Use the mktemp binary we've just built,
not the mkdtemp script.
* tests/mkdtemp: Remove file.
* tests/Makefile.am (EXTRA_DIST): Remove mkdtemp.
2007-11-01 20:13:11 +01:00
Jim Meyering
d1986f81d0 Adjust a seq subtest not to depend on the vagaries of floating point.
* tests/misc/seq (float-3): Use 10.94 as the endpoint, not 10.95,
since 10.95 was precisely in the middle of the interval, and with
a %.1f format could map to either 10.9 or 11.0.
Reported by Mike Frysinger
2007-11-01 12:10:06 +01:00
Jim Meyering
094e533fad Make the new printf-surprise test more precise.
* tests/test-lib.sh (require_ulimit_): New function.
* tests/misc/printf-surprise: Use ulimit -v to trigger the fixed bug,
and rather than checking printf's exit status (which would go wrong
on FreeBSD 6.1, since their printf(3) function doesn't require
lots of memory in this case) simply test whether it outputs
the first 10 bytes.
2007-11-01 12:06:11 +01:00
Jim Meyering
accad81d2b Accommodate FreeBSD 6.1 hard-link-to-symlink differences.
* tests/cp/same-file: Detect when linking to a symlink links to
the target of the symlink (FreeBSD 6.1 does this, Linux does not),
and skip the few tests that would otherwise fail.
Redirect output of final comparison to stderr, since all stdout
is already redirected.
2007-11-01 11:59:08 +01:00
Jim Meyering
75d6936a08 Fix a "make distcheck" failure.
* Makefile.maint (my-distcheck): Don't stub-out dirname,
since build-aux/check.mk now uses it.
2007-10-31 08:42:17 +01:00
Jim Meyering
8c8bf861de * bootstrap.conf (gnulib_modules): Add xprintf-posix. 2007-10-31 08:40:51 +01:00
Jim Meyering
5654415595 Avoid seq floating-point test failure on FreeBSD 6.1.
* tests/misc/seq (float-4): Also accept -0.0.
2007-10-30 11:17:59 +01:00
Jim Meyering
b00f87cfa3 Change a "make dist" diagnostic.
* GNUmakefile: Don't imply that $(_curr-ver) is the new version string.
2007-10-29 12:24:39 +01:00
Bob Proulx
b8e8d02861 Improve color terminal escape usage.
* build-aux/check.mk (am__tty_colors): Use 'tput' to deduce
terminal color capabilities.
2007-10-29 05:10:23 -06:00
Jim Meyering
b63b1b4ce2 Don't try to colorize a dumb terminal.
* build-aux/check.mk (am__tty_colors): Skip colors if $TERM is "dumb".
Thanks to Bob Proulx.
2007-10-29 10:37:09 +01:00
Jim Meyering
0cc7aa3a29 Remove gnulib's printf-posix module, for now.
* bootstrap.conf (gnulib_modules): It caused too many test failures.
2007-10-29 10:14:58 +01:00
Jim Meyering
cb75780b50 Remove spurious semicolon after "else".
* build-aux/check.mk (am__tty_colors): Fix syntax error.
2007-10-29 10:01:25 +01:00
Jim Meyering
3e9a0b87d7 Attribute suggestion for last change. 2007-10-29 09:49:50 +01:00
Jim Meyering
89157ad207 If $TERM is empty, don't use colors. This helps the buildbot,
since it produces its result in an environment with a tty, but
we don't want color codes in that case.
* build-aux/check.mk (am__tty_colors): Test for nonempty $TERM.
2007-10-29 09:47:52 +01:00
Jim Meyering
973d42b90d Always initialize terminal colorization string variables.
* build-aux/check.mk (am__tty_colors): Always initialize red, grn, etc.,
In case they're defined in the environment.
2007-10-29 08:41:08 +01:00
Jim Meyering
e1bb6139fb Avoid test failure in non-srcdir build vs. the git tree.
* tests/check.mk (vc_exe_in_TESTS): Run this test only in a
srcdir build directory.  Reported by Andreas Schwab.
2007-10-29 07:47:21 +01:00
Jim Meyering
709a27ba48 Define ENOTSUP, not ENOSYS. Needed on OpenBSD 3.9.
* gl/lib/se-context.in.h (ENOTSUP): Define if missing.
* gl/lib/se-selinux.in.h: Likewise.
2007-10-28 19:04:59 +01:00
Jim Meyering
39e668ce5b Define ENODATA, for FreeBSD 5.0 and 6.1.
* src/system.h (ENODATA): Define, if missing.
2007-10-28 18:16:54 +01:00
Jim Meyering
68c33a103d Run autoreconf, not just autoconf, to avoid warnings.
* GNUmakefile (dummy): Otherwise, we'd sometimes get a warning
about autoconf version mismatch between what was used to generate
aclocal.m4 and the currently-running autoconf.
2007-10-28 15:54:44 +01:00
Jim Meyering
6555874879 Require gnulib's printf-posix module, to support Interix.
* bootstrap.conf (gnulib_modules): Add printf-posix.
2007-10-28 15:38:17 +01:00
Jim Meyering
39639a8a6a Help xgettext recognize more printf-style format strings.
* bootstrap.conf (XGETTEXT_OPTIONS): Add directives for
error, error_at_line, xasprintf, xfprintf and xprintf.
2007-10-28 15:37:56 +01:00
Jim Meyering
1f05c616d2 Adjust format string so msgfmt doesn't object.
* src/df.c (main): Use "%s%s" (not %smsg) to print "msg" with or
without a "Warning: " prefix.  Reported by Clytie Siddall.
2007-10-27 09:42:27 +02:00
Jim Meyering
2e270515f7 Clean up tests/Makefile.am.
* tests/Makefile.am (EXTRA_DIST): Remove $(TESTS).  No longer defined.
(TESTS_ENVIRONMENT): Remove definition.
2007-10-27 09:06:11 +02:00
Jim Meyering
5d9cb87197 * build-aux/check.mk: Merge with latest from Akim. 2007-10-27 09:04:47 +02:00
Jim Meyering
cdd44f674b Add a test for the printf fix of 2007-10-21.
* tests/misc/printf-surprise: New file.  Test for 2007-10-21's fix.
* tests/misc/Makefile.am (TESTS): Add printf-surprise.
2007-10-27 08:50:10 +02:00
Jim Meyering
e80f3acc36 Add attribution for the expr.c-vs-xgettext report. 2007-10-25 09:20:44 +02:00
Jim Meyering
3c6e338b0f Remove vestiges of cvs-gnulib-checkout process. Now we use git.
* bootstrap: Remove support for now-unnecessary option, --cvs-user,
and envvars CVS_USER, CVS_RSH.

2007-10-24  Micah Cowan  <micah@cowan.name>
2007-10-25 09:06:29 +02:00
Micah Cowan
35eca590ad Tell xgettext that "ARG1 % ARG2" is not a C format string.
* src/expr.c (usage): Add a comment to override xgettext's default
behavior, which would classify "ARG1 % ARG2" as a fprintf-style
format string.
2007-10-25 08:59:30 +02:00
Jim Meyering
edb5faa297 Avoid diagnostics from sha1sum when there is no cached checksum.
* bootstrap (update_po_files): Skip the sha1sum check if the po.s1
file hasn't been created yet.
2007-10-24 22:31:35 +02:00
Jim Meyering
0edca4f61f Get gnulib from the git repository, not from an obsolete cvs one.
* bootstrap: Suggestion from Micah Cowan.
2007-10-24 22:09:57 +02:00
Jim Meyering
ffc29e91c4 Doc improvements.
* README-hacking: Prefer the no-hyphen variant of git commands,
e.g., use "git pull" not "git-pull".
Don't presume that the only way to read this document is via a
prior git clone: provide instructions for cloning coreutils, too.

* README-hacking: Add "cd automake" in build instructions.
From Bob Proulx.
2007-10-24 09:13:59 +02:00
Jim Meyering
b924d0380e Don't fail part 2 of tests/rm/unreadable when run as root.
* tests/rm/unreadable: With UID == 0, expect different results.
Reported by Mike Frysinger.
2007-10-24 08:50:09 +02:00
Jim Meyering
def157c927 * README-hacking: Refer to LZMA Utils <http://tukaani.org/lzma/>. 2007-10-23 15:44:58 +02:00
Paul Eggert
758a615bb5 * README-hacking: Describe how to build with LZMA. 2007-10-22 23:29:40 +02:00
Jim Meyering
433a31d3dc Remove git-version-gen's first parameter.
* build-aux/git-version-gen: Add comments.
Remove first command-line parameter.
* configure.ac: Remove corresponding first argument.
* GNUmakefile (_curr-ver): Likewise.
2007-10-22 21:43:12 +02:00
Jim Meyering
74695771cb Attribute the printf bug report. 2007-10-21 18:19:54 +02:00
Jim Meyering
ffa639900b * NEWS: Mention the printf fix. 2007-10-21 18:17:30 +02:00
Jim Meyering
a64e33f79b Reorder tests to run more basic ones earlier.
* tests/misc/Makefile.am (TESTS): Reorder.
* tests/Makefile.am (SUBDIRS): Reorder.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2007-10-21 14:01:28 +02:00
Jim Meyering
af5d0c363a tr: do not reject an unmatched [:lower:] or [:upper:] in SET1.
* NEWS: Mention this.
* src/tr.c (get_next) [RE_CHAR_CLASS]: Don't skip the loop when
processing [:lower:] and [:upper:].
(main): Require [:lower:] or [:upper:] in SET1 only when
when one of those is specified in SET2.
* tests/tr/Test.pm: Add tests for this fix.
Reported by Per Starbäck.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2007-10-21 14:01:28 +02:00
Jim Meyering
c365bafa81 * tests/misc/help-version: Add a comment.
Signed-off-by: Jim Meyering <meyering@redhat.com>
2007-10-21 14:01:28 +02:00
Jim Meyering
b1ab7101aa Detect printf(3) failure due to ENOMEM.
* src/printf.c: Include "xprintf.h"
(print_direc): Use xprintf, rather than printf.
* bootstrap.conf (gnulib_modules): Add xprintf.
* po/POTFILES.in: Add lib/xprintf.c.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2007-10-21 14:01:27 +02:00
Jim Meyering
60a5ad4b94 Put always-failing programs first in PATH, so tests cannot mistakenly run installed versions.
* Makefile.maint (my-distcheck): Set up a bogus bin/ dir, to be used
for "make check".

Signed-off-by: Jim Meyering <meyering@redhat.com>
2007-10-21 14:01:15 +02:00
Jim Meyering
a34bea4976 * doc/coreutils.texi: Add a cross-reference to bashref's Process Substitution node. 2007-10-20 13:53:45 +02:00
Jim Meyering
4319cbc0a1 * doc/coreutils.texi (tee invocation): Fix typo. Add a little. 2007-10-20 12:00:54 +02:00
Jim Meyering
5dabe472b0 Adjust tests to pass, now that Test.pm ones use check.mk.
* tests/check.mk (vc_exe_in_TESTS): Adjust regexp not to match the
"TESTS = $x-tests" line in each Test.pm-derived Makefile.am file.
* tests/sort/main: Remove this unused file.
2007-10-20 10:07:12 +02:00
Jim Meyering
736b78af4f Ensure that Test.pm-derived tests use the right $PATH.
* tests/Makefile.am.in: Include $(top_srcdir)/tests/check.mk.
2007-10-20 09:06:39 +02:00
Bob Proulx
18e4c15198 Prevent "make check" from leaving mktemp /tmp/tmp.* files behind.
* tests/misc/help-version (mktemp_args): Tell mktemp to create
its temporary file in the current directory.
2007-10-20 08:26:57 +02:00
Jim Meyering
2a0e737cfd Show how to make tee redirect to multiple processes. 2007-10-16 12:46:18 +02:00
Jim Meyering
84c3fb94ac Pull all TESTS_ENVIRONMENT settings "up" into tests/check.mk.
* tests/Makefile.am.in (TESTS_ENVIRONMENT): Remove definition.
* tests/chgrp/Makefile.am: Likewise.
* tests/chmod/Makefile.am: Likewise.
* tests/chown/Makefile.am: Likewise.
* tests/cp/Makefile.am: Likewise.
* tests/dd/Makefile.am: Likewise.
* tests/du/Makefile.am: Likewise.
* tests/install/Makefile.am: Likewise.
* tests/ln/Makefile.am: Likewise.
* tests/ls/Makefile.am: Likewise.
* tests/misc/Makefile.am: Likewise.
* tests/mkdir/Makefile.am: Likewise.
* tests/mv/Makefile.am: Likewise.
* tests/readlink/Makefile.am: Likewise.
* tests/rm/Makefile.am: Likewise.
* tests/rmdir/Makefile.am: Likewise.
* tests/tail-2/Makefile.am: Likewise.
* tests/touch/Makefile.am: Likewise.
* tests/check.mk (TESTS_ENVIRONMENT) [EXEEXT, EGREP, MAKE, PERL]:
[CONFIG_HEADER, build_programs, host_os, host_triplet, PATH]:
[REPLACE_GETCWD, CU_TEST_NAME]: Add definitions here.
* tests/misc/pwd-long: Use $abs_top_builddir/src, not $BUILD_SRC_DIR.
* tests/dd/skip-seek: Don't use $ENV{PROG}.
* tests/rm/empty-name: Likewise.
* tests/rm/unreadable: Likewise.
* tests/mv/i-1: Likewise.
2007-10-14 21:47:08 +02:00
Jim Meyering
b81697cd4a Fix a minor typo.
* configure.ac (AC_INIT): Fix a typo (s/9.6/6.9/) that makes a
difference only when running "make dist" without a .git/ subdir.
2007-10-14 13:35:34 +02:00
Jim Meyering
b69049da7b Move the help-version test into misc/.
* tests/help-version: Move to...
* tests/misc/help-version: ...here.
Source test-lib.sh, as usual.
Use $abs_top_builddir, rather than ".." and "../..".
2007-10-09 17:13:09 +02:00
Jim Meyering
3e53920470 Make the runcon-no-reorder test slightly more general.
* tests/misc/runcon-no-reorder: Don't hard-code "unconstrained_t".
Use slightly more general "runcon $(id -Z)".
Suggestion from Stephen Smalley.
2007-10-09 15:49:00 +02:00
Jim Meyering
4597f40b7f Skip the chcon test on a system with no SELinux support.
* tests/test-lib.sh (require_selinux_): New function.
* tests/misc/chcon: Use it.
* tests/misc/selinux: Use it here, too.
* tests/cp/cp-a-selinux: and here.
* tests/selinux: Remove file.
* tests/Makefile.am (EXTRA_DIST): Remove selinux.
Reported by Mike Frysinger and Bauke Jan Douma.
2007-10-09 10:13:39 +02:00
Jim Meyering
91bef1af62 * src/dircolors.hin: Recognize .lzma as a compressed-file suffix. 2007-10-09 09:39:13 +02:00
Jim Meyering
b75e3b8569 * configure.ac (AM_INIT_AUTOMAKE): Use dist-lzma, rather than dist-bzip2. 2007-10-09 09:37:43 +02:00
Jim Meyering
c25152b455 Now that we don't install su, don't make misleading suggestions.
* src/Makefile.am (install-exec-local) [$(INSTALL_SU) != yes]:
Don't suggest running "make install-root".
(uninstall-local) [$(INSTALL_SU) != yes]: Don't even check
the installed binary.
2007-10-09 09:35:30 +02:00
Jim Meyering
e6f4b28275 When forming a truncated name, use the "[...]" prefix even for
an extremely long name in the current directory.

* src/remove.c (full_filename_): Rename a local variable.
Use two separate "truncated" variables, in case the second
call to right_justify does not indicate any truncation -- which
would happen only if the single component FILENAME were longer
than 511 bytes and DIR_NAME were empty.
2007-10-08 10:47:40 +02:00
Jim Meyering
689186b88c rm could malfunction under unusual circumstances:
When operating on a relative name longer than 511 bytes,
and (when either processing a directory that is neither writable
nor readable (but still searchable) or when determining whether
to prompt), and encountering an ENOMEM error while forming the
file name, rm would operate on a truncated-to-511-byte name
starting with "[...]" rather than the intended one.
* NEWS: Describe the bugs.
* src/remove.c: Correct two misuses of full_filename:
(full_filename0, xfull_filename): New functions.
(full_filename_): Rewrite to use full_filename0.
(AD_pop_and_chdir): Use xfull_filename, not full_filename.
(write_protected_non_symlink): Likewise.
2007-10-08 10:26:05 +02:00
Jim Meyering
035a5ca2b0 Don't let a helper function modify errno.
* src/remove.c (full_filename_): Save and restore errno.
Spotted by Bruno Haible.
2007-10-07 21:57:55 +02:00
Jim Meyering
847fbc4eba Reflect 2->3 GPL copyright version update in gnulib.
* gl/lib/tempname.h: Update copyright from gnulib.
* gl/lib/tempname.c: Likewise.
* .x-sc_GPL_version: Don't make an exception for those two files.
2007-10-07 21:04:21 +02:00
Jim Meyering
a5fa9f9cc9 * configure.ac (AM_INIT_AUTOMAKE): Don't use dist-lzma just yet. 2007-10-07 20:33:57 +02:00
Jim Meyering
99b039fead New program: mktemp.
* NEWS: Mention this.
* README: Add mktemp to the list.
* AUTHORS: Add this: mktemp: Jim Meyering
* src/mktemp.c: New file.
* src/Makefile.am (bin_PROGRAMS): Add mktemp.
(mktemp_LDADD): Add $(LIB_GETHRXTIME).
* man/mktemp.x: New file.
* man/Makefile.am (dist_man_MANS): Add mktemp.1.
(mktemp.1): New dependency.
* man/.cvsignore: Add mktemp.1.
* man/.gitignore: New file.
* src/.cvsignore, src/.gitignore: Add mktemp.
* tests/misc/mktemp: New file.
* tests/misc/Makefile.am (TESTS): Add mktemp.
* tests/Coreutils.pm (run_tests): Give the POST-test function
access to stdout and stderr contents, so it can verify that
the named-on-stdout file/dir does indeed exist and has proper
permissions, etc.
[po/ChangeLog]
* POTFILES.in: Add src/mktemp.c.
2007-10-07 19:44:38 +02:00
Jim Meyering
7eab7d027e Make tempname more random, via the randint module.
* gl/modules/tempname (Depends-on): Add randint and stdbool.
* gl/lib/tempname.c: Include randint.h and stdbool.h.
(uint64_t): Remove definition.  Not needed.
[_LIBC] (RANDOM_BITS): Remove this block, now that we have proper random bits.
(check_x_suffix): New function.
(gen_tempname_len): Rename from __gen_tempname.
Add a parameter, x_suffix_len, telling how many X's there must be at
the end of the template.
Use pseudo-random numbers all the way, rather than adding 7777
from one iteration to the next.
(__gen_tempname): New function, to call gen_tempname_len, requiring a
suffix length of 6.
* gl/lib/tempname.h: Add prototype for gen_tempname_len.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2007-10-07 19:44:07 +02:00
Jim Meyering
58a7ead41d Convert coreutils' rand*.{c,h,m4} into modules.
First step: move these files to gl/lib:
* lib/rand-isaac.c, lib/rand-isaac.h
* lib/randint.c, lib/randint.h
* lib/randperm.c, lib/randperm.h
* lib/randread.c, lib/randread.h

Step 2: add modules/rand* and remove now-unneeded .m4 files.
* gl/modules/randint: New file.
* gl/modules/randperm: New file.
* gl/modules/randread: New file.
* m4/randint.m4: Remove file.
* m4/randperm.m4: Remove file.
* m4/randread.m4: Remove file.

Step 3: use the new modules
* bootstrap.conf (gnulib_modules): Add randint and randperm.
* m4/prereq.m4 (gl_RANDINT, gl_RANDREAD, gl_RANDPERM): Don't require;
These have been removed.
(gl_ROOT_DEV_INO): Don't require; already handled via bootstrap.conf.
2007-10-07 19:43:35 +02:00
Jim Meyering
696f4a8042 Copy from gnulib the parts of tempname that we'll modify.
* gl/lib/tempname.c: Copy from gnulib.
* gl/lib/tempname.h: Likewise.
* gl/modules/tempname: Likewise.

Allow GPLv2 on temporarily(?)-imported file from gnulib/libc.
* .x-sc_GPL_version: New file.
* Makefile.am (EXTRA_DIST): Add .x-sc_GPL_version
2007-10-07 19:42:53 +02:00
Jim Meyering
11d4de7eb3 Avoid a pseudo-leak in sort.
* src/sort.c (main) [lint]: Avoid a nominal leak.
2007-10-07 18:41:49 +02:00
Jim Meyering
abdb73fc11 Use puts, rather than printf ("%s\n". Slightly cleaner.
* src/tsort.c (tsort): ...and more efficient.
2007-10-07 18:16:07 +02:00
Jim Meyering
f62f1d302a Avoid seq malfunction on non-POSIX systems: mingw, BeOS, Interix.
* bootstrap.conf (gnulib_modules): Add vasprintf-posix.
Suggestion from Bruno Haible.

Signed-off-by: Jim Meyering <meyering@redhat.com>
2007-10-07 16:57:01 +02:00
Jim Meyering
fbaf2fbb18 Avoid a used-uninitialized error.
* src/copy.c (copy_internal): Don't overload "use_stat".
2007-10-07 16:56:46 +02:00
Jim Meyering
b4148f567d Make a failing cross-partition mv give a sensible diagnostic.
A cross-partition move of a file in a sticky tmpdir and owned by
another user would evoke an invalid diagnostic after copying it:

  mv: cannot remove `x': Operation not permitted

Either of the following (mv.c, remove.c) changes would fix the bug by
itself.  I think it's slightly better to use both; the added cost is
minimal: mv: an extra lstat-per-mv-cmdline-arg-that-goes-cross-partition,
rm: an extra lstat-per-unlink-that-fails-w/EPERM.
* src/remove.c (remove_entry): Also lstat the file upon EPERM.
* src/mv.c (rm_option_init): Initialize root_dev_ino just as is done
in rm, so that a cross-partition invoked remove.c:rm call works the
same way as one invoked from the command-line use of "rm".  That
setting of root_dev_ino makes rm() do the equivalent of an additional
lstat for each argument, which in turn gives rm enough information to
issue the right diagnostic.
* tests/mv/sticky-to-xpart (version): New file.  Test for the above.
* tests/mv/Makefile.am (TESTS): Add sticky-to-xpart.
Arrange for "make check-root" to run the new root-only test.
* tests/Makefile.am (tb): New target, to run the new root-only test.
(all_t): Add tb.
* src/c99-to-c89.diff: Adjust offsets.
2007-10-05 13:26:46 +02:00
Jim Meyering
068fa34adc Add PACKAGE_VERSION to TESTS_ENVIRONMENT via check.mk.
* tests/check.mk (TESTS_ENVIRONMENT): Add PACKAGE_VERSION here,
rather than in every Makefile.am that needs it.
* tests/rm/Makefile.am (TESTS_ENVIRONMENT): Remove PACKAGE_VERSION.
* tests/misc/Makefile.am (TESTS_ENVIRONMENT): Likewise.
2007-10-05 12:57:03 +02:00
Jim Meyering
f8cd8d524c List two systems on which chroot works when run by non-root. 2007-10-05 09:03:42 +02:00
Jim Meyering
43d0c30bf0 Adapt to new gnulib naming scheme.
* gl/lib/se-context.in.h: Rename from gl/lib/se-context_.h.
* gl/lib/se-selinux.in.h: Rename from gl/lib/se-selinux_.h.
* gl/m4/selinux-context-h.m4: Remove use of AC_LIBSOURCES.
* gl/m4/selinux-selinux-h.m4: Likewise.
* gl/modules/selinux-h (Files, Makefile.am): Reflect renaming.
(Makefile.am) [lib_SOURCES]: Add se-context.in.h and se-selinux.in.h.
2007-10-04 12:33:32 +02:00
Jim Meyering
a7acdf85e4 lib/search_.h: Remove unused file. 2007-10-04 12:20:46 +02:00
Jim Meyering
7ba2dd8082 * bootstrap (update_po_files): Work also when there are no .po files in po/. 2007-10-04 11:55:31 +02:00
Jim Meyering
1641186cb3 * bootstrap (slurp): Adapt to _.h -> .in.h name change.
Signed-off-by: Jim Meyering <meyering@redhat.com>
2007-10-04 11:53:46 +02:00
Jim Meyering
545cbc2cc8 Remove test program: lib/t-fpending.c.
* lib/t-fpending.c: Remove file.  Now, this test is in gnulib.
* lib/Makefile.am: Remove associated rules.
* .gitignore: Remove lib/t-fpending.
2007-10-04 10:26:11 +02:00
Jim Meyering
5cf961f0ea * tests/misc/selinux: Skip this test if the initial chcon fails. 2007-10-03 12:56:32 +02:00
Jim Meyering
1b8c8befd9 Never copy through a symlink that cp has just created.
* src/copy.c (copy_internal): When same-file detection requires
'stat'ing the destination file, also 'lstat' it and ensure that
it wasn't the destination of a preceding copy operation.
This bug was introduced on 2007-06-18.
* tests/cp/abuse: New test for the above.
* tests/cp/Makefile.am (TESTS): Add abuse.
2007-10-02 11:20:19 +02:00
Jim Meyering
65ee3d9630 cp: do not abbreviate in --help output.
* src/cp.c (usage): Don't abbreviate: s/=link/=links/.
Reported by Géraud Meyer in <http://bugs.debian.org/444137>.

Signed-off-by: Jim Meyering <jim@meyering.net>
2007-09-30 09:58:24 +02:00
Eric Blake
17f0d568d3 Fix testsuite on cygwin.
* check.mk (%.log): Also allow suffix-less tests, on platforms
where $(EXEEXT) is not empty.

Signed-off-by: Eric Blake <ebb9@byu.net>
2007-09-30 09:40:26 +02:00
Eric Blake
3c98f1d3ee Test previous patch.
* tests/misc/groups-dash: New test.
* tests/misc/Makefile.am (TESTS): Add it.

Signed-off-by: Eric Blake <ebb9@byu.net>
2007-09-30 09:40:25 +02:00
Eric Blake
329982b723 * src/groups.sh: Don't ignore first argument if later argument is --.
Signed-off-by: Eric Blake <ebb9@byu.net>
2007-09-29 07:53:49 +02:00
Jim Meyering
5b0e904272 Avoid spurious test failure when SELinux stats "selinux/class".
* tests/ls/stat-free-symlinks: Grep for more precise /^stat("x"/.
2007-09-27 22:37:33 +02:00
Jim Meyering
491c54ca99 Move file-set and hash-triple modules to gnulib.
* bootstrap.conf (gnulib_modules): Remove file-set, now that
it's in gnulib, and the canonicalize module requires it there.
* gl/lib/file-set.c, gl/lib/file-set.h, gl/modules/hash-triple: Remove.
* gl/lib/hash-triple.c, gl/lib/hash-triple.h, gl/modules/file-set: Remove.
2007-09-27 10:53:36 +02:00
Jim Meyering
beaa39a649 Add a test to exercise a readlink bug.
* tests/misc/readlink-fp-loop: New file.  Test for the readlink bug
fixed through today's change to Gnulib's canonicalize module.
* tests/misc/Makefile.am (TESTS): Add readlink-fp-loop.
Bug report and a test case from mpb.mail@gmail.com.
2007-09-27 10:53:08 +02:00
Pádraig Brady
23d293cbc2 Make "Date input formats" easier to find in info file
* doc/coreutils.texi (date invocation):
`man date` gives all options for the date command except
the description of the date input formats. Therefore it
should be easy to browse to this info using `info date`.

Signed-off-by: Pádraig Brady <P@draigBrady.com>
2007-09-27 08:41:03 +02:00
Jim Meyering
0359c2e1ca Use XOR, not OR to combine bits.
* gl/lib/hash-triple.c (triple_hash): Use XOR (^), not OR (|), to
combine the bits from hashing the name and those of the inode number.
Add a few comments and remove out-of-context ones.
2007-09-25 21:27:14 +02:00
Jim Meyering
e2a6cbca3b * NEWS: The recent rm-diagnostic fix also affects cross-partition "mv". 2007-09-24 16:33:35 +02:00
Jim Meyering
49e002db5e copy.c: Remove definitions of factored-out functions.
* src/copy.c: Include "file-set.h".
(seen_file, record_file): Remove functions that I factored
out on 2007-08-23.
2007-09-24 15:09:26 +02:00
Jim Meyering
1b246cc692 Don't print the commands of a 10-line script that's run in each subdir.
* tests/check.mk (vc_exe_in_TESTS): Add a leading "@", to reduce noise.
2007-09-22 23:26:45 +02:00
Jim Meyering
a7ec8caffe rm: give a sensible diagnostic when failing to remove a symlink
On some systems (those with openat et al), when rm would fail to
remove a symlink, it would fail with the misleading diagnostic,
"Too many levels of symbolic links".
* NEWS: Mention the bug fix.
* src/remove.c (is_nondir_lstat): New function.
(remove_entry): Use it to catch failed-to-remove symlink (and any
other non-dir) here so that we don't fall through and try to treat
it as directory, which -- with a symlink -- would provoke the bogus
ELOOP failure.
* tests/rm/fail-eacces: Add a test for the above.
* src/c99-to-c89.diff: Adjust offsets.
2007-09-22 13:27:57 +02:00
Jim Meyering
920b4416c1 rm: fix a tiny, nearly inconsequential bug.
Don't perform a "."-relative lstat, when the file in question
may well not be in ".".  Although this is a bug, a few attempts
to exercise it on a linux-2.6.22 system failed.  You probably need
a pre-openat system to trigger the failure.  The consequence of this
bug would be a lower-quality diagnostic upon failed dir removal.
* src/remove.c (is_dir_lstat): Add a parameter, fd_cwd.
Use it instead of hard-coding AT_FDCWD.
(remove_entry): Call is_dir_lstat with fd_cwd.

Signed-off-by: Jim Meyering <jim@meyering.net>
2007-09-22 08:44:42 +02:00
Karl Berry
ebeb56f9df TODO: It'd be nice to add renice.
Signed-off-by: Jim Meyering <jim@meyering.net>
2007-09-22 08:39:44 +02:00
Jim Meyering
308adf1691 Avoid a test failure due to now-parallelized tests.
* tests/du/two-args: Run "du .." from a sub-directory one level deeper.
2007-09-21 08:30:55 +02:00
Jim Meyering
5d0c06a24a Fix typo in previous change.
Spotted by Andreas Schwab.
2007-09-19 11:13:46 +02:00
Jim Meyering
cbade34401 * coreutils.texi (expr invocation): Correct description of relative
operator precedence.  Reported by hanpingtian@gmail.com.
2007-09-19 10:25:40 +02:00
Jim Meyering
dbab417753 tests/misc/tac-continue: Arrange to remove a temporary file.
Signed-off-by: Jim Meyering <jim@meyering.net>
2007-09-16 11:29:57 +02:00
Jim Meyering
ed2a9e9637 tests/check.mk (vc_exe_in_TESTS): Don't rely on the value of $(TESTS),
so that "make check TESTS=test-name" works once again.

Signed-off-by: Jim Meyering <jim@meyering.net>
2007-09-16 11:29:57 +02:00
Jim Meyering
d423f4a14b tests/CuTmpdir.pm: Use File::Find + chmod syscall, not chmod -R.
Signed-off-by: Jim Meyering <jim@meyering.net>
2007-09-16 11:29:57 +02:00
Jim Meyering
2983e54536 Revamp most test scripts.
Add a ChangeLog entry summarizing the preceding 30+ change sets.
2007-09-16 01:24:37 +02:00
Jim Meyering
57c4cb5d88 * tests/rm/v-slash: Avoid test failure with non-C locale.
Reported by Michael Stone.
2007-09-16 01:06:16 +02:00
Jim Meyering
d96a863cf5 Enable some previously omitted test scripts. Add a test cross-check.
* tests/rm/Makefile.am (TESTS): Add empty-name and unreadable.
* tests/rm/empty-name: Likewise.
* tests/rm/unreadable: Reenable this test.  Adjust for new rm.
* tests/mkdir/Makefile.am: Add writable-under-readonly.
* tests/mkdir/writable-under-readonly: Add some comments.
This test is always skipped, for now.
* tests/Makefile.am (ta): Hook up the new root-only script.
* tests/tail-2/infloop-1: Make this test pass.
* tests/tail-2/Makefile.am (TESTS): Add infloop-1.
* tests/tail-2/fflush: Remove unused file.
* tests/check.mk (vc_executable_is_in_TESTS): More portable.
* tests/check.mk (check): Depend on the above.
* build-aux/check.mk: Remove comment mentioning AUTHORS file.
2007-09-15 18:59:08 +02:00
Jim Meyering
56f1bd10fc Factor out definitions in TESTS_ENVIRONMENT of srcdir, top_srcdir, etc.
tests/check.mk (top_srcdir): Define.
tests/*/Makefile.am: Remove definitions of $(srcdir), $(top_srcdir),
$(abs_top_srcdir), and $(abs_top_builddir), since they're
defined via the included tests/check.mk.
2007-09-15 08:40:39 +02:00
Jim Meyering
fbae6a7b39 tests/general: Remove from VC, this long-unused directory and contents. 2007-09-15 08:40:39 +02:00
Jim Meyering
53d36aaf9a Adapt tests/tail-2/ to use test-lib.sh. 2007-09-15 08:40:39 +02:00
Jim Meyering
10d190b8b6 Adapt tests/readlink/ to use test-lib.sh. 2007-09-15 08:40:39 +02:00
Jim Meyering
5cb2610710 Move the sole test in tests/ls-2/ to tests/misc/.
* tests/ls-2/basic-1: Move this file to ...
* tests/misc/ls-misc: ...here.  Don't rely on $PROG in env.
* tests/misc/Makefile.am (TESTS): Add ls-misc.
* tests/Makefile.am (SUBDIRS): Remove ls-2.
* tests/ls-2: Remove the directory.
* configure.ac (AC_CONFIG_FILES): Remove tests/ls-2/Makefile.
2007-09-15 08:40:39 +02:00
Jim Meyering
a669dfdabb More misc, test-related changes. (some to allow running tests as root) 2007-09-15 08:40:39 +02:00
Jim Meyering
0539705768 Move all tests from test/{od,sha1sum,shred,stty} to tests/misc/.
Reflect these renamings:
od/od-N             misc/od-N
od/x8               misc/od-x8
sha1sum/basic-1     misc/sha1sum
sha1sum/sample-vec  misc/sha1sum-vec
shred/exact         misc/shred-exact
shred/remove        misc/shred-remove
stty/basic-1        misc/stty
stty/invalid        misc/stty-invalid
stty/row-col-1      misc/stty-row-col

* tests/misc/Makefile.am (TESTS): Add the new files.
* tests/Makefile.am (SUBDIRS): Remove the dir names.
* tests/od, tests/sha1sum, tests/shred, tests/stty: Remove the directories.
* configure.ac (AC_CONFIG_FILES): Remove the corresponding Makefile names.
2007-09-15 08:40:39 +02:00
Jim Meyering
44629cf147 Move the two tests in tests/tee to tests/misc/.
* tests/tee/basic: Move this file to ...
* tests/misc/tee: ...here.  Don't rely on $PROG in env.
* tests/tee/dash: Move this file to ...
* tests/misc/tee-dash: ...here.  Don't rely on $PROG in env.
* tests/misc/Makefile.am (TESTS): Add tee.
* tests/Makefile.am (SUBDIRS): Remove tee.
* tests/tee: Remove the directory.
* configure.ac (AC_CONFIG_FILES): Remove tests/tee/Makefile
2007-09-15 08:40:39 +02:00
Jim Meyering
eb3f59b7e1 Move the two tests in tests/sum/ to tests/misc/.
* tests/sum/basic-1: Move this file to ...
* tests/misc/sum: ...here.  Don't rely on $PROG in env.
* tests/sum/sysv: Move this file to ...
* tests/misc/sum-sysv: ...here.  Adapt it to use test-lib.sh.
* tests/misc/Makefile.am (TESTS): Add sum and sum-sysv.
* tests/Makefile.am (SUBDIRS): Remove sum.
* tests/sum: Remove the directory.
* configure.ac (AC_CONFIG_FILES): Remove tests/sum/Makefile.
2007-09-15 08:40:39 +02:00
Jim Meyering
1529be6051 Move the sole test in tests/tsort/ to tests/misc/tsort.
* tests/tsort/basic-1: Move this file to ...
* tests/misc/tsort: ...here.  Don't rely on $PROG in env.
* tests/misc/Makefile.am (TESTS): Add tsort.
* tests/Makefile.am (SUBDIRS): Remove tsort.
* tests/tsort: Remove the directory.
* configure.ac (AC_CONFIG_FILES): Remove tests/tsort/Makefile.
2007-09-15 08:40:39 +02:00
Jim Meyering
47b7234de3 Move the sole test in tests/unexpand to tests/misc/unexpand.
* tests/unexpand/basic-1: Move this file to ...
* tests/misc/unexpand: ...here.  Don't rely on $PROG in env.
* tests/misc/Makefile.am (TESTS): Add unexpand.
* tests/Makefile.am (SUBDIRS): Remove unexpand.
* tests/unexpand: Remove the directory.
* configure.ac (AC_CONFIG_FILES): Remove tests/unexpand/Makefile.
2007-09-15 08:40:39 +02:00
Jim Meyering
d62bdb30f7 Move the sole test in tests/seq to tests/misc/seq.
* tests/seq/basic: Move this file to ...
* tests/misc/seq: ...here.  Don't rely on $PROG in env.
* tests/misc/Makefile.am (TESTS): Add seq.
* tests/Makefile.am (SUBDIRS): Remove seq.
* tests/seq: Remove the directory.
* configure.ac (AC_CONFIG_FILES): Remove tests/seq/Makefile
2007-09-15 08:40:39 +02:00
Jim Meyering
be23f60132 Convert tests/mkdir/ to use test-lib.sh. 2007-09-15 08:40:39 +02:00
Jim Meyering
570fd054c6 Move the two tests in tests/md5sum to tests/misc/md5sum.
* tests/md5sum/basic-1: Move this file to ...
* tests/misc/md5sum: ...here.  Don't rely on $PROG in env.
* tests/md5sum/newline-1: Move this file to ...
* tests/misc/md5sum-newline: ...here.  Don't rely on $PROG in env.
* tests/misc/Makefile.am (TESTS): Add md5sum.
* tests/Makefile.am (SUBDIRS): Remove md5sum.
* tests/md5sum: Remove the directory.
* configure.ac (AC_CONFIG_FILES): Remove tests/md5sum/Makefile
2007-09-15 08:40:39 +02:00
Jim Meyering
b10817d9bd tests/sample-test: Update to use test-lib.sh. 2007-09-15 08:40:39 +02:00
Jim Meyering
03a08a4cd0 Convert tests/misc/ to use test-lib.sh, too. 2007-09-15 08:40:38 +02:00
Jim Meyering
28f1844cef Convert tests/ls/, too. 2007-09-15 08:40:38 +02:00
Jim Meyering
7455bf9432 Convert tests/ln/, too. 2007-09-15 08:40:38 +02:00
Jim Meyering
74ffe86ed0 Convert tests/install/, too. 2007-09-15 08:40:38 +02:00
Jim Meyering
a0cbaa4fc8 Move the two tests in tests/fmt to tests/misc/fmt.
* tests/fmt/basic: Move this file to ...
* tests/misc/fmt: ...here.  Don't rely on $PROG in env.
* tests/fmt/long-line: Move this file to ...
* tests/misc/fmt-long-line: ...here.
* tests/misc/Makefile.am (TESTS): Add fmt.
* tests/Makefile.am (SUBDIRS): Remove fmt.
* tests/fmt: Remove the directory.
* configure.ac (AC_CONFIG_FILES): Remove tests/fmt/Makefile
2007-09-15 08:40:38 +02:00
Jim Meyering
aa3a727dc0 Move the sole test in tests/factor to tests/misc/factor.
* tests/factor/basic: Move this file to ...
* tests/misc/factor: ...here.  Don't rely on $PROG in env.
* tests/misc/Makefile.am (TESTS): Add factor.
* tests/Makefile.am (SUBDIRS): Remove factor.
* tests/factor: Remove the directory.
* configure.ac (AC_CONFIG_FILES): Remove tests/factor/Makefile
2007-09-15 08:40:38 +02:00
Jim Meyering
fd9f53cfdf Move the sole test in tests/expr to tests/misc/expr.
* tests/expr/basic: Move this file to ...
* tests/misc/expr: ...here.  Don't rely on $PROG in env.
* tests/misc/Makefile.am (TESTS): Add expr.
* tests/Makefile.am (SUBDIRS): Remove expr.
* tests/expr: Remove the directory.
* configure.ac (AC_CONFIG_FILES): Remove tests/expr/Makefile
2007-09-15 08:40:38 +02:00
Jim Meyering
ec2064acc8 Convert tests/du/*, too. 2007-09-15 08:40:38 +02:00
Jim Meyering
18b3231bbf Move the sole test in tests/dircolors to tests/misc/dircolors.
* tests/dircolors/simple: Move this file to...
* tests/misc/dircolors: ...here.  Don't rely on $PROG in env.
* tests/misc/Makefile.am (TESTS): Add dircolors.
* tests/Makefile.am (SUBDIRS): Remove dircolors.
* tests/dircolors: Remove the directory.
* configure.ac (AC_CONFIG_FILES): Remove tests/dircolors/Makefile
2007-09-15 08:40:38 +02:00
Jim Meyering
ceb5b04614 Convert tests/dd/*, too. 2007-09-15 08:40:38 +02:00
Jim Meyering
33173e867a Convert tests/mv, too.
* tests/other-fs-tmpdir: Before, all callers would exit 77 upon failure to
find the required dir.  Now, exit 77 in this script so callers don't have to.
Adjust callers.
2007-09-15 08:40:38 +02:00
Jim Meyering
df0beae1eb Adjust chgrp, chmod, chown, cp tests to use test-lib.sh.
* tests/check.mk: Also define abs_top_builddir.
2007-09-15 08:40:38 +02:00
Jim Meyering
c840cd4334 Parallel "make check" support.
* build-aux/check.mk: New file, from The Vaucanson Group.
* .x-sc_GPL_version: New file, to allow "version 2 or later"
in build-aux/check.mk.
* Makefile.am (EXTRA_DIST): Add .x-sc_GPL_version.
* tests/check.mk: New file.
* tests/Makefile.am (EXTRA_DIST): Add check.mk, mkdtemp and test-lib.sh.

Begin factoring "sample-test" out of test scripts.
* tests/test-lib.sh: New file, to be sourced by all tests that
were previously derived from the "sample-test" template.
* tests/mkdtemp: New file.
* tests/touch/dir-1: Use test-lib.sh.
* tests/touch/empty-file: Likewise.
* tests/touch/fail-diag: Likewise.
* tests/touch/fifo: Likewise.
* tests/touch/no-create-missing: Likewise.
* tests/touch/no-rights: Likewise.  Also, don't sleep.
* tests/touch/not-owner: Likewise.
* tests/touch/obsolescent: Likewise.
* tests/touch/read-only: Likewise.
* tests/touch/relative: Likewise.
* tests/touch/Makefile.am: Include $(top_srcdir)/tests/check.mk,
to get the parallel-"make check" bits.

Move a slow test into tests/misc.

* tests/check.mk: Wrapper.
* tests/ls/time-1: Move this file to tests/misc/ls-time.
* tests/misc/ls-time: New file.  From tests/ls/time-1.
* tests/ls/Makefile.am (TESTS): Remove time-1.
* tests/misc/Makefile.am (TESTS): Add ls-time.
2007-09-15 08:40:38 +02:00
Jim Meyering
7a6a30b8a2 Add support for parallel "make check" (in tests/misc, for now) 2007-09-15 08:40:38 +02:00
Jim Meyering
5c2f8101c5 * vc-list-files: Remove mercurial support.
Check for CVS first.  Adjust comments.
2007-09-15 08:39:53 +02:00
Jim Meyering
eaa1c07fa1 Accommodate gnulib's renaming: __fpending.h -> fpending.h.
* lib/t-fpending.c: Include "fpending.h", not "__fpending.h".
2007-09-08 21:35:31 +02:00
Jim Meyering
500eccdbe4 chmod: don't ignore a dangling symlink
* NEWS: Mention the bug fix.
* src/chmod.c (process_file): Handle the case of FTS_SLNONE,
i.e., give a diagnostic saying we cannot operate on such a file.
* tests/chmod/thru-dangling: Compare new stderr output with expected.
2007-09-07 10:45:22 +02:00
Bob Proulx
e70487cda7 Add a test: demonstrate that chmod ignores a dangling symlink
* tests/chmod/thru-dangling: New test.  Fails.
* tests/chmod/Makefile.am (TESTS): Add thru-dangling.
2007-09-07 10:31:14 +02:00
Jim Meyering
0fb836f179 Adapt to new SELinux behavior: "?" vs. new "unlabeled"
* src/ls.c (gobble_file): Interpret the new "unlabeled" indicator
from getfilecon/lgetfilecon the same way we interpret a negative
return value: no security context.  So we don't print the "+".
* tests/selinux: Recognize that "unlabeled" means insufficient
support for SELinux, just like "?".
2007-09-05 10:58:45 +02:00
Jim Meyering
4055cd5a26 Run autoconf manually, if needed to get an updated version string.
* GNUmakefile: Don't actually touch configure.ac.
That would make git-version-gen always print "...-dirty".
2007-09-03 11:22:20 +02:00
Jim Meyering
d0bd493a2a Don't change '-'s to '.'s in the string from git-describe.
* build-aux/git-version-gen: Leave '-'s in the string from git-describe.
Otherwise, s/-/./g would make it too hard to distinguish the base
version number from the appended .DD suffixes.

2007-09-03  Jim Meyering  <jim@meyering.net>
2007-09-03 10:38:22 +02:00
Jim Meyering
698091be0e README-hacking: Require rsync, rather than wget. 2007-09-03 09:07:20 +02:00
Jim Meyering
e4637b48b5 * bootstrap (WGET_COMMAND): Remove code to set this variable. 2007-09-02 13:49:49 +02:00
Jim Meyering
3ed2b48d10 Ensure that $(VERSION) is up to date for dist-related targets.
* GNUmakefile: Arrange to rerun autoconf, if the version reported
by git-version-gen doesn't match $(VERSION), but only for dist targets.

Signed-off-by: Jim Meyering <jim@meyering.net>
2007-09-02 13:48:36 +02:00
Jim Meyering
2c57c49cc3 bootstrap: uses rsync to download the .po files
* bootstrap (po_download_command_format): New global.
(download_po_files): Use rsync.
(update_po_files): Don't remove .po files after download,
so future rsync runs can take advantage of the copies.
2007-09-02 09:38:50 +02:00
Jim Meyering
5fabec7fb6 * bootstrap (gnulib_tool): Make sha1sum check quietly.
Signed-off-by: Jim Meyering <jim@meyering.net>
2007-09-01 19:54:04 +02:00
Jim Meyering
940c1a61f4 Ensure that snapshot version changes make it to groups, too.
* src/Makefile.am (groups): Depend on Makefile.
2007-09-01 11:22:30 +02:00
Jim Meyering
6873756075 Make groups-version executable,
* tests/misc/groups-version: ... as it was in the patch.
2007-09-01 11:20:42 +02:00
Eric Blake
3637b9572b Test yesterday's change to groups.
* tests/misc/groups-version: New test.
* tests/misc/Makefile.am (TESTS): Add groups-version.
2007-08-31 23:26:44 +02:00
Jim Meyering
89907ec099 Solve the unnecessary-.po-file-regeneration problem once and for all.
* bootstrap (download_po_files): New function, renamed from
get_translations.  Now, downloads, but doesn't update LINGUAS.
(update_po_files): New function.
2007-08-31 22:18:01 +02:00
Jim Meyering
42a4957361 Shorten the snapshot version string by removing the "g".
* build-aux/git-version-gen: Remove git-describe's "g" that would
always precede the abbreviated SHA1.  Suggestion from Dmitry V. Levin.
2007-08-30 23:13:12 +02:00
Jim Meyering
624d125cee Perform the s,rm,/bin/rm, fix-up properly. No more kludge.
* Makefile.am (EXTRA_DIST): Remove .kludge-stamp.
(.kludge-stamp): Remove rule.  Instead, ...
(dist-hook): Do the job here, operating on the file in $(distdir).
(rm_subst): Adjust regexp to match "rm -f rm$(EXEEXT)", not "rm -f rm".
(MAINTAINERCLEANFILES): s/+=/=/, now that this is the sole use.
(dist-hook): Remove the legacy-from-cvs install-sh is-executable check.
* .gitignore: Remove .kludge-stamp.

Signed-off-by: Jim Meyering <jim@meyering.net>
2007-08-30 17:28:12 +02:00
Jim Meyering
bfe49f506f Make inter-release --version output more useful.
Now, each snapshot has a version "number" like 6.9-219-g58ddd,
which indicates that it is built using the 219th change set
(in _some_ repository) following the "v6.9" tag, and that 58ddd
is a prefix of the commit SHA1.
* build-aux/git-version-gen: New file.
* configure.ac: Run it to set the version.
* Makefile.am (dist-hook): Arrange so that .version appears only
in distribution tarballs, never in a checked-out repository.
* .gitignore: Add .version here, too.  Just in case.

Signed-off-by: Jim Meyering <jim@meyering.net>
2007-08-30 17:26:31 +02:00
Eric Blake
8138613746 * src/.gitignore: Ignore *.exe for platforms with non-empty $(EXEEXT). 2007-08-30 17:25:20 +02:00
Eric Blake
4b11f24c64 Use PACKAGE_NAME instead of GNU_PACKAGE.
* src/Makefile.am (.sh, uninstall-local): Adjust all users of
hand-rolled GNU_PACKAGE to instead use autoconf-provided
PACKAGE_NAME.
* src/basename.c (main): Likewise.
* src/chroot.c (main): Likewise.
* src/dirname.c (main): Likewise.
* src/echo.c (main): Likewise.
* src/expr.c (main): Likewise.
* src/factor.c (main): Likewise.
* src/groups.sh (version): Likewise.  Also, reflect change in
--version output due to GPLv3.
* src/hostid.c (main): Likewise.
* src/hostname.c (main): Likewise.
* src/link.c (main): Likewise.
* src/logname.c (main): Likewise.
* src/nice.c (main): Likewise.
* src/nohup.c (main): Likewise.
* src/printenv.c (main): Likewise.
* src/printf.c (main): Likewise.
* src/pwd.c (main): Likewise.
* src/setuidgid.c (main): Likewise.
* src/sleep.c (main): Likewise.
* src/system.h (case_GETOPT_VERSION_CHAR): Likewise.
* src/test.c (main): Likewise.
* src/true.c (main): Likewise.
* src/unlink.c (main): Likewise.
* src/uptime.c (main): Likewise.
* src/users.c (main): Likewise.
* src/whoami.c (main): Likewise.
* src/yes.c (main): Likewise.
* configure.ac (AC_CHECK_DECLS): No need to check strtoimax,
strtoumax, since gnulib does this.
2007-08-30 17:12:56 +02:00
Jim Meyering
58ddd2c5a1 Ensure that TMPDIR is valid. Otherwise, it would cause test failures.
* tests/misc/tty-eof: Set TMPDIR=.
* tests/misc/sort-compress: Likewise.
2007-08-29 00:17:27 +02:00
Jim Meyering
35755454e4 Use EXIT_FAILURE, not EXIT_FAIL, now that EXIT_FAILURE is always 1.
* src/system.h (EXIT_FAIL): Remove definition.
* src/chroot.c (main): EXIT_FAIL -> EXIT_FAILURE.
* src/env.c (main): Likewise.
* src/nice.c (main): Likewise.
* src/su.c (change_identity, main): Likewise.
* src/tty.c (main): Likewise.
Suggestion from Eric Blake.
2007-08-29 00:14:23 +02:00
Jim Meyering
adfc479d47 * src/test.c (usage): Say that [ honors --help and --version, but test does not. 2007-08-28 18:42:45 +02:00
Jim Meyering
d6d5658df6 By default, do not install hostname anymore; no kidding, this time.
* src/Makefile.am (EXTRA_PROGRAMS): Remove hostname from this list,
now that it's no longer being installed by default.  This should
have been part of the 2007-08-21 change.
(check-duplicate-no-install): New rule to ensure this doesn't
happen again.
(check): Depend on it.
2007-08-28 18:24:54 +02:00
Jim Meyering
c370a7e62f Reflect renaming: mreadlink-with-size -> areadlink-with-size.
* bootstrap.conf: Update module name.
* src/copy.c (copy_internal): Update header and function names.
* src/ls.c (get_link_name): Likewise.
* src/readlink.c (main): Likewise.
* src/stat.c (print_stat): Likewise.
2007-08-28 11:23:27 +02:00
Jim Meyering
cbdbbc4a58 Add file system type names and magic numbers from "man 2 statfs".
* src/stat.c (human_fstype): Also handle BEFS, BFS, BINFMT_MISC,
FUSECTL, HUGETLBFS, NFSD and OPENPROM.
2007-08-28 00:14:20 +02:00
Jim Meyering
505eee2f38 Add some file system type names and magic numbers from glibc.
* src/stat.c (human_fstype): Add any file system names and values
present in glibc's linux_fsinfo.h but not in this list.
Alphabetize the S_* names and capitalize the hexadecimal constants.
2007-08-27 23:47:45 +02:00
Jim Meyering
ddb029b0f0 tests/misc/fold: Fix a typo: missing \ in a never-seen diagnostic 2007-08-26 18:45:19 +02:00
Eric Blake
a2f768f65e Avoid case-insensitive clash in one-page-per-node html docs.
* coreutils.texi (Concept index): Rename from Index.
2007-08-26 14:54:33 +02:00
Jim Meyering
eea7d892c4 * src/dircolors.hin: Add .dz and .svgz as archive suffixes. 2007-08-25 20:47:03 +02:00
Jim Meyering
6e3e819f4b Remove all .cvsignore files from version control. 2007-08-25 00:27:11 +02:00
Jim Meyering
ec06465572 bootstrap: Ignore more.
* bootstrap (symlink_to_dir): Add a directory name like
uniwidth to e.g., lib/.gitignore.
(slurp): Handle the sys_stat_.h -> sys mapping, too.
* .hgignore: Remove this file, too.
* Makefile.am (EXTRA_DIST): Remove .gitignore and .hgignore.
2007-08-25 00:21:30 +02:00
Jim Meyering
ee84700f76 No longer version-control .???ignore files in lib/, m4/, and po/.
* .gitignore: Ignore a few files in lib/, m4/, and po/ that are not
picked up automatically.
* lib/.gitignore, lib/.cvsignore: Remove files.
* m4/.gitignore, m4/.cvsignore: Remove files.
* po/.gitignore, po/.cvsignore: Remove files.
2007-08-24 23:53:19 +02:00
Jim Meyering
d71657c17b bootstrap: when fetching .po files, do not remove .gmo files.
* bootstrap (get_translations): Don't remove *.gmo files!
They can be expensive to regenerate.
2007-08-24 22:42:33 +02:00
Jim Meyering
8f3cb068fc Create .gitignore and/or .cvsignore from scratch, if absent.
This is in preparation for my removing those files from version
control in the directories managed by gnulib-tool.
* bootstrap: New setting: vc_ignore.
(insert_sorted_if_absent): Create $file if absent.
Adapt to new, possibly empty, list: $vc_ignore.
2007-08-24 22:42:07 +02:00
Jim Meyering
bcc1a1625c * src/system.h (fseeko, ftello): Remove now-unneeded definitions. 2007-08-24 14:55:24 +02:00
Jim Meyering
0ea19fb55c * src/od.c (LDBL_DIG): Remove now-unneeded definition. 2007-08-24 14:51:55 +02:00
Jim Meyering
dbb6c7b2e7 Arrange to use tag names like vM.N, rather than COREUTILS-M_N.
* Makefile.maint (this-vc-tag) [git]: Simply use v$(VERSION).
(this-vc-tag-regexp): New variable.
(vc-tag-check): Use it, rather than $(this-vc-tag).
2007-08-24 14:07:06 +02:00
Jim Meyering
90b11ce665 * src/dircolors.hin: Add xterm-16color, xterm-88color and eterm-color.
Suggestion from Dan Nicolaescu.
2007-08-23 16:33:11 +02:00
Jim Meyering
d02e4e7775 Don't let ln be a party to destroying user data.
* src/ln.c: Include "file-set.h", "hash.h" and "hash-triple.h".
(dest_set, DEST_INFO_INITIAL_CAPACITY): New globals.
(do_link): Refuse to remove a just-created link.
Record a name,dev,ino triple for each link we create.
(main): Initialize dest_set, if needed.
* tests/mv/childproof: Test for the above fix.
* NEWS: Document this.
Reported by Eric Blake.

Signed-off-by: Jim Meyering <jim@meyering.net>
2007-08-23 14:00:35 +02:00
Jim Meyering
22ed81c410 Move functions from copy.c into new modules, since ln needs them, too.
* bootstrap.conf (gnulib_modules): Add file-set.
* gl/lib/file-set.c (record_file, seen_file): Functions from copy.c.
* gl/lib/file-set.h: Add prototypes.
* gl/lib/hash-triple.c (triple_hash, triple_hash_no_name):
(triple_compare, triple_free): Functions from copy.c.
* gl/lib/hash-triple.h (struct F_triple): Define.  From copy.c.
Add prototypes.
* gl/modules/file-set: New module.
* gl/modules/hash-triple: New module.
* src/Makefile.am (copy_sources): New variable.
(ginstall_SOURCES, cp_SOURCES, mv_SOURCES): Use it.
* src/copy.c: Include hash-triple.h.
No longer include hash-pjw.h.
(copy_internal): Don't pass a NULL third argument to record_file,
since that function no longer accepts that.
(record_file): Move this function to file-set.c.
Along the way, remove the code to allow a NULL stat-buffer pointer.
Adjust sole caller.
(seen_file): Move this function to file-set.c.
(struct F_triple): Move declaration to hash-triple.h.
(triple_compare, triple_free, triple_hash, triple_hash_no_name):
Move these functions to hash-triple.c.

Signed-off-by: Jim Meyering <jim@meyering.net>
2007-08-23 13:59:40 +02:00
Jim Meyering
173524ed7d bootstrap: generate more names and fix a bug
* bootstrap (slurp): Don't test for existence of $copied,
which is usually a newline-separated list of file names.
When generating ignorable names, also map .sin to .sed,
.gperf to .c, and .y to .c.
2007-08-23 10:57:07 +02:00
Jim Meyering
144fe359e1 * Makefile.maint (patch-check): Don't remove temporaries upon failure. 2007-08-23 09:46:14 +02:00
Jim Meyering
2005de6be9 * src/c99-to-c89.diff: Adjust offsets. 2007-08-22 23:49:51 +02:00
Jim Meyering
0918810a7d Change "rm --verbose -r a//" not to print extra slashes in a///b
* src/remove.c (push_dir): Don't copy trailing slashes onto the stack.
Reported by François Pinard.
* tests/rm/v-slash: New file.  Test for the above change.
* tests/rm/Makefile.am (TESTS): Add v-slash.
2007-08-22 20:02:34 +02:00
Jim Meyering
55539fc6bd Don't include "getline.h".
That file has just been removed from gnulib;
its declarations are now in <stdio.h>.
* src/md5sum.c: Likewise.
* src/dircolors.c: Likewise.
2007-08-22 16:59:40 +02:00
Jim Meyering
a5153c5b06 * src/copy.c (DEST_INFO_INITIAL_CAPACITY): Correct a comment. 2007-08-22 11:20:41 +02:00
Jim Meyering
fba081f923 By default, do not install hostname anymore.
* configure.ac: Add "hostname" to the list of not-installed programs.
* src/Makefile.am (no_install__progs): Add "hostname" here, too.
* NEWS: Mention this.
2007-08-21 10:36:05 +02:00
Bob Proulx
741f851bf6 Clarify touch documentation of file arguments.
* src/touch.c (usage): Improve wording of documentation regarding
file argument handling and special handling of - argument.
* doc/coreutils.texi (touch invocation): Likewise.
Documentation problem reported by Vincent Lefevre.
2007-08-21 09:01:07 +02:00
Paul Eggert
6dfe8fc30d NEWS: note that a cp -p bug fixed in 6.7 affected releases before 6.0.
Problem reported by Soren Spies in
<http://lists.gnu.org/archive/html/bug-coreutils/2007-08/msg00106.html>.
To be conservative, just say the bug was in all versions through 6.6.
2007-08-20 17:29:27 +02:00
Eric Blake
feed02af9d Avoid consuming too much seekable input when yesno is used.
* bootstrap.conf (gnulib_modules): Grab closein.
* src/system.h (includes): Also include closein.h.
* src/mv.c (main): Use close_stdin, not close_stdout.
* src/cp.c (main): Likewise.
* src/ln.c (main): Likewise.
* src/rm.c (main): Likewise.
* src/install.c (main): Likewise.
* NEWS: Document the fix.
2007-08-20 17:03:45 +02:00
Jim Meyering
a05ae2f716 Use new "idcache.h" header.
* src/ls.c: Remove ancient declarations of getuser and getgroup.
Include "idcache.h", instead.
2007-08-18 08:59:17 +02:00
Jim Meyering
b78c6b68f7 Run each Coreutils.pm-based test in its own subdirectory.
* tests/CuTmpdir.pm: New file.
* tests/Makefile.am (EXTRA_DIST): Add CuTmpdir.pm.
* tests/misc/od, tests/misc/base64, tests/misc/basename:
* tests/misc/cut, tests/misc/date, tests/misc/dirname:
* tests/misc/expand, tests/misc/fold, tests/misc/head-elide-tail:
* tests/misc/paste-no-nl, tests/misc/pr, tests/misc/sha224sum:
* tests/misc/sha256sum, tests/misc/sha384sum, tests/misc/sha512sum:
* tests/misc/sort-merge, tests/misc/stat-printf, tests/misc/test-diag:
* tests/misc/wc-files0-from, tests/misc/xstrtol:
* tests/dd/skip-seek, tests/dircolors/simple, tests/du/files0-from:
* tests/expr/basic, tests/factor/basic, tests/fmt/basic:
* tests/ls-2/tests, tests/md5sum/basic-1, tests/md5sum/newline-1:
* tests/seq/basic, tests/sha1sum/basic-1, tests/sha1sum/sample-vec:
* tests/sum/basic-1, tests/tsort/basic-1, tests/unexpand/basic-1:
* tests/mv/i-1, tests/rm/empty-name, tests/rm/unreadable: Use it.
* tests/misc/test-diag: Use "$ENV{abs_top_builddir}/src/test",
not "../../src/test", so it works when run from a subdirectory.
* tests/ls-2/tests: Create temp files and dirs from within the perl
script, so that they're removed, when run from a subdirectory.
2007-08-18 08:53:31 +02:00
Jim Meyering
d2e5e366a1 Consolidate od tests.
* tests/misc/od: Perform od-zero-len's test here.
Include boilerplate code, so tests run in a subdirectory.
* tests/misc/od-zero-len: Remove this file.
2007-08-16 19:18:29 +02:00
Jim Meyering
e069d38d35 * tests/ls/time-1: Include sample-test boilerplate code.
Remove the then-unnecessary, hard-coded envvar "unset" commands.
2007-08-16 15:50:00 +02:00
Jim Meyering
535a9fe512 od --skip (-j) works even on files in /proc, when the kernel lies
* src/od.c (skip): Don't let kernel misinformation (nonempty files
in /proc with stat.st_size == 0) make "od -j N" misbehave.
Patch by Paul Eggert.
* NEWS: Document this work-around.
* tests/misc/od-zero-len: New file, test for the above.
2007-08-15 22:45:55 +02:00
Jim Meyering
9ee7933b5c * src/printf.c (usage): Adjust summary to also mention OPTIONs.
From Karl Berry.
2007-08-15 10:05:22 +02:00
Jim Meyering
e769e6e632 Add tests for the just-fixed "od -j N FILE" bug.
* tests/misc/od: New file, test for the above.
* tests/misc/Makefile.am (TESTS): Add od.
2007-08-14 10:39:05 +02:00
Jim Meyering
1490f2dbf3 od: fix a bug that arises when skipping exact length of file
* NEWS: Document the bug fix.
* src/od.c (skip): Call fseek even when n_skip is exactly the
same as the length of the current file.  Otherwise, the next
iteration would use unadjusted input stream pointer, thus ignoring
the desired "skip".  Report and patch by Paul GHALEB.
2007-08-14 09:47:05 +02:00
Paul Eggert
ed31c612c1 Accommodate more xstrtol changes.
* src/df.c (long_options): Don't bother prepending "--" to long
options that OPT_STR might decode, as that hack is no longer needed.
(main): Invoke xstrtol_fatal rather than STRTOL_FATAL_ERROR.
* src/du.c (long_options, main): Likewise.
* src/ls.c (decode_switches): Likewise.
* src/od.c (long_options, main): Likewise.
* src/pr.c (first_last_page, main): Likewise.
* src/sort.c (long_options, specify_sort_size): Likewise.
* src/pr.c (first_last_page): Accept option index and option char
instead of an assembled option string.  All callers changed.
* src/sort.c (specify_sort_size): Likewise.
* src/system.h (OPT_STR, LONG_OPT_STR, short_opt_str, OPT_STR_INIT):
Remove.
2007-08-11 08:32:50 +02:00
Jim Meyering
d243c0e840 Adapt to gnulib's latest xstrtol change.
* POTFILES.in: Use lib/xstrtol-error.c, not lib/xstrtol.h.
2007-08-08 20:02:55 +02:00
Jim Meyering
e1e97eccb7 Encapsulate a static variable.
* src/system.h (opt_str_storage): Move static var into...
(short_opt_str): ... new static inline function.
(OPT_STR): Use the new function.
2007-08-05 15:42:59 +02:00
Jim Meyering
8c8f3467f5 * POTFILES.in: Remove lib/human.c. 2007-08-04 13:45:34 +02:00
Jim Meyering
23183bb36b Exercise xstrtol's diagnostics via pr's --pages option.
* tests/misc/xstrtol: New file.
* tests/misc/Makefile.am (TESTS): Add xstrtol.
2007-08-04 13:45:21 +02:00
Paul Eggert
8188c3b48d Adapt to new human and xstrtol API.
* src/df.c (long_options): Prepend "--" to long options that
OPT_STR might decode.
* src/du.c (long_options): Likewise.
* src/od.c (long_options): Likewise.
* src/sort.c (long_options): Likewise.
* src/df.c (main): Adjust to new human and xstrtol API.
* src/du.c (main): Likewise.
* src/ls.c (decode_switches): Likewise.
* src/od.c (main): Likewise.
* src/pr.c (first_last_page): Likewise.  New argument OPTION.
All callers changed.
* src/sort.c (specify_sort_size): New arg OPTION.  All callers
changed.  Adjust to new xstrtol API.
* src/system.h (opt_str_storage): New static var.
(OPT_STR, LONG_OPT_STR, OPT_STR_INIT): New macros.
2007-08-04 13:36:59 +02:00
Jim Meyering
33f95a9ab6 Adjust one more test to accommodate the recent fts change.
This matters only on systems with insufficient openat support.
* tests/du/inacc-dest: Adjust expected diagnostic.
2007-08-02 19:48:03 +02:00
Jim Meyering
674ea8b2dc Adjust the other two "no-x" tests and unify all three.
* tests/du/no-x: Factor out du-specific bits.
* tests/chmod/no-x: Use the same code.
* tests/chgrp/no-x: Use the same code.
2007-08-02 19:27:07 +02:00
Jim Meyering
df03463679 Adapt du's no-x test not to fail on older Linux systems.
* tests/du/no-x: Accept a third variant of the diagnostic.
2007-08-02 18:52:40 +02:00
Jim Meyering
fd9a6e860b du: print size (probably incomplete) of each inaccessible directory
* src/du.c (process_file): Print what we know of the size of a
 directory even when it is inaccessible.  What we print is just the
 size of the directory itself, not counting any of its contents.
 * tests/du/inacc-dir: Test for this.
 * NEWS: Mention this change.

Signed-off-by: Jim Meyering <jim@meyering.net>
2007-07-31 12:10:11 +02:00
Jim Meyering
3b03442c54 Add a test for du not counting size of inaccessible directories.
* tests/du/inacc-dir: New file. Test for fts.c bug fixed yesterday.
 * tests/du/Makefile.am (TESTS): Add inacc-dir.
 * NEWS: Mention the bug fix.

Signed-off-by: Jim Meyering <jim@meyering.net>
2007-07-31 12:10:11 +02:00
Jim Meyering
1b6f200c8e Adjust indentation to reflect today's change. 2007-07-29 15:47:11 +02:00
Jim Meyering
288524b39b Attempt to copy a regular file, even if stat says it is empty.
* NEWS: Document this bug fix.
* src/copy.c (copy_reg): Read from a regular file, even if it
appears (stat.st_size == 0) to be empty.  This reverts an
optimization introduced on 2005-11-23 for coreutils-6.0.
Otherwise, "cp /proc/cpuinfo /tmp" creates an empty file,
on e.g., linux-2.6.20.
* tests/cp/proc-zero-len: New file.  Test for the above.
* tests/cp/Makefile.am (TESTS): Add proc-zero-len.
Reported by Dan Berrangé.
2007-07-29 12:03:15 +02:00
Bob Proulx
26468bd5a2 sort: Improve sort --random-sort test.
Jim Meyering wrote:
> so if your test were to run sort -R twice, and compare *those* outputs,
> then it would trigger on this bug.

Thanks.  I don't have a system with the failure so I was working
blind.  Here is a rework of the patch.

Bob

>From 76dafb0dde4f8d685eb2b4b43fbf3c1cf9f0ff4b Mon Sep 17 00:00:00 2001
From: Bob Proulx <bob@proulx.com>
Date: Thu, 26 Jul 2007 02:19:49 -0600
Subject: [PATCH] sort: Improve sort --random-sort test.
* tests/misc/sort-rand: If "locale" is available pick a random
non-C locale and check "sort --random-sort" behavior using it.

Signed-off-by: Bob Proulx <bob@proulx.com>
2007-07-26 10:32:21 +02:00
Jim Meyering
813d66cea7 NEWS: Move the other "sort" entry from the 6.9 section into 6.10 "Bug fixes". 2007-07-24 10:01:44 +02:00
Jim Meyering
c12bf5fb7f sort: add a test to exercise the affected code.
* tests/sort/Test.pm (realloc-buf): Exercise the code that changed
yesterday.  No other test in all of "make check" does this.
* NEWS: Mention the fix.
2007-07-24 09:59:14 +02:00
Paul Eggert
9d8e077ca1 sort: avoid unaligned access.
* src/sort.c (fillbuf): When enlarging the line buffer, ensure that
the new size is a multiple of "sizeof (struct line)".  This avoids
alignment problems when indexing from the end of the buffer.
Problem reported by Andreas Schwab in
<http://lists.gnu.org/archive/html/bug-coreutils/2007-07/msg00158.html>.
2007-07-24 09:40:55 +02:00
Jim Meyering
71aa3ea880 Update all copyright notices to use the newer form. 2007-07-23 14:35:58 +02:00
Jim Meyering
5f606e6f1f * COPYING: Update to Version 3. 2007-07-23 14:31:01 +02:00
Jim Meyering
7326d1f1a6 Update c99/c89 patch for new, copyright-change-induced offsets.
* Makefile.maint (patch-check): Filter out '^Only in...' lines.
* src/c99-to-c89.diff: Handle new c99'isms in seq.c.
2007-07-23 14:07:02 +02:00
Jim Meyering
cd098ea199 Arrange to rerun configure whenever src/Makefile.am changes.
* configure.ac: Arrange to rerun configure whenever src/Makefile.am changes.
That file contains the list of program names that must be substituted into
files like man/Makefile.
Add quotes around AC_SUBST arguments.

Signed-off-by: Jim Meyering <jim@meyering.net>
2007-07-22 19:26:22 +02:00
Paul Eggert
a0c8d0e0fe * bootstrap (slurp): Work even in environments where "ls" defaults
to "ls -A".  Put in a FIXME, though, since the current code does
not slurp files whose names start with ".", and this looks like
it might be a troublesome area.
2007-07-21 15:00:54 +02:00
Jim Meyering
366aaf59dc Document and add a test for today's sort bug fix.
* NEWS: Describe the bug fix.
* tests/sort/Test.pm (obs-inval): Add a test for today's fix.
2007-07-20 18:42:23 +02:00
Andreas Schwab
0cf6181947 * src/sort.c (main): Don't free a pointer to non-malloc'd memory. 2007-07-20 16:29:06 +02:00
Jim Meyering
1f2c2d7053 Fix a portability bug in the new ls-color test.
* tests/ls/stat-free-symlinks: Don't rely on the ability of
a built-in printf to interpolate '\e'.  Use '\033' instead.
2007-07-19 10:17:39 +02:00
Jim Meyering
7465b002f9 "cp -i --update older newer" no longer prompts; same for mv
* src/copy.c (copy_internal): Perform "update" check before the
possible interactive prompt.  Reported by zeno_AT_biyg_DOT_org
in <http://bugzilla.redhat.com/248591>
* tests/mv/update: Add tests for the above.
* NEWS: Mention the bug fix.
2007-07-19 10:14:41 +02:00
Jim Meyering
8062509aa7 ChangeLog: Mention the correct function name in the 2007-07-08 bootstrap
entry.
2007-07-17 09:16:59 +02:00
Jim Meyering
0a744370bb ls --color: Don't stat symlinks when neither ORPHAN nor MISSING attribute has a color.
* src/ls.c (main): Don't set check_symlink_color when C_EXEC is
colored, unless ln=target (aka color_symlink_as_referent) is set.
(gobble_file): Set f->linkok = true also when !check_symlink_color.
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/10608/focus=10927
Reported by Jeremy Maitin-Shepard.
* tests/strace: New file, contents extracted from...
* tests/mv/atomic: ...here.  Source strace.
* tests/ls/stat-free-symlinks: New file.  Test for the above.
Use strace to ensure that in this corner case, ls does not call stat.
* tests/ls/Makefile.am (TESTS): Add stat-free-symlinks.
* tests/Makefile.am (EXTRA_DIST): Add strace.
2007-07-15 22:13:44 +02:00
Jim Meyering
065109af86 * coreutils.texi: Revise node structure per new fdl.texi. 2007-07-15 22:11:45 +02:00
Jim Meyering
1e07a21459 Remove long-deprecated options.
* NEWS: Mention this.
* src/df.c, src/ls.c: Remove --kilobytes option.
* src/du.c: Remove --kilobytes and --megabytes options.
* src/who.c: Remove -i and --idle options.
* src/ptx.c: Remove --copyright option.

Signed-off-by: Jim Meyering <jim@meyering.net>
2007-07-14 19:17:01 +02:00
Jim Meyering
78adb282a7 Change interface: make 2nd param _space_-separated, not comma-separated
* m4/include-exclude-prog.m4 (gl_INCLUDE_EXCLUDE_PROG): Remove now-
unnecessary use of tr.
Improve comments.
* configure.ac: Adjust caller, as well as the code that ensures the
2nd parameter stays in sync with the list in src/Makefile.am.
2007-07-14 10:05:23 +02:00
Karel Zak
1ff9e235e7 * m4/include-exclude-prog.m4 (gl_REMOVE_PROG): Fix typo: s/$2/$1/.
(gl_INCLUDE_EXCLUDE_PROG): Quote first use of $2 parameter.
Don't mix comma- and space-separated lists.
Patch from Karel Zak.
2007-07-14 09:38:42 +02:00
Jim Meyering
916fcda554 Warn about non-portable use of unescaped backslash at end of string,
and treat it as if it were escaped.
* src/tr.c (unquote): Considering that such usage would make GNU tr
from coreutils-5.2.1 and earlier *fail*, the least we can do now is
to warn about it.  Solaris' tr ignores it.
* NEWS: Mention this.
2007-07-13 18:37:16 +02:00
Jim Meyering
d26ba897eb Use proper backslash-quoting inside backticks.
* configure.ac: Otherwise we run afoul of strict GNU tr:
a string ending in a lone backslash would provoke a failure.
2007-07-13 14:12:01 +02:00
Jim Meyering
cee14cc42f Expand default-no-install prog list in ./configure --help output,
and fix some []-quoting bugs in sed expressions.
* configure.ac: Hard-code the list, "arch,su" here as well
as in src/Makefile.am, and ensure the two stay in sync.
* m4/include-exclude-prog.m4 (gl_INCLUDE_EXCLUDE_PROG): Use $2,
rather than the nearly-equivalent shell variable.
Karel Zak reported that ./configure --help's output included
the literal string, $gl_no_install_progs_default.
2007-07-12 20:58:53 +02:00
Jim Meyering
13b2b9c342 Clean up include-exclude-prog.m4.
* m4/include-exclude-prog.m4 (gl_ADD_PROG): Don't modify MAN.
(gl_REMOVE_PROG): Likewise.
Add omitted "\>" in sed regexp.
Remove any leading or trailing spaces.
(gl_ADD_PROG): Remove any leading space.
* configure.ac: Instead, derive $MAN from $optional_bin_progs.
Append $(EXEEXT) to *all* names, not just the first one.
2007-07-12 11:41:32 +02:00
Jim Meyering
e345806d93 If there's a GPL vN copyright comment, require that N == 3.
* Makefile.maint (sc_GPL_version): New rule.
* tests/misc/arch: Fix the sole violation.
2007-07-11 11:25:57 +02:00
Jim Meyering
89dc019451 Skip "arch" test if it's not built.
* tests/misc/Makefile.am (built_programs): Define.
(TESTS_ENVIRONMENT): Add $(built_programs), for...
* tests/misc/arch: ...this: skip the test if arch is not built.
* src/Makefile.am (built_programs.list): New rule.
* tests/Makefile.am (built_programs): Rename from all_programs.
(TESTS_ENVIRONMENT): Use built_programs, not all_programs.
* tests/help-version: Likewise.
* NEWS: Mention that using --enable-no-install-program=X may
cause "make check" to fail.

Signed-off-by: Jim Meyering <jim@meyering.net>
2007-07-10 23:39:05 +02:00
Jim Meyering
471d33582e Add support for enabling/disabling installation of specified programs.
* NEWS: Mention new configure-time options.
Mention that neither arch nor su is built/installed, by default.
* m4/include-exclude-prog.m4: New file.
* configure.ac: Use new macro, gl_ADD_PROG, rather than
manually appending to OPTIONAL_BIN_PROGS and MAN.
Move the code that adds "df" to the list of programs to build from
m4/jm-macros into this file.
Use gl_INCLUDE_EXCLUDE_PROG, then handle special cases: ginstall, [.
(NO_INSTALL_PROGS_DEFAULT): AC_SUBST it.  Used by man/Makefile.am.
* man/Makefile.am (dist_man_MANS): Remove from this list all man pages
corresponding to "bin" programs. Add $(MAN) instead.
(optional_mans): Remove all uses.
(check-x-vs-1): Adapt to work even though arch and su are typically
no longer built (and neither are their .1 files).
* src/Makefile.am (install_su): Rename from INSTALL_SU, now that
INSTALL_SU has a different meaning. Use the new $(INSTALL_SU) value.
2007-07-10 22:55:15 +02:00
Karel Zak
264021699c New program: arch
* NEWS: Mention arch.
* README: Add arch to the list of programs.
* AUTHORS: Add arch.
* src/uname.c: Include "uname.h".
(PROGRAM_NAME): Handle arch, too.
(ARCH_AUTHORS): Define.
(uname_long_options, arch_long_options): Renamed and new globals.
(usage): Handle arch-mode as well as uname-mode.
(decode_switches): New function, extracted from main,
to handle arch-mode as well as uname-mode.
(main): Handle both modes.
* src/uname-arch.c: New program, alias for "uname -m".
* src/uname-uname.c: New file, default uname mode.
* src/uname.h: New file, uname modes.
* src/Makefile.am (EXTRA_PROGRAMS): Add arch.
(uname_SOURCES, arch_SOURCES): Define.
* man/arch.x: New file.
* man/Makefile.am (dist_man_MANS): Add arch.1.
(arch.1): New dependency.
* tests/misc/arch: New test, compare "arch" with "uname -m"
* configure.ac (OPTIONAL_BIN_PROGS): Add arch.
(MAN): Add arch.1.
* .x-sc_require_config_h: Exempt uname-arch.c and uname-uname.c
from the always-include-<config.h> rule.

Signed-off-by: Karel Zak <kzak@redhat.com>
Signed-off-by: Jim Meyering <jim@meyering.net>
2007-07-10 19:00:00 +02:00
Jim Meyering
33342c1a0a Change "version 2" to "version 3" in all copyright notices. 2007-07-10 13:35:56 +02:00
Jim Meyering
578332c0e2 Compensate for new c99'isms in seq.c.
* Makefile.maint (patch-check): Use -p1, not -p2, so a patch
generated via "make patch-check REGEN=1" actually works.
* src/c99-to-c89.diff: Handle new c99'isms in seq.c.
2007-07-09 19:24:15 +02:00
P@draigBrady.com
86e4b778b1 Fix the automatic number width formatting in seq.
* src/seq.c: Fix the -w logic. Ignore spaces and '+'
characters of input numbers when determining width.
Set format correctly for input numbers in scientific notation.
* tests/seq/basic: Add various number width tests.
Details: <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/10903>

Signed-off-by: Pádraig Brady <Pádraig Brady P@draigBrady.com>
2007-07-09 17:55:57 +02:00
Jim Meyering
55c53863a8 Run the coreutils-specific code only if tests/Makefile.am.in exists.
* bootstrap (mam_template): Move definition out of loop.
2007-07-08 20:09:59 +02:00
Jim Meyering
432a7c21f0 Remove .gdb-history. 2007-07-08 19:12:48 +02:00
Jim Meyering
43d86d8c95 Add to .cvsignore and .gitignore files. 2007-07-08 17:25:05 +02:00
Jim Meyering
7b5c057f5f Create symlinks for gl/{lib,m4}/*, just as for gnulib/{lib,m4}/*.
* bootstrap (symlink_to_dir): Rename function from symlink_to_gnulib.
Add a directory parameter.  Update all callers.
(cp_mark_as_generated): Also check for -- and link to -- files in gl/.
2007-07-08 17:24:29 +02:00
Jim Meyering
17cc46a11a THANKS: Add Pádraig Brady.
2007-07-08  Jim Meyering  <jim@meyering.net>
2007-07-08 16:42:50 +02:00
Jim Meyering
e7368caf47 Adapt to deeper hierarchy in gnulib.
* bootstrap (gnulib_tool): If the destination directory doesn't exist,
create it. This is required at least for "lib/uniwidth/cjk.h".
2007-07-08 12:42:05 +02:00
Jim Meyering
1cea914143 Use <wchar.h>, not "wcwidth.h".
* src/wc.c: Now that gnulib provides the POSIX-specified <wchar.h>,
include it and <wctype.h>, rather than "wcwidth.h".
* src/ls.c: Include <wchar.h>, rather than "wcwidth.h".
2007-07-08 12:39:24 +02:00
Jim Meyering
685d3c3f2a Fix typo in comment. 2007-07-07 01:49:12 +02:00
Jim Meyering
e0066f36c2 setuidgid: set all groups, not just the primary one; mgetgroups: new module
I wanted to use the xgetgroups function from id.c, so factored it out
and made it into a non-exiting function (hence the "m" prefix rather than "x").
* src/setuidgid.c (main): Use mgetgroups. Include "mgetgroups.h".

* src/id.c (xgetgroups): Remove function.
Include "mgetgroups.h".
(print_group_list): Use mgetgroups, not xgetgroups.

* gl/modules/mgetgroups: New module.
* gl/lib/mgetgroups.c: New file.  mgetgroups is derived from
id.c's xgetgroups function.
* bootstrap.conf (gnulib_modules): Add mgetgroups.
* gl/m4/mgetgroups.m4: New file.
* gl/lib/mgetgroups.h: New file.
2007-07-06 07:44:39 +02:00
Jim Meyering
b8031ff7c7 * bootstrap: Merge in changes from gnulib. 2007-07-05 17:44:31 +02:00
Jim Meyering
25e9ed1354 * src/id.c: Include "getugroups.h" rather than declaring manually. 2007-07-05 14:44:20 +02:00
Jim Meyering
4b9ab62580 Add Paul's ChangeLog for previous patch.
Restore the m4/.gitignore file I inadvertently removed.
2007-07-04 13:16:53 +02:00
Paul Eggert
36ce675bb4 pr -F no longer suppresses the footer or the first two blank header lines
Here's a patch along the lines of
<http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/10849/focus=10857>.
It's a bit large since it changes the test cases to match the behavior,
and the test cases' file names depend on the behavior!

* NEWS: pr -F no longer suppresses the footer or the first two blank
lines in the header.
* doc/coreutils.texi (pr invocation): Likewise.  Also, a too-short
page length implies -t, not -T.
* src/pr.c (lines_per_header, lines_per_footer): Now constants.
(init_parameters): Don't try to change them.
(print_header): Use the same header and footer format regardless of
wither form feeds are being used.
(usage): Adjust to above change when describing too-short page length.
Too-short page length impliesy -t, not -T.
* tests/pr/2-S_f-t_notab: Adjust to the fact that -F now affects
only formfeed handling; it does not change the header.
* tests/pr/2-Sf-t_notab: Likewise.
...
* tests/pr/3-5l17f-t: Remove, since it's been renamed to another
file whose name has a line count 7 larger,
reflecting the new line count needed for this behavior.
* tests/pr/3a3l8f-t: Likewise.
...
* tests/pr/w72l24f-ll: Likewise.

Signed-off-by: Jim Meyering <jim@meyering.net>
2007-07-04 12:45:10 +02:00
Jim Meyering
519d7a95a3 Prefer "STREQ (a, b)" over "strcmp (a, b) == 0"; similar for != 0.
* src/base64.c (main): Likewise.
* src/install.c (setdefaultfilecon): Likewise.
* src/sort.c (main): Likewise.
* Makefile.maint (sc_prohibit_strcmp): New rule.
* .x-sc_prohibit_strcmp: New file, to list the few exceptions.
* Makefile.am (EXTRA_DIST): Add .x-sc_prohibit_strcmp.
2007-06-23 10:11:25 +02:00
Paul Eggert
a0304574e9 seq no longer mishandles cases like "seq 0 0.000001 0.000003",
where it would not print the desired last number.
* doc/coreutils.texi (seq invocation): Remove advice about workaround
for seq off-by-one problem, since the bug is fixed now.  Replace
it with more-generic advice about rounding errors.
* src/seq.c (long_double_format, print_numbers):
New arg NUMERIC_FORMAT.  All uses changed.
2007-06-23 09:43:59 +02:00
Pádraig Brady
01616c9404 Add test cases for seq off-by-one problem. 2007-06-22 20:40:49 +02:00
Jim Meyering
2b25436813 * src/stat.c (long_options): Add a FIXME comment to help ensure
that the deprecated and undocumented "--filesystem" option is
removed someday.
2007-06-22 20:26:01 +02:00
Paul Eggert
811901cb41 A few more symlink-related fixes. Fix a bug triggered by cp
--parents and symlinks.  Close some race conditions possible when
the destination replaces a newly-created file with a symlink.
* NEWS: Document that 'cp --parents' no longer mishandles
symlinks in file name components of source.
* src/copy.c (HAVE_LCHOWN): Default to false.
(lchown) [!defined HAVE_LCHOWN]: Define to chown, for convenience.
* src/cp.c (lchown) [!HAVE_LCHOWN]: Likewise.
* src/install.c (lchown [!HAVE_LCHOWN]: Likewise.
* src/copy.c (set_owner): Use lchown instead of chown, for safety
in case the file got replaced by a symlink in the meantime.
* src/cp.c (re_protect): Likewise.
* src/install.c (change_attributes): Likewise.
* src/copy.c (copy_internal): Use ordinary C rather than an #if.
* src/cp.c (lchown) [!HAVE_LCHOWN]: Define to chown, for convenience.
(struct dir_attr): Cache the entire struct stat of the directory,
rather than just its mode, so that we needn't stat the directory
twice (which can lead to races).
(re_protect): Don't use XSTAT as that's not appropriate in
this context (symlinks should be followed here).  Instead, use
the cached stat value.
(make_dir_parents_private): Save dir's entire struct stat, not
just its mode.
* tests/cp/cp-parents: Add test to check against bug with
cp --parents and symlinks.
2007-06-18 15:20:44 +02:00
Jim Meyering
0adc02a086 Use mreadlink_with_size (doesn't exit), not xreadlink_with_size.
* bootstrap.conf (gnulib_modules): Add readlink-with-size.
Remove xreadlink and xreadlink-with-size.
* src/copy.c (copy_internal): Use mreadlink_with_size,
not xreadlink_with_size.
* src/ls.c (get_link_name): Likewise.
* src/readlink.c (main): Likewise.
* src/stat.c (print_stat): Likewise.
2007-06-18 15:19:34 +02:00
Jim Meyering
063aa30a3d * README-hacking: Don't mention Gzip 1.2.4, now that 1.3.12 is out. 2007-06-18 11:19:57 +02:00
Jim Meyering
c23c89db0f Make chgrp and chown diagnostics consistent.
* src/chown.c (main): Emit the diagnostic before the file name,
not after it, to be consistent with chgrp's diagnostic.
* src/chgrp.c (parse_group): Emit a ":" between the diagnostic
and the file name.
Reported by Egmont Koblinger.
* THANKS: Add Egmont Koblinger.
2007-06-16 12:53:40 +02:00
Paul Eggert
cdec7e6e93 Correct cp's handling of destination symlinks in some cases.
* NEWS: "cp" no longer considers a destination symlink to be the
same as the referenced file when copying links or making backups.
* src/copy.c (copy_reg): When following a symlink, use the
followed name in later chown etc. requests, so that the created
file is affected, rather than the symlink.  Use O_NOFOLLOW on
source when not dereferencing symlinks; this avoids a race.
Preserve errno correctly when doing multiple open attempts on the
destination.
(copy_internal): Follow destination symlinks only when copying a
regular file and only when we don't intend to remove or rename the
destination first, regardless of whether following source
symlinks; this is because since POSIX and tradition (e.g.,
FreeBSD) say we should ordinarily follow destination symlinks if
the system calls would ordinarily do so.
* src/copy.h (struct cp_options): Add comment that 'dereference'
is only for source files.
* src/cp.c (usage): Note that --derereference etc. are only for
source files.
(make_dir_parents_private): Follow symlinks, regardless of whether
--dereference is specified, because these are destination symlinks.
* tests/cp/same-file: Adjust tests to match revised behavior.
Filter out perror output since it might vary from host to host.
Use sed alone instead of also using echo.

* doc/coreutils.texi (cp invocation): Document the behavior better when
the destination is a symlink.  Clarify source versus destination
symlinks.  Describe the new behavior for destination symlinks.

2007-06-15  Jim Meyering  <jim@meyering.net>

* src/copy.c: Include "canonicalize.h".
(copy_reg): Use canonicalize_filename_mode to follow the symlink,
so that we can always open with O_EXCL and avoid a race.
2007-06-15 22:47:16 +02:00
Jim Meyering
cad884a245 Don't include "quote.h" when it is not used.
* src/md5sum.c: Remove unnecessary inclusion of "quote.h".
* src/expr.c: Likewise.
* src/shred.c: Likewise.
* Makefile.maint (sc_prohibit_quote_without_use): New rule.
* src/c99-to-c89.diff: Adjust offsets.
2007-06-15 15:49:00 +02:00
Paul Eggert
6a0dea3ca0 Clarify what "cat" documentation means by "blank" lines.
* doc/coreutils.texi (cat invocation): "Blank" lines actually mean
empty lines.
* src/cat.c (usage): Say that "nonblank" means nonempty.  Clarify
--squeeze-blank.
2007-06-15 09:29:18 +02:00
Jim Meyering
85c3924ce5 rmdir: give better diagnostics
* src/rmdir.c (remove_parents): Give a more descriptive/consistent
diagnostic upon failure.
(main): Likewise.
Suggestion from Joey Hess.
* THANKS: Add Joey Hess.
2007-06-13 15:53:12 +02:00
Jim Meyering
a780166b41 Don't include "quotearg.h" when it is not used.
* Makefile.maint (sc_prohibit_quotearg_without_use): New rule.
* src/cp.c: Don't include "quotearg.h".  It wasn't used.
2007-06-13 15:33:38 +02:00
Jim Meyering
ae60d5bc4d * README-hacking: List Gperf as a build-requirement, too.
Reported by Steve Ward.
2007-06-13 08:00:41 +02:00
Jim Meyering
e1afd98589 README: Also mention README-hacking,
for whose who start from
cloned/checked-out sources rather than from a distribution tarball.
Reported by Steve Ward.
* THANKS: Add Steve Ward.

Signed-off-by: Jim Meyering <jim@meyering.net>
2007-06-11 11:10:23 +02:00
Jim Meyering
016af51031 Add to .cvsignore and .gitignore files. 2007-06-10 18:39:53 +02:00
Jim Meyering
b1b0f5c556 bug-fix: cp would fail to write through a dangling symlink
* NEWS: Mention the bug fix.
* src/copy.c (copy_reg): When open fails with EEXIST, the destination
is lstat'able, and a symlink, call open again, but now without O_EXCL.
* tests/cp/thru-dangling: New file, to test for the above fix.
* tests/cp/Makefile.am (TESTS): Add thru-dangling.
* THANKS: Add Michael McLagan.
Bug report from Michael McLagan in <http://bugzilla.redhat.com/243588>.
2007-06-10 15:01:18 +02:00
Jim Meyering
6c95b3f2bf * coreutils.texi (rmdir invocation): Fix a tiny typo. 2007-06-06 08:00:44 +02:00
Paul Eggert
e9c3d73c14 doc: -h and --human-readable are equivalent to --block-size=human-readable
* doc/coreutils.texi (Common options): Mention that -h and
--human-readable are equivalent to --block-size=human-readable.
Documentation problem reported by Steve Ward in
<http://lists.gnu.org/archive/html/bug-coreutils/2007-06/msg00007.html>.
(du invocation): Use optSi rather than duplicating the macro's
contents (incorrectly, since we claimed a "B" was output).
2007-06-04 19:32:07 +02:00
Jim Meyering
d43b54fa51 Remove constants.texi from version control.
This file has always been generated.
* .gitignore: Add constants.texi.

Signed-off-by: Jim Meyering <jim@meyering.net>
2007-06-03 21:56:24 +02:00
Jim Meyering
6d8bb4df3d Add to .cvsignore and .gitignore files. 2007-06-02 23:00:09 +02:00
Jim Meyering
536ac0ff6e Pull printf-related code from gnulib, rather than using forked copy.
* bootstrap.conf (gnulib_modules): Don't avoid size_max and xsize
modules.  While I dislike xsize-style overflow avoidance, maintaining
a forked version of e.g., vasnprintf.c was too much work.
* lib/printf-parse.c, lib/vasnprintf.c, lib/unicodeio.c: Remove local
copies, so we now get these files from gnulib.
2007-05-31 16:40:51 +02:00
Jim Meyering
1211a2cc2c * src/dircolors.hin: Add screen-256color.
Suggested by sdl.web@gmail.com in <http://bugzilla.redhat.com/239266>.
2007-05-31 08:05:02 +02:00
Jim Meyering
ca7c786f62 * TODO: Add an entry for comm --output-delimiter=STR 2007-05-31 08:03:40 +02:00
James Youngman
e82c7ddd47 wc: ignore multibyte-character decoding errors
* src/wc.c (wc): Don't issue an error message when mbrtowc
indicates that we have seen an invalid byte sequence.  This
makes "wc /bin/sh" bearable (though the word and line counts
are likely not to be useful).
* NEWS: Mention the change.
2007-05-26 07:13:50 +02:00
Jim Meyering
8ab7f351a1 Add to .cvsignore and .gitignore files. 2007-05-26 06:30:30 +02:00
Jim Meyering
9e450601b1 Check for an up-to-date copyright year in coreutils.texi.
* Makefile.maint (copyright-check): Also check for an up-to-date
copyright year in doc/$().texi, if that file exists.
* doc/coreutils.texi: Add 2007 to list of Copyright years.
Reported by Karl Berry.
2007-05-22 20:41:00 +02:00
Jim Meyering
a6a447fc58 cut: diagnose a range starting with 0 (-f 0-2) as invalid, and
give a better diagnostic for a field-number/offset of 0.
* NEWS: Mention the fix.
* src/cut.c (ADD_RANGE_PAIR): Add an explicit check for 0.
Based on a patch from James Youngman.
* tests/misc/cut: Add tests for the above.
2007-05-22 18:47:17 +02:00
Jim Meyering
ae5717158f "cut -f 2-0" now fails; before, it was equivalent to "cut -f 2-"
Also, diagnose the '-' in "cut -f -" as an invalid range, rather
than interpreting it as the unlimited range, "1-".
* NEWS: Mention these changes.
* src/cut.c (set_fields): Don't interpret an accumulator "value"
of 0 as an unspecified range endpoint.
Give better diagnostics.
Adjust a comment so that it is true also for 64-bit size_t.
* tests/cut/Test.pm: Add tests for the above.
2007-05-22 13:56:34 +02:00
Jim Meyering
607614ae96 stty: fix a harmless syntax nit
* src/stty.c (visible): Use ";" as the statement terminator
between two assignments, not ",".
(integer_arg): Join an unnecessarily wrapped line.
2007-05-22 07:58:42 +02:00
Jim Meyering
02599650b1 stty: diagnose an invalid hex value in 35-colon commmand-line argument
* NEWS: Mention this.
* src/stty.c (strtoul_tcflag_t, strtoul_cc_t): New functions.
(recover_mode): Use those functions (not sscanf), to parse the
string robustly.
* tests/stty/invalid: New file.  Test for the above.
* tests/stty/Makefile.am (TESTS): Add invalid.
* .x-sc_prohibit_atoi_atof: Don't exempt stty.c from this check.
Add tests/stty/invalid so we don't have to obfuscate the comment
about sscanf therein.
* Makefile.maint (sc_prohibit_atoi_atof): Mention sscanf in the
diagnostic, too.
2007-05-22 07:55:40 +02:00
Jim Meyering
a49f45acbe * TODO: Remove some now-completed or no longer relevant items. 2007-05-20 14:04:28 +02:00
Jim Meyering
5ab25eb05b Rename uses of futimens -> gl_futimens; glibc now declares the former.
* src/copy.c (copy_reg): Reflect renaming: futimens -> gl_futimens.
* src/touch.c (touch): Likewise.
2007-05-19 18:36:03 +02:00
Jim Meyering
ab4f4bdc18 * Makefile.maint (my-distcheck): Remove -pedantic from $(CFLAGS)
for now, to avoid c89-check failure due to use of #include_next.
2007-05-18 09:01:03 +02:00
Jim Meyering
b3414967d5 Generate a dozen test-related Makefile.am files at bootstrap-time.
* README-hacking: Build-from-checkout now require Perl, too.
* bootstrap: Now that these generated Makefile.am files are no longer
under version control, they must be created at bootstrap time.
2007-05-15 10:18:48 +02:00
Paul Eggert
f4a5097ea3 * man/chmod.x: Document chmod's behavior with setuid and setgid bits.
Remove misleading implication about leading zero.  Problem
reported by Jan Engelhardt in
<http://lists.gnu.org/archive/html/bug-coreutils/2007-05/msg00134.html>.
2007-05-15 07:14:55 +02:00
Jim Meyering
893ac688cc Remove the generated tests/*/Makefile.am files from version control.
* tests/cut/Makefile.am: git-remove this generated file.
* tests/head/Makefile.am: Likewise.
* tests/join/Makefile.am: Likewise.
* tests/pr/Makefile.am: Likewise.
* tests/sort/Makefile.am: Likewise.
* tests/tac/Makefile.am: Likewise.
* tests/tail/Makefile.am: Likewise.
* tests/test/Makefile.am: Likewise.
* tests/tr/Makefile.am: Likewise.
* tests/uniq/Makefile.am: Likewise.
* tests/wc/Makefile.am: Likewise.
* .cvsignore, .gitignore: Ignore these generated files.

* src/.cvsignore, src/.gitignore: Add chcon here, ...
* .cvsignore, .gitignore: ... not here.
2007-05-13 18:23:41 +02:00
Jim Meyering
16385191ce Test uniq's new --zero-terminated (-z) option.
* tests/uniq/Test.pm: When possible, create a "-z"-testing variant
of each existing test.
(2z, 3z, 4z, 5z, 20z, 122, 123): New tests from James Youngman.
2007-05-13 11:29:54 +02:00
James Youngman
e06252480a Add -z option to uniq. Originally proposed by Egmont Koblinger.
* NEWS: Mention uniq's new option: --zero-terminated (-z).
* src/uniq.c: Add new option, --zero-terminated (-z), to make
uniq use the NUL byte as separator/delimiter rather than newline.
(check_file): Add a parameter: delimiter.  Update caller.
Use readlinebuffer_delim in place of readlinebuffer everywhere.
(main): Handle the new option.
(usage): Describe new option the same way sort does.
* doc/coreutils.texi (uniq invocation): Describe the new option.
2007-05-13 11:02:43 +02:00
Jim Meyering
cdd66362dc * NEWS: Mention that last week's tr bug dates back to 1992. 2007-05-07 21:56:27 +02:00
Jim Meyering
283dadf095 Avoid test failure when run with an unusual umask.
* tests/ls/color-dtype-dir: Set umask to 022.
Suggestion from AIDA Shinra.
2007-05-04 13:32:46 +02:00
Jim Meyering
3affac54ed Avoid failure of root-only test when run with a restrictive umask.
* tests/rm/no-give-up: Ensure that non-root can access "d/" through
root-owned ".".  Reported by AIDA Shinra.
2007-05-04 12:01:43 +02:00
Jim Meyering
ab402c29f9 tr -c: don't abort when translating with S2 larger than complement of S1
* src/tr.c (main): Remove invalid assertion triggered by e.g.,
tr -c a '[b*256]'.  There's nothing wrong with having Set2 larger
than Set1.  Reported by Guntram Blohm.
* tests/tr/Test.pm (no-abort-1): Test for the above.
* NEWS: Mention this bug fix.
* THANKS: Add Guntram Blohm.
2007-05-04 10:03:01 +02:00
Jim Meyering
bf8cfacd24 Avoid test failure when run with a permissive umask.
* tests/rm/no-give-up: Set permissions of test directory properly,
i.e., not depending on umask prohibiting go=w.
Reported by AIDA Shinra.
2007-05-03 19:36:34 +02:00
Paul Eggert
2539b53760 The following commands and options now support the standard size
suffixes kB, M, MB, G, GB, and so on for T, P, Y, Z, and Y:
head -c, head -n, od -j, od -N, od -S, split -b, split -C,
tail -c, tail -n.
* doc/coreutils.texi (od invocation, head invocation, tail invocation):
Document support for new size suffixes.
(head invocation, tail invocation):
Document that -n uses the same suffixes as -c.
(tail invocation): More-clearly document what leading "+" does.
* src/head.c (usage, string_to_integer): Support new suffixes.
* src/od.c (usage, main): Likewise.
* src/split.c (usage, main): Likewise.
* src/tail.c (usage, parse_options): Likewise.
Prompted by a patch from Evan Hunt.
2007-05-03 13:45:26 +02:00
Jim Meyering
4e89cf8fb8 * src/du.c (usage): Tweak description of --dereference-args (-D) again.
Prompted by another request for clarification from Justin Pryzby.
2007-05-02 23:37:55 +02:00
Jim Meyering
aa3f52d17b Invoke rm via 'setuidgid ... env PATH="$PATH" ...', as in fail-eperm.
* tests/rm/fail-2eperm: Patch from AIDA Shinra.
Reported by Peter Dyballa.
* THANKS: Add AIDA Shinra and Peter Dyballa.
2007-05-02 23:34:33 +02:00
Paul Eggert
60f3c362f5 * src/nohup.c (usage): Describe how standard input and output are redirected. 2007-04-28 20:48:36 +02:00
Jim Meyering
cebbc9ee6d Add "runcon" to .cvsignore and .gitignore files. 2007-04-25 15:52:53 +02:00
Jim Meyering
0de4ae4b25 * src/du.c (usage): Clarify description of --dereference-args (-D).
Prompted by a report from Justin Pryzby.
2007-04-25 13:54:21 +02:00
Jim Meyering
0e8bf7bffe * bootstrap.conf (gnulib_modules): Add autobuild.
* m4/autobuild.m4: Remove file.  Now, provided by gnulib.
2007-04-25 11:33:44 +02:00
Jim Meyering
3d19a12976 * bootstrap.conf (gnulib_modules): Add fseeko and ftello. 2007-04-25 10:55:56 +02:00
Jim Meyering
5c82d3f1ce Add to .cvsignore and .gitignore files. 2007-04-25 10:55:35 +02:00
Jim Meyering
0361f46554 * bootstrap.conf (gnulib_modules): Add fseeko. 2007-04-25 10:40:12 +02:00
Jim Meyering
9213769933 Add to .cvsignore and .gitignore files. 2007-04-25 10:39:48 +02:00
Jim Meyering
383713e030 * THANKS: Add Andreas Frische.
* NEWS: Mention today's ls --color fix.
* tests/ls-2/tests (sl-dangle): Add a test for today's fix.
2007-04-24 09:20:52 +02:00
Eric Blake
1d85945321 ls --color once again colors dangling symlinks correctly
* src/ls.c (gobble_file): Much like the 2007-04-07 fix,
add a term to the expression that decides whether we need
stat and/or lstat calls.  Reported by Andreas Frische.
2007-04-24 09:18:56 +02:00
Jim Meyering
25b8a7a987 cut synopsis: fix coreutils.texi, too.
* doc/coreutils.texi (cut invocation): Adjust synopsis to show that an
* THANKS: Add Rudolf Kastl.
OPTION is required.  Reported by Rudolf Kastl.
2007-04-16 22:01:46 +02:00
Jim Meyering
14816cf338 * src/cut.c (usage): Adjust synopsis to show that an OPTION is required.
Reported by Rudolf Kastl.
2007-04-16 16:26:13 +02:00
Jim Meyering
74932c721b Add to .cvsignore and .gitignore files. 2007-04-12 14:48:50 +02:00
Paul Eggert
395fcee97a split --line-bytes=N (-C N): don't create an empty file.
* src/split.c (line_bytes_split): Don't create an empty line
afterwards if the last buffer happens to be exactly full.
* tests/misc/split-fail: Add a test case for this.
* NEWS: mention this.
2007-04-12 00:21:25 +02:00
Jim Meyering
f839bfad73 ls: don't form or compute the length of strings that won't be used.
* src/ls.c (gobble_file): Form and compute length of strings for
block size, owner, group, author, major+minor numbers and file size
only if they'll actually be used.  I.e., don't form most of them
when not producing long format output.
2007-04-10 00:21:07 +02:00
Jim Meyering
4d484fe09f Add a test for, and document, today's fix.
* NEWS: Mention today's ls --color fix.
* tests/ls-2/tests (sl-target): Add a test for today's fix.
* THANKS: Add Kirk Kelsey.
2007-04-07 20:51:13 +02:00
Eric Blake
d63623eb7c Fix a bug in how the LS_COLORS ln=target attribute is handled.
* src/ls.c (gobble_file): Use "stat" (not lstat) also when the
ln=target attribute applies.  Reported by Kirk Kelsey.
2007-04-07 20:14:07 +02:00
Jim Meyering
abdf924333 * src/copy.c (copy_reg): Initialize local "con", before calling
getfscreatecon, in case that function (or its inline stub) does
not set it.
2007-04-02 22:06:22 +02:00
Paul Eggert
a3b65a63a0 * src/ls.c (print_horizontal): Fix bug reported by Mike Frysinger:
ls -x DIR would sometimes output the wrong string in place of the
first entry.
* NEWS: Mention the bug fix.
* tests/ls/x-option: New file.
* tests/ls/Makefile.am (TESTS): Add x-option.
2007-04-02 18:29:41 +02:00
Paul Eggert
0b39324840 gnulib moved md5 and sha1 modules into a new crypt/ directory; adapt
* bootstrap.conf (gnulib_modules): Adjust to gnulib's renaming of
md5 to crypt/md5 and sha1 to crypt/sha1.
2007-04-02 14:48:35 +02:00
Jim Meyering
a301ea6697 * NEWS: Mention these SELinux changes. 2007-03-30 16:02:54 +02:00
Jim Meyering
e4e19d87a0 * ChangeLog-selinux: Remove file.
Move its contents into this file, removing old dates.
2007-03-30 11:16:00 +02:00
Jim Meyering
848bd19d21 * src/runcon.c (main): Don't reorder arguments. Reported by
Ulrich Drepper in <http://bugzilla.redhat.com/232652>.
* tests/misc/runcon-no-reorder: New file.  Test for the above.
* tests/misc/Makefile.am (TESTS): Add runcon-no-reorder.
2007-03-29 21:37:06 +02:00
Jim Meyering
aefac2c02e * src/runcon.c (main): Remove "." at end of a diagnostic. 2007-03-29 21:37:06 +02:00
Jim Meyering
add8b36148 Arrange for "make check-root" to run the new root-only test.
* tests/Makefile.am (t9): New target, to run tests/cp/cp-a-selinux.
(all_t): Add t9.

Use a directory on a loopback device mounted with -o context=...
* tests/cp/cp-a-selinux: Since this test now runs mount and umount,
it is a root-only one.
2007-03-29 21:37:06 +02:00
Jim Meyering
c6922b6f7e * src/runcon.c: New program.
* src/Makefile.am (bin_PROGRAMS): Add runcon.
(runcon_LDADD): Define.
* README: Add runcon to the list of programs.
* AUTHORS: Add this: runcon: Russell Coker
* tests/help-version: Add runcon as an exception.
* man/Makefile.am (dist_man_MANS): Add runcon.1.
(runcon.1): New dependency.
* po/POTFILES.in: Add src/runcon.c.
2007-03-29 21:37:06 +02:00
Jim Meyering
c2bbd117f5 Regenerate .cvsignore and .gitignore files. 2007-03-29 21:37:06 +02:00
Jim Meyering
447b254923 mkfifo, mknod: Accept new "-Z, --context=C" option.
* src/mkfifo.c, src/mknod.c: Include <selinux/selinux.h>.
(main): Honor it.
* src/Makefile.am (mkfifo_LDADD, mknod_LDADD): Use $(LIB_SELINUX).
2007-03-29 21:37:06 +02:00
Jim Meyering
301fbaf431 mkdir: Accept new "-Z, --context=C" option.
* src/mkdir.c: Include <selinux/selinux.h>.
(main): Honor it.
* src/Makefile.am (mkdir_LDADD): Use $(LIB_SELINUX).
2007-03-29 21:37:06 +02:00
Jim Meyering
8a86223d45 * tests/cp/cp-a-selinux: New file. Test for the bug reported in
* tests/cp/Makefile.am (TESTS): Add cp-a-selinux.

* tests/selinux: New file.
* tests/Makefile.am (EXTRA_DIST): Add selinux.
* tests/misc/selinux: Source the new script, rather than open coding it.

Change how "cp -a" and "cp --preserve=context" work with SELinux.
Now, cp -a attempts to preserve context, but failure to do so does
not change cp's exit status.  However "cp --preserve=context" is
similar, but failure *does* cause cp to exit with nonzero status.
* src/copy.h (struct cp_options) [require_preserve_context]: New member.
* src/copy.c (copy_reg, copy_internal): Implement the above.
* src/mv.c (cp_option_init): Initialize the new member.
* src/install.c (cp_option_init): Likewise.
* src/cp.c (cp_option_init): Likewise.
(decode_preserve_arg): Set it or reset it.

FIXME: add an on-writable-NFS-only test
2007-03-29 21:37:06 +02:00
Jim Meyering
adcfd944a8 * src/system.h (GETOPT_SELINUX_CONTEXT_OPTION_DECL): Define. 2007-03-29 21:37:06 +02:00
Jim Meyering
85ddc626be cp, mv, install: add SELinux support, but unlike with the Red Hat
patch, mv and cp do not provide the "-Z context" option.
* src/copy.c: Include <selinux/selinux.h>.
(restore_default_fscreatecon): New function.
(copy_reg): Make cp --preserve=context work for existing destination.
(copy_internal): Likewise for new destinations.
* src/copy.h (cp_options) [preserve_security_context]: New member.
* src/cp.c: Include <selinux/selinux.h>.
(selinux_enabled): New global.
(usage): Mention new --preserve=context option.
(PRESERVE_CONTEXT): Define/use.
(decode_preserve_arg): Handle PRESERVE_CONTEXT.
(main): Remove an obsolete comment.
If --preserve=context is specified on a system without SELinux
enabled, give a diagnostic and fail.
* src/mv.c: Include <selinux/selinux.h>.
Set x->preserve_security_context if SELinux is enabled.
* src/install.c: Accept new "-Z, --context=C" option.
Accept --preserve-context option (but not -P option).
Accept alternate spelling: --preserve_context, for now.
Include <selinux/selinux.h> and "quotearg.h".
(selinux_enabled, use_default_selinux_context): New globals.
(PRESERVE_CONTEXT_OPTION): Define.
(cp_option_init): Default: do not preserve security context.
(setdefaultfilecon): New function.
(main): Honor new options.
* src/Makefile.am (mv_LDADD, cp_LDADD, ginstall_LDADD):
Add $(LIB_SELINUX).
2007-03-29 21:37:06 +02:00
Jim Meyering
5a7fe9c0f8 * tests/misc/selinux [VERBOSE]: Print version info for each
of the tested tools, not just ls.
2007-03-29 21:37:06 +02:00
Jim Meyering
3459fe4506 * src/c99-to-c89.diff: Remove the ls.c patch, now that I've
temporarily removed the offending c99'ism.
2007-03-29 21:37:06 +02:00
Jim Meyering
380c858b71 * src/chcon.c (usage): Split a string literal that was longer than 509. 2007-03-29 21:37:05 +02:00
Jim Meyering
1411a53dc1 * src/ls.c (gobble_file): Don't call getfilecon unless print_scontext.
Upon failed getfilecon, accept not just ENOTSUP, but also ENODATA.
2007-03-29 21:37:05 +02:00
Jim Meyering
e80cace874 * src/c99-to-c89.diff: Adjust offsets. 2007-03-29 21:37:05 +02:00
Jim Meyering
23c34b8bd9 * AUTHORS: Add chcon. 2007-03-29 21:37:05 +02:00
Jim Meyering
e4779654bd * src/c99-to-c89.diff: Remove trailing blanks. 2007-03-29 21:37:05 +02:00
Jim Meyering
da538a3975 * src/chcon.c: Don't include "dirname.h". system.h already includes it. 2007-03-29 21:37:05 +02:00
Jim Meyering
5349e96a32 * gl/lib/selinux-at.c: Remove a use of HAVE_CONFIG_H. 2007-03-29 21:37:05 +02:00
Jim Meyering
5a233cb81e * src/c99-to-c89.diff: Handle a new c99'ism in ls.c. 2007-03-29 21:37:05 +02:00
Jim Meyering
5dd7f137b7 * src/id.c (main): Tweak id -Z diagnostic. 2007-03-29 21:37:05 +02:00
Jim Meyering
1532bea5b5 * POTFILES.in: Add src/chcon.c. 2007-03-29 21:37:05 +02:00
Jim Meyering
5320d0fef1 id: Add SELinux support: -Z option.
* src/id.c (main): Apply patches from Fedora, with these changes:
Remove #ifdef WITH_SELINUX.
Use error (EXIT_FAILURE, not fprintf+exit(1).
* src/Makefile.am (id_LDADD): Define, so as to add $(LIB_SELINUX).
2007-03-29 21:37:05 +02:00
Jim Meyering
bc5faec34a Keep SELinux-related ChangLog entries here. 2007-03-29 21:37:05 +02:00
Jim Meyering
4010e2d077 stat: Add support for SELinux in the form of a %C format directive.
* src/stat.c (follow_links): Make this variable file-global.
(out_file_context): New function.
(print_statfs): Honor %C.
(print_stat): Honor %C.
(do_stat): Remove follow_links parameter.
(usage): Document the two %C directives.
(main): Accept -Z (though it's a no-op).
* src/Makefile.am (stat_LDADD): Define.
2007-03-29 21:37:05 +02:00
Jim Meyering
8c94771b88 add chcon 2007-03-29 21:37:05 +02:00
Jim Meyering
3ea540c757 ls: Add support for SELinux and a slightly modified -Z option.
I started with the patches from Red Hat.
The entries below tell how the code evolved.

* src/ls.c (print_long_format, print_file_name_and_frills): When
there is no security context (due to getfilecon/lgetfilecon failing
with e.g. ENOTSUP), print it as "?", not "".
* src/ls.c (print_file_name_and_frills): Make -Z work without -l.
(length_of_file_name_and_frills): Likewise.

* src/ls.c: Remove the --lcontext and --scontext options.
Change the way -Z, --context work so that it no longer implies -l.
Thus, -Z -l will work like -lcontext and -Z without -l will work
like --scontext.

Adjust tests to reflect new 'ls -l' syntax -- affects only
systems with SELinux when operating on a file with no ACL.
These tests assumed that everything before the first space on
each line is the 10-byte mode string.  But there may also be a "+"
in the 11th column, just before the space.  However, note that this
is not new.  The same thing would have happened even without the
change below, when listing a file with an ACL.
* tests/chmod/equals, tests/cp/cp-parents, tests/cp/fail-perm:
* tests/cp/link-preserve, tests/install/basic-1, tests/misc/mknod:
* tests/mkdir/parents, tests/mkdir/special-1, tests/mv/partition-perm:

Don't make compilation depend on USE_ACL.  An SELinux security
context counts as an "alternate access control method", so ls
must output a "+" for each file with a security context.
* src/ls.c [struct fileinfo] (have_acl): Declare unconditionally.
(FILE_HAS_ACL): Remove macro definition.  Use f->have_acl directly.
(gobble_file): Record whether a file has a security context, and
update the condition used to determine whether to print the "+".
(gobble_file): Call getfilecon/lgetfilecon also when
format == long_format, so that we get the "+".

* src/ls.c (gobble_file): Add a comment explaining why (with a
security context option) ls doesn't exit nonzero due to e.g.,
getfilecon failing with errno == ENOTSUP.

* src/ls.c (gobble_file): Ignore failure of getfilecon if it's due
to ENOTSUP.

* src/ls.c (gobble_file): Factor out three small blocks using
getfilecon and lgetfilecon.
Don't ignore return value from getfilecon and lgetfilecon.

* src/ls.c (print_long_format): Don't use ?: (empty 2nd arg with C
ternary operator).
(print_scontext_format): Likewise.
(print_scontext): Declare to be "bool", not int.  Adjust uses.

* src/Makefile.am (dir_LDADD, ls_LDADD, vdir_LDADD): Add $(LIB_SELINUX).

* tests/misc/chcon: New file.
* tests/misc/chcon-fail: New file.
* tests/Makefile.am (check-root): Run new, root-only misc/chcon test.
* tests/misc/Makefile.am (TESTS): Add chcon and chcon-fail.

* tests/misc/Makefile.am (TESTS): Add selinux.
* tests/misc/selinux: New file.
* tests/help-version: Skip chcon.
2007-03-29 21:37:05 +02:00
Jim Meyering
85d6c618b0 * man/chcon.x: New file.
* man/Makefile.am: Build chcon.1.
2007-03-29 21:37:05 +02:00
Jim Meyering
7e591c1009 .cvsignore, .gitignore: update 2007-03-29 21:37:05 +02:00
Jim Meyering
87516b80a5 New program: chcon
* gl/modules/selinux-at: New module.  Check for libselinux and set
LIB_SELINUX here, unconditionally, rather than depending on
the configure-time --enable-selinux option.
* gl/modules/selinux-h: New module.
* bootstrap.conf (gnulib_modules): Add selinux-at.
* gl/lib/selinux-at.c, gl/lib/selinux-at.h: New files.
* gl/lib/se-selinux_.h: New file.
* gl/lib/se-context_.h: New file.
* gl/m4/selinux-selinux-h.m4: New file.
* gl/m4/selinux-context-h.m4: New file.
* src/Makefile.am (bin_PROGRAMS): Add chcon.
(chcon_LDADD): Define.
* README: Add chcon to the list of programs.
* src/chcon.c: Rewrite the original (Red Hat) chcon to use fts.
2007-03-29 21:37:05 +02:00
Jim Meyering
56fc172d11 Merge branch 'master' of /cu 2007-03-29 21:36:38 +02:00
Jim Meyering
8487f9c6bd * .vg-suppressions: Add libc-getpwuid-leak. 2007-03-29 21:35:20 +02:00
Jim Meyering
0f63eebd1e Merge branch 'master' of /cu 2007-03-28 23:39:18 +02:00
Jim Meyering
a0faff1a58 Help translators include translation team's web or email address.
* src/system.h (emit_bug_reporting_address): New function.
* src/base64.c: Use it rather than a literal printf.
* src/basename.c, src/cat.c, src/chgrp.c, src/chmod.c:
* src/chown.c, src/chroot.c, src/cksum.c, src/comm.c, src/cp.c:
* src/csplit.c, src/cut.c, src/date.c, src/dd.c, src/df.c:
* src/dircolors.c, src/dirname.c, src/du.c, src/echo.c, src/env.c:
* src/expand.c, src/expr.c, src/factor.c, src/fmt.c, src/fold.c:
* src/head.c, src/hostid.c, src/hostname.c, src/id.c, src/install.c:
* src/join.c, src/kill.c, src/link.c, src/ln.c, src/logname.c:
* src/ls.c, src/md5sum.c, src/mkdir.c, src/mkfifo.c, src/mknod.c:
* src/mv.c, src/nice.c, src/nl.c, src/nohup.c, src/od.c:
* src/paste.c, src/pathchk.c, src/pinky.c, src/pr.c, src/printenv.c:
* src/printf.c, src/ptx.c, src/pwd.c, src/readlink.c, src/rm.c:
* src/rmdir.c, src/seq.c, src/setuidgid.c, src/shred.c, src/shuf.c:
* src/sleep.c, src/sort.c, src/split.c, src/stat.c, src/stty.c:
* src/su.c, src/sum.c, src/sync.c, src/system.h, src/tac.c:
* src/tail.c, src/tee.c, src/test.c, src/touch.c, src/tr.c:
* src/true.c, src/tsort.c, src/tty.c, src/uname.c, src/unexpand.c:
* src/uniq.c, src/unlink.c, src/uptime.c, src/users.c, src/wc.c:
* src/who.c, src/whoami.c, src/yes.c: Likewise.
2007-03-28 08:50:29 +02:00
Jim Meyering
59312fa3f9 Add to .cvsignore and .gitignore files. 2007-03-28 08:46:01 +02:00
Jim Meyering
2fa23f1f86 * src/stty.c: Don't include "vasprintf.h", now that its
declarations are guaranteed to be in gnulib's stdio.h.
* src/who.c: Likewise.
2007-03-28 08:34:03 +02:00
Jim Meyering
311b6df344 * README: Use "install", not "ginstall" in the list of program names.
* src/Makefile.am (check-README): Substitute s/ginstall/install/.
2007-03-27 16:08:29 +02:00
Jim Meyering
2e6e036896 Add to .cvsignore and .gitignore files. 2007-03-25 10:58:56 +02:00
Jim Meyering
b60a32376e * src/c99-to-c89.diff: Regenerate. 2007-03-25 10:20:43 +02:00
Paul Eggert
1efda4faf3 Avoid the need for euidaccess and/or lstat on every directory entry
with 'rm -r dir' (without -f), if we are root, or if we are removing
a directory tree that is full of symbolic links.
* bootstrap.conf (gnulib_modules): Add write-any-file.
* src/copy.c: Include write-any-file.h.
(UNWRITABLE): Remove macro, replacing with....
(writable_destination): New function, which uses can_write_any_file
to avoid the need for euidaccess when we are privileged.
(overwrite_prompt, abandon_move): Use it.
* src/remove.c: Include write-any-file.h.
(D_TYPE): New macro.
(DT_UNKNOWN, DT_DIR, DT_LNK) [!HAVE_STRUCT_DIRENT_D_TYPE]: New macros.
(write_protected_non_symlink): Don't bother to stat if we can write
any file.
(prompt): New arg PDIRENT_TYPE.  All callers changed.
Use readdir dirent type to avoid the need for 'lstat' on each directory
entry in cases like 'rm -r dir', if we are root, or if the tree is
full of symbolic links.
(DT_IS_KNOWN, DT_MUST_BE): Remove.
(remove_entry): New arg DIRENT_TYPE_ARG.  All callers changed.
2007-03-25 09:52:57 +02:00
Jim Meyering
de73024977 If strace malfunctions, skip the test rather than failing it.
* tests/mv/atomic: Required on a mips-unknown-linux-gnu system
running the aging linux-2.4.27-mipscvs-20040814.
2007-03-24 11:25:15 +01:00
Jim Meyering
beeade1473 * src/pathchk.c: Don't include euidaccess.h, as we don't call
euidaccess.
2007-03-23 21:40:11 +01:00
Jim Meyering
c634bb97af * README-package-renamed-to-coreutils: Add a URL for the FAQ,
and a couple more archive links.
2007-03-23 11:08:59 +01:00
Jim Meyering
c3abd70c67 Post-release version change.
* NEWS: Add a line for 6.9+.
* configure.ac (AC_INIT): Set new version string.
2007-03-23 08:22:35 +01:00
Jim Meyering
85fb8411dd .prev-version: Record previous version: 6.9. 2007-03-22 22:37:06 +01:00
Jim Meyering
804bdc3001 Version 6.9.
* NEWS: Record release date and new version number.
* configure.ac (AC_INIT): New version number.
2007-03-22 22:20:02 +01:00
Jim Meyering
25cdc8248d * tests/mv/hard-3: Correct the preceding change: $3 -> $2. 2007-03-22 22:11:03 +01:00
Eric Blake
826ff082db * coreutils.texi (md5sum invocation): Document escapes in output
format.  Reported by Armijn Hemel.
2007-03-22 21:46:54 +01:00
Paul Eggert
59e889f0f3 Improve a test script.
* tests/mv/hard-3: Check for 'ls' failure, too.
Generate more-useful debugging output when 'ls' fails.
2007-03-22 21:29:30 +01:00
Jim Meyering
3440b65ecf Fix a test script not to claim an ext2 file system is of type xfs.
* tests/du/slink: When using df --local and df --type=TYPE,
test only the exit code.  Don't bother with stdout.
Prompted by a report by Thomas Schwinge of an inaccurate diagnostic.
2007-03-21 17:19:30 +01:00
Jim Meyering
a59975a3fd Add to .cvsignore and .gitignore files. 2007-03-21 15:41:58 +01:00
Jim Meyering
373c95c45a * gl/lib/savewd.c: Remove this file, since the savewd_save change
is now in gnulib.  The other wasn't useful.
2007-03-21 09:09:34 +01:00
Jim Meyering
c63f4506cc Skip part of this test when "." is not a local file system.
* tests/mkdir/p-3: Likewise.
2007-03-20 16:47:36 +01:00
Jim Meyering
85de525557 * gl/lib/acl.c: Remove this file, now that gnulib's version subsumes it. 2007-03-20 15:51:21 +01:00
Jim Meyering
13e4c87ff6 Fix a typo in the handling of %x and %X.
* vasnprintf.c (VASNPRINTF): When adding 2 to buffer length,
don't double it.
2007-03-20 15:21:08 +01:00
Jim Meyering
de540a76eb Skip part of this test when "." is not a local file system.
* tests/install/basic-1: Otherwise, it would fail on some NFS
file systems.
2007-03-20 13:26:28 +01:00
Paul Eggert
02b2e48b12 * src/Makefile.am (dir_LDADD, ls_LDADD, vdir_LDADD):
Add $(LIB_ACL_TRIVIAL).
2007-03-20 13:21:33 +01:00
Jim Meyering
5bc4b89be8 Fix a generic NFS-related test failure.
* tests/mkdir/p-3: When setting up an unreadable "." in an
inaccessible parent, make the parent inaccessible *after* making "."
unreadable.  Otherwise, running "chmod a-r ." in an already-
inaccessible parent would fail on NFS with "Stale NFS file handle".

Signed-off-by: Jim Meyering <jim@meyering.net>
2007-03-18 22:37:54 +01:00
Jim Meyering
93ff956de7 Merge branch 'master' of /cu 2007-03-18 18:14:49 +01:00
Jim Meyering
553d347d3e Fix a bug in how pr -m -s works.
* NEWS: Describe how the fix affects pr.
* src/pr.c (init_parameters): The --merge (-m) option does
not imply --expand-tabs (-e), so don't set "untabify_input".
Reported by Wis Macomson.
* tests/misc/pr: New file.  Test for the above fix.
* tests/misc/Makefile.am (TESTS): Add pr.
* THANKS: Update.
2007-03-18 16:21:26 +01:00
Jim Meyering
b1d89070f6 Fix a silly syntax error introduced in last change. 2007-03-17 13:15:17 +01:00
Jim Meyering
20bc0790a7 fix a syntax error 2007-03-17 13:01:56 +01:00
Jim Meyering
7828d1b4e2 Detect use of AC_CONFIG_AUX_DIR also when its argument is quoted.
* bootstrap: Put ""s around use of $build_aux, in case
someone uses a name containing shell meta-characters.
Reported by Alfred M. Szmidt.
2007-03-17 12:54:28 +01:00
Jim Meyering
5b3313c120 * tests/misc/tty-eof: Add shuf to the list of tested commands. 2007-03-17 12:23:14 +01:00
Jim Meyering
0edae5eee6 Avoid test failure on NFS-mounted Solaris ZFS file system.
* tests/du/basic: Skip a test if "." is on a non-local file system.
2007-03-17 11:44:42 +01:00
Jim Meyering
11f43d2e22 Avoid an obscure build failure, prefer waitpid over wait.
* src/install.c (strip): Use waitpid, not wait.  It's equivalent,
but feels less obsolescent.
2007-03-17 10:43:04 +01:00
Jim Meyering
87c54fa0ae * bootstrap: Don't use \> in grep regexp. For HP-UX. 2007-03-17 09:46:54 +01:00
Jim Meyering
3715c01f8e Begin adding support for Solaris ZFS (4 entries per trivial ACL)
* gl/lib/acl.c (ACL_NOT_WELL_SUPPORTED): New macro.
(file_has_acl, copy_acl): Use it, rather than enumerating errno values.
(is_trivial_acl): New function.  Incomplete, for now.
(file_has_acl, copy_acl): Use the new function, rather than
counting the number of entries in an ACL.
2007-03-16 22:24:09 +01:00
Jim Meyering
d2c7d7b58f * bootstrap: Update from gnulib. 2007-03-16 22:06:27 +01:00
Jim Meyering
d1e5a7af56 * .x-sc_prohibit_atoi_atof: Add TODO here, too. 2007-03-16 22:06:04 +01:00
Paul Eggert
369aaf7e5d * src/copy.c: Include filemode.h.
(overwrite_prompt): Say "try to overwrite", not "overwrite", to
make it clearer that the attempt may fail.  Problem reported by
Dan Jacobson in:
http://lists.gnu.org/archive/html/bug-coreutils/2007-03/msg00130.html
Output symbolic mode as well as numeric.
* tests/mv/i-2 (fail): Adjust to new prompt format.
2007-03-16 21:41:50 +01:00
Paul Eggert
39e85b7258 Fix manual in response to bug reports by Dan Jacobson.
* coreutils.texi (sort invocation): Explain numeric sorts better.
Compress self-congratulation into a simple "comparison is exact"
notice; the --general-numeric-sort option already explains the
tradeoffs.
(seq invocation): Add example of -f.
2007-03-16 06:30:32 +01:00
Jim Meyering
487e5317be Enforce policy: don't use *scanf functions.
* Makefile.maint (sc_prohibit_atoi_atof): Add to regexp and diagnostic.
* .x-sc_prohibit_atoi_atof: Give stty a temporary pass.
* TODO: note that stty.c needs this small clean-up.
2007-03-15 09:19:10 +01:00
Jim Meyering
112b9537dd Prepare to work on ACL-related failure when using Solaris ZFS.
* gl/lib/acl.c: New file, copied from gnulib.
2007-03-13 19:52:13 +01:00
Jim Meyering
24045feb85 Work around a failing test due to an NFS-based race condition.
* tests/cp/sparse: Accept a report that the copy is *smaller*.
2007-03-13 19:51:47 +01:00
Jim Meyering
64f972e94b * coreutils.texi (cp invocation): Mention that --preserve=timestamps
doesn't preserve time stamps on symbolic links.
Reported by Polo Talnir in <https://bugzilla.redhat.com/230866>.
2007-03-12 14:26:24 +01:00
Jim Meyering
0c1e917d6c Merge branch 'master' of /cu 2007-03-12 10:36:01 +01:00
Jim Meyering
1e7a0f088b Make bootstrap.conf a tiny bit more generic.
* bootstrap.conf (XGETTEXT_OPTIONS): Exclude gettext-related .m4
files when e.g., AM_GNU_GETTEXT([external] appears in configure.ac.
2007-03-12 09:47:36 +01:00
Jim Meyering
fd6fc97156 Try to fix today's NFS-related failure: Treat ESTALE like EACCES.
* gl/lib/savewd.c: Copy this file from gnulib, then change
"errno != EACCES" to (errno != EACCES && errno != ESTALE).
The symptom was this failure in tests/install/basic-1:
ginstall: cannot create directory `rel/a': Stale NFS file handle
2007-03-10 11:39:50 +01:00
Jim Meyering
04131454e3 The preceding change solved part of the problem. Now ginstall fails.
* tests/install/basic-1: Temporarily, don't redirect ginstall's
stderr to /dev/null, so I can see why the NFS autobuilder's NFS test
is failing.
2007-03-10 10:36:25 +01:00
Jim Meyering
bc86cb44e3 * tests/install/basic-1: When setting up an unreadable "." in an
inaccessible parent, make the parent inaccessible *after* making "."
unreadable.  Otherwise, running "chmod a-r ." in an already-
inaccessible parent would fail on NFS with "Stale NFS file handle".
Reported by Bob Proulx.
2007-03-10 09:53:49 +01:00
Jim Meyering
0a538a2488 remove trailing blanks 2007-03-10 08:17:19 +01:00
Jim Meyering
ca4f28bc83 * Makefile.maint (po-check): Exclude c99-to-c89.diff. 2007-03-10 00:43:50 +01:00
Jim Meyering
36aeb30081 Mention that both Jay Soffian and Charles Randall wrote early versions
of sort's temp-file-compression code.
2007-03-10 00:43:36 +01:00
Jim Meyering
fe3fbf2f54 * tests/chgrp/basic: Also avoid test failures on Darwin 8.8.x (MacOS X 10.4). 2007-03-09 20:09:46 +01:00
Jim Meyering
d9079b12e3 src/fs.h: git-rm a generated but already-ignored file 2007-03-09 15:19:21 +01:00
Jim Meyering
222b7c46bd Avoid test failures on Darwin 7.9.0 (MacOS X 10.3.9)
* tests/chgrp/basic: Don't let failure by chgrp to set the
group of a symlink make this test fail.  Do give a diagnostic.
In the chgrp-no-change-ctime test, add darwin7.9.0 as another
known-failing system.
When failing on some other system, print $host_triplet, too.
Reported by Peter Fales.
2007-03-09 08:47:33 +01:00
Jim Meyering
4bf9fe82c0 * src/c99-to-c89.diff: Reflect the new c99'ism, update offsets. 2007-03-08 22:09:11 +01:00
Jim Meyering
fe068c60fb Add to .cvsignore and .gitignore files. 2007-03-08 22:01:27 +01:00
Jim Meyering
e3864a430e TODO: printf: support %a even when the native *printf(3) is deficient 2007-03-08 22:01:05 +01:00
Jim Meyering
2639ed8208 rm without -f: give a better diagnostic when euidaccess fails.
* src/remove.c (write_protected_non_symlink): Return int, not bool,
so that we can indicate failure too (as a postive error number).
(prompt): If write_protected_non_symlink fails, report that error
number and fail rather than charging ahead and removing the dubious
entry.  Redo the logic of printing a diagnostic so that we need to
invoke quote (full_filename (...)) only once.  More details at:
<http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/9952/focus=9996>
2007-03-08 10:38:59 +01:00
Jim Meyering
09aab8cb41 Generalize a few more cvs-isms.
* bootstrap (checkout_only_file): Rename from CVS_only_file.
Change comments and diagnostics not to say "CVS".
2007-03-08 09:19:39 +01:00
Jim Meyering
9abd8baaaa * bootstrap: Run libtool, if necessary. 2007-03-08 01:06:41 +01:00
Jim Meyering
551bed87fa Make bootstrap a little more general.
* bootstrap (build_aux): Factor out/use this definition.
Formally require a "AC_CONFIG_AUX_DIR($build_aux)" line in configure.ac.
(insert_sorted_if_absent): Move function definition "up", to
precede new first use.
If $build_aux/ doesn't exist initially, create it, and
mark it as ignored.
2007-03-08 00:23:00 +01:00
Jim Meyering
b7a568ece8 * vasnprintf.c (VASNPRINTF): Add missing semicolon. 2007-03-04 13:03:59 +01:00
Andrew Church
2871ad3b45 Fix a bug: cp -x would fail to set mount point permissions.
* NEWS: mention cp -x bug fix
* src/copy.c (copy_internal): Don't return immediately after
copying a mount point that we do not intend to recurse under.
Based on a patch by Andrew Church.
2007-03-03 23:00:18 +01:00
Jim Meyering
f0537a71f1 pwd-unreadable-parent: Skip test on ia64/Linux, too.
* tests/misc/pwd-unreadable-parent: Also skip when $REPLACE_GETCWD.
Reported by Bob Proulx.
2007-03-03 21:38:16 +01:00
Jim Meyering
1187f011d3 Add to .cvsignore and .gitignore files. 2007-03-02 14:54:52 +01:00
Jim Meyering
c872a5f7bb * vasnprintf.c (VASNPRINTF): Remove cast of alloca return value. 2007-03-02 14:33:12 +01:00
Jim Meyering
fe4f1227a5 pwd-unreadable-parent: Skip test on non-Linux/GNU systems.
* tests/misc/pwd-unreadable-parent: Rather than trying to decide
whether this test has a chance of succeeding, run it only when
$(host_os) is linux-gnu.  It was failing on powerpc-apple-darwin8.8.0
* tests/misc/Makefile.am (TESTS_ENVIRONMENT): Add host_os=$(host_os).
2007-03-02 14:25:48 +01:00
Jim Meyering
13a4b23e79 * tests/misc/pwd-long: Also allow "+" in $PWD. 2007-03-02 13:18:43 +01:00
Jim Meyering
b655a2154e * Makefile.maint (my-distcheck): Skip the c99/c89 check if there's no such .diff file. 2007-03-02 11:13:54 +01:00
Jim Meyering
272d99e7a3 Remove another coreutils-ism. Formatting cleanup.
* Makefile.maint (my-distcheck): Update an outdated comment.
(emit_upload_commands): Use $(PACKAGE) rather than "coreutils".
2007-03-02 10:57:08 +01:00
Jim Meyering
262963212b * Makefile.maint (warn_cflags): Hoist, adding "-Dlint -O".
(my-distcheck): Use the new variable, instead of too-long literal.
2007-03-01 11:06:58 +01:00
Jim Meyering
ea42025c70 Make "make syntax-check" rules less coreutils-specific.
* Makefile.maint (sc_cast_of_x_alloc_return_value): Use CVS_LIST_EXCEPT.
(sc_cast_of_alloca_return_value): Likewise.
(sc_root_tests): Do nothing if there is no check-root target
in tests/Makefile.am.
2007-03-01 11:05:35 +01:00
Jim Meyering
7daf29845b Run the writable-files check only for release-building targets.
* Makefile.maint (local-checks-available): Remove writable-files.
(alpha beta major): Put it here, instead.
2007-03-01 11:02:25 +01:00
Jim Meyering
5703f662b7 "make syntax-check" now runs only Makefile.cfg-selected tests
* Makefile.maint (syntax-check-rules): Hoist this definition so that
it precedes the indirect use in the definition of $(local-check).
(local-check): Use :=, not just "=".
(syntax-check): Depend on $(local-check), not $(syntax-check-rules).
2007-03-01 11:00:12 +01:00
Jim Meyering
b3b6f52fad Merge in changes from gnulib:
* vasnprintf.c: Add a comment explaining why coreutils has its own
version of this file.
Include <stdint.h>.
(SIZE_MAX): Remove definition (now, stdint.h covers that).
(EOVERFLOW): Remove definition (now done via the eoverflow module).
Update some #ifdef to #if.
Use HAVE_LONG_LONG_INT, not HAVE_LONG_LONG.
* printf-parse.c: Likewise.
2007-03-01 10:41:48 +01:00
Bruno Haible
f6f2846bd8 * bootstrap.conf (gnulib_modules): Replace xreadlink with
xreadlink-with-size. Add xreadlink.
* src/copy.c (copy_internal): Update.
* src/ls.c (is_directory): Update.
* src/stat.c (print_stat): Update.
* src/readlink.c (main): Use the one-argument xreadlink function.
2007-03-01 08:06:24 +01:00
Paul Eggert
e5dbc71841 * doc/coreutils.texi (Common options): --si outputs "M", not "MB".
Problem reported by Philip Rowlands in
<http://lists.gnu.org/archive/html/bug-coreutils/2007-02/msg00283.html>.
2007-02-28 22:25:53 +01:00
Jim Meyering
b2a48ec240 * tsearch.c: Remove unused file. 2007-02-28 21:50:14 +01:00
Jim Meyering
c62a7156c5 * .x-sc_file_system: Add the new test, tests/misc/df-P, to this
list of exceptions, for the "make distcheck" sc_file_system rule.
2007-02-28 13:52:20 +01:00
Jim Meyering
195108489b * Makefile.maint (gnulib_snapshot_date): Remove now-unused definition. 2007-02-28 10:27:31 +01:00
Jim Meyering
55bc95b4d3 * tests/misc/df-P: This script *is* executable. 2007-02-28 08:11:41 +01:00
Jim Meyering
d480544281 Add a test for today's df -P fix.
* tests/misc/df-P: New file.
* tests/misc/Makefile.am (TESTS): Add df-P.
2007-02-27 19:35:27 +01:00
Paul Eggert
817d0261eb Make df -P immune to effects of e.g., the BLOCK_SIZE envvar.
* NEWS: With -P, the default block size and output format is not
affected by DF_BLOCK_SIZE, BLOCK_SIZE, or BLOCKSIZE.
* src/df.c (main): Implement this.
* doc/coreutils.texi (df invocation): With -P, the default block size
and output format is not affected by DF_BLOCK_SIZE, BLOCK_SIZE, or
BLOCKSIZE.
2007-02-27 19:33:03 +01:00
Jim Meyering
898d3df2f8 * Makefile.maint (announcement): Adjust so that it works with
announce-gen's --gnulib-snapshot-time-stamp option.
Indent one of the command lines using TAB, not 8 spaces.
2007-02-25 01:11:32 +01:00
Jim Meyering
9317cccb8f Post-release version change.
* NEWS: Add a line for 6.8+.
* configure.ac (AC_INIT): Set new version string.
2007-02-25 01:10:07 +01:00
Jim Meyering
cc2d4f6c46 Version 6.8.
* NEWS: Record release date and new version number.
* configure.ac (AC_INIT): New version number.
2007-02-24 21:16:52 +01:00
Jim Meyering
471eca0dd6 Don't skip this test on new-enough Linux/GNU systems.
* tests/misc/pwd-unreadable-parent: Test $REPLACE_GETCWD = 0,
rather than for __GETCWD_PREFIX in config.h (the latter is no
longer defined, ever, due to gnulib changes).
* tests/misc/Makefile.am (TESTS_ENVIRONMENT): Define REPLACE_GETCWD.
2007-02-24 20:57:14 +01:00
Jim Meyering
e98137ddd4 Remove the "gnits" option; it prohibits my using "+" as a version
string suffix, and all it does (beyond the default "gnu" option)
is to _require_ the THANKS file.
* configure.ac (AM_INIT_AUTOMAKE): Remove it.

Remove all AUTOMAKE_OPTIONS settings in Makefile.am files.
* tests/chgrp/Makefile.am, tests/chmod/Makefile.am:
* tests/chown/Makefile.am, tests/cp/Makefile.am:
* tests/du/Makefile.am, tests/expr/Makefile.am:
* tests/factor/Makefile.am, tests/general/Makefile.am:
* tests/install/Makefile.am, tests/ln/Makefile.am:
* tests/ls/Makefile.am, tests/mkdir/Makefile.am:
* tests/mv/Makefile.am, tests/readlink/Makefile.am:
* tests/rm/Makefile.am, tests/rmdir/Makefile.am:
* tests/seq/Makefile.am, tests/stty/Makefile.am:
* tests/tee/Makefile.am, tests/touch/Makefile.am:
2007-02-24 13:57:51 +01:00
Jim Meyering
1b2056c435 * README: Document the OSF/1 4.0d build failure and work-around.
Reported by Bruno Haible.
2007-02-24 13:49:20 +01:00
Jim Meyering
f92a08e171 * NEWS: Use a simple "+" suffix to denote pre-release, not "-dirty".
Nicer connotations.
* configure.ac: Use 6.7+, not 6.7-dirty.
2007-02-24 13:13:45 +01:00
Paul Eggert
3ea177e3fa * NEWS: sort no longer compresses temporaries by default.
* bootstrap.conf: Remove findprog.
* doc/coreutils.texi (sort invocation): The default is to not
compress.  Don't treat "" specially.
* src/sort.c: Don't include findprog.h.
(create_temp): Compress only if the user specified --compress-program.
* tests/misc/sort-compress: Adjusts tests to match new behavior.
2007-02-24 12:24:27 +01:00
Jim Meyering
75460e090c Avoid a shell syntax error, when building with an inadequate Perl.
* man/Makefile.am (.x.1): Add quotes around $(PERL) in case, since
it can expand to "/.../missing perl".
2007-02-24 09:26:56 +01:00
Jim Meyering
90390c6a92 * man/Makefile.am (.x.1): Warn when unable to update a man page.
Suggestion from Bruno Haible.
2007-02-24 09:14:56 +01:00
Bruno Haible
63813d0950 Handle better the combination of old Perl and a pre-c99 compiler.
* man/Makefile.am (.x.1): If the autoconf test has determined that
perl is missing or not a sufficient version, do nothing.
2007-02-24 08:51:19 +01:00
Bruno Haible
2e140cfb42 * tests/readlink/can-e: Put the closing double-quote at the end of a
backquoted word, not in the middle. Works around a bug in sh on
OSF/1 4.0d.
* tests/readlink/can-f: Likewise.
* tests/readlink/can-m: Likewise.
2007-02-24 08:22:08 +01:00
Bruno Haible
33176a7269 * tests/du/slink: Skip the test if executing on an nfsv3 file system.
This avoids a test failure at least on OSF/1 4.0d.
2007-02-24 08:20:37 +01:00
Jim Meyering
813de08e50 * randperm.c (randperm_new): Comment: say that this function
returns a pointer to malloc'd storage.
2007-02-23 22:16:12 +01:00
Jim Meyering
5a8a00e16e * src/date.c (usage): Split a diagnostic that had grown to be
longer than the C89 maximum of 509 bytes.
2007-02-23 17:50:40 +01:00
Ed Santiago
54bdcc09ae * src/date.c (usage): Mention that --rfc-3339 uses space, not 'T',
for a separator.  Include sample RFC 2822 and 3339 output.
2007-02-23 16:11:01 +01:00
Jim Meyering
cb121d8f36 With -Dlint, make shuf free all heap-allocated storage.
* src/shuf.c (main): Move declaration of input_lines to
function scope, and initialize to NULL, so we can free it.
[lint]: Free all malloc'd memory.
* tests/misc/shuf: Also test shuf's -e and -i options.
2007-02-23 15:18:16 +01:00
Jim Meyering
3a9070dce7 Correct typo in ChangeLog entry. 2007-02-22 23:51:43 +01:00
Jim Meyering
93f9b9be84 Merge in a change from some other incarnation of this file (gzip?)
* bootstrap (gnulib_tool): Skip get_translations if there is no po/ dir.
2007-02-22 23:37:19 +01:00
Paul Eggert
4e73fea3e3 Honor dd's noatime flag if possible, even if not supported on build fs
* doc/coreutils.texi (dd invocation): Warn that noatime might not be
reliable.
* src/dd.c (flags, usage): Look at O_NOATIME, not
HAVE_WORKING_O_NOATIME, to decide whether to support the noatime
flag, so that dd attempts O_NOATIME even if the build file system
does not support it.  Problem reported by Jim Meyering today in
bug-coreutils.
* tests/dd/misc: Generate a warning, not a failure, if noatime
exists but fails.
2007-02-22 19:09:35 +01:00
Jim Meyering
c450b625b4 Adjust preceding change not to perform an unaligned access.
* src/copy.c (copy_reg): Undo previous change.  Instead, make
it clearer that we're using a single-byte sentinel, and
[lint]: Initialize uintptr_t-1 bytes after the sentinel.
Reported by Andreas Schwab.
2007-02-22 16:32:45 +01:00
Jim Meyering
f48ca7f500 Placate valgrind, wrt ./cp --sparse=always
* src/copy.c (copy_reg): Place the sentinel by setting a
full word's worth of bits, not just a single byte's worth.
This avoids a harmless (but distracting) case of memory being
used-uninitialized.
2007-02-22 12:50:36 +01:00
Jim Meyering
c25841e0d4 Add to .cvsignore and .gitignore files. 2007-02-21 22:45:09 +01:00
Jim Meyering
45a35825dc * tests/misc/date: Remove vestigial use of Data::Dumper. 2007-02-21 17:26:32 +01:00
Paul Eggert
cc388d140c * src/copy.c (cached_umask): Cast -1 to mode_t to avoid a warning
about out-of-range initializer with Sun C 5.8.
2007-02-21 17:23:05 +01:00
Jim Meyering
c46549dc38 * bootstrap (CVS_only_file): Use README-hacking. 2007-02-20 22:44:15 +01:00
Jim Meyering
2d2255272d * README-hacking: Update to reflect that we now use git. 2007-02-20 22:42:56 +01:00
Jim Meyering
4cf919bcdf Now that we use GIT, not cvs, rename README-cvs.
* README-hacking: Renamed from...
* README-cvs: ...this.
2007-02-20 22:37:18 +01:00
Jim Meyering
d7226387a9 * src/env.c (main): When invoked with no arguments (i.e. when printing
the environment), use a local variable to iterate through the global
"environ" array, rather than "environ" itself.  This is solely to
avoid changing the environment for an LD_PRELOAD-substituted "puts"
or "exit" function.  Tiny patch by Harvey Eneman.  See
<http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/9735>.
* THANKS: Update.
2007-02-20 17:23:51 +01:00
Jim Meyering
dd99d05b4a * bootstrap: Move definitions of temporary directory names and the
new bt_regex "up" to precede all uses, so it's clearer what their
scope is.  Also, use [.], rather than \\., since the former works
even if eval'd.
2007-02-20 17:20:22 +01:00
Jim Meyering
fd32ffb4da * bootstrap: Remove occurrences of $bt (._bootmp) from lib/Makefile.
Based on the bison 2007-02-19 change by Joel E. Denny.
2007-02-20 17:08:10 +01:00
Paul Eggert
c363fcb9f0 * NEWS: sort now uses a --compress-program option rather than
an environment variable.
* doc/coreutils.texi (sort invocation): Document this.
* src/sort.c (usage): Likewise.
(COMPRESS_PROGRAM_OPTION): New const.
(long_options, create_temp, main): Support new option.
* tests/misc/sort-compress: Test it.
2007-02-19 22:11:18 +01:00
Jim Meyering
e189deb855 * bootstrap: Fix typo s/dowloading/downloading/ in --help output. 2007-02-19 18:44:21 +01:00
Jim Meyering
aeb892e592 Add to .cvsignore and .gitignore files. 2007-02-18 22:40:52 +01:00
Jim Meyering
6819756293 Rely on gnulib-generated stdlib.h, not exit.h.
* src/system.h: Don't include exit.h, now that it's subsumed
by the gnulib-generated stdlib.h.
* lib/xfts.c: Include <stdlib.h> rather than exit.h, now that stdlib.h
2007-02-18 22:34:37 +01:00
Jim Meyering
c95bb0c6f0 * tests/rm/fail-eacces: Skip this test when running as root.
Reported by Matthew Woehlke.
2007-02-18 17:40:06 +01:00
Jim Meyering
d07d81df27 * bootstrap: Use "._bootmp" as the temporary directory name,
not ".#bootmp".  The latter's "#" caused trouble with the new,
gnulib-added "LINK_WARNING_H = $(top_srcdir)/.#bootmp/..." line.
2007-02-18 12:06:01 +01:00
Paul Eggert
516f42ab40 * bootstrap.conf (gnulib_modules): Add c-strcase. Remove strcase.
* src/dircolors.c: Include c-strcase.h.
(dc_parse_stream): Use c_strcasecmp rather than
strcasecmp to avoid unreliable results in locales like Turkish
where strcasecmp is incompatible with the C locale.
2007-02-15 08:16:30 +01:00
Jim Meyering
d163cd681a Also check for and print stderr output, in case a program fails.
* tests/misc/tty-eof: Occasionally (not reproducible), this
test would fail, with one or more programs exiting nonzero, e.g.,
tty-eof: sha224sum exited with status 1 (expected 0)
Now, maybe we'll get a clue, the next time that happens.
2007-02-13 22:27:27 +01:00
Jim Meyering
0d8ca457b3 * .x-sc_useless_cpp_parens: Ignore a false-positive in a shell script. 2007-02-12 20:09:12 +01:00
Jim Meyering
e152d05d82 * tests/misc/pwd-unreadable-parent: Skip the test if we're
definitely using the replacement.
* tests/misc/Makefile.am (TESTS_ENVIRONMENT): Define CONFIG_HEADER.
2007-02-12 01:20:20 +01:00
Jim Meyering
a09b047947 Remove excess leading spaces that would make help2man misbehave.
* src/printf.c (usage): Remove excess spaces on 2nd line of %b desc.
* src/nl.c (usage): Remove excess spaces on 2nd line of pBRE desc.
* src/dd.c (usage): Remove excess spaces on 2nd line of sync desc.
* src/date.c (usage): Use two spaces after each optional flag, not one.
Reported by Thomas Huriaux in <http://bugs.debian.org/410407>.
2007-02-10 22:30:18 +01:00
Jim Meyering
bbb61fa617 * Makefile.maint (longopt_re): Relax the regexp, making square
brackets optional, so it matches the newly reported violations, too.
2007-02-10 16:17:41 +01:00
Jim Meyering
0c2d21d3f2 * src/csplit.c (usage): Use two spaces (not one) to separate
each option string from its description, so help2man formats
the derived man page properly.  Reported by Thomas Huriaux in
<http://bugs.debian.org/410407>.
* src/df.c (usage): Likewise.
* src/du.c (usage): Likewise.
* src/install.c (usage): Likewise.
* src/ls.c (usage): Likewise.
2007-02-10 16:15:34 +01:00
Jim Meyering
d282370566 Test for today's gnulib/lib/getcwd.c fix affecting pwd and readlink
* NEWS: Mention the bug fix.
* tests/misc/pwd-unreadable-parent: New file.
* tests/misc/Makefile.am (TESTS): Ad pwd-unreadable-parent.
2007-02-03 20:02:48 +01:00
Paul Eggert
b28a8851ed * NEWS: Document fix for cp --preserve=mode.
* src/copy.c (copy_internal): Omit the group- or other-writeable
permissions when creating a directory, to avoid a race condition
if the special mode bits aren't right just after the directory is
created.
* src/cp.c (make_dir_parents_private): Likewise.
* tests/cp/parent-perm-race: Test for the "cp --preserve=mode"
race fix in copy.c.
2007-02-03 18:45:46 +01:00
Paul Eggert
1c73876f5f * NEWS: Document fix for cp --parents.
* src/cp.c (make_dir_parents_private): Report the error sooner with
"cp --parents DIR/FILE DEST" when DIR is a non-directory, thus not
creating the directory, DEST/DIR.
* tests/cp/cp-parents: Test for the non-race-condition bug fixed
by the above change.
2007-02-03 18:12:11 +01:00
Jim Meyering
251f774621 * src/nl.c (proc_text): Use "NULL", not "(struct re_registers *) 0". 2007-02-02 08:57:47 +01:00
Jim Meyering
1d72903faf * src/c99-to-c89.diff: Make shred.c Index: and a/b prefixes
consistent, so this can be applied with patch -p0.
Reported by Matthew Woehlke.

* Makefile.maint (patch-check): Use patch with its -p2 option,
since that makes this check slightly more strict.
2007-02-02 01:22:58 +01:00
Jim Meyering
6d8e33952a Merge branch 'master' of /cu 2007-02-01 18:03:59 +01:00
Jim Meyering
82276cbd2e * vc-list-files: Select column 2, not 3 (hg-0.9.3's manifest format
now has only two columns).
2007-01-30 23:07:38 +01:00
Paul Eggert
c5d2da8ac8 * coreutils.texi: @item -> @itemx to fix some typos. 2007-01-30 22:56:48 +01:00
Paul Eggert
31bb8a431a * coreutils.texi (mkdir invocation): Say how to set the file
permission bits of a parent directory with mkdir -p.
2007-01-30 22:54:34 +01:00
Jim Meyering
c544a36826 Document new syntax: "chown +0:+287 file", "chgrp +99 file"
* coreutils.texi (Disambiguating names and IDs): New section.
(chown invocation, chgrp invocation): Mention the new syntax
with an xref to the new section.
2007-01-29 18:09:57 +01:00
Jim Meyering
bbe4be0c9a Regenerate .cvsignore and .gitignore files. 2007-01-29 15:38:50 +01:00
Jim Meyering
9f2adbf0be Merge branch 'master' of /cu 2007-01-29 15:32:39 +01:00
Jim Meyering
449a3751d1 Plug a leak in ls.
* src/ls.c (print_dir): Don't leak a "DIR"+fd upon failure to
determine dev/inode or upon detecting a symlink loop.
2007-01-29 14:18:28 +01:00
Jim Meyering
e4eaba04dd * src/ls.c: Rename three global variables.
(cwd_file): Rename from 'files'.
(cwd_n_alloc): Rename from 'nfiles'.
(cwd_n_used): Rename from 'files_index'.
2007-01-29 14:06:45 +01:00
Jim Meyering
fc9b328ab4 Shave 8 bytes off the size of "struct fileinfo".
* src/ls.c (fileinfo): Put all members of type "bool" together.
2007-01-29 12:25:01 +01:00
Paul Eggert
c1f8d48387 Modify "ls" to sort its data faster, using the new gnulib mpsort
module rather than qsort.  This is particularly a win in
environments where strcoll is slow, since mpsort typically calls
strcoll less often than qsort does.
* bootstrap.conf (gnulib_modules): Add mpsort.
* src/ls.c: Include mpsort.h.
(sorted_file, sorted_file_alloc): New vars, for a new vector of
pointers to the file info, for speed.
(clear_files, extract_dirs_from_files, sort_files, print_current_files):
(print_many_per_line, print_horizontal, print_with_commas):
(calculate_columns): Set and use new vector.
(initialize_ordering_vector): New function.
2007-01-29 12:08:52 +01:00
Jim Meyering
e7420f9781 Regenerate .cvsignore and .gitignore files, and reflect recent removal
of string.h-related lib/*.h files
2007-01-27 00:09:28 +01:00
Paul Eggert
2b0483aa03 Adjust to today's change to gnulib, which added a module for
string.h to replace the little include files like strcase.h.
* src/dircolors.c: Don't include strcase.h.
* src/system.h: Don't include mempcpy.h, memrchr.h, stpcpy.h, strpbrk.h.
2007-01-26 23:58:37 +01:00
Jim Meyering
8fb6d7a9b9 Merge branch 'master' of /cu 2007-01-26 21:24:30 +01:00
Jim Meyering
9140950afb * src/dd.c (advance_input_after_read_error): Change diagnostic to
say "invalid file offset" rather than "screwy file offset".
2007-01-26 16:37:37 +01:00
Jim Meyering
cee06314e1 Merge branch 'master' of /cu 2007-01-26 14:00:36 +01:00
Jim Meyering
ebc2235bd7 merge from trunk 2007-01-26 11:15:31 +01:00
Jim Meyering
cece28a8bc merge copyright line conflict 2007-01-26 11:13:44 +01:00
Jim Meyering
e0b3b059b2 * .x-sc_cast_of_argument_to_free: Remove this file.
* Makefile.am (EXTRA_DIST): Likewise.
2007-01-26 11:11:15 +01:00
Dan Hipschman
2d2a0c8311 * src/sort.c (create_temp): Remove superfluous access-X_OK
check.  find_in_path does this for us.
2007-01-25 21:56:32 +01:00
Jim Meyering
11b626c20f Remove usually-skipped test.
* tests/cp/open-perm-race: Remove this file.  It is subsumed
by parent-perm-race.
* tests/cp/Makefile.am (TESTS): Remove open-perm-race.
* tests/sort/Makefile.am: Regenerate.
2007-01-24 10:36:02 +01:00
Jim Meyering
a16f807d7e Pass "make distcheck" again.
* src/sort.c (usage): Split a diagnostic that had grown to be
longer than the C89 maximum of 509 bytes.
* .x-sc_cast_of_argument_to_free: New file.  Allow a cast in sort.c.
FIXME: this is just temporary, while we wait to remove the offending
access-calling code.
* Makefile.am (EXTRA_DIST): Add .x-sc_cast_of_argument_to_free.
* Makefile.maint (sc_cast_of_argument_to_free): Use the
canonical, $$($(CVS_LIST_EXCEPT)).
* m4/.gitignore, m4/.cvsignore, lib/.gitignore, lib/.cvsignore: Update.
2007-01-24 09:32:56 +01:00
Paul Eggert
a0b2bc8de7 * NEWS: New option sort -C, proposed by XCU ERN 127, which looks
like it will be approved.  Also add --check=quiet, --check=silent
as long aliases, and --check=diagnose-first as an alias for -c.
* doc/coreutils.texi (sort invocation): Document this.
Also, mention that sort -c can take at most one file.
* src/sort.c: Implement this.
Include argmatch.h.
(usage): Document the change.
(CHECK_OPTION): New constant.
(long_options): --check now takes an optional argument, and is now
treated differently from 'c'.
(check_args, check_types): New constant arrays.
(check): New arg CHECKONLY, which suppresses diagnostic if -C.
(main): Parse the new options.
* tests/sort/Test.pm (02d, 02d, incompat5, incompat6):
New tests for -C.
2007-01-24 09:06:57 +01:00
Jim Meyering
a0d74a99b7 Fix a typo.
* tests/misc/sort-compress: Use $abs_top_builddir, not $top_builddir.
* tests/misc/Makefile.am (TESTS_ENVIRONMENT): Likewise.
2007-01-24 08:54:51 +01:00
Jim Meyering
124adb3a19 Don't depend on "which".
* tests/misc/sort-compress (SORT): Use $abs_builddir, now which.
* tests/misc/Makefile.am (TESTS_ENVIRONMENT): Export top_builddir.
2007-01-24 00:34:54 +01:00
Dan Hipschman
054defae19 Test sort compression.
* tests/misc/Makefile.am: Add the test.
* tests/misc/sort-compress: New file containing the tests.
2007-01-24 00:27:01 +01:00
Jim Meyering
1f7d56fda5 * NEWS: sort temp file compression: tweak wording.
* src/sort.c (struct sortfile) [name]: Declare member to be const.
2007-01-24 00:22:45 +01:00
Dan Hipschman
f33168da95 * src/sort.c (MAX_FORK_RETRIES_COMPRESS, MAX_FORK_RETRIES_DECOMPRESS):
In pipe_fork callers, use these named constants, not "2" and "8".
(proctab, nprocs): Declare to be "static".
(pipe_fork) [lint]: Initialize local, pid,
to avoid unwarranted may-be-used-uninitialized warning.
(create_temp): Use the active voice.  Describe parameters, too.

2007-01-21  James Youngman  <jay@gnu.org>

Centralize all the uses of sigprocmask().  Don't restore an invalid
saved mask.
* src/sort.c (enter_cs, leave_cs): New functions for protecting
code sequences against signal delivery.
* (exit_cleanup): Use enter_cs and leave_cs instead of
calling sigprocmask directly.
(create_temp_file, pipe_fork, zaptemp): Likewise

2007-01-21  Dan Hipschman  <dsh@linux.ucla.edu>

Add compression of temp files to sort.
* NEWS: Mention this.
* bootstrap.conf: Import findprog.
* configure.ac: Add AC_FUNC_FORK.
* doc/coreutils.texi: Document GNUSORT_COMPRESSOR environment
variable.
* src/sort.c (compress_program): New global, holds the name of the
external compression program.
(struct sortfile): New type used by mergepfs and friends instead
of filenames to hold PIDs of compressor processes.
(proctab): New global, holds compressor PIDs on which to wait.
(enum procstate, struct procnode): New types used by proctab.
(proctab_hasher, proctab_comparator): New functions for proctab.
(nprocs): New global, number of forked but unreaped children.
(reap, reap_some): New function, wait for/cleanup forked processes.
(register_proc, update_proc, wait_proc): New functions for adding,
modifying and removing proctab entries.
(create_temp_file): Change parameter type to pointer to file
descriptor, and return type to pointer to struct tempnode.
(dup2_or_die): New function used in create_temp and open_temp.
(pipe_fork): New function, creates a pipe and child process.
(create_temp): Creates a temp file and possibly a compression
program to which we filter output.
(open_temp): Opens a compressed temp file and creates a
decompression process through which to filter the input.
(mergefps): Change FILES parameter type to struct sortfile array
and update access accordingly.  Use open_temp and reap_some.
(avoid_trashing_input, merge): Change FILES parameter like
mergefps and call create_temp instead of create_temp_file.
(sort): Call create_temp instead of create_temp_file.
Use reap_some.
(avoid_trashing_input, merge, sort, main): Adapt to mergefps.
2007-01-24 00:00:21 +01:00
Jim Meyering
590a3f5b08 * tests/misc/pwd-long: Work properly even when run from the
wrong one of two or more bind-mounted sibling directories.
Suggestion from Mike Stone in <http://bugs.debian.org/380552>.
2007-01-20 21:58:31 +01:00
Jim Meyering
94986c1d0a Merge branch 'master' of /cu 2007-01-20 16:33:20 +01:00
Paul Eggert
bdbd5d31f8 Standardize on list of signals when an app catches signals.
* src/csplit.c (main): Also catch SIGALRM, SIGPIPE, SIGPOLL,
SIGPROF, SIGVTALRM, SIGXCPU, SIGXFSZ.
* src/ls.c (main): Likewise (except SIGPIPE was already caught).
Note that ls.c is special, as it also catches SIGTSTP.
* src/sort.c (main): Likewise.  Also catch SIGQUIT.  More details in
<http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/9510>.
2007-01-20 09:54:20 +01:00
Jim Meyering
3d63c453d5 [lib/ChangeLog]
* .cvsignore, .gitignore: Add sys, as well as more
bootstrap-inserted file names.
[m4/ChangeLog]
* .cvsignore, .gitignore: Add more bootstrap-inserted file names.
2007-01-19 23:28:03 +01:00
Dan Hipschman
e175f0d5b2 * src/sort.c (cleanup): Clear temphead at the end.
(exit_cleanup): New function.
(main): Don't invoke atexit until we're ready.
Invoke it with exit_cleanup, not with cleanup and close_stdout,
to avoid a race condition with cleanup and signal handling.  More
details: http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/9508
2007-01-19 23:03:18 +01:00
Jim Meyering
fd77348fef * coreutils.texi (ls: General output formatting): Mention the
workarounds to accommodate the Apple Terminal bug.
2007-01-19 12:10:04 +01:00
Jim Meyering
03b1e07ae0 * src/c99-to-c89.diff: Adjust remove.c offsets. 2007-01-18 10:18:02 +01:00
Jim Meyering
0928c2414a Make "rm --interactive=never ..." never prompt.
* NEWS: Mention this.
* src/remove.h (enum rm_interactive): New ternary type.
(struct rm_options) [interactive]: Use it, here -- rather than bool.
* src/remove.c (prompt): Reflect type change.
* src/mv.c (rm_option_init): Initialize to RMI_NEVER now.
* src/rm.c (main): Add a FIXME comment for '-d' option.
Adapt to type change of rm_options.interactive.

* tests/rm/i-never: New file.  Test for the above fix.
* tests/rm/Makefile.am (TESTS): Add i-never.
2007-01-17 17:15:20 +01:00
Jim Meyering
d1ad73e0bf * bootstrap (gnulib_tool): When adding to .cvsignore and .gitignore,
emit foo.h, for each foo_.h.  This yields one false-positive, fts.h,
but that's ok, since fts_.h will eventually be renamed.
2007-01-15 11:31:51 +01:00
Jim Meyering
1e23a1785a * src/remove.c (remove_dir): Don't use errno in diagnostic.
Root-only test failure reported by Alex van Hout and Jon Grosshart in
<http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/9415/focus=9415>.
2007-01-15 10:39:32 +01:00
Jim Meyering
54050ea91d * bootstrap.conf (avoided_gnulib_modules): Fix my typo:
s/--avoid=canonicalize-lgpl/--avoid=canonicalize-gpl/
2007-01-15 10:32:09 +01:00
Jim Meyering
aa5a4fc172 * fchdir-stub.c: Remove file. No longer needed. 2007-01-14 17:18:51 +01:00
Bruno Haible
bb4112b407 Enable use of gnulib's new fchdir module.
* bootstrap.conf (avoided_gnulib_modules): Avoid canonicalize-lgpl,
since we use canonicalize.
(gnulib_modules): Add fchdir.
* m4/jm-macros.m4 (coreutils_MACROS): Remove fchdir-stub.
2007-01-14 17:15:49 +01:00
Jim Meyering
c12e44d891 * tests/cp/open-perm-race: Remove gdb-based test.
It would run only when compiled with -g, and besides is now
subsumed by file-perm-race.
* tests/cp/Makefile.am (TESTS): Remove open-perm-race.
2007-01-13 11:35:24 +01:00
Jim Meyering
9c88531fb0 Put CU_TEST_NAME in the environment for each test run by "make check".
* Transform all Makefile.am files so that when running "make check",
CU_TEST_NAME is set to the name of the test.  This is so that when I
run valgrind-enabled (--log-file-qualifier=CU_TEST_NAME) "make check"
on the entire package it is more convenient to map a leak or error
found in a valgrind log file back to the offending test.
Use this command:
(echo tests/Makefile.am.in; find tests -name Makefile.am) \
 |xargs perl -pi -e '/^(\s*)PATH=...VG_PATH_PREFIX/ and ' \
   -e 'print $1,q|CU_TEST_NAME=`basename $(abs_srcdir)`,$$tst |,"\\\n"'
2007-01-13 11:32:19 +01:00
Jim Meyering
9afcb30571 Regenerate .cvsignore and .gitignore files. 2007-01-13 11:22:01 +01:00
Jim Meyering
4e2fd4cca6 Avoid a leak in expr's implementation of the ":" (match) operator.
* src/expr.c (docolon): Free the regexp buffer using regfree, rather
than doing it manually, being careful to set fastmap to NULL first.
Free any re_regs.start and .end members, if necessary.
2007-01-11 19:31:27 +01:00
Jim Meyering
c6357f0cab * tests/misc/test-diag: Work also when libc's error function
reports the entire program name ("../../src/test"), rather than
just the final component.
2007-01-11 18:59:24 +01:00
Jim Meyering
fbcbba4b94 Merge branch 'master' of /cu 2007-01-11 14:50:09 +01:00
Jim Meyering
48545b5756 trivial merge 2007-01-11 14:49:19 +01:00
Jim Meyering
b5f1873022 Don't use fts_statp uninitialized for "chown -RLh --preserve-root ...".
* src/chown-core.c (FTSENT_IS_DIRECTORY): New macro.
(change_file_owner): Perform the ROOT_DEV_INO_CHECK only for a
directory.  Non-directory entries lack fts_statp data when using
the FTS_NOSTAT option.
2007-01-10 22:00:44 +01:00
Jim Meyering
dad7d86d57 * tests/sample-test: Update copyright date to 2007.
* Makefile.maint (copyright-check): Also check the copyright date
in tests/sample-test.
2007-01-07 18:38:56 +01:00
Jim Meyering
bce110cdd5 * tests/fmt/basic (pfx-only, pfx-of-pfx): New tests,
based on examples from G.P. Halkes in
<http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/9388>.
2007-01-06 10:42:17 +01:00
G.P. Halkes
37bcc27707 * src/fmt.c (copy_rest): Correct prefix handling.
Don't elide a line with the prefix followed by only white space.
(get_line): Move EOF-check to loop-termination condition.
* tests/fmt/basic (pfx-1): Adjust test to expect desired result.
(pfx-2): Remove test; its premise was contrary to the documentation.
2007-01-06 09:49:47 +01:00
Jim Meyering
ab58de37e6 Avoid a used-uninitialized bug for invalid input, i.e., when the size
of the input, not counting newlines, is 1 % 4.
* gl/lib/base64.c (base64_decode): Don't hard-code inlen==4.
It may be smaller when flushing.
2007-01-05 12:30:51 +01:00
Mike Frysinger
4082e3be7c * src/dircolors.hin: Add a TERM directive for cons25. 2007-01-05 09:52:10 +01:00
Jim Meyering
11bcfcc72a Use the release year, not the current year.
* src/groups.sh (version): Use a better name: @RELEASE_YEAR@.
* src/Makefile.am (RELEASE_YEAR): Define it.
(.sh): Use it.
Thanks to a prod from Eric Blake.
2007-01-04 15:34:29 +01:00
Jim Meyering
aa6a5547b3 Ensure that "group --version" always prints the current year.
* src/groups.sh (version): Use @CURRENT_YEAR@, rather than 2006.
* src/Makefile.am (.sh): Also substitute for @CURRENT_YEAR@.
Suggestion from Eric Blake.
2007-01-04 14:55:42 +01:00
Jim Meyering
c8e51ae68a * Makefile.cfg (local-checks-to-skip): Skip strftime-check, in
case you don't have convenient access to glibc info documentation.
2007-01-04 12:08:36 +01:00
Jim Meyering
2ed0544df4 .cvsignore, .gitignore: Add fchownat.c and wctype-related files. 2007-01-04 12:01:48 +01:00
Jim Meyering
3b933f1e33 [ChangeLog]
When decoding, always allow newlines in input, with almost no
performance impact.
* src/base64.c (do_decode): Initialize decode context.
Call base64_decode one more time, after all input is processed.
(usage): When decoding, newlines are always accepted.

* tests/misc/base64: Add a bunch of tests, for the above.
* gl/lib/base64.c: Include <string.h>.
(base64_decode_ctx_init, get_4, decode_4): New functions.
(base64_decode): Efficiently handle interspersed newlines.
(base64_decode_alloc): Update signature.
* gl/lib/base64.h (struct base64_decode_context): Define.
(base64_decode_ctx_init): Add prototype.
(base64_decode, base64_decode_alloc): Update prototypes.
[doc/ChangeLog]
* coreutils.texi (base64 invocation): When decoding, newlines
are always accepted.
2007-01-04 11:52:52 +01:00
Jim Meyering
99d9e13b9c * gl/lib/base64.c: Copied from gnulib.
* gl/lib/base64.h: Likewise.
2007-01-04 11:36:54 +01:00
Evan Hunt
419aa62c46 [oops] Document what the ".0" in e.g., "-k 2,3.0" means, and...
* coreutils.texi (sort invocation): ... that it can be applied to the
field-end spec, but not the field-start one.  Patch from Evan Hunt.

Signed-off-by: Jim Meyering <jim@meyering.net>
2007-01-03 12:24:35 +01:00
Evan Hunt
482366105a Document what the ".0" in e.g., "-k 2,3.0" means, and...
* coreutils.texi (sort invocation): ... that it can be applied to the
field-end spec, but not the field-start one.  Patch from Evan Hunt.

Signed-off-by: Jim Meyering <jim@meyering.net>
2007-01-03 12:04:24 +01:00
Bruno Haible
f28e07f81d Avoid spurious test failures on MacOS X 10.3.9, in a German locale.
* tests/chown/deref: Apply lang-default.
* tests/misc/split-a: Likewise.
* tests/mv/reply-no: Likewise.

Signed-off-by: Jim Meyering <jim@meyering.net>
2007-01-03 10:51:37 +01:00
Bruno Haible
8563b4c051 * src/copy.c (copy_internal): Use mkfifo as a fallback if mknod fails.
Needed on MacOS X.

Signed-off-by: Jim Meyering <jim@meyering.net>
2007-01-03 10:46:25 +01:00
Paul Eggert
f0b5e513d9 Now, "ls -FRL" always follows symbolic links on Linux.
* NEWS: Mention this bug fix.
* src/ls.c (gobble_file): Fix bug reported by
Nobuyuki Tsuchimura in
http://lists.gnu.org/archive/html/bug-coreutils/2006-12/msg00152.html
where "ls -FRL" didn't follow a symbolic link in some cases on Linux.
* tests/ls/follow-slink: Add a test for this case.

Signed-off-by: Jim Meyering <jim@meyering.net>
2007-01-02 07:27:22 +01:00
Jim Meyering
3b8560a637 * tests/rm/fail-eperm: Instead, simply transform the actual output diagnostic.
Test failure reported by Bob Proulx.
2007-01-01 10:56:01 +01:00
Jim Meyering
b5ef9617c4 * tests/rm/fail-eperm: Revert last change. The PATH=... setting
is not honored at least on HP-UX 11.23 systems.
2007-01-01 09:51:43 +01:00
Jim Meyering
747e7a8da8 * bootstrap (gnulib_extra_files): Remove announce-gen.
* bootstrap.conf (gnulib_modules): Add it here instead, now that
it's a module.
2006-12-30 22:16:35 +01:00
Jim Meyering
d2ec687c1c * tests/misc/base64: Factor a long, repetitive string. 2006-12-30 17:46:09 +01:00
Jim Meyering
457b4e69f5 * src/c99-to-c89.diff: Adjust remove.c offsets. 2006-12-30 16:19:26 +01:00
Jim Meyering
d08d66ebc6 Clean up after the change of 2006-12-28.
* src/remove.c (AD_pop_and_chdir): Change **DIRP parameter to *DIRP,
now that this function never modifies the pointer.  Adjust comments
and code accordingly.
(remove_dir): Set "dirp" to NULL right after AD_pop_and_chdir call,
now that AD_pop_and_chdir no longer does that.
2006-12-30 16:12:23 +01:00
Jim Meyering
5017d1b4e1 * tests/rm/fail-eperm: Avoid spurious differences (the error function
from latest glibc no longer prints the full program_name): so don't
invoke rm via ../../src/rm.  Instead, invoke it via "PATH=../../src rm".
2006-12-30 12:50:43 +01:00
Jim Meyering
841d9a7d5d * tests/mv/acl (skip): Skip this test also if the destination
directory, which is on a different file system, lacks ACL support.
2006-12-30 11:49:04 +01:00
Jim Meyering
67b9752cd1 * src/copy.c (copy_reg): Rewrite a comment that was rendered
inaccurate by the 2006-10-18 change.
2006-12-30 09:34:31 +01:00
Jim Meyering
88891aef7e When moving "up" the hierarchy, be careful to remove a just-emptied
directory before opening ".", to avoid trouble with file system
implementations that cache readdir results at opendir-time.
* src/remove.c (AD_pop_and_chdir): Add a file descriptor parameter.
Don't update **DIRP.  Don't call fdopendir here.
(remove_dir): Call fdopendir here instead.
Report and patch from Mikulas Patocka:
<http://lists.gnu.org/archive/html/bug-coreutils/2006-12/msg00170.html>
2006-12-28 19:37:07 +01:00
Jim Meyering
bbcfef38a3 Remove 2006-12-24 entry (the corresponding change was never committed).
The underlying problem was fixed on 2006-12-26, by requiring a new-enough
version of autoconf.
2006-12-28 09:25:26 +01:00
Jim Meyering
2eea35fcf2 * src/tail.c (usage): Mention +N for --bytes and --lines.
Suggestion from Evan Hunt.
2006-12-27 16:00:15 +01:00
Jim Meyering
f20cd37e51 * configure.ac: Require autoconf-2.61 and automake-1.10.
Without the former (even with autoconf-2.60), "make distcheck"
would fail (without the 2006-09-26 autoconf AC_CHECK_DECL fix),
due to an inttypes.h generated with CFLAGS including -pedantic.
With the old decl check, @HAVE_DECL_STRTOUMAX@ would be 0.
2006-12-27 11:27:54 +01:00
Jim Meyering
4b9e987554 * Makefile.maint (VC-tag): Define, so as to gpg-sign each release
tag, using the release version number as the message.
(vc-dist): Use $(VC-tag), rather than "$(VC) tag".

2006-12-24  Jim Meyering  <jim@meyering.net>

* Makefile.maint (my-distcheck): Don't *configure* with
restrictive CFLAGS ('-Werror -ansi -pedantic -Wno-long-long'),
since it ends up provoking errors in generation of inttypes.h
on an Ubuntu edgy-based system.  That leads to compilation
failure due to e.g., imaxabs redefinition.
Instead, configure with default CFLAGS, and compile the
package with restrictive CFLAGS.
2006-12-26 16:42:33 +01:00
Paul Eggert
f24ff8f42b * NEWS: dd bs= operands now silently override later ibs= and obs=,
as POSIX requires.
* src/dd.c (scanargs): Implement it.
* tests/dd/misc (outbytes): Test it.
* doc/coreutils.texi (dd invocation): Specify that bs=N
overrides later ibs and obs, undoing part of the
previous change.  (The behavior was wrong.)
2006-12-22 10:09:37 +01:00
Jim Meyering
699188aa87 * coreutils.texi (dd invocation): Specify that bs=N overrides only any
_preceding_ ibs and obs settings.  Spotted by Andreas Schwab.
2006-12-21 11:13:48 +01:00
Jim Meyering
a828a78563 * Makefile.maint (patch-check): Fix shell quoting. 2006-12-21 11:05:16 +01:00
Jim Meyering
2d4cd37758 * coreutils.texi (dd invocation): Add to the description of cbs. 2006-12-21 10:24:51 +01:00
Jim Meyering
f0ee72aa01 * coreutils.texi (dd invocation): Improve the documentation
for bs, ibs, obs, and cbs.  Suggestion from Dan Jacobson.
Patch by Olivier Delhomme.
2006-12-21 10:18:58 +01:00
Jim Meyering
c8ef95eaed "rm -rf /etc/motd" (run by non-root) now prints a diagnostic.
* src/remove.c (remove_entry): Handle EACCES for a non-directory, too.
Karl Berry reported that a cross-partition "mv /etc/issue ~"
failed with the um,... suboptimal diagnostic,
"mv: cannot remove `/etc/issue': Not a directory".
* tests/rm/Makefile.am (TESTS): Add fail-eacces.
* tests/rm/fail-eacces: New file.
* NEWS: Mention that both mv and rm are affected.
2006-12-21 08:58:11 +01:00
Jim Meyering
d69fc66d81 "cut -f 2- A B" no longer triggers a double-free bug
* src/cut.c (cut_fields): Set file-scoped global to NULL after
freeing it.  This avoids a double-free (and core dump on some systems)
for this usage: "echo 1>a; echo 2>b; cut -f2- a b".  Reported by
James Hunt in <http://bugzilla.redhat.com/220312>.
* NEWS: List this bug fix.
* THANKS: Mention him.
* tests/misc/cut: New file.
* tests/misc/Makefile.am (TESTS): Add cut.
2006-12-20 14:25:55 +01:00
Jim Meyering
4e48b4ce33 * tests/cp/open-perm-race: Correct the gdb-existence check.
Don't run either subsequent gdb command in a sub-shell.
Reported by Thomas Schwinge.
* THANKS: bring up to date.
2006-12-15 10:43:20 +01:00
Paul Eggert
6f005c8491 Make sure cp -p isn't too generous with file permissions.
* tests/cp/Makefile.am (TESTS): Add file-perm-race.
* tests/cp/file-perm-race: New file.
Signed-off-by: Jim Meyering <jim@meyering.net>
2006-12-15 09:50:40 +01:00
Paul Eggert
6f3efa15eb Ensure cp -pR --parents isn't too generous with parent permissions.
* tests/cp/Makefile.am (TESTS): Add parent-perm-race.
* tests/cp/parent-perm-race: New file.
Signed-off-by: Jim Meyering <jim@meyering.net>
2006-12-15 09:44:58 +01:00
Jim Meyering
33de42f2a8 * tests/chgrp/default-no-deref: Don't assume that files are created
with the primary group by default.  That's not true in a directory
with the set-GID bit set.
2006-12-14 21:07:49 +01:00
Jim Meyering
c97742932a Don't hang when there's no input tty.
* tests/cp/open-perm-race: Skip this test if there is no
controlling input `terminal'.
2006-12-14 19:32:10 +01:00
Jim Meyering
a6a1e73c0a Test for a hard-to-detect race fix, using gdb.
* tests/cp/open-perm-race: New file, to test for the
cp --preserve=ownership fix of 2006-12-06.
* tests/cp/Makefile.am (TESTS_ENVIRONMENT): Define abs_top_builddir.
(TESTS): Add open-perm-race.
2006-12-14 17:17:31 +01:00
Jim Meyering
c3154b2947 chgrp, chown: Don't prohibit -RLh, aka -RL with --no-dereference.
* src/chgrp.c (main): Don't prohibit -RLh, aka -RL with --no-dereference.
* src/chown.c (main): Likewise.
* src/chown-core.c (change_file_owner): Add to a comment.
* tests/chown/preserve-root: Add tests.
* doc/coreutils.texi (Treating / specially): With --preserve-root,
chgrp and chown will not modify "/", even through a symlink.
2006-12-14 15:41:50 +01:00
Jim Meyering
24852bf5b5 * NEWS: --preserve-root now works with chgrp, chmod, and chown.
* src/chmod.c (process_file): Do honor the --preserve-root option.
* src/chown-core.c (change_file_owner): Likewise, but here, also
handle the case in which a traversal would go "through" a symlink
to root.  Reported by Matthew M. Boedicker
* tests/chown/preserve-root: Test for the above.
* tests/chown/Makefile.am (TESTS): Add preserve-root.
2006-12-14 11:14:25 +01:00
Jim Meyering
56007809c3 * coreutils.texi: Remove two doubled words. 2006-12-14 09:15:51 +01:00
Jim Meyering
629214eaf8 * NEWS: Mention the chmod fix induced by the recent change to gnulib's openat.m4. 2006-12-14 00:22:50 +01:00
Andreas Schwab
ae3f43d3eb Don't fail if mv/acl test succeeds.
* tests/mv/acl (skip): Check for acl support in the file system.
* tests/mv/Makefile.am (XFAIL_TESTS): Remove.
(TESTS_ENVIRONMENT): Pass CONFIG_HEADER.
Signed-off-by: Jim Meyering <jim@meyering.net>
2006-12-13 22:26:23 +01:00
Paul Eggert
ec95137cc3 Remove some arbitrary restrictions on size fields,
so that commands like "sort -k 18446744073709551616" no longer fail merely
because 18446744073709551616 doesn't fit in uintmax_t.  The trick is that
these fields can all be treated as effectively infinity;  their exact
values don't matter, since no internal buffer can be that long.
* src/join.c (string_to_join_field): Verify that SIZE_MAX <= ULONG_MAX
if the code assumes this.  Silently truncate too-large values to SIZE_MAX,
as the remaining code will do the right thing in this case.
* src/sort.c (parse_field_count): Likewise.
* src/uniq.c (size_opt, main): Likewise.
* tests/join/Test.pm (bigfield): New test.
* tests/sort/Test.pm (bigfield): New test.
* tests/uniq/Test.pm (121): New test.
Signed-off-by: Jim Meyering <jim@meyering.net>
2006-12-13 22:03:54 +01:00
Jim Meyering
ae3ee95eb8 * tests/chgrp/default-no-deref: New test.
* tests/chgrp/Makefile.am (TESTS): Add default-no-deref.
2006-12-13 13:28:17 +01:00
Jim Meyering
a6895a8da2 * jm-macros.m4: Remove AC_FUNC_SETVBUF_REVERSED, now that it's a no-op. 2006-12-12 14:41:30 +01:00
Jim Meyering
8d550c12b8 * src/system.h (SETVBUF): Remove definition, now that the
autoconf macro, AC_FUNC_SETVBUF_REVERSED, does nothing.
* src/tee.c (tee_files): s/SETVBUF/setvbuf/.
* src/od.c (open_next_file): Likewise.
2006-12-12 14:34:23 +01:00
Jim Meyering
0ee9adb1fa * man/Makefile.am (.x.1): Make help2man use $(PACKAGE_STRING) as the
"source".  I.e. "GNU coreutils 6.7".
2006-12-09 19:20:56 +01:00
Jim Meyering
0473e718e6 * NEWS: With the change from "-pre" to "-dirty" suffix, also change
from NEXT_VER-pre to CUR_VER-dirty.  So, this is 6.7-dirty.
* configure.ac (AC_INIT): s/6.8-dirty/6.7-dirty/.
2006-12-09 15:57:06 +01:00
Jim Meyering
dab023dec1 * tests/uniq/Test.pm (test_vector): Skip the pipe-reading test
whenever uniq is expected to fail.  This should catch the other case
[test #112] in which uniq emits "cat: write error: Broken pipe" on
some systems.
2006-12-09 14:17:00 +01:00
Jim Meyering
939c480a79 Include bootstrap tool version info in the announcement form.
* Makefile.maint (gnulib_snapshot_date): Define.
(announcement): Use two new announce-gen options,
--bootstrap-tools and --gnulib-snapshot-date.
* Makefile.cfg (gnulib_dir): Set.
2006-12-08 10:28:05 +01:00
Jim Meyering
07af816554 Post-release version change.
* NEWS: Add a line for 6.8-dirty.
* configure.ac (AC_INIT): Set new version string.
2006-12-08 08:28:04 +01:00
Jim Meyering
6b49da0dc3 .prev-version: Record previous version: 6.7. 2006-12-08 00:19:29 +01:00
Jim Meyering
f044d2d51c Version 6.7.
* NEWS: Record release date.  Remove '-pre' suffix.
* configure.ac (AC_INIT): Remove version string suffix.
2006-12-08 00:03:00 +01:00
Jim Meyering
565b165115 * tests/touch/empty-file: Use envvar-check, so "make check" doesn't
evoke diagnostics like this when COLUMNS=0 in the environment:
ls: ignoring invalid width in environment variable COLUMNS: 0
* tests/touch/no-rights: Likewise.
* tests/help-version: Likewise.
2006-12-07 10:11:40 +01:00
Jim Meyering
9f1b96313e Make the output of "make check" more reproducible.
* tests/uniq/Test.pm: Don't perform the pipe-reading version of test
118, since it emits "cat: write error: Broken pipe" on some systems.
2006-12-07 10:04:04 +01:00
Paul Eggert
fc92148eac cp -p now clears special bits if it fails to preserve owner or group
* NEWS: Document the cp -p fix for special bits.
* src/copy.c (set_owner): Now returns a three-way result, so
that the caller can clear the special bits.  All callers changed.
(copy_reg): Don't set the special bits if chown failed.
(copy_internal): Likewise.
* tests/cp/special-bits: Test this fix.
Signed-off-by: Jim Meyering <jim@meyering.net>
2006-12-07 08:10:35 +01:00
Paul Eggert
a4f7b723f0 * NEWS: Document the cp --preserve=ownership fix.
* m4/jm-macros.m4 (coreutils_MACROS): Check for fchmod.
* src/copy.c (fchmod_or_lchmod): New function.
(copy_reg): New arg OMITTED_PERMISSIONS.  All uses changed.
Omit confusing and unused ", dst_mode" arg to 'open' without O_CREAT.
When creating a file, use O_EXCL, so we're more likely to detect
funny business by other processes.  At the end, if permissions
were omitted, chmod them back in.
(copy_internal): If the ownership might change, omit some permissions
at first, then restore them after chowning the file.
* src/cp.c (make_dir_parents_private): Likewise.
* src/copy.c (cached_umask): New function.
* src/copy.h (cached_umask): New decl.
2006-12-06 20:44:08 +01:00
Jim Meyering
e7f7dcb9d1 Make the output of "make check" more reproducible.
* tests/misc/date-sec: Don't emit any diagnostic about sleeping.
2006-12-06 16:36:29 +01:00
Jim Meyering
545df07893 NEWS: the du bug affects coreutils-6.4, 6.5 and 6.6. 2006-12-06 13:18:43 +01:00
Paul Eggert
8406e92795 install.c: Preserve time stamps before changing owner or file mode bits,
for consistency with other coreutils programs.
2006-12-04 10:06:11 +01:00
Jim Meyering
1ea616697a * Makefile.am (libcoreutils_a_SOURCES): Remove xmemcoll.c and
xmemcoll.h.  Now, they're handled by the gnulib xmemcoll module.
2006-12-03 19:42:26 +01:00
Jim Meyering
5e585ffe84 * tests/misc/date-sec: Output a fixed string. 2006-12-03 16:01:41 +01:00
Jim Meyering
370370c8e4 Add "Reported by" 2006-12-03 11:32:31 +01:00
Jim Meyering
ba45154d8e * NEWS: du --one-file-system (-x) would skip subdirectories of any
directory listed as second or subsequent command line argument.
* tests/du/one-file-system: New file.  Test for today's fts.c fix.
* tests/du/Makefile.am (TESTS): Add one-file-system.
2006-12-03 11:17:35 +01:00
Jim Meyering
6e7e2709c8 * tests/du/basic: Generate 4KB file simply using printf, rather than
seq+head.  This avoids a spurious "Broken pipe" diagnostic from seq.
2006-12-02 22:04:13 +01:00
Jim Meyering
aa0fb1e032 * perm.texi (Mode Structure): Fix typo: s/setgid/setuid/.
Reported by Georg Neis as Debian bug 400778.
2006-11-28 23:03:08 +01:00
Jim Meyering
1ddf7faf11 * tests/mv/no-target-dir: Detect a buggy rename syscall. If found,
skip this test.  This happens at least on ia64 linux-2.4.19 w/ext3.
Reported by Matthew Woehlke.
2006-11-28 13:36:37 +01:00
Jim Meyering
db7092bed3 * tests/mv/dir2dir: Also accept EBUSY.
Reported by Matthew Woehlke.
2006-11-28 09:21:00 +01:00
Jim Meyering
97136cb93f * Makefile.maint (patch-check): Rewrite to diagnose failure.
* src/c99-to-c89.diff: Adjust shred.c offsets.
2006-11-27 14:38:35 +01:00
Paul Eggert
9b06af3367 Improve the check for departures from C89, and fix the departures
I found.
* Makefile.maint (my-distcheck): Also check for C89 compatibility
as best we can with GCC.
* src/stat.c (PRINTF_OPTION): Omit comma before } in enum
declaration; C89 doesn't allow this.
* src/dcgen: Don't generate string literals longer than
what C89 requires support for.
* src/cut.c (usage): Don't use string literals longer than
what C89 requires support for.
* src/date.c (usage): Likewise.
* src/dd.c (usage): Likewise.
* src/du.c (usage): Likewise.
* src/ls.c (usage): Likewise.
* src/od.c (usage): Likewise.
* src/readlink.c (usage): Likewise.
* src/seq.c (usage): Likewise.
* src/shred.c (usage): Likewise.
2006-11-27 11:27:46 +01:00
Mike Frysinger
a45772d52d recognize new archive, audio, image formats; give audio files a separate color
* src/dircolors.hin: Add comments for common .sh and .csh scripts.
Add .bz2, .tbz2, .tz, .rar, .ace, .zoo, .cpio, .7z, .rz as archive
suffixes.  Add .mng, .pcx, .m2v, .mkv, .ogm, .mp4, .m4v, .mp4v, .vob,
.qt, .nuv, .wmv, .asf, .rm, .rmvb, .flc, .yuv as image formats.
Add .aac, .au, .mid, .midi, .mka, .ra as audio suffixes.  Change
audio color to 00;36 to differentiate from image/video color.
2006-11-27 08:58:40 +01:00
Jim Meyering
a43ee65ee5 * Makefile.maint (patch-check): Compile patched sources with
CFLAGS='-Wdeclaration-after-statement -Werror', to ensure that
no violations remain.
2006-11-26 18:51:27 +01:00
Jim Meyering
549bbdf7b4 * src/c99-to-c89.diff: Remove 3 bogus hunks. 2006-11-26 18:49:55 +01:00
Jim Meyering
5e2f415d17 * src/remove.c (fd_to_subdirp): Remove unused parameter, ds.
Update callers.
2006-11-26 18:47:54 +01:00
Jim Meyering
d6a37dfa3b * src/c99-to-c89.diff: Adjust for changes in rm.c and in remove.c. 2006-11-26 18:42:56 +01:00
Jim Meyering
8ec7811e82 * src/rm.c (main): Remove unnecessary (assuming C99) braces. 2006-11-26 18:35:38 +01:00
Jim Meyering
08dcc35470 Reflect that these are Paul's changes. I've divided them into separate
deltas.

Signed-off-by: Paul Eggert <eggert@cs.ucla.edu>
2006-11-26 17:41:00 +01:00
Paul Eggert
17a7d2c81b Port parts of the code to C89 to minimize the need for c99-to-c89.diff,
while trying to retain the readability of C99 as much as possible.
* src/remove.c (close_preserve_errno): Remove.
(fd_to_subdirp): Rewrite to avoid the need for decl after statement.

Signed-off-by: Paul Eggert <eggert@cs.ucla.edu>
2006-11-26 17:40:38 +01:00
Paul Eggert
a23c91026d * src/remove.c (rm): Move cycle_check_init call into callee...
Use an else clause in place of a "continue" statement.

Signed-off-by: Paul Eggert <eggert@cs.ucla.edu>
2006-11-26 17:40:37 +01:00
Paul Eggert
1ce71652fc * src/remove.c (AD_ensure_initialized): New function.
after statement.

Signed-off-by: Paul Eggert <eggert@cs.ucla.edu>
2006-11-26 17:40:16 +01:00
Paul Eggert
1b95d5ee81 * src/remove.c (AD_pop_and_chdir): Return prev_dir rather than storing through
a pointer argument.  All uses changed.

Signed-off-by: Paul Eggert <eggert@cs.ucla.edu>
2006-11-26 17:39:53 +01:00
Paul Eggert
6b7c67ad88 * src/remove.c (cache_stat_init): Return its argument, for convenience.
Update the caller in remove_dir.

Signed-off-by: Paul Eggert <eggert@cs.ucla.edu>
2006-11-26 17:39:27 +01:00
Paul Eggert
02e24f2593 * src/remove.c (rm_1): Remove decl of local, fd_cwd.
Replace each of two uses with literal AT_FDCWD.

Signed-off-by: Paul Eggert <eggert@cs.ucla.edu>
2006-11-26 17:38:09 +01:00
Jim Meyering
5891b7ce21 * Makefile.am (EXTRA_DIST): Remove announce-gen from here, too. 2006-11-25 19:16:26 +01:00
Theodoros V. Kalamatianos
c8092e5db0 * tests/du/inacc-dest: Skip this test when running as root. 2006-11-24 22:08:33 +01:00
Jim Meyering
8cafe0070a Add announce-gen to build-aux/.*ignore files. 2006-11-23 16:31:18 +01:00
Jim Meyering
d0275e280e * announce-gen: Remove file. It's moving to gnulib.
* bootstrap: Pull it from gnulib/build-aux instead.
* Makefile.maint (announcement): Reflect move to ./build-aux.
2006-11-23 16:28:49 +01:00
Jim Meyering
37012effc9 * tests/du/deref-args: Use "printf %65536s x" to create a 64KB file,
rather than a pipeline that would sometimes evoke a diagnostic
like "seq: write error: Broken pipe".
2006-11-23 09:09:53 +01:00
Jim Meyering
a409011bba * tests/help-version: Suppress dd transfer rate output. 2006-11-23 09:02:36 +01:00
Jim Meyering
a3ae3e8085 * configure.ac (AC_INIT): Bump to 6.7-pre, not 6.6-pre. 2006-11-23 01:12:22 +01:00
Paul Eggert
3ccd02d5b9 * randread.c (__attribute__): Don't define if __attribute__ is already defined.
Otherwise, the code won't conform to C99, since
the macro arg is spelled differently by some include file, and the
compilation fails with pedantic GCC.
2006-11-23 01:06:42 +01:00
Jim Meyering
5272c6daa1 * announce-gen (print_news_deltas): Fix silly, but harmless typo:
change "(:?..." to "(?:..." in regexps.
2006-11-22 16:16:05 +01:00
Jim Meyering
e750c5cac8 Post-release version change.
* NEWS: Add a line for 6.7-pre.
* configure.ac (AC_INIT): Bump to 6.7 and add "-pre" suffix.
2006-11-22 16:15:02 +01:00
Jim Meyering
92210636da .prev-version: Record previous version: 6.6. 2006-11-22 12:52:34 +01:00
Jim Meyering
46710dd82a Version 6.6.
* NEWS: Record release date.  Remove "-pre" suffix.
* configure.ac (AC_INIT): Remove "-pre" suffix from version string.
2006-11-22 12:40:57 +01:00
Jim Meyering
efab0d7989 * Makefile.maint (announcement): Don't use now-removed
--release-archive-directory=... option.
2006-11-22 12:38:16 +01:00
Jim Meyering
659e5f5edc * announce-gen: Remove unused --release-archive-directory option.
(print_news_deltas): Accept new adjective, "Noteworthy", in addition
to the old "Major".
Match version numbers in NEWS using tighter regular expressions.
(main): Require the --gpg-key-id=ID option.
2006-11-22 12:35:02 +01:00
Jim Meyering
b076de8551 * NEWS: Mention the three noteworthy changes, all fixed via gnulib. 2006-11-22 10:14:15 +01:00
Jim Meyering
7719e67e36 * .cvsignore, .gitignore: Add fstat.c. 2006-11-22 10:10:30 +01:00
Jim Meyering
d66091126a * tests/rm/one-file-system: Upon setup failure (e.g., mount failure),
skip the test rather than failing.  Reported by Michael Deutschmann.
2006-11-21 09:32:55 +01:00
Jim Meyering
41b5fe3246 * tests/rm/fail-eperm: Use the "(exit N); exit N" idiom,
rather than just "exit N".
2006-11-21 09:03:27 +01:00
Jim Meyering
e9a8c140da Arrange for "make check-root" to run the new root-only test.
* tests/Makefile.am (t7): New target, to run tests/ls/nameless-uid.
(all_t): Add t7.
2006-11-21 00:37:03 +01:00
Jim Meyering
279c41d79c Add a root-only test for today's lib/idcache.c fix.
* tests/ls/nameless-uid: New file.
* tests/ls/Makefile.am (TESTS): Add nameless-uid.
(TESTS_ENVIRONMENT): Add PERL to the list.
2006-11-20 11:31:05 +01:00
Jim Meyering
81ebd46046 * tests/tail-2/assert-2: Mark as a very-expensive test, because I
find the 7-second sleep annoyingly long.  Besides, this test is
probably far too specific and timing sensitive ever to trigger again.
* tests/tail-2/assert: Likewise.
2006-11-19 23:19:06 +01:00
Jim Meyering
318fb0502d Post-release version change.
* NEWS: Add a line for 6.6-pre.
* configure.ac (AC_INIT): Bump to 6.6 and add "-pre" suffix.
2006-11-19 19:44:23 +01:00
Jim Meyering
ad2a81ce8b .prev-version: Record previous version: 6.5. 2006-11-19 14:10:48 +01:00
Jim Meyering
497a5cf465 Version 6.5.
* NEWS: Record release date.  Remove "-cvs" suffix.
* configure.ac (AC_INIT): Remove "-cvs" suffix from version string.
2006-11-19 10:58:55 +01:00
Jim Meyering
1efc5bda6c "ln --backup f f" now produces a sensible diagnostic 2006-11-18 20:19:16 +01:00
Jim Meyering
0cafba44bb "ln --backup f f" produces a misleading diagnostic:
ln: creating hard link `f' => `f': No such file or directory
* src/ln.c (do_link): Give a better diagnostic in this unusual case.
(do_link): Rename local: s/lstat_ok/dest_lstat_ok/.
* tests/ln/Makefile.am (TESTS): Add hard-backup.
* tests/ln/hard-backup: New test for the above.
2006-11-18 20:00:39 +01:00
Paul Eggert
1a0333565f * bootstrap.conf (gnulib_modules): Add sys_stat, since we use it directly too.
* lib/.cvsignore, lib/.gitignore: Add root-dev-ino.c, root-dev-ino.h.
* m4/.cvsignore, m4/.gitignore: Add root-dev-ino.m4.
* src/ls.c (DIRED_FPUTS_LITERAL, PUSH_CURRENT_DIRED_POS):
Omit unnecessary parenthesization of args.
* src/od.c (EQUAL_BLOCKS): Likewise.
* src/system.h (STREQ, ASSIGN_STRDUPA): Likewise.
2006-11-16 19:51:23 +01:00
Jim Meyering
a73fdeb2ce * tests/tail-2/append-only: If chattr +a fails, exit 77 (to tell
automake we're skipping this test), and give a diagnostic to tell
the user the same thing.  Reported by Mike Grayson.
2006-11-16 10:05:36 +01:00
Jim Meyering
751f6acf54 change log date to be today's 2006-11-16 09:58:49 +01:00
Ralf Wildenhues
8b139ff78c Arrange to install manpages only for tools that are installed.
* man/Makefile.am (dist_man_MANS): Replace all optional manpages
with `$(MAN)', computed at configure time; also, list them ...
(optional_mans): ... in this new variable.
(max_aux, EXTRA_DIST): Ensure that we distribute all manpages.
2006-11-16 09:57:34 +01:00
Jim Meyering
b6b438c45d * src/csplit.c (load_buffer): Plug an inconsequential leak. 2006-11-16 09:16:08 +01:00
Jim Meyering
fc9b802e3d Help valgrind see that there is no leak in dd.c.
* src/dd.c (dd_copy): Declare real_buf and real_obuf to be static,
so we need not free them at all.  This is easier than freeing
both buffers at each of the early "return"s.
2006-11-16 09:15:47 +01:00
Jim Meyering
e189a79efd * .x-po-check: Exclude gl/ files. Otherwise, po-check would
complain that some of gl/lib/*.[ch] are not listed in POTFILES.in.
2006-11-15 10:37:02 +01:00
Jim Meyering
56206ccb80 * gl/m4/root-dev-ino.m4: Now that this is part of a real "module",
remove the now-unnecessary use of AC_LIBSOURCES.
2006-11-14 14:09:34 +01:00
Jim Meyering
3ef2f939f7 Adapt to new version of gnulib-tool.
* gl/modules/root-dev-ino: New file.
* lib/root-dev-ino.c, lib/root-dev-ino.h: Move these files ...
* gl/lib/root-dev-ino.c, gl/lib/root-dev-ino.h: ... to here.
* m4/root-dev-ino.m4: Move this file ...
* gl/m4/root-dev-ino.m4: ... to here.
* bootstrap.conf (gnulib_modules): Add root-dev-ino.
2006-11-14 14:02:18 +01:00
Jim Meyering
1b00a69ff2 * readlink-stub.c, lstat-stub.c: Remove now-unused files. 2006-11-14 09:38:32 +01:00
Jim Meyering
7932d2e2d4 * src/sort.c (insertkey): Use xmemdup, rather than xmalloc+assignment.
From Paul Eggert.
2006-11-13 19:15:43 +01:00
Jim Meyering
2061f04847 Plug another technically-unimportant leak in sort.
* src/sort.c (main): Don't allocate memory for each new key here.
(insertkey): Allocate memory for each key here, instead.
(key_init): Rename from new_key.  Don't allocate.
2006-11-13 15:19:22 +01:00
Jim Meyering
d5d00c7f9f * src/sort.c (main): Plug a tiny memory leak.
Move declaration of local "minus" down to be nearer point of use.
2006-11-13 15:06:15 +01:00
Jim Meyering
84268dae4e More automatically-added ignorables. 2006-11-12 22:45:14 +01:00
Jim Meyering
78a1d22aa0 * tests/du/Makefile.am (TESTS): Add inacc-dest. 2006-11-12 19:58:58 +01:00
Jim Meyering
597bfeb851 * NEWS: Mention this bug fix. 2006-11-12 19:13:32 +01:00
Jim Meyering
c24e93d926 du would exit early, when encountering an inaccessible directory
Reported by Mike Frysinger, in
http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/8831
* tests/du/inacc-dest: New test, based on an example from Mike Frysinger.
* tests/chgrp/no-x: Remove the "fts_read failed: ..."
diagnostic from the expected output when using native fdopendir.
* tests/chmod/no-x: Likewise.
* tests/du/no-x: Likewise.
2006-11-12 18:42:24 +01:00
Jim Meyering
75be540f7d * Makefile.maint (sc_cast_of_x_alloc_return_value): Add an exclusion
for xalloc.h itself.
2006-11-12 18:41:01 +01:00
Jim Meyering
28c7ef509e Avoid false-positive when testing via valgrind.
* tests/mv/atomic: Grep strace output for a more specific pattern
than just "unlink", since that got a false positive when testing
under valgrind: unlink("/tmp/valgrind_proc_9657_cmdline_A51E9991") = 0
* tests/mv/Makefile.am (TESTS_ENVIRONMENT): Define EGREP.
2006-11-12 08:22:46 +01:00
Jim Meyering
7c96936a04 update .cvsignore/.gitignore files 2006-10-30 09:10:56 +01:00
Jim Meyering
e24ce7c58d * Makefile.maint (patch-check): Make it easier to regenerate
the src/c99-to-c89.diff file.  E.g., I do this:
make patch-check REGEN_PATCH=1; ediff src/c99-to-c89.diff new-diff
2006-10-28 18:23:30 +02:00
Jim Meyering
876e46bce7 * src/c99-to-c89.diff: Update to reflect new offsets in rm.c. 2006-10-28 18:21:13 +02:00
Jim Meyering
a0db0def2d * coreutils.texi (wc invocation): When giving the order in which
the various "counts" are listed, also mention "maximum line length".
Prompted by a report from Vincent LeFevre.
2006-10-28 18:19:05 +02:00
Jim Meyering
0766fb8b54 * src/system.h (ftello): Add a compile-time check for the highly
unlikely condition of off_t narrower than long int, rather than
handling it at run time.  Based on a patch from Paul Eggert.
2006-10-26 15:16:41 +02:00
Jim Meyering
b40b5b6917 Avoid a shell bug in Tru64 4.0 sh's handling of double-quoted strings.
[patch by Paul Eggert]

* tests/chmod/c-option: When double-quoting part of a word, prefer
to double-quote the whole word.  This is a bit easier to read (at
least for me), and in some cases it avoids a shell bug with Tru64
4.0 sh reported by Nelson H. F. Beebe.  For example, instead of
"$abs_srcdir"/../setgid-check we now write
"$abs_srcdir/../setgid-check".

* tests/cp/cp-parents: Likewise.
* tests/du/inaccessible-cwd: Likewise.
* tests/du/long-from-unreadable: Likewise.
* tests/install/basic-1: Likewise.
* tests/install/trap: Likewise.
* tests/misc/close-stdout: Likewise.
* tests/mkdir/concurrent-1: Likewise.
* tests/mkdir/p-1: Likewise.
* tests/mkdir/p-3: Likewise.
* tests/mkdir/parents: Likewise.
* tests/mkdir/perm: Likewise.
* tests/readlink/can-e: Likewise.
* tests/readlink/can-f: Likewise.
* tests/readlink/can-m: Likewise.
* tests/rm/inaccessible: Likewise.
* tests/rm/unread3: Likewise.
* tests/touch/no-create-missing: Likewise.

* lib/.cvsignore: Add uinttostr.c.
2006-10-26 11:03:30 +02:00
Jim Meyering
95954ad583 Portability to Tru64 V4.0.
* src/system.h (ftello) [!HAVE_FSEEKO && !defined ftello]:
Define inline replacement function.
This (along with a yesterday's fix for autoconf's
_AC_SYS_LARGEFILE_MACRO_VALUE macro) makes it so coreutils
now builds once more on Tru64 V4.0.  Reported by Nelson Beebe.
2006-10-25 11:47:06 +02:00
Jim Meyering
e81a82b74f * src/cat.c (infile): Add "const" to declaration.
* src/csplit.c (prefix): Likewise.
* src/printf.c (cfcc_msg): Likewise.
* src/tail.c (valid_file_spec): Likewise.
* src/cut.c (cut_file): Likewise, for a parameter.
* src/expr.c (str_value): Likewise.
* src/fold.c (fold_file): Likewise.
* src/pr.c (init_header): Likewise.
* src/dircolors.c (dc_parse_stream): Likewise, for a local.
* src/tr.c (make_printable_str): Likewise.
* src/nl.c (body_type, header_type, footer_type, current_type):
(separator_str, build_type_arg, nl_file): Likewise, for many.
* src/paste.c (main): Don't assign a read-only string to 'optarg'.
* src/tac.c (separator, tac_seekable, copy_to_temp): Likewise.
2006-10-25 01:05:30 +02:00
Jim Meyering
3e9cc76189 * tests/sample-test: Update copyright year list to include only
the current year, since this is what I'll want in any new test.
2006-10-25 00:16:13 +02:00
Jim Meyering
693311a5c3 * src/c99-to-c89.diff: Update to reflect new offsets. 2006-10-25 00:14:51 +02:00
Jim Meyering
5e42576c01 new feature: rm accepts new option: --one-file-system
Suggested by Steve McIntyre in <http://bugs.debian.org/392925>.
* src/remove.h (struct rm_options) [one_file_system]: New member.
* src/rm.c (rm_option_init): Initialize it.
(usage): Document the option.
* src/mv.c (rm_option_init): Likewise.
* src/remove.c (remove_dir): With --one-file-system and --recursive,
for each directory command line argument, do not affect a file system
different from that of the starting directory.  And give a diagnostic.
* src/rm.c (ONE_FILE_SYSTEM): New enum.
(main): Handle new option.
* tests/rm/one-file-system: Test the above.
* tests/rm/Makefile.am (TESTS): Add one-file-system.
* tests/Makefile.am (check-root): Add the rm/one-file-system
test to the list.
(EXTRA_DIST): Add other-fs-tmpdir.

* tests/mv/setup: Removed.  Renamed to...
* tests/other-fs-tmpdir: ...this new file.
* tests/mv/Makefile.am (EXTRA_DIST): Remove setup.
* tests/mv/acl: Reflect renaming: use ../other-fs-tmpdir.
* tests/mv/backup-is-src: Likewise.
* tests/mv/hard-link-1: Likewise.
* tests/mv/leak-fd: Likewise.
* tests/mv/mv-special-1: Likewise.
* tests/mv/part-fail: Likewise.
* tests/mv/part-hardlink: Likewise.
* tests/mv/part-rename: Likewise.
* tests/mv/part-symlink: Likewise.
* tests/mv/partition-perm: Likewise.
* tests/mv/to-symlink: Likewise.
* tests/mv/into-self-2: Likewise.

[doc/ChangeLog]
* coreutils.texi (rm invocation): Describe --one-file-system.
2006-10-25 00:01:33 +02:00
Jim Meyering
ba6b1acefd Don't let a failure in one test stop "make -k".
* tests/Makefile.am (t1 t2 t3 t4 t5): New targets.
(check-root): Depend on them, rather than executing the five
commands in a single rule.  Reported by Greg Schafer.
2006-10-24 08:46:25 +02:00
Jim Meyering
a3c4e0b94c * Makefile.maint (alpha beta major): Use a better log message.
Suggested by Bob Proulx.
2006-10-23 18:51:29 +02:00
Jim Meyering
7e4eef7e40 * tests/misc/pwd-long: Whoops. Don't exec the perl script. Otherwise, the sh-trap-based
clean-up code isn't run.
2006-10-23 12:22:15 +02:00
Jim Meyering
a002111341 * tests/misc/pwd-long: Undo last change, since it made Perl invoke
pwd via a shell.  Instead, ensure that the absolute name of the
pwd binary consists solely of reasonable characters.
2006-10-23 11:52:48 +02:00
Jim Meyering
0fdbf2e8c7 * NEWS: Add a line for 6.5-cvs.
* configure.ac (AC_INIT): Bump to 6.5 and add "-cvs" suffix.
2006-10-23 07:59:04 +02:00
Jim Meyering
9b17e1d7d4 . 2006-10-22 23:55:14 +02:00
1072 changed files with 78885 additions and 51502 deletions

View File

@@ -1,13 +0,0 @@
*.cache
*.lineno
*.log
.kludge-stamp
ABOUT-NLS
INSTALL
Makefile
Makefile.in
THANKS-to-translators
aclocal.m4
config.status
configure
coreutils-*

9
.gitattributes vendored Normal file
View File

@@ -0,0 +1,9 @@
*.texi* diff=texinfo
# Put something like the following e.g., in your ~/.gitconfig file
# # Include proper "function name" string in diffs of texinfo.
# # Derived from the regexp in emacs' lisp/add-log.el.
# [diff "texinfo"]
# funcname = "^@node[ \t][ \t]*\\([^,][^,]*\\)"
gl/lib/*.diff -whitespace

187
.gitignore vendored
View File

@@ -1,39 +1,166 @@
*.1
*.I[12]
*.[EIOX]
*.gmo
*.bak
*.o
*.trs
*/.deps
*~
._bootmp
.gdb-history
.kludge-stamp
ABOUT-NLS
INSTALL
.version
/ABOUT-NLS
/ChangeLog
/GNUmakefile
/INSTALL
/THANKS-to-translators
/aclocal.m4
/autom4te.cache
/build-aux/.gitignore
/build-aux/compile
/build-aux/config.guess
/build-aux/config.rpath
/build-aux/config.sub
/build-aux/depcomp
/build-aux/install-sh
/build-aux/mdate-sh
/build-aux/missing
/build-aux/snippet/
/build-aux/test-driver
/build-aux/texinfo.tex
/build-aux/ylwrap
/config.cache
/config.log
/config.status
/configure
/coreutils-*.tar.gz
/coreutils-*.tar.gz.sig
/coreutils-*.tar.xz
/coreutils-*.tar.xz.sig
/gnulib-tests
/lib/.cvsignore
/lib/.gitignore
/lib/alloca.h
/lib/arg-nonnull.h
/lib/arpa
/lib/binary-io.h
/lib/c++defs.h
/lib/charset.alias
/lib/config.h
/lib/config.hin
/lib/configmake.h
/lib/ctype.h
/lib/dirent.h
/lib/fcntl.h
/lib/getopt.h
/lib/glthread
/lib/iconv.h
/lib/iconv_open-aix.h
/lib/iconv_open-hpux.h
/lib/iconv_open-irix.h
/lib/iconv_open-osf.h
/lib/iconv_open-solaris.h
/lib/inttypes.h
/lib/langinfo.h
/lib/libcoreutils.a
/lib/link-warning.h
/lib/locale.h
/lib/math.h
/lib/netdb.h
/lib/parse-datetime.c
/lib/printf.c
/lib/progname.c
/lib/progname.h
/lib/ref-add.sed
/lib/ref-del.sed
/lib/selinux
/lib/signal.h
/lib/stamp-h1
/lib/stdalign.h
/lib/stdio.h
/lib/stdlib.h
/lib/string.h
/lib/strings.h
/lib/sys/
/lib/termios.h
/lib/time.h
/lib/unistd.h
/lib/unistr
/lib/unistr.h
/lib/unitypes.h
/lib/uniwidth
/lib/uniwidth.h
/lib/unused-parameter.h
/lib/warn-on-use.h
/lib/wchar.h
/lib/wctype.h
/m4/.cvsignore
/m4/.gitignore
/m4/codeset.m4
/m4/fcntl-o.m4
/m4/gettext.m4
/m4/glibc2.m4
/m4/glibc21.m4
/m4/gnulib-cache.m4
/m4/iconv.m4
/m4/intdiv0.m4
/m4/intl.m4
/m4/intldir.m4
/m4/intlmacosx.m4
/m4/intmax.m4
/m4/inttypes-pri.m4
/m4/inttypes_h.m4
/m4/lcmessage.m4
/m4/lib-ld.m4
/m4/lib-link.m4
/m4/lib-prefix.m4
/m4/lock.m4
/m4/longlong.m4
/m4/nls.m4
/m4/po.m4
/m4/printf-posix.m4
/m4/progtest.m4
/m4/size_max.m4
/m4/stdint_h.m4
/m4/threadlib.m4
/m4/uintmax_t.m4
/m4/visibility.m4
/m4/wchar_t.m4
/m4/wint_t.m4
/m4/xsize.m4
/maint.mk
/man/*.1
/po/*.gmo
/po/*.po
/po/.gitignore
/po/.reference
/po/LINGUAS
/po/Makefile.in
/po/Makefile.in.in
/po/Makevars
/po/Makevars.template
/po/POTFILES
/po/Rules-quot
/po/boldquot.sed
/po/checksums
/po/coreutils.pot
/po/en@boldquot.header
/po/en@quot.header
/po/insert-header.sin
/po/quot.sed
/po/remove-potcdate.sed
/po/remove-potcdate.sin
/po/stamp-po
/src/version.c
/src/version.h
/stamp-h1
/tests/*/*.log
/tests/.built-programs
/tests/t?
/tests/test-suite.log
ID
Makefile
Makefile.in
TAGS
THANKS
THANKS-to-translators
aclocal.m4
autom4te.cache
config.cache
config.h
config.hin
config.log
config.status
configure
coreutils-*.tar.bz2
coreutils-*.tar.bz2.sig
coreutils-*.tar.gz
coreutils-*.tar.gz.sig
coreutils-*.xdelta
coreutils-*.xdelta.sig
stamp-h1
tests/cut/cut-tests
tests/head/head-tests
tests/join/join-tests
tests/pr/pr-tests
tests/sort/sort-tests
tests/tac/tac-tests
tests/tail/tail-tests
tests/test/test-tests
tests/tr/tr-tests
tests/uniq/uniq-tests
tests/wc/wc-tests

3
.gitmodules vendored Normal file
View File

@@ -0,0 +1,3 @@
[submodule "gnulib"]
path = gnulib
url = git://git.sv.gnu.org/gnulib.git

147
.hgignore
View File

@@ -1,147 +0,0 @@
.*/Makefile$
.*/Makefile\.in$
.*/\.deps/
.*\.1$
.*\.o$
.*~$
^Makefile$
^Makefile\.in$
^THANKS-to-translators$
^aclocal\.m4$
^autom4te\.cache/
^config\.h$
^config\.hin$
^config\.log$
^config\.status$
^configure$
^doc/constants\.texi$
^doc/coreutils\.info$
^doc/stamp-vti$
^doc/version\.texi$
^lib/alloca\.h$
^lib/charset\.alias$
^lib/getdate\.c$
^lib/libcoreutils\.a$
^lib/ref-add\.sed$
^lib/ref-del\.sed$
^lib/t-fpending$
^po/.*\.gmo$
^po/.*\.po$
^po/POTFILES$
^po/stamp-po$
^po/remove-potcdate.sed$
^src/\[$
^src/base64$
^src/basename$
^src/cat$
^src/chgrp$
^src/chmod$
^src/chown$
^src/chroot$
^src/cksum$
^src/comm$
^src/cp$
^src/csplit$
^src/cut$
^src/date$
^src/dd$
^src/df$
^src/dir$
^src/dircolors$
^src/dircolors\.h$
^src/dirname$
^src/du$
^src/echo$
^src/env$
^src/expand$
^src/expr$
^src/factor$
^src/false$
^src/fmt$
^src/fold$
^src/fs\.h$
^src/ginstall$
^src/groups$
^src/head$
^src/hostid$
^src/hostname$
^src/id$
^src/join$
^src/kill$
^src/link$
^src/ln$
^src/localedir\.h$
^src/logname$
^src/ls$
^src/md5sum$
^src/mkdir$
^src/mkfifo$
^src/mknod$
^src/mv$
^src/nice$
^src/nl$
^src/nohup$
^src/od$
^src/paste$
^src/pathchk$
^src/pinky$
^src/pr$
^src/printenv$
^src/printf$
^src/ptx$
^src/pwd$
^src/readlink$
^src/rm$
^src/rmdir$
^src/seq$
^src/setuidgid$
^src/sha1sum$
^src/sha224sum$
^src/sha256sum$
^src/sha384sum$
^src/sha512sum$
^src/shred$
^src/sleep$
^src/sort$
^src/split$
^src/stat$
^src/stty$
^src/su$
^src/sum$
^src/sync$
^src/tac$
^src/tail$
^src/tee$
^src/test$
^src/touch$
^src/tr$
^src/true$
^src/tsort$
^src/tty$
^src/uname$
^src/unexpand$
^src/uniq$
^src/unlink$
^src/uptime$
^src/users$
^src/vdir$
^src/wc$
^src/wheel-size\.h$
^src/wheel\.h$
^src/who$
^src/whoami$
^src/yes$
^stamp-h1$
^tests/.*\.I[12]$
^tests/.*\.[EIOX]$
^tests/cut/cut-tests$
^tests/head/head-tests$
^tests/join/join-tests$
^tests/pr/pr-tests$
^tests/sort/sort-tests$
^tests/tac/tac-tests$
^tests/tail/tail-tests$
^tests/test/test-tests$
^tests/tr/tr-tests$
^tests/uniq/uniq-tests$
^tests/wc/wc-tests$

33
.mailmap Normal file
View File

@@ -0,0 +1,33 @@
# Map git author names and email addresses to canonical/preferred form.
<jim@meyering.net> <meyering@iou.iou>
<jim@meyering.net> <meyering@redhat.com>
<jim@meyering.net> <meyering@rho.meyering.net>
<jim@meyering.net> <meyering@vm.meyering.net.localdomain>
Paul Eggert <eggert@cs.ucla.edu> <eggert@penguin.cs.ucla.edu>
Paul Eggert <eggert@cs.ucla.edu> <eggert@CS.UCLA.EDU>
<eggert@cs.ucla.edu> <eggert@twinsun.com>
# Evan's two changes listed my email address.
Evan Hunt <ethanol@armory.com> Evan Hunt <jim@meyering.net>
<P@draigBrady.com> <P@draigBrady.com (trivial change)>
Pádraig Brady <p@draigBrady.com> <P@draigBrady.com>
<chen.guo.0625@gmail.com> <chenguo4@yahoo.com>
<chen.guo.0625@gmail.com> <chenguo4@ucla.edu>
<schwab@linux-m68k.org> <schwab@suse.de>
<aurel32@debian.org> <aurelien@aurel32.net>
<bob@proulx.com> <rwp@fc.hp.com>
<bkorb@gnu.org> <bkorb@veritas.com>
<bruno@clisp.org> <haible@clisp.cons.org>
<eblake@redhat.com> <ebb9@byu.net>
<jrv@debian.org> <jrvz@comcast.net>
<dave.anglin@nrc.ca> <dave@hiauly1.hia.nrc.ca>
<psfales@alcatel-lucent.com> <psfales@lucent.com>
<karl@gnu.org> <karl@freefriends.org>
<stephane.raimbault@gmail.com> <stephane.raimbault@makina-corpus.com>
# Prefer spelled-out middle name and its address.
Arne Henrik Juul <arnej@imf.unit.no> Arne H. Juul <arnej@solan.unit.no>
# Had email as name.
Dan Jacobson <jidanni@jidanni.org> jidanni@jidanni.org <jidanni@jidanni.org>

View File

@@ -1 +1 @@
6.3
8.15

View File

@@ -1,10 +1,10 @@
# Suppress valgrind diagnostics we don't care about.
# Copyright (C) 2003, 2004, 2006 Free Software Foundation, Inc.
# Copyright (C) 2003-2012 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
@@ -13,9 +13,7 @@
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
{
libc_dl_open
@@ -77,3 +75,26 @@
fun:strlen
fun:fillin_rpath
}
{
libc-getpwuid-leak
Memcheck:Leak
fun:malloc
fun:nss_parse_service_list
fun:__nss_database_lookup
obj:*
obj:*
fun:getpwuid_r@@GLIBC_2.2.5
fun:getpwuid
fun:getuser
fun:format_user_width
fun:gobble_file
fun:main
}
{
utimensat-NULL
Memcheck:Param
utimensat(filename)
fun:futimens
fun:gl_futimens
fun:main
}

View File

@@ -1,3 +0,0 @@
ChangeLog(-[0-9]+)?$
^old/
^src/c99-to-c98\.diff$

View File

@@ -1,7 +0,0 @@
ChangeLog
Makefile.maint
NEWS
config-log
po/
src/df.c
src/stat.c

View File

@@ -1,6 +0,0 @@
ChangeLog*
Makefile.maint
config.hin
configure
m4/jm-macros.m4
src/system.h

View File

@@ -1,8 +0,0 @@
^configure$
ChangeLog
^lib/mktime\.c$
^lib/getloadavg\.c$
^lib/euidaccess\.c$
^lib/euidaccess-stat\.c$
^lib/group-member\.c$
^Makefile\.maint$

View File

@@ -1,28 +0,0 @@
^lib/at-func\.c$
^lib/bcopy\.c$
^lib/buffer-lcm\.c$
^lib/c-strtold\.c$
^lib/fnmatch_loop\.c$
^lib/full-read\.c$
^lib/imaxtostr\.c$
^lib/mempcpy\.c$
^lib/memset\.c$
^lib/offtostr\.c$
^lib/regcomp\.c$
^lib/regex_internal\.c$
^lib/regexec\.c$
^lib/safe-write\.c$
^lib/strtoll\.c$
^lib/strtoul\.c$
^lib/strtoull\.c$
^lib/strtoumax\.c$
^lib/umaxtostr\.c$
^lib/xstrtold\.c$
^lib/xstrtoul\.c$
^src/false\.c$
^src/lbracket\.c$
^src/ls-dir\.c$
^src/ls-ls\.c$
^src/ls-vdir\.c$
^src/rand-isaac\.c$
^src/tac-pipe\.c$

View File

@@ -1,11 +0,0 @@
config(ure|\.(guess|sub))
tests/pr
lib/regex.c
config-log
tests/misc/nl
po/de.po
m4/lib-ld.m4
m4/lib-prefix.m4
m4/po.m4
aclocal.m4
src/c99-to-c89.diff

View File

@@ -1,2 +0,0 @@
config-log
build-aux/config.guess

View File

@@ -1 +0,0 @@
^tests/pr/

View File

@@ -1,2 +0,0 @@
^lib/xstrtol\.h$
^build-aux/cvsu$

View File

@@ -1,12 +0,0 @@
^build-aux/config.guess
^configure
^lib/alloca.c
^lib/fts.c
^lib/getdate.c
^lib/getloadavg.c
^lib/gettext.h
^lib/getusershell.c
^lib/mbswidth.c
^lib/strtod.c
^lib/xstrtol.c
^m4/

47
AUTHORS
View File

@@ -1,35 +1,37 @@
Here are the names of the programs in this package,
each followed by the name(s) of its author(s).
arch: David MacKenzie, Karel Zak
base64: Simon Josefsson
basename: FIXME unknown
cat: Torbjorn Granlund, Richard M. Stallman
basename: David MacKenzie
cat: Torbjörn Granlund, Richard M. Stallman
chcon: Russell Coker, Jim Meyering
chgrp: David MacKenzie, Jim Meyering
chmod: David MacKenzie, Jim Meyering
chown: David MacKenzie, Jim Meyering
chroot: Roland McGrath
cksum: Q. Frank Xia
comm: Richard Stallman, David MacKenzie
cp: Torbjorn Granlund, David MacKenzie, Jim Meyering
comm: Richard M. Stallman, David MacKenzie
cp: Torbjörn Granlund, David MacKenzie, Jim Meyering
csplit: Stuart Kemp, David MacKenzie
cut: David Ihnat, David MacKenzie, Jim Meyering
cut: David M. Ihnat, David MacKenzie, Jim Meyering
date: David MacKenzie
dd: Paul Rubin, David MacKenzie, Stuart Kemp
df: Torbjorn Granlund, David MacKenzie, Paul Eggert
dir: Richard Stallman, David MacKenzie
df: Torbjörn Granlund, David MacKenzie, Paul Eggert
dir: Richard M. Stallman, David MacKenzie
dircolors: H. Peter Anvin
dirname: David MacKenzie, Jim Meyering
du: Torbjorn Granlund, David MacKenzie, Paul Eggert, Jim Meyering
echo: FIXME unknown
du: Torbjörn Granlund, David MacKenzie, Paul Eggert, Jim Meyering
echo: Brian Fox, Chet Ramey
env: Richard Mlynarik, David MacKenzie
expand: David MacKenzie
expr: Mike Parker
expr: Mike Parker, James Youngman, Paul Eggert
factor: Paul Rubin
false: Jim Meyering
fmt: Ross Paterson
fold: David MacKenzie
ginstall: David MacKenzie
groups: David MacKenzie
groups: David MacKenzie, James Youngman
head: David MacKenzie, Jim Meyering
hostid: Jim Meyering
hostname: Jim Meyering
@@ -39,15 +41,17 @@ kill: Paul Eggert
link: Michael Stone
ln: Mike Parker, David MacKenzie
logname: FIXME: unknown
ls: Richard Stallman, David MacKenzie
ls: Richard M. Stallman, David MacKenzie
md5sum: Ulrich Drepper, Scott Miller, David Madore
mkdir: David MacKenzie
mkfifo: David MacKenzie
mknod: David MacKenzie
mktemp: Jim Meyering, Eric Blake
mv: Mike Parker, David MacKenzie, Jim Meyering
nice: David MacKenzie
nl: Scott Bartram, David MacKenzie
nohup: Jim Meyering
nproc: Giuseppe Scrivano
od: Jim Meyering
paste: David M. Ihnat, David MacKenzie
pathchk: Paul Eggert, David MacKenzie, Jim Meyering
@@ -55,11 +59,13 @@ pinky: Joseph Arceneaux, David MacKenzie, Kaveh Ghazi
pr: Pete TerMaat, Roland Huebner
printenv: David MacKenzie, Richard Mlynarik
printf: David MacKenzie
ptx: F. Pinard
ptx: François Pinard
pwd: Jim Meyering
readlink: Dmitry V. Levin
rm: Paul Rubin, David MacKenzie, Richard Stallman, Jim Meyering
realpath: Pádraig Brady
rm: Paul Rubin, David MacKenzie, Richard M. Stallman, Jim Meyering
rmdir: David MacKenzie
runcon: Russell Coker
seq: Ulrich Drepper
sha1sum: Ulrich Drepper, Scott Miller, David Madore
sha224sum: Ulrich Drepper, Scott Miller, David Madore
@@ -70,8 +76,9 @@ shred: Colin Plumb
shuf: Paul Eggert
sleep: Jim Meyering, Paul Eggert
sort: Mike Haertel, Paul Eggert
split: Torbjorn Granlund, Richard M. Stallman
split: Torbjörn Granlund, Richard M. Stallman
stat: Michael Meskes
stdbuf: Pádraig Brady
stty: David MacKenzie
su: David MacKenzie
sum: Kayvan Aghaiepour, David MacKenzie
@@ -80,19 +87,25 @@ tac: Jay Lepreau, David MacKenzie
tail: Paul Rubin, David MacKenzie, Ian Lance Taylor, Jim Meyering
tee: Mike Parker, Richard M. Stallman, David MacKenzie
test: Kevin Braunsdorf, Matthew Bradburn
timeout: Pádraig Brady
touch: Paul Rubin, Arnold Robbins, Jim Kingdon, David MacKenzie, Randy Smith
tr: Jim Meyering
true: Jim Meyering
truncate: Pádraig Brady
tsort: Mark Kettenis
tty: David MacKenzie
uname: David MacKenzie
unexpand: David MacKenzie
uniq: Richard Stallman, David MacKenzie
uniq: Richard M. Stallman, David MacKenzie
unlink: Michael Stone
uptime: Joseph Arceneaux, David MacKenzie, Kaveh Ghazi
users: Joseph Arceneaux, David MacKenzie
vdir: Richard Stallman, David MacKenzie
vdir: Richard M. Stallman, David MacKenzie
wc: Paul Rubin, David MacKenzie
who: Joseph Arceneaux, David MacKenzie, Michael Stone
whoami: Richard Mlynarik
yes: David MacKenzie
;; Local Variables:
;; coding: utf-8
;; End:

841
COPYING
View File

@@ -1,285 +1,626 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
TERMS AND CONDITIONS
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
0. Definitions.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
"This License" refers to version 3 of the GNU General Public License.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
A "covered work" means either the unmodified Program or a work based
on the Program.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
1. Source Code.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
The Corresponding Source for a work in source code form is that
same work.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
2. Basic Permissions.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
13. Use with the GNU Affero General Public License.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
14. Revised Versions of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
NO WARRANTY
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
15. Disclaimer of Warranty.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
END OF TERMS AND CONDITIONS
16. Limitation of Liability.
How to Apply These Terms to Your New Programs
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
@@ -287,15 +628,15 @@ free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
@@ -303,37 +644,31 @@ the "copyright" line and a pointer to where the full notice is found.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.

View File

@@ -1,3 +1,608 @@
2005-12-27 Jim Meyering <jim@meyering.net>
* Makefile.maint (sc_obsolete_symbols): Prohibit use of O_NDELAY.
(sc_prohibit_assert_without_use): New rule.
(syntax-check-rules): Add it to the list.
* .x-sc_prohibit_assert_without_use: New empty file.
* Makefile.am (EXTRA_DIST): Add it.
* Makefile.maint (CVS_LIST): Define in terms of $(srcdir).
* cp.c, df.c, link.c, mknod.c, nice.c, sleep.c, unlink.c:
Don't include <assert.h>; it wasn't used.
2005-12-26 Paul Eggert <eggert@cs.ucla.edu>
* src/chown-core.c (restricted_chown):
Don't try O_WRONLY unless O_RDONLY failed wth EACCES.
* src/remove.c (fd_to_subdirp): Open with O_DIRECTORY | O_NOCTTY
| O_NOFOLLOW too, for consistency with other dir-openers.
Use POSIX-preferred O_NONBLOCK rather than O_NDELAY.
(is_empty_dir): Likewise.
* src/shred.c (wipename): Likewise. Don't bother trying to open
dir for writing, since POSIX prohibits it.
2005-12-22 Jim Meyering <jim@meyering.net>
* tests/help-version: Redirect stderr to /dev/full, to suppress
write error diagnostic.
2005-12-19 Jim Meyering <jim@meyering.net>
* src/mkdir.c, src/mknod.c, src/mkfifo.c (main)
Avoid a minor race condition when `-m MODE' is specified, by using
open, fchown, and close rather than just chown. To do that reliably --
even with an overly restrictive umask -- ensure that each mkdir,
mknod and mkfifo call uses a mode including at least owner-read access.
* src/mknod.c (main): When `-m MODE' is specified, exit nonzero if
the subsequent chown (or equivalent open,fchown,close) fails.
* tests/misc/mknod: New tests.
* tests/misc/Makefile.am (TESTS): Add mknod.
2005-12-17 Jim Meyering <jim@meyering.net>
* src/remove.c (is_empty_dir): Open with O_NDELAY, so we don't hang,
e.g., on a named pipe.
(OPEN_NO_FOLLOW_SYMLINK): Remove definition. Use O_NOFOLLOW in
place of all uses, since it is guaranteed (system.h) to be defined.
2005-12-05 Andreas Gruenbacher <agruen@suse.de>
Add POSIX ACL support
* src/ls.c: Switch back from HAVE_ACL to USE_ACL: The acl() syscall
is no requirement for ACL support; particularly, it does not exist
on systems that have POSIX ACLs.
* src/copy.h (cp_option_init) [umask_kill]: Remove member.
* src/cp.c (umask_kill): With default acls, the umask is not to be
applied. Remove umask_kill, don't change the process umask, and let
the kernel apply the umask where appropriate.
* src/cp.c (make_dir_parents_private): Fix logic for POSIX ACLs.
* src/copy.c (get_dest_mode): Remove; it is obsolete after removing
umask_kill.
(copy_reg, copy_internal): Use copy_acl and set_acl
instead of fchown/chown. Fix the logic for POSIX ACLs.
(chown_succeded): Remove; we now always copy acls and
preserve S_ISUID, S_ISGID, and S_ISVTX when needed, no matter if we
did a chown before or not.
* src/mv.c, src/install.c (cp_option_init): Don't set umask_kill member.
* src/Makefile.am (dir_LDADD, ls_LDADD, vdir_LDADD, cp_LDADD,
mv_LDADD, ginstall_LDADD): On systems with an ACL library, arrange
to link with it via $(LIB_ACL), for the utilities that need it.
2005-12-16 Paul Eggert <eggert@cs.ucla.edu>
* src/remove.c (OPENAT_CWD_RESTORE__REQUIRE): Remove.
(OPENAT_CWD_RESTORE__ALLOW_FAILURE): Likewise.
(fd_to_subdirp): Remove openat_cwd_restore_allow_failure arg; its
value is now signified by whether cwd_errno is null.
(fd_to_subdirp, remove_dir, rm_1); Change cwd failure indicator from
pointer-to-bool to pointer-to-errno-value. All callers changed.
(rm_1): Don't bother setting a local cwd failure flag and then
ORing it into the caller's. Just set the caller's.
(rm): Use cwd failure errno value to print a slightly-better
diagnostic.
2005-12-15 Jim Meyering <jim@meyering.net>
* src/stat.c (print_it): Properly handle a backslash at the
end of a --printf format string. Reported by Paul Eggert.
* tests/misc/stat-printf (end-bs): Add a test for the above.
2005-12-15 Paul Eggert <eggert@cs.ucla.edu>
* tests/acl: Port to pre-POSIX shells like Solaris 8 /bin/sh.
Don't assume /etc/passwd contains user names; use 'id' instead.
2005-12-15 Jim Meyering <jim@meyering.net>
stat: revert behavior of --format=FMT (-c)
stat: add new option: --printf=FMT
* NEWS: Mention this.
* src/stat.c (isodigit, octtobin, hextobin): Define.
(PRINTF_OPTION): Define.
(interpret_backslash_escapes, trailing_delim): New globals.
(usage): Document them. Alphabetize on long option names.
(print_esc_char): New function.
(print_it): Rewrite, in order to handle backslash escapes.
(main): Handle new option. Set globals for --format, too.
* tests/misc/stat-printf: Test --printf and --format.
* tests/misc/Makefile.am (TESTS): Add stat-printf.
2005-12-14 Paul Eggert <eggert@cs.ucla.edu>
* NEWS: sort now reports incompatible options.
* src/sort.c (incompatible_options, check_ordering_compatibility):
New functions.
(main): Use them. Don't bother with a usage message for
"sort -c a b", for consistency with other error diagnostics.
* tests/sort/Test.pm (incompat1, incompat2, incompat3, incompat4):
New tests.
* src/cat.c (main): Undo previous change. close_stdout already
does the check, so the previous change wasn't necessary.
2005-12-13 Paul Eggert <eggert@cs.ucla.edu>
* src/cat.c (main): Check for close (STDOUT_FILENO) failure.
2005-12-12 Paul Eggert <eggert@cs.ucla.edu>
Install a more-conservative approach for sort -R. It's the
same basic idea as the existing code, except it uses the full ISAAC
approach (called the "more kosher" approach in the existing comments).
This makes "sort -R" quite a bit slower (about a factor of 2 on my
little tests involving 10000 lines on a 2.4 GHz P4), but I think it's
better to be conservative here at first, and review any performance
improvements carefully.
* .x-sc_require_config_h: Add src/rand-isaac.c.
* src/rand-isaac.h: Remove. All uses now simply include rand-isaac.c.
* src/Makefile.am (noinst_HEADERS): Remove rand-isaac.h.
(shred_SOURCES, sort_SOURCES): Remove.
(EXTRA_DIST): Add rand-isaac.c.
* src/rand-isaac.c: Revert to what used to be in shred.c, without
changing it to allow for varying numbers of words in the state.
Alter so that we include rand-isaac.c directly rather than
compiling it and linking to it. Don't include config.h or
system.h; that's the includer's responsibility.
Omit functions that are specific to shred.
(ISAAC_LOG, ISAAC_WORDS, ISAAC_BYTES, struct isaac_state, ind):
(isaac_step, struct irand_state):
Resurrect these, with the same defns that used to be in shred.c.
(ISAAC_SIZE, isaac_new, isaac_copy): Remove.
(isaac_refill, isaac_seed_start, isaac_seed_data, irand_init, irand32):
static again.
(struct isaac_state, isaac_refill, isaac_mix, isaac_init):
(isaac_seed_start, isaac_seed_data, isaac_seed_finish, isaac_seed):
(irand_init, irand32, irand_mod):
Number of words is constant again.
(struct irand_state, irand_init, irand32, irand_mod): Move to shred.c.
* src/shred.c: Include rand-isaac.c rather than rand-isaac.h.
* src/sort.c: Likewise.
* src/shred.c (fillrand, dopass, main): Undo previous change.
(struct irand_state, irand_init, irand32, irand_mod): Moved back here,
from rand-isaac.c.
* src/sort.c: Don't include md5.h; it wasn't needed.
(struct keyfield): Rename random_hash to random, for consistency
with the other member names. All uses changed.
(usage): Tweak wording to mention STRING for --seed option.
(short_options): Rorder for consistency with other programs.
(rand_state): Now a struct, not a pointer to one. All uses changed.
(HASH_WORDS, HASH_SIZE): Remove.
(get_hash): Remove comments around resbuf size, since we can assume C89.
Use a "more-kosher" (but slower) approach of invoking isaac_refill.
(keycompare): Adjust to the new get_hash.
Add a FIXME.
(badfieldspec): Omit recently-introduced comment; it isn't needed.
(main): Don't set need_random simply because gkey has it set; that
doesn't necessarily mean we'll need random numbers.
Redo seeding to match new get_hash approach.
2005-12-10 Jim Meyering <jim@meyering.net>
* src/Makefile.am (noinst_HEADERS): Add rand-isaac.h.
Avoid shred segfault on 64-bit systems.
* src/rand-isaac.c (isaac_refill): Don't try to negate a
local of type uint32_t. Make the local an `int' instead.
* NEWS: Mention sort's new options.
* src/rand-isaac.c (isaac_mix): Declare to be static.
Mark all other functions as `extern' so the tight-scope
part of `make distcheck' passes once again.
* src/rand-isaac.h (isaac_mix): Remove declaration.
* src/sort.c (get_hash): Change position of `*' in parameter
type to conform with convention.
(main): Split a long line so it fits in 80 columns.
(keycompare): Remove stray SPACE before TAB that was
causing `make distcheck' to fail.
* src/shred.c: Don't include gethrxtime.h. No longer needed.
* tests/misc/sort-rand: New file: basic tests for the new options.
* tests/misc/Makefile.am (TESTS): Add sort-rand.
2005-12-10 Frederik Eaton <frederik@ofb.net>
* src/Makefile.am (sort_LDADD): Add $(LIB_GETHRXTIME).
(shred_SOURCES, sort_SOURCES): New macros, so we compile rand-isaac.c.
* src/rand-isaac.c: New file, containing ISAAC code that was in shred.c.
Make state size runtime-configurable.
(isaac_new, isaac_copy): New functions.
* src/rand-isaac.h: New file.
* src/shred.c: Include rand-isaac.h. Move ISAAC code to rand-isaac.c.
(fillrand, main): Adjust to the fact that the state size is now
runtime-configurable.
* src/sort.c (short_options, long_options, WORDS, keycompare, main):
(usage): Add options --random-sort and --seed to implement a random
shuffle.
Include md5.h and rand-isaac.h.
(get_hash): New function.
(rand_state): New var.
(HASH_WORDS, HASH_SIZE): New macros.
2005-12-09 Paul Eggert <eggert@cs.ucla.edu>
* tests/dd/misc: Add test for dd iflags=noatime.
2005-12-09 Jim Meyering <jim@meyering.net>
* src/sort.c (usage): Mention white space vs -b and -t options.
From The Wanderer.
2005-12-09 Eric Blake <ebb9@byu.net>
* src/test.c (main): Fix misleading comment.
2005-12-07 Paul Eggert <eggert@cs.ucla.edu>
* NEWS: Mention dd's new noatime flag.
* src/system.h (O_NOATIME): Define to 0 if not already defined.
* src/dd.c (flags, usage): Add support for noatime flag.
2005-12-07 Jim Meyering <jim@meyering.net>
Distribute the cvsu script, used only by `make syntax-check'.
* Makefile.am (EXTRA_DIST): Add build-aux/cvsu.
* Makefile.maint (CVS_LIST): Use build-aux/cvsu, now that we
distribute a copy of this script.
* .x-sc_unmarked_diagnostics: Add build-aux/cvsu.
* tests/mv/acl: exit-77 before the trap, not after, if we fail
to create a temporary directory on another partition.
From Andreas Gruenbacher.
2005-12-06 Tomas Pospisek <tpo@sourcepole.ch> (tiny change)
* man/basename.x: Cross-reference to dirname and readlink.
* man/dirname.x: Cross-reference to basename and readlink.
2005-12-05 Andreas Gruenbacher
* src/copy.c [!HAVE_FCHOWN]: Define fchown(...) to -1.
(set_owner, preserve_author): New functions, factored out of copy_reg.
(copy_reg): Use them.
(copy_internal): Use them here, too.
2005-12-04 Jim Meyering <jim@meyering.net>
* src/sleep.c (usage): Say what happens with two or more arguments.
Suggested by Justin Pryzby.
* src/uptime.c (print_uptime): Move decl of `upsecs' into scope
where it's used.
2005-12-03 Jim Meyering <jim@meyering.net>
* src/rm.c (long_opts): Change the name of each undocumented, for-
testing-only option to start with `-', so that it cannot render
ambiguous any prefix it happens to share with some other option name.
Problem reported by Eric Blake.
* src/head.c (long_options): Likewise.
* src/tail.c (long_options): Likewise.
* tests/misc/head-elide-tail: Update uses of undocumented, for-
testing-only --presume* options to start with `---'.
* tests/rm/dangling-symlink: Likewise.
* tests/rm/dir-no-w: Likewise.
* tests/rm/isatty: Likewise.
2005-11-30 Jim Meyering <jim@meyering.net>
* Makefile.maint: Add a comment about cvsu.
2005-11-25 Paul Eggert <eggert@cs.ucla.edu>
* NEWS: df updates for "none", "proc", inaccessible file systems.
* src/df.c (show_point): Ignore inaccessible file systems.
(usage): -a includes dummy file systems, not size-0 file systems.
* src/od.c (unsigned_long_long_int): Renamed from ulonglong_t,
to avoid collision with POSIX name space. All uses changed.
2005-11-24 Jim Meyering <jim@meyering.net>
* tests/Makefile.am (EXTRA_DIST): Add acl to the list.
* tests/acl: Add `$0: ' prefix to diagnostics.
* .x-sc_require_config_h: Add lib/buffer-lcm.c to the list.
2005-11-23 Paul Eggert <eggert@cs.ucla.edu>
* src/copy.c: Improve performance a bit by optimizing away
unnecessary system calls and going to a block size of at least
8192 (on normal hosts, anyway). This improved performance 5% on my
Debian stable host (2.4.27 kernel, x86, copying from root
ext3 file system to itself).
Include "buffer-lcm.h".
(copy_reg): Omit last argument. All callers changed.
Use xmalloc to allocate rather than trusting alloca
(which is unwise with large block sizes).
Declare locals more locally, if possible.
Use uintptr_t words instead of int words, for a bit more speed
when looking for null blocks on 64-bit hosts.
Optimize away reads of zero bytes on regular files.
In the typical case, insist on 8 KiB buffers, at least.
Avoid unnecessary extra call to fstat when checking for sparse files.
Avoid now-unnecessary cast to off_t, and "0L".
Avoid unnecessary test of *new_dst when checking for same owner
and group.
2005-11-22 Paul Eggert <eggert@cs.ucla.edu>
* src/remove.c (rm): Don't assume C99 for-loop syntax.
2005-11-22 Jim Meyering <jim@meyering.net>
* src/remove.c (AD_push): Remove debugging cruft.
* tests/rm/unread2 (rm): Change expected diagnostic,
`cannot open directory' to `cannot remove', to align with
new version of rm.
* tests/rm/rm2: Ensure that rm now continues removing entries
even after certain types of failure.
* src/remove.c: Rewrite. Now, this module is reentrant on systems
that provide openat (Solaris), and on systems like Linux+procfs
where our openat emulation code is reentrant. This also fixes a
few low-probability leaks and eliminates some code that could,
in very unusual circumstances, cause rm() (via a callee) to exit.
* NEWS: Mention this.
* configure.ac: Put copyright dates all on one line so the
emacs function that updates them works properly.
2005-11-18 Paul Eggert <eggert@cs.ucla.edu>
* configure.ac (AM_PROG_CC_C_O): Add. Needed for CVS Automake.
Problem reported by Eric Blake.
(AC_PROG_CC_STDC): Use this instead of AC_PROG_CC, so that
we get a standard-conforming compiler. This relies on the new
m4/c.m4 file. Note that it's a bit tricky, since c.m4 doesn't
define AC_PROG_CC_STDC; we are relying on Autoconf 2.59 internals.
m4/c.m4 can go away with Autoconf 2.60 comes out.
2005-11-17 Jim Meyering <jim@meyering.net>
* src/remove.c (AD_mark_helper): Make a `char *' parameter `const'.
(AD_mark_current_as_unremovable): Likewise, but for a local.
(rm_1): Likewise.
* tests/mv/acl: Let traps handle removing temporary directories.
Expect acl-related tests to fail, until the corresponding
patches are committed.
* tests/mv/Makefile.am (XFAIL_TESTS): Add acl.
* tests/cp/Makefile.am (XFAIL_TESTS): Likewise.
ACL tests, from Andreas Gruenbacher.
* tests/acl, tests/mv/acl, tests/cp/acl: New files.
* tests/mv/Makefile.am (TESTS): Add acl.
* tests/cp/Makefile.am (TESTS): Add acl.
* src/ls.c (basename_is_dot_or_dotdot): Correct wording in comment.
2005-11-16 Paul Eggert <eggert@cs.ucla.edu>
* NEWS: Improve quality of ln's diagnostics.
* src/ln.c (do_link, usage): Likewise.
(do_link): Don't use alloca on a buffer of unbounded size.
2005-11-16 Jim Meyering <jim@meyering.net>
* tests/cp/fail-perm: Accommodate HPUX. It appears to fail
with EACCES rather than EPERM. Reported by Peter O'Gorman here:
http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/5766
This also affects AIX 4.3.3, according to Ralf Wildenhues, in
http://lists.gnu.org/archive/html/bug-coreutils/2006-05/msg00192.html
2005-11-14 Jim Meyering <jim@meyering.net>
* NEWS (sort): Mention consequences of today's mkstemp-safer.c fix.
2005-11-13 Jim Meyering <jim@meyering.net>
* announce-gen: Accept new option, --gpg-key-id=ID and
emit a blurb telling how to use the .sig files.
* Makefile.cfg (gpg_key_ID): Define.
* Makefile.maint (announcement): Use new option and key.
Require that most .c files include <config.h>.
* Makefile.maint (sc_require_config_h): New rule.
(syntax-check-rules): Add it.
* .x-sc_require_config_h: New file listing exceptions to the
above rule. Some are legit, others are simply grandfathered in.
* Makefile.am (EXTRA_DIST): Add .x-sc_require_config_h here, too.
2005-11-12 Jim Meyering <jim@meyering.net>
* src/checksum.h, src/md5.c, src/sha1sum.c: Remove now-unused files.
2005-11-11 Jim Meyering <jim@meyering.net>
* NEWS: Mention `readlink -f' bug fix in 5.3.0 news.
Mention new readlink options in 5.3.0's `New features' section.
Spotted by Thomas Hood.
2005-11-08 Jim Meyering <jim@meyering.net>
* NEWS: Merge in changes from b5_9x branch.
2005-11-08 Paul Eggert <eggert@cs.ucla.edu>
* NEWS: ls now defaults to --time-style='locale', which in turn acts
like --time-style='posix-long-iso' if the locale settings are messed up.
* src/ls.c (decode_switches): Implement this.
2005-11-08 Jim Meyering <jim@meyering.net>
* tests/du/2g: s/expensive/very expensive/ in a comment.
From Paul Townsend.
2005-10-17 Eric Blake <ebb9@byu.net>
* src/ls.c (usage): Fix descriptions of --sort, --time.
Reported by Vitaly A. Ostanin.
2005-11-04 Paul Eggert <eggert@cs.ucla.edu>
* src/ln.c: Include filenamecat.c.
(FILE_BASENAME_CONCAT): Remove.
(do_link): Remove last arg DEST_IS_DIR. All callers changed.
(main): Use file_name_concat, base_name, and strip_trailing_slashes
instead of FILE_BASENAME_CONCAT. This simplifies the code, and avoids
the use of alloca.
2005-11-04 Jim Meyering <jim@meyering.net>
* src/du.c (process_file): Don't overflow for files of size >= 2^31
on systems with stat.st_blocks of a signed 32-bit type.
This bug causes trouble on some AIX 5.1 systems.
Report and trivial patch from Paul Townsend:
<http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00033.html>
* NEWS: Mention this.
* tests/du/2g: New (very-expensive) test for the above-fixed bug.
* tests/du/Makefile.am (TESTS): Add it here.
* tests/very-expensive: New file.
* tests/Makefile.am (EXTRA_DIST): Add it here.
* tests/cp/perm: Mark this test as `very-expensive', too.
2005-11-02 Paul Eggert <eggert@cs.ucla.edu>
* NEWS: Mention that rm -d and maybe ln -d are scheduled for
removal in 2006.
* src/remove.h (struct rm_options): Remove unlink_dirs. All uses
removed.
* src/rm.c (usage): Don't mention rm -d.
2005-11-02 Jim Meyering <jim@meyering.net>
* tests/dd/skip-seek: Fix typo in comment: s/fileutils/coreutils.
From Andreas Schwab.
* tests/dd/unblock-sync: Redirect stderr to /dev/null so the
`M+N records in/out' lines don't pollute `make check' output.
* tests/dd/skip-seek (sk-seek4): New test, to exercise the bug
fixed on 2005-10-31. This test uses the new, IN_PIPE specifier.
* tests/Coreutils.pm: Accept a new type of input specifier: IN_PIPE,
to indicate that the input file should be piped into the command
under test (via `cat FILE | $prog ...').
* src/remove.c (remove_entry): Emit a better diagnostic when rm
(without -r) fails to remove a directory on a non-Linux system.
This change affects only newer Solaris systems (with priv_*
functions like priv_allocset). Reported by Keith Thompson.
* tests/rm/dir-nonrecur: New file/test for the above fix.
* tests/rm/Makefile.am (TESTS): Add dir-nonrecur.
2005-11-01 Paul Eggert <eggert@cs.ucla.edu>
* NEWS: "tail -c 2 FILE" and "touch 0101000000" now operate as
POSIX 1002.1-2001 requires.
* src/tail.c (parse_obsolete_option): Implement this.
Problem reported by Vincent Lefevre.
* src/touch.c (main): Pass PDS_PRE_2000 to posixtime.
* tests/tail/Test.pm (c-2, c-2-minus, c2, c2-minus): New tests.
(test_vector): Add special cases for _POSIX2_VERSION, and
regularize the old ones a bit.
* tests/touch/obsolescent: Add y2000 test.
2005-10-31 Paul Eggert <eggert@cs.ucla.edu>
* src/dd.c (skip): Fix off-by-one error reported by
Theodoros V. Kalamatianos.
2005-10-30 Paul Eggert <eggert@cs.ucla.edu>
* tests/mkdir/p-3: Require that the test be run as non-root.
Problem and trivial fix reported by Theodoros V. Kalamatianos.
2005-10-28 Paul Eggert <eggert@cs.ucla.edu>
* src/ln.c (FILE_BASENAME_CONCAT): Omit unnecessary slashes in the
boundary between DEST and SOURCE in the result.
2005-10-26 Dmitry V. Levin <ldv@altlinux.org>
* src/md5sum.c (main) [!O_BINARY]: Changed default read mode
back to text, to sync with documentation and for backwards
compatibility.
2005-10-25 Jim Meyering <jim@meyering.net>
* tests/dircolors/simple (other-wr): Add an explicit test for
the dircolors bug (NULL-dereference) fixed yesterday.
2005-10-24 Jim Meyering <jim@meyering.net>
* src/tac.c (tac_file): When determining whether a file is seekable,
also test whether it is a tty. Using only the lseek-based test would
give a false positive on Solaris. Reported by Peter Fales.
2005-10-24 Dmitry V. Levin <ldv@altlinux.org>
* tests/install/d-slashdot: New test, for "install -d" failure.
* tests/install/Makefile.am (TESTS): Add d-slashdot.
* tests/mkdir/p-slashdot: New test, for "mkdir -p" failure.
* tests/mkdir/Makefile.am (TESTS): Add p-slashdot.
2005-10-24 Jim Meyering <jim@meyering.net>
* src/dircolors.c (ls_codes): Add missing comma.
Anonymous report and patch from
http://savannah.gnu.org/bugs/?func=detailitem&item_id=14849
* src/dircolors.c: Add compile-time assertion that the slack_codes
and ls_codes arrays have the same number of elements. This would
have prevented the above-fixed bug.
* src/expand.c (parse_tab_stops): Add a comment to make this function
identical to the one in unexpand.c.
* src/unexpand.c (parse_tab_stops): Adjust syntax to make this function
identical to the one in expand.c.
* src/expand.c (next_file): Don't assume fopen cannot return stdin.
2005-10-23 Jim Meyering <jim@meyering.net>
* src/md5sum.c (digest_check, main): Use ptr_align rather than
a dangerous pointer-value-to-`unsigned' cast.
* NEWS: mention the new sha* programs.
* AUTHORS: Add new sha* programs.
2005-08-28 David Madore <david.madore@ens.fr>
Add new programs: sha224sum, sha256sum, sha384sum, sha512sum.
* README: Add their names to the list.
* src/md5sum.c: Provide framework for computing sha-2 hashes.
* src/Makefile.am (sha224sum, sha256sum, sha384sum, sha512sum):
Rules for compiling sha-2 utilities
(noinst_HEADERS): Remove checksum.h.
* man/sha512sum.x, man/sha384sum.x, man/sha256sum.x, man/sha224sum.x:
New files.
* man/Makefile.am (dist_man_MANS): Add the corresponding .1 names.
(sha224sum.1, sha256sum.1, sha384sum.1, sha512sum.1): New dependencies.
* tests/misc/sha224sum, tests/misc/sha256sum: New files.
* tests/misc/sha384sum, tests/misc/sha512sum: New files.
* tests/misc/Makefile.am (TESTS): Add new sha224sum, sha256sum,
sha384sum, sha512sum test scripts here rather that each in its
own directory.
2005-08-28 David Madore <david.madore@ens.fr>
* tests/sha1sum/basic-1 (million-a): Add the "million a's" test (one
of the FIPS test vectors).
2005-10-23 Jim Meyering <jim@meyering.net>
* configure.ac: Use 6.0-cvs as the version string.
* NEWS: Adjust accordingly.
2005-10-22 Jim Meyering <jim@meyering.net>
* Version 5.92.
@@ -8481,7 +9086,7 @@
split's --verbose option did nothing [broken in 4.5.10 and 5.0]
* src/split.c (longopts): Use `1', not `0' as the value for
for &verbose. Reported by Keith Thompson.
&verbose. Reported by Keith Thompson.
Test for the above fix.
* tests/misc/split-a: Also use --verbose and compare stderr
@@ -11004,7 +11609,7 @@
-----
Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Copyright (C) 2002-2012 Free Software Foundation, Inc.
Copying and distribution of this file, with or without
modification, are permitted provided the copyright notice

File diff suppressed because it is too large Load Diff

4022
ChangeLog-2007 Normal file

File diff suppressed because it is too large Load Diff

379
ChangeLog-2008 Normal file
View File

@@ -0,0 +1,379 @@
2008-12-16 Jim Meyering <meyering@redhat.com>
NB: ChangeLog files are no longer manually maintained.
See HACKING for details.
2008-02-07 Jim Meyering <meyering@redhat.com>
We *do* need two different version files.
One for tarball-only, the other to be updated any time we
get a new value of $(VERSION).
* Makefile.am (dist-hook): Create .tarball-version in dist tarball.
* GNUmakefile (_curr-ver): Make git-version-gen use it.
* .gitignore: Ignore it.
Fix a typo in description of size suffixes: s/GB/G/.
* doc/coreutils.texi (od invocation, head invocation, tail invocation):
Spotted by Bert Wesarg.
* NEWS [6.9.90]: Mention the added feature that head, od, split and
tail now accept the standard size suffixes (kB, M, MB, G, GB, and
so on for T, P, Y, Z, and Y) on arguments to selected options.
2008-02-06 Steven Schubiger <schubiger@gmail.com>
mkdir, split: write --verbose output to stdout, not stderr.
* src/mkdir.c (verbose_output): New function.
(announce_mkdir): Use it.
* src/split.c (usage): Update.
* src/split.c (cwrite): Write to stdout, not stderr.
* doc/coreutils.texi (split invocation): Remove the mention
of --verbose output being printed to stderr.
* tests/mkdir/p-v: Redirect stdout, not stderr.
* tests/misc/split-a: Likewise.
* NEWS: Mention this change.
* TODO: Remove this item.
2008-02-04 Jim Meyering <meyering@redhat.com>
* Makefile.maint (announcement): Remove stale comment.
2008-02-02 Jim Meyering <meyering@redhat.com>
Clarify a comment.
* tests/sort/Test.pm: Replace a vague ChangeLog reference with a URL.
2008-01-31 Bob Proulx <bob@proulx.com>
Improve wording of date and time man page.
* man/date.x: Improve compact description of the --date=STRING.
* man/touch.x: Likewise.
Suggested by A. Costa.
2008-01-31 Jim Meyering <meyering@redhat.com>
Remove alignment constraint from the sha*_read_ctx functions.
* lib/sha256.c (set_uint32): New function.
(sha256_read_ctx, sha224_read_ctx): Use it.
* lib/sha512.c (set_uint64): New function.
(sha512_read_ctx, sha384_read_ctx): Use it.
* lib/sha256.h: Remove warning about alignment constraint.
* lib/sha512.h: Likewise.
Prompted by similar changes in gnulib's sha1 and md[45] modules.
Adapt to new version of vc-list-files.
* tests/check.mk (vc_exe_in_TESTS): Adapt to new constraint
that vc-list-files be run only from $(top_srcdir).
Pull vc-list-files from gnulib.
* bootstrap.conf (gnulib_modules): Add vc-list-files.
* build-aux/vc-list-files: Remove file.
Improve the cp/parent-perm test.
* tests/cp/parent-perm: Also check that perms of existing dest
dirs are changed to match those of corresponding src dir
2008-01-30 Paul Eggert <eggert@cs.ucla.edu>
Don't modify argv in dd due to ',' in arguments.
* src/dd.c: Include quotearg.h.
(operand_matches): New function.
(parse_symbols, operand_is): Use it.
(parse_symbols): 1st arg is now const pointer. Don't modify it.
msgid arg is now just the message, not a format.
(scanargs): Add some 'const's to check for problems like the above.
2008-01-30 Jim Meyering <meyering@redhat.com>
* src/c99-to-c89.diff: Adjust remove.c offsets, again.
Now that system.h defines is_empty_dir, include "openat.h".
* src/system.h: Include "openat.h" here, ...
* src/chcon.c: ... not here.
* src/chmod.c: Likewise.
* src/chown-core.c: Likewise.
* src/remove.c: Likewise.
* src/c99-to-c89.diff: Adjust remove.c offsets.
Improve "rmdir --ignore-fail-on-non-empty"
* src/rmdir.c (remove_parents, main): With --ignore-fail-on-non-empty,
suppress a diagnostic also for other errno values, which can arise
with read-only media or when the parent directory has the immutable
attribute (set via chattr +i).
(errno_may_be_empty, ignorable_failure): New functions.
* src/remove.c (is_empty_dir): Move function to ...
* src/system.h (is_empty_dir): ...here, and make it inline.
Suggested by Josselin Mouette in <http://bugs.debian.org/350541>
via Bob Proulx.
* NEWS: Mention the improvement.
2008-01-29 Paul Eggert <eggert@cs.ucla.edu>
Don't modify argv in dd.
* src/dd.c (operand_is): New function.
(scanargs): Use it so that we don't need to modify argv, as a nicety.
Problem reported by Adam Goode in
<http://lists.gnu.org/archive/html/bug-coreutils/2008-01/msg00264.html>.
2008-01-29 Jim Meyering <meyering@redhat.com>
* Makefile.am (BUILT_SOURCES): Ensure that .version exists.
Reported by Bob Proulx.
2008-01-29 Bob Proulx <bob@proulx.com>
Improve the man pages of --date=STRING for 'date' and 'touch'.
* man/date.x: Add a compact description of the --date=STRING.
* man/touch.x: Likewise.
Reported by A. Costa in http://bugs.debian.org/363011
2008-01-29 Michael Stone <mstone@debian.org>
Improve the description of when dd outputs its final statistics.
* doc/coreutils.texi (dd invocation): Say that dd prints stats
upon normal termination and upon SIGINT.
2008-01-29 Jim Meyering <meyering@redhat.com>
Avoid "make distcheck" failure: newly-created man/*.1 files not removed
* Makefile.am (EXTRA_DIST): Add .version.
(.version): New rule.
(dist-hook): Don't create $(distdir)/.version here, now that it's
being distributed.
* man/Makefile.am (common_dep): Use ../.version, not ../VERSION.
(../VERSION): Remove rule.
* GNUmakefile (dummy): Create .version, not VERSION.
Add an extra "...:= $(shell..." statement to ensure that
.version exists even when the preceding code is not run.
* .gitignore: Remove both .version and VERSION.
ls: don't segfault on files in /proc with an old libselinux
* src/ls.c (gobble_file): Work around a bug in libselinux1-2.0.15
whereby getfilecon returns 0 yet sets the context to NULL.
Reported by Jan Moringen via Michael Stone in
http://bugs.debian.org/463043
* tests/ls/Makefile.am (TESTS): Add proc-selinux-segfault.
* tests/ls/proc-selinux-segfault: Test for the above fix.
* NEWS: Mention the fix.
2008-01-26 Jim Meyering <meyering@redhat.com>
Work around Darwin9's set-GID-like group ownership inheritance.
This avoids another spurious Mac OS 10.5.1 (Darwin 9.1) test failure.
* tests/cp/preserve-gid: Accept a group ID of 0, as well.
Reported by Elias Pipping.
Emit "info coreutils 'PROG invocation'" into the man page,
rather than just "info PROG". The latter would often fail
or simply display the man page.
* man/help2man: Change the template.
Prompted by http://bugs.debian.org/399684
chcon: correct description of --no-dereference (-h) option.
* src/chcon.c (usage): Remove invalid reference to lchown.
Reported by Göran Uddeborg.
Ensure that each version string change propagates to man pages.
* man/Makefile.am (common_dep): Don't depend on configure.ac for
version changes. Instead, depend on ../VERSION.
(../VERSION): New rule.
* Makefile.am (DISTCLEANFILES): Define.
* GNUmakefile: Update ./VERSION.
* .gitignore: List VERSION.
Reported by Sven Joachim.
Avoid cp/preserve-gid test failure on Mac OS 10.5.1 (Darwin 9.1)
* tests/cp/preserve-gid: Set group as well as owner on ".".
Reported by Elias Pipping.
Improve a warning about non-portable "mv" usage.
* doc/coreutils.texi (mv invocation): Adjust the warning: moving a
dir-symlink-specified-with-a-trailing-slash works in a surprising
manner only on some systems. Reported by Tomas Pospisek in
http://bugs.debian.org/343652.
2008-01-26 Mike Frysinger <vapier@gentoo.org>
* src/dircolors.hin (TERM): Add jfbterm.
2008-01-23 Jim Meyering <meyering@redhat.com>
Clean up build-related rules.
* Makefile.cfg (gnulib_dir): Update comment.
* Makefile.maint (announcement) [cl_date, utc_date]: Don't set
now-unused variables.
* TODO: Update the note on getgrouplist.
2008-01-23 Zvi Har'El <rl@math.technion.ac.il>
Add a ";", so "make install" works with --enable-install-program=su.
* src/Makefile.am (install_su): Add a semicolon. (tiny change)
2008-01-23 Jim Meyering <meyering@redhat.com>
Avoid misinterpreting mgetgroups failure in running root-only tests.
* src/setuidgid.c (main): Don't misinterpret as size_t an error
return from mgetgroups. Reported by Theodoros V. Kalamatianos.
* README: Remove/convert a few stray mentions of CVS.
2008-01-22 Jim Meyering <meyering@redhat.com>
Require automake-1.10.1, for its support of dist-lzma.
* configure.ac (AM_INIT_AUTOMAKE): Require 1.10.1.
Version 6.10.
* NEWS: Record release date.
* README-hacking: Update to reflect existence of automake-1.10.1.
2008-01-18 Jim Meyering <meyering@redhat.com>
Update README.
* README: Remove a note about failing tests on SunOS 4.
On Mac OS 10.5.1 (Darwin 9.1), you'll need --disable-acl.
(Running tests as root): Recommend using "check-root", not "check".
2008-01-17 Jim Meyering <meyering@redhat.com>
Do not define-away __attribute__ when __STRICT_ANSI__ is set.
* src/system.h (__attribute__): Remove the __STRICT_ANSI__ disjunct.
It has been unnecessary since approximately gcc-2.6, and now, leaving
it would cause gcc -Werror -ansi to fail to compile csplit.c.
* gl/lib/randread.c (__attribute__): Likewise.
2008-01-16 Jim Meyering <meyering@redhat.com>
* NEWS: Mention the configure.ac fix.
* TODO: Add an introduction.
Remove a few entries. Update a few others.
2008-01-13 Jim Meyering <meyering@redhat.com>
Remove each output redirection target before writing to it.
* tests/check.mk (vc_exe_in_TESTS): Remove t1 and t2 _first_,
in case they exist beforehand and are not writable.
* build-aux/check.mk (am__check_pre): Likewise, remove $@-t.
2008-01-13 Elias Pipping <pipping@gentoo.org>
* configure.ac: Correct a non-portable use of sed.
2008-01-12 Mike Frysinger <vapier@gentoo.org>
* src/dircolors.hin (image formats): Add the .svg suffix.
2008-01-12 Jim Meyering <meyering@redhat.com>
Use new version of announce-gen.
* Makefile.maint (announcement): Remove use of the
--gnulib-snapshot-time-stamp option.
Use new --gnulib-version option instead.
(gnulib-version): New variable.
2008-01-11 Jim Meyering <meyering@redhat.com>
* Version 6.9.92.
* tests/tr/Test.pm: Prefer en_US.ISO-8859-1 to en_US.iso88591.
Suggestions from James Youngman and Pádraig Brady in
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12218/focus=12227
2008-01-10 Jim Meyering <meyering@redhat.com>
* README-hacking: Add Git to the list of required tools.
2008-01-08 Paul Eggert <eggert@cs.ucla.edu>
Fix a minor race condition when using cp -p --parents.
* src/cp.c (make_dir_parents_private): If stat fails on the parent
directory, do not add it to the list of directories whose modes
might need fixing later. Also, do not bother invoking 'stat'
unless the stat results might be needed later.
2008-01-08 Jim Meyering <meyering@redhat.com>
parent-perm: avoid a bizarre test failure.
* tests/cp/parent-perm: Accommodate the situation in which
chmod ("dir", 02755) returns 0 yet fails to set the S_ISGID bit.
Remove uses of now-undefined Makefile variable.
* src/Makefile.am (dir_LDADD, ls_LDADD, vdir_LDADD): Remove uses
of no-longer-defined variable, $(LIB_ACL_TRIVIAL).
2008-01-07 Jim Meyering <meyering@redhat.com>
cp (but not copy.c): plug a small leak.
* src/cp.c (do_copy) [--parents]: Free the attribute list.
Make a racy test failure less likely to happen.
* tests/misc/tty-eof: Uncomment a debug "warn".
This change happens to make this test far less likely to fail.
With that statement commented out, this test would fail about
20% of the time on my desktop. Now, it's gone 100 iterations
in a row with no failure.
* NEWS: Mention the cp bug fix.
2008-01-07 Jan Blunck <jblunck@suse.de>
cp --parents: don't use uninitialized memory when restoring permissions
* src/cp.c (make_dir_parents_private): Always stat each source
directory, in case its permissions are required in re_protect,
when setting permissions of a just-created destination directory.
2008-01-07 Jim Meyering <meyering@redhat.com>
cp: add a test for today's bug fix.
* tests/cp/parent-perm: New script. Test today's change.
Based on reproducer from Jan Blunck.
* tests/cp/Makefile.am (TESTS): Add parent-perm.
2008-01-06 Jim Meyering <meyering@redhat.com>
touch: add a test for today's change.
* tests/touch/now-owned-by-other: New script. Test today's change.
* tests/touch/Makefile.am (TESTS): Add now-owned-by-other.
* tests/Makefile.am (all_t): Add td, a new root-only test.
(td): New target.
* NEWS: Mention the improvement.
2008-01-06 Paul Eggert <eggert@cs.ucla.edu>
touch: ignore "-d now" option, when appropriate
* src/touch.c (main): Treat "-d now" as if it were absent, if
neither -a nor -m is specified. Problem reported by Dan Jacobson in:
http://lists.gnu.org/archive/html/bug-coreutils/2008-01/msg00010.html
2008-01-05 Jim Meyering <meyering@redhat.com>
Avoid tr case-conversion failure in some locales.
* src/tr.c (skip_construct): New function.
(main): When processing a pair of case-converting classes, don't
iterate through the elements of each [:upper:] or [:lower:] class.
Reported by Gerald Pfeifer in
<http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12218>.
* tests/tr/Test.pm [tolower-F]: New test for the above fix.
[upcase-xtra, dncase-xtra]: New tests, for a related code path.
* NEWS: Mention the tr bug fix.
2008-01-02 Jim Meyering <jim@meyering.net>
* .gitignore: Ignore lzma-compressed files, too.
Update copyright date.
* tests/sample-test: Likewise.
* doc/coreutils.texi: Likewise.
-----
Copyright (C) 2008-2012 Free Software Foundation, Inc.
Copying and distribution of this file, with or without
modification, are permitted provided the copyright notice
and this notice are preserved.

View File

@@ -1,58 +0,0 @@
# Having a separate GNUmakefile lets me `include' the dynamically
# generated rules created via Makefile.maint as well as Makefile.maint itself.
# This makefile is used only if you run GNU Make.
# It is necessary if you want to build targets usually of interest
# only to the maintainer.
# Copyright (C) 2001, 2003, 2006 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
# Systems where /bin/sh is not the default shell need this. The $(shell)
# command below won't work with e.g. stock DOS/Windows shells.
ifeq ($(wildcard /bin/s[h]),/bin/sh)
SHELL = /bin/sh
else
# will be used only with the next shell-test line, then overwritten
# by a configured-in value
SHELL = sh
endif
have-Makefile := $(shell test -f Makefile && echo yes)
# If the user runs GNU make but has not yet run ./configure,
# give them a diagnostic.
ifeq ($(have-Makefile),yes)
# Make tar archive easier to reproduce.
export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner
include Makefile
include $(srcdir)/Makefile.cfg
include $(srcdir)/Makefile.maint
else
all:
@echo There seems to be no Makefile in this directory. 1>&2
@echo "You must run ./configure before running \`make'." 1>&2
@exit 1
endif
# Tell version 3.79 and up of GNU make to not build goals in this
# directory in parallel. This is necessary in case someone tries to
# build multiple targets on one command line.
.NOTPARALLEL:

613
HACKING Normal file
View File

@@ -0,0 +1,613 @@
Coreutils Contribution Guidelines
Prerequisites
=============
You will need the "git" version control tools.
On Fedora-based systems, do "yum install git".
On Debian-based ones install the "git-core" package.
Then run "git --version". If that says it's older than
version 1.4.4, then you'd do well to get a newer version.
At worst, just download the latest stable release from
http://git.or.cz/ and build from source.
For details on building the programs in this package, see
the file, README-hacking.
Use the latest upstream sources
===============================
Base any changes you make on the latest upstream sources.
You can get a copy of the latest with this command:
git clone git://git.sv.gnu.org/coreutils
That downloads the entire repository, including revision control history
dating back to 1991. The repository (the part you download, and which
resides in coreutils/.git) currently weighs in at about 30MB. So you
don't want to download it more often than necessary. Once downloaded,
you can get incremental updates by running one of these commands from
inside your new coreutils/ directory:
If you have made *no* changes:
git pull
If you *have* made changes and mistakenly committed them to "master",
do the following to put your changes on a private branch, "br", and
to restore master to its unmodified (relative-to-upstream) state:
git checkout -b br
git checkout master
git reset --hard origin
Then "git pull" should work.
*Before* you commit changes
===========================
In this project, we much prefer patches that automatically record
authorship. That is important not just to give credit where due, but
also from a legal standpoint (see below). To create author-annotated
patches with git, you must first tell git who you are. That information
is best recorded in your ~/.gitconfig file. Edit that file, creating
it if needed, and put your name and email address in place of these
example values:
[user]
name = Joe X. User
email = joe.user@example.com
Your first commit: the quick and dirty way
==========================================
First of all, realize that to "commit" a change in git is a purely
local operation. It affects only the local repository (the .git/ dir)
in your current coreutils/ hierarchy.
To try this out, modify a file or two. If you create a new file, you'll
need to tell git about it with "git add new-file.c". Commit all changes
with "git commit -a". That prompts you for a log message, which should
include a one-line summary, a blank line, and ChangeLog-style entries
for all affected files. More on that below.
Once your change is committed, you can create a proper patch that includes
a log message and authorship information as well as any permissions
changes. Use this command to save that single, most-recent change set:
git format-patch --stdout -1 > DIFF
The trouble with this approach is that you've just checked in a change
(remember, it's only local) on the "master" branch, and that's where new
changes would normally appear when you pull the latest from "upstream".
When you "pull" from a remote repository to get the latest, your local
changes on "master" may well induce conflicts. For this reason, you
may want to keep "master" free of any local changes, so that you can
use it to track unadulterated upstream sources.
However, if your cloned directory is for a one-shot patch submission and
you're going to remove it right afterwards, then this approach is fine.
Otherwise, for a more sustainable (and more generally useful, IMHO)
process, read on about "topic" branches.
Make your changes on a private "topic" branch
=============================================
So you checked out coreutils like this:
git clone git://git.sv.gnu.org/coreutils
Now, cd into the coreutils/ directory and run:
git checkout -b my-topic
That creates the my-topic branch and puts you on it.
To see which branch you're on, type "git branch".
Right after the clone, you were on "master" (aka the trunk).
To get back to the trunk, do this:
git checkout master
Note 1:
Be careful to run "git pull" only when on the "master" branch,
not when on a branch. With newer versions of git, you can't cause
trouble if you forget, so this is a good reason to ensure you're
using 1.5.3.1 or newer.
Note 2:
It's best not to try to switch from one branch to another if
you have pending (uncommitted) changes. Sometimes it works,
sometimes the checkout will fail, telling you that your local
modifications conflict with changes required to switch branches.
However, in any case, you will *not* lose your uncommitted changes.
Anyhow, get back onto your just-created branch:
git checkout my-topic
Now, modify some file and commit it:
git commit some-file.c
Personally, no matter what package I'm working on, I find it useful to
put the ChangeLog entries *only* in the commit log, initially, unless
I plan to commit/push right away. Otherwise, I tend to get unnecessary
merge conflicts with each rebase (see below). In coreutils, I've gone
a step further, and no longer maintain an explicit ChangeLog file in
version control. Instead, in a git working directory, you can view
ChangeLog information via "git log". However, each distribution tarball
does include a ChangeLog file that is automatically generated from the
git logs.
So, you've committed a change. But it's only in your local repository,
and only on your "my-topic" branch. Let's say you wait a day, and
then see that someone else changed something and pushed it to the
public repository. Now, you want to update your trunk and "rebase"
your changes on the branch so that they are once again relative to the
tip of the trunk. Currently, your branch is attached to the trunk at
the next-to-last change set.
First: update the trunk from the public repo:
[you've first made sure that "git diff" produces no output]
git checkout master
git pull
Now, return to your branch, and "rebase" relative to trunk (master):
git checkout my-topic
git rebase master
If there are no conflicts, this requires no more work from you.
However, let's say there was one in ChangeLog, since you didn't
follow my advice and modified it anyway.
git rebase will tell you there was a conflict and in which
file, and instruct you to resolve it and then resume with
"git rebase --continue" once that's done.
So you resolve as usual, by editing ChangeLog (which has the
usual conflict markers), then type "git rebase --continue".
That will fail, with a diagnostic telling you to mark
the file as "conflict resolved" by doing this:
git add ChangeLog
Then, finally, you can proceed (possibly onto more conflict resolution,
if there are conflicts in other files):
git rebase --continue
Once it finishes, your changes on the branch are now relative to
the tip of the trunk.
Now use git format-patch, as above.
Amending the most recent change on your private branch
======================================================
Let's say you've just committed a change on your private
branch, and then realize that something about it is not right.
It's easy to adjust:
edit your files # this can include running "git add NEW" or "git rm BAD"
git commit --amend -a
git format-patch --stdout -1 > your-branch.diff
That replaces the most recent change-set with the revised one.
Coreutils-specific:
No more ChangeLog files
=======================
Do not modify any of the ChangeLog files in coreutils. Starting in
2008, the policy changed. Before, we would insert the exact same text
(or worse, sometimes slightly differing) into both the ChangeLog file
and the commit log. Now we put that information only in the commit log,
and generate the top-level ChangeLog file from logs at "make dist" time.
As such, there are strict requirements on the form of the commit log
messages.
Commit log requirements
=======================
Your commit log should always start with a one-line summary, the second
line should be blank, and the remaining lines are usually ChangeLog-style
entries for all affected files. However, it's fine -- even recommended --
to write a few lines of prose describing the change, when the summary
and ChangeLog entries don't give enough of the big picture. Omit the
leading TABs that you're used to seeing in a "real" ChangeLog file, but
keep the maximum line length at 72 or smaller, so that the generated
ChangeLog lines, each with its leading TAB, will not exceed 80 columns.
As for the ChangeLog-style content, please follow these guidelines:
http://www.gnu.org/software/guile/changelogs/guile-changelogs_3.html
Try to make the summary line fit one of the following forms:
program_name: change-description
prog1, prog2: change-description
doc: change-description
tests: change-description
build: change-description
maint: change-description
Curly braces: use judiciously
=============================
Omit the curly braces around an "if", "while", "for" etc. body only when
that body occupies a single line. In every other case we require the braces.
This ensures that it is trivially easy to identify a single-*statement* loop:
each has only one *line* in its body.
Omitting braces with a single-line body is fine:
while (expr)
single_line_stmt ();
However, the moment your loop/if/else body extends onto a second line,
for whatever reason (even if it's just an added comment), then you should
add braces. Otherwise, it would be too easy to insert a statement just
before that comment (without adding braces), thinking it is already a
multi-statement loop:
while (true)
/* comment... */ // BAD: multi-line body without braces
single_line_stmt ();
Do this instead:
while (true)
{ /* Always put braces around a multi-line body. */
/* explanation... */
single_line_stmt ();
}
There is one exception: when the second body line is not at the same
indentation level as the first body line.
if (expr)
error (0, 0, _("a diagnostic that would make this line"
" extend past the 80-column limit"));
It is safe to omit the braces in the code above, since the
further-indented second body line makes it obvious that this is still
a single-statement body.
To reiterate, don't do this:
if (expr)
while (expr_2) // BAD: multi-line body without braces
{
...
}
Do this, instead:
if (expr)
{
while (expr_2)
{
...
}
}
However, there is one exception in the other direction, when even a
one-line block should have braces. That occurs when that one-line,
brace-less block is an "else" block, and the corresponding "then" block
*does* use braces. In that case, either put braces around the "else"
block, or negate the "if"-condition and swap the bodies, putting the
one-line block first and making the longer, multi-line block be the
"else" block.
if (expr)
{
...
...
}
else
x = y; // BAD: braceless "else" with braced "then"
This is preferred, especially when the multi-line body is more than a
few lines long, because it is easier to read and grasp the semantics of
an if-then-else block when the simpler block occurs first, rather than
after the more involved block:
if (!expr)
x = y; /* more readable */
else
{
...
...
}
If you'd rather not negate the condition, then add braces:
if (expr)
{
...
...
}
else
{
x = y;
}
Use SPACE-only indentation in all[*] files
==========================================
We use space-only indentation in nearly all files.
If you use Emacs and your coreutils working directory name matches,
this code enables the right mode:
;; In coreutils, indent with spaces everywhere (not TABs).
;; Exceptions: Makefile and ChangeLog modes.
(add-hook 'find-file-hook '(lambda ()
(if (and buffer-file-name
(string-match "/coreutils\\>" (buffer-file-name))
(not (string-equal mode-name "Change Log"))
(not (string-equal mode-name "Makefile")))
(setq indent-tabs-mode nil))))
If you use vim (7+ compiled with autocommands), and coreutils working
directory name also matches, add the following in ~/.vimrc:
" Set GNU style indentation, spaces instead of TABs
function! CoreutilsIndent()
" Check if 'coreutils' is part of the current working directory
if match(getcwd(), "coreutils") > 0
" The next 3 lines below set the GNU indentation
setlocal cinoptions=>4,n-2,{2,^-2,:2,=2,g0,h2,p5,t0,+2,(0,u0,w1,m1
setlocal shiftwidth=2
setlocal tabstop=8
" Coreutils specific, expand TABs with spaces
setlocal expandtab
endif
endfunction
autocmd BufEnter *.c,*.h call CoreutilsIndent()
[*] Makefile and ChangeLog files are exempt, of course.
Send patches to the address listed in --help output
===================================================
Please follow the guidelines in the "Sending your patches." section of
git's own SubmittingPatches:
http://git.kernel.org/?p=git/git.git;a=blob;f=Documentation/SubmittingPatches
Add documentation
=================
If you add a feature or change some user-visible aspect of a program,
document it. If you add an option, document it both in --help output
(i.e., in the usage function that generates the --help output) and in
doc/*.texi. The man pages are generated from --help output, so
you shouldn't need to change anything under man/. User-visible changes
are usually documented in NEWS, too.
When writing prose (documentation, comments, log entries), use an
active voice, not a passive one. I.e., say "print the frobnozzle",
not "the frobnozzle will be printed".
Please add comments per the GNU Coding Standard:
http://www.gnu.org/prep/standards/html_node/Comments.html
Minor syntactic preferences
===========================
[I hesitate to write this one down, because it appears to be an
acquired taste, at least for native-English speakers. It seems odd
(if not truly backwards) to nearly anyone who doesn't have a strong
mathematics background and perhaps a streak of something odd in their
character ;-) ]
In writing arithmetic comparisons, use "<" and "<=" rather than
">" and ">=". For some justification, read this:
http://thread.gmane.org/gmane.comp.version-control.git/3903/focus=4126
const placement:
Write "Type const *var", not "const Type *var".
FIXME: dig up justification
Be nice to translators
======================
Don't change translatable strings if you can avoid it.
If you must rearrange individual lines (e.g., in multi-line --help
strings), extract and create new strings, rather than extracting
and moving into existing blocks. This avoids making unnecessary
work for translators.
Add tests
==========
Nearly every significant change must be accompanied by a test suite
addition that exercises it. If you fix a bug, add at least one test that
fails without the patch, but that succeeds once your patch is applied.
If you add a feature, add tests to exercise as much of the new code
as possible. Note to run tests/misc/new-test in isolation you can do:
(cd tests && make check TESTS=misc/new-test VERBOSE=yes)
Variables that are significant for tests with their default values are:
VERBOSE=yes
RUN_EXPENSIVE_TESTS=no
RUN_VERY_EXPENSIVE_TESTS=no
SHELL=/bin/sh
NON_ROOT_USERNAME=nobody
NON_ROOT_GROUP=$(id -g $NON_ROOT_USERNAME)
COREUTILS_GROUPS=$(id -G)
There are hundreds of tests in the tests/ directories. You can use
tests/sample-test as a template, or one of the various Perl-based ones
in tests/misc.
If writing tests is not your thing, don't worry too much about it,
but do provide scenarios, input/output pairs, or whatever, along with
examples of running the tool to demonstrate the new or changed feature,
and someone else will massage that into a test (writing portable tests
can be a challenge).
Copyright assignment
====================
If your change is significant (i.e., if it adds more than ~10 lines),
then you'll have to have a copyright assignment on file with the FSF.
Since that involves first an email exchange between you and the FSF,
and then the exchange (FSF to you, then back) of an actual sheet of paper
with your signature on it, and finally, some administrative processing
in Boston, the process can take a few weeks.
The forms to choose from are in gnulib's doc/Copyright/ directory.
If you want to assign a single change, you should use the file,
doc/Copyright/request-assign.changes:
http://www.gnu.org/software/gnulib/Copyright/request-assign.changes
If you would like to assign past and future contributions to a project,
you'd use doc/Copyright/request-assign.future:
http://www.gnu.org/software/gnulib/Copyright/request-assign.future
You may make assignments for up to four projects at a time.
In case you're wondering why we bother with all of this, read this:
http://www.gnu.org/licenses/why-assign.html
Run "make syntax-check", or even "make distcheck"
================================================
Making either of those targets runs many integrity and
project-specific policy-conformance tests. For example, the former
ensures that you add no trailing blanks and no uses of certain deprecated
functions. The latter performs all "syntax-check" tests, and also
ensures that the build completes with no warnings when using a certain
set of gcc -W... options. Don't even bother running "make distcheck"
unless you have a reasonably up to date installation including recent
versions of gcc and the linux kernel, and modern GNU tools.
Ensure that your changes are indented properly.
===============================================
Format the code the way GNU indent does.
Filtering most source files through "indent --no-tabs" should
induce no change in indentation. Try not to add any more.
Avoid trailing white space
==========================
You may notice that the only trailing blanks in coreutils'
version-controlled files are in a single directory: tests/pr,
which contains expected output from various invocations of pr.
Do not add any more trailing blanks anywhere. While "make syntax-check"
will alert you if you slip up, it's better to nip any problem in the
bud, as you're typing. A good way to help you adapt to this rule is
to configure your editor to highlight any offending characters in the
files you edit. If you use Emacs, customize its font-lock mode
or use its WhiteSpace mode:
http://www.emacswiki.org/emacs/WhiteSpace
If you use vim, add this to ~/.vimrc:
let c_space_errors=1
highlight RedundantSpaces ctermbg=red guibg=red
match RedundantSpaces /\s\+$\| \+\ze\t/
Git can help too, by stopping you from committing any change that would
add trailing blanks. The example pre-commit hook contains code to check
for trailing whitespace and spaces before tabs; enable it by moving it
to the right place and making sure it is executable:
mv .git/hooks/pre-commit.sample .git/hooks/pre-commit
With a repository created by git-1.5.6 or older, use this command:
chmod +x .git/hooks/pre-commit
To manually check for whitespace errors before committing, you can use
git diff --check
Git also has some settings to enable suitable internal whitespace checks.
See the manpage for git-apply for details.
-------------------------------------------
Miscellaneous useful git commands
=================================
* gitk: give a graphical view of the revision graph of the current branch
* gitk --all: same, but display all branches
* git log: to get most of the same info in text form
* git log -p: same as above, but with diffs
* git log -p SOME_FILE: same as above, but limit to SOME_FILE
* git log -p -2 SOME_FILE: same as above, but print only two deltas
* git log -p -1: print the most recently committed change set
* git format-patch --stdout -1 > FILE: output the most recently committed
change set, in a format suitable to be submitted and/or applied via
"git am FILE".
* git reset --soft HEAD^: Commit the delta required to restore
state to the revision just before HEAD (i.e., next-to-last).
* git rebase -i master: run this from on a branch, and it gives
you an interface with which you can reorder and modify arbitrary
change sets on that branch.
* if you "misplace" a change set, i.e., via git reset --hard ..., so that
it's no longer reachable by any branch, you can use "git fsck" to find
its SHA1 and then tag it or cherry-pick it onto an existing branch.
For example, run this:
git fsck --lost-found HEAD && cd .git/lost-found/commit \
&& for i in *; do git show $i|grep SOME_IDENTIFYING_STRING \
&& echo $i; done
The "git fsck ..." command creates the .git/lost-found/... hierarchy
listing all unreachable objects. Then the for loop
print SHA1s for commits that match via log or patch.
For example, say that found 556fbb57216b119155cdda824c98dc579b8121c8,
you could run "git show 556fbb57216b119" to examine the change set,
or "git checkout -b found 556fbb5721" to give it a branch name.
Finally, you might run "git checkout master && git cherry-pick 556fbb5721"
to put that change on the tip of "master".
-------------------------------------------
Finding things to do
====================
If you don't know where to start, check out the TODO file for projects
that look like they're at your skill-/interest-level. Another good
option is always to improve tests. You never know what you might
uncover when you improve test coverage, and even if you don't find
any bugs your contribution is sure to be appreciated.
A good way to quickly assess current test coverage is to use "lcov"
to generate HTML coverage reports. Follow these steps:
# configure with coverage information
./configure CFLAGS="-g -fprofile-arcs -ftest-coverage"
make
# run whatever tests you want, i.e.:
make check
# run lcov
lcov -t coreutils -q -d lib -b lib -o lib.lcov -c
lcov -t coreutils -q -d src -b src -o src.lcov -c
# generate HTML from the output
genhtml -p `pwd` -t coreutils -q --output-directory lcov-html *.lcov
Then just open the index.html file (in the generated lcov-html directory)
in your favorite web browser.
========================================================================
Copyright (C) 2009-2012 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
Texts. A copy of the license is included in the "GNU Free
Documentation License" file as part of this distribution.

View File

@@ -1,11 +1,10 @@
# Make coreutils. -*-Makefile-*-
# Copyright (C) 1990, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
# 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
# Copyright (C) 1990-2012 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
@@ -14,77 +13,159 @@
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
SUBDIRS = lib src doc man po tests
EXTRA_DIST = Makefile.cfg Makefile.maint GNUmakefile \
.gitignore \
.hgignore \
.kludge-stamp .prev-version THANKS-to-translators THANKStt.in \
.vg-suppressions \
.x-po-check \
.x-sc_file_system .x-sc_obsolete_symbols \
.x-sc_prohibit_atoi_atof \
.x-sc_require_config_h \
.x-sc_space_tab .x-sc_sun_os_names \
.x-sc_trailing_blank \
.x-sc_unmarked_diagnostics \
.x-sc_useless_cpp_parens \
ChangeLog-2005 \
announce-gen \
bootstrap \
bootstrap.conf \
build-aux/cvsu \
build-aux/vc-list-files \
gl/modules/getloadavg.diff \
m4/ChangeLog \
old/fileutils/ChangeLog \
old/fileutils/ChangeLog-1997 \
old/fileutils/NEWS \
old/sh-utils/ChangeLog \
old/sh-utils/ChangeLog.0 \
old/sh-utils/NEWS \
old/textutils/ChangeLog \
old/textutils/NEWS
ALL_RECURSIVE_TARGETS =
SUBDIRS = lib src doc man po tests gnulib-tests
changelog_etc = \
ChangeLog-2005 \
ChangeLog-2006 \
ChangeLog-2007 \
ChangeLog-2008 \
build-aux/ChangeLog-2007 \
doc/ChangeLog-2007 \
lib/ChangeLog-2007 \
m4/ChangeLog-2007 \
old/fileutils/ChangeLog \
old/fileutils/ChangeLog-1997 \
old/fileutils/NEWS \
old/sh-utils/ChangeLog \
old/sh-utils/ChangeLog.0 \
old/sh-utils/NEWS \
old/textutils/ChangeLog \
old/textutils/NEWS \
po/ChangeLog-2007
EXTRA_DIST = \
$(changelog_etc) \
.mailmap \
.prev-version \
.version \
.vg-suppressions \
THANKS.in \
THANKS-to-translators \
THANKStt.in \
bootstrap \
bootstrap.conf \
build-aux/cvsu \
cfg.mk \
dist-check.mk \
maint.mk \
thanks-gen
ALL_RECURSIVE_TARGETS += install-root
install-root:
cd src && $(MAKE) $@
ACLOCAL_AMFLAGS = -I m4
# Some tests always need root privileges, others need them only sometimes.
ALL_RECURSIVE_TARGETS += check-root
check-root:
cd tests && $(MAKE) $@
cd tests && $(MAKE) $@ SUBDIRS=
dist-hook:
test -x $(srcdir)/build-aux/install-sh
distcheck-hook:
$(MAKE) my-distcheck
# Shortcut targets to make it easier to run (very) expensive tests.
check-expensive:
$(MAKE) check RUN_EXPENSIVE_TESTS=yes
check-very-expensive:
$(MAKE) check-expensive RUN_VERY_EXPENSIVE_TESTS=yes
# Just prior to distribution, ...
# transform the automake-generated rule that runs `rm -f rm'.
# transform the automake-generated rule that runs 'rm -f rm'.
# On some systems, that command would fail with a diagnostic like
# `rm: cannot unlink `rm': Text file busy' when `.' appears so early
# in the shell's search path that running `rm' would run the `rm'
# "rm: cannot unlink 'rm': Text file busy" when '.' appears so early
# in the shell's search path that running 'rm' would run the 'rm'
# executable in the current directory.
# Similarly, adjust the clean-binPROGRAMS rule.
rm_subst = \
s!(rm -f (rm|\$$\(bin_PROGRAMS\)))$$!$$1 > /dev/null 2>&1 || /bin/$$1!
MAINTAINERCLEANFILES = .kludge-stamp
.kludge-stamp: $(srcdir)/src/Makefile.in
perl -pi -e '$(rm_subst)' $(srcdir)/src/Makefile.in
touch $@
s!(rm -f (rm\b|\$$\(bin_PROGRAMS\)$$))!$$1 > /dev/null 2>&1 || /bin/$$1!
BUILT_SOURCES = .version
.version:
$(AM_V_GEN)echo $(VERSION) > $@-t && mv $@-t $@
MAINTAINERCLEANFILES += THANKS-to-translators
# Arrange so that .tarball-version appears only in the distribution
# tarball, and never in a checked-out repository.
# The perl substitution is to change some key uses of "rm" to "/bin/rm".
# See the rm_subst comment for details.
dist-hook: gen-ChangeLog
$(AM_V_GEN)echo $(VERSION) > $(distdir)/.tarball-version
$(AM_V_at)perl -pi -e '$(rm_subst)' $(distdir)/src/Makefile.in
gen_start_date = 2008-02-08
.PHONY: gen-ChangeLog
gen-ChangeLog:
$(AM_V_GEN)if test -d .git; then \
$(top_srcdir)/build-aux/gitlog-to-changelog \
--amend=$(srcdir)/build-aux/git-log-fix \
--since=$(gen_start_date) > $(distdir)/cl-t; \
rm -f $(distdir)/ChangeLog; \
mv $(distdir)/cl-t $(distdir)/ChangeLog; \
fi
ALL_RECURSIVE_TARGETS += distcheck-hook
distcheck-hook: check-ls-dircolors
$(MAKE) my-distcheck
$(MAKE) taint-distcheck
DISTCLEANFILES = VERSION
MAINTAINERCLEANFILES = THANKS-to-translators
THANKS-to-translators: po/LINGUAS THANKStt.in
( \
$(AM_V_GEN)( \
cat $(srcdir)/THANKStt.in; \
for lang in `cat $(srcdir)/po/LINGUAS`; do \
echo http://www.iro.umontreal.ca/contrib/po/HTML/team-$$lang.html; \
for lang in `cat $(srcdir)/po/LINGUAS`; do \
echo http://translationproject.org/team/$$lang.html; \
done; \
) > $@-tmp && mv $@-tmp $@
# Ensure that the sets of two-letter codes in ls.c and dircolors.c
# remain in sync.
.PHONY: check-ls-dircolors
check-ls-dircolors:
$(AM_V_GEN)dc=$$(sed -n '/static.*ls_codes\[/,/};'/p \
$(srcdir)/src/dircolors.c \
|sed -n '/^ *"/p'|tr , '\n'|sed 's/^ *//' \
|sed -n 's/^"\(..\)"/\1/p'|sort -u); \
ls=$$(sed -n '/static.*indicator_name\[/,/};'/\p \
$(srcdir)/src/ls.c \
|sed -n '/^ *"/p'|tr , '\n'|sed 's/^ *//' \
|sed -n 's/^"\(..\)"/\1/p'|sort -u); \
test "$$dc" = "$$ls"
# Sort in traditional ASCII order, regardless of the current locale;
# otherwise we may get into trouble with distinct strings that the
# current locale considers to be equal.
ASSORT = LC_ALL=C sort
# Extract all lines up to the first one starting with "##".
prologue = perl -ne '/^\#\#/ and exit; print' $(srcdir)/THANKS.in
THANKS: THANKS.in Makefile.am .mailmap thanks-gen .version
$(AM_V_GEN)rm -f $@-t $@; \
{ \
$(prologue); echo; \
{ perl -ne '/^$$/.../^$$/ and print' $(srcdir)/THANKS.in \
| grep -v '^$$' | perl -pe 's/ +/\0/'; \
git log --pretty=format:'%aN%x00%aE' \
| $(ASSORT) -u; \
} | $(srcdir)/thanks-gen \
| LC_ALL=en_US.UTF-8 sort -f; \
echo; \
printf ';; %s\n' 'Local Variables:' 'coding: utf-8' End:; \
} > $@-t && chmod a-w $@-t && mv $@-t $@
# Some of our git hook scripts are supposed to be identical to git's samples.
# See if they are still in sync.
.PHONY: check-git-hook-script-sync
check-git-hook-script-sync:
@fail=0; \
t=$$(mktemp -d) \
&& cd $$t && git init -q && cd .git/hooks \
&& for i in pre-commit pre-applypatch applypatch-msg; do \
diff $(abs_top_srcdir)/scripts/git-hooks/$$i $$i.sample \
|| fail=1; \
done; \
rm -rf $$t; \
test $$fail = 0

View File

@@ -1,36 +0,0 @@
# Customize Makefile.maint. -*- makefile -*-
# Copyright (C) 2003-2006 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
# Use alpha.gnu.org for alpha and beta releases.
# Use ftp.gnu.org for major releases.
gnu_ftp_host-alpha = alpha.gnu.org
gnu_ftp_host-beta = alpha.gnu.org
gnu_ftp_host-major = ftp.gnu.org
gnu_rel_host = $(gnu_ftp_host-$(RELEASE_TYPE))
url_dir_list = \
ftp://$(gnu_rel_host)/gnu/coreutils
# The GnuPG ID of the key used to sign the tarballs.
gpg_key_ID = D333CBA1
# Tests not to run as part of "make distcheck".
# Exclude changelog-check here so that there's less churn in ChangeLog
# files -- otherwise, you'd need to have the upcoming version number
# at the top of the file for each `make distcheck' run.
local-checks-to-skip = changelog-check

View File

@@ -1,594 +0,0 @@
# -*-Makefile-*-
# This Makefile fragment is shared between the coreutils,
# CPPI, Bison, and Autoconf.
## Copyright (C) 2001-2006 Free Software Foundation, Inc.
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2, or (at your option)
## any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
## 02110-1301, USA.
# This is reported not to work with make-3.79.1
# ME := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
ME := Makefile.maint
# Do not save the original name or timestamp in the .tar.gz file.
# Use --rsyncable if available.
gzip_rsyncable := \
$(shell gzip --help 2>/dev/null|grep rsyncable >/dev/null && echo --rsyncable)
GZIP_ENV = '--no-name --best $(gzip_rsyncable)'
CVS = cvs
GIT = git
VC = $(GIT)
CVS_LIST = build-aux/vc-list-files
CVS_LIST_EXCEPT = \
$(CVS_LIST) | if test -f .x-$@; then grep -vEf .x-$@; else grep -v ChangeLog; fi
ifeq ($(origin prev_version_file), undefined)
prev_version_file = .prev-version
endif
PREV_VERSION := $(shell cat $(prev_version_file))
VERSION_REGEXP = $(subst .,\.,$(VERSION))
tag-package = $(shell echo "$(PACKAGE)" | tr '[:lower:]' '[:upper:]')
tag-this-version = $(subst .,_,$(VERSION))
this-vc-tag = $(tag-package)-$(tag-this-version)
my_distdir = $(PACKAGE)-$(VERSION)
# Old releases are stored here.
# Used for diffs and xdeltas.
release_archive_dir ?= ../release
# Prevent programs like 'sort' from considering distinct strings to be equal.
# Doing it here saves us from having to set LC_ALL elsewhere in this file.
export LC_ALL = C
## --------------- ##
## Sanity checks. ##
## --------------- ##
# FIXME: add a check to prohibit definition in src/*.c of symbols defined
# in system.h. E.g. today I removed from tail.c a useless definition of
# ENOSYS. It was useless because system.h ensures it's defined.
# Checks that don't require cvs.
# Run `changelog-check' last, as previous test may reveal problems requiring
# new ChangeLog entries.
local-checks-available = \
po-check copyright-check writable-files m4-check author_mark_check \
changelog-check patch-check strftime-check $(syntax-check-rules) \
makefile_path_separator_check \
makefile-check check-AUTHORS
.PHONY: $(local-checks-available)
local-check = $(filter-out $(local-checks-to-skip), $(local-checks-available))
# Collect the names of rules starting with `sc_'.
syntax-check-rules := $(shell sed -n 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' $(ME))
.PHONY: $(syntax-check-rules)
syntax-check: $(syntax-check-rules)
# @grep -nE '# *include <(limits|std(def|arg|bool))\.h>' \
# $$(find -type f -name '*.[chly]') && \
# { echo '$(ME): found conditional include' 1>&2; \
# exit 1; } || :
# grep -nE '^# *include <(string|stdlib)\.h>' \
# $(srcdir)/{lib,src}/*.[chy] && \
# { echo '$(ME): FIXME' 1>&2; \
# exit 1; } || :
# FIXME: don't allow `#include .strings\.h' anywhere
sc_cast_of_argument_to_free:
@grep -nE '\<free \(\(' $(srcdir)/{lib,src}/*.[chly] && \
{ echo '$(ME): don'\''t cast free argument' 1>&2; \
exit 1; } || :
sc_cast_of_x_alloc_return_value:
@grep -nE --exclude=$(srcdir)/lib/regex.c \
'\*\) *x(m|c|re)alloc\>' \
$(srcdir)/{lib,src}/*.[chy] && \
{ echo '$(ME): don'\''t cast x*alloc return value' 1>&2; \
exit 1; } || :
sc_cast_of_alloca_return_value:
@grep -nE '\*\) *alloca\>' \
$(srcdir)/src/*.[chy] && \
{ echo '$(ME): don'\''t cast alloca return value' 1>&2; \
exit 1; } || :
sc_space_tab:
@grep -n '[ ] ' $$($(CVS_LIST_EXCEPT)) && \
{ echo '$(ME): found SPACE-TAB sequence; remove the SPACE' \
1>&2; exit 1; } || :
# Don't use the old ato* functions in `real' code.
# They provide no error checking mechanism.
# Instead, use strto* functions.
sc_prohibit_atoi_atof:
@grep -nE '\<ato([filq]|ll)\>' $$($(CVS_LIST_EXCEPT)) && \
{ echo '$(ME): do not use ato''f, ato''i, ato''l, ato''ll, or ato''q' \
1>&2; exit 1; } || :
# Using EXIT_SUCCESS as the first argument to error is misleading,
# since when that parameter is 0, error does not exit. Use `0' instead.
sc_error_exit_success:
@grep -nF 'error (EXIT_SUCCESS,' \
$$(find -type f -name '*.[chly]') && \
{ echo '$(ME): found error (EXIT_SUCCESS' 1>&2; \
exit 1; } || :
sc_file_system:
@grep -ni 'file''system' $$($(CVS_LIST_EXCEPT)) && \
{ echo '$(ME): found use of "file''system";' \
'rewrite to use "file system"' 1>&2; \
exit 1; } || :
sc_no_have_config_h:
@grep -n 'HAVE''_CONFIG_H' $$($(CVS_LIST_EXCEPT)) && \
{ echo '$(ME): found use of HAVE''_CONFIG_H; remove' \
1>&2; exit 1; } || :
# Nearly all .c files must include <config.h>.
sc_require_config_h:
@if $(CVS_LIST_EXCEPT) | grep '\.c$$' > /dev/null; then \
grep -L '^# *include <config\.h>' \
$$($(CVS_LIST_EXCEPT) | grep '\.c$$') \
| grep . && \
{ echo '$(ME): the above files do not include <config.h>' \
1>&2; exit 1; } || :; \
else :; \
fi
# Prohibit the inclusion of assert.h without an actual use of assert.
sc_prohibit_assert_without_use:
@if $(CVS_LIST_EXCEPT) | grep '\.c$$' > /dev/null; then \
files=$$(grep -l '# *include <assert\.h>' \
$$($(CVS_LIST_EXCEPT) | grep '\.c$$')) && \
grep -L '\<assert (' $$files \
| grep . && \
{ echo "$(ME): the above files include <assert.h> but don't use it" \
1>&2; exit 1; } || :; \
else :; \
fi
sc_obsolete_symbols:
@grep -nE '\<(HAVE''_FCNTL_H|O''_NDELAY)\>' \
$$($(CVS_LIST_EXCEPT)) && \
{ echo '$(ME): do not use HAVE''_FCNTL_H or O''_NDELAY' \
1>&2; exit 1; } || :
# FIXME: warn about definitions of EXIT_FAILURE, EXIT_SUCCESS, STREQ
# Each nonempty line must start with a year number, or a TAB.
sc_changelog:
@grep -n '^[^12 ]' $$(find . -maxdepth 2 -name ChangeLog) && \
{ echo '$(ME): found unexpected prefix in a ChangeLog' 1>&2; \
exit 1; } || :
# Ensure that dd's definition of LONGEST_SYMBOL stays in sync
# with the strings from the two affected variables.
dd_c = $(srcdir)/src/dd.c
sc_dd_max_sym_length:
ifneq ($(wildcard $(dd_c)),)
@len=$$( (sed -n '/conversions\[\] =$$/,/^};/p' $(dd_c);\
sed -n '/flags\[\] =$$/,/^};/p' $(dd_c) ) \
|sed -n '/"/s/^[^"]*"\([^"]*\)".*/\1/p' \
| wc --max-line-length); \
max=$$(sed -n '/^#define LONGEST_SYMBOL /s///p' $(dd_c) \
|tr -d '"' | wc --max-line-length); \
if test "$$len" = "$$max"; then :; else \
echo 'dd.c: LONGEST_SYMBOL is not longest' 1>&2; \
exit 1; \
fi
endif
# Many m4 macros names once began with `jm_'.
# On 2004-04-13, they were all changed to start with gl_ instead.
# Make sure that none are inadvertently reintroduced.
sc_prohibit_jm_in_m4:
@grep -nE 'jm_[A-Z]' \
$$($(CVS_LIST) m4 |grep '\.m4$$'; echo /dev/null) && \
{ echo '$(ME): do not use jm_ in m4 macro names' \
1>&2; exit 1; } || :
sc_root_tests:
@t1=sc-root.expected; t2=sc-root.actual; \
grep -nl '^PRIV_CHECK_ARG=require-root' \
$$($(CVS_LIST) tests) |sed s,tests,., |sort > $$t1; \
sed -n 's, cd \([^ ]*\) .*MAKE..check TESTS=\(.*\),./\1/\2,p' \
$(srcdir)/tests/Makefile.am |sort > $$t2; \
diff -u $$t1 $$t2 || diff=1; \
rm -f $$t1 $$t2; \
test "$$diff" \
&& { echo 'tests/Makefile.am: missing check-root action'>&2; \
exit 1; } || :
headers_with_interesting_macro_defs = \
exit.h \
fcntl_.h \
fnmatch_.h \
intprops.h \
inttypes_.h \
lchown.h \
openat.h \
stat-macros.h \
stdint_.h
# Create a list of regular expressions matching the names
# of macros that are guaranteed by parts of gnulib to be defined.
.re-defmac:
@(cd $(srcdir)/lib; \
for f in $(headers_with_interesting_macro_defs); do \
test -f $$f && \
sed -n '/^# *define \([^_ (][^ (]*\)[ (].*/s//\1/p' $$f; \
done; \
) | sort -u \
| grep -Ev 'ATTRIBUTE_NORETURN|SIZE_MAX' \
| sed 's/^/^# *define /' \
> $@-t
@mv $@-t $@
# Don't define macros that we already get from gnulib header files.
sc_always_defined_macros: .re-defmac
@if test -f $(srcdir)/src/system.h; then \
trap 'rc=$$?; rm -f .re-defmac; exit $$rc' 0 1 2 3 15; \
grep -f .re-defmac $$($(CVS_LIST)) \
&& { echo '$(ME): define the above via some gnulib .h file' \
1>&2; exit 1; } || :; \
fi
# Create a list of regular expressions matching the names
# of files included from system.h. Exclude a couple.
.re-list:
@sed -n '/^# *include /s///p' $(srcdir)/src/system.h \
| grep -Ev 'sys/(param|file)\.h' \
| sed 's/ .*//;;s/^["<]/^# *include [<"]/;s/\.h[">]$$/\\.h[">]/' \
> $@-t
@mv $@-t $@
# Files in src/ should not include directly any of
# the headers already included via system.h.
sc_system_h_headers: .re-list
@if test -f $(srcdir)/src/system.h; then \
trap 'rc=$$?; rm -f .re-list; exit $$rc' 0 1 2 3 15; \
grep -nE -f .re-list \
$$($(CVS_LIST) src | \
grep -Ev '((copy|system)\.h|parse-gram\.c)$$') \
&& { echo '$(ME): the above are already included via system.h'\
1>&2; exit 1; } || :; \
fi
sc_sun_os_names:
@grep -nEi \
'solaris[^[:alnum:]]*2\.(7|8|9|[1-9][0-9])|sunos[^[:alnum:]][6-9]' \
$$($(CVS_LIST_EXCEPT)) && \
{ echo '$(ME): found misuse of Sun OS version numbers' 1>&2; \
exit 1; } || :
sc_the_the:
@grep -ni '\<the ''the\>' $$($(CVS_LIST_EXCEPT)) && \
{ echo '$(ME): found use of "the ''the";' 1>&2; \
exit 1; } || :
sc_tight_scope:
$(MAKE) -C src $@
sc_trailing_blank:
@grep -n '[ ]$$' $$($(CVS_LIST_EXCEPT)) && \
{ echo '$(ME): found trailing blank(s)' \
1>&2; exit 1; } || :
# Match lines like the following, but where there is only one space
# between the options and the description:
# -D, --all-repeated[=delimit-method] print all duplicate lines\n
longopt_re = --[a-z][0-9A-Za-z-]*(\[=[0-9A-Za-z-]*\])?
sc_two_space_separator_in_usage:
@grep -nE '^ *(-[A-Za-z],)? $(longopt_re) [^ ].*\\$$' \
$$($(CVS_LIST_EXCEPT)) && \
{ echo "$(ME): help2man requires at least two spaces between"; \
echo "$(ME): an option and its description"; \
1>&2; exit 1; } || :
# Look for diagnostics that aren't marked for translation.
# This won't find any for which error's format string is on a separate line.
sc_unmarked_diagnostics:
@grep -nE \
'\<error \([^"]*"[^"]*[a-z]{3}' $$($(CVS_LIST_EXCEPT)) \
| grep -v '_''(' && \
{ echo '$(ME): found unmarked diagnostic(s)' 1>&2; \
exit 1; } || :
# Avoid useless parentheses like those in this example:
# #if defined (SYMBOL) || defined (SYM2)
sc_useless_cpp_parens:
@grep -n '^# *if .*defined *(' $$($(CVS_LIST_EXCEPT)) && \
{ echo '$(ME): found useless parentheses in cpp directive' \
1>&2; exit 1; } || :
# Ensure that the c99-to-c89 patch applies cleanly.
patch-check:
rm -rf src-c89 $@.1 $@.2
cp -a src src-c89
(cd src-c89; patch -V never --fuzz=0) < src/c99-to-c89.diff \
> $@.1 2>&1
grep -v '^patching file ' $@.1 > $@.2 || :
fail=0; test -s $@.2 && fail=1 || : ; \
rm -rf src-c89 $@.1 $@.2; \
test $$fail = 0
# Ensure that date's --help output stays in sync with the info
# documentation for GNU strftime. The only exception is %N,
# which date accepts but GNU strftime does not.
extract_char = sed 's/^[^%][^%]*%\(.\).*/\1/'
strftime-check:
if test -f $(srcdir)/src/date.c; then \
grep '^ %. ' $(srcdir)/src/date.c | sort \
| $(extract_char) > $@-src; \
{ echo N; \
info libc date calendar format | grep '^ `%.'\' \
| $(extract_char); } | sort > $@-info; \
diff -u $@-src $@-info || exit 1; \
rm -f $@-src $@-info; \
fi
check-AUTHORS:
$(MAKE) -C src $@
# Ensure that we use only the standard $(VAR) notation,
# not @...@ in Makefile.am, now that we can rely on automake
# to emit a definition for each substituted variable.
makefile-check:
grep -nE '@[A-Z_0-9]+@' `find . -name Makefile.am` \
&& { echo 'Makefile.maint: use $$(...), not @...@' 1>&2; exit 1; } || :
news-date-check: NEWS
today=`date +%Y-%m-%d`; \
if head NEWS | grep '^\*.* $(VERSION_REGEXP) ('$$today')' \
>/dev/null; then \
:; \
else \
echo "version or today's date is not in NEWS" 1>&2; \
exit 1; \
fi
changelog-check:
if head ChangeLog | grep 'Version $(VERSION_REGEXP)\.$$' \
>/dev/null; then \
:; \
else \
echo "$(VERSION) not in ChangeLog" 1>&2; \
exit 1; \
fi
m4-check:
@grep -n 'AC_DEFUN([^[]' m4/*.m4 \
&& { echo 'Makefile.maint: quote the first arg to AC_DEFUN' 1>&2; \
exit 1; } || :
# Verify that all source files using _() are listed in po/POTFILES.in.
# FIXME: don't hard-code file names below; use a more general mechanism.
po-check:
if test -f po/POTFILES.in; then \
grep -E -v '^(#|$$)' po/POTFILES.in \
| grep -v '^src/false\.c$$' | sort > $@-1; \
files=; \
for file in $$($(CVS_LIST_EXCEPT)) lib/*.[ch]; do \
case $$file in \
djgpp/* | man/*) continue;; \
esac; \
case $$file in \
*.[ch]) \
base=`expr " $$file" : ' \(.*\)\..'`; \
{ test -f $$base.l || test -f $$base.y; } && continue;; \
esac; \
files="$$files $$file"; \
done; \
grep -E -l '\b(N?_|gettext *)\([^)"]*("|$$)' $$files \
| sort -u > $@-2; \
diff -u $@-1 $@-2 || exit 1; \
rm -f $@-1 $@-2; \
fi
# In a definition of #define AUTHORS "... and ..." where the RHS contains
# the English word `and', the string must be marked with `N_ (...)' so that
# gettext recognizes it as a string requiring translation.
author_mark_check:
@grep -n '^# *define AUTHORS "[^"]* and ' src/*.c |grep -v ' N_ (' && \
{ echo 'Makefile.maint: enclose the above strings in N_ (...)' 1>&2; \
exit 1; } || :
# Sometimes it is useful to change the PATH environment variable
# in Makefiles. When doing so, it's better not to use the Unix-centric
# path separator of `:', but rather the automake-provided `@PATH_SEPARATOR@'.
# It'd be better to use `find -print0 ...|xargs -0 ...', but less portable,
# and there probably aren't many projects with so many Makefile.am files
# that we'd have to worry about limits on command line length.
msg = 'Makefile.maint: Do not use `:'\'' above; use @PATH_SEPARATOR@ instead'
makefile_path_separator_check:
@grep -n 'PATH=.*:' `find $(srcdir) -name Makefile.am` \
&& { echo $(msg) 1>&2; exit 1; } || :
# Check that `make alpha' will not fail at the end of the process.
writable-files:
if test -d $(release_archive_dir); then :; else \
mkdir $(release_archive_dir); \
fi
for file in $(distdir).tar.gz $(xd-delta) \
$(release_archive_dir)/$(distdir).tar.gz \
$(release_archive_dir)/$(xd-delta); do \
test -e $$file || continue; \
test -w $$file \
|| { echo ERROR: $$file is not writable; fail=1; }; \
done; \
test "$$fail" && exit 1 || :
v_etc_file = lib/version-etc.c
# Make sure that the copyright date in $(v_etc_file) is up to date.
copyright-check:
@if test -f $(v_etc_file); then \
grep 'enum { COPYRIGHT_YEAR = '$$(date +%Y)' };' $(v_etc_file) \
>/dev/null \
|| { echo 'out of date copyright in $(v_etc_file); update it' 1>&2; \
exit 1; }; \
fi
# Sanity checks with the repository.
# Abort early if this tag has already been used.
vc-tag-check:
used=no; \
if $(VC) --help | grep CVS; then \
$(CVS) -n log -h README|grep -e $(this-vc-tag): >/dev/null \
&& used=yes; \
else \
$(GIT) tag -l '^$(this-vc-tag)$$' && used=yes; \
fi; \
if test "$$used" = yes; then \
echo "$(this-vc-tag) has already been used; not tagging" 1>&2; \
exit 1; \
fi
vc-diff-check:
$(VC) diff > vc-diffs || :
if test -s vc-diffs; then \
cat vc-diffs; \
echo "Some files are locally modified:" 1>&2; \
exit 1; \
else \
rm vc-diffs; \
fi
cvs-check: vc-diff-check vc-tag-check
maintainer-distcheck:
$(MAKE) distcheck
$(MAKE) my-distcheck
# Tag before making distribution. Also, don't make a distribution if
# checks fail. Also, make sure the NEWS file is up-to-date.
# FIXME: use dist-hook/my-dist like distcheck-hook/my-distcheck.
vc-dist: $(local-check) cvs-check maintainer-distcheck
$(VC) tag $(this-vc-tag)
$(MAKE) dist
# Use this to make sure we don't run these programs when building
# from a virgin tgz file, below.
null_AM_MAKEFLAGS = \
ACLOCAL=false \
AUTOCONF=false \
AUTOMAKE=false \
AUTOHEADER=false \
MAKEINFO=false
# Detect format-string/arg-list mismatches that would normally be obscured
# by the use of _(). The --disable-nls effectively defines away that macro,
# and building with CFLAGS='-Wformat -Werror' causes any format warning to be
# treated as a failure. Also, check for shadowing problems with -Wshadow,
# and for pointer arithmetic problems with -Wpointer-arith.
# These CFLAGS are pretty strict. If you build this target, you probably
# have to have a recent version of gcc and glibc headers.
TMPDIR ?= /tmp
t=$(TMPDIR)/$(PACKAGE)/test
my-distcheck: $(local-check) $(release_archive_dir)/$(prev-tgz)
-rm -rf $(t)
mkdir -p $(t)
GZIP=$(GZIP_ENV) $(AMTAR) -C $(t) -zxf $(distdir).tar.gz
cd $(t)/$(distdir) \
&& ./configure --disable-nls \
&& $(MAKE) CFLAGS='-Werror -Wall -Wformat -Wshadow -Wpointer-arith' \
AM_MAKEFLAGS='$(null_AM_MAKEFLAGS)' \
&& $(MAKE) dvi \
&& $(MAKE) check \
&& $(MAKE) distclean
(cd $(t) && mv $(distdir) $(distdir).old \
&& $(AMTAR) -zxf - ) < $(distdir).tar.gz
diff -ur $(t)/$(distdir).old $(t)/$(distdir)
-rm -rf $(t)
@echo "========================"; \
echo "$(distdir).tar.gz is ready for distribution"; \
echo "========================"
WGET = wget
WGETFLAGS = -C off
rel-check:
tarz=/tmp/rel-check-tarz-$$$$; \
md5_tmp=/tmp/rel-check-md5-$$$$; \
set -e; \
trap 'status=$$?; rm -f $$tarz $$md5_tmp; exit $$status' 0 1 2 3 15; \
$(WGET) $(WGETFLAGS) -q --output-document=$$tarz $(url); \
echo "$(md5) -" > $$md5_tmp; \
md5sum -c $$md5_tmp < $$tarz
prev-tgz = $(PACKAGE)-$(PREV_VERSION).tar.gz
xd-delta = $(PACKAGE)-$(PREV_VERSION)-$(VERSION).xdelta
rel-files = $(xd-delta) $(DIST_ARCHIVES)
announcement: NEWS ChangeLog $(rel-files)
@./announce-gen \
--release-type=$(RELEASE_TYPE) \
--package=$(PACKAGE) \
--prev=$(PREV_VERSION) \
--curr=$(VERSION) \
--release-archive-directory=$(release_archive_dir) \
--gpg-key-id=$(gpg_key_ID) \
--news=NEWS \
$(addprefix --url-dir=, $(url_dir_list)) \
## ---------------- ##
## Updating files. ##
## ---------------- ##
ftp-gnu = ftp://ftp.gnu.org/gnu
www-gnu = http://www.gnu.org
# Use mv, if you don't have/want move-if-change.
move_if_change ?= move-if-change
emit_upload_commands:
@echo =====================================
@echo =====================================
@echo "$(srcdir)/build-aux/gnupload $(GNUPLOADFLAGS) \\"
@echo " --to $(gnu_rel_host):coreutils \\"
@echo " $(rel-files)"
@echo '# send the /tmp/announcement e-mail'
@echo =====================================
@echo =====================================
$(xd-delta): $(release_archive_dir)/$(prev-tgz) $(distdir).tar.gz
xdelta delta -9 $^ $@ || :
.PHONY: alpha beta major
alpha beta major: news-date-check changelog-check $(local-check)
test $@ = major \
&& { echo $(VERSION) | grep -E '^[0-9]+(\.[0-9]+)+$$' \
|| { echo "invalid version string: $(VERSION)" 1>&2; exit 1;};}\
|| :
$(MAKE) vc-dist
$(MAKE) $(xd-delta)
$(MAKE) -s announcement RELEASE_TYPE=$@ > /tmp/announce-$(my_distdir)
ln $(rel-files) $(release_archive_dir)
chmod a-w $(rel-files)
$(MAKE) -s emit_upload_commands RELEASE_TYPE=$@
echo $(VERSION) > $(prev_version_file)
$(VC) commit -m. $(prev_version_file)

2106
NEWS

File diff suppressed because it is too large Load Diff

127
README
View File

@@ -7,18 +7,21 @@ arbitrary limits.
The programs that can be built with this package are:
[ base64 basename cat chgrp chmod chown chroot cksum comm cp csplit cut date
dd df dir dircolors dirname du echo env expand expr factor false fmt fold
ginstall groups head hostid hostname id join kill link ln logname ls
md5sum mkdir mkfifo mknod mv nice nl nohup od paste pathchk pinky pr
printenv printf ptx pwd readlink rm rmdir seq sha1sum sha224sum sha256sum
sha384sum sha512sum shred shuf sleep sort split stat stty su sum sync tac
tail tee test touch tr true tsort tty uname unexpand uniq unlink uptime
users vdir wc who whoami yes
[ arch base64 basename cat chcon chgrp chmod chown chroot cksum comm cp
csplit cut date dd df dir dircolors dirname du echo env expand expr
factor false fmt fold groups head hostid hostname id install join kill
link ln logname ls md5sum mkdir mkfifo mknod mktemp mv nice nl nohup
nproc od paste pathchk pinky pr printenv printf ptx pwd readlink realpath
rm rmdir runcon seq sha1sum sha224sum sha256sum sha384sum sha512sum shred
shuf sleep sort split stat stdbuf stty su sum sync tac tail tee test
timeout touch tr true truncate tsort tty uname unexpand uniq unlink
uptime users vdir wc who whoami yes
See the file NEWS for a list of major changes in the current release.
See the file INSTALL for compilation and installation instructions.
If you obtained this file as part of a "git clone", then see the
README-hacking file. If this file came to you as part of a tar archive,
then see the file INSTALL for compilation and installation instructions.
These programs are intended to conform to POSIX (with BSD and other
extensions), like the rest of the GNU system. By default they conform
@@ -38,7 +41,7 @@ Special thanks to Paul Eggert, Brian Matthews, Bruce Evans, Karl Berry,
Kaveh Ghazi, and François Pinard for help with debugging and porting
these programs. Many thanks to all of the people who have taken the
time to submit problem reports and fixes. All contributed changes are
attributed in the ChangeLog files.
attributed in the commit logs.
And thanks to the following people who have provided accounts for
portability testing on many different types of systems: Bob Proulx,
@@ -55,9 +58,28 @@ and from the corresponding --help usage message. Patches to the template
files (man/*.x) are welcome. However, the authoritative documentation
is in texinfo form in the doc directory.
If you run the tests on a SunOS4.1.4 system, expect the ctime-part of
the ls `time-1' test to fail. I believe that is due to a bug in the
way Sun implemented link(2) and chmod(2).
*****************************************
On Mac OS X 10.5.1 (Darwin 9.1), test failure
-----------------------------------------
Mac OS X 10.5.1 (Darwin 9.1) provides only partial (and incompatible)
ACL support, so although "./configure && make" succeeds, "make check"
exposes numerous failures. The solution is to turn off ACL support
manually via "./configure --disable-acl". For details, see
<http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12292/focus=12318>.
*****************************************
Test failure with NLS and gettext <= 0.17
-----------------------------------------
Due to a conflict between libintl.h and gnulib's new xprintf module,
when you configure with NLS support, and with a gettext installation
older than 0.17.1 (not yet released, at the time of this writing),
then some tests fail, at least on NetBSD 1.6. To work around it in
the mean time, you can configure with --disable-nls. For details,
see <http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/12015/>.
***********************
@@ -70,11 +92,15 @@ compiler, due to the use of declarations after non-declaration statements
in several files in src/. There is code in configure to find and, if
possible, enable an appropriate compiler. However, if configure doesn't
find a C99 compiler, it continues nonetheless, and your build will fail.
If that happens, simply apply the included patch using the following
If that happens, simply[*] apply the included patch using the following
command, and then run make again:
cd src && patch < c99-to-c89.diff
[*] however, as of coreutils-7.1, the "c99-to-c89.diff" file is no longer
maintained, so even if the patches still apply, the result will be an
incomplete conversion. It's been 10 years. Get a decent compiler! ;-)
***********************
HPUX 11.x build failure
@@ -97,22 +123,42 @@ Here is one possible patch to correct the problem:
+#ifndef __LP64__
************************
OSF/1 4.0d build failure
------------------------
If you use /usr/bin/make on an OSF/1 4.0d system, it will fail due
to the presence of the "[" target. That version of make appears to
treat "[" as some syntax relating to locks. To work around that,
the best solution is to use GNU make. Otherwise, simply remove
all mention of "[$(EXEEXT)" from src/Makefile.
*************************************************
"make check" failure on IRIX 6.5 and Solaris <= 9
-------------------------------------------------
Using the vendor make program to run "make check" fails on these two systems.
If you want to run all of the tests there, use GNU make.
**********************
Running tests as root:
----------------------
If you run the tests as root, note that a few of them create files
and/or run programs as a non-root user, `nobody' by default.
and/or run programs as a non-root user, 'nobody' by default.
If you want to use some other non-root username, specify it via
the NON_ROOT_USERNAME environment variable. Depending on the
permissions with which the working directories have been created,
using `nobody' may fail, because that user won't have the required
using 'nobody' may fail, because that user won't have the required
read and write access to the build and test directories.
I find that it is best to unpack and build as a non-privileged
user, and then to run the following command as that user in order
to run the privilege-requiring tests:
sudo env NON_ROOT_USERNAME=$USER make -k check
sudo env PATH="$PATH" NON_ROOT_USERNAME=$USER make -k check-root
If you can run the tests as root, please do so and report any
problems. We get much less test coverage in that mode, and it's
@@ -125,19 +171,19 @@ Reporting bugs:
---------------
IMPORTANT: if you take the time to report a test failure,
please be sure to include the output of running `make check'
please be sure to include the output of running 'make check'
in verbose mode for each failing test. For example,
if the test that fails is tests/mv/hard-link-1, then you
would run this command:
if the test that fails is tests/misc/df, then you would
run this command:
env VERBOSE=yes make check -C tests/mv TESTS=hard-link-1 >> log 2>&1
(cd tests && make check TESTS=misc/df VERBOSE=yes) >> log 2>&1
For some tests, you can get even more detail by including
DEBUG=yes in the environment:
For some tests, you can get even more detail by adding DEBUG=yes.
Then include the contents of the file 'log' in your bug report.
env DEBUG=yes VERBOSE=yes make check -C tests/mv TESTS=hard-link-1 >> log 2>&1
and then include the contents of the file `log' in your bug report.
Send bug reports, questions, comments, etc. to bug-coreutils@gnu.org.
If you would like to suggest a patch, see the files README-hacking
and HACKING for tips.
***************************************
@@ -151,14 +197,13 @@ If you sent a complete patch and, after a couple weeks you haven't
received any acknowledgement, please ping us. A complete patch includes
a well-written ChangeLog entry, unified (diff -u format) diffs relative
to the most recent test release (or, better, relative to the latest
sources in the CVS repository), an explanation for why the patch is
sources in the public repository), an explanation for why the patch is
necessary or useful, and if at all possible, enough information to
reproduce whatever problem prompted it. Plus, you'll earn lots of
karma if you include a test case to exercise any bug(s) you fix.
Instructions for checking out the latest source via CVS are here:
http://savannah.gnu.org/cvs/?group=coreutils
Here are instructions for checking out the latest development sources:
http://savannah.gnu.org/git/?group=coreutils
If your patch adds a new feature, please try to get some sort of consensus
that it is a worthwhile change. One way to do that is to send mail to
@@ -176,15 +221,9 @@ subtle bugs.
WARNING: If you modify files like configure.in, m4/*.m4, aclocal.m4,
or any Makefile.am, then don't be surprised if what gets regenerated no
longer works. To make things work, you'll have to be using appropriate
versions of automake and autoconf. As for what versions are `appropriate',
use the versions of
versions of the tools listed in bootstrap.conf's buildreq string.
* autoconf specified via AC_PREREQ in m4/jm-macros.m4
* automake specified via AM_INIT_AUTOMAKE in configure.ac
Usually it's fine to use versions that are newer than those specified.
All of these programs except `test' recognize the `--version' option.
All of these programs except 'test' recognize the '--version' option.
When reporting bugs, please include in the subject line both the package
name/version and the name of the program for which you found a problem.
@@ -192,18 +231,20 @@ For general documentation on the coding and usage standards
this distribution follows, see the GNU Coding Standards,
http://www.gnu.org/prep/standards_toc.html.
For any copyright year range specified as YYYY-ZZZZ in this package
note that the range specifies every single year in that closed interval.
Mail suggestions and bug reports for these programs to
the address on the last line of --help output.
========================================================================
Copyright (C) 1998, 2002, 2003, 2004, 2005, 2006 Free Software
Foundation, Inc.
Copyright (C) 1998-2012 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
Texts. A copy of the license is included in the ``GNU Free
Documentation License'' file as part of this distribution.
Texts. A copy of the license is included in the "GNU Free
Documentation License" file as part of this distribution.

View File

@@ -1,70 +0,0 @@
-*- outline -*-
These notes intend to help people working on the CVS version of
this package.
* Requirements
Only the sources are installed in the CVS repository (to ease the
maintenance, merges etc.), therefore you will have to get the latest
stable versions of the maintainer tools we depend upon, including:
- Automake <http://www.gnu.org/software/automake/>
- Autoconf <http://www.gnu.org/software/autoconf/>
- Bison <http://www.gnu.org/software/bison/>
- Gettext <http://www.gnu.org/software/gettext/>
- Gzip <http://www.gnu.org/software/gzip/>
- Tar <http://www.gnu.org/software/tar/>
- Wget <http://www.gnu.org/software/wget/>
As of this writing, the latest stable version of Gzip is 1.2.4 but we
suggest using test version 1.3.5 (or later, if one becomes available).
Valgrind <http://valgrind.org/> is also highly recommended, if
Valgrind supports your architecture.
Only building the initial full source tree will be a bit painful,
later, a plain `cvs update -P && make' should be sufficient.
* First CVS checkout
Obviously, if you are reading these notes, you did manage to check out
this package from CVS. The next step is to get other files needed to
build, which are extracted from other source packages:
$ ./bootstrap
And there you are! Just
$ ./configure
$ make
$ make check
At this point, there should be no difference between your local copy,
and the CVS master copy:
$ cvs diff
should output no difference.
Enjoy!
-----
Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.

110
README-hacking Normal file
View File

@@ -0,0 +1,110 @@
-*- outline -*-
These notes intend to help people working on the checked-out sources.
These requirements do not apply when building from a distribution tarball.
See also HACKING for more detailed contribution guidelines.
* Requirements
We've opted to keep only the highest-level sources in the GIT repository.
This eases our maintenance burden, (fewer merges etc.), but imposes more
requirements on anyone wishing to build from the just-checked-out sources.
Note the requirements to build the released archive are much less and
are just the requirements of the standard ./configure && make procedure.
Specific development tools and versions will be checked for and listed by
the bootstrap script. See README-prereq for specific notes on obtaining
these prerequisite tools.
Valgrind <http://valgrind.org/> is also highly recommended, if
Valgrind supports your architecture. See also README-valgrind.
While building from a just-cloned source tree may require installing a
few prerequisites, later, a plain 'git pull && make' should be sufficient.
* First GIT checkout
You can get a copy of the source repository like this:
$ git clone git://git.sv.gnu.org/coreutils
$ cd coreutils
As an optional step, if you already have a copy of the gnulib git
repository on your hard drive, then you can use it as a reference to
reduce download time and disk space requirements:
$ export GNULIB_SRCDIR=/path/to/gnulib
The next step is to get and check other files needed to build,
which are extracted from other source packages:
$ ./bootstrap
To use the most-recent gnulib (as opposed to the gnulib version that
the package last synchronized to), do this next:
$ git submodule foreach git pull origin master
$ git commit -m 'build: update gnulib submodule to latest' gnulib
And there you are! Just
$ ./configure --quiet #[--enable-gcc-warnings] [*]
$ make
$ make check
At this point, there should be no difference between your local copy,
and the GIT master copy:
$ git diff
should output no difference.
Enjoy!
[*] The --enable-gcc-warnings option is useful only with glibc
and with a very recent version of gcc. You'll probably also have
to use recent system headers. If you configure with this option,
and spot a problem, please be sure to send the report to the bug
reporting address of this package, and not to that of gnulib, even
if the problem seems to originate in a gnulib-provided file.
* Submitting patches
If you develop a fix or a new feature, please send it to the
appropriate bug-reporting address as reported by the --help option of
each program. One way to do this is to use vc-dwim
<http://www.gnu.org/software/vc-dwim/>), as follows.
Run the command "vc-dwim --help", copy its definition of the
"git-changelog-symlink-init" function into your shell, and then run
this function at the top-level directory of the package.
Edit the (empty) ChangeLog file that this command creates, creating a
properly-formatted entry according to the GNU coding standards
<http://www.gnu.org/prep/standards/html_node/Change-Logs.html>.
Make your changes.
Run the command "vc-dwim" and make sure its output (the diff of all
your changes) looks good.
Run "vc-dwim --commit".
Run the command "git format-patch --stdout -1", and email its output
in, using the output's subject line.
-----
Copyright (C) 2002-2012 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@@ -1,13 +1,21 @@
As of 2002-09-01, the GNU fileutils, textutils, and sh-utils
packages have been merged into one, called the GNU coreutils.
See http://www.gnu.org/software/coreutils/ for a description.
Here's the FAQ list:
http://www.gnu.org/software/coreutils/faq/
For information on the mailing lists associated with the
coreutils package, see these:
http://mail.gnu.org/mailman/listinfo/coreutils-announce
http://mail.gnu.org/mailman/listinfo/bug-coreutils
http://mail.gnu.org/mailman/listinfo/coreutils
mailing list archives are here:
http://mail.gnu.org/pipermail/bug-coreutils/
http://news.gmane.org/gmane.comp.gnu.coreutils.announce
http://news.gmane.org/gmane.comp.gnu.core-utils.bugs (up to the minute)
http://mail.gnu.org/pipermail/bug-coreutils/ (updated every 12 hours)
http://news.gmane.org/gmane.comp.gnu.coreutils.general
http://mail.gnu.org/pipermail/coreutils/ (updated every 12 hours)

61
README-prereq Normal file
View File

@@ -0,0 +1,61 @@
This gives some notes on obtaining the tools required for development.
I.E. the tools checked for by the bootstrap script and include:
- Autoconf <http://www.gnu.org/software/autoconf/>
- Automake <http://www.gnu.org/software/automake/>
- Bison <http://www.gnu.org/software/bison/>
- Gettext <http://www.gnu.org/software/gettext/>
- Git <http://git.or.cz/>
- Gperf <http://www.gnu.org/software/gperf/>
- Gzip <http://www.gnu.org/software/gzip/>
- Perl <http://www.cpan.org/>
- Rsync <http://samba.anu.edu.au/rsync/>
- Tar <http://www.gnu.org/software/tar/>
- Texinfo <http://www.gnu.org/software/texinfo/>
Note please try to install/build official packages for your system.
If these programs are not available use the following instructions
to build them and install the results into a directory that you will
then use when building this package.
Even if the official version of a package for your system is too old,
please install it, as it may be required to build the newer versions.
The examples below install into $HOME/coreutils/deps/, so if you are
going to follow these instructions, first ensure that your $PATH is
set correctly by running this command:
prefix=$HOME/coreutils/deps
export PATH=$prefix/bin:$PATH
* autoconf *
# Note Autoconf 2.62 or newer is needed to build automake-1.11.1
git clone --depth=1 git://git.sv.gnu.org/autoconf.git
git checkout v2.62
autoreconf -vi
./configure --prefix=$prefix
make install
* automake *
# Note help2man is required to build automake fully
git clone git://git.sv.gnu.org/automake.git
cd automake
git checkout v1.11.1
./bootstrap
./configure --prefix=$prefix
make install
This package uses XZ utils (successor to LZMA) to create
a compressed distribution tarball. Using this feature of Automake
requires version 1.10a or newer, as well as the xz program itself.
* xz *
git clone git://ctrl.tukaani.org/xz.git
cd xz
./autogen.sh
./configure --prefix=$prefix
make install
Now you can build this package as described in README-hacking.

123
README-release Normal file
View File

@@ -0,0 +1,123 @@
Here are most of the steps we (maintainers) follow when making a release.
* start from a clean, up-to-date git directory.
git checkout master; git pull
* Run ./configure && make maintainer-clean
* Ensure that the desired versions of autoconf, automake, bison, etc.
are in your PATH. See the buildreq list in bootstrap.conf for
the complete list.
* Ensure that you're on "master" with no uncommitted diffs.
This should produce no output: git checkout master; git diff
* Ensure that you've pushed all changes that belong in the release
and that the NixOS/Hydra autobuilder is reporting all is well:
http://hydra.nixos.org/jobset/gnu/coreutils-master
* Run bootstrap one last time. This downloads any new translations:
./bootstrap
FIXME: enable excluded programs like arch? to get their manual pages?
* Check for new file system types by running the following command on
a system with the most recent kernel possible (e.g., Fedora rawhide):
make -C src fs-magic-compare
If it finds a new file system magic number, add it to src/stat.c.
If it is a remote file system, add the new S_MAGIC_* name you created
in stat.c to the list of remote file system types in src/tail.c's
fremote function.
* Pre-release testing:
Run the following on at least one SELinux-enabled (enforcing) and
one non-SELinux system:
n=$(( ($(nproc) + 1) / 2 ))
sudo env PATH="$PATH" NON_ROOT_USERNAME=$USER make -k -j$(nproc) check-root\
&& make distcheck \
&& make -j$n check RUN_VERY_EXPENSIVE_TESTS=yes RUN_EXPENSIVE_TESTS=yes
If testing on systems with a non standard default shell, spurious failures
may occur. Often there are other shells available, and you can select
those by using for example, SHELL=bash in the commands above.
Note that the use of -j$n tells make to use approximately half of the
available processing units. If you use -jN, for larger N, some of the
expensive tests are likely to interfere with concurrent performance-measuring
or timing-sensitive tests, resulting in spurious failures.
If "make distcheck" doesn't run "make syntax-check" for you, then run
it manually:
make syntax-check
* Set the date, version number, and release type [stable/alpha/beta] on
line 3 of NEWS, commit that, and tag the release by running e.g.,
build-aux/do-release-commit-and-tag X.Y stable
* Run the following to create release tarballs. Your choice selects the
corresponding upload-to destination in the emitted gnupload command.
The different destinations are specified in cfg.mk. See the definitions
of gnu_ftp_host-{alpha,beta,stable}.
# "TYPE" must be stable, beta or alpha
make TYPE
* Test the tarball. copy it to a few odd-ball systems and ensure that
it builds and passes all tests.
* While that's happening, write the release announcement that you will
soon post. Start with the template, $HOME/announce-coreutils-X.Y
that was just created by that "make" command.
Once all the builds and tests have passed,
* Run the gnupload command that was suggested by your "make stable" run above.
* Wait a few minutes (maybe up to 30?) and then use the release URLs to
download all tarball/signature pairs and use gpg --verify to ensure
that they're all valid.
* Push the NEWS-updating changes and the new tag:
v=$(cat .prev-version)
git push origin master tag v$v
* Announce it on Savannah first, so you can include the preferable
savannah.org announcement link in the email message.
From here:
https://savannah.gnu.org/projects/coreutils/
click on the "submit news", then write something like the following:
(If there is no such button, then enable "News" for the project via
the Main -> "Select Features" menu item, or via this link:
https://savannah.gnu.org/project/admin/editgroupfeatures.php?group=coreutils)
Subject: coreutils-X.Y released [stable]
+verbatim+
...paste the announcement here...
-verbatim-
Then go here to approve it:
https://savannah.gnu.org/news/approve.php?group=coreutils
* Send the announcement email message.
* Approve the announcement here:
http://lists.gnu.org/mailman/admindb/coreutils-announce
* After each non-alpha release, update the on-line manual accessible via
http://www.gnu.org/software/coreutils/manual/
by running this:
build-aux/gnu-web-doc-update

View File

@@ -1,11 +1,11 @@
#! /bin/bash
# Convert this package for use with valgrind.
# Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
# Copyright (C) 2002-2012 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
@@ -14,30 +14,36 @@
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Convert Makefile.am files:
# find tests -name Makefile.am | xargs grep -wl PATH|xargs perl -pi -e \
# 's,src(\$\(PATH_SEPARATOR\)\$\$PATH),src/vg$1,'
# find tests -name check.mk | xargs grep -wl PATH |
# xargs perl -pi -e 's,src(\$\(PATH_SEPARATOR\)),src/vg$1,'
# To restore:
# find tests -name Makefile.am|xargs grep -wl PATH|xargs perl -pi -e 's,src/vg,src,'
# find tests -name check.mk | xargs grep -wl PATH |
# xargs perl -pi -e 's,src/vg,src,'
#
# Create this symlink for suppressions (this is no longer necessary,
# with linux-2.6.9 and valgrind-2.2.0):
# with Linux kernel 2.6.9 and valgrind-2.2.0):
# ln -s $PWD/.vg-suppressions /tmp/cu-vg
# Create src/vg:
coreutils=$(echo 'spy:;@echo $(all_programs)' | (cd src; make -f Makefile -f - spy | tr -s '\n ' ' '))
coreutils=$(echo 'spy:;@echo $(all_programs) $(noinst_PROGRAMS)' |
(cd src; make -f Makefile -f - spy | tr -s '\n ' ' '))
mkdir -p src/vg
pwd=`pwd`
srcdir=$pwd/src
_path='export PATH='$srcdir':${PATH#*:}'
pre='#!/bin/sh\n'"$_path"'\n'
n=15
vg='exec /usr/bin/valgrind --suppressions=/tmp/cu-vg --log-fd=3 --leak-check=yes --track-fds=yes --leak-check=full --num-callers='$n
n=15 # stack trace depth
log_fd=3 # One can redirect this to file like 3>vg.log
test -e /tmp/cu-vg && suppressions='--supressions=/tmp/cu-vg'
vg="exec /usr/bin/valgrind $suppressions --log-fd=$log_fd \
--leak-check=yes --track-fds=yes --leak-check=full --num-callers=$n"
cat <<EOF > src/vg/gen
for i in $coreutils; do
printf "$pre$vg -- \$i"' "\$@"\n' > \$i

View File

@@ -1,17 +1,26 @@
These people have contributed to the GNU coreutils (formerly, the fileutils,
textutils, and/or sh-utils packages). Some have reported problems, others
have contributed improvements to the documentation, actual code, and even
complete programs. Those contributions are described in the ChangeLog
files. If your name has been left out, if you'd rather not be listed,
or if you'd prefer a different address be used, please send a note to
the bug-report mailing list (as seen on last line of e.g., cp --help).
complete programs. Those contributions are described in the version control
logs and ChangeLog files. If your name has been left out, if you'd rather
not be listed, or if you'd prefer a different address be used, please send a
note to the bug-report mailing list (as seen at end of e.g., cp --help).
##
## There is no need to list here any name that appears as an Author in
## "git log" output. Those are automatically added when this template
## is used to generate the THANKS file. Note that numerous people listed
## here would have been listed as commit authors if we had been using git
## for version control when they contributed.
??? kytek@cybercomm.net
A Costa agcosta@gis.net
Aaron Hawley ashawley@uvm.edu
Achim Blumensath blume@corona.oche.de
Adam Jimerson vendion@charter.net
Adam Klein aklein@debian.org
Adam Sampson ats@offog.org
Adrian Bunk bunk@stusta.de
AIDA Shinra shinra@j10n.org
Akim Demaille demaille@inf.enst.fr
Alain Magloire alain@qnx.com
Alan Iwi iwi@atm.ox.ac.uk
@@ -20,16 +29,23 @@ Albert Hopkins ahopkins@dynacare.com
Alberto Accomazzi alberto@cfa0.harvard.edu
aldomel aldomel@ix.netcom.com
Alen Muzinic zveki@fly.cc.fer.hr
Alexander Nguyen vinh@seas.ucla.edu
Alexander V. Lukyanov lav@netis.ru
Allen Hewes allen@decisiv.net
Axel Dörfler axeld@pinc-software.de
Alexandre Duret-Lutz duret_g@epita.fr
Alexey Solovyov alekso@math.uu.se
Alexey Vyskubov alexey@pippuri.mawhrin.net
Alfred M. Szmidt ams@kemisten.nu
Ambrose Feinstein ambrose@google.com
Amr Ali amr.ali.cc@gmail.com
Anders Kaseorg andersk@mit.edu
Andi Kleen freitag@alancoxonachip.com
Andre Novaes Cunha Andre.Cunha@br.global-one.net
Andreas Frische andreasfrische@gmail.com
Andreas Gruenbacher ag@bestbits.at
Andreas Jaeger jaeger@gnu.org
Andreas Luik luik@isa.de
Andreas Schwab schwab@suse.de
Andreas Stolcke stolcke@ICSI.Berkeley.EDU
Andrei Gaponenko andr@triumf.ca
Andres Soolo andres@soolo.matti.ee
@@ -44,21 +60,23 @@ Andy Longton alongton@metamark.com
Anthony Thyssen anthony@griffith.edu.au
Antonio Rendas ajrendas@yahoo.com
Ariel Faigon ariel@cthulhu.engr.sgi.com
Arne H. Juul arnej@solan.unit.no
Arjan Opmeer arjan.opmeer@gmail.com
Arkadiusz Miśkiewicz arekm@maven.pl
Arne Henrik Juul arnej@imf.unit.no
Arnold Robbins arnold@skeeve.com
Arthur Pool pool@commerce.uq.edu.au
Arun Sharma arun.sharma@intel.com
Arvind Autar Autar022@planet.nl
Augey Mikus mikus@dqc.org
Aurelien Jarno aurel32@debian.org
Austin Donnelly Austin.Donnelly@cl.cam.ac.uk
Axel Kittenberger Anshil@gmx.net
Barry Kelly http://barrkel.blogspot.com/
Bauke Jan Douma bjdouma@xs4all.nl
Ben Elliston bje@air.net.au
Ben Harris bjh21@netbsd.org
Benjamin Cutler cutlerbc@simla.colostate.edu
Ben Walton bwalton@artsci.utoronto.ca
Bengt Martensson bengt@mathematik.uni-Bremen.de
Benjamin Cutler cutlerbc@simla.colostate.edu
Bernard Giroud bernard.giroud@creditlyonnais.ch
Bernd Eckenfels ecki@debian.org
Bernd Leibing bernd.leibing@rz.uni-ulm.de
@@ -67,25 +85,31 @@ Bernhard Baehr bernhard.baehr@gmx.de
Bernhard Gabler bernhard@uni-koblenz.de
Bernhard Rosenkraenzer bero@redhat.de
Bert Deknuydt Bert.Deknuydt@esat.kuleuven.ac.be
Bert Wesarg bert.wesarg@googlemail.com
Bill Brelsford wb@k2di.net
Bill Peters peters@gaffel.as.arizona.edu
Bjorn Helgaas helgaas@rsn.hp.com
Bob McCracken kerouac@ravenet.com
Bob Proulx rwp@fc.hp.com
Branden Robinson branden@necrotic.deadbeast.net
Brendan O'Dea bod@compusol.com.au
Brian Kimball bfk@footbag.org
Brian M. Carlson sandals@crustytoothpaste.ath.cx
Brian Silverman bsilverman@conceptxdesign.com
Brian Youmans 3diff@gnu.org
Bruce Korb bkorb@veritas.com
Britton Leo Kerin fsblk@aurora.uaf.edu
Bruce Robertson brucer@theodolite.dyndns.org
Bruno Haible haible@clisp.cons.org
Carl Johnson carlj@cjlinux.home.org
Carl Lowenstein cdl@mpl.UCSD.EDU
Carl Roth roth@urs.us
Carlos Canau Carlos.Canau@relay.puug.pt
Charles Karney karney@pppl.gov
Charles Randall crandall@matchlogic.com
Chas. Owens chas.owens@gmail.com
Chip Salzenberg chip@valinux.com
Chris Clayton chris2553@googlemail.com
Chris Faylor cgf@cygnus.com
Chris J. Bednar cjb@AdvancedDataSolutions.com
Chris Jones cjns1989@gmail.com
Chris Lesniewski ctl@mit.edu
Chris Sylvain csylvain@umm.edu
Chris Yeo cyeo@biking.org
@@ -102,49 +126,59 @@ Colin Plumb colin@nyx.net
Colin Watson cjw44@riva.ucam.org
Collin Rogowski collin@rogowski.de
Cray-Cyber Project http://www.cray-cyber.org
Cristian Cadar cristic@stanford.edu
Cyril Bouthors cyril@bouthors.org
Dale Scheetz dwarf@polaris.net
Dameon G. Rogers dgr03@uark.edu
Dan Hagerty hag@gnu.ai.it.edu
Dan Jacobson http://www.geocities.com/jidani
Dan Pascu dan@services.iiruc.ro
Daniel Bergstrom noa@melody.se
Daniel P. Berrangé berrange@redhat.com
Daniel Stavrovski d@stavrovski.net
Dániel Varga danielv@axelero.hu
Danny Levinson danny.levinson@overture.com
Darrel Francis d.francis@cheerful.com
Darren Salt ds@youmustbejoking.demon.co.uk
Dave Beckett dajobe@dajobe.org
David Alan Gilbert gilbertd@treblig.org
David Dyck dcd@tc.fluke.COM
David Eisner cradle@umd.edu
David Flynn dav@chess.plus.com
David Gast dgast@csulb.edu
David Godfrey dave@delta.demon.co.uk
David Luyer david_luyer@pacific.net.au
David Madore david.madore@ens.fr
David Malone dwmalone@cnri.dit.ie
Davide Canova kc.canova@gmail.com
Dawson Engler engler@stanford.edu
Dean Gaudet dean-savannah@arctic.org
Deepak Goel deego@gnufans.org
Denis Excoffier denis.excoffier@airbus.com
Denis McKeon dmckeon@swcp.com
Dennis Henriksen opus@flamingo.osrl.dk
Dennis Clarke dclarke@blastwave.org
Dennis Smit ds@nerds-incorporated.org
Derek Clegg dclegg@next.com
Dick Streefland dick_streefland@tasking.com
Dirk Lattermann dlatt@t-online.de
Dirk-Jan Faber djfaber@snow.nl
Dmitry Rutsky rutsky@school.ioffe.rssi.ru
Dmitry V. Levin ldv@altlinux.org
Don Parsons dparsons@synapse.kent.edu
Donni Erpel donald@appc11.gsi.de
Doug Coleman coleman@iarc1.ece.utexas.edu
Doug McLaren dougmc@comco.com
Dragos Harabor dharabor@us.oracle.com
Duncan Roe duncanr@optimation.com.au
Ed Avis ed@membled.com
Edward Welbourne eddy@opera.com
Edzer Pebesma Edzer.Pebesma@rivm.nl
Egmont Koblinger egmont@uhulinux.hu
Eirik Fuller eirik@hackrat.com
Eivind eivindt@multinet.no
Elbert Pol elbert.pol@gmail.com
Eli Zaretskii eliz@is.elta.co.il
Emile LeBlanc leblanc@math.toronto.edu
Emmanuel Lacour elacour@home-dn.net
Eric Backus ericb@lsid.hp.com
Eric Blake ebb9@byu.net
Eric G. Miller egm2@jps.net
Eric Pemente pemente@northpark.edu
Eric S. Raymond esr@snark.thyrsus.com
@@ -153,8 +187,10 @@ Erik Corry erik@kroete2.freinet.de
Felix Lee flee@teleport.com
Felix Rauch Valenti frauch@cse.unsw.edu.au
Ferdinand fw@scenic.mine.nu
Filipus Klutiero chealer@gmail.com
Fletcher Mattox fletcher@cs.utexas.edu
Florent Bayle florent@sarcelle.net
Florian Schlichting fschlich@cis.fu-berlin.de
Florin Iucha fiucha@hsys.mic.ro
Francesco Montorsi fr_m@hotmail.com
François Pinard pinard@iro.umontreal.ca
@@ -167,24 +203,29 @@ Gabor Z. Papp gzp@gzp.org.hu
Gaël Quéri gqueri@mail.dotcom.fr
Galen Hazelwood galenh@micron.net
Gary Anderson ganderson@clark.net
Gary Johnson garyjohn@spk.agilent.com
Gary V. Vaughan gary@gnu.org
Gaute Hvoslef Kvalnes gaute@verdsveven.com
Geoff Collyer geoff at collyer.net
Geoff Kuenning geoff@cs.hmc.edu
Geoff Odhner geoff@franklin.com
Geoff Whale geoffw@cse.unsw.EDU.AU
Gerald Pfeifer gerald@pfeifer.com
Gerhard Poul gpoul@gnu.org
Germano Leichsenring germano@jedi.cs.kobe-u.ac.jp
Göran Uddeborg goeran@uddeborg.pp.se
Glen Lenker glen.lenker@gmail.com
Göran Uddeborg goeran@uddeborg.se
Guochun Shi gshi@ncsa.uiuc.edu
GOTO Masanori gotom@debian.or.jp
Greg Louis glouis@dynamicro.on.ca
Greg McGary gkm@gnu.org
Greg Metcalfe metcalfegreg@qwest.net
Greg Schafer gschafer@zip.com.au
Greg Troxel gdt@bbn.com
Greg Wooledge gawooledge@sherwin.com
Gregory Leblanc gleblanc@cu-portland.edu
Guido Leenders guido.leenders@invantive.com
Guntram Blohm Extern.Guntram.Blohm@AUDI.DE
H. J. Lu hjl@valinux.com
Hans Ginzel hans@matfyz.cz
Hans Lermen lermen@fgan.de
@@ -192,6 +233,8 @@ Hans Verkuil hans@wyst.hobby.nl
Harald Dunkel harald.dunkel@t-online.de
Harry Liu rliu@lek.ugcs.caltech.edu
Harti Brandt brandt@fokus.fraunhofer.de
Harvey Eneman Harvey.Eneman@oracle.com
Heiko Marr h.marr@webmasters.de
Helen Faulkner helen_ml_faulkner@yahoo.co.uk
Herbert Xu herbert@gondor.apana.org.au
Holger Berger hberger@ess.nec.de
@@ -200,28 +243,41 @@ Hugh Daniel hugh@xanadu.com
Ian Bruce ian.bruce@myrealbox.com
Iain Calder ic56@rogers.com
Ian Jackson ijackson@chiark.greenend.org.uk
Ian Kent ikent@redhat.com
Ian Lance Taylor ian@cygnus.com
Ian Turner vectro@pipeline.com
Iida Yosiaki iida@gnu.org
Ilya N. Golubev gin@mo.msk.ru
Ingo Saitz ingo@debian.org
Ivan Labath labath3@st.fmph.uniba.sk
Ivo Timmermans ivo@debian.org
Jacky Fong jacky.fong@utoronto.ca
James james@albion.glarp.com
James Antill jmanti%essex.ac.uk@seralph21.essex.ac.uk
James Lemley James.Lemley@acxiom.com
James Hunt jamesodhunt@hotmail.com
James Ralston ralston@pobox.com
James Sneeringer jvs@ocslink.com
James Tanis jtt@soscorp.com
James Youngman james+usenet@free-lunch.demon.co.uk
Jamie Lokier jamie@imbolc.ucc.ie
Jamie McClelland jm@mayfirst.org
Jan Engelhardt jengelh@medozas.de
Jan Fedak J.Fedak@sh.cvut.cz
Jan Moringen jan.moringen@uni-bielefeld.de
Jan Nieuwenhuizen janneke@gnu.org
Jan-Pawel Wrozstinski jpwroz@gmail.com
Janos Farkas chexum@shadow.banki.hu
Jari Aalto jari.aalto@cante.net
Jarkko Hietaniemi jhi@epsilon.hut.fi
Jarod Wilson jwilson@redhat.com
Jean Charles Delepine delepine@u-picardie.fr
Jeff Moore jbm@mordor.com
Jeff Sheinberg jeff@bsrd.net
Jens Elkner elkner@imsgroup.de
Jens Schmidt jms@jsds.hamburg.com
Jeph Cowan jeph@ucar.edu
Jeremy Maitin-Shepard jbms@cmu.edu
Jérémy Magrin jeremy.magrin@epitech.eu
Jerome Abela abela@hsc.fr
Jérôme Zago bug-coreutils-ml@agt-the-walker.net
Jesse Kornblum kornblum@usna.edu
@@ -229,14 +285,15 @@ Jesse Thilo jgt2@eecs.lehigh.edu
Jie Xu xuj@iag.net
Jim Blandy jimb@cyclic.com
Jim Dennis jimd@starshine.org
Joachim Schmitz jojo@schmitz-digital.de
Joakim Rosqvist dvljrt@cs.umu.se
Jochen Hein jochen@jochen.org
Joe Orton joe@manyfish.co.uk
Joerg Sonnenberger joerg@britannica.bec.de
Joey Hess joeyh@debian.org
Johan Boule bohan@bohan.dyndns.org
Johan Danielsson joda@pdc.kth.se
John Bley jbb6@acpub.duke.edu
John David Anglin dave.anglin@nrc.ca
John Gatewood Ham zappaman@alphabox.compsci.buu.ac.th
John Gotts jgotts@umich.edu
John Kendall kendall@capps.com
@@ -244,16 +301,22 @@ John Kodis kodis@acm.org
John Murphy jam@philabs.research.philips.com
John Roll john@panic.harvard.edu
John Salmon johns@mullet.anu.edu.au
John Stanley johnstops@verizon.net
John Summerfield summer@OS2.ami.com.au
Jon Peatfield J.S.Peatfield@damtp.cam.ac.uk
Joost van Baal joostvb@xs4all.nl
Jordi Pujol jordipujolp@gmail.com
Jorge Stolfi stolfi@ic.unicamp.br
Joseph S. Myers jsm28@cam.ac.uk
Josh Triplett josh@freedesktop.org
Joshua Hudson joshudson@gmail.com
Josselin Mouette joss@debian.org
Juan F. Codagnone juam@arnet.com.ar
Juan M. Guerrero st001906@hrz1.hrz.tu-darmstadt.de
Julian Bradfield jcb@inf.ed.ac.uk
Jungshik Shin jshin@pantheon.yale.edu
Jürgen Fluk louis@dachau.marco.de
Juraj Marko jmarko@redhat.com
Jurriaan thunder7@xs4all.nl
Justin Pryzby justinpryzby@users.sourceforge.net
jvogel jvogel@linkny.com
@@ -262,7 +325,6 @@ Kai-Uwe Rommel rommel@informatik.tu-muenchen.de
Kalle Olavi Niemitalo kon@iki.fi
Kamal Paul Nigam Kamal_Paul_Nigam@gs35.sp.cs.cmu.edu
Karl Eichwalder keichwa@gmx.net
Karl Heuer kwzh@gnu.org
Karl-Michael Schneider schneide@phil.uni-passau.de
Karsten Thygesen karthy@kom.auc.dk
Kaveh R. Ghazi ghazi@caip.rutgers.edu
@@ -271,15 +333,18 @@ Keith Owens kaos@audio.apana.org.au
Keith Thompson kst@cts.com
Ken Pizzini kenp@halcyon.com
Kevin Mudrick kmudrick@healthmarketscience.com
Kirk Kelsey kirk.kelsey@0x4b.net
Kristin E Thomas kristint@us.ibm.com
Kjetil Torgrim Homme kjetilho@ifi.uio.no
Kristoffer Rose kris@diku.dk
Ladislav Hagara ladislav.hagara@unob.cz
Larry McVoy lm@sgi.com
Lars Hecking lhecking@nmrc.ucc.ie
Leah Q eequor@earthlink.net
Lehti Rami rammer@cs.tut.fi
Leonard N. Zubkoff lnz@dandelion.com
Leonardo Milano lmilano@udel.edu
Lluís Batlle viriketo@gmail.com
Lorne Baker lbaker@nitro.avint.net
Luke Hassell lukehassell@yahoo.com
Luke Kendall lukekendall@optushome.com.au
@@ -287,6 +352,7 @@ M. P. Suzuki mpsuzuki@hiroshima-u.ac.jp
Maciej Kwapulinski pikpok@univ.gda.pl
Manas Garg manas@cygsoft.com
Manfred Hollstein manfred@s-direktnet.de
Марк Коренберг socketpair@gmail.com
Marc Boucher marc@mbsi.ca
Marc Haber mh+debian-bugs@zugschlus.de
Marc Lehman schmorp@schmorp.de
@@ -311,6 +377,7 @@ Martin martin@dresden.nacamar.de
Martin Buck martin.buck@ascom.ch
Martin Gallant martyg@goodbit.net
Martin Hippe martin.hippe@schlund.de
Martin Jacobs martin.jacobs@arcor.de
Martin Michlmayr tbm@cyrius.com
Martin Mitchell martin@debian.org
Martin P.J. Zinser zinser@decus.de
@@ -318,11 +385,15 @@ Marty Leisner leisner@sdsp.mc.xerox.com
Masami Takikawa takikawm@CS.ORST.EDU
Mate Wierdl mw@moni.msci.memphis.edu
Matej Vela mvela@public.srce.hr
Matias A. Fonzo selk@dragora.org
Matt Kraai kraai@ftbfs.org
Matt McCutchen matt@mattmccutchen.net
Matt Perry matt@primefactor.com
Matt Pham mattvpham@gmail.com
Matt Schalit mschalit@pacbell.net
Matt Swift swift@alum.mit.edu
Matthew Arnison maffew@cat.org.au
Matthew M. Boedicker matthewm@boedicker.org
Matthew Braun matthew@ans.net
Matthew Clarke Matthew_Clarke@mindlink.bc.ca
Matthew S. Levine mslevine@theory.lcs.mit.edu
@@ -330,21 +401,24 @@ Matthew Smith matts@bluesguitar.org
Matthew Swift swift@alum.mit.edu
Matthias Urlichs smurf@noris.de
Matti Aarnio matti.aarnio@zmailer.org
Mathias Brodala info@noctus.net
Mattias Wadenstein maswan@acc.umu.se
Max Chang maxchang@ucla.edu
Meelis Roos mroos@tartu.cyber.ee
Michael michael@aplatform.com
Michael ??? michael@roka.net
Michael Bacarella mbac@netgraft.com>
Michael Bacarella mbac@netgraft.com
Michael Deutschmann michael@talamasca.ocis.net
Michael Elizabeth Chastain mec.gnu@mindspring.com
Michael Gaughen mgaughen@polyserve.com
Michael Hasselberg mikelh@zonta.ping.de
Michael Hohn hohn@math.utah.edu
Michael J. Croghan mcroghan@usatoday.com
Michael J. Daniel michael.j.daniel@comcast.net
Michael McFarland sidlon@yahoo.com
Michael McLagan mmclagan@invlogic.com
Michael Piefel piefel@informatik.hu-berlin.de
Michael Steffens michael.steffens@s.netic.de
Michael Stone mstone@debian.org
Michael Stutz stutz@dsl.org
Michael van Elst mlelstv@dev.de.cw.net
Michael Veksler mveksler@techunix.technion.ac.il
@@ -356,21 +430,23 @@ Michiel Bacchiani bacchian@raven.bu.edu
Mike Castle dalgoda@ix.netcom.com
Mike Coleman mkc@mathdogs.com
Mike Jetzer mjetzer@mke.catalystwms.com
Mike Frysinger vapier@gentoo.org
Mikko Tuumanen m@sorvankyla.yok.utu.fi
Mikulas Patocka mikulas@artax.karlin.mff.cuni.cz
Miles Bader miles@gnu.ai.mit.edu
Minh Tran-Le tranle@intellicorp.com
Morten Welinder terra@diku.dk
Nao Nishijima nao.nishijima.xt@hitachi.com
Neal H Walfield neal@cs.uml.edu
Neil Brown neilb@cse.unsw.edu.au
Nelson H. F. Beebe beebe@math.utah.edu
Nick Estes debian@nickstoys.com
Nick Graham nick.d.graham@gmail.com
Nick Lawes nlawes@silverplatter.com
Nickolai Zeldovich nickolai@cs.stanford.edu
Nicolas François nicolas.francois@centraliens.net
Niklas Edmundsson nikke@acc.umu.se
Nikola Milutinovic Nikola.Milutinovic@ev.co.yu
Nima Nikzad nnikzad@ucla.edu
Noah Friedman friedman@splode.com
Noel Cragg noel@red-bean.com
Norbert Kiesel nkiesel@tbdnetworks.com
@@ -378,27 +454,33 @@ Olatunji Oluwabukunmi Ruwase tjruwase@stanford.edu
Olav Morkrid olav@funcom.com
Ole Laursen olau@hardworking.dk
Oliver Kiddle okiddle@yahoo.co.uk
Olivier Fourdan ofourdan@redhat.com
Ørn E. Hansen oehansen@daimi.aau.dk
Oskar Liljeblad osk@hem.passagen.se
Otavio Salvador otavio@ossystems.com.br
Patrick Mauritz oxygene@studentenbude.ath.cx
Paul Eggert eggert@twinsun.com
Paul D. Smith psmith@gnu.org
Paul Ghaleb paul.ghaleb@st.com
Paul Jarc prj@po.cwru.edu
Paul Marinescu paul.marinescu@imperial.ac.uk
Paul Nevai nevai@ops.mps.ohio-state.edu
Paul Sauer paul@alexa.com
Paul Slootman paul@debian.org
Paul Townsend aab@purdue.edu
Paul Worrall paul@basilisk.uklinux.net
Pawel Prokop pablo@wizard.ae.krakow.pl
Peng Yu pengyu.ut@gmail.com
Per Cederqvist ceder@lysator.liu.se
Per Kristian Hove perhov@math.ntnu.no
Per Starbäck starback@stp.lingfil.uu.se
Peter Breitenlohner peb@mppmu.mpg.de
Peter Dyballa peter_dyballa@web.de
Peter Eriksson peter@ifm.liu.se
Peter Fales psfales@lucent.com
Peter Horst peter@ointment.org
Peter Moulder reiter@netspace.net.au
Peter O'Gorman bug-coreutils@mlists.thewrittenword.com
Peter Samuelson psamuels@sampo.creighton.edu
Peter Seebach seebs@taniemarie.solon.com
Petr Uzel petr.uzel@suse.cz
Petter Reinholdtsen pere@hungry.com
Phelippe Neveu pneveu@pcigeomatics.com
Phil Richards phil.richards@vf.vodafone.co.uk
@@ -406,15 +488,16 @@ Philippe De Muyter phdm@macqel.be
Philippe Schnoebelen Philippe.Schnoebelen@imag.fr
Phillip Jones mouse@datastacks.com
Piergiorgio Sartor sartor@sony.de
Pieter Bowman bowman@math.utah.edu
Piotr Gackiewicz gacek@intertele.pl
Piotr Kwapulinski kwap@univ.gda.pl
Prashant TR tr@eth.net
Priit Jõerüüt jemm4jemm@yahoo.com
Rainer Orth ro@TechFak.Uni-Bielefeld.DE
Ralf W. Stephan stephan@tmt.de
Ralf Wildenhues Ralf.Wildenhues@gmx.de
Ralph Loader loader@maths.ox.ac.uk
Raul Miller moth@magenta.com
Raúl Núñez de Arenas Coronado raul@pleyades.net
Reuben Thomas rrt@sc3d.org
Richard A Downing richard.downing@bcs.org.uk
Richard Braakman dark@xs4all.nl
Richard Dawe rich@phekda.freeserve.co.uk
@@ -422,11 +505,15 @@ Richard J. Rauenzahn rrauenza@hairball.cup.hp.com
Richard Neill rn214@hermes.cam.ac.uk
Richard Sharman rsharman@magmacom.com
Rick Sladkey jrs@world.std.com
Rick Stanley rstanley@rsiny.com
Rik Faith faith@cs.unc.edu
Risto Kankkunen kankkune@lingsoft.fi
Rob Wortman wyrm@haell.com
Robert H. de Vries robert@and.nl
Robert Lindgren robert@orcafat.com
Robert Millan zeratul2@wanadoo.es
Robert Schwebel r.schwebel@pengutronix.de
Robin H. Johnson robbat2@gentoo.org
Rogier Wolff R.E.Wolff@BitWizard.nl
Roland Huebner ro-huebner@gmx.de
Roland Turner raz.tah.bet@raz.cx
@@ -434,6 +521,8 @@ Ronald F. Guilmette rfg@netcom.com
Ross Alexander r.alexander@auckland.ac.nz
Ross Paterson rap@doc.ic.ac.uk
Ross Ridge rridge@calum.csclub.uwaterloo.ca
Rudolf Kastl rkastl@redhat.com
Sahil Amoli sahilamoli@gmail.com
Sami Farin sfarin@ratol.fi
Samuel Tardieu sam@rfc1149.net
Samuel Thibault samuel.thibault@ens-lyon.org
@@ -441,13 +530,17 @@ Samuli Karkkainen Samuli.Karkkainen@hut.fi
Sander van Malssen svm@kozmix.ow.nl
Santiago Vila Doncel sanvila@unex.es
Savochkin Andrey Vladimirovich saw@msu.ru
Scott Harrison scott.gnu.2009@scottrix.co.uk
Scott Lurndal slurn@griffin.engr.sgi.com
Sébastien Maret smaret@umich.edu
Sébastien Maret smaret@umich.edu
Sergei Steshenko sergstesh@yahoo.com
Sergey Vlasov vsu@altlinux.org
Shing-Shong Shei shei@cs.indiana.edu
Soeren Sonnenburg sonnenburg@informatik.hu-berlin.de
Solar Designer solar@owl.openwall.com
Stanislav Ievlev inger@altlinux.ru
Stavros Passas stabat@ics.forth.gr
Stefan Vargyas stvar@yahoo.com
Stéphane Chazelas Stephane_CHAZELAS@yahoo.fr
Stephen Depooter sbdep@myrealbox.com
Stephen Eglen eglen@pcg.wustl.edu
@@ -455,11 +548,17 @@ Stephen Gildea gildea@stop.mail-abuse.org
Stephen Smoogen smooge@mindspring.com
Steve McConnel steve@acadcomp.sil.org
Steve McIntyre steve@einval.com
Steve Ward planet36@gmail.com
Steven Drake sbd@users.sourceforge.net
Steven G. Johnson stevenj@alum.mit.edu
Steven Mocking ufo@quicknet.nl
Steven Parkes smparkes@smparkes.net
Steven Schveighoffer schveiguy@yahoo.com
Steven P Watson steven@magelico.net
Stuart Citrin ctrn3e8@gmail.com
Stuart Kemp skemp@peter.bmc.com
Sven Joachim sven_joachim@web.de
Stuart Shelton stuart@shelton.me
Sven Breuner sven.breuner@itwm.fraunhofer.de
Szakacsits Szabolcs szaka@sienet.hu
Tadayoshi Funaba tadf@kt.rim.or.jp
TAKAI Kousuke takai@vlsi.kuee.kyoto-u.ac.jp
@@ -471,13 +570,17 @@ Thomas Hood jdthood@yahoo.co.uk
Thomas Luzat thomas@luzat.com
Thomas M.Ott thmo-13@gmx.de
Thomas Quinot thomas@Cuivre.FR.EU.ORG
Thomas Schwinge tschwinge@gnu.org
Thomas Wolff mined@towo.net
Tim J. Robbins tjr@FreeBSD.org
Tim Mooney mooney@dogbert.cc.ndsu.NoDak.edu
Tim Ryan Tim_Ryan@bnz.co.nz
Tim Smithers mouse@dmouse.com.au
Tim Underwood timunderwood@gmail.com
Tim Waugh twaugh@redhat
Toby Peterson toby@opendarwin.org
Todd A. Jacobs tjacobs@codegnome.org
Tom Fitzhenry tom@tom-fitzhenry.me.uk
Tom Haynes thomas@netapp.com
Tom Quinn trq@dionysos.thphys.ox.ac.uk
Tomas Pospisek tpo@sourcepole.ch
@@ -492,14 +595,19 @@ Torbjorn Granlund tege@nada.kth.se
Torbjorn Lindgren tl@funcom.no
Torsten Landschoff torsten@pclab.ifg.uni-kiel.de
Tristan Miller psychonaut@nothingisreal.com
Tzvi Rotshtein tzvi.ro@gmail.com
Ulrich Drepper drepper@gnu.org
Ulrich Hermisson ulrich_hermisson@hotmail.com
Urs Thuermann urs@isnogud.escape.de
Uwe H. Steinfeld usteinfeld@gmx.net
Vesselin Atanasov vesselin@bgnet.bg
Ville Skyttä ville.skytta@iki.fi
Vin Shelton acs@alumni.princeton.edu
Vincent Lefevre vincent@vinc17.org
Vineet Chadha chadha@acis.ufl.edu
Vitali Lovich vlovich@gmail.com
Vitaly A. Ostanin vyt@altlinux.org
Vito Caputo vcaputo@pengaru.com
Vlada Macek tuttle@bbs.fsik.cvut.cz
Volker Borchert bt@teknon.de
Volker Paul vpaul@dohle.com
@@ -513,11 +621,14 @@ William Bader william@nscs.fast.net
William Dowling will@franklin.com
William Lewis wiml@omnigroup.com
wiregauze wiregauze@yahoo.com
Wis Macomson wis.macomson@intel.com
Wojciech Purczynski cliph@isec.pl
Wolfram Kleff kleff@cs.uni-bonn.de
Won-kyu Park wkpark@chem.skku.ac.kr
Yang Ren ryang@redhat.com
Yanko Kaneti yaneti@declera.com
Yann Dirson dirson@debian.org
Zvi Har'El rl@math.technion.ac.il
Yutaka Amanai yasai-itame1942@jade.plala.or.jp
;; Local Variables:
;; coding: utf-8

139
TODO
View File

@@ -1,5 +1,45 @@
strip: add an option to specify the program used to strip binaries.
suggestion from Karl Berry
If you're interested in helping, here are some tasks that we've considered
over the years. Beware: some are quite old and no longer valid. To avoid
wasting your time by duplicating work or by working on a task that is no
longer pertinent, please search the mailing list and post your intent
before embarking on a big project.
==================================================
Modify chmod so that it does not change an inode's st_ctime
when the selected operation would have no other effect.
First suggested by Hans Ecke <http://hans.ecke.ws> in
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/2920
Discussed more recently on <http://bugs.debian.org/497514>.
document the following in coreutils.texi:
[
pinky
Suggestion from Paul Eggert:
More generally, there's not that much use for imaxtostr nowadays,
since the inttypes module and newer versions of gettext allow things
like _("truncating %s at %" PRIdMAX " bytes") to work portably.
I suspect that (if someone cares to take the time) we can remove
all instances of imaxtostr and umaxtostr in coreutils and gnulib.
cp --recursive: use fts and *at functions to perform directory traversals
in source and destination hierarchy rather than forming full file names.
The latter (current) approach fails unnecessarily when the names
become very long, and requires space and time that is quadratic in the
depth of the hierarchy. [Bo Borgerson is working on this]
printf:
Now that gnulib supports *printf("%a"), import one of the
*printf-posix modules so that printf(1) will support %a even on
platforms where the native *printf(3) is deficient.
Suggestion from Eric Blake.
consider adding some implementation of the "col" utility
Suggested by Karl Berry.
renice: POSIX utility, needs implementing.
suggestion from Karl Berry (among others).
Bob Proulx is working on this.
doc/coreutils.texi:
Address this comment: FIXME: mv's behavior in this case is system-dependent
@@ -11,17 +51,10 @@ cp --no-preserve=X should not attempt to preserve attribute X
reported by Andreas Schwab
copy.c: Address the FIXME-maybe comment in copy_internal.
And once that's done, add an exclusion so that `cp --link'
And once that's done, add an exclusion so that 'cp --link'
no longer incurs the overhead of saving src. dev/ino and dest. filename
in the hash table.
See if we can be consistent about where --verbose sends its output:
These all send --verbose output to stdout:
head, tail, rm, cp, mv, ln, chmod, chown, chgrp, install, ln
These send it to stderr:
shred mkdir split
readlink is different
Write an autoconf test to work around build failure in HPUX's 64-bit mode.
See notes in README -- and remove them once there's a work-around.
@@ -29,25 +62,11 @@ Integrate use of sendfile, suggested here:
http://mail.gnu.org/archive/html/bug-fileutils/2003-03/msg00030.html
I don't plan to do that, since a few tests demonstrate no significant benefit.
Should printf '\0123' print "\n3"?
per report from TAKAI Kousuke on Mar 27
http://mail.gnu.org/archive/html/bug-coreutils/2003-03/index.html
printf: consider adapting builtins/printf.def from bash
df: add `--total' option, suggested here http://bugs.debian.org/186007
seq: give better diagnostics for invalid formats:
e.g. no or too many % directives
seq: consider allowing format string to contain no %-directives
resolve RH report on cp -a forwarded by Tim Waugh
tail: don't use xlseek; it *exits*.
Instead, maybe use a macro and return nonzero.
add mktemp? Suggested by Nelson Beebe
tr: support nontrivial equivalence classes, e.g. [=e=] with LC_COLLATE=fr_FR
lib/strftime.c: Since %N is the only format that we need but that
@@ -55,16 +74,11 @@ lib/strftime.c: Since %N is the only format that we need but that
would expand /%(-_)?\d*N/ to the desired string and then pass the
resulting string to glibc's strftime.
sort: Compress temporary files when doing large external sort/merges.
This improves performance when you can compress/uncompress faster than
you can read/write, which is common in these days of fast CPUs.
suggestion from Charles Randall on 2001-08-10
unexpand: [http://www.opengroup.org/onlinepubs/007908799/xcu/unexpand.html]
printf 'x\t \t y\n'|unexpand -t 8,9 should print its input, unmodified.
printf 'x\t \t y\n'|unexpand -t 5,8 should print "x\ty\n"
Let GNU su use the `wheel' group if appropriate.
Let GNU su use the 'wheel' group if appropriate.
(there are a couple patches, already)
sort: Investigate better sorting algorithms; see Knuth vol. 3.
@@ -85,9 +99,8 @@ sort: Investigate better sorting algorithms; see Knuth vol. 3.
5.3.1, who credits Lester Ford, Jr. and Selmer Johnson, American
Mathematical Monthly 66 (1959), 387-389.
cp --recursive: perform dir traversals in source and dest hierarchy rather
than forming full file names. The latter (current) approach fails
unnecessarily when the names become very long.
shred: Update shred as described here to conform to DoD 5220 rules:
http://lists.gnu.org/archive/html/bug-coreutils/2007-05/msg00075.html
Remove suspicious uses of alloca (ones that may allocate more than
about 4k)
@@ -95,16 +108,15 @@ Remove suspicious uses of alloca (ones that may allocate more than
Adapt these contribution guidelines for coreutils:
http://sources.redhat.com/automake/contribute.html
Improve test coverage.
See HACKING for instructions on generating an html test coverage report.
Find a program that has poor coverage and improve.
Changes expected to go in, someday.
======================================
dd patch from Olivier Delhomme
Andreas Gruenbacher's xattr changes
Apply Bruno Haible's hostname changes
test/mv/*: clean up $other_partition_tmpdir in all cases
ls: when both -l and --dereference-command-line-symlink-to-dir are
@@ -113,71 +125,55 @@ Changes expected to go in, someday.
an implicit --NO-dereference-command-line-symlink-to-dir meaning.
Pointed out by Karl Berry.
A more efficient version of factor, and possibly one that
accepts inputs of size 2^64 and larger.
dd: consider adding an option to suppress `bytes/block read/written'
dd: consider adding an option to suppress 'bytes/block read/written'
output to stderr. Suggested here:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=165045
Pending copyright papers:
------------------------
ls --color: Ed Avis' patch to suppress escape sequences for
non-highlighted files
getpwnam from Bruce Korb
pb (progress bar) from Miika Pekkarinen
------------------------------
Have euidaccess.m4 check for eaccess as well as euidaccess
If found, then do `#define euidaccess eaccess'.
Remove long-deprecated options. Search case-insensitive for
`deprecated' and `remove in '. Automate this.
'deprecated' and 'remove in '. Automate this.
Add a distcheck-time test to ensure that every distributed
file is either read-only(indicating generated) or is
version-controlled and up to date.
Implement Ulrich Drepper's suggestion to use getgrouplist rather
than getugroups. This affects only `id', but makes a big difference
on systems with many users and/or groups, and makes id usable once
again on systems where access restrictions make getugroups fail.
But first we'll need a run-test (either in an autoconf macro or at
run time) to avoid the segfault bug in libc-2.3.2's getgrouplist.
In that case, we'd revert to using a new (to-be-written) getgrouplist
module that does most of what `id' already does. Or just avoid the
buggy use of getgrouplist by never passing it a buffer of length zero.
See https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=200327
remove `%s' notation:
remove '%s' notation (now that they're all gone, add a maint.mk sc_
rule to ensure no new ones are added):
grep -E "\`%.{,4}s'" src/*.c
remove all uses of the 'register' keyword: Done. add a maint.mk rule
for this, too.
remove or adjust chown's --changes option, since it
can't always do what it currently says it does.
Support arbitrary-precision arithmetic in those tools for which it
makes sense. Factor and expr already support this via libgmp.
The "test" program is covered via its string-based comparison of
integers. To be converted: seq.
Adapt tools like wc, tr, fmt, etc. (most of the textutils) to be
multibyte aware. The problem is that I want to avoid duplicating
significant blocks of logic, yet I also want to incur only minimal
(preferably `no') cost when operating in single-byte mode.
Remove all uses of the `register' keyword
(preferably 'no') cost when operating in single-byte mode.
pr's use of nstrftime can make it malloc a very large (up to SIZE_MAX) buffer
ls.c: use gettime rather than clock_gettime, gettimeofday, time
-----
Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
Inc.
Copyright (C) 2002-2012 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -185,5 +181,4 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@@ -1,436 +0,0 @@
#!/usr/bin/perl -w
# Generate an announcement message.
# Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
use strict;
use Getopt::Long;
use Digest::MD5;
use Digest::SHA1;
(my $VERSION = '$Revision: 1.25 $ ') =~ tr/[0-9].//cd;
(my $ME = $0) =~ s|.*/||;
my %valid_release_types = map {$_ => 1} qw (alpha beta major);
END
{
# Nobody ever checks the status of print()s. That's okay, because
# if any do fail, we're guaranteed to get an indicator when we close()
# the filehandle.
#
# Close stdout now, and if there were no errors, return happy status.
# If stdout has already been closed by the script, though, do nothing.
defined fileno STDOUT
or return;
close STDOUT
and return;
# Errors closing stdout. Indicate that, and hope stderr is OK.
warn "$ME: closing standard output: $!\n";
# Don't be so arrogant as to assume that we're the first END handler
# defined, and thus the last one invoked. There may be others yet
# to come. $? will be passed on to them, and to the final _exit().
#
# If it isn't already an error, make it one (and if it _is_ an error,
# preserve the value: it might be important).
$? ||= 1;
}
sub usage ($)
{
my ($exit_code) = @_;
my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR);
if ($exit_code != 0)
{
print $STREAM "Try `$ME --help' for more information.\n";
}
else
{
my @types = sort keys %valid_release_types;
print $STREAM <<EOF;
Usage: $ME [OPTIONS]
OPTIONS:
Generate an announcement message.
FIXME: describe the following
--release-type=TYPE TYPE must be one of @types
--package-name=PACKAGE_NAME
--previous-version=VER
--current-version=VER
--gpg-key-id=ID The GnuPG ID of the key used to sign the tarballs
--release-archive-directory=DIR
--url-directory=URL_DIR
--news=NEWS_FILE optional
--help display this help and exit
--version output version information and exit
EOF
}
exit $exit_code;
}
=item C<%size> = C<sizes (@file)>
Compute the sizes of the C<@file> and return them as a hash. Return
C<undef> if one of the computation failed.
=cut
sub sizes (@)
{
my (@file) = @_;
my $fail = 0;
my %res;
foreach my $f (@file)
{
my $cmd = "du --human $f";
my $t = `$cmd`;
# FIXME-someday: give a better diagnostic, a la $PROCESS_STATUS
$@
and (warn "$ME: command failed: `$cmd'\n"), $fail = 1;
chomp $t;
$t =~ s/^([\d.]+[MkK]).*/${1}B/;
$res{$f} = $t;
}
return $fail ? undef : %res;
}
=item C<print_locations ($title, \@url, \%size, @file)
Print a section C<$title> dedicated to the list of <@file>, which
sizes are stored in C<%size>, and which are available from the C<@url>.
=cut
sub print_locations ($\@\%@)
{
my ($title, $url, $size, @file) = @_;
print "Here are the $title:\n";
foreach my $url (@{$url})
{
for my $file (@file)
{
print " $url/$file";
print " (", $$size{$file}, ")"
if exists $$size{$file};
print "\n";
}
}
print "\n";
}
=item C<print_checksums (@file)
Print the MD5 and SHA1 signature section for each C<@file>.
=cut
sub print_checksums (@)
{
my (@file) = @_;
print "Here are the MD5 and SHA1 checksums:\n";
print "\n";
foreach my $meth (qw (md5 sha1))
{
foreach my $f (@file)
{
open IN, '<', $f
or die "$ME: $f: cannot open for reading: $!\n";
binmode IN;
my $dig =
($meth eq 'md5'
? Digest::MD5->new->addfile(*IN)->hexdigest
: Digest::SHA1->new->addfile(*IN)->hexdigest);
close IN;
print "$dig $f\n";
}
}
}
=item C<print_news_deltas ($news_file, $prev_version, $curr_version)
Print the section of the NEWS file C<$news_file> addressing changes
between versions C<$prev_version> and C<$curr_version>.
=cut
sub print_news_deltas ($$$)
{
my ($news_file, $prev_version, $curr_version) = @_;
print "\n$news_file\n\n";
# Print all lines from $news_file, starting with the first one
# that mentions $curr_version up to but not including
# the first occurrence of $prev_version.
my $in_items;
open NEWS, '<', $news_file
or die "$ME: $news_file: cannot open for reading: $!\n";
while (defined (my $line = <NEWS>))
{
if ( ! $in_items)
{
# Match lines like this one:
# * Major changes in release 5.0.1:
# but not any other line that starts with a space, *, or -.
$line =~ /^(\* Major changes.*|[^ *-].*)\Q$curr_version\E/o
or next;
$in_items = 1;
print $line;
}
else
{
# Be careful that this regexp cannot match version numbers
# in NEWS items -- they might well say `introduced in 4.5.5',
# and we don't want that to match.
$line =~ /^(\* Major changes.*|[^ *-].*)\Q$prev_version\E/o
and last;
print $line;
}
}
close NEWS;
$in_items
or die "$ME: $news_file: no matching lines for `$curr_version'\n";
}
sub print_changelog_deltas ($$)
{
my ($package_name, $prev_version) = @_;
# Print new ChangeLog entries.
# First find all CVS-controlled ChangeLog files.
use File::Find;
my @changelog;
find ({wanted => sub {$_ eq 'ChangeLog' && -d 'CVS'
and push @changelog, $File::Find::name}},
'.');
# If there are no ChangeLog files, we're done.
@changelog
or return;
my %changelog = map {$_ => 1} @changelog;
# Reorder the list of files so that if there are ChangeLog
# files in the specified directories, they're listed first,
# in this order:
my @dir = qw ( . src lib m4 config doc );
# A typical @changelog array might look like this:
# ./ChangeLog
# ./po/ChangeLog
# ./m4/ChangeLog
# ./lib/ChangeLog
# ./doc/ChangeLog
# ./config/ChangeLog
my @reordered;
foreach my $d (@dir)
{
my $dot_slash = $d eq '.' ? $d : "./$d";
my $target = "$dot_slash/ChangeLog";
delete $changelog{$target}
and push @reordered, $target;
}
# Append any remaining ChangeLog files.
push @reordered, sort keys %changelog;
# Remove leading `./'.
@reordered = map { s!^\./!!; $_ } @reordered;
print "\nChangeLog entries:\n\n";
# print join ("\n", @reordered), "\n";
$prev_version =~ s/\./_/g;
my $prev_cvs_tag = "\U$package_name\E-$prev_version";
my $cmd = "cvs -n diff -u -r$prev_cvs_tag -rHEAD @reordered";
open DIFF, '-|', $cmd
or die "$ME: cannot run `$cmd': $!\n";
# Print two types of lines, making minor changes:
# Lines starting with `+++ ', e.g.,
# +++ ChangeLog 22 Feb 2003 16:52:51 -0000 1.247
# and those starting with `+'.
# Don't print the others.
my $prev_printed_line_empty = 1;
while (defined (my $line = <DIFF>))
{
if ($line =~ /^\+\+\+ /)
{
my $separator = "*"x70 ."\n";
$line =~ s///;
$line =~ s/\s.*//;
$prev_printed_line_empty
or print "\n";
print $separator, $line, $separator;
}
elsif ($line =~ /^\+/)
{
$line =~ s///;
print $line;
$prev_printed_line_empty = ($line =~ /^$/);
}
}
close DIFF;
# The exit code should be 1.
# Allow in case there are no modified ChangeLog entries.
$? == 256 || $? == 128
or warn "$ME: warning: `cmd' had unexpected exit code or signal ($?)\n";
}
{
# Neutralize the locale, so that, for instance, "du" does not
# issue "1,2" instead of "1.2", what confuses our regexps.
$ENV{LC_ALL} = "C";
my $release_type;
my $package_name;
my $prev_version;
my $curr_version;
my $release_archive_dir;
my $gpg_key_id;
my @url_dir_list;
my @news_file;
GetOptions
(
'release-type=s' => \$release_type,
'package-name=s' => \$package_name,
'previous-version=s' => \$prev_version,
'current-version=s' => \$curr_version,
'gpg-key-id=s' => \$gpg_key_id,
'release-archive-directory=s' => \$release_archive_dir,
'url-directory=s' => \@url_dir_list,
'news=s' => \@news_file,
help => sub { usage 0 },
version => sub { print "$ME version $VERSION\n"; exit },
) or usage 1;
my $fail = 0;
# Ensure that sure each required option is specified.
$release_type
or (warn "$ME: release type not specified\n"), $fail = 1;
$package_name
or (warn "$ME: package name not specified\n"), $fail = 1;
$prev_version
or (warn "$ME: previous version string not specified\n"), $fail = 1;
$curr_version
or (warn "$ME: current version string not specified\n"), $fail = 1;
$release_archive_dir
or (warn "$ME: release directory name not specified\n"), $fail = 1;
@url_dir_list
or (warn "$ME: URL directory name(s) not specified\n"), $fail = 1;
exists $valid_release_types{$release_type}
or (warn "$ME: `$release_type': invalid release type\n"), $fail = 1;
@ARGV
and (warn "$ME: too many arguments\n"), $fail = 1;
$fail
and usage 1;
my $my_distdir = "$package_name-$curr_version";
my $tgz = "$my_distdir.tar.gz";
my $tbz = "$my_distdir.tar.bz2";
my $xd = "$package_name-$prev_version-$curr_version.xdelta";
my %size = sizes ($tgz, $tbz, $xd);
%size
or exit 1;
# The markup is escaped as <\# so that when this script is sent by
# mail (or part of a diff), Gnus is not triggered.
print <<EOF;
Subject: $my_distdir released
<\#secure method=pgpmime mode=sign>
FIXME: put comments here
EOF
print_locations ("compressed sources", @url_dir_list, %size,
$tgz, $tbz);
print_locations ("xdelta-style diffs", @url_dir_list, %size,
$xd);
print_locations ("GPG detached signatures[*]", @url_dir_list, %size,
"$tgz.sig", "$tbz.sig");
print_checksums ($tgz, $tbz, $xd);
print <<EOF;
[*] You can use either of the above signature files to verify that
the corresponding file (without the .sig suffix) is intact. First,
be sure to download both the .sig file and the corresponding tarball.
Then, run a command like this:
gpg --verify $tgz.sig
If that command fails because you don't have the required public key,
then run this command to import it:
gpg --keyserver wwwkeys.pgp.net --recv-keys $gpg_key_id
and rerun the \`gpg --verify' command.
EOF
print_news_deltas ($_, $prev_version, $curr_version)
foreach @news_file;
$release_type eq 'major'
or print_changelog_deltas ($package_name, $prev_version);
exit 0;
}
### Setup "GNU" style for perl-mode and cperl-mode.
## Local Variables:
## perl-indent-level: 2
## perl-continued-statement-offset: 2
## perl-continued-brace-offset: 0
## perl-brace-offset: 0
## perl-brace-imaginary-offset: 0
## perl-label-offset: -2
## cperl-indent-level: 2
## cperl-brace-offset: 0
## cperl-continued-brace-offset: 0
## cperl-label-offset: -2
## cperl-extra-newline-before-brace: t
## cperl-merge-trailing-else: nil
## cperl-continued-statement-offset: 2
## End:

966
bootstrap

File diff suppressed because it is too large Load Diff

View File

@@ -1,11 +1,11 @@
# Bootstrap configuration.
# Copyright (C) 2006 Free Software Foundation, Inc.
# Copyright (C) 2006-2012 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,56 +13,264 @@
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# We don't need these modules, even though gnulib-tool mistakenly
# includes them because of gettext dependencies.
# We don't need these modules.
avoided_gnulib_modules='
--avoid=lock
--avoid=size_max
--avoid=xsize
'
# These modules are obsolete and can probably be removed soon,
# but leave them in for now to minimize changes.
obsolete_gnulib_modules='
atexit free memchr memcmp memcpy memmove memset rename
strcspn strtod strtol utime
--avoid=canonicalize-lgpl
--avoid=dummy
'
# gnulib modules used by this package.
gnulib_modules="
$avoided_gnulib_modules
$obsolete_gnulib_modules
acl alloca argmatch assert backupfile base64 c-strtod
c-strtold calloc canon-host canonicalize chown cloexec
config-h configmake
closeout cycle-check d-ino d-type diacrit dirfd dirname dup2
error euidaccess exclude exitfail fcntl fcntl-safer fdl file-type
fileblocks filemode filenamecat fnmatch-gnu fopen-safer
fprintftime fsusage ftruncate fts getdate getgroups gethrxtime
getline getloadavg getndelim2 getopt getpagesize getpass-gnu
gettext gettime gettimeofday getugroups getusershell gnupload
group-member hard-locale hash hash-pjw host-os human idcache
inttostr inttypes isapipe
lchmod lchown lib-ignore linebuffer link-follow
long-options lstat malloc mbswidth md5 memcasecmp mempcpy
memrchr mkancesdirs mkdir mkdir-p mkstemp mktime modechange
mountlist obstack pathmax perl physmem posixtm posixver putenv
quote quotearg raise readlink readtokens readtokens0 readutmp
realloc regex rename-dest-slash rmdir rmdir-errno rpmatch
safe-read same
save-cwd savedir savewd settime sha1 sig2str ssize_t stat-macros
stat-time stdbool stdlib-safer stpcpy strcase strftime
strpbrk strtoimax strtoumax strverscmp timespec tzset
unicodeio unistd-safer unlink-busy unlinkdir unlocked-io
uptime userspec utimecmp utimens vasprintf verify version-etc-fsf
wcwidth winsz-ioctl winsz-termios xalloc xgetcwd xgethostname
xmemcoll xnanosleep xreadlink xstrtod xstrtoimax xstrtol
xstrtold xstrtoumax yesno
$avoided_gnulib_modules
acl
alignof
alloca
announce-gen
areadlink-with-size
argmatch
argv-iter
assert
autobuild
backupfile
base64
c-strcase
c-strtod
c-strtold
calloc-gnu
canon-host
canonicalize
chown
cloexec
closein
closeout
config-h
configmake
crypto/md5
crypto/sha1
crypto/sha256
crypto/sha512
cycle-check
d-ino
d-type
di-set
diacrit
dirfd
dirname
do-release-commit-and-tag
dtoastr
dup2
environ
error
euidaccess
exclude
exitfail
faccessat
fadvise
fchdir
fchmodat
fchownat
fclose
fcntl
fcntl-safer
fdatasync
fdl
fdopen
fdutimensat
file-type
fileblocks
filemode
filenamecat
filevercmp
fnmatch-gnu
fopen-safer
fprintftime
freopen
freopen-safer
fseeko
fstatat
fsusage
fsync
ftello
ftoastr
ftruncate
fts
full-read
full-write
getgroups
gethrxtime
getline
getloadavg
getlogin
getndelim2
getopt-gnu
getpagesize
getpass-gnu
gettext-h
gettime
gettimeofday
getugroups
getusershell
git-version-gen
gitlog-to-changelog
gnu-make
gnu-web-doc-update
gnumakefile
gnupload
group-member
hard-locale
hash
hash-pjw
heap
host-os
human
idcache
ignore-value
inttostr
inttypes
isapipe
isatty
isblank
largefile
lchmod
lchown
ldtoastr
lib-ignore
linebuffer
link
link-follow
linkat
long-options
lstat
maintainer-makefile
malloc-gnu
manywarnings
mbrlen
mbrtowc
mbsalign
mbswidth
memcasecmp
memchr
memcmp2
mempcpy
memrchr
mgetgroups
mkancesdirs
mkdir
mkdir-p
mkfifo
mknod
mkstemp
mktime
modechange
mountlist
mpsort
netinet_in
nproc
obstack
parse-datetime
pathmax
perl
physmem
pipe
posix-shell
posixtm
posixver
priv-set
progname
propername
pthread
putenv
quote
quotearg
randint
randperm
read-file
readlink
readtokens
readtokens0
readutmp
realloc-gnu
regex
remove
rename
rmdir
root-dev-ino
rpmatch
safe-read
same
save-cwd
savedir
savewd
selinux-at
settime
sig2str
sigaction
ssize_t
stat-macros
stat-size
stat-time
stdbool
stdlib-safer
stpcpy
stpncpy
strdup-posix
strftime
strncat
strpbrk
strsignal
strtod
strtoimax
strtoumax
symlink
sys_ioctl
sys_stat
sys_wait
termios
timer-time
timespec
tzset
uname
unicodeio
unistd-safer
unlink-busy
unlinkat
unlocked-io
unsetenv
update-copyright
uptime
useless-if-before-free
userspec
utimecmp
utimens
vasprintf-posix
vc-list-files
verify
verror
version-etc-fsf
wcswidth
wcwidth
winsz-ioctl
winsz-termios
write-any-file
xalloc
xfreopen
xgetcwd
xgetgroups
xgethostname
xmemcoll
xnanosleep
xprintf
xprintf-posix
xreadlink
xstrtod
xstrtoimax
xstrtol
xstrtold
xstrtoumax
yesno
"
# Other locale categories that need message catalogs.
@@ -70,23 +278,78 @@ EXTRA_LOCALE_CATEGORIES=LC_TIME
# Additional xgettext options to use. Use "\\\newline" to break lines.
XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
--from-code=UTF-8\\\
--flag=asprintf:2:c-format --flag=vasprintf:2:c-format\\\
--flag=asnprintf:3:c-format --flag=vasnprintf:3:c-format\\\
--flag=asnprintf:3:c-format\\\
--flag=asprintf:2:c-format\\\
--flag=error:3:c-format\\\
--flag=error_at_line:5:c-format\\\
--flag=vasnprintf:3:c-format\\\
--flag=vasprintf:2:c-format\\\
--flag=verror:3:c-format\\\
--flag=verror_at_line:5:c-format\\\
--flag=wrapf:1:c-format\\\
--flag=xasprintf:1:c-format\\\
--flag=xfprintf:2:c-format\\\
--flag=xprintf:1:c-format\\\
--from-code=UTF-8\\\
'
# Gettext supplies these files, but we don't need them since
# we don't have an intl subdirectory.
excluded_files='
m4/glibc2.m4
m4/intdiv0.m4
m4/lcmessage.m4
m4/lock.m4
m4/printf-posix.m4
m4/size_max.m4
m4/uintmax_t.m4
m4/ulonglong.m4
m4/visibility.m4
m4/xsize.m4
# Append these, since we use the propername module.
see_manual='"This is a proper name. See the gettext manual, section Names."'
see_manual=\'"$see_manual"\'
XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
--keyword=proper_name:1,'"$see_manual"'\\\
--keyword=proper_name_utf8:1,'"$see_manual"'\\\
'
gnulib_tool_option_extras="--tests-base=gnulib-tests --with-tests --symlink\
--makefile-name=gnulib.mk
"
# Build prerequisites
buildreq="\
autoconf 2.62
automake 1.11.1
autopoint -
bison -
gettext 0.17
git 1.4.4
gperf -
gzip -
makeinfo 4.13
patch -
perl 5.5
rsync -
tar -
xz -
"
# Automake requires that ChangeLog exist.
touch ChangeLog || exit 1
bootstrap_epilogue()
{
# Since this is a "GNU" package, replace this line
# if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null \
# | grep -v 'libtool:' >/dev/null; then
# with this:
# if true; then
# Why? That pipeline searches all files in $(top_srcdir), and if you
# happen to have large files (or apparently large sparse files), the
# first grep may well run out of memory.
perl -pi -e 's/if LC_ALL=C grep .GNU .PACKAGE.*; then/if true; then/' \
po/Makefile.in.in
# Install our git hooks, as long as "cp" accepts the --backup option,
# so that we can back up any existing files.
case $(cp --help) in *--backup*) backup=1;; *) backup=0;; esac
if test $backup = 1; then
hooks=$(cd scripts/git-hooks && git ls-files)
for f in $hooks; do
# If it is identical, skip it.
cmp scripts/git-hooks/$f .git/hooks/$f > /dev/null \
&& continue
cp --backup=numbered scripts/git-hooks/$f .git/hooks
chmod a-w .git/hooks/$f
done
fi
}

View File

@@ -1,12 +0,0 @@
compile
config.guess
config.rpath
config.sub
depcomp
gnupload
install-sh
mdate-sh
missing
mkinstalldirs
texinfo.tex
ylwrap

11
build-aux/.gitignore vendored
View File

@@ -1,11 +0,0 @@
compile
config.guess
config.rpath
config.sub
depcomp
gnupload
install-sh
mdate-sh
missing
texinfo.tex
ylwrap

View File

@@ -1,3 +1,18 @@
2007-09-29 Eric Blake <ebb9@byu.net>
* check.mk (%.log): Also allow suffix-less tests, on platforms
where $(EXEEXT) is not empty.
2007-09-15 Jim Meyering <jim@meyering.net>
* vc-list-files: Remove mercurial support.
Check for CVS first. Adjust comments.
2007-01-30 Jim Meyering <jim@meyering.net>
* vc-list-files: Select column 2, not 3 (hg-0.9.3's manifest format
now has only two columns).
2006-10-14 Jim Meyering <jim@meyering.net>
* vc-list-files: Don't filter git-ls-files output through cut.
@@ -219,8 +234,7 @@
-----
Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software
Foundation, Inc.
Copyright (C) 2002-2012 Free Software Foundation, Inc.
Copying and distribution of this file, with or without
modification, are permitted provided the copyright notice

View File

@@ -6,20 +6,18 @@
# Initially written by Tom Tromey <tromey@cygnus.com>
# Completely rewritten by Pavel Roskin <proski@gnu.org>
#
# This program is free software; you can redistribute it and/or modify
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
require 5.004;
@@ -29,20 +27,20 @@ use Time::Local;
use strict;
use vars qw($list_types %messages %options @batch_list $batch_cmd
$no_recurse $explain_type $find_mode $short_print
$no_cvsignore $nolinks $file $single_filename $curr_dir
@common_ignores $ignore_rx %entries %subdirs %removed);
$no_recurse $explain_type $find_mode $short_print
$no_cvsignore $nolinks $file $single_filename $curr_dir
@common_ignores $ignore_rx %entries %subdirs %removed);
use constant SUBDIR_FOUND => 1;
use constant SUBDIR_CVS => 2;
# This list comes from the CVS manual.
use constant STANDARD_IGNORES =>
('RCS', 'SCCS', 'CVS', 'CVS.adm', 'RCSLOG', 'cvslog.*', 'tags',
'TAGS', '.make.state', '.nse_depinfo', '*~', '#*', '.#*', ',*',
"_\$*", "*\$", '*.old', '*.bak', '*.BAK', '*.orig', '*.rej',
'.del-*', '*.a', '*.olb', '*.o', '*.obj', '*.so', '*.exe',
'*.Z', '*.elc', '*.ln', 'core');
('RCS', 'SCCS', 'CVS', 'CVS.adm', 'RCSLOG', 'cvslog.*', 'tags',
'TAGS', '.make.state', '.nse_depinfo', '*~', '#*', '.#*', ',*',
"_\$*", "*\$", '*.old', '*.bak', '*.BAK', '*.orig', '*.rej',
'.del-*', '*.a', '*.olb', '*.o', '*.obj', '*.so', '*.exe',
'*.Z', '*.elc', '*.ln', 'core');
# 3-letter month names in POSIX locale, for fast date decoding
my %months = (
@@ -64,20 +62,20 @@ my %months = (
sub usage ()
{
print "Usage:\n" .
" cvsu [OPTIONS] [FILE] ...\n" .
"Options:\n" .
" --local Disable recursion\n" .
" --explain Verbosely print status of files\n" .
" --find Emulate find - filenames only\n" .
" --short Don't print paths\n" .
" --ignore Don't read .cvsignore\n" .
" --messages List known file types and long messages\n" .
" --nolinks Disable recognizing hard and soft links\n" .
" --types=[^]LIST Print only file types [not] from LIST\n" .
" --batch=COMMAND Execute this command on files\n" .
" --help Print this usage information\n" .
" --version Print version number\n" .
"Abbreviations and short options are supported\n";
" cvsu [OPTIONS] [FILE] ...\n" .
"Options:\n" .
" --local Disable recursion\n" .
" --explain Verbosely print status of files\n" .
" --find Emulate find - filenames only\n" .
" --short Don't print paths\n" .
" --ignore Don't read .cvsignore\n" .
" --messages List known file types and long messages\n" .
" --nolinks Disable recognizing hard and soft links\n" .
" --types=[^]LIST Print only file types [not] from LIST\n" .
" --batch=COMMAND Execute this command on files\n" .
" --help Print this usage information\n" .
" --version Print version number\n" .
"Abbreviations and short options are supported\n";
exit 0;
}
@@ -92,11 +90,11 @@ sub version ()
sub adjust_types ()
{
if ($list_types =~ m{^\^(.*)$}) {
$list_types = "";
foreach (keys %messages) {
$list_types .= $_
if (index ($1, $_) < 0);
}
$list_types = "";
foreach (keys %messages) {
$list_types .= $_
if (index ($1, $_) < 0);
}
}
}
@@ -106,12 +104,12 @@ sub list_messages ()
my $default_mark;
print "Recognizable file types are:\n";
foreach (sort keys %messages) {
if (index($list_types, $_) >= 0) {
$default_mark = "*";
} else {
$default_mark = " ";
}
print " $default_mark $_ $messages{$_}\n";
if (index($list_types, $_) >= 0) {
$default_mark = "*";
} else {
$default_mark = " ";
}
print " $default_mark $_ $messages{$_}\n";
}
print "* indicates file types listed by default\n";
exit 0;
@@ -126,28 +124,28 @@ sub init_ignores ()
push @common_ignores, STANDARD_IGNORES;
unless (defined($HOME)) {
return;
return;
}
my $home_cvsignore = "${HOME}/.cvsignore";
if (-f "$home_cvsignore") {
unless (open (CVSIGNORE, "< $home_cvsignore")) {
error ("couldn't open $home_cvsignore: $!");
}
unless (open (CVSIGNORE, "< $home_cvsignore")) {
error ("couldn't open $home_cvsignore: $!");
}
while (<CVSIGNORE>) {
push (@common_ignores, split);
}
while (<CVSIGNORE>) {
push (@common_ignores, split);
}
close (CVSIGNORE);
close (CVSIGNORE);
}
my $CVSIGNOREENV = $ENV{"CVSIGNORE"};
unless (defined($CVSIGNOREENV)) {
return;
return;
}
my @ignores_var = split (/ /, $CVSIGNOREENV);
@@ -159,15 +157,15 @@ sub init_ignores ()
# Newline is added at the end.
sub error ($)
{
print STDERR "cvsu: ERROR: " . shift(@_) . "\n";
exit 1;
print STDERR "cvsu: ERROR: " . shift(@_) . "\n";
exit 1;
}
# execute commands from @exec_list with $exec_cmd
sub do_batch ()
{
my @cmd_list = split (' ', $batch_cmd);
system (@cmd_list, @batch_list);
my @cmd_list = split (' ', $batch_cmd);
system (@cmd_list, @batch_list);
}
# print files status
@@ -179,34 +177,34 @@ sub file_status ($)
my $pathfile;
return
if $ignore_rx ne '' && $type =~ /[?SLD]/ && $file =~ /$ignore_rx/;
if $ignore_rx ne '' && $type =~ /[?SLD]/ && $file =~ /$ignore_rx/;
return
if (index($list_types, $type) < 0);
if (index($list_types, $type) < 0);
$pathfile = $curr_dir . $file;
if (defined($batch_cmd)) {
push (@batch_list, $pathfile);
# 1000 items in the command line might be too much for HP-UX
if ($#batch_list > 1000) {
do_batch();
undef @batch_list;
}
push (@batch_list, $pathfile);
# 1000 items in the command line might be too much for HP-UX
if ($#batch_list > 1000) {
do_batch();
undef @batch_list;
}
}
if ($short_print) {
$item = $file;
$item = $file;
} else {
$item = $pathfile;
$item = $pathfile;
}
if ($find_mode) {
print "$item\n";
print "$item\n";
} else {
$type = $messages{$type}
if ($explain_type);
print "$type $item\n";
$type = $messages{$type}
if ($explain_type);
print "$type $item\n";
}
}
@@ -221,28 +219,28 @@ sub load_entries ($)
my %ent = ();
unless (open (ENTRIES, "< $entries_file")) {
error ("couldn't open $entries_file: $!");
error ("couldn't open $entries_file: $!");
}
while (<ENTRIES>) {
chomp;
$ent{$_} = 1;
chomp;
$ent{$_} = 1;
}
close (ENTRIES);
if (open (ENTRIES, "< $entries_log_file")) {
while (<ENTRIES>) {
chomp;
if ( m{^A (.+)} ) {
$ent{$1} = 1;
} elsif ( m{^R (.+)} ) {
delete $ent{$1};
} else {
# Note: "cvs commit" helps even when you are offline
error ("$entries_log_file:$.: unrecognizable line, " .
"try \"cvs commit\"");
}
}
close (ENTRIES);
while (<ENTRIES>) {
chomp;
if ( m{^A (.+)} ) {
$ent{$1} = 1;
} elsif ( m{^R (.+)} ) {
delete $ent{$1};
} else {
# Note: "cvs commit" helps even when you are offline
error ("$entries_log_file:$.: unrecognizable line, " .
"try \"cvs commit\"");
}
}
close (ENTRIES);
}
return keys %ent;
@@ -262,28 +260,28 @@ sub process_arg ($)
local $single_filename = 0;
if ( $arg eq "" or -d $arg ) {
$curr_dir = $arg;
my $real_curr_dir = $curr_dir eq "" ? "." : $curr_dir;
$curr_dir = $arg;
my $real_curr_dir = $curr_dir eq "" ? "." : $curr_dir;
error ("$real_curr_dir is not a directory")
unless ( -d $real_curr_dir );
error ("$real_curr_dir is not a directory")
unless ( -d $real_curr_dir );
# Scan present files.
file_status (".");
opendir (DIR, $real_curr_dir) ||
error ("couldn't open directory $real_curr_dir: $!");
foreach (readdir (DIR)) {
$found_files {$_} = 1;
}
closedir (DIR);
# Scan present files.
file_status (".");
opendir (DIR, $real_curr_dir) ||
error ("couldn't open directory $real_curr_dir: $!");
foreach (readdir (DIR)) {
$found_files {$_} = 1;
}
closedir (DIR);
} else {
$single_filename = basename $arg;
$curr_dir = dirname $arg;
$found_files{$single_filename} = 1 if lstat $arg;
$single_filename = basename $arg;
$curr_dir = dirname $arg;
$found_files{$single_filename} = 1 if lstat $arg;
}
$curr_dir .= "/"
unless ( $curr_dir eq "" || $curr_dir =~ m{/$} );
unless ( $curr_dir eq "" || $curr_dir =~ m{/$} );
# Scan CVS/Entries.
my %entries = ();
@@ -291,118 +289,118 @@ sub process_arg ($)
my %removed = ();
foreach ( load_entries ("${curr_dir}CVS/Entries") ) {
if ( m{^D/([^/]+)/} ) {
$subdirs{$1} = SUBDIR_FOUND if !$single_filename;
} elsif ( m{^/([^/]+)/([^/])[^/]*/([^/]*)/} ) {
if ( !$single_filename or $single_filename eq $1 ) {
$entries{$1} = $3;
$removed{$1} = 1
if $2 eq '-';
}
} elsif ( m{^D$} ) {
next;
} else {
error ("${curr_dir}CVS/Entries: unrecognizable line");
}
if ( m{^D/([^/]+)/} ) {
$subdirs{$1} = SUBDIR_FOUND if !$single_filename;
} elsif ( m{^/([^/]+)/([^/])[^/]*/([^/]*)/} ) {
if ( !$single_filename or $single_filename eq $1 ) {
$entries{$1} = $3;
$removed{$1} = 1
if $2 eq '-';
}
} elsif ( m{^D$} ) {
next;
} else {
error ("${curr_dir}CVS/Entries: unrecognizable line");
}
}
if ( $single_filename && !$entries{$single_filename} &&
!$found_files{$single_filename} ) {
error ("nothing known about $arg");
!$found_files{$single_filename} ) {
error ("nothing known about $arg");
}
# Scan .cvsignore if any
unless ($no_cvsignore) {
my (@ignore_list) = ();
my (@ignore_list) = ();
if (-f "${curr_dir}.cvsignore") {
open (CVSIGNORE, "< ${curr_dir}.cvsignore")
|| error ("couldn't open ${curr_dir}.cvsignore: $!");
while (<CVSIGNORE>) {
push (@ignore_list, split);
}
close (CVSIGNORE);
}
if (-f "${curr_dir}.cvsignore") {
open (CVSIGNORE, "< ${curr_dir}.cvsignore")
|| error ("couldn't open ${curr_dir}.cvsignore: $!");
while (<CVSIGNORE>) {
push (@ignore_list, split);
}
close (CVSIGNORE);
}
my ($iter);
foreach $iter (@ignore_list, @common_ignores) {
if ($iter eq '!') {
$ignore_rx = ''
} else {
if ($ignore_rx eq '') {
$ignore_rx = '^(';
} else {
$ignore_rx .= '|';
}
$ignore_rx .= glob_to_rx ($iter);
}
}
$ignore_rx .= ')$'
if $ignore_rx ne '';
my ($iter);
foreach $iter (@ignore_list, @common_ignores) {
if ($iter eq '!') {
$ignore_rx = ''
} else {
if ($ignore_rx eq '') {
$ignore_rx = '^(';
} else {
$ignore_rx .= '|';
}
$ignore_rx .= glob_to_rx ($iter);
}
}
$ignore_rx .= ')$'
if $ignore_rx ne '';
}
# File is missing
foreach $file (sort keys %entries) {
unless ($found_files{$file}) {
if ($removed{$file}) {
file_status("R");
} else {
file_status("U");
}
}
unless ($found_files{$file}) {
if ($removed{$file}) {
file_status("R");
} else {
file_status("U");
}
}
}
foreach $file (sort keys %found_files) {
next if ($file eq '.' || $file eq '..');
lstat ($curr_dir . $file) ||
error ("lstat() failed on $curr_dir . $file");
if (! $nolinks && -l _) {
file_status ("L");
} elsif (-d _) {
if ($file eq 'CVS') {
file_status ("C");
} elsif ($subdirs{$file}) {
$subdirs{$file} = SUBDIR_CVS;
} else {
file_status ("D"); # Unknown directory
}
} elsif (! (-f _) && ! (-l _)) {
file_status ("S"); # This must be something very special
} elsif (! $nolinks && (stat _) [3] > 1 ) {
file_status ("H"); # Hard link
} elsif (! $entries{$file}) {
file_status ("?");
} elsif ($entries{$file} =~ /^Initial |^dummy /) {
file_status ("A");
} elsif ($entries{$file} =~ /^Result of merge/) {
file_status ("G");
} elsif ($entries{$file} !~
/^(...) (...) (..) (..):(..):(..) (....)$/) {
error ("Invalid timestamp for $curr_dir$file: $entries{$file}");
} else {
my $cvtime = timegm($6, $5, $4, $3, $months{$2}, $7 - 1900);
my $mtime = (stat _) [9];
if ($cvtime == $mtime) {
file_status ("F");
} elsif ($cvtime < $mtime) {
file_status ("M");
} else {
file_status ("O");
}
}
next if ($file eq '.' || $file eq '..');
lstat ($curr_dir . $file) ||
error ("lstat() failed on $curr_dir . $file");
if (! $nolinks && -l _) {
file_status ("L");
} elsif (-d _) {
if ($file eq 'CVS') {
file_status ("C");
} elsif ($subdirs{$file}) {
$subdirs{$file} = SUBDIR_CVS;
} else {
file_status ("D"); # Unknown directory
}
} elsif (! (-f _) && ! (-l _)) {
file_status ("S"); # This must be something very special
} elsif (! $nolinks && (stat _) [3] > 1 ) {
file_status ("H"); # Hard link
} elsif (! $entries{$file}) {
file_status ("?");
} elsif ($entries{$file} =~ /^Initial |^dummy /) {
file_status ("A");
} elsif ($entries{$file} =~ /^Result of merge/) {
file_status ("G");
} elsif ($entries{$file} !~
/^(...) (...) (..) (..):(..):(..) (....)$/) {
error ("Invalid timestamp for $curr_dir$file: $entries{$file}");
} else {
my $cvtime = timegm($6, $5, $4, $3, $months{$2}, $7 - 1900);
my $mtime = (stat _) [9];
if ($cvtime == $mtime) {
file_status ("F");
} elsif ($cvtime < $mtime) {
file_status ("M");
} else {
file_status ("O");
}
}
}
# Now do directories.
unless ($no_recurse) {
my $save_curr_dir = $curr_dir;
foreach $file (sort keys %subdirs) {
if ($subdirs{$file} == SUBDIR_FOUND) {
$curr_dir = $save_curr_dir;
file_status ("X");
} elsif ($subdirs{$file} == SUBDIR_CVS) {
process_arg ($save_curr_dir . $file)
}
}
my $save_curr_dir = $curr_dir;
foreach $file (sort keys %subdirs) {
if ($subdirs{$file} == SUBDIR_FOUND) {
$curr_dir = $save_curr_dir;
file_status ("X");
} elsif ($subdirs{$file} == SUBDIR_CVS) {
process_arg ($save_curr_dir . $file)
}
}
}
}
@@ -425,13 +423,13 @@ sub glob_to_rx ($)
# Find parts in square brackets and copy them literally
# Text outside brackets is processed by glob_to_rx_simple()
while ($expr ne '') {
if ($expr =~ /^(.*?)(\[.*?\])(.*)/) {
$expr = $3;
$result .= glob_to_rx_simple ($1) . $2;
} else {
$result .= glob_to_rx_simple ($expr);
last;
}
if ($expr =~ /^(.*?)(\[.*?\])(.*)/) {
$expr = $3;
$result .= glob_to_rx_simple ($1) . $2;
} else {
$result .= glob_to_rx_simple ($expr);
last;
}
}
return $result;
}
@@ -443,21 +441,21 @@ sub Main ()
# long status messages
%messages = (
"?" => "Unlisted file",
"." => "Known directory",
"F" => "Up-to-date file",
"C" => "CVS admin directory",
"M" => "Modified file",
"S" => "Special file",
"D" => "Unlisted directory",
"L" => "Symbolic link",
"H" => "Hard link",
"U" => "Lost file",
"X" => "Lost directory",
"A" => "Newly added",
"O" => "Older copy",
"G" => "Result of merge",
"R" => "Removed file"
"?" => "Unlisted file",
"." => "Known directory",
"F" => "Up-to-date file",
"C" => "CVS admin directory",
"M" => "Modified file",
"S" => "Special file",
"D" => "Unlisted directory",
"L" => "Symbolic link",
"H" => "Hard link",
"U" => "Lost file",
"X" => "Lost directory",
"A" => "Newly added",
"O" => "Older copy",
"G" => "Result of merge",
"R" => "Removed file"
);
undef @batch_list; # List of files for batch processing
@@ -473,17 +471,17 @@ sub Main ()
my $want_ver = 0; # Print version and exit
my %options = (
"types=s" => \$list_types,
"batch=s" => \$batch_cmd,
"local" => \$no_recurse,
"explain" => \$explain_type,
"find" => \$find_mode,
"short" => \$short_print,
"ignore" => \$no_cvsignore,
"messages" => \$want_msg,
"nolinks" => \$nolinks,
"help" => \$want_help,
"version" => \$want_ver
"types=s" => \$list_types,
"batch=s" => \$batch_cmd,
"local" => \$no_recurse,
"explain" => \$explain_type,
"find" => \$find_mode,
"short" => \$short_print,
"ignore" => \$no_cvsignore,
"messages" => \$want_msg,
"nolinks" => \$nolinks,
"help" => \$want_help,
"version" => \$want_ver
);
GetOptions(%options);
@@ -495,19 +493,19 @@ sub Main ()
version() if $want_ver;
unless ($no_cvsignore) {
init_ignores();
init_ignores();
}
if ($#ARGV < 0) {
@ARGV = ("");
@ARGV = ("");
}
foreach (@ARGV) {
process_arg ($_);
process_arg ($_);
}
if ($#batch_list >= 0) {
do_batch();
do_batch();
}
}

52
build-aux/git-log-fix Normal file
View File

@@ -0,0 +1,52 @@
# This file is expected to be used via gitlog-to-changelog's --amend=FILE
# option. It specifies what changes to make to each given SHA1's commit
# log and metadata, using Perl-eval'able expressions.
3a169f4c5d9159283548178668d2fae6fced3030
# fix title:
s/all tile types/all file types/
e181802521d4e19e367dbe8cfa877296bb5dafb2
# fix the title!
s,seq:,factor:,
3ece0355d52e41a1b079c0c46477a32250278c11
# correct the URL
s,<http.+?>,<http://bugs.debian.org/412688>,
# This is wrong now only in the git log. The ChangeLog-2008
# entry was also erroneous, but has been corrected.
# ed5c4e770a27862813c0182be8680abeb005d15b
# # Wrong bug ID:
# s,/363011,/350541,
# # in this:
# # Suggested by Josselin Mouette in <http://bugs.debian.org/363011>
# This was wrong only in the git log. The ChangeLog entry was
# is from 2007, and so was recorded (correctly) in ChangeLog-2007.
# 1379ed974f1fa39b12e2ffab18b3f7a607082202
# # Due to a bug in vc-dwim, I mis-attributed a patch by Paul to myself.
# # Change the author to be Paul. Note the escaped "@":
# s,Jim .*>,Paul Eggert <eggert\@cs.ucla.edu>,
209850fd7e1e89cf8937310878bd22d70e3588a5
s/isspace/isblank/
# in this:
# * tests/misc/uniq: New file. Test for the above, but only
# when isspace(0240).
760bc6f7e73014e934a744a9d46ea8dbf5ba25c8
s/Now, each/Now, the/;
s!(elicits.*)\.!first $1, and the second works properly.!
# change the log from this:
# Without this, `truncate -s '> -1' F` would truncate F to length 0,
# and `truncate -s " +1" F` would truncate F to 1 byte. Now, each
# elicits a diagnostic.
# to this:
# Without this, `truncate -s '> -1' F` would truncate F to length 0,
# and `truncate -s " +1" F` would truncate F to 1 byte. Now, the
# first elicits a diagnostic, and the second works properly.
# Credit initial reporter of a related issue, now that the BZ is public.
1e18d8416f9ef43bf08982cabe54220587061a08
s,by ,by Nao Nishijima in http://bugzilla.redhat.com/766461\nand by ,

View File

@@ -1,60 +0,0 @@
#!/bin/sh
# List the specified version-controlled files.
# Copyright (C) 2006 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# List the specified version-controlled files.
# With no argument, list them all.
# This script must be run solely from the top of a $srcdir build directory.
# If there's an argument, it must be a single, "."-relative directory name,
# with no trailing slashes. In mercurial mode, it's used as part of a
# "grep" pattern (prepend "^", append "/"), and in cvs mode, it's simply
# used as an argument to the cvsu script.
# cvsu is part of the cvsutils package: http://www.red-bean.com/cvsutils/
include_prefix=
case $# in
0) ;;
1) include_prefix=$1 ;;
*) echo "$0: too many arguments" 1>&2; exit 1 ;;
esac
if test -d .git; then
if test "x$include_prefix" = x; then
git-ls-files
else
git-ls-files | grep "^$include_prefix/"
fi
elif test -d .hg; then
if test "x$include_prefix" = x; then
hg manifest | cut -d ' ' -f 3
else
hg manifest | cut -d ' ' -f 3 | grep "^$include_prefix/"
fi
elif test -x build-aux/cvsu; then
build-aux/cvsu --find --types=AFGM $include_prefix
else
awk -F/ '{ \
if (!$1 && $3 !~ /^-/) { \
f=FILENAME; \
sub(/CVS\/Entries/, "", f); \
print f $2; \
}}' \
$(find ${*-*} -name Entries -print) /dev/null;
fi

449
cfg.mk Normal file
View File

@@ -0,0 +1,449 @@
# Customize maint.mk -*- makefile -*-
# Copyright (C) 2003-2012 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Used in maint.mk's web-manual rule
manual_title = Core GNU utilities
# Use the direct link. This is guaranteed to work immediately, while
# it can take a while for the faster mirror links to become usable.
url_dir_list = http://ftp.gnu.org/gnu/$(PACKAGE)
# Tests not to run as part of "make distcheck".
local-checks-to-skip = \
sc_texinfo_acronym
# Tools used to bootstrap this package, used for "announcement".
bootstrap-tools = autoconf,automake,gnulib,bison
# Now that we have better tests, make this the default.
export VERBOSE = yes
# Comparing tarball sizes compressed using different xz presets, we see that
# an -8e-compressed tarball is only 9KiB larger than the -9e-compressed one.
# Using -8e is preferred, since that lets the decompression process use half
# the memory (32MiB rather than 64MiB).
# $ for i in {7,8,9}{e,}; do \
# (n=$(xz -$i < coreutils-8.15*.tar|wc -c);echo $n $i) & done |sort -nr
# 5129388 7
# 5036524 7e
# 5017476 8
# 5010604 9
# 4923016 8e
# 4914152 9e
export XZ_OPT = -8e
old_NEWS_hash = c2d954b7c19745272321cc4c4b676993
# Add an exemption for sc_makefile_at_at_check.
_makefile_at_at_check_exceptions = ' && !/^cu_install_program =/'
# Our help-version script is in a slightly different location.
_hv_file ?= $(srcdir)/tests/misc/help-version
# Ensure that the list of O_ symbols used to compute O_FULLBLOCK is complete.
dd = $(srcdir)/src/dd.c
sc_dd_O_FLAGS:
@rm -f $@.1 $@.2
@{ echo O_FULLBLOCK; echo O_NOCACHE; \
perl -nle '/^ +\| (O_\w*)$$/ and print $$1' $(dd); } | sort > $@.1
@{ echo O_NOFOLLOW; perl -nle '/{"[a-z]+",\s*(O_\w+)},/ and print $$1' \
$(dd); } | sort > $@.2
@diff -u $@.1 $@.2 || diff=1 || diff=; \
rm -f $@.1 $@.2; \
test "$$diff" \
&& { echo '$(ME): $(dd) has inconsistent O_ flag lists'>&2; \
exit 1; } || :
# Ensure that dd's definition of LONGEST_SYMBOL stays in sync
# with the strings from the two affected variables.
dd_c = $(srcdir)/src/dd.c
sc_dd_max_sym_length:
ifneq ($(wildcard $(dd_c)),)
@len=$$( (sed -n '/conversions\[\] =$$/,/^};/p' $(dd_c);\
sed -n '/flags\[\] =$$/,/^};/p' $(dd_c) ) \
|sed -n '/"/s/^[^"]*"\([^"]*\)".*/\1/p' \
| wc --max-line-length); \
max=$$(sed -n '/^#define LONGEST_SYMBOL /s///p' $(dd_c) \
|tr -d '"' | wc --max-line-length); \
if test "$$len" = "$$max"; then :; else \
echo 'dd.c: LONGEST_SYMBOL is not longest' 1>&2; \
exit 1; \
fi
endif
# Many m4 macros names once began with 'jm_'.
# On 2004-04-13, they were all changed to start with gl_ instead.
# Make sure that none are inadvertently reintroduced.
sc_prohibit_jm_in_m4:
@grep -nE 'jm_[A-Z]' \
$$($(VC_LIST) m4 |grep '\.m4$$'; echo /dev/null) && \
{ echo '$(ME): do not use jm_ in m4 macro names' \
1>&2; exit 1; } || :
# Ensure that each root-requiring test is run via the "check-root" rule.
sc_root_tests:
@if test -d tests \
&& grep check-root tests/Makefile.am>/dev/null 2>&1; then \
t1=sc-root.expected; t2=sc-root.actual; \
grep -nl '^ *require_root_$$' \
$$($(VC_LIST) tests) |sed s,tests/,, |sort > $$t1; \
sed -n '/^root_tests =[ ]*\\$$/,/[^\]$$/p' \
$(srcdir)/tests/Makefile.am \
| sed 's/^ *//;/^root_tests =/d' \
| tr -s '\012\\' ' ' | fmt -1 | sort > $$t2; \
diff -u $$t1 $$t2 || diff=1 || diff=; \
rm -f $$t1 $$t2; \
test "$$diff" \
&& { echo 'tests/Makefile.am: missing check-root action'>&2; \
exit 1; } || :; \
fi
# Create a list of regular expressions matching the names
# of files included from system.h. Exclude a couple.
.re-list:
@sed -n '/^# *include /s///p' $(srcdir)/src/system.h \
| grep -Ev 'sys/(param|file)\.h' \
| sed 's/ .*//;;s/^["<]/^# *include [<"]/;s/\.h[">]$$/\\.h[">]/' \
> $@-t
@mv $@-t $@
define gl_trap_
Exit () { set +e; (exit $$1); exit $$1; }; \
for sig in 1 2 3 13 15; do \
eval "trap 'Exit $$(expr $$sig + 128)' $$sig"; \
done
endef
# Files in src/ should not include directly any of
# the headers already included via system.h.
sc_system_h_headers: .re-list
@if test -f $(srcdir)/src/system.h; then \
trap 'rc=$$?; rm -f .re-list; exit $$rc' 0; \
$(gl_trap_); \
grep -nE -f .re-list \
$$($(VC_LIST_EXCEPT) | grep '^\($(srcdir)/\)\?src/') \
&& { echo '$(ME): the above are already included via system.h'\
1>&2; exit 1; } || :; \
fi
sc_sun_os_names:
@grep -nEi \
'solaris[^[:alnum:]]*2\.(7|8|9|[1-9][0-9])|sunos[^[:alnum:]][6-9]' \
$$($(VC_LIST_EXCEPT)) && \
{ echo '$(ME): found misuse of Sun OS version numbers' 1>&2; \
exit 1; } || :
ALL_RECURSIVE_TARGETS += sc_check-AUTHORS
sc_check-AUTHORS:
@$(MAKE) -s -C src _sc_check-AUTHORS
# Look for lines longer than 80 characters, except omit:
# - program-generated long lines in diff headers,
# - tests involving long checksum lines, and
# - the 'pr' test cases.
LINE_LEN_MAX = 80
FILTER_LONG_LINES = \
/^[^:]*\.diff:[^:]*:@@ / d; \
\|^[^:]*tests/misc/sha[0-9]*sum[-:]| d; \
\|^[^:]*tests/pr/|{ \|^[^:]*tests/pr/pr-tests:| !d; };
sc_long_lines:
@files=$$($(VC_LIST_EXCEPT)) \
halt='line(s) with more than $(LINE_LEN_MAX) characters; reindent'; \
for file in $$files; do \
expand $$file | grep -nE '^.{$(LINE_LEN_MAX)}.' | \
sed -e "s|^|$$file:|" -e '$(FILTER_LONG_LINES)'; \
done | grep . && { msg="$$halt" $(_sc_say_and_exit) } || :
# Option descriptions should not start with a capital letter
# One could grep source directly as follows:
# grep -E " {2,6}-.*[^.] [A-Z][a-z]" $$($(VC_LIST_EXCEPT) | grep '\.c$$')
# but that would miss descriptions not on the same line as the -option.
ALL_RECURSIVE_TARGETS += sc_option_desc_uppercase
sc_option_desc_uppercase:
@$(MAKE) -s -C src all_programs
@$(MAKE) -s -C man $@
# Ensure all man/*.[1x] files are present
ALL_RECURSIVE_TARGETS += sc_man_file_correlation
sc_man_file_correlation:
@$(MAKE) -s -C src all_programs
@$(MAKE) -s -C man $@
# Ensure that the end of each release's section is marked by two empty lines.
sc_NEWS_two_empty_lines:
@sed -n 4,/Noteworthy/p $(srcdir)/NEWS \
| perl -n0e '/(^|\n)\n\n\* Noteworthy/ or exit 1' \
|| { echo '$(ME): use two empty lines to separate NEWS sections' \
1>&2; exit 1; } || :
# Perl-based tests used to exec perl from a #!/bin/sh script.
# Now they all start with #!/usr/bin/perl and the portability
# infrastructure is in tests/Makefile.am. Make sure no old-style
# script sneaks back in.
sc_no_exec_perl_coreutils:
@if test -f $(srcdir)/tests/Coreutils.pm; then \
grep '^exec *\$$PERL.*MCoreutils' $$($(VC_LIST) tests) && \
{ echo 1>&2 '$(ME): found anachronistic Perl-based tests'; \
exit 1; } || :; \
fi
# Don't use "readlink" or "readlinkat" directly
sc_prohibit_readlink:
@prohibit='\<readlink(at)? \(' \
halt='do not use readlink(at); use via xreadlink or areadlink*' \
$(_sc_search_regexp)
# Don't use address of "stat" or "lstat" functions
sc_prohibit_stat_macro_address:
@prohibit='\<l?stat '':|&l?stat\>' \
halt='stat() and lstat() may be function-like macros' \
$(_sc_search_regexp)
# Ensure that date's --help output stays in sync with the info
# documentation for GNU strftime. The only exception is %N,
# which date accepts but GNU strftime does not.
extract_char = sed 's/^[^%][^%]*%\(.\).*/\1/'
sc_strftime_check:
@if test -f $(srcdir)/src/date.c; then \
grep '^ %. ' $(srcdir)/src/date.c | sort \
| $(extract_char) > $@-src; \
{ echo N; \
info libc date calendar format 2>/dev/null|grep '^ `%.'\'\
| $(extract_char); } | sort > $@-info; \
if test $$(stat --format %s $@-info) != 2; then \
diff -u $@-src $@-info || exit 1; \
else \
echo '$(ME): skipping $@: libc info not installed' 1>&2; \
fi; \
rm -f $@-src $@-info; \
fi
# Indent only with spaces.
sc_prohibit_tab_based_indentation:
@prohibit='^ * ' \
halt='TAB in indentation; use only spaces' \
$(_sc_search_regexp)
# The SEE ALSO section of a man page should not be terminated with
# a period. Check the first line after each "SEE ALSO" line in man/*.x:
sc_prohibit_man_see_also_period:
@grep -nB1 '\.$$' $$($(VC_LIST_EXCEPT) | grep 'man/.*\.x$$') \
| grep -A1 -e '-\[SEE ALSO\]' | grep '\.$$' && \
{ echo '$(ME): do not end "SEE ALSO" section with a period' \
1>&2; exit 1; } || :
# Don't use "indent-tabs-mode: nil" anymore. No longer needed.
sc_prohibit_emacs__indent_tabs_mode__setting:
@prohibit='^( *[*#] *)?indent-tabs-mode:' \
halt='use of emacs indent-tabs-mode: setting' \
$(_sc_search_regexp)
# Ensure that each file that contains fail=1 also contains fail=0.
# Otherwise, setting file=1 in the environment would make tests fail
# unexpectedly.
sc_prohibit_fail_0:
@prohibit='\<fail=0\>' \
halt='fail=0 initialization' \
$(_sc_search_regexp)
# The mode part of a setfacl -m option argument must be three bytes long.
# I.e., an argument of user:bin:rw or user:bin:r will make Solaris 10's
# setfacl reject it with: "Unrecognized character found in mode field".
# Use hyphens to give it a length of 3: "...:rw-" or "...:r--".
sc_prohibit_short_facl_mode_spec:
@prohibit='\<setfacl .*-m.*:.*:[rwx-]{1,2} ' \
halt='setfacl mode string length < 3; extend with hyphen(s)' \
$(_sc_search_regexp)
# Ensure that "stdio--.h" is used where appropriate.
sc_require_stdio_safer:
@if $(VC_LIST_EXCEPT) | grep -l '\.[ch]$$' > /dev/null; then \
files=$$(grep -l '\bfreopen \?(' $$($(VC_LIST_EXCEPT) \
| grep '\.[ch]$$')); \
test -n "$$files" && grep -LE 'include "stdio--.h"' $$files \
| grep . && \
{ echo '$(ME): the above files should use "stdio--.h"' \
1>&2; exit 1; } || :; \
else :; \
fi
sc_prohibit_perl_hash_quotes:
@prohibit="\{'[A-Z_]+' *[=}]" \
halt="in Perl code, write \$$hash{KEY}, not \$$hash{'K''EY'}" \
$(_sc_search_regexp)
# Prefer xnanosleep over other less-precise sleep methods
sc_prohibit_sleep:
@prohibit='\<(nano|u)?sleep \(' \
halt='prefer xnanosleep over other sleep interfaces' \
$(_sc_search_regexp)
# Use print_ver_ (from init.cfg), not open-coded $VERBOSE check.
sc_prohibit_verbose_version:
@prohibit='test "\$$VERBOSE" = yes && .* --version' \
halt='use the print_ver_ function instead...' \
$(_sc_search_regexp)
# Use framework_failure_, not the old name without the trailing underscore.
sc_prohibit_framework_failure:
@prohibit='\<framework_''failure\>' \
halt='use framework_failure_ instead' \
$(_sc_search_regexp)
# Exempt the contents of any usage function from the following.
_continued_string_col_1 = \
s/^usage .*?\n}//ms;/\\\n\w/ and print ("$$ARGV\n"),$$e=1;END{$$e||=0;exit $$e}
# Ding any source file that has a continued string with an alphabetic in the
# first column of the following line. We prohibit them because they usually
# trigger false positives in tools that try to map an arbitrary line number
# to the enclosing function name. Of course, very many strings do precisely
# this, *when they are part of the usage function*. That is why we exempt
# the contents of any function named "usage".
sc_prohibit_continued_string_alpha_in_column_1:
@perl -0777 -ne '$(_continued_string_col_1)' \
$$($(VC_LIST_EXCEPT) | grep '\.[ch]$$') \
|| { echo '$(ME): continued string with word in first column' \
1>&2; exit 1; } || :
# Use this to list offending lines:
# git ls-files |grep '\.[ch]$' | xargs \
# perl -n -0777 -e 's/^usage.*?\n}//ms;/\\\n\w/ and print "$ARGV\n"' \
# | xargs grep -A1 '\\$'|grep '\.[ch][:-][_a-zA-Z]'
###########################################################
_p0 = \([^"'/]\|"\([^\"]\|[\].\)*"\|'\([^\']\|[\].\)*'
_pre = $(_p0)\|[/][^"'/*]\|[/]"\([^\"]\|[\].\)*"\|[/]'\([^\']\|[\].\)*'\)*
_pre_anchored = ^\($(_pre)\)
_comment_and_close = [^*]\|[*][^/*]\)*[*][*]*/
# help font-lock mode: '
# A sed expression that removes ANSI C and ISO C99 comments.
# Derived from the one in GNU gettext's 'moopp' preprocessor.
_sed_remove_comments = \
/[/][/*]/{ \
ta; \
:a; \
s,$(_pre_anchored)//.*,\1,; \
te; \
s,$(_pre_anchored)/[*]\($(_comment_and_close),\1 ,; \
ta; \
/^$(_pre)[/][*]/{ \
s,$(_pre_anchored)/[*].*,\1 ,; \
tu; \
:u; \
n; \
s,^\($(_comment_and_close),,; \
tv; \
s,^.*$$,,; \
bu; \
:v; \
}; \
:e; \
}
# Quote all single quotes.
_sed_rm_comments_q = $(subst ','\'',$(_sed_remove_comments))
# help font-lock mode: '
_space_before_paren_exempt =? \\n\\$$
_space_before_paren_exempt = \
(^ *\#|\\n\\$$|%s\(to %s|(date|group|character)\(s\))
# Ensure that there is a space before each open parenthesis in C code.
sc_space_before_open_paren:
@if $(VC_LIST_EXCEPT) | grep -l '\.[ch]$$' > /dev/null; then \
fail=0; \
for c in $$($(VC_LIST_EXCEPT) | grep '\.[ch]$$'); do \
sed '$(_sed_rm_comments_q)' $$c 2>/dev/null \
| grep -i '[[:alnum:]](' \
| grep -vE '$(_space_before_paren_exempt)' \
| grep . && { fail=1; echo "*** $$c"; }; \
done; \
test $$fail = 1 && \
{ echo '$(ME): the above files lack a space-before-open-paren' \
1>&2; exit 1; } || :; \
else :; \
fi
# Similar to the gnulib maint.mk rule for sc_prohibit_strcmp
# Use STREQ_LEN or STRPREFIX rather than comparing strncmp == 0, or != 0.
sc_prohibit_strncmp:
@grep -nE '! *str''ncmp *\(|\<str''ncmp *\(.+\) *[!=]=' \
$$($(VC_LIST_EXCEPT)) \
| grep -vE ':# *define STR(N?EQ_LEN|PREFIX)\(' && \
{ echo '$(ME): use STREQ_LEN or STRPREFIX instead of str''ncmp' \
1>&2; exit 1; } || :
# Enforce recommended preprocessor indentation style.
sc_preprocessor_indentation:
@if cppi --version >/dev/null 2>&1; then \
$(VC_LIST_EXCEPT) | grep '\.[ch]$$' | xargs cppi -a -c \
|| { echo '$(ME): incorrect preprocessor indentation' 1>&2; \
exit 1; }; \
else \
echo '$(ME): skipping test $@: cppi not installed' 1>&2; \
fi
# Override the default Cc: used in generating an announcement.
announcement_Cc_ = $(translation_project_), \
coreutils@gnu.org, coreutils-announce@gnu.org
-include $(srcdir)/dist-check.mk
update-copyright-env = \
UPDATE_COPYRIGHT_FORCE=1 \
UPDATE_COPYRIGHT_USE_INTERVALS=2 \
UPDATE_COPYRIGHT_MAX_LINE_LENGTH=79
# List syntax-check exemptions.
exclude_file_name_regexp--sc_space_tab = \
^(tests/pr/|tests/misc/nl$$|gl/.*\.diff$$)
exclude_file_name_regexp--sc_bindtextdomain = ^(gl/.*|lib/euidaccess-stat)\.c$$
exclude_file_name_regexp--sc_unmarked_diagnostics = ^build-aux/cvsu$$
exclude_file_name_regexp--sc_error_message_uppercase = ^build-aux/cvsu$$
exclude_file_name_regexp--sc_trailing_blank = ^tests/pr/
exclude_file_name_regexp--sc_system_h_headers = \
^src/((system|copy)\.h|libstdbuf\.c)$$
_src = (false|lbracket|ls-(dir|ls|vdir)|tac-pipe|uname-(arch|uname))
exclude_file_name_regexp--sc_require_config_h_first = \
(^lib/buffer-lcm\.c|src/$(_src)\.c)$$
exclude_file_name_regexp--sc_require_config_h = \
$(exclude_file_name_regexp--sc_require_config_h_first)
exclude_file_name_regexp--sc_po_check = ^gl/
exclude_file_name_regexp--sc_prohibit_always-defined_macros = \
^src/(seq|remove)\.c$$
exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF = ^tests/pr/
exclude_file_name_regexp--sc_program_name = ^(gl/.*|lib/euidaccess-stat)\.c$$
exclude_file_name_regexp--sc_file_system = \
NEWS|^(tests/init\.cfg|src/df\.c|tests/misc/df-P)$$
exclude_file_name_regexp--sc_prohibit_always_true_header_tests = \
^m4/stat-prog\.m4$$
exclude_file_name_regexp--sc_prohibit_fail_0 = \
(^scripts/git-hooks/commit-msg|^tests/init\.sh|Makefile\.am|\.mk)$$
exclude_file_name_regexp--sc_prohibit_atoi_atof = ^lib/euidaccess-stat\.c$$
tbi_1 = ^tests/pr/|(^gl/lib/reg.*\.c\.diff|Makefile(\.am)?|\.mk|^man/help2man)$$
tbi_2 = ^scripts/git-hooks/(pre-commit|pre-applypatch|applypatch-msg)$$
exclude_file_name_regexp--sc_prohibit_tab_based_indentation = \
$(tbi_1)|$(tbi_2)
exclude_file_name_regexp--sc_preprocessor_indentation = \
^(gl/lib/rand-isaac\.[ch]|gl/tests/test-rand-isaac\.c)$$
exclude_file_name_regexp--sc_prohibit_stat_st_blocks = \
^(src/system\.h|tests/du/2g)$$
exclude_file_name_regexp--sc_prohibit_continued_string_alpha_in_column_1 = \
^src/(system\.h|od\.c|printf\.c)$$

View File

@@ -1,12 +1,12 @@
# -*- autoconf -*-
# Process this file with autoconf to produce a configure script.
# Copyright (C) 1991, 1993-2006 Free Software Foundation, Inc.
# Copyright (C) 1991-2012 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -14,20 +14,40 @@
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
dnl Written by Jim Meyering.
AC_PREREQ(2.60)
AC_INIT([GNU coreutils],[6.4],[bug-coreutils@gnu.org])
AC_CONFIG_SRCDIR(src/ls.c)
AC_PREREQ([2.64])
AC_CONFIG_AUX_DIR(build-aux)
# Make inter-release version strings look like, e.g., v6.9-219-g58ddd, which
# indicates that it is built from the 219th delta (in _some_ repository)
# following the v6.9 tag, and that 58ddd is a prefix of the commit SHA1.
AC_INIT([GNU coreutils],
m4_esyscmd([build-aux/git-version-gen .tarball-version]),
[bug-coreutils@gnu.org])
AC_CONFIG_SRCDIR([src/ls.c])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_HEADERS([lib/config.h:lib/config.hin])
AB_INIT()
AM_INIT_AUTOMAKE([1.9.6 gnits dist-bzip2])
AM_INIT_AUTOMAKE([1.11.1 no-dist-gzip dist-xz color-tests parallel-tests])
AM_SILENT_RULES([yes]) # make --enable-silent-rules the default.
dnl POSIXCHECK is worthwhile for maintainers, but adds several seconds
dnl (more than 10% execution time) to ./configure, with no benefit for
dnl most users. Using it to look for bugs requires:
dnl GNULIB_POSIXCHECK=1 autoreconf -f
dnl ./configure
dnl make
dnl make -C src clean
dnl make CFLAGS=-DGNULIB_POSIXCHECK=1
dnl FIXME: Once we figure out how to avoid false positives, we should
dnl have 'make my-distcheck' in dist-check.mk exercise this.
m4_syscmd([test "${GNULIB_POSIXCHECK+set}" = set])
m4_if(m4_sysval, [0], [], [dnl
gl_ASSERT_NO_GNULIB_POSIXCHECK])
AC_PROG_CC_STDC
AM_PROG_CC_C_O
@@ -39,20 +59,142 @@ gl_EARLY
gl_INIT
coreutils_MACROS
AC_CHECK_FUNCS(uname,
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS uname\$(EXEEXT)"
MAN="$MAN uname.1")
AC_CHECK_FUNCS(chroot,
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS chroot\$(EXEEXT)"
MAN="$MAN chroot.1")
AC_CHECK_FUNCS(gethostid,
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS hostid\$(EXEEXT)"
MAN="$MAN hostid.1")
AC_ARG_ENABLE([gcc-warnings],
[AS_HELP_STRING([--enable-gcc-warnings],
[turn on lots of GCC warnings (for developers)])],
[case $enableval in
yes|no) ;;
*) AC_MSG_ERROR([bad value $enableval for gcc-warnings option]) ;;
esac
gl_gcc_warnings=$enableval],
[gl_gcc_warnings=no]
)
# gl_GCC_VERSION_IFELSE([major], [minor], [run-if-found], [run-if-not-found])
# ------------------------------------------------
# If $CPP is gcc-MAJOR.MINOR or newer, then run RUN-IF-FOUND.
# Otherwise, run RUN-IF-NOT-FOUND.
AC_DEFUN([gl_GCC_VERSION_IFELSE],
[AC_PREPROC_IFELSE(
[AC_LANG_PROGRAM(
[[
#if ($1) < __GNUC__ || (($1) == __GNUC__ && ($2) <= __GNUC_MINOR__)
/* ok */
#else
# error "your version of gcc is older than $1.$2"
#endif
]]),
], [$3], [$4])
]
)
if test "$gl_gcc_warnings" = yes; then
gl_WARN_ADD([-Werror], [WERROR_CFLAGS])
AC_SUBST([WERROR_CFLAGS])
nw=
# This, $nw, is the list of warnings we disable.
nw="$nw -Wdeclaration-after-statement" # too useful to forbid
nw="$nw -Waggregate-return" # anachronistic
nw="$nw -Wlong-long" # C90 is anachronistic (lib/gethrxtime.h)
nw="$nw -Wc++-compat" # We don't care about C++ compilers
nw="$nw -Wundef" # Warns on '#if GNULIB_FOO' etc in gnulib
nw="$nw -Wtraditional" # Warns on #elif which we use often
nw="$nw -Wcast-qual" # Too many warnings for now
nw="$nw -Wconversion" # Too many warnings for now
nw="$nw -Wsystem-headers" # Don't let system headers trigger warnings
nw="$nw -Wsign-conversion" # Too many warnings for now
nw="$nw -Wtraditional-conversion" # Too many warnings for now
nw="$nw -Wunreachable-code" # Too many warnings for now
nw="$nw -Wpadded" # Our structs are not padded
nw="$nw -Wredundant-decls" # openat.h declares e.g., mkdirat
nw="$nw -Wlogical-op" # any use of fwrite provokes this
nw="$nw -Wformat-nonliteral" # who.c and pinky.c strftime uses
nw="$nw -Wvla" # warnings in gettext.h
nw="$nw -Wnested-externs" # use of XARGMATCH/verify_function__
nw="$nw -Wswitch-enum" # Too many warnings for now
nw="$nw -Wswitch-default" # Too many warnings for now
nw="$nw -Wstack-protector" # not worth working around
# things I might fix soon:
nw="$nw -Wfloat-equal" # sort.c, seq.c
nw="$nw -Wmissing-format-attribute" # copy.c
nw="$nw -Wunsafe-loop-optimizations" # a few src/*.c
nw="$nw -Winline" # system.h's readdir_ignoring_dot_and_dotdot
# Using -Wstrict-overflow is a pain, but the alternative is worse.
# For an example, see the code that provoked this report:
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33498
# Code like that still infloops with gcc-4.6.0 and -O2. Scary indeed.
gl_MANYWARN_ALL_GCC([ws])
gl_MANYWARN_COMPLEMENT([ws], [$ws], [$nw])
for w in $ws; do
gl_WARN_ADD([$w])
done
gl_WARN_ADD([-Wno-sign-compare]) # Too many warnings for now
gl_WARN_ADD([-Wno-unused-parameter]) # Too many warnings for now
gl_WARN_ADD([-Wsuggest-attribute=const])
gl_WARN_ADD([-Wsuggest-attribute=noreturn])
gl_WARN_ADD([-Wno-format-nonliteral])
# Enable this warning only with gcc-4.7 and newer. With 4.6.2 20111027,
# it suggests test.c's advance function may be pure, even though it
# increments a global variable. Oops.
# Normally we'd write code to test for the precise failure, but that
# requires a relatively large input to make gcc exhibit the failure.
gl_GCC_VERSION_IFELSE([4], [7], [gl_WARN_ADD([-Wsuggest-attribute=pure])])
# In spite of excluding -Wlogical-op above, it is enabled, as of
# gcc 4.5.0 20090517, and it provokes warnings in cat.c, dd.c, truncate.c
gl_WARN_ADD([-Wno-logical-op])
gl_WARN_ADD([-fdiagnostics-show-option])
gl_WARN_ADD([-funit-at-a-time])
AC_SUBST([WARN_CFLAGS])
AC_DEFINE([lint], [1], [Define to 1 if the compiler is checking for lint.])
AC_DEFINE([_FORTIFY_SOURCE], [2],
[enable compile-time and run-time bounds-checking, and some warnings])
AC_DEFINE([GNULIB_PORTCHECK], [1], [enable some gnulib portability checks])
# We use a slightly smaller set of warning options for lib/.
# Remove the following and save the result in GNULIB_WARN_CFLAGS.
nw=
nw="$nw -Wstrict-overflow"
nw="$nw -Wuninitialized"
nw="$nw -Wunused-macros"
nw="$nw -Wmissing-prototypes"
nw="$nw -Wold-style-definition"
# FIXME: it may be easy to remove this, since it affects only one file:
# the snprintf call at ftoastr.c:132.
nw="$nw -Wdouble-promotion"
gl_MANYWARN_COMPLEMENT([GNULIB_WARN_CFLAGS], [$WARN_CFLAGS], [$nw])
AC_SUBST([GNULIB_WARN_CFLAGS])
# For gnulib-tests, the set is slightly smaller still.
nw=
nw="$nw -Wstrict-prototypes"
# It's not worth being this picky about test programs.
nw="$nw -Wsuggest-attribute=const"
nw="$nw -Wsuggest-attribute=pure"
gl_MANYWARN_COMPLEMENT([GNULIB_TEST_WARN_CFLAGS],
[$GNULIB_WARN_CFLAGS], [$nw])
AC_SUBST([GNULIB_TEST_WARN_CFLAGS])
fi
AC_FUNC_FORK
optional_bin_progs=
AC_CHECK_FUNCS([chroot],
gl_ADD_PROG([optional_bin_progs], [chroot]))
AC_CHECK_FUNCS([gethostid],
gl_ADD_PROG([optional_bin_progs], [hostid]))
gl_WINSIZE_IN_PTEM
AC_MSG_CHECKING(whether localtime caches TZ)
AC_CACHE_VAL(utils_cv_localtime_cache,
AC_MSG_CHECKING([whether localtime caches TZ])
AC_CACHE_VAL([utils_cv_localtime_cache],
[if test x$ac_cv_func_tzset = xyes; then
AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <time.h>
#if STDC_HEADERS
@@ -71,44 +213,44 @@ int main()
time_t now = time ((time_t *) 0);
int hour_GMT0, hour_unset;
if (putenv ("TZ=GMT0") != 0)
exit (1);
return 1;
hour_GMT0 = localtime (&now)->tm_hour;
unset_TZ ();
hour_unset = localtime (&now)->tm_hour;
if (putenv ("TZ=PST8") != 0)
exit (1);
return 1;
if (localtime (&now)->tm_hour == hour_GMT0)
exit (1);
return 1;
unset_TZ ();
if (localtime (&now)->tm_hour != hour_unset)
exit (1);
exit (0);
return 1;
return 0;
}]])],
[utils_cv_localtime_cache=no],
[utils_cv_localtime_cache=yes],
[# If we have tzset, assume the worst when cross-compiling.
utils_cv_localtime_cache=yes])
else
# If we lack tzset, report that localtime does not cache TZ,
# since we can't invalidate the cache if we don't have tzset.
utils_cv_localtime_cache=no
# If we lack tzset, report that localtime does not cache TZ,
# since we can't invalidate the cache if we don't have tzset.
utils_cv_localtime_cache=no
fi])dnl
AC_MSG_RESULT($utils_cv_localtime_cache)
AC_MSG_RESULT([$utils_cv_localtime_cache])
if test $utils_cv_localtime_cache = yes; then
AC_DEFINE(LOCALTIME_CACHE, 1, [FIXME])
AC_DEFINE([LOCALTIME_CACHE], [1], [FIXME])
fi
# SCO-ODT-3.0 is reported to need -los to link programs using initgroups
AC_CHECK_FUNCS(initgroups)
AC_CHECK_FUNCS([initgroups])
if test $ac_cv_func_initgroups = no; then
AC_CHECK_LIB(os, initgroups)
AC_CHECK_LIB([os], [initgroups])
fi
AC_CHECK_FUNCS(syslog)
AC_CHECK_FUNCS([syslog])
if test $ac_cv_func_syslog = no; then
# syslog is not in the default libraries. See if it's in some other.
for lib in bsd socket inet; do
AC_CHECK_LIB($lib, syslog, [AC_DEFINE(HAVE_SYSLOG, 1, [FIXME])
AC_CHECK_LIB([$lib], [syslog], [AC_DEFINE([HAVE_SYSLOG], [1], [FIXME])
LIBS="$LIBS -l$lib"; break])
done
fi
@@ -118,7 +260,7 @@ AC_CACHE_CHECK([for 3-argument setpriority function],
[AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[[#include <sys/time.h>
#include <sys/resource.h>
#include <sys/resource.h>
]],
[[setpriority (0, 0, 0);]])],
[utils_cv_func_setpriority=yes],
@@ -128,76 +270,72 @@ if test $utils_cv_func_setpriority = no; then
fi
case $utils_cv_func_setpriority,$ac_cv_func_nice in
*yes*)
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS nice\$(EXEEXT)"
MAN="$MAN nice.1";;
gl_ADD_PROG([optional_bin_progs], [nice])
esac
AC_DEFUN([coreutils_DUMMY_1],
[
AC_REQUIRE([gl_READUTMP])
if test $ac_cv_header_utmp_h = yes || test $ac_cv_header_utmpx_h = yes; then
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS pinky\$(EXEEXT)"
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS users\$(EXEEXT)"
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS who\$(EXEEXT)"
MAN="$MAN pinky.1 users.1 who.1"
gl_ADD_PROG([optional_bin_progs], [who])
gl_ADD_PROG([optional_bin_progs], [users])
gl_ADD_PROG([optional_bin_progs], [pinky])
fi
])
coreutils_DUMMY_1
AC_MSG_CHECKING(ut_host in struct utmp)
AC_CACHE_VAL(su_cv_func_ut_host_in_utmp,
AC_MSG_CHECKING([ut_host in struct utmp])
AC_CACHE_VAL([su_cv_func_ut_host_in_utmp],
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
#include <utmp.h>]], [[struct utmp ut; return !sizeof ut.ut_host;]])],
[su_cv_func_ut_host_in_utmp=yes],
[su_cv_func_ut_host_in_utmp=no])])
AC_MSG_RESULT($su_cv_func_ut_host_in_utmp)
AC_MSG_RESULT([$su_cv_func_ut_host_in_utmp])
if test $su_cv_func_ut_host_in_utmp = yes; then
have_ut_host=1
AC_DEFINE(HAVE_UT_HOST, 1, [FIXME])
AC_DEFINE([HAVE_UT_HOST], [1], [FIXME])
fi
if test -z "$have_ut_host"; then
AC_MSG_CHECKING(ut_host in struct utmpx)
AC_CACHE_VAL(su_cv_func_ut_host_in_utmpx,
AC_MSG_CHECKING([ut_host in struct utmpx])
AC_CACHE_VAL([su_cv_func_ut_host_in_utmpx],
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
#include <utmpx.h>]], [[struct utmpx ut; return !sizeof ut.ut_host;]])],
[su_cv_func_ut_host_in_utmpx=yes],
[su_cv_func_ut_host_in_utmpx=no])])
AC_MSG_RESULT($su_cv_func_ut_host_in_utmpx)
AC_MSG_RESULT([$su_cv_func_ut_host_in_utmpx])
if test $su_cv_func_ut_host_in_utmpx = yes; then
AC_DEFINE(HAVE_UTMPX_H, 1, [FIXME])
AC_DEFINE(HAVE_UT_HOST, 1, [FIXME])
AC_DEFINE([HAVE_UTMPX_H], [1], [FIXME])
AC_DEFINE([HAVE_UT_HOST], [1], [FIXME])
fi
fi
GNULIB_BOOT_TIME(
[OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS uptime\$(EXEEXT)"
MAN="$MAN uptime.1"])
GNULIB_BOOT_TIME([gl_ADD_PROG([optional_bin_progs], [uptime])])
AC_SYS_POSIX_TERMIOS()
gl_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL
if test $ac_cv_sys_posix_termios = yes; then
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS stty\$(EXEEXT)" MAN="$MAN stty.1"
gl_ADD_PROG([optional_bin_progs], [stty])
AC_MSG_CHECKING(whether termios.h needs _XOPEN_SOURCE)
AC_CACHE_VAL(su_cv_sys_termios_needs_xopen_source,
[AC_EGREP_CPP(yes, [#include <termios.h>
AC_MSG_CHECKING([whether termios.h needs _XOPEN_SOURCE])
AC_CACHE_VAL([su_cv_sys_termios_needs_xopen_source],
[AC_EGREP_CPP([yes], [#include <termios.h>
#ifdef IUCLC
yes
#endif], su_cv_sys_termios_needs_xopen_source=no,
AC_EGREP_CPP(yes, [#define _XOPEN_SOURCE
AC_EGREP_CPP([yes], [#define _XOPEN_SOURCE
#include <termios.h>
#ifdef IUCLC
yes
#endif], su_cv_sys_termios_needs_xopen_source=yes,
su_cv_sys_termios_needs_xopen_source=no))])
AC_MSG_RESULT($su_cv_sys_termios_needs_xopen_source)
AC_MSG_RESULT([$su_cv_sys_termios_needs_xopen_source])
test $su_cv_sys_termios_needs_xopen_source = yes &&
AC_DEFINE(TERMIOS_NEEDS_XOPEN_SOURCE, 1, [FIXME])
AC_DEFINE([TERMIOS_NEEDS_XOPEN_SOURCE], [1], [FIXME])
AC_MSG_CHECKING(c_line in struct termios)
AC_CACHE_VAL(su_cv_sys_c_line_in_termios,
AC_MSG_CHECKING([c_line in struct termios])
AC_CACHE_VAL([su_cv_sys_c_line_in_termios],
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#if TERMIOS_NEEDS_XOPEN_SOURCE
#define _XOPEN_SOURCE
#endif
@@ -205,9 +343,9 @@ yes
#include <termios.h>]], [[struct termios t; return !sizeof t.c_line;]])],
[su_cv_sys_c_line_in_termios=yes],
[su_cv_sys_c_line_in_termios=no])])
AC_MSG_RESULT($su_cv_sys_c_line_in_termios)
AC_MSG_RESULT([$su_cv_sys_c_line_in_termios])
test $su_cv_sys_c_line_in_termios = yes \
&& AC_DEFINE(HAVE_C_LINE, 1, [FIXME])
&& AC_DEFINE([HAVE_C_LINE], [1], [FIXME])
fi
# FIXME: note that this macro appears above, too.
@@ -216,10 +354,10 @@ gl_WINSIZE_IN_PTEM
gl_HEADER_TIOCGWINSZ_IN_TERMIOS_H
if test $jm_cv_sys_tiocgwinsz_needs_termios_h = no && \
test $jm_cv_sys_tiocgwinsz_needs_sys_ioctl_h = no; then
AC_MSG_CHECKING(TIOCGWINSZ in sys/pty.h)
AC_CACHE_VAL(su_cv_sys_tiocgwinsz_in_sys_pty_h,
if test $gl_cv_sys_tiocgwinsz_needs_termios_h = no && \
test $gl_cv_sys_tiocgwinsz_needs_sys_ioctl_h = no; then
AC_MSG_CHECKING([TIOCGWINSZ in sys/pty.h])
AC_CACHE_VAL([su_cv_sys_tiocgwinsz_in_sys_pty_h],
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
#ifdef WINSIZE_IN_PTEM
# include <sys/stream.h>
@@ -230,10 +368,10 @@ if test $jm_cv_sys_tiocgwinsz_needs_termios_h = no && \
#include <sys/pty.h>]], [[int x = TIOCGWINSZ;]])],
[su_cv_sys_tiocgwinsz_in_sys_pty_h=yes],
[su_cv_sys_tiocgwinsz_in_sys_pty_h=no])])
AC_MSG_RESULT($su_cv_sys_tiocgwinsz_in_sys_pty_h)
AC_MSG_RESULT([$su_cv_sys_tiocgwinsz_in_sys_pty_h])
test $su_cv_sys_tiocgwinsz_in_sys_pty_h = yes \
&& AC_DEFINE(GWINSZ_IN_SYS_PTY, 1,
&& AC_DEFINE([GWINSZ_IN_SYS_PTY], [1],
[Define if your system defines TIOCGWINSZ in sys/pty.h.])
fi
@@ -242,13 +380,124 @@ AC_CHECK_DECLS([strsignal, sys_siglist, _sys_siglist, __sys_siglist], , ,
[AC_INCLUDES_DEFAULT
#include <signal.h>])
# For src/kill.c and src/printf.c.
AC_CHECK_DECLS([strtoimax, strtoumax])
cu_LIB_CHECK
cu_GMP
# Build df only if there's a point to it.
if test $gl_cv_list_mounted_fs = yes && test $gl_cv_fs_space = yes; then
gl_ADD_PROG([optional_bin_progs], [df])
fi
# Limit stdbuf to ELF systems with GCC
AC_MSG_CHECKING([whether this is an ELF system])
AC_EGREP_CPP([yes], [#if __ELF__
yes
#endif], [elf_sys=yes], [elf_sys=no])
AC_MSG_RESULT([$elf_sys])
if test "$elf_sys" = "yes" && \
test "$GCC" = "yes"; then
gl_ADD_PROG([optional_bin_progs], [stdbuf])
fi
############################################################################
mk="$srcdir/src/Makefile.am"
# Extract all literal names from the definition of $(EXTRA_PROGRAMS)
# in $mk but don't expand the variable references.
# Append each literal name to $optional_bin_progs.
v=EXTRA_PROGRAMS
for gl_i in `sed -n '/^'$v' =/,/[[^\]]$/p' $mk \
| sed 's/^ *//;/^\$.*/d;/^'$v' =/d' \
| tr -s '\\015\\012\\\\' ' '`; do
gl_ADD_PROG([optional_bin_progs], $gl_i)
done
# As above, extract literal names from the definition of $(no_install__progs)
# in $mk but don't expand the variable references.
v=no_install__progs
t=`sed -n '/^'$v' =/,/[[^\]]$/p' $mk \
| sed 's/^ *//;/^\$.*/d;/^'$v' =/d' \
| tr -s '\\015\\012\\\\' ' '`
# Remove any trailing space.
no_install_progs_default=`echo "$t"|sed 's/ $//'`
# Unfortunately, due to the way autoconf's AS_HELP_STRING works, the list
# of default-not-installed programs, "arch hostname su", must appear in two
# places: in this file below, and in $mk. Using "$no_install_progs_default"
# below cannot work. And we can't substitute the names into $mk because
# automake needs the literals, too.
# The compromise is to ensure that the space-separated list extracted
# above matches the literal 2nd argument below.
c="$srcdir/configure.ac"
re='^g''l_INCLUDE_EXCLUDE_PROG(.* [\[\(.*\)\]])'
t=`sed -n '/'"$re"'/{s/'"$re"'/\1/;s/,/ /gp
}' $c`
case $t in
$no_install_progs_default) ;;
*) AC_MSG_ERROR([[internal error: g'l_INCLUDE_EXCLUDE_PROG's 2nd arg, $t,
does not match the list of default-not-installed programs
($no_install_progs_default) also recorded in $mk]],
1) ;;
esac
# Given the name of a variable containing a space-separated list of
# install-by-default programs and the actual list do-not-install-by-default
# programs, modify the former variable to reflect any "do-install" and
# "don't-install" requests.
# I.e., add any program name specified via --enable-install-program=..., and
# remove any program name specified via --enable-no-install-program=...
# Note how the second argument below is a literal, with "," separators.
# That is required due to the way the macro works, and since the
# corresponding ./configure option argument is comma-separated on input.
gl_INCLUDE_EXCLUDE_PROG([optional_bin_progs], [arch,hostname,su])
# Now that we know which programs will actually be built up, figure out
# which optional helper progs should be compiled.
optional_pkglib_progs=
case " $optional_bin_progs " in
*' stdbuf '*) gl_ADD_PROG([optional_pkglib_progs], [libstdbuf.so]) ;;
esac
# Set INSTALL_SU if su installation has been requested via
# --enable-install-program=su.
AC_SUBST([INSTALL_SU])
case " $optional_bin_progs " in
*' su '*) INSTALL_SU=yes ;;
*) INSTALL_SU=no ;;
esac
MAN=`echo "$optional_bin_progs "|sed 's/ /.1 /g;s/ $//'|tr -d '\\015\\012'`
# Change "ginstall.1" to "install.1" in $MAN.
MAN=`for m in $MAN; do test $m = ginstall.1 && m=install.1; echo $m; done \
| tr '\015\012' ' '; echo`
# Remove [.1, since writing a portable rule for it in man/Makefile.am
# is not practical. The sed LHS below uses the autoconf quadrigraph
# representing '['.
MAN=`echo "$MAN"|sed 's/\@<:@\.1//'`
OPTIONAL_BIN_PROGS=`echo "$optional_bin_progs "|sed 's/ /\$(EXEEXT) /g;s/ $//'`
AC_SUBST([OPTIONAL_BIN_PROGS])
OPTIONAL_PKGLIB_PROGS=`echo "$optional_pkglib_progs " | sed 's/ $//'`
AC_SUBST([OPTIONAL_PKGLIB_PROGS])
NO_INSTALL_PROGS_DEFAULT=$no_install_progs_default
AC_SUBST([NO_INSTALL_PROGS_DEFAULT])
AM_CONDITIONAL([CROSS_COMPILING], [test "$cross_compiling" = yes])
# Arrange to rerun configure whenever the file, src/Makefile.am,
# containing the list of program names changes.
CONFIG_STATUS_DEPENDENCIES='$(top_srcdir)/src/Makefile.am'
AC_SUBST([CONFIG_STATUS_DEPENDENCIES])
############################################################################
# As long as "grep 'PRI[diouxX]' po/*.pot" reports matches in
# translatable strings, we must use need-formatstring-macros here.
AM_GNU_GETTEXT([external], [need-formatstring-macros])
AM_GNU_GETTEXT_VERSION([0.15])
AM_GNU_GETTEXT_VERSION([0.18.1])
# For a test of uniq: it uses the $LOCALE_FR envvar.
gt_LOCALE_FR
AC_CONFIG_FILES(
Makefile
@@ -258,48 +507,6 @@ AC_CONFIG_FILES(
po/Makefile.in
src/Makefile
tests/Makefile
tests/chgrp/Makefile
tests/chmod/Makefile
tests/chown/Makefile
tests/cp/Makefile
tests/cut/Makefile
tests/dd/Makefile
tests/dircolors/Makefile
tests/du/Makefile
tests/expr/Makefile
tests/factor/Makefile
tests/fmt/Makefile
tests/head/Makefile
tests/install/Makefile
tests/join/Makefile
tests/ln/Makefile
tests/ls-2/Makefile
tests/ls/Makefile
tests/md5sum/Makefile
tests/misc/Makefile
tests/mkdir/Makefile
tests/mv/Makefile
tests/od/Makefile
tests/pr/Makefile
tests/readlink/Makefile
tests/rm/Makefile
tests/rmdir/Makefile
tests/seq/Makefile
tests/sha1sum/Makefile
tests/shred/Makefile
tests/sort/Makefile
tests/stty/Makefile
tests/sum/Makefile
tests/tac/Makefile
tests/tail-2/Makefile
tests/tail/Makefile
tests/tee/Makefile
tests/test/Makefile
tests/touch/Makefile
tests/tr/Makefile
tests/tsort/Makefile
tests/unexpand/Makefile
tests/uniq/Makefile
tests/wc/Makefile
gnulib-tests/Makefile
)
AC_OUTPUT

132
dist-check.mk Normal file
View File

@@ -0,0 +1,132 @@
# Most of this is probably too coreutils-centric to be useful to other packages.
bin=bin-$$$$
write_loser = printf '\#!%s\necho $$0: bad path 1>&2; exit 1\n' '$(SHELL)'
tmpdir = $(abs_top_builddir)/tests/torture
t=$(tmpdir)/$(PACKAGE)/test
pfx=$(t)/i
built_programs = \
$$(echo 'spy:;@echo $$(bin_PROGRAMS)' \
| MAKEFLAGS= $(MAKE) -s -C src -f Makefile -f - spy \
| fmt -1 | sed 's,$(EXEEXT)$$,,' | sort -u)
# More than once, tainted build and source directory names would
# have caused at least one "make check" test to apply "chmod 700"
# to all directories under $HOME. Make sure it doesn't happen again.
tp = $(tmpdir)/taint
t_prefix = $(tp)/a
t_taint = '$(t_prefix) b'
fake_home = $(tp)/home
# When extracting from a distribution tarball, extract using the fastest
# method possible. With dist-xz, that means using the *.xz file.
ifneq ('', $(filter *.xz, $(DIST_ARCHIVES)))
tar_decompress_opt_ = J
suffix_ = xz
else
ifneq ('', $(filter *.gz, $(DIST_ARCHIVES)))
tar_decompress_opt_ = z
suffix_ = gz
else
tar_decompress_opt_ = j
suffix_ = bz2
endif
endif
amtar_extract_ = $(AMTAR) -$(tar_decompress_opt_)xf
preferred_tarball_ = $(distdir).tar.$(suffix_)
# Ensure that tests run from tainted build and src dir names work,
# and don't affect anything in $HOME. Create witness files in $HOME,
# record their attributes, and build/test. Then ensure that the
# witnesses were not affected.
# Skip this test when using libtool, since libtool-generated scripts
# cannot deal with a space-tainted srcdir.
ALL_RECURSIVE_TARGETS += taint-distcheck
taint-distcheck: $(DIST_ARCHIVES)
grep '^[ ]*LT_INIT' configure.ac >/dev/null && exit 0 || :
test -d $(t_taint) && chmod -R 700 $(t_taint) || :
-rm -rf $(t_taint) $(fake_home)
mkdir -p $(t_prefix) $(t_taint) $(fake_home)
$(amtar_extract_) $(preferred_tarball_) -C $(t_taint)
mkfifo $(fake_home)/fifo
touch $(fake_home)/f
mkdir -p $(fake_home)/d/e
ls -lR $(fake_home) $(t_prefix) > $(tp)/.ls-before
HOME=$(fake_home); export HOME; \
cd $(t_taint)/$(distdir) \
&& ./configure \
&& $(MAKE) \
&& $(MAKE) check \
&& ls -lR $(fake_home) $(t_prefix) > $(tp)/.ls-after \
&& diff $(tp)/.ls-before $(tp)/.ls-after \
&& test -d $(t_prefix)
rm -rf $(tp)
# Verify that a twisted use of --program-transform-name=PROGRAM works.
define install-transform-check
echo running install-transform-check \
&& rm -rf $(pfx) \
&& $(MAKE) program_transform_name='s/.*/zyx/' \
prefix=$(pfx) install \
&& test "$$(echo $(pfx)/bin/*)" = "$(pfx)/bin/zyx" \
&& test "$$(find $(pfx)/share/man -type f|sed 's,.*/,,;s,\..*,,')" = "zyx"
endef
# Install, then verify that all binaries and man pages are in place.
# Note that neither the binary, ginstall, nor the [.1 man page is installed.
define my-instcheck
echo running my-instcheck; \
$(MAKE) prefix=$(pfx) install \
&& test ! -f $(pfx)/bin/ginstall \
&& { fail=0; \
for i in $(built_programs); do \
test "$$i" = ginstall && i=install; \
for j in "$(pfx)/bin/$$i" \
"$(pfx)/share/man/man1/$$i.1"; do \
case $$j in *'[.1') continue;; esac; \
test -f "$$j" && : \
|| { echo "$$j not installed"; fail=1; }; \
done; \
done; \
test $$fail = 1 && exit 1 || :; \
}
endef
# Use this to make sure we don't run these programs when building
# from a virgin compressed tarball file, below.
null_AM_MAKEFLAGS ?= \
ACLOCAL=false \
AUTOCONF=false \
AUTOMAKE=false \
AUTOHEADER=false \
GPERF=false \
MAKEINFO=false
ALL_RECURSIVE_TARGETS += my-distcheck
my-distcheck: $(DIST_ARCHIVES) $(local-check)
$(MAKE) syntax-check
$(MAKE) check
-rm -rf $(t)
mkdir -p $(t)
$(amtar_extract_) $(preferred_tarball_) -C $(t)
(set -e; cd $(t)/$(distdir); \
./configure --quiet --enable-gcc-warnings --disable-nls; \
$(MAKE) AM_MAKEFLAGS='$(null_AM_MAKEFLAGS)'; \
$(MAKE) dvi; \
$(install-transform-check); \
$(my-instcheck); \
$(MAKE) distclean \
)
(cd $(t) && mv $(distdir) $(distdir).old \
&& $(amtar_extract_) - ) < $(preferred_tarball_)
diff -ur $(t)/$(distdir).old $(t)/$(distdir)
-rm -rf $(t)
rmdir $(tmpdir)/$(PACKAGE) $(tmpdir)
@echo "========================"; \
echo "ready for distribution:"; \
for i in $(DIST_ARCHIVES); do echo " $$i"; done; \
echo "========================"

View File

@@ -1,25 +0,0 @@
Makefile
Makefile.in
coreutils.aux
coreutils.cp
coreutils.cps
coreutils.dvi
coreutils.fl
coreutils.fn
coreutils.html
coreutils.info*
coreutils.ky
coreutils.log
coreutils.op
coreutils.pdf
coreutils.pg
coreutils.ps
coreutils.tmp
coreutils.toc
coreutils.tp
coreutils.tps
coreutils.vr
fdl.texi
getdate.texi
stamp-vti
version.texi

27
doc/.gitignore vendored
View File

@@ -1,5 +1,22 @@
coreutils.info
fdl.texi
getdate.texi
stamp-vti
version.texi
/constants.texi
/coreutils.aux
/coreutils.cp
/coreutils.cps
/coreutils.dvi
/coreutils.fl
/coreutils.fn
/coreutils.html
/coreutils.info
/coreutils.ky
/coreutils.log
/coreutils.op
/coreutils.pdf
/coreutils.pg
/coreutils.toc
/coreutils.tp
/coreutils.vr
/fdl.texi
/gendocs_template
/parse-datetime.texi
/stamp-vti
/version.texi

View File

@@ -1,3 +1,132 @@
2007-10-05 Jim Meyering <jim@meyering.net>
* coreutils.texi (chroot invocation): List two systems on which
chroot works when run by non-root.
2007-09-19 Jim Meyering <jim@meyering.net>
* coreutils.texi (expr invocation): Correct description of relative
operator precedence. Reported by hanpingtian@gmail.com.
2007-08-25 Eric Blake <ebb9@byu.net>
Avoid case-insensitive clash in one-page-per-node html docs.
* coreutils.texi (Concept index): Rename from Index.
2007-07-15 Jim Meyering <jim@meyering.net>
* coreutils.texi: Revise node structure per new fdl.texi.
2007-06-06 Jim Meyering <jim@meyering.net>
* coreutils.texi (rmdir invocation): Fix a tiny typo.
2007-06-03 Jim Meyering <jim@meyering.net>
* constants.texi: Remove from version control.
This file has always been generated.
* .gitignore: Add constants.texi.
2007-04-28 Paul Eggert <eggert@cs.ucla.edu>
* coreutils.texi (nohup invocation): Add advice about saving
output to a file.
2007-04-16 Jim Meyering <jim@meyering.net>
* coreutils.texi (cut invocation): Adjust synopsis to show that an
OPTION is required. Reported by Rudolf Kastl.
2007-03-21 Eric Blake <ebb9@byu.net>
* coreutils.texi (md5sum invocation): Document escapes in output
format. Reported by Armijn Hemel.
2007-03-15 Paul Eggert <eggert@cs.ucla.edu>
Fix manual in response to bug reports by Dan Jacobson.
* coreutils.texi (sort invocation): Explain numeric sorts better.
Compress self-congratulation into a simple "comparison is exact"
notice; the --general-numeric-sort option already explains the
tradeoffs.
(seq invocation): Add example of -f.
2007-03-12 Jim Meyering <jim@meyering.net>
* coreutils.texi (cp invocation): Mention that --preserve=timestamps
doesn't preserve time stamps on symbolic links.
Reported by Polo Talnir in <https://bugzilla.redhat.com/230866>.
2007-02-27 Paul Eggert <eggert@cs.ucla.edu>
* coreutils.texi (df invocation): With -P, the default block size
and output format is not affected by DF_BLOCK_SIZE, BLOCK_SIZE, or
BLOCKSIZE.
2007-01-30 Paul Eggert <eggert@cs.ucla.edu>
* coreutils.texi
(Input processing in ptx, mkdir invocation, rmdir invocation):
@item -> @itemx to fix some typos.
2007-01-30 Paul Eggert <eggert@cs.ucla.edu>
* coreutils.texi (mkdir invocation): Say how to set the file
permission bits of a parent directory with mkdir -p.
2007-01-29 Jim Meyering <jim@meyering.net>
Document new syntax: "chown +0:+287 file", "chgrp +99 file"
* coreutils.texi (Disambiguating names and IDs): New section.
(chown invocation, chgrp invocation): Mention the new syntax
with an xref to the new section.
2007-01-19 Jim Meyering <jim@meyering.net>
* coreutils.texi (ls: General output formatting): Mention the
workarounds to accommodate the Apple Terminal bug.
2007-01-04 Jim Meyering <jim@meyering.net>
* coreutils.texi (base64 invocation): When decoding, newlines
are always accepted.
2007-01-03 Jim Meyering <jim@meyering.net>
Document what the ".0" in e.g., "-k 2,3.0" means, and...
* coreutils.texi (sort invocation): ... that it can be applied to the
field-end spec, but not the field-start one. Patch from Evan Hunt.
2006-12-21 Jim Meyering <jim@meyering.net>
* coreutils.texi (dd invocation): Improve the documentation
for bs, ibs, obs, and cbs. Suggestion from Dan Jacobson.
Patch by Olivier Delhomme.
(dd invocation): Add to the description of cbs.
(dd invocation): Specify that bs=N overrides only any
_preceding_ ibs and obs settings. Spotted by Andreas Schwab.
2006-12-14 Jim Meyering <jim@meyering.net>
* coreutils.texi: Remove two doubled words.
(Treating / specially): With --preserve-root, chgrp and chown
will not modify "/", even through a symlink.
2006-11-28 Jim Meyering <jim@meyering.net>
* perm.texi (Mode Structure): Fix typo: s/setgid/setuid/.
Reported by Georg Neis as Debian bug 400778.
2006-10-27 Jim Meyering <jim@meyering.net>
* coreutils.texi (wc invocation): When giving the order in which
the various "counts" are listed, also mention "maximum line length".
Prompted by a report from Vincent LeFevre.
2006-10-23 Jim Meyering <jim@meyering.net>
* coreutils.texi (rm invocation): Describe --one-file-system.
2006-09-26 Paul Eggert <eggert@cs.ucla.edu>
* coreutils.texi (groups invocation): "groups" no longer prefixes
@@ -1873,8 +2002,7 @@
-----
Copyright (C) 2001, 2003, 2004, 2005, 2006 Free Software
Foundation, Inc.
Copyright (C) 2001-2012 Free Software Foundation, Inc.
Copying and distribution of this file, with or without
modification, are permitted provided the copyright notice

View File

@@ -1,11 +1,10 @@
# Make coreutils documentation. -*-Makefile-*-
# Copyright (C) 1995, 1996, 1997, 1998, 2001, 2002, 2003, 2004, 2005,
# 2006 Free Software Foundation, Inc.
# Copyright (C) 1995-2012 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
@@ -14,13 +13,11 @@
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
info_TEXINFOS = coreutils.texi
EXTRA_DIST = perm.texi getdate.texi constants.texi fdl.texi
EXTRA_DIST = perm.texi parse-datetime.texi constants.texi fdl.texi
# The following is necessary if the package name is 8 characters or longer.
# If the info documentation would be split into 10 or more separate files,
@@ -32,11 +29,14 @@ EXTRA_DIST = perm.texi getdate.texi constants.texi fdl.texi
# old systems.
AM_MAKEINFOFLAGS = --no-split
constants.texi: $(top_srcdir)/src/tail.c
LC_ALL=C \
sed -n -e 's/^#define \(DEFAULT_MAX[_A-Z]*\) \(.*\)/@set \1 \2/p' \
$(top_srcdir)/src/tail.c > t-$@
mv t-$@ $@
constants.texi: $(top_srcdir)/src/tail.c $(top_srcdir)/src/shred.c
$(AM_V_GEN)LC_ALL=C; export LC_ALL; \
{ sed -n -e 's/^#define \(DEFAULT_MAX[_A-Z]*\) \(.*\)/@set \1 \2/p' \
$(top_srcdir)/src/tail.c && \
sed -n -e \
's/.*\(DEFAULT_PASSES\)[ =]* \([0-9]*\).*/@set SHRED_\1 \2/p'\
$(top_srcdir)/src/shred.c; } > t-$@ \
&& mv t-$@ $@
MAINTAINERCLEANFILES = constants.texi
@@ -47,28 +47,88 @@ $(INFO_DEPS): $(EXTRA_DIST)
_W = (^|[^A-Za-z0-9_])
W_ = ([^A-Za-z0-9_]|$$)
syntax_checks = \
sc-avoid-builtin \
sc-avoid-io \
sc-avoid-non-zero \
sc-avoid-path \
sc-avoid-timezone \
sc-avoid-zeroes \
sc-exponent-grouping \
sc-lower-case-var \
sc-use-small-caps-NUL
.PHONY: $(syntax_checks) check-texinfo
# List words/regexps here that should not appear in the texinfo documentation.
# E.g., use @sc{nul}, not `NUL'
# Use `time zone', not `timezone'.
# Use `zeros', not `zeroes' (nothing wrong with `zeroes'. just be consistent).
check-texinfo:
fail=0; \
grep timezone $(srcdir)/*.texi && fail=1; \
$(EGREP) '$(_W)IO$(W_)' $(srcdir)/*.texi && fail=1; \
grep non-zero $(srcdir)/*.texi && fail=1; \
grep '@url{' $(srcdir)/*.texi && fail=1; \
$(EGREP) '$(_W)NUL$(W_)' $(srcdir)/*.texi && fail=1; \
grep '\$$@"' $(srcdir)/*.texi && fail=1; \
grep -n '[^[:punct:]]@footnote' $(srcdir)/*.texi && fail=1; \
grep -n filename $(srcdir)/*.texi|$(EGREP) -v 'setfilename|[{]filename[}]' \
&& fail=1; \
$(PERL) -e 1 2> /dev/null && { $(PERL) -ne \
'/\bPOSIX\b/ && !/\@acronym{POSIX}/ && !/^\* / || /{posix}/ and print,exit 1' \
$(srcdir)/*.texi 2> /dev/null || fail=1; }; \
$(EGREP) -i '$(_W)zeroes$(W_)' $(srcdir)/*.texi && fail=1; \
$(EGREP) -i '$(_W)builtins?$(W_)' $(srcdir)/*.texi && fail=1; \
$(EGREP) -i '$(_W)path(name)?s?$(W_)' $(srcdir)/*.texi \
| $(EGREP) -v '@vindex PATH$$|@env[{]PATH[}]' && fail=1; \
BAD_POSIX_PERL = /\bPOSIX\b/ && !/\@acronym{POSIX}/ && !/^\* / || /{posix}/
check-texinfo: $(syntax_checks)
$(AM_V_GEN)fail=0; \
grep '@url{' $(srcdir)/*.texi && fail=1; \
grep '\$$@"' $(srcdir)/*.texi && fail=1; \
grep -n '[^[:punct:]]@footnote' $(srcdir)/*.texi && fail=1; \
grep -n filename $(srcdir)/*.texi \
| $(EGREP) -v 'setfilename|[{]filename[}]' \
&& fail=1; \
$(PERL) -e 1 2> /dev/null && { $(PERL) -ne \
'$(BAD_POSIX_PERL) and print,exit 1' \
$(srcdir)/*.texi 2> /dev/null || fail=1; }; \
exit $$fail
sc-avoid-builtin:
$(AM_V_GEN)$(EGREP) -i '$(_W)builtins?$(W_)' $(srcdir)/*.texi \
&& exit 1 || :
sc-avoid-path:
$(AM_V_GEN)fail=0; \
$(EGREP) -i '$(_W)path(name)?s?$(W_)' $(srcdir)/*.texi \
| $(EGREP) -v \
'PATH=|path search|search path|@vindex PATH$$|@env[{]PATH[}]' \
&& fail=1; \
exit $$fail
# Use "time zone", not "timezone".
sc-avoid-timezone:
$(AM_V_GEN)$(EGREP) timezone $(srcdir)/*.texi && exit 1 || :
# Check for insufficient exponent grouping, e.g.,
# @math{2^64} should be @math{2^{64}}.
sc-exponent-grouping:
$(AM_V_GEN)$(EGREP) '\{.*\^[0-9][0-9]' $(srcdir)/*.texi && exit 1 || :
# E.g., use @sc{nul}, not NUL.
sc-use-small-caps-NUL:
$(AM_V_GEN)$(EGREP) '$(_W)NUL$(W_)' $(srcdir)/*.texi && exit 1 || :
# Say I/O, not IO.
sc-avoid-io:
$(AM_V_GEN)$(EGREP) '$(_W)IO$(W_)' $(srcdir)/*.texi && exit 1 || :
# I prefer nonzero over non-zero.
sc-avoid-non-zero:
$(AM_V_GEN)$(EGREP) non-zero $(srcdir)/*.texi && exit 1 || :
# Use "zeros", not "zeroes" (nothing wrong with "zeroes"; just be consistent).
sc-avoid-zeroes:
$(AM_V_GEN)$(EGREP) -i '$(_W)zeroes$(W_)' $(srcdir)/*.texi \
&& exit 1 || :
# ME = $(subdir)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
ME = doc/Makefile
# The quantity inside @var{...} should not contain upper case letters.
# The leading backslash exemption is to permit in-macro uses like
# @var{\varName\} where the upper case letter is part of a parameter name.
find_upper_case_var = \
'/\@var{/ or next; \
while (/\@var{(.+?)}/g) \
{ \
$$v = $$1; \
$$v =~ /[A-Z]/ && $$v !~ /^\\/ and (print "$$ARGV:$$.:$$_"), $$m = 1 \
} \
END {$$m and (warn "$(ME): do not use upper case in \@var{...}\n"), exit 1}'
sc-lower-case-var:
$(AM_V_GEN)$(PERL) -e 1 || { echo $@: skipping test; exit 0; }; \
$(PERL) -lne $(find_upper_case_var) $(srcdir)/*.texi
check: check-texinfo

View File

@@ -1,8 +0,0 @@
perl -pi -e \
's/\@code\{('"$(echo cp dd df dir dircolors du install ln ls mkdir mkfifo mknod mv shred touch vdir|tr ' ' '|')"')\}/\@command{$1}/' coreutils.texi
perl -pi -e \
's/\@code\{('"$(echo cp dd df dir dircolors du install ln ls mkdir mkfifo mknod mv shred touch vdir|tr ' ' '|')"')\}/\@command{$1}/' coreutils.texi
regex=$((textutils; shellutils) | tr -s ' ' '|')
perl -pi -e 's/\@code\{('"$regex"')\}/\@command{$1}/' coreutils.texi

View File

@@ -1 +0,0 @@
@set DEFAULT_MAX_N_UNCHANGED_STATS_BETWEEN_OPENS 5

File diff suppressed because it is too large Load Diff

View File

@@ -1,10 +1,9 @@
@c File mode bits
@c Copyright (C) 1994, 1996, 1999, 2000, 2001, 2003, 2004, 2005, 2006
@c Free Software Foundation, Inc.
@c Copyright (C) 1994-2012 Free Software Foundation, Inc.
@c Permission is granted to copy, distribute and/or modify this document
@c under the terms of the GNU Free Documentation License, Version 1.2 or
@c under the terms of the GNU Free Documentation License, Version 1.3 or
@c any later version published by the Free Software Foundation; with no
@c Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
@c Texts. A copy of the license is included in the ``GNU Free
@@ -18,6 +17,7 @@ symbolic form or as an octal number.
* Mode Structure:: Structure of file mode bits.
* Symbolic Modes:: Mnemonic representation of file mode bits.
* Numeric Modes:: File mode bits as octal numbers.
* Operator Numeric Modes:: ANDing, ORing, and setting modes octally.
* Directory Setuid and Setgid:: Set-user-ID and set-group-ID on directories.
@end menu
@@ -75,7 +75,7 @@ executable files (programs) and, on most systems, directories:
@cindex set-user-ID
@cindex setuid
Set the process's effective user ID to that of the file upon execution
(called the @dfn{set-user-ID bit}, or sometimes the @dfn{setgid bit}).
(called the @dfn{set-user-ID bit}, or sometimes the @dfn{setuid bit}).
For directories on a few systems, give files created in the directory
the same owner as the directory, no matter who creates them, and set
the set-user-ID bit of newly-created subdirectories.
@@ -496,13 +496,16 @@ alternative to giving a symbolic mode, you can give an octal (base 8)
number that represents the mode.
This number is always interpreted in octal; you do not have to add a
leading @samp{0}, as you do in C. Mode @samp{0055} is the same as
mode @samp{55}.
mode @samp{55}. (However, modes of five digits or more, such as
@samp{00055}, are sometimes special. @xref{Directory Setuid and Setgid}.)
A numeric mode is usually shorter than the corresponding symbolic
mode, but it is limited in that normally it cannot take into account the
previous file mode bits; it can only set them absolutely.
(As discussed in the next section, the set-user-ID and set-group-ID
bits of directories are an exception to this general limitation.)
The set-user-ID and set-group-ID bits of directories are an exception
to this general limitation; @xref{Directory Setuid and Setgid}.
Also, operator numeric modes can take previous file mode bits into
account; @xref{Operator Numeric Modes}.
The permissions granted to the user,
to other users in the file's group,
@@ -542,6 +545,26 @@ For example, numeric mode @samp{4755} corresponds to symbolic mode
@samp{ug=rw,o=r}. Numeric mode @samp{0} corresponds to symbolic mode
@samp{a=}.
@node Operator Numeric Modes
@section Operator Numeric Modes
An operator numeric mode is a numeric mode that is prefixed by a
@samp{-}, @samp{+}, or @samp{=} operator, which has the same
interpretation as in symbolic modes. For example, @samp{+440} enables
read permission for the file's owner and group, @samp{-1} disables
execute permission for other users, and @samp{=600} clears all
permissions except for enabling read-write permissions for the file's
owner. Operator numeric modes can be combined with symbolic modes by
separating them with a comma; for example, @samp{=0,u+r} clears all
permissions except for enabling read permission for the file's owner.
The commands @samp{chmod =755 @var{dir}} and @samp{chmod 755
@var{dir}} differ in that the former clears the directory @var{dir}'s
setuid and setgid bits, whereas the latter preserves them.
@xref{Directory Setuid and Setgid}.
Operator numeric modes are a @acronym{GNU} extension.
@node Directory Setuid and Setgid
@section Directories and the Set-User-ID and Set-Group-ID Bits
@@ -560,8 +583,10 @@ bits of directories. If commands like @command{chmod} and
mechanisms would be less convenient and it would be harder to share
files. Therefore, a command like @command{chmod} does not affect the
set-user-ID or set-group-ID bits of a directory unless the user
specifically mentions them in a symbolic mode, or sets them in
a numeric mode. For example, on systems that support
specifically mentions them in a symbolic mode, or uses an operator
numeric mode such as @samp{=755}, or sets them in a numeric mode, or
clears them in a numeric mode that has five or more octal digits.
For example, on systems that support
set-group-ID inheritance:
@example
@@ -583,22 +608,32 @@ explicitly in the symbolic or numeric modes, e.g.:
@example
# These commands try to set the set-user-ID
# and set-group-ID bits of the subdirectories.
mkdir G H
mkdir G
chmod 6755 G
chmod u=rwx,go=rx,a+s H
mkdir -m 6755 I
chmod +6000 G
chmod u=rwx,go=rx,a+s G
mkdir -m 6755 H
mkdir -m +6000 I
mkdir -m u=rwx,go=rx,a+s J
@end example
If you want to try to clear these bits, you must mention them
explicitly in a symbolic mode, e.g.:
explicitly in a symbolic mode, or use an operator numeric mode, or
specify a numeric mode with five or more octal digits, e.g.:
@example
# This command tries to clear the set-user-ID
# These commands try to clear the set-user-ID
# and set-group-ID bits of the directory D.
chmod a-s D
chmod -6000 D
chmod =755 D
chmod 00755 D
@end example
This behavior is a @acronym{GNU} extension. Portable scripts should
not rely on requests to set or clear these bits on directories, as
@acronym{POSIX} allows implementations to ignore these requests.
The @acronym{GNU} behavior with numeric modes of four or fewer digits
is intended for scripts portable to systems that preserve these bits;
the behavior with numeric modes of five or more digits is for scripts
portable to systems that do not preserve the bits.

37
gl/lib/fadvise.c Normal file
View File

@@ -0,0 +1,37 @@
/* Declare an access pattern hint for files.
Copyright (C) 2010-2012 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include <config.h>
#include "fadvise.h"
#include <stdio.h>
#include <fcntl.h>
#include "ignore-value.h"
void
fdadvise (int fd, off_t offset, off_t len, fadvice_t advice)
{
#if HAVE_POSIX_FADVISE
ignore_value (posix_fadvise (fd, offset, len, advice));
#endif
}
void
fadvise (FILE *fp, fadvice_t advice)
{
if (fp)
fdadvise (fileno (fp), 0, 0, advice);
}

72
gl/lib/fadvise.h Normal file
View File

@@ -0,0 +1,72 @@
/* Declare an access pattern hint for files.
Copyright (C) 2010-2012 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include <config.h>
#include <stdio.h>
#include <fcntl.h>
#include <sys/types.h>
/* There are a few hints one can provide, which have the
following characteristics on Linux 2.6.31 at least.
POSIX_FADV_SEQUENTIAL
Doubles the size of read ahead done for file
POSIX_FADV_WILLNEED
_synchronously_ prepopulate the buffer cache with the file
POSIX_FADV_NOREUSE
Could lower priority of data in buffer caches,
but currently does nothing.
POSIX_FADV_DONTNEED
Drop the file from cache.
Note this is automatically done when files are unlinked.
We use this enum "type" both to make it explicit that
these options are mutually exclusive, and to discourage
the passing of the possibly undefined POSIX_FADV_... values.
Note we could #undef the POSIX_FADV_ values, but that would
preclude using the posix_fadvise() function with its standard
constants. Using posix_fadvise() might be required if the return
value is needed, but it must be guarded by appropriate #ifdefs. */
#if HAVE_POSIX_FADVISE
typedef enum {
FADVISE_NORMAL = POSIX_FADV_NORMAL,
FADVISE_SEQUENTIAL = POSIX_FADV_SEQUENTIAL,
FADVISE_NOREUSE = POSIX_FADV_NOREUSE,
FADVISE_DONTNEED = POSIX_FADV_DONTNEED,
FADVISE_WILLNEED = POSIX_FADV_WILLNEED,
FADVISE_RANDOM = POSIX_FADV_RANDOM,
} fadvice_t;
#else
typedef enum {
FADVISE_NORMAL,
FADVISE_SEQUENTIAL,
FADVISE_NOREUSE,
FADVISE_DONTNEED,
FADVISE_WILLNEED,
FADVISE_RANDOM,
} fadvice_t;
#endif
/* We ignore any errors as these hints are only advisory.
There is the chance one can pass invalid ADVICE, which will
not be indicated, but given the simplicity of the interface
this is unlikely. Also not returning errors allows the
unconditional passing of descriptors to non standard files,
which will just be ignored if unsupported. */
void fdadvise (int fd, off_t offset, off_t len, fadvice_t advice);
void fadvise (FILE *fp, fadvice_t advice);

151
gl/lib/heap.c Normal file
View File

@@ -0,0 +1,151 @@
/* Barebones heap implementation supporting only insert and pop.
Copyright (C) 2010-2012 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* Full implementation: GDSL (http://gna.org/projects/gdsl/) by Nicolas
Darnis <ndarnis@free.fr>. */
#include <config.h>
#include "heap.h"
#include "stdlib--.h"
#include "xalloc.h"
static int heap_default_compare (void const *, void const *);
static size_t heapify_down (void **, size_t, size_t,
int (*) (void const *, void const *));
static void heapify_up (void **, size_t,
int (*) (void const *, void const *));
struct heap
{
void **array; /* array[0] is not used */
size_t capacity; /* Array size */
size_t count; /* Used as index to last element. Also is num of items. */
int (*compare) (void const *, void const *);
};
/* Allocate memory for the heap. */
struct heap *
heap_alloc (int (*compare) (void const *, void const *), size_t n_reserve)
{
struct heap *heap = xmalloc (sizeof *heap);
if (n_reserve == 0)
n_reserve = 1;
heap->array = xnmalloc (n_reserve, sizeof *(heap->array));
heap->array[0] = NULL;
heap->capacity = n_reserve;
heap->count = 0;
heap->compare = compare ? compare : heap_default_compare;
return heap;
}
static int
heap_default_compare (void const *a, void const *b)
{
return 0;
}
void
heap_free (struct heap *heap)
{
free (heap->array);
free (heap);
}
/* Insert element into heap. */
int
heap_insert (struct heap *heap, void *item)
{
if (heap->capacity - 1 <= heap->count)
heap->array = x2nrealloc (heap->array, &heap->capacity,
sizeof *(heap->array));
heap->array[++heap->count] = item;
heapify_up (heap->array, heap->count, heap->compare);
return 0;
}
/* Pop top element off heap. */
void *
heap_remove_top (struct heap *heap)
{
void *top;
if (heap->count == 0)
return NULL;
top = heap->array[1];
heap->array[1] = heap->array[heap->count--];
heapify_down (heap->array, heap->count, 1, heap->compare);
return top;
}
/* Move element down into appropriate position in heap. */
static size_t
heapify_down (void **array, size_t count, size_t initial,
int (*compare) (void const *, void const *))
{
void *element = array[initial];
size_t parent = initial;
while (parent <= count / 2)
{
size_t child = 2 * parent;
if (child < count && compare (array[child], array[child+1]) < 0)
child++;
if (compare (array[child], element) <= 0)
break;
array[parent] = array[child];
parent = child;
}
array[parent] = element;
return parent;
}
/* Move element up into appropriate position in heap. */
static void
heapify_up (void **array, size_t count,
int (*compare) (void const *, void const *))
{
size_t k = count;
void *new_element = array[k];
while (k != 1 && compare (array[k/2], new_element) <= 0)
{
array[k] = array[k/2];
k /= 2;
}
array[k] = new_element;
}

26
gl/lib/heap.h Normal file
View File

@@ -0,0 +1,26 @@
/* Barebones heap implementation supporting only insert and pop.
Copyright (C) 2010-2012 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* Full implementation: GDSL (http://gna.org/projects/gdsl/) by Nicolas
Darnis <ndarnis@free.fr>. Adapted by Gene Auyeung. */
#include <stddef.h>
struct heap *heap_alloc (int (*) (void const *, void const *), size_t);
void heap_free (struct heap *);
int heap_insert (struct heap *heap, void *item);
void *heap_remove_top (struct heap *heap);

269
gl/lib/mbsalign.c Normal file
View File

@@ -0,0 +1,269 @@
/* Align/Truncate a string in a given screen width
Copyright (C) 2009-2012 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* Written by Pádraig Brady. */
#include <config.h>
#include "mbsalign.h"
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <stdint.h>
#include <stdbool.h>
#include <limits.h>
#include <wchar.h>
#include <wctype.h>
#ifndef MIN
# define MIN(a, b) ((a) < (b) ? (a) : (b))
#endif
/* Replace non printable chars.
Note \t and \n etc. are non printable.
Return 1 if replacement made, 0 otherwise. */
static bool
wc_ensure_printable (wchar_t *wchars)
{
bool replaced = false;
wchar_t *wc = wchars;
while (*wc)
{
if (!iswprint ((wint_t) *wc))
{
*wc = 0xFFFD; /* L'\uFFFD' (replacement char) */
replaced = true;
}
wc++;
}
return replaced;
}
/* Truncate wchar string to width cells.
* Returns number of cells used. */
static size_t
wc_truncate (wchar_t *wc, size_t width)
{
size_t cells = 0;
int next_cells = 0;
while (*wc)
{
next_cells = wcwidth (*wc);
if (next_cells == -1) /* non printable */
{
*wc = 0xFFFD; /* L'\uFFFD' (replacement char) */
next_cells = 1;
}
if (cells + next_cells > width)
break;
cells += next_cells;
wc++;
}
*wc = L'\0';
return cells;
}
/* Write N_SPACES space characters to DEST while ensuring
nothing is written beyond DEST_END. A terminating NUL
is always added to DEST.
A pointer to the terminating NUL is returned. */
static char*
mbs_align_pad (char *dest, const char* dest_end, size_t n_spaces)
{
/* FIXME: Should we pad with "figure space" (\u2007)
if non ascii data present? */
while (n_spaces-- && (dest < dest_end))
*dest++ = ' ';
*dest = '\0';
return dest;
}
/* Align a string, SRC, in a field of *WIDTH columns, handling multi-byte
characters; write the result into the DEST_SIZE-byte buffer, DEST.
ALIGNMENT specifies whether to left- or right-justify or to center.
If SRC requires more than *WIDTH columns, truncate it to fit.
When centering, the number of trailing spaces may be one less than the
number of leading spaces.
Return the length in bytes required for the final result, not counting
the trailing NUL. A return value of DEST_SIZE or larger means there
wasn't enough space. DEST will be NUL terminated in any case.
Return SIZE_MAX upon error (invalid multi-byte sequence in SRC,
or malloc failure), unless MBA_UNIBYTE_FALLBACK is specified.
Update *WIDTH to indicate how many columns were used before padding. */
size_t
mbsalign (const char *src, char *dest, size_t dest_size,
size_t *width, mbs_align_t align, int flags)
{
size_t ret = SIZE_MAX;
size_t src_size = strlen (src) + 1;
char *newstr = NULL;
wchar_t *str_wc = NULL;
const char *str_to_print = src;
size_t n_cols = src_size - 1;
size_t n_used_bytes = n_cols; /* Not including NUL */
size_t n_spaces = 0;
bool conversion = false;
bool wc_enabled = false;
/* In multi-byte locales convert to wide characters
to allow easy truncation. Also determine number
of screen columns used. */
if (MB_CUR_MAX > 1)
{
size_t src_chars = mbstowcs (NULL, src, 0);
if (src_chars == SIZE_MAX)
{
if (flags & MBA_UNIBYTE_FALLBACK)
goto mbsalign_unibyte;
else
goto mbsalign_cleanup;
}
src_chars += 1; /* make space for NUL */
str_wc = malloc (src_chars * sizeof (wchar_t));
if (str_wc == NULL)
{
if (flags & MBA_UNIBYTE_FALLBACK)
goto mbsalign_unibyte;
else
goto mbsalign_cleanup;
}
if (mbstowcs (str_wc, src, src_chars) != 0)
{
str_wc[src_chars - 1] = L'\0';
wc_enabled = true;
conversion = wc_ensure_printable (str_wc);
n_cols = wcswidth (str_wc, src_chars);
}
}
/* If we transformed or need to truncate the source string
then create a modified copy of it. */
if (wc_enabled && (conversion || (n_cols > *width)))
{
if (conversion)
{
/* May have increased the size by converting
\t to \uFFFD for example. */
src_size = wcstombs (NULL, str_wc, 0) + 1;
}
newstr = malloc (src_size);
if (newstr == NULL)
{
if (flags & MBA_UNIBYTE_FALLBACK)
goto mbsalign_unibyte;
else
goto mbsalign_cleanup;
}
str_to_print = newstr;
n_cols = wc_truncate (str_wc, *width);
n_used_bytes = wcstombs (newstr, str_wc, src_size);
}
mbsalign_unibyte:
if (n_cols > *width) /* Unibyte truncation required. */
{
n_cols = *width;
n_used_bytes = n_cols;
}
if (*width > n_cols) /* Padding required. */
n_spaces = *width - n_cols;
/* indicate to caller how many cells needed (not including padding). */
*width = n_cols;
/* indicate to caller how many bytes needed (not including NUL). */
ret = n_used_bytes + (n_spaces * 1);
/* Write as much NUL terminated output to DEST as possible. */
if (dest_size != 0)
{
size_t start_spaces, end_spaces, space_left;
char *dest_end = dest + dest_size - 1;
switch (align)
{
case MBS_ALIGN_LEFT:
start_spaces = 0;
end_spaces = n_spaces;
break;
case MBS_ALIGN_RIGHT:
start_spaces = n_spaces;
end_spaces = 0;
break;
case MBS_ALIGN_CENTER:
default:
start_spaces = n_spaces / 2 + n_spaces % 2;
end_spaces = n_spaces / 2;
break;
}
dest = mbs_align_pad (dest, dest_end, start_spaces);
space_left = dest_end - dest;
dest = mempcpy (dest, str_to_print, MIN (n_used_bytes, space_left));
mbs_align_pad (dest, dest_end, end_spaces);
}
mbsalign_cleanup:
free (str_wc);
free (newstr);
return ret;
}
/* A wrapper around mbsalign() to dynamically allocate the
minimum amount of memory to store the result.
Return NULL on failure. */
char *
ambsalign (const char *src, size_t *width, mbs_align_t align, int flags)
{
size_t orig_width = *width;
size_t size = *width; /* Start with enough for unibyte mode. */
size_t req = size;
char *buf = NULL;
while (req >= size)
{
char *nbuf;
size = req + 1; /* Space for NUL. */
nbuf = realloc (buf, size);
if (nbuf == NULL)
{
free (buf);
buf = NULL;
break;
}
buf = nbuf;
*width = orig_width;
req = mbsalign (src, buf, size, width, align, flags);
if (req == SIZE_MAX)
{
free (buf);
buf = NULL;
break;
}
}
return buf;
}

46
gl/lib/mbsalign.h Normal file
View File

@@ -0,0 +1,46 @@
/* Align/Truncate a string in a given screen width
Copyright (C) 2009-2012 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include <stddef.h>
typedef enum { MBS_ALIGN_LEFT, MBS_ALIGN_RIGHT, MBS_ALIGN_CENTER } mbs_align_t;
enum {
/* Use unibyte mode for invalid multibyte strings
or when heap memory is exhausted. */
MBA_UNIBYTE_FALLBACK = 0x0001
#if 0 /* Other possible options. */
/* Skip invalid multibyte chars rather than failing */
MBA_IGNORE_INVALID = 0x0002,
/* Align multibyte strings using "figure space" (\u2007) */
MBA_USE_FIGURE_SPACE = 0x0004,
/* Don't add any padding */
MBA_TRUNCATE_ONLY = 0x0008,
/* Don't truncate */
MBA_PAD_ONLY = 0x0010,
#endif
};
size_t
mbsalign (const char *src, char *dest, size_t dest_size,
size_t *width, mbs_align_t align, int flags);
char *
ambsalign (const char *src, size_t *width, mbs_align_t align, int flags);

258
gl/lib/rand-isaac.c Normal file
View File

@@ -0,0 +1,258 @@
/* Bob Jenkins's cryptographic random number generators, ISAAC and ISAAC64.
Copyright (C) 1999-2012 Free Software Foundation, Inc.
Copyright (C) 1997, 1998, 1999 Colin Plumb.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Written by Colin Plumb and Paul Eggert. */
/*
* --------------------------------------------------------------------
* We need a source of random numbers for some data.
* Cryptographically secure is desirable, but it's not life-or-death
* so I can be a little bit experimental in the choice of RNGs here.
*
* This generator is based somewhat on RC4, but has analysis
* <http://burtleburtle.net/bob/rand/isaacafa.html>
* pointing to it actually being better. I like it because it's nice
* and fast, and because the author did good work analyzing it.
* --------------------------------------------------------------------
*/
#include <config.h>
#include "rand-isaac.h"
#include <limits.h>
/* The minimum of two sizes A and B. */
static inline size_t
min (size_t a, size_t b)
{
return (a < b ? a : b);
}
/* A if 32-bit ISAAC, B if 64-bit. This is a macro, not an inline
function, to prevent undefined behavior if the unused argument
shifts by more than a word width. */
#define IF32(a, b) (ISAAC_BITS == 32 ? (a) : (b))
/* Discard bits outside the desired range. On typical machines, any
decent compiler should optimize this function call away to nothing.
But machines with pad bits in integers may need to do more work. */
static inline isaac_word
just (isaac_word a)
{
isaac_word desired_bits = ((isaac_word) 1 << 1 << (ISAAC_BITS - 1)) - 1;
return a & desired_bits;
}
/* The index operation. On typical machines whose words are exactly
the right size, this is optimized to a mask, an addition, and an
indirect load. Atypical machines need more work. */
static inline isaac_word
ind (isaac_word const *m, isaac_word x)
{
return (sizeof *m * CHAR_BIT == ISAAC_BITS
? (* (isaac_word *) ((char *) m
+ (x & ((ISAAC_WORDS - 1) * sizeof *m))))
: m[(x / (ISAAC_BITS / CHAR_BIT)) & (ISAAC_WORDS - 1)]);
}
/* Use and update *S to generate random data to fill RESULT. */
void
isaac_refill (struct isaac_state *s, isaac_word result[ISAAC_WORDS])
{
/* Caches of S->a and S->b. */
isaac_word a = s->a;
isaac_word b = s->b + (++s->c);
/* Pointers into state array and into result. */
isaac_word *m = s->m;
isaac_word *r = result;
enum { HALF = ISAAC_WORDS / 2 };
/* The central step. S->m is the whole state array, while M is a
pointer to the current word. OFF is the offset from M to the
word ISAAC_WORDS/2 words away in the SM array, i.e. +/-
ISAAC_WORDS/2. A and B are state variables, and R the result.
This updates A, B, M[I], and R[I]. */
#define ISAAC_STEP(i, off, mix) \
{ \
isaac_word x, y; \
a = (IF32 (a, 0) ^ (mix)) + m[off + (i)]; \
x = m[i]; \
m[i] = y = ind (s->m, x) + a + b; \
r[i] = b = just (ind (s->m, y >> ISAAC_WORDS_LOG) + x); \
}
do
{
ISAAC_STEP (0, HALF, IF32 ( a << 13, ~ (a ^ (a << 21))));
ISAAC_STEP (1, HALF, IF32 (just (a) >> 6, a ^ (just (a) >> 5)));
ISAAC_STEP (2, HALF, IF32 ( a << 2, a ^ ( a << 12)));
ISAAC_STEP (3, HALF, IF32 (just (a) >> 16, a ^ (just (a) >> 33)));
r += 4;
}
while ((m += 4) < s->m + HALF);
do
{
ISAAC_STEP (0, -HALF, IF32 ( a << 13, ~ (a ^ (a << 21))));
ISAAC_STEP (1, -HALF, IF32 (just (a) >> 6, a ^ (just (a) >> 5)));
ISAAC_STEP (2, -HALF, IF32 ( a << 2, a ^ ( a << 12)));
ISAAC_STEP (3, -HALF, IF32 (just (a) >> 16, a ^ (just (a) >> 33)));
r += 4;
}
while ((m += 4) < s->m + ISAAC_WORDS);
s->a = a;
s->b = b;
}
/*
* The basic seed-scrambling step for initialization, based on Bob
* Jenkins' 256-bit hash.
*/
#if ISAAC_BITS == 32
#define mix(a, b, c, d, e, f, g, h) \
{ \
a ^= b << 11; d += a; \
b += c; b ^= just (c) >> 2; e += b; \
c += d; c ^= d << 8; f += c; \
d += e; d ^= just (e) >> 16; g += d; \
e += f; e ^= f << 10; h += e; \
f += g; f ^= just (g) >> 4; a += f; \
g += h; g ^= h << 8; b += g; \
h += a; h ^= just (a) >> 9; c += h; \
a += b; \
}
#else
#define mix(a, b, c, d, e, f, g, h) \
{ \
a -= e; f ^= just (h) >> 9; h += a; \
b -= f; g ^= a << 9; a += b; \
c -= g; h ^= just (b) >> 23; b += c; \
d -= h; a ^= c << 15; c += d; \
e -= a; b ^= just (d) >> 14; d += e; \
f -= b; c ^= e << 20; e += f; \
g -= c; d ^= just (f) >> 17; f += g; \
h -= d; e ^= g << 14; g += h; \
}
#endif
/* The basic ISAAC initialization pass. */
#define ISAAC_MIX(s, a, b, c, d, e, f, g, h, seed) \
{ \
int i; \
\
for (i = 0; i < ISAAC_WORDS; i += 8) \
{ \
a += seed[i]; \
b += seed[i + 1]; \
c += seed[i + 2]; \
d += seed[i + 3]; \
e += seed[i + 4]; \
f += seed[i + 5]; \
g += seed[i + 6]; \
h += seed[i + 7]; \
mix (a, b, c, d, e, f, g, h); \
s->m[i] = a; \
s->m[i + 1] = b; \
s->m[i + 2] = c; \
s->m[i + 3] = d; \
s->m[i + 4] = e; \
s->m[i + 5] = f; \
s->m[i + 6] = g; \
s->m[i + 7] = h; \
} \
}
#if 0 /* Provided for reference only; not used in this code */
/*
* Initialize the ISAAC RNG with the given seed material.
* Its size MUST be a multiple of ISAAC_BYTES, and may be
* stored in the s->m array.
*
* This is a generalization of the original ISAAC initialization code
* to support larger seed sizes. For seed sizes of 0 and ISAAC_BYTES,
* it is identical.
*/
static void
isaac_init (struct isaac_state *s, isaac_word const *seed, size_t seedsize)
{
isaac_word a, b, c, d, e, f, g, h;
a = b = c = d = e = f = g = h = /* the golden ratio */
IF32 (UINT32_C (0x9e3779b9), UINT64_C (0x9e3779b97f4a7c13));
for (int i = 0; i < 4; i++) /* scramble it */
mix (a, b, c, d, e, f, g, h);
s->a = s->b = s->c = 0;
if (seedsize)
{
/* First pass (as in reference ISAAC code) */
ISAAC_MIX (s, a, b, c, d, e, f, g, h, seed);
/* Second and subsequent passes (extension to ISAAC) */
while (seedsize -= ISAAC_BYTES)
{
seed += ISAAC_WORDS;
for (i = 0; i < ISAAC_WORDS; i++)
s->m[i] += seed[i];
ISAAC_MIX (s, a, b, c, d, e, f, g, h, s->m);
}
}
else
{
/* The no seed case (as in reference ISAAC code) */
for (i = 0; i < ISAAC_WORDS; i++)
s->m[i] = 0;
}
/* Final pass */
ISAAC_MIX (s, a, b, c, d, e, f, g, h, s->m);
}
#endif
/* Initialize *S to a somewhat-random value, derived from a seed
stored in S->m. */
void
isaac_seed (struct isaac_state *s)
{
isaac_word a = IF32 (UINT32_C (0x1367df5a), UINT64_C (0x647c4677a2884b7c));
isaac_word b = IF32 (UINT32_C (0x95d90059), UINT64_C (0xb9f8b322c73ac862));
isaac_word c = IF32 (UINT32_C (0xc3163e4b), UINT64_C (0x8c0ea5053d4712a0));
isaac_word d = IF32 (UINT32_C (0x0f421ad8), UINT64_C (0xb29b2e824a595524));
isaac_word e = IF32 (UINT32_C (0xd92a4a78), UINT64_C (0x82f053db8355e0ce));
isaac_word f = IF32 (UINT32_C (0xa51a3c49), UINT64_C (0x48fe4a0fa5a09315));
isaac_word g = IF32 (UINT32_C (0xc4efea1b), UINT64_C (0xae985bf2cbfc89ed));
isaac_word h = IF32 (UINT32_C (0x30609119), UINT64_C (0x98f5704f6c44c0ab));
#if 0
/* The initialization of a through h is a precomputed form of: */
a = b = c = d = e = f = g = h = /* the golden ratio */
IF32 (UINT32_C (0x9e3779b9), UINT64_C (0x9e3779b97f4a7c13));
for (int i = 0; i < 4; i++) /* scramble it */
mix (a, b, c, d, e, f, g, h);
#endif
/* Mix S->m so that every part of the seed affects every part of the
state. */
ISAAC_MIX (s, a, b, c, d, e, f, g, h, s->m);
ISAAC_MIX (s, a, b, c, d, e, f, g, h, s->m);
s->a = s->b = s->c = 0;
}

65
gl/lib/rand-isaac.h Normal file
View File

@@ -0,0 +1,65 @@
/* Bob Jenkins's cryptographic random number generators, ISAAC and ISAAC64.
Copyright (C) 1999-2012 Free Software Foundation, Inc.
Copyright (C) 1997, 1998, 1999 Colin Plumb.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Written by Colin Plumb and Paul Eggert. */
#ifndef _GL_RAND_ISAAC_H
#define _GL_RAND_ISAAC_H
#include <stddef.h>
#include <stdint.h>
/* Log base 2 of the number of useful bits in an ISAAC word. It must
be either 5 or 6. By default, this uses a value that should be
faster for this architecture. */
#ifndef ISAAC_BITS_LOG
#if SIZE_MAX >> 31 >> 31 < 3 /* SIZE_MAX < 2**64 - 1 */
#define ISAAC_BITS_LOG 5
#else
#define ISAAC_BITS_LOG 6
#endif
#endif
/* The number of bits in an ISAAC word. */
#define ISAAC_BITS (1 << ISAAC_BITS_LOG)
#if ISAAC_BITS == 32
typedef uint_least32_t isaac_word;
#else
typedef uint_least64_t isaac_word;
#endif
/* Size of the state tables to use. ISAAC_WORDS_LOG should be at least 3,
and smaller values give less security. */
#define ISAAC_WORDS_LOG 8
#define ISAAC_WORDS (1 << ISAAC_WORDS_LOG)
#define ISAAC_BYTES (ISAAC_WORDS * sizeof (isaac_word))
/* State variables for the random number generator. The M member
should be seeded with nonce data before calling isaac_seed. The
other members are private. */
struct isaac_state
{
isaac_word m[ISAAC_WORDS]; /* Main state array */
isaac_word a, b, c; /* Extra variables */
};
void isaac_seed (struct isaac_state *);
void isaac_refill (struct isaac_state *, isaac_word[ISAAC_WORDS]);
#endif

View File

@@ -1,11 +1,11 @@
/* Generate random integers.
Copyright (C) 2006 Free Software Foundation, Inc.
Copyright (C) 2006-2012 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,8 +13,7 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* Written by Paul Eggert. */
@@ -51,10 +50,6 @@ main (int argc, char **argv)
#include "xalloc.h"
#ifndef MAX
# define MAX(a,b) ((a) < (b) ? (b) : (a))
#endif
/* A source of random data for generating random integers. */
struct randint_source
{
@@ -130,78 +125,78 @@ randint_genmax (struct randint_source *s, randint genmax)
randint randmax = s->randmax;
randint choices = genmax + 1;
for (;;)
while (1)
{
if (randmax < genmax)
{
/* Calculate how many input bytes will be needed, and read
the bytes. */
{
/* Calculate how many input bytes will be needed, and read
the bytes. */
size_t i = 0;
randint rmax = randmax;
unsigned char buf[sizeof randnum];
size_t i = 0;
randint rmax = randmax;
unsigned char buf[sizeof randnum];
do
{
rmax = shift_left (rmax) + UCHAR_MAX;
i++;
}
while (rmax < genmax);
do
{
rmax = shift_left (rmax) + UCHAR_MAX;
i++;
}
while (rmax < genmax);
randread (source, buf, i);
randread (source, buf, i);
/* Increase RANDMAX by appending random bytes to RANDNUM and
UCHAR_MAX to RANDMAX until RANDMAX is no less than
GENMAX. This may lose up to CHAR_BIT bits of information
if shift_right (RANDINT_MAX) < GENMAX, but it is not
worth the programming hassle of saving these bits since
GENMAX is rarely that large in practice. */
/* Increase RANDMAX by appending random bytes to RANDNUM and
UCHAR_MAX to RANDMAX until RANDMAX is no less than
GENMAX. This may lose up to CHAR_BIT bits of information
if shift_right (RANDINT_MAX) < GENMAX, but it is not
worth the programming hassle of saving these bits since
GENMAX is rarely that large in practice. */
i = 0;
i = 0;
do
{
randnum = shift_left (randnum) + buf[i];
randmax = shift_left (randmax) + UCHAR_MAX;
i++;
}
while (randmax < genmax);
}
do
{
randnum = shift_left (randnum) + buf[i];
randmax = shift_left (randmax) + UCHAR_MAX;
i++;
}
while (randmax < genmax);
}
if (randmax == genmax)
{
s->randnum = s->randmax = 0;
return randnum;
}
{
s->randnum = s->randmax = 0;
return randnum;
}
else
{
/* GENMAX < RANDMAX, so attempt to generate a random number
by taking RANDNUM modulo GENMAX+1. This will choose
fairly so long as RANDNUM falls within an integral
multiple of GENMAX+1; otherwise, LAST_USABLE_CHOICE < RANDNUM,
so discard this attempt and try again.
{
/* GENMAX < RANDMAX, so attempt to generate a random number
by taking RANDNUM modulo GENMAX+1. This will choose
fairly so long as RANDNUM falls within an integral
multiple of GENMAX+1; otherwise, LAST_USABLE_CHOICE < RANDNUM,
so discard this attempt and try again.
Since GENMAX cannot be RANDINT_MAX, CHOICES cannot be
zero and there is no need to worry about dividing by
zero. */
Since GENMAX cannot be RANDINT_MAX, CHOICES cannot be
zero and there is no need to worry about dividing by
zero. */
randint excess_choices = randmax - genmax;
randint unusable_choices = excess_choices % choices;
randint last_usable_choice = randmax - unusable_choices;
randint reduced_randnum = randnum % choices;
randint excess_choices = randmax - genmax;
randint unusable_choices = excess_choices % choices;
randint last_usable_choice = randmax - unusable_choices;
randint reduced_randnum = randnum % choices;
if (randnum <= last_usable_choice)
{
s->randnum = randnum / choices;
s->randmax = excess_choices / choices;
return reduced_randnum;
}
if (randnum <= last_usable_choice)
{
s->randnum = randnum / choices;
s->randmax = excess_choices / choices;
return reduced_randnum;
}
/* Retry, but retain the randomness from the fact that RANDNUM fell
into the range LAST_USABLE_CHOICE+1 .. RANDMAX. */
randnum = reduced_randnum;
randmax = unusable_choices - 1;
}
/* Retry, but retain the randomness from the fact that RANDNUM fell
into the range LAST_USABLE_CHOICE+1 .. RANDMAX. */
randnum = reduced_randnum;
randmax = unusable_choices - 1;
}
}
}

View File

@@ -1,11 +1,11 @@
/* Generate random integers.
Copyright (C) 2006 Free Software Foundation, Inc.
Copyright (C) 2006-2012 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,8 +13,7 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* Written by Paul Eggert. */
@@ -35,7 +34,8 @@ struct randint_source;
struct randint_source *randint_new (struct randread_source *);
struct randint_source *randint_all_new (char const *, size_t);
struct randread_source *randint_get_source (struct randint_source const *);
struct randread_source *randint_get_source (struct randint_source const *)
_GL_ATTRIBUTE_PURE;
randint randint_genmax (struct randint_source *, randint genmax);
/* Consume random data from *S to generate a random number in the range

237
gl/lib/randperm.c Normal file
View File

@@ -0,0 +1,237 @@
/* Generate random permutations.
Copyright (C) 2006-2012 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* Written by Paul Eggert. */
#include <config.h>
#include "hash.h"
#include "randperm.h"
#include <limits.h>
#include <stdlib.h>
#include "xalloc.h"
/* Return the ceiling of the log base 2 of N. If N is zero, return
an unspecified value. */
static size_t _GL_ATTRIBUTE_CONST
ceil_lg (size_t n)
{
size_t b = 0;
for (n--; n != 0; n /= 2)
b++;
return b;
}
/* Return an upper bound on the number of random bytes needed to
generate the first H elements of a random permutation of N
elements. H must not exceed N. */
size_t
randperm_bound (size_t h, size_t n)
{
/* Upper bound on number of bits needed to generate the first number
of the permutation. */
size_t lg_n = ceil_lg (n);
/* Upper bound on number of bits needed to generated the first H elements. */
size_t ar = lg_n * h;
/* Convert the bit count to a byte count. */
size_t bound = (ar + CHAR_BIT - 1) / CHAR_BIT;
return bound;
}
/* Swap elements I and J in array V. */
static void
swap (size_t *v, size_t i, size_t j)
{
size_t t = v[i];
v[i] = v[j];
v[j] = t;
}
/* Structures and functions for a sparse_map abstract data type that's
used to effectively swap elements I and J in array V like swap(),
but in a more memory efficient manner (when the number of permutations
performed is significantly less than the size of the input). */
struct sparse_ent_
{
size_t index;
size_t val;
};
static size_t
sparse_hash_ (void const *x, size_t table_size)
{
struct sparse_ent_ const *ent = x;
return ent->index % table_size;
}
static bool
sparse_cmp_ (void const *x, void const *y)
{
struct sparse_ent_ const *ent1 = x;
struct sparse_ent_ const *ent2 = y;
return ent1->index == ent2->index;
}
typedef Hash_table sparse_map;
/* Initialize the structure for the sparse map,
when a best guess as to the number of entries
specified with SIZE_HINT. */
static sparse_map *
sparse_new (size_t size_hint)
{
return hash_initialize (size_hint, NULL, sparse_hash_, sparse_cmp_, free);
}
/* Swap the values for I and J. If a value is not already present
then assume it's equal to the index. Update the value for
index I in array V. */
static void
sparse_swap (sparse_map *sv, size_t* v, size_t i, size_t j)
{
struct sparse_ent_ *v1 = hash_delete (sv, &(struct sparse_ent_) {i,0});
struct sparse_ent_ *v2 = hash_delete (sv, &(struct sparse_ent_) {j,0});
/* FIXME: reduce the frequency of these mallocs. */
if (!v1)
{
v1 = xmalloc (sizeof *v1);
v1->index = v1->val = i;
}
if (!v2)
{
v2 = xmalloc (sizeof *v2);
v2->index = v2->val = j;
}
size_t t = v1->val;
v1->val = v2->val;
v2->val = t;
if (!hash_insert (sv, v1))
xalloc_die ();
if (!hash_insert (sv, v2))
xalloc_die ();
v[i] = v1->val;
}
static void
sparse_free (sparse_map *sv)
{
hash_free (sv);
}
/* From R, allocate and return a malloc'd array of the first H elements
of a random permutation of N elements. H must not exceed N.
Return NULL if H is zero. */
size_t *
randperm_new (struct randint_source *r, size_t h, size_t n)
{
size_t *v;
switch (h)
{
case 0:
v = NULL;
break;
case 1:
v = xmalloc (sizeof *v);
v[0] = randint_choose (r, n);
break;
default:
{
/* The algorithm is essentially the same in both
the sparse and non sparse case. In the sparse case we use
a hash to implement sparse storage for the set of n numbers
we're shuffling. When to use the sparse method was
determined with the help of this script:
#!/bin/sh
for n in $(seq 2 32); do
for h in $(seq 2 32); do
test $h -gt $n && continue
for s in o n; do
test $s = o && shuf=shuf || shuf=./shuf
num=$(env time -f "$s:${h},${n} = %e,%M" \
$shuf -i0-$((2**$n-2)) -n$((2**$h-2)) | wc -l)
test $num = $((2**$h-2)) || echo "$s:${h},${n} = failed" >&2
done
done
done
This showed that if sparseness = n/h, then:
sparseness = 128 => .125 mem used, and about same speed
sparseness = 64 => .25 mem used, but 1.5 times slower
sparseness = 32 => .5 mem used, but 2 times slower
Also the memory usage was only significant when n > 128Ki
*/
bool sparse = (n >= (128 * 1024)) && (n / h >= 32);
size_t i;
sparse_map *sv;
if (sparse)
{
sv = sparse_new (h * 2);
if (sv == NULL)
xalloc_die ();
v = xnmalloc (h, sizeof *v);
}
else
{
sv = NULL; /* To placate GCC's -Wuninitialized. */
v = xnmalloc (n, sizeof *v);
for (i = 0; i < n; i++)
v[i] = i;
}
for (i = 0; i < h; i++)
{
size_t j = i + randint_choose (r, n - i);
if (sparse)
sparse_swap (sv, v, i, j);
else
swap (v, i, j);
}
if (sparse)
sparse_free (sv);
else
v = xnrealloc (v, h, sizeof *v);
}
break;
}
return v;
}

View File

@@ -1,4 +1,4 @@
#include "randint.h"
#include <stddef.h>
size_t randperm_bound (size_t, size_t);
size_t randperm_bound (size_t, size_t) _GL_ATTRIBUTE_CONST;
size_t *randperm_new (struct randint_source *, size_t, size_t);

View File

@@ -1,11 +1,11 @@
/* Generate buffers of random data.
Copyright (C) 2006 Free Software Foundation, Inc.
Copyright (C) 2006-2012 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,11 +13,13 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* Written by Paul Eggert. */
/* FIXME: Improve performance by adding support for the RDRAND machine
instruction if available (e.g., Ivy Bridge processors). */
#include <config.h>
#include "randread.h"
@@ -25,12 +27,16 @@
#include <errno.h>
#include <error.h>
#include <exitfail.h>
#include <fcntl.h>
#include <quotearg.h>
#include <stdalign.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#include <unistd.h>
#include "gettext.h"
#define _(msgid) gettext (msgid)
@@ -40,27 +46,28 @@
#include "unlocked-io.h"
#include "xalloc.h"
#ifndef __attribute__
# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8)
# define __attribute__(x) /* empty */
# endif
#endif
#ifndef ATTRIBUTE_NORETURN
# define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
#endif
#ifndef MIN
# define MIN(a, b) ((a) < (b) ? (a) : (b))
#endif
#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__
# define __attribute__(x)
#endif
#ifndef ATTRIBUTE_UNUSED
# define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
#endif
#if _STRING_ARCH_unaligned
# define ALIGNED_POINTER(ptr, type) true
#else
# define alignof(type) offsetof (struct { char c; type x; }, x)
# define ALIGNED_POINTER(ptr, type) ((size_t) (ptr) % alignof (type) == 0)
#endif
#ifndef DEFAULT_RANDOM_FILE
# define DEFAULT_RANDOM_FILE "/dev/urandom"
#ifndef NAME_OF_NONCE_DEVICE
# define NAME_OF_NONCE_DEVICE "/dev/urandom"
#endif
/* The maximum buffer size used for reads of random data. Using the
@@ -71,10 +78,8 @@
/* A source of random data for generating random buffers. */
struct randread_source
{
/* Stream to read random bytes from. If null, the behavior is
undefined; the current implementation uses ISAAC in this case,
but this is for old-fashioned implementations that lack
/dev/urandom and callers should not rely on this. */
/* Stream to read random bytes from. If null, the current
implementation uses an internal PRNG (ISAAC). */
FILE *source;
/* Function to call, and its argument, if there is an input error or
@@ -105,8 +110,8 @@ struct randread_source
/* Up to a buffer's worth of pseudorandom data. */
union
{
uint32_t w[ISAAC_WORDS];
unsigned char b[ISAAC_BYTES];
isaac_word w[ISAAC_WORDS];
unsigned char b[ISAAC_BYTES];
} data;
} isaac;
} buf;
@@ -115,13 +120,13 @@ struct randread_source
/* The default error handler. */
static void
static void ATTRIBUTE_NORETURN
randread_error (void const *file_name)
{
if (file_name)
error (exit_failure, errno,
_(errno == 0 ? "%s: end of file" : "%s: read error"),
quotearg_colon (file_name));
_(errno == 0 ? "%s: end of file" : "%s: read error"),
quotearg_colon (file_name));
abort ();
}
@@ -138,6 +143,52 @@ simple_new (FILE *source, void const *handler_arg)
return s;
}
/* Put a nonce value into BUFFER, with size BUFSIZE, but do not get
more than BYTES_BOUND bytes' worth of random information from any
nonce device. */
static void
get_nonce (void *buffer, size_t bufsize, size_t bytes_bound)
{
char *buf = buffer;
ssize_t seeded = 0;
/* Get some data from FD if available. */
int fd = open (NAME_OF_NONCE_DEVICE, O_RDONLY | O_BINARY);
if (0 <= fd)
{
seeded = read (fd, buf, MIN (bufsize, bytes_bound));
if (seeded < 0)
seeded = 0;
close (fd);
}
/* If there's no nonce device, use a poor approximation
by getting the time of day, etc. */
#define ISAAC_SEED(type, initialize_v) \
if (seeded < bufsize) \
{ \
type v; \
size_t nbytes = MIN (sizeof v, bufsize - seeded); \
initialize_v; \
memcpy (buf + seeded, &v, nbytes); \
seeded += nbytes; \
}
ISAAC_SEED (struct timeval, gettimeofday (&v, NULL));
ISAAC_SEED (pid_t, v = getpid ());
ISAAC_SEED (pid_t, v = getppid ());
ISAAC_SEED (uid_t, v = getuid ());
ISAAC_SEED (uid_t, v = getgid ());
#ifdef lint
/* Normally we like having the extra randomness from uninitialized
parts of BUFFER. However, omit this randomness if we want to
avoid false-positives from memory-checking debugging tools. */
memset (buf + seeded, 0, bufsize - seeded);
#endif
}
/* Create and initialize a random data source from NAME, or use a
reasonable default source if NAME is null. BYTES_BOUND is an upper
bound on the number of bytes that will be needed. If zero, it is a
@@ -156,26 +207,24 @@ randread_new (char const *name, size_t bytes_bound)
return simple_new (NULL, NULL);
else
{
char const *file_name = (name ? name : DEFAULT_RANDOM_FILE);
FILE *source = fopen_safer (file_name, "rb");
FILE *source = NULL;
struct randread_source *s;
if (! source)
{
if (name)
return NULL;
file_name = NULL;
}
if (name)
if (! (source = fopen_safer (name, "rb")))
return NULL;
s = simple_new (source, file_name);
s = simple_new (source, name);
if (source)
setvbuf (source, s->buf.c, _IOFBF, MIN (sizeof s->buf.c, bytes_bound));
setvbuf (source, s->buf.c, _IOFBF, MIN (sizeof s->buf.c, bytes_bound));
else
{
s->buf.isaac.buffered = 0;
isaac_seed (&s->buf.isaac.state);
}
{
s->buf.isaac.buffered = 0;
get_nonce (s->buf.isaac.state.m, sizeof s->buf.isaac.state.m,
bytes_bound);
isaac_seed (&s->buf.isaac.state);
}
return s;
}
@@ -208,14 +257,14 @@ randread_set_handler_arg (struct randread_source *s, void const *handler_arg)
static void
readsource (struct randread_source *s, unsigned char *p, size_t size)
{
for (;;)
while (true)
{
size_t inbytes = fread (p, sizeof *p, size, s->source);
int fread_errno = errno;
p += inbytes;
size -= inbytes;
if (size == 0)
break;
break;
errno = (ferror (s->source) ? fread_errno : 0);
s->handler (s->handler_arg);
}
@@ -230,37 +279,37 @@ readisaac (struct isaac *isaac, unsigned char *p, size_t size)
{
size_t inbytes = isaac->buffered;
for (;;)
while (true)
{
if (size <= inbytes)
{
memcpy (p, isaac->data.b + ISAAC_BYTES - inbytes, size);
isaac->buffered = inbytes - size;
return;
}
{
memcpy (p, isaac->data.b + ISAAC_BYTES - inbytes, size);
isaac->buffered = inbytes - size;
return;
}
memcpy (p, isaac->data.b + ISAAC_BYTES - inbytes, inbytes);
p += inbytes;
size -= inbytes;
/* If P is aligned, write to *P directly to avoid the overhead
of copying from the buffer. */
if (ALIGNED_POINTER (p, uint32_t))
{
uint32_t *wp = (uint32_t *) p;
while (ISAAC_BYTES <= size)
{
isaac_refill (&isaac->state, wp);
wp += ISAAC_WORDS;
size -= ISAAC_BYTES;
if (size == 0)
{
isaac->buffered = 0;
return;
}
}
p = (unsigned char *) wp;
}
of copying from the buffer. */
if (ALIGNED_POINTER (p, isaac_word))
{
isaac_word *wp = (isaac_word *) p;
while (ISAAC_BYTES <= size)
{
isaac_refill (&isaac->state, wp);
wp += ISAAC_WORDS;
size -= ISAAC_BYTES;
if (size == 0)
{
isaac->buffered = 0;
return;
}
}
p = (unsigned char *) wp;
}
isaac_refill (&isaac->state, isaac->data.w);
inbytes = ISAAC_BYTES;

View File

@@ -1,11 +1,11 @@
/* Generate buffers of random data.
Copyright (C) 2006 Free Software Foundation, Inc.
Copyright (C) 2006-2012 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,8 +13,7 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* Written by Paul Eggert. */

67
gl/lib/regcomp.c.diff Normal file
View File

@@ -0,0 +1,67 @@
diff --git a/lib/regcomp.c b/lib/regcomp.c
index d5968bd..4926676 100644
--- a/lib/regcomp.c
+++ b/lib/regcomp.c
@@ -541,7 +541,7 @@ regerror (errcode, preg, errbuf, errbuf_size)
size_t errbuf_size;
#else /* size_t might promote */
size_t
-regerror (int errcode, const regex_t *_Restrict_ preg,
+regerror (int errcode, const regex_t *_Restrict_ preg _UNUSED_PARAMETER_,
char *_Restrict_ errbuf, size_t errbuf_size)
#endif
{
@@ -1415,7 +1415,7 @@ calc_first (void *extra, bin_tree_t *node)
/* Pass 2: compute NEXT on the tree. Preorder visit. */
static reg_errcode_t
-calc_next (void *extra, bin_tree_t *node)
+calc_next (void *extra _UNUSED_PARAMETER_, bin_tree_t *node)
{
switch (node->token.type)
{
@@ -2792,8 +2792,10 @@ build_range_exp (const reg_syntax_t synt
static reg_errcode_t
internal_function
# ifdef RE_ENABLE_I18N
-build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset,
- Idx *coll_sym_alloc, const unsigned char *name)
+build_collating_symbol (bitset_t sbcset,
+ re_charset_t *mbcset _UNUSED_PARAMETER_,
+ Idx *coll_sym_alloc _UNUSED_PARAMETER_,
+ const unsigned char *name)
# else /* not RE_ENABLE_I18N */
build_collating_symbol (bitset_t sbcset, const unsigned char *name)
# endif /* not RE_ENABLE_I18N */
@@ -3377,7 +3379,8 @@ parse_bracket_exp (re_string_t *regexp,
static reg_errcode_t
parse_bracket_element (bracket_elem_t *elem, re_string_t *regexp,
- re_token_t *token, int token_len, re_dfa_t *dfa,
+ re_token_t *token, int token_len,
+ re_dfa_t *dfa _UNUSED_PARAMETER_,
reg_syntax_t syntax, bool accept_hyphen)
{
#ifdef RE_ENABLE_I18N
@@ -3464,8 +3467,10 @@ parse_bracket_symbol (bracket_elem_t *elem, re_string_t *regexp,
static reg_errcode_t
#ifdef RE_ENABLE_I18N
-build_equiv_class (bitset_t sbcset, re_charset_t *mbcset,
- Idx *equiv_class_alloc, const unsigned char *name)
+build_equiv_class (bitset_t sbcset,
+ re_charset_t *mbcset _UNUSED_PARAMETER_,
+ Idx *equiv_class_alloc _UNUSED_PARAMETER_,
+ const unsigned char *name)
#else /* not RE_ENABLE_I18N */
build_equiv_class (bitset_t sbcset, const unsigned char *name)
#endif /* not RE_ENABLE_I18N */
@@ -3869,7 +3874,7 @@ free_token (re_token_t *node)
and its children. */
static reg_errcode_t
-free_tree (void *extra, bin_tree_t *node)
+free_tree (void *extra _UNUSED_PARAMETER_, bin_tree_t *node)
{
free_token (&node->token);
return REG_NOERROR;

View File

@@ -0,0 +1,25 @@
diff --git a/lib/regex_internal.c b/lib/regex_internal.c
index 904b88e..61c8d9d 100644
--- a/lib/regex_internal.c
+++ b/lib/regex_internal.c
@@ -18,6 +18,8 @@
with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+#include "verify.h"
+#include "intprops.h"
static void re_string_construct_common (const char *str, Idx len,
re_string_t *pstr,
RE_TRANSLATE_TYPE trans, bool icase,
@@ -1390,7 +1392,10 @@ static void
internal_function
re_node_set_remove_at (re_node_set *set, Idx idx)
{
- if (idx < 0 || idx >= set->nelem)
+ verify (! TYPE_SIGNED (Idx));
+ /* if (idx < 0)
+ return; */
+ if (idx >= set->nelem)
return;
--set->nelem;
for (; idx < set->nelem; idx++)

View File

@@ -0,0 +1,14 @@
diff --git i/lib/regex_internal.h w/lib/regex_internal.h
index 859832f..3c7fe06 100644
--- i/lib/regex_internal.h
+++ w/lib/regex_internal.h
@@ -826,7 +826,8 @@ re_string_wchar_at (const re_string_t *pstr, Idx idx)
static int
internal_function __attribute ((pure))
-re_string_elem_size_at (const re_string_t *pstr, Idx idx)
+re_string_elem_size_at (const re_string_t *pstr _UNUSED_PARAMETER_,
+ Idx idx _UNUSED_PARAMETER_)
{
# ifdef _LIBC
const unsigned char *p, *extra;

45
gl/lib/regexec.c.diff Normal file
View File

@@ -0,0 +1,45 @@
diff --git a/lib/regexec.c b/lib/regexec.c
index 21a8166..7762437 100644
--- a/lib/regexec.c
+++ b/lib/regexec.c
@@ -18,6 +18,8 @@
with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+#include "verify.h"
+#include "intprops.h"
static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags,
Idx n) internal_function;
static void match_ctx_clean (re_match_context_t *mctx) internal_function;
@@ -378,8 +380,11 @@ re_search_2_stub (struct re_pattern_buffer *bufp,
Idx len = length1 + length2;
char *s = NULL;
- if (BE (length1 < 0 || length2 < 0 || stop < 0 || len < length1, 0))
- return -2;
+ verify (! TYPE_SIGNED (Idx));
+ if (BE (len < length1, 0))
+ return -2;
+ /* if (BE (length1 < 0 || length2 < 0 || stop < 0, 0))
+ return -2; */
/* Concatenate the strings. */
if (length2 > 0)
@@ -431,11 +436,14 @@ re_search_stub (struct re_pattern_buffer *bufp,
Idx last_start = start + range;
/* Check for out-of-range. */
- if (BE (start < 0 || start > length, 0))
- return -1;
+ verify (! TYPE_SIGNED (Idx));
+ /* if (BE (start < 0, 0))
+ return -1; */
+ if (BE (start > length, 0))
+ return -1;
if (BE (length < last_start || (0 <= range && last_start < start), 0))
last_start = length;
- else if (BE (last_start < 0 || (range < 0 && start <= last_start), 0))
+ else if (BE (/* last_start < 0 || */ (range < 0 && start <= last_start), 0))
last_start = 0;
__libc_lock_lock (dfa->lock);

View File

@@ -1,10 +1,10 @@
/* root-dev-ino.c -- get the device and inode numbers for `/'.
Copyright (C) 2003, 2005, 2006 Free Software Foundation, Inc.
/* root-dev-ino.c -- get the device and inode numbers for '/'.
Copyright (C) 2003-2012 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -12,8 +12,7 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* Written by Jim Meyering. */
@@ -23,7 +22,7 @@
#include <stdlib.h>
/* Call lstat to get the device and inode numbers for `/'.
/* Call lstat to get the device and inode numbers for '/'.
Upon failure, return NULL. Otherwise, set the members of
*ROOT_D_I accordingly and return ROOT_D_I. */
struct dev_ino *

View File

@@ -1,11 +1,11 @@
/* Root device and inode number checking.
Copyright (C) 2003, 2006 Free Software Foundation, Inc.
Copyright (C) 2003-2012 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,8 +13,7 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#ifndef ROOT_DEV_INO_H
# define ROOT_DEV_INO_H 1
@@ -35,12 +34,12 @@ get_root_dev_ino (struct dev_ino *root_d_i);
do \
{ \
if (STREQ (Dirname, "/")) \
error (0, 0, _("it is dangerous to operate recursively on %s"), \
quote (Dirname)); \
error (0, 0, _("it is dangerous to operate recursively on %s"), \
quote (Dirname)); \
else \
error (0, 0, \
_("it is dangerous to operate recursively on %s (same as %s)"), \
quote_n (0, Dirname), quote_n (1, "/")); \
error (0, 0, \
_("it is dangerous to operate recursively on %s (same as %s)"), \
quote_n (0, Dirname), quote_n (1, "/")); \
error (0, 0, _("use --no-preserve-root to override this failsafe")); \
} \
while (0)

193
gl/lib/tempname.c.diff Normal file
View File

@@ -0,0 +1,193 @@
diff --git c/lib/tempname.c i/lib/tempname.c
index 2da5afe..562955a 100644
--- c/lib/tempname.c
+++ i/lib/tempname.c
@@ -22,6 +22,7 @@
#if !_LIBC
# include <config.h>
# include "tempname.h"
+# include "randint.h"
#endif
#include <sys/types.h>
@@ -49,6 +50,7 @@
# error report this to bug-gnulib@gnu.org
#endif
+#include <stdbool.h>
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
@@ -179,14 +181,21 @@ __path_search (char *tmpl, size_t tmpl_len, const char *dir, const char *pfx,
}
#endif /* _LIBC */
+static inline bool _GL_ATTRIBUTE_PURE
+check_x_suffix (char const *s, size_t len)
+{
+ return len <= strspn (s, "X");
+}
+
/* These are the characters used in temporary file names. */
static const char letters[] =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
/* Generate a temporary file name based on TMPL. TMPL must match the
- rules for mk[s]temp (i.e. end in "XXXXXX", possibly with a suffix).
+ rules for mk[s]temp (i.e. end in at least X_SUFFIX_LEN "X"s,
+ possibly with a suffix).
The name constructed does not exist at the time of the call to
- __gen_tempname. TMPL is overwritten with the result.
+ this function. TMPL is overwritten with the result.
KIND may be one of:
__GT_NOCREATE: simply verify that the name does not exist
@@ -197,23 +206,24 @@ static const char letters[] =
We use a clever algorithm to get hard-to-predict names. */
int
-__gen_tempname (char *tmpl, int suffixlen, int flags, int kind)
+gen_tempname_len (char *tmpl, int suffixlen, int flags, int kind,
+ size_t x_suffix_len)
{
- int len;
+ size_t len;
char *XXXXXX;
- static uint64_t value;
- uint64_t random_time_bits;
unsigned int count;
int fd = -1;
int save_errno = errno;
struct_stat64 st;
+ struct randint_source *rand_src;
/* A lower bound on the number of temporary files to attempt to
generate. The maximum total number of temporary file names that
can exist for a given template is 62**6. It should never be
necessary to try all these combinations. Instead if a reasonable
number of names is tried (we define reasonable as 62**3) fail to
- give the system administrator the chance to remove the problems. */
+ give the system administrator the chance to remove the problems.
+ This value requires that X_SUFFIX_LEN be at least 3. */
#define ATTEMPTS_MIN (62 * 62 * 62)
/* The number of times to attempt to generate a temporary file. To
@@ -225,43 +235,28 @@ __gen_tempname (char *tmpl, int suffixlen, int flags, int kind)
#endif
len = strlen (tmpl);
- if (len < 6 + suffixlen || memcmp (&tmpl[len - 6 - suffixlen], "XXXXXX", 6))
+ if (len < x_suffix_len + suffixlen
+ || ! check_x_suffix (&tmpl[len - x_suffix_len - suffixlen],
+ x_suffix_len))
{
__set_errno (EINVAL);
return -1;
}
/* This is where the Xs start. */
- XXXXXX = &tmpl[len - 6 - suffixlen];
+ XXXXXX = &tmpl[len - x_suffix_len - suffixlen];
/* Get some more or less random data. */
-#ifdef RANDOM_BITS
- RANDOM_BITS (random_time_bits);
-#else
- {
- struct timeval tv;
- __gettimeofday (&tv, NULL);
- random_time_bits = ((uint64_t) tv.tv_usec << 16) ^ tv.tv_sec;
- }
-#endif
- value += random_time_bits ^ __getpid ();
+ rand_src = randint_all_new (NULL, x_suffix_len);
+ if (! rand_src)
+ return -1;
- for (count = 0; count < attempts; value += 7777, ++count)
+ for (count = 0; count < attempts; ++count)
{
- uint64_t v = value;
-
- /* Fill in the random bits. */
- XXXXXX[0] = letters[v % 62];
- v /= 62;
- XXXXXX[1] = letters[v % 62];
- v /= 62;
- XXXXXX[2] = letters[v % 62];
- v /= 62;
- XXXXXX[3] = letters[v % 62];
- v /= 62;
- XXXXXX[4] = letters[v % 62];
- v /= 62;
- XXXXXX[5] = letters[v % 62];
+ size_t i;
+
+ for (i = 0; i < x_suffix_len; i++)
+ XXXXXX[i] = letters[randint_genmax (rand_src, sizeof letters - 2)];
switch (kind)
{
@@ -276,7 +271,7 @@ __gen_tempname (char *tmpl, int suffixlen, int flags, int kind)
break;
case __GT_NOCREATE:
- /* This case is backward from the other three. __gen_tempname
+ /* This case is backward from the other three. This function
succeeds if __xstat fails because the name does not exist.
Note the continue to bypass the common logic at the bottom
of the loop. */
@@ -285,11 +280,15 @@ __gen_tempname (char *tmpl, int suffixlen, int flags, int kind)
if (errno == ENOENT)
{
__set_errno (save_errno);
- return 0;
+ fd = 0;
+ goto done;
}
else
- /* Give up now. */
- return -1;
+ {
+ /* Give up now. */
+ fd = -1;
+ goto done;
+ }
}
continue;
@@ -301,13 +300,32 @@ __gen_tempname (char *tmpl, int suffixlen, int flags, int kind)
if (fd >= 0)
{
__set_errno (save_errno);
- return fd;
+ goto done;
}
else if (errno != EEXIST)
- return -1;
+ {
+ fd = -1;
+ goto done;
+ }
}
+ randint_all_free (rand_src);
+
/* We got out of the loop because we ran out of combinations to try. */
__set_errno (EEXIST);
return -1;
+
+ done:
+ {
+ int saved_errno = errno;
+ randint_all_free (rand_src);
+ __set_errno (saved_errno);
+ }
+ return fd;
+}
+
+int
+__gen_tempname (char *tmpl, int suffixlen, int flags, int kind)
+{
+ return gen_tempname_len (tmpl, suffixlen, flags, kind, 6);
}

12
gl/lib/tempname.h.diff Normal file
View File

@@ -0,0 +1,12 @@
diff --git c/lib/tempname.h i/lib/tempname.h
index cd69e7d..9757db2 100644
--- c/lib/tempname.h
+++ i/lib/tempname.h
@@ -46,5 +46,7 @@
We use a clever algorithm to get hard-to-predict names. */
extern int gen_tempname (char *tmpl, int suffixlen, int flags, int kind);
+extern int gen_tempname_len (char *tmpl, int suffixlen, int flags, int kind,
+ size_t x_suffix_len);
#endif /* GL_TEMPNAME_H */

View File

@@ -1,12 +1,11 @@
#serial 2
dnl Copyright (C) 2005, 2006 Free Software Foundation, Inc.
#serial 3
dnl Copyright (C) 2005-2012 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
AC_DEFUN([gl_ROOT_DEV_INO],
[
AC_LIBSOURCES([root-dev-ino.c, root-dev-ino.h, dev-ino.h, same-inode.h])
AC_LIBOBJ([root-dev-ino])
dnl Prerequisites

24
gl/modules/fadvise Normal file
View File

@@ -0,0 +1,24 @@
Description:
Declare an access pattern hint for files.
Files:
lib/fadvise.c
lib/fadvise.h
Depends-on:
ignore-value
configure.ac:
AC_CHECK_FUNCS_ONCE([posix_fadvise])
Makefile.am:
lib_SOURCES += fadvise.c fadvise.h
Include:
"fadvise.h"
License:
LGPL
Maintainer:
Pádraig Brady

10
gl/modules/fadvise-tests Normal file
View File

@@ -0,0 +1,10 @@
Files:
tests/test-fadvise.c
Depends-on:
configure.ac:
Makefile.am:
TESTS += test-fadvise
check_PROGRAMS += test-fadvise

View File

@@ -1,16 +0,0 @@
Index: modules/getloadavg
===================================================================
RCS file: /sources/gnulib/gnulib/modules/getloadavg,v
retrieving revision 1.13
diff -u -p -r1.13 getloadavg
--- modules/getloadavg 22 Sep 2006 12:47:55 -0000 1.13
+++ modules/getloadavg 23 Sep 2006 16:41:36 -0000
@@ -14,7 +14,7 @@ stdbool
fcntl-safer
configure.ac:
-gl_GETLOADAVG([$gl_source_base])
+gl_GETLOADAVG([lib])
Makefile.am:

24
gl/modules/heap Normal file
View File

@@ -0,0 +1,24 @@
Description:
Binary heap with minimal number of methods. Used in sort.
Files:
lib/heap.c
lib/heap.h
Depends-on:
stdlib-safer
xalloc
configure.ac:
Makefile.am:
lib_SOURCES += heap.c heap.h
Include:
"heap.h"
License:
GPL
Maintainer:
Gene Auyeung

View File

@@ -0,0 +1,9 @@
diff --git i/modules/link-tests w/modules/link-tests
index d8e7b1a..aca0e74 100644
--- i/modules/link-tests
+++ w/modules/link-tests
@@ -12,3 +12,4 @@ configure.ac:
Makefile.am:
TESTS += test-link
check_PROGRAMS += test-link
+test_link_LDADD = $(LDADD) @LIBINTL@

27
gl/modules/mbsalign Normal file
View File

@@ -0,0 +1,27 @@
Description:
Align/Truncate a string in a given screen width.
Files:
lib/mbsalign.c
lib/mbsalign.h
Depends-on:
wchar
wctype
wcwidth
mempcpy
stdint
configure.ac:
Makefile.am:
lib_SOURCES += mbsalign.c mbsalign.h
Include:
"mbsalign.h"
License:
LGPL
Maintainer:
Pádraig Brady

11
gl/modules/mbsalign-tests Normal file
View File

@@ -0,0 +1,11 @@
Files:
tests/test-mbsalign.c
tests/macros.h
Depends-on:
configure.ac:
Makefile.am:
TESTS += test-mbsalign
check_PROGRAMS += test-mbsalign

24
gl/modules/randint Normal file
View File

@@ -0,0 +1,24 @@
Description:
Generate random integers.
Files:
lib/randint.c
lib/randint.h
Depends-on:
inline
randread
configure.ac:
Makefile.am:
lib_SOURCES += randint.c randint.h
Include:
"randint.h"
License:
GPL
Maintainer:
Paul Eggert

25
gl/modules/randperm Normal file
View File

@@ -0,0 +1,25 @@
Description:
Generate random permutations.
Files:
lib/randperm.c
lib/randperm.h
Depends-on:
randint
xalloc
hash
configure.ac:
Makefile.am:
lib_SOURCES += randperm.c randperm.h
Include:
"randperm.h"
License:
GPL
Maintainer:
Paul Eggert

35
gl/modules/randread Normal file
View File

@@ -0,0 +1,35 @@
Description:
Generate buffers of random data.
Files:
lib/rand-isaac.c
lib/rand-isaac.h
lib/randread.c
lib/randread.h
Depends-on:
error
exitfail
inline
fopen-safer
gettimeofday
quotearg
stdalign
stdbool
stdint
unlocked-io
xalloc
configure.ac:
Makefile.am:
lib_SOURCES += randread.c randread.h rand-isaac.c rand-isaac.h
Include:
"randread.h"
License:
GPL
Maintainer:
Paul Eggert

11
gl/modules/randread-tests Normal file
View File

@@ -0,0 +1,11 @@
Files:
tests/test-rand-isaac.c
tests/macros.h
Depends-on:
configure.ac:
Makefile.am:
TESTS += test-rand-isaac
check_PROGRAMS += test-rand-isaac

View File

@@ -0,0 +1,9 @@
diff --git a/modules/rename-tests b/modules/rename-tests
index be1b423..fea330a 100644
--- a/modules/rename-tests
+++ b/modules/rename-tests
@@ -14,3 +14,4 @@ configure.ac:
Makefile.am:
TESTS += test-rename
check_PROGRAMS += test-rename
+test_rename_LDADD = $(LDADD) @LIBINTL@

25
gl/modules/root-dev-ino Normal file
View File

@@ -0,0 +1,25 @@
Description:
Root device and inode number checking.
Files:
lib/root-dev-ino.h
lib/root-dev-ino.c
m4/root-dev-ino.m4
Depends-on:
dev-ino
same-inode
configure.ac:
gl_ROOT_DEV_INO
Makefile.am:
Include:
"root-dev-ino.h"
License:
GPL
Maintainer:
Jim Meyering

18
gl/modules/tempname.diff Normal file
View File

@@ -0,0 +1,18 @@
--- tempname 2011-10-27 18:55:14.672722002 +0200
+++ tempname 2011-10-27 18:55:25.200999149 +0200
@@ -1,5 +1,5 @@
Description:
-gen_tempname() function: create a private temporary file or directory.
+gen_tempname, gen_tempname_len: create a private temporary file or directory.
Files:
lib/tempname.c
@@ -11,6 +11,8 @@ extensions
fcntl-h
gettimeofday
lstat
+randint
+stdbool
stdint
sys_stat
sys_time

50
gl/tests/test-fadvise.c Normal file
View File

@@ -0,0 +1,50 @@
/* Test that fadvise works as advertised.
Copyright (C) 2010-2012 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* Written by Pádraig Brady. */
#include <config.h>
#include <stdio.h>
#include "fadvise.h"
/* We ignore any errors as these hints are only advisory.
* There is the chance one can pass invalid ADVICE, which will
* not be indicated, but given the simplicity of the interface
* this is unlikely. Also not returning errors allows the
* unconditional passing of descriptors to non standard files,
* which will just be ignored if unsupported. */
int
main (void)
{
/* Valid. */
fadvise (stdin, FADVISE_SEQUENTIAL);
fdadvise (fileno (stdin), 0, 0, FADVISE_RANDOM);
/* Ignored. */
fadvise (NULL, FADVISE_RANDOM);
/* Invalid. */
fdadvise (42, 0, 0, FADVISE_RANDOM);
/* Unfortunately C enums are not types.
One could hack type safety by wrapping in a struct,
but it's probably not worth the complexity in this case. */
fadvise (stdin, FADVISE_SEQUENTIAL + FADVISE_RANDOM);
fadvise (stdin, 4242);
return 0;
}

100
gl/tests/test-mbsalign.c Normal file
View File

@@ -0,0 +1,100 @@
/* Test that mbsalign works as advertised.
Copyright (C) 2010-2012 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* Written by Pádraig Brady. */
#include <config.h>
#include "mbsalign.h"
#include "macros.h"
#include <stdlib.h>
#include <locale.h>
int
main (void)
{
char dest[4 * 16 + 1];
size_t width, n;
/* Test unibyte truncation. */
width = 4;
n = mbsalign ("t\tés", dest, sizeof dest, &width, MBS_ALIGN_LEFT, 0);
ASSERT (n == 4);
/* Test center alignment. */
width = 4;
n = mbsalign ("es", dest, sizeof dest, &width, MBS_ALIGN_CENTER, 0);
ASSERT (*dest == ' ' && *(dest + n - 1) == ' ');
if (setlocale (LC_ALL, "en_US.UTF8"))
{
/* Check invalid input is flagged. */
width = 4;
n = mbsalign ("t\xe1\xe2s", dest, sizeof dest, &width, MBS_ALIGN_LEFT, 0);
ASSERT (n == (size_t) -1);
/* Check invalid input is treated as unibyte */
width = 4;
n = mbsalign ("t\xe1\xe2s", dest, sizeof dest, &width,
MBS_ALIGN_LEFT, MBA_UNIBYTE_FALLBACK);
ASSERT (n == 4);
/* Test multibyte center alignment. */
width = 4;
n = mbsalign ("és", dest, sizeof dest, &width, MBS_ALIGN_CENTER, 0);
ASSERT (*dest == ' ' && *(dest + n - 1) == ' ');
/* Test multibyte left alignment. */
width = 4;
n = mbsalign ("és", dest, sizeof dest, &width, MBS_ALIGN_LEFT, 0);
ASSERT (*(dest + n - 1) == ' ' && *(dest + n - 2) == ' ');
/* Test multibyte right alignment. */
width = 4;
n = mbsalign ("és", dest, sizeof dest, &width, MBS_ALIGN_RIGHT, 0);
ASSERT (*(dest) == ' ' && *(dest + 1) == ' ');
/* multibyte multicell truncation. */
width = 4; /* cells */
n = mbsalign ("日月火水", dest, sizeof dest, &width,
MBS_ALIGN_LEFT, 0);
ASSERT (n == 6); /* 2 characters */
/* multibyte unicell truncation. */
width = 3; /* cells */
n = mbsalign ("¹²³⁴", dest, sizeof dest, &width, MBS_ALIGN_LEFT, 0);
ASSERT (n == 6); /* 3 characters */
/* Check independence from dest buffer. */
width = 4; /* cells */
n = mbsalign ("¹²³⁴", dest, 0, &width, MBS_ALIGN_LEFT, 0);
ASSERT (n == 9); /* 4 characters */
/* Check that width is updated with cells required before padding. */
width = 4; /* cells */
n = mbsalign ("¹²³", dest, 0, &width, MBS_ALIGN_LEFT, 0);
ASSERT (width == 3);
/* Test case where output is larger than input
(as tab converted to multi byte replacement char). */
width = 4;
n = mbsalign ("t\tés" /* 6 including NUL */ , dest, sizeof dest,
&width, MBS_ALIGN_LEFT, 0);
ASSERT (n == 7);
}
return 0;
}

591
gl/tests/test-rand-isaac.c Normal file
View File

@@ -0,0 +1,591 @@
/* Test the ISAAC or ISAAC64 pseudorandom number generator.
Copyright (C) 2010-2012 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* Written by Paul Eggert. */
#include <config.h>
#include "rand-isaac.h"
#include <fcntl.h>
#include <stdint.h>
#include <string.h>
#include "macros.h"
/* This expected output was generated by running the programs in
<http://burtleburtle.net/bob/rand/isaacafa.html>, as last modified
on 2010-01-22. The 32-bit numbers were output by rand.c, and the
64-bit by isaac64.c, both on x86, as those programs are not
portable to 64-bit platforms. */
static isaac_word const expected[2][ISAAC_WORDS] =
{
#if ISAAC_BITS == 32
{
UINT32_C (0xf650e4c8), UINT32_C (0xe448e96d),
UINT32_C (0x98db2fb4), UINT32_C (0xf5fad54f),
UINT32_C (0x433f1afb), UINT32_C (0xedec154a),
UINT32_C (0xd8370487), UINT32_C (0x46ca4f9a),
UINT32_C (0x5de3743e), UINT32_C (0x88381097),
UINT32_C (0xf1d444eb), UINT32_C (0x823cedb6),
UINT32_C (0x6a83e1e0), UINT32_C (0x4a5f6355),
UINT32_C (0xc7442433), UINT32_C (0x25890e2e),
UINT32_C (0x7452e319), UINT32_C (0x57161df6),
UINT32_C (0x38a824f3), UINT32_C (0x002ed713),
UINT32_C (0x29f55449), UINT32_C (0x51c08d83),
UINT32_C (0xd78cb99e), UINT32_C (0xa0cc74f3),
UINT32_C (0x8f651659), UINT32_C (0xcbc8b7c2),
UINT32_C (0xf5f71c69), UINT32_C (0x12ad6419),
UINT32_C (0xe5792e1b), UINT32_C (0x860536b8),
UINT32_C (0x09b3ce98), UINT32_C (0xd45d6d81),
UINT32_C (0xf3b26129), UINT32_C (0x17e38f85),
UINT32_C (0x29cf72ce), UINT32_C (0x349947b0),
UINT32_C (0xc998f9ff), UINT32_C (0xb5e13dae),
UINT32_C (0x32ae2a2b), UINT32_C (0xf7cf814c),
UINT32_C (0x8ebfa303), UINT32_C (0xcf22e064),
UINT32_C (0x0b923200), UINT32_C (0xeca4d58a),
UINT32_C (0xef53cec4), UINT32_C (0xd0f7b37d),
UINT32_C (0x9c411a2a), UINT32_C (0xffdf8a80),
UINT32_C (0xb40e27bc), UINT32_C (0xb4d2f976),
UINT32_C (0x44b89b08), UINT32_C (0xf37c71d5),
UINT32_C (0x1a70e7e9), UINT32_C (0x0bdb9c30),
UINT32_C (0x60dc5207), UINT32_C (0xb3c3f24b),
UINT32_C (0xd7386806), UINT32_C (0x229749b5),
UINT32_C (0x4e232cd0), UINT32_C (0x91dabc65),
UINT32_C (0xa70e1101), UINT32_C (0x8b87437e),
UINT32_C (0x5781414f), UINT32_C (0xcdbc62e2),
UINT32_C (0x8107c9ff), UINT32_C (0x69d2e4ae),
UINT32_C (0x3b18e752), UINT32_C (0xb143b688),
UINT32_C (0x6f4e0772), UINT32_C (0x95138769),
UINT32_C (0x943c3c74), UINT32_C (0xafc17a97),
UINT32_C (0x0fd43963), UINT32_C (0x6a529b0b),
UINT32_C (0xd8c58a6a), UINT32_C (0xa8bcc22d),
UINT32_C (0x2db35dfe), UINT32_C (0xa7a2f402),
UINT32_C (0x6cb167db), UINT32_C (0x538e1f4e),
UINT32_C (0x7275e277), UINT32_C (0x1d3b8e97),
UINT32_C (0xecc5dc91), UINT32_C (0x15e3a5b9),
UINT32_C (0x03696614), UINT32_C (0x30ab93ec),
UINT32_C (0xac9fe69d), UINT32_C (0x7bc76811),
UINT32_C (0x60eda8da), UINT32_C (0x28833522),
UINT32_C (0xd5295ebc), UINT32_C (0x5adb60e7),
UINT32_C (0xf7e1cdd0), UINT32_C (0x97166d14),
UINT32_C (0xb67ec13a), UINT32_C (0x210f3925),
UINT32_C (0x64af0fef), UINT32_C (0x0d028684),
UINT32_C (0x3aea3dec), UINT32_C (0xb058bafb),
UINT32_C (0xb8b0ccfc), UINT32_C (0xf2b5cc05),
UINT32_C (0xe3a662d9), UINT32_C (0x814bc24c),
UINT32_C (0x2364a1aa), UINT32_C (0x37c0ed05),
UINT32_C (0x2b36505c), UINT32_C (0x451e7ec8),
UINT32_C (0x5d2a542f), UINT32_C (0xe43d0fbb),
UINT32_C (0x91c8d925), UINT32_C (0x60d4d5f8),
UINT32_C (0x12a0594b), UINT32_C (0x9e8a51da),
UINT32_C (0xcd49ebdb), UINT32_C (0x1b0dcdc1),
UINT32_C (0xcd57c7f7), UINT32_C (0xe6344451),
UINT32_C (0x7ded386f), UINT32_C (0x2f36fa86),
UINT32_C (0xa6d12101), UINT32_C (0x33bc405d),
UINT32_C (0xb388d96c), UINT32_C (0xdb6dbe96),
UINT32_C (0xfe29661c), UINT32_C (0x13edc0cb),
UINT32_C (0xcb0eee4a), UINT32_C (0x70cc94ae),
UINT32_C (0xde11ed34), UINT32_C (0x0606cf9f),
UINT32_C (0x3a6ce389), UINT32_C (0x23d74f4e),
UINT32_C (0xa37f63ff), UINT32_C (0x917bdec2),
UINT32_C (0xd73f72d4), UINT32_C (0x0e7e0e67),
UINT32_C (0x3d77d9a2), UINT32_C (0x13add922),
UINT32_C (0x8891b3db), UINT32_C (0x01a9bd70),
UINT32_C (0x56a001e3), UINT32_C (0xd51f093d),
UINT32_C (0xcc033ce3), UINT32_C (0x5ad0d3b0),
UINT32_C (0x34105a8c), UINT32_C (0x6a123f57),
UINT32_C (0xbd2e5024), UINT32_C (0x7364944b),
UINT32_C (0xe89b1a3b), UINT32_C (0x21835c4d),
UINT32_C (0x9f39e2d9), UINT32_C (0xd405ded8),
UINT32_C (0x294d37e5), UINT32_C (0xbccaaeed),
UINT32_C (0x35a124b5), UINT32_C (0x6708a2bc),
UINT32_C (0xb00960ba), UINT32_C (0x2a98121a),
UINT32_C (0x4d8fae82), UINT32_C (0x0bb3263f),
UINT32_C (0x12595a19), UINT32_C (0x6a107589),
UINT32_C (0x0809e494), UINT32_C (0x21c171ec),
UINT32_C (0x884d6825), UINT32_C (0x14c8009b),
UINT32_C (0xb0b84e7b), UINT32_C (0x03fb88f4),
UINT32_C (0x28e7cb78), UINT32_C (0x9388b13b),
UINT32_C (0xdd2dc1d5), UINT32_C (0x848f520a),
UINT32_C (0x07c28cd1), UINT32_C (0x68a39358),
UINT32_C (0x72c9137d), UINT32_C (0x127dd430),
UINT32_C (0xc613f157), UINT32_C (0x8c2f0d55),
UINT32_C (0xf7d3f39f), UINT32_C (0x309bfb78),
UINT32_C (0x8406b137), UINT32_C (0x46c0a6f5),
UINT32_C (0x3718d597), UINT32_C (0x08607f04),
UINT32_C (0x76904b6d), UINT32_C (0x04db4e13),
UINT32_C (0xcd7411a7), UINT32_C (0xb510ce0e),
UINT32_C (0xbfc7f7cc), UINT32_C (0xb83f957a),
UINT32_C (0xfdfef62d), UINT32_C (0xc35e4580),
UINT32_C (0x3ff1e524), UINT32_C (0x4112d96c),
UINT32_C (0x02c9b944), UINT32_C (0xd5990dfb),
UINT32_C (0xe7e26581), UINT32_C (0x0d9c7e7e),
UINT32_C (0x826dfa89), UINT32_C (0x66f1e0ab),
UINT32_C (0x30bcc764), UINT32_C (0xeadebeac),
UINT32_C (0xed35e5ee), UINT32_C (0x0c571a7d),
UINT32_C (0xe4f3a26a), UINT32_C (0xf7f58f7b),
UINT32_C (0xadf6bc23), UINT32_C (0x5d023e65),
UINT32_C (0x1ed3ff4e), UINT32_C (0xec46b0b6),
UINT32_C (0xd2a93b51), UINT32_C (0xe75b41c9),
UINT32_C (0x7e315aeb), UINT32_C (0x61119a5a),
UINT32_C (0x53245b79), UINT32_C (0x33f6d7b1),
UINT32_C (0xcae8deba), UINT32_C (0x50fc8194),
UINT32_C (0xafa92a6d), UINT32_C (0xc87c8006),
UINT32_C (0x4188bfcd), UINT32_C (0x8bace62e),
UINT32_C (0x78ffa568), UINT32_C (0x5597ec0f),
UINT32_C (0xb4415f7d), UINT32_C (0x08294766),
UINT32_C (0xad567643), UINT32_C (0x09c36f90),
UINT32_C (0x3dde9f39), UINT32_C (0x4a0a283c),
UINT32_C (0x18080c8e), UINT32_C (0x080c79ec),
UINT32_C (0x79ae4c10), UINT32_C (0xcb9e1563),
UINT32_C (0x7cdd662f), UINT32_C (0x62d31911),
UINT32_C (0xa4ca0cf1), UINT32_C (0x5cf824cd),
UINT32_C (0x3b708f99), UINT32_C (0x1e16614c),
UINT32_C (0xb6b9d766), UINT32_C (0x5de87abb),
UINT32_C (0x7229ea81), UINT32_C (0xd5b2d750),
UINT32_C (0x56e6cd21), UINT32_C (0xfe1e42d5),
UINT32_C (0x96da2655), UINT32_C (0xc2b9aa36),
UINT32_C (0xb8f6fd4a), UINT32_C (0x6a158d10),
UINT32_C (0x01913fd3), UINT32_C (0xaf7d1fb8),
UINT32_C (0x0b5e435f), UINT32_C (0x90c10757),
UINT32_C (0x6554abda), UINT32_C (0x7a68710f)
},
{
UINT32_C (0x82ac484f), UINT32_C (0xd7e1c7be),
UINT32_C (0x95c85eaa), UINT32_C (0x94a302f4),
UINT32_C (0x4d3cfbda), UINT32_C (0x786b2908),
UINT32_C (0x1010b275), UINT32_C (0x82d53d12),
UINT32_C (0x21e2a51c), UINT32_C (0x3d1e9150),
UINT32_C (0xb059261d), UINT32_C (0xd0638e1a),
UINT32_C (0x31860f05), UINT32_C (0x81f2864d),
UINT32_C (0xff4cfc35), UINT32_C (0x0451516d),
UINT32_C (0xbd086f26), UINT32_C (0xbc5654c1),
UINT32_C (0x65dfa427), UINT32_C (0xa82427f5),
UINT32_C (0x582e3014), UINT32_C (0xb8d2486d),
UINT32_C (0xc79a1749), UINT32_C (0x9a1d7745),
UINT32_C (0x8766bb54), UINT32_C (0x1e04a7f7),
UINT32_C (0x3d3dff8a), UINT32_C (0xd5ec6bf4),
UINT32_C (0xdbef7d9f), UINT32_C (0x36ec0ea3),
UINT32_C (0x1feb2e4f), UINT32_C (0x15cfcc5c),
UINT32_C (0xd8c423fb), UINT32_C (0xd0ef3cc9),
UINT32_C (0xeb244925), UINT32_C (0xba5590c8),
UINT32_C (0xa5f48ac4), UINT32_C (0x33c5321c),
UINT32_C (0x613b67b2), UINT32_C (0x479c3a22),
UINT32_C (0xe21339cc), UINT32_C (0x10d210aa),
UINT32_C (0x931dd7e2), UINT32_C (0xef05ee06),
UINT32_C (0xb82f2703), UINT32_C (0xa385cb2c),
UINT32_C (0x5d67133c), UINT32_C (0x877eb7b4),
UINT32_C (0x1e3437f7), UINT32_C (0x5afb43ae),
UINT32_C (0x53c078f3), UINT32_C (0x94d90481),
UINT32_C (0x1d964589), UINT32_C (0x08063a85),
UINT32_C (0xe1322228), UINT32_C (0x1956b1e5),
UINT32_C (0x31860f13), UINT32_C (0x2e7b022f),
UINT32_C (0x21182ca3), UINT32_C (0x96f703ac),
UINT32_C (0x46819e2e), UINT32_C (0x0d28fe52),
UINT32_C (0x3724d4dc), UINT32_C (0xa0eabe6b),
UINT32_C (0xc66699fd), UINT32_C (0xc6112fdd),
UINT32_C (0x19c1e69c), UINT32_C (0x04d3658a),
UINT32_C (0x4b55dd99), UINT32_C (0x31907d62),
UINT32_C (0xf854b522), UINT32_C (0x4d678f26),
UINT32_C (0x22ae0582), UINT32_C (0xeafed133),
UINT32_C (0xe4a51d21), UINT32_C (0x84bd6dd6),
UINT32_C (0xc1a51375), UINT32_C (0x3f28ee63),
UINT32_C (0xfb737b1a), UINT32_C (0x70a1660e),
UINT32_C (0x8a8dfaa3), UINT32_C (0x1be79937),
UINT32_C (0xf7476978), UINT32_C (0x513c1764),
UINT32_C (0x531ac6bf), UINT32_C (0x12c06908),
UINT32_C (0x001cdb95), UINT32_C (0x1a4b6a53),
UINT32_C (0xd067fce5), UINT32_C (0x12b2cfb6),
UINT32_C (0x9ddb477f), UINT32_C (0x740e0066),
UINT32_C (0x39ddf25a), UINT32_C (0xcc8bfa2d),
UINT32_C (0xf1b20eaf), UINT32_C (0x64f2632c),
UINT32_C (0x9783cdee), UINT32_C (0x63bfd4d8),
UINT32_C (0x0084cfe5), UINT32_C (0x75f4e9e2),
UINT32_C (0x19b48fd0), UINT32_C (0x6c48ddd8),
UINT32_C (0x7a36af93), UINT32_C (0x71865c4c),
UINT32_C (0x9ce0199d), UINT32_C (0x867027d7),
UINT32_C (0x2cb7b77f), UINT32_C (0x84ef01da),
UINT32_C (0x72f5972f), UINT32_C (0x040f7074),
UINT32_C (0xdf9afa29), UINT32_C (0xc921f94e),
UINT32_C (0x75c08a36), UINT32_C (0x18c1ef9a),
UINT32_C (0xd649a428), UINT32_C (0xc5b71937),
UINT32_C (0x8a30738a), UINT32_C (0xd97cd348),
UINT32_C (0x858129a6), UINT32_C (0x239e3b0a),
UINT32_C (0xbbb8abc4), UINT32_C (0x80fac4c2),
UINT32_C (0xecfcf20b), UINT32_C (0xd9d711f9),
UINT32_C (0xe2a4ef71), UINT32_C (0xb5fe87c0),
UINT32_C (0xbe8b06b2), UINT32_C (0xaafef5a7),
UINT32_C (0x9c15db3b), UINT32_C (0x0aeb8165),
UINT32_C (0x4389a84a), UINT32_C (0x253b1d7a),
UINT32_C (0x19047c79), UINT32_C (0x7cdc78a2),
UINT32_C (0xd20adf03), UINT32_C (0x56f55a71),
UINT32_C (0x3e730fa8), UINT32_C (0xfd8650d8),
UINT32_C (0x959e234e), UINT32_C (0xb7546681),
UINT32_C (0xdad1b22a), UINT32_C (0x142a6e85),
UINT32_C (0x8ef4bce6), UINT32_C (0x68235b9d),
UINT32_C (0x85a13f85), UINT32_C (0x74096ae7),
UINT32_C (0xa949bea2), UINT32_C (0x29322d0d),
UINT32_C (0xd5683858), UINT32_C (0x82846526),
UINT32_C (0x403dae08), UINT32_C (0x6dd1943a),
UINT32_C (0xe1279bff), UINT32_C (0x9e7e4f04),
UINT32_C (0x1c3a4524), UINT32_C (0x484525e4),
UINT32_C (0x81d4cc5f), UINT32_C (0xe24124c0),
UINT32_C (0x037464c0), UINT32_C (0xbf1bd691),
UINT32_C (0x26ceb003), UINT32_C (0x275ead3a),
UINT32_C (0xc5bde908), UINT32_C (0x26414ff3),
UINT32_C (0xa30519ad), UINT32_C (0xd7b43abe),
UINT32_C (0x2ce5d3d5), UINT32_C (0x88412761),
UINT32_C (0x97ca2070), UINT32_C (0xe5fbb9c7),
UINT32_C (0x276df0b4), UINT32_C (0x308f751f),
UINT32_C (0x37a97df6), UINT32_C (0xc9cd808c),
UINT32_C (0xfe4cb380), UINT32_C (0x3d469303),
UINT32_C (0xaee19096), UINT32_C (0xc0d5d42a),
UINT32_C (0x4e823ad3), UINT32_C (0xf5f9cc3b),
UINT32_C (0x4286619c), UINT32_C (0x9ca45e1c),
UINT32_C (0x66c97340), UINT32_C (0x891aec49),
UINT32_C (0x45bae606), UINT32_C (0xc798f047),
UINT32_C (0x52649d6c), UINT32_C (0xce86fdfc),
UINT32_C (0x80c6e402), UINT32_C (0xd6ec2f2b),
UINT32_C (0x27c82282), UINT32_C (0x1fe26ce0),
UINT32_C (0x92f57ea7), UINT32_C (0xde462f4d),
UINT32_C (0x07497cae), UINT32_C (0x5a48755c),
UINT32_C (0x721502dd), UINT32_C (0x6cbe7935),
UINT32_C (0x836d8003), UINT32_C (0x9ead7f70),
UINT32_C (0x9ab3a42f), UINT32_C (0x4c8652d6),
UINT32_C (0x32e39273), UINT32_C (0xe8fa3860),
UINT32_C (0x1da4f25a), UINT32_C (0x0cd6ef81),
UINT32_C (0x02503f7d), UINT32_C (0x8854a0a1),
UINT32_C (0x9a30c4e8), UINT32_C (0x88157153),
UINT32_C (0x05efe294), UINT32_C (0x57c4c925),
UINT32_C (0x2887d96f), UINT32_C (0xc1a71e3c),
UINT32_C (0xe9f84163), UINT32_C (0x2d0985de),
UINT32_C (0xd21e796c), UINT32_C (0x6fb5ce56),
UINT32_C (0x02614abf), UINT32_C (0xc3c7be2c),
UINT32_C (0xb54fed6f), UINT32_C (0xa617a083),
UINT32_C (0xc3142d8f), UINT32_C (0x6079e4ce),
UINT32_C (0xceffc147), UINT32_C (0x1d0cb81b),
UINT32_C (0xdc153e5f), UINT32_C (0xe36ef5bb),
UINT32_C (0xd531161a), UINT32_C (0x165b1015),
UINT32_C (0x7aa114ed), UINT32_C (0x3f7579b3),
UINT32_C (0xf7f395f1), UINT32_C (0xbc6172c7),
UINT32_C (0xa86f875e), UINT32_C (0x0e6c51b3),
UINT32_C (0xcdfec2af), UINT32_C (0x73c0e762),
UINT32_C (0x824c2009), UINT32_C (0xc5a87748),
UINT32_C (0x94d40125), UINT32_C (0x8aba3ffb),
UINT32_C (0xd32be060), UINT32_C (0x8c17eff0),
UINT32_C (0x21e2547e), UINT32_C (0x07cffad9),
UINT32_C (0x05340e15), UINT32_C (0xf3310c92),
UINT32_C (0x9d8d1908), UINT32_C (0x86ba527f),
UINT32_C (0xf943f672), UINT32_C (0xef73fbf0),
UINT32_C (0x46d95ca5), UINT32_C (0xc54cd95b),
UINT32_C (0x9d855e89), UINT32_C (0x4bb5af29)
}
#else
{
UINT64_C (0x12a8f216af9418c2), UINT64_C (0xd4490ad526f14431),
UINT64_C (0xb49c3b3995091a36), UINT64_C (0x5b45e522e4b1b4ef),
UINT64_C (0xa1e9300cd8520548), UINT64_C (0x49787fef17af9924),
UINT64_C (0x03219a39ee587a30), UINT64_C (0xebe9ea2adf4321c7),
UINT64_C (0x804456af10f5fb53), UINT64_C (0xd74bbe77e6116ac7),
UINT64_C (0x7c0828dd624ec390), UINT64_C (0x14a195640116f336),
UINT64_C (0x2eab8ca63ce802d7), UINT64_C (0xc6e57a78fbd986e0),
UINT64_C (0x58efc10b06a2068d), UINT64_C (0xabeeddb2dde06ff1),
UINT64_C (0x0b090a7560a968e3), UINT64_C (0x2cf9c8ca052f6e9f),
UINT64_C (0x116d0016cb948f09), UINT64_C (0xa59e0bd101731a28),
UINT64_C (0x63767572ae3d6174), UINT64_C (0xab4f6451cc1d45ec),
UINT64_C (0xc2a1e7b5b459aeb5), UINT64_C (0x2472f6207c2d0484),
UINT64_C (0xe699ed85b0dfb40d), UINT64_C (0xd4347f66ec8941c3),
UINT64_C (0xf4d14597e660f855), UINT64_C (0x8b889d624d44885d),
UINT64_C (0x258e5a80c7204c4b), UINT64_C (0xaf0c317d32adaa8a),
UINT64_C (0x9c4cd6257c5a3603), UINT64_C (0xeb3593803173e0ce),
UINT64_C (0x36f60e2ba4fa6800), UINT64_C (0x38b6525c21a42b0e),
UINT64_C (0xf4f5d05c10cab243), UINT64_C (0xcf3f4688801eb9aa),
UINT64_C (0x1ddc0325259b27de), UINT64_C (0xb9571fa04dc089c8),
UINT64_C (0xd7504dfa8816edbb), UINT64_C (0x1fe2cca76517db90),
UINT64_C (0x261e4e4c0a333a9d), UINT64_C (0x219b97e26ffc81bd),
UINT64_C (0x66b4835d9eafea22), UINT64_C (0x4cc317fb9cddd023),
UINT64_C (0x50b704cab602c329), UINT64_C (0xedb454e7badc0805),
UINT64_C (0x9e17e49642a3e4c1), UINT64_C (0x66c1a2a1a60cd889),
UINT64_C (0x7983eed3740847d5), UINT64_C (0x298af231c85bafab),
UINT64_C (0x2680b122baa28d97), UINT64_C (0x734de8181f6ec39a),
UINT64_C (0x53898e4c3910da55), UINT64_C (0x1761f93a44d5aefe),
UINT64_C (0xe4dbf0634473f5d2), UINT64_C (0x4ed0fe7e9dc91335),
UINT64_C (0xd18d8549d140caea), UINT64_C (0x1cfc8bed0d681639),
UINT64_C (0xca1e3785a9e724e5), UINT64_C (0xb67c1fa481680af8),
UINT64_C (0xdfea21ea9e7557e3), UINT64_C (0xd6b6d0ecc617c699),
UINT64_C (0xfa7e393983325753), UINT64_C (0xa09e8c8c35ab96de),
UINT64_C (0x8fe88b57305e2ab6), UINT64_C (0x89039d79d6fc5c5c),
UINT64_C (0x9bfb227ebdf4c5ce), UINT64_C (0x7f7cc39420a3a545),
UINT64_C (0x3f6c6af859d80055), UINT64_C (0xc8763c5b08d1908c),
UINT64_C (0x469356c504ec9f9d), UINT64_C (0x26e6db8ffdf5adfe),
UINT64_C (0x3a938fee32d29981), UINT64_C (0x2c5e9deb57ef4743),
UINT64_C (0x1e99b96e70a9be8b), UINT64_C (0x764dbeae7fa4f3a6),
UINT64_C (0xaac40a2703d9bea0), UINT64_C (0x1a8c1e992b941148),
UINT64_C (0x73aa8a564fb7ac9e), UINT64_C (0x604d51b25fbf70e2),
UINT64_C (0xdd69a0d8ab3b546d), UINT64_C (0x65ca5b96b7552210),
UINT64_C (0x2fd7e4b9e72cd38c), UINT64_C (0x51d2b1ab2ddfb636),
UINT64_C (0x9d1d84fcce371425), UINT64_C (0xa44cfe79ae538bbe),
UINT64_C (0xde68a2355b93cae6), UINT64_C (0x9fc10d0f989993e0),
UINT64_C (0x94ebc8abcfb56dae), UINT64_C (0xd7a023a73260b45c),
UINT64_C (0x72c8834a5957b511), UINT64_C (0x8f8419a348f296bf),
UINT64_C (0x1e152328f3318dea), UINT64_C (0x4838d65f6ef6748f),
UINT64_C (0xd6bf7baee43cac40), UINT64_C (0x13328503df48229f),
UINT64_C (0x7440fb816508c4fe), UINT64_C (0x9d266d6a1cc0542c),
UINT64_C (0x4dda48153c94938a), UINT64_C (0x74c04bf1790c0efe),
UINT64_C (0xe1925c71285279f5), UINT64_C (0x8a8e849eb32781a5),
UINT64_C (0x073973751f12dd5e), UINT64_C (0xa319ce15b0b4db31),
UINT64_C (0x6dd856d94d259236), UINT64_C (0x67378d8eccef96cb),
UINT64_C (0x9fc477de4ed681da), UINT64_C (0xf3b8b6675a6507ff),
UINT64_C (0xc3a9dc228caac9e9), UINT64_C (0xc37b45b3f8d6f2ba),
UINT64_C (0xb559eb1d04e5e932), UINT64_C (0x1b0cab936e65c744),
UINT64_C (0xaf08da9177dda93d), UINT64_C (0xac12fb171817eee7),
UINT64_C (0x1fff7ac80904bf45), UINT64_C (0xa9119b60369ffebd),
UINT64_C (0xbfced1b0048eac50), UINT64_C (0xb67b7896167b4c84),
UINT64_C (0x9b3cdb65f82ca382), UINT64_C (0xdbc27ab5447822bf),
UINT64_C (0x10dcd78e3851a492), UINT64_C (0xb438c2b67f98e5e9),
UINT64_C (0x43954b3252dc25e5), UINT64_C (0xab9090168dd05f34),
UINT64_C (0xce68341f79893389), UINT64_C (0x36833336d068f707),
UINT64_C (0xdcdd7d20903d0c25), UINT64_C (0xda3a361b1c5157b1),
UINT64_C (0x7f9d1a2e1ebe1327), UINT64_C (0x5d0a12f27ad310d1),
UINT64_C (0x3bc36e078f7515d7), UINT64_C (0x4da8979a0041e8a9),
UINT64_C (0x950113646d1d6e03), UINT64_C (0x7b4a38e32537df62),
UINT64_C (0x8a1b083821f40cb4), UINT64_C (0x3d5774a11d31ab39),
UINT64_C (0x7a76956c3eafb413), UINT64_C (0x7f5126dbba5e0ca7),
UINT64_C (0x12153635b2c0cf57), UINT64_C (0x7b3f0195fc6f290f),
UINT64_C (0x5544f7d774b14aef), UINT64_C (0x56c074a581ea17fe),
UINT64_C (0xe7f28ecd2d49eecd), UINT64_C (0xe479ee5b9930578c),
UINT64_C (0x9ff38fed72e9052f), UINT64_C (0x9f65789a6509a440),
UINT64_C (0x0981dcd296a8736d), UINT64_C (0x5873888850659ae7),
UINT64_C (0xc678b6d860284a1c), UINT64_C (0x63e22c147b9c3403),
UINT64_C (0x92fae24291f2b3f1), UINT64_C (0x829626e3892d95d7),
UINT64_C (0xcffe1939438e9b24), UINT64_C (0x79999cdff70902cb),
UINT64_C (0x8547eddfb81ccb94), UINT64_C (0x7b77497b32503b12),
UINT64_C (0x97fcaacbf030bc24), UINT64_C (0x6ced1983376fa72b),
UINT64_C (0x7e75d99d94a70f4d), UINT64_C (0xd2733c4335c6a72f),
UINT64_C (0xdbc0d2b6ab90a559), UINT64_C (0x94628d38d0c20584),
UINT64_C (0x64972d68dee33360), UINT64_C (0xb9c11d5b1e43a07e),
UINT64_C (0x2de0966daf2f8b1c), UINT64_C (0x2e18bc1ad9704a68),
UINT64_C (0xd4dba84729af48ad), UINT64_C (0xb7a0b174cff6f36e),
UINT64_C (0xe94c39a54a98307f), UINT64_C (0xaa70b5b4f89695a2),
UINT64_C (0x3bdbb92c43b17f26), UINT64_C (0xcccb7005c6b9c28d),
UINT64_C (0x18a6a990c8b35ebd), UINT64_C (0xfc7c95d827357afa),
UINT64_C (0x1fca8a92fd719f85), UINT64_C (0x1dd01aafcd53486a),
UINT64_C (0x49353fea39ba63b1), UINT64_C (0xf85b2b4fbcde44b7),
UINT64_C (0xbe7444e39328a0ac), UINT64_C (0x3e2b8bcbf016d66d),
UINT64_C (0x964e915cd5e2b207), UINT64_C (0x1725cabfcb045b00),
UINT64_C (0x7fbf21ec8a1f45ec), UINT64_C (0x11317ba87905e790),
UINT64_C (0x2fe4b17170e59750), UINT64_C (0xe8d9ecbe2cf3d73f),
UINT64_C (0xb57d2e985e1419c7), UINT64_C (0x0572b974f03ce0bb),
UINT64_C (0xa8d7e4dab780a08d), UINT64_C (0x4715ed43e8a45c0a),
UINT64_C (0xc330de426430f69d), UINT64_C (0x23b70edb1955c4bf),
UINT64_C (0x098954d51fff6580), UINT64_C (0x8107fccf064fcf56),
UINT64_C (0x852f54934da55cc9), UINT64_C (0x09c7e552bc76492f),
UINT64_C (0xe9f6760e32cd8021), UINT64_C (0xa3bc941d0a5061cb),
UINT64_C (0xba89142e007503b8), UINT64_C (0xdc842b7e2819e230),
UINT64_C (0xbbe83f4ecc2bdecb), UINT64_C (0xcd454f8f19c5126a),
UINT64_C (0xc62c58f97dd949bf), UINT64_C (0x693501d628297551),
UINT64_C (0xb9ab4ce57f2d34f3), UINT64_C (0x9255abb50d532280),
UINT64_C (0xebfafa33d7254b59), UINT64_C (0xe9f6082b05542e4e),
UINT64_C (0x35dd37d5871448af), UINT64_C (0xb03031a8b4516e84),
UINT64_C (0xb3f256d8aca0b0b9), UINT64_C (0x0fd22063edc29fca),
UINT64_C (0xd9a11fbb3d9808e4), UINT64_C (0x3a9bf55ba91f81ca),
UINT64_C (0xc8c93882f9475f5f), UINT64_C (0x947ae053ee56e63c),
UINT64_C (0xc7d9f16864a76e94), UINT64_C (0x7bd94e1d8e17debc),
UINT64_C (0xd873db391292ed4f), UINT64_C (0x30f5611484119414),
UINT64_C (0x565c31f7de89ea27), UINT64_C (0xd0e4366228b03343),
UINT64_C (0x325928ee6e6f8794), UINT64_C (0x6f423357e7c6a9f9),
UINT64_C (0x99170a5dc3115544), UINT64_C (0x59b97885e2f2ea28),
UINT64_C (0xbc4097b116c524d2), UINT64_C (0x7a13f18bbedc4ff5),
UINT64_C (0x071582401c38434d), UINT64_C (0xb422061193d6f6a7),
UINT64_C (0xb4b81b3fa97511e2), UINT64_C (0x65d34954daf3cebd),
UINT64_C (0xb344c470397bba52), UINT64_C (0xbac7a9a18531294b),
UINT64_C (0xecb53939887e8175), UINT64_C (0x565601c0364e3228),
UINT64_C (0xef1955914b609f93), UINT64_C (0x16f50edf91e513af),
UINT64_C (0x56963b0dca418fc0), UINT64_C (0xd60f6dcedc314222),
UINT64_C (0x364f6ffa464ee52e), UINT64_C (0x6c3b8e3e336139d3),
UINT64_C (0xf943aee7febf21b8), UINT64_C (0x088e049589c432e0),
UINT64_C (0xd49503536abca345), UINT64_C (0x3a6c27934e31188a),
UINT64_C (0x957baf61700cff4e), UINT64_C (0x37624ae5a48fa6e9),
UINT64_C (0x501f65edb3034d07), UINT64_C (0x907f30421d78c5de),
UINT64_C (0x1a804aadb9cfa741), UINT64_C (0x0ce2a38c344a6eed),
UINT64_C (0xd363eff5f0977996), UINT64_C (0x2cd16e2abd791e33),
UINT64_C (0x58627e1a149bba21), UINT64_C (0x7f9b6af1ebf78baf)
},
{
UINT64_C (0xd20d8c88c8ffe65f), UINT64_C (0x917f1dd5f8886c61),
UINT64_C (0x56986e2ef3ed091b), UINT64_C (0x5fa7867caf35e149),
UINT64_C (0x81a1549fd6573da5), UINT64_C (0x96fbf83a12884624),
UINT64_C (0xe728e8c83c334074), UINT64_C (0xf1bcc3d275afe51a),
UINT64_C (0x71f1ce2490d20b07), UINT64_C (0xe6c42178c4bbb92e),
UINT64_C (0x0a9c32d5eae45305), UINT64_C (0x0c335248857fa9e7),
UINT64_C (0x142de49fff7a7c3d), UINT64_C (0x64a53dc924fe7ac9),
UINT64_C (0x9f6a419d382595f4), UINT64_C (0x150f361dab9dec26),
UINT64_C (0xc61bb3a141e50e8c), UINT64_C (0x2785338347f2ba08),
UINT64_C (0x7ca9723fbb2e8988), UINT64_C (0xce2f8642ca0712dc),
UINT64_C (0x59300222b4561e00), UINT64_C (0xc2b5a03f71471a6f),
UINT64_C (0xd5f9e858292504d5), UINT64_C (0x65fa4f227a2b6d79),
UINT64_C (0x93cbe0b699c2585d), UINT64_C (0x1d95b0a5fcf90bc6),
UINT64_C (0x17efee45b0dee640), UINT64_C (0x9e4c1269baa4bf37),
UINT64_C (0xd79476a84ee20d06), UINT64_C (0x0a56a5f0bfe39272),
UINT64_C (0x7eba726d8c94094b), UINT64_C (0x5e5637885f29bc2b),
UINT64_C (0xd586bd01c5c217f6), UINT64_C (0x233003b5a6cfe6ad),
UINT64_C (0x24c0e332b70019b0), UINT64_C (0x9da058c67844f20c),
UINT64_C (0xe4d9429322cd065a), UINT64_C (0x1fab64ea29a2ddf7),
UINT64_C (0x8af38731c02ba980), UINT64_C (0x7dc7785b8efdfc80),
UINT64_C (0x486289ddcc3d6780), UINT64_C (0x222bbfae61725606),
UINT64_C (0x2bc60a63a6f3b3f2), UINT64_C (0x177e00f9fc32f791),
UINT64_C (0x522e23f3925e319e), UINT64_C (0x9c2ed44081ce5fbd),
UINT64_C (0x964781ce734b3c84), UINT64_C (0xf05d129681949a4c),
UINT64_C (0x046e3ecaaf453ce9), UINT64_C (0x962aceefa82e1c84),
UINT64_C (0xf5b4b0b0d2deeeb4), UINT64_C (0x1af3dbe25d8f45da),
UINT64_C (0xf9f4892ed96bd438), UINT64_C (0xc4c118bfe78feaae),
UINT64_C (0x07a69afdcc42261a), UINT64_C (0xf8549e1a3aa5e00d),
UINT64_C (0x2102ae466ebb1148), UINT64_C (0xe87fbb46217a360e),
UINT64_C (0x310cb380db6f7503), UINT64_C (0xb5fdfc5d3132c498),
UINT64_C (0xdaf8e9829fe96b5f), UINT64_C (0xcac09afbddd2cdb4),
UINT64_C (0xb862225b055b6960), UINT64_C (0x55b6344cf97aafae),
UINT64_C (0xff577222c14f0a3a), UINT64_C (0x4e4b705b92903ba4),
UINT64_C (0x730499af921549ff), UINT64_C (0x13ae978d09fe5557),
UINT64_C (0xd9e92aa246bf719e), UINT64_C (0x7a4c10ec2158c4a6),
UINT64_C (0x49cad48cebf4a71e), UINT64_C (0xcf05daf5ac8d77b0),
UINT64_C (0xabbdcdd7ed5c0860), UINT64_C (0x9853eab63b5e0b35),
UINT64_C (0x352787baa0d7c22f), UINT64_C (0xc7f6aa2de59aea61),
UINT64_C (0x03727073c2e134b1), UINT64_C (0x5a0f544dd2b1fb18),
UINT64_C (0x74f85198b05a2e7d), UINT64_C (0x963ef2c96b33be31),
UINT64_C (0x4659d2b743848a2c), UINT64_C (0x19ebb029435dcb0f),
UINT64_C (0x4e9d2827355fc492), UINT64_C (0xccec0a73b49c9921),
UINT64_C (0x46c9feb55d120902), UINT64_C (0x8d2636b81555a786),
UINT64_C (0x30c05b1ba332f41c), UINT64_C (0xf6f7fd1431714200),
UINT64_C (0x1a4ff12616eefc89), UINT64_C (0x990a98fd5071d263),
UINT64_C (0x84547ddc3e203c94), UINT64_C (0x07a3aec79624c7da),
UINT64_C (0x8a328a1cedfe552c), UINT64_C (0xd1e649de1e7f268b),
UINT64_C (0x2d8d5432157064c8), UINT64_C (0x4ae7d6a36eb5dbcb),
UINT64_C (0x57e3306d881edb4f), UINT64_C (0x0a804d18b7097475),
UINT64_C (0xe74733427b72f0c1), UINT64_C (0x24b33c9d7ed25117),
UINT64_C (0xe805a1e290cf2456), UINT64_C (0x3b544ebe544c19f9),
UINT64_C (0x3e666e6f69ae2c15), UINT64_C (0xfb152fe3ff26da89),
UINT64_C (0xb49b52e587a1ee60), UINT64_C (0xac042e70f8b383f2),
UINT64_C (0x89c350c893ae7dc1), UINT64_C (0xb592bf39b0364963),
UINT64_C (0x190e714fada5156e), UINT64_C (0xec8177f83f900978),
UINT64_C (0x91b534f885818a06), UINT64_C (0x81536d601170fc20),
UINT64_C (0xd4c718bc4ae8ae5f), UINT64_C (0x9eedeca8e272b933),
UINT64_C (0x10e8b35af3eeab37), UINT64_C (0x0e09b88e1914f7af),
UINT64_C (0x3fa9ddfb67e2f199), UINT64_C (0xb10bb459132d0a26),
UINT64_C (0x2c046f22062dc67d), UINT64_C (0x5e90277e7cb39e2d),
UINT64_C (0xd6b04d3b7651dd7e), UINT64_C (0xe34a1d250e7a8d6b),
UINT64_C (0x53c065c6c8e63528), UINT64_C (0x1bdea12e35f6a8c9),
UINT64_C (0x21874b8b4d2dbc4f), UINT64_C (0x3a88a0fbbcb05c63),
UINT64_C (0x43ed7f5a0fae657d), UINT64_C (0x230e343dfba08d33),
UINT64_C (0xb5b4071dbfc73a66), UINT64_C (0x8f9887e6078735a1),
UINT64_C (0x08de8a1c7797da9b), UINT64_C (0xfcb6be43a9f2fe9b),
UINT64_C (0x049a7f41061a9e60), UINT64_C (0x9f91508bffcfc14a),
UINT64_C (0xe3273522064480ca), UINT64_C (0xcd04f3ff001a4778),
UINT64_C (0x6bfa9aae5ec05779), UINT64_C (0x371f77e76bb8417e),
UINT64_C (0x3550c2321fd6109c), UINT64_C (0xfb4a3d794a9a80d2),
UINT64_C (0xf43c732873f24c13), UINT64_C (0xaa9119ff184cccf4),
UINT64_C (0xb69e38a8965c6b65), UINT64_C (0x1f2b1d1f15f6dc9c),
UINT64_C (0x67fef95d92607890), UINT64_C (0x31865ced6120f37d),
UINT64_C (0x3a6853c7e70757a7), UINT64_C (0x32ab0edb696703d3),
UINT64_C (0xee97f453f06791ed), UINT64_C (0x6dc93d9526a50e68),
UINT64_C (0x78edefd694af1eed), UINT64_C (0x9c1169fa2777b874),
UINT64_C (0x50065e535a213cf6), UINT64_C (0xde0c89a556b9ae70),
UINT64_C (0xd1e0ccd25bb9c169), UINT64_C (0x6b17b224bad6bf27),
UINT64_C (0x6b02e63195ad0cf8), UINT64_C (0x455a4b4cfe30e3f5),
UINT64_C (0x9338e69c052b8e7b), UINT64_C (0x5092ef950a16da0b),
UINT64_C (0x7c45d833aff07862), UINT64_C (0xa5b1cfdba0ab4067),
UINT64_C (0x6ad047c430a12104), UINT64_C (0x6c47bec883a7de39),
UINT64_C (0x944f6de09134dfb6), UINT64_C (0x9aeba33ac6ecc6b0),
UINT64_C (0x52e762596bf68235), UINT64_C (0x22af003ab672e811),
UINT64_C (0xb5635c95ff7296e2), UINT64_C (0xed2df21216235097),
UINT64_C (0x4a29c6465a314cd1), UINT64_C (0xd83cc2687a19255f),
UINT64_C (0x506c11b9d90e8b1d), UINT64_C (0x57277707199b8175),
UINT64_C (0xcaf21ecd4377b28c), UINT64_C (0xc0c0f5a60ef4cdcf),
UINT64_C (0x93b633abfa3469f8), UINT64_C (0xe846963877671a17),
UINT64_C (0x59ac2c7873f910a3), UINT64_C (0x660d3257380841ee),
UINT64_C (0xd813f2fab7f5c5ca), UINT64_C (0x4112cf68649a260e),
UINT64_C (0x443f64ec5a371195), UINT64_C (0xb0774d261cc609db),
UINT64_C (0x720bf5f26f4d2eaa), UINT64_C (0x1c2559e30f0946be),
UINT64_C (0xe328e230e3e2b3fb), UINT64_C (0x087e79e5a57d1d13),
UINT64_C (0x08dd9bdfd96b9f63), UINT64_C (0x64d0e29eea8838b3),
UINT64_C (0xddf957bc36d8b9ca), UINT64_C (0x6ffe73e81b637fb3),
UINT64_C (0x1a4e4822eb4d7a59), UINT64_C (0x5d94337fbfaf7f5b),
UINT64_C (0xd30c088ba61ea5ef), UINT64_C (0x9d765e419fb69f6d),
UINT64_C (0x9e21f4f903b33fd9), UINT64_C (0xb4d8f77bc3e56167),
UINT64_C (0x733ea705fae4fa77), UINT64_C (0xa4ec0132764ca04b),
UINT64_C (0x7976033a39f7d952), UINT64_C (0x106f72fe81e2c590),
UINT64_C (0x8c90fd9b083f4558), UINT64_C (0xfd080d236da814ba),
UINT64_C (0x7b64978555326f9f), UINT64_C (0x60e8ed72c0dff5d1),
UINT64_C (0xb063e962e045f54d), UINT64_C (0x959f587d507a8359),
UINT64_C (0x758f450c88572e0b), UINT64_C (0x1b6baca2ae4e125b),
UINT64_C (0x61cf4f94c97df93d), UINT64_C (0x2738259634305c14),
UINT64_C (0xd39bb9c3a48db6cf), UINT64_C (0x8215e577001332c8),
UINT64_C (0xa1082c0466df6c0a), UINT64_C (0xef02cdd06ffdb432),
UINT64_C (0xfc87614baf287e07), UINT64_C (0x240ab57a8b888b20),
UINT64_C (0xbf8d5108e27e0d48), UINT64_C (0x61bdd1307c66e300),
UINT64_C (0xb925a6cd0421aff3), UINT64_C (0x3e003e616a6591e9),
UINT64_C (0x94c3251f06f90cf3), UINT64_C (0xbf84470805e69b5f),
UINT64_C (0x98f076a4f7a2322e), UINT64_C (0x70cb6af7c2d5bcf0),
UINT64_C (0xb64be8d8b25396c1), UINT64_C (0xa9aa4d20db084e9b),
UINT64_C (0x2e6d02c36017f67f), UINT64_C (0xefed53d75fd64e6b),
UINT64_C (0xd9f1f30ccd97fb09), UINT64_C (0xa2ebee47e2fbfce1),
UINT64_C (0xb8d91274b9e9d4fb), UINT64_C (0x1db956e450275779),
UINT64_C (0x4fc8e9560f91b123), UINT64_C (0x63573ff03e224774),
UINT64_C (0x0647dfedcd894a29), UINT64_C (0x7884d9bc6cb569d8),
UINT64_C (0x7fba195410e5ca30), UINT64_C (0x106c09b972d2e822),
UINT64_C (0x241260ed4ad1e87d), UINT64_C (0x64c8e531bff53b55),
UINT64_C (0xca672b91e9e4fa16), UINT64_C (0x3871700761b3f743),
UINT64_C (0xf95cffa23af5f6f4), UINT64_C (0x8d14dedb30be846e),
UINT64_C (0x3b097adaf088f94e), UINT64_C (0x21e0bd5026c619bf),
UINT64_C (0x1bda0492e7e4586e), UINT64_C (0xd23c8e176d113600),
UINT64_C (0x252f59cf0d9f04bb), UINT64_C (0xb3598080ce64a656),
UINT64_C (0x993e1de72d36d310), UINT64_C (0xa2853b80f17f58ee),
UINT64_C (0x1877b51e57a764d5), UINT64_C (0x001f837cc7350524)
}
#endif
};
int
main (int argc, char **argv)
{
unsigned int i;
isaac_word r[ISAAC_WORDS];
int iterations;
/* Seed with zeros, and discard the first buffer of output,
as that's what the standard programs do. */
static struct isaac_state s;
isaac_seed (&s);
isaac_refill (&s, r);
for (i = 0; i < sizeof expected / sizeof expected[0]; i++)
{
isaac_refill (&s, r);
ASSERT (memcmp (r, expected[i], sizeof r) == 0);
}
/* If invoked with a positive argument, run a benchmark;
if with a negative, run a do-nothing benchmark. */
for (iterations = argc <= 1 ? 0 : strtol (argv[1], NULL, 10);
iterations != 0;
iterations += (iterations < 0 ? 1 : -1))
if (0 <= iterations)
isaac_refill (&s, r);
return 0;
}

1
gnulib Submodule

Submodule gnulib added at 880a2f6db9

Some files were not shown because too many files have changed in this diff Show More