Jim Meyering [Fri, 24 Aug 2007 12:07:06 +0000 (14:07 +0200)]
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).
Jim Meyering [Thu, 23 Aug 2007 14:33:11 +0000 (16:33 +0200)]
* src/dircolors.hin: Add xterm-16color, xterm-88color and eterm-color.
Suggestion from Dan Nicolaescu.
Jim Meyering [Thu, 23 Aug 2007 09:51:01 +0000 (11:51 +0200)]
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>
Jim Meyering [Thu, 23 Aug 2007 08:47:16 +0000 (10:47 +0200)]
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>
Jim Meyering [Thu, 23 Aug 2007 07:50:58 +0000 (09:50 +0200)]
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.
Jim Meyering [Thu, 23 Aug 2007 07:46:14 +0000 (09:46 +0200)]
* Makefile.maint (patch-check): Don't remove temporaries upon failure.
Jim Meyering [Wed, 22 Aug 2007 21:49:51 +0000 (23:49 +0200)]
* src/c99-to-c89.diff: Adjust offsets.
Jim Meyering [Wed, 22 Aug 2007 18:02:34 +0000 (20:02 +0200)]
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.
Jim Meyering [Wed, 22 Aug 2007 14:56:13 +0000 (16:56 +0200)]
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.
Jim Meyering [Wed, 22 Aug 2007 09:20:41 +0000 (11:20 +0200)]
* src/copy.c (DEST_INFO_INITIAL_CAPACITY): Correct a comment.
Jim Meyering [Tue, 21 Aug 2007 08:34:33 +0000 (10:34 +0200)]
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.
Bob Proulx [Tue, 21 Aug 2007 04:04:45 +0000 (22:04 -0600)]
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.
Paul Eggert [Mon, 20 Aug 2007 15:27:53 +0000 (17:27 +0200)]
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.
Eric Blake [Mon, 20 Aug 2007 15:01:18 +0000 (17:01 +0200)]
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.
Jim Meyering [Sat, 18 Aug 2007 06:59:10 +0000 (08:59 +0200)]
Use new "idcache.h" header.
* src/ls.c: Remove ancient declarations of getuser and getgroup.
Include "idcache.h", instead.
Jim Meyering [Sat, 18 Aug 2007 06:50:00 +0000 (08:50 +0200)]
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.
Jim Meyering [Thu, 16 Aug 2007 17:18:29 +0000 (19:18 +0200)]
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.
Jim Meyering [Thu, 16 Aug 2007 13:50:00 +0000 (15:50 +0200)]
* tests/ls/time-1: Include sample-test boilerplate code.
Remove the then-unnecessary, hard-coded envvar "unset" commands.
Jim Meyering [Wed, 15 Aug 2007 20:44:45 +0000 (22:44 +0200)]
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.
Jim Meyering [Wed, 15 Aug 2007 08:05:22 +0000 (10:05 +0200)]
* src/printf.c (usage): Adjust summary to also mention OPTIONs.
From Karl Berry.
Jim Meyering [Tue, 14 Aug 2007 08:17:52 +0000 (10:17 +0200)]
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.
Jim Meyering [Tue, 14 Aug 2007 07:46:32 +0000 (09:46 +0200)]
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.
Paul Eggert [Sat, 11 Aug 2007 06:30:43 +0000 (08:30 +0200)]
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.
Jim Meyering [Wed, 8 Aug 2007 18:02:55 +0000 (20:02 +0200)]
Adapt to gnulib's latest xstrtol change.
* POTFILES.in: Use lib/xstrtol-error.c, not lib/xstrtol.h.
Jim Meyering [Sun, 5 Aug 2007 08:30:23 +0000 (10:30 +0200)]
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.
Jim Meyering [Sat, 4 Aug 2007 11:45:34 +0000 (13:45 +0200)]
* POTFILES.in: Remove lib/human.c.
Jim Meyering [Sat, 4 Aug 2007 11:45:21 +0000 (13:45 +0200)]
Exercise xstrtol's diagnostics via pr's --pages option.
* tests/misc/xstrtol: New file.
* tests/misc/Makefile.am (TESTS): Add xstrtol.
Paul Eggert [Sat, 4 Aug 2007 11:36:59 +0000 (13:36 +0200)]
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.
Jim Meyering [Thu, 2 Aug 2007 17:48:03 +0000 (19:48 +0200)]
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.
Jim Meyering [Thu, 2 Aug 2007 17:27:07 +0000 (19:27 +0200)]
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.
Jim Meyering [Thu, 2 Aug 2007 16:52:40 +0000 (18:52 +0200)]
Adapt du's no-x test not to fail on older Linux systems.
* tests/du/no-x: Accept a third variant of the diagnostic.
Jim Meyering [Tue, 31 Jul 2007 08:46:31 +0000 (10:46 +0200)]
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>
Jim Meyering [Tue, 31 Jul 2007 07:49:05 +0000 (09:49 +0200)]
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>
Jim Meyering [Sun, 29 Jul 2007 13:47:11 +0000 (15:47 +0200)]
Adjust indentation to reflect today's change.
Jim Meyering [Sat, 28 Jul 2007 16:49:04 +0000 (18:49 +0200)]
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é.
Bob Proulx [Thu, 26 Jul 2007 08:26:13 +0000 (02:26 -0600)]
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>
Jim Meyering [Tue, 24 Jul 2007 08:00:59 +0000 (10:00 +0200)]
NEWS: Move the other "sort" entry from the 6.9 section into 6.10 "Bug fixes".
Jim Meyering [Tue, 24 Jul 2007 07:59:14 +0000 (09:59 +0200)]
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.
Paul Eggert [Tue, 24 Jul 2007 07:40:55 +0000 (09:40 +0200)]
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>.
Jim Meyering [Mon, 23 Jul 2007 12:35:58 +0000 (14:35 +0200)]
Update all copyright notices to use the newer form.
Jim Meyering [Mon, 23 Jul 2007 12:31:01 +0000 (14:31 +0200)]
* COPYING: Update to Version 3.
Jim Meyering [Mon, 23 Jul 2007 12:07:02 +0000 (14:07 +0200)]
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.
Jim Meyering [Sun, 22 Jul 2007 16:26:23 +0000 (18:26 +0200)]
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>
Paul Eggert [Sat, 21 Jul 2007 13:00:54 +0000 (15:00 +0200)]
* 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.
Jim Meyering [Fri, 20 Jul 2007 16:42:23 +0000 (18:42 +0200)]
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.
Andreas Schwab [Fri, 20 Jul 2007 14:29:06 +0000 (16:29 +0200)]
* src/sort.c (main): Don't free a pointer to non-malloc'd memory.
Jim Meyering [Thu, 19 Jul 2007 08:17:39 +0000 (10:17 +0200)]
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.
Jim Meyering [Thu, 19 Jul 2007 08:14:41 +0000 (10:14 +0200)]
"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.
Jim Meyering [Tue, 17 Jul 2007 07:16:59 +0000 (09:16 +0200)]
ChangeLog: Mention the correct function name in the 2007-07-08 bootstrap
entry.
Jim Meyering [Sun, 15 Jul 2007 20:13:16 +0000 (22:13 +0200)]
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.
Jim Meyering [Sun, 15 Jul 2007 20:11:45 +0000 (22:11 +0200)]
* coreutils.texi: Revise node structure per new fdl.texi.
Jim Meyering [Sat, 30 Jun 2007 17:43:53 +0000 (19:43 +0200)]
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>
Jim Meyering [Sat, 14 Jul 2007 08:02:57 +0000 (10:02 +0200)]
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.
Karel Zak [Sat, 14 Jul 2007 07:38:42 +0000 (09:38 +0200)]
* 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.
Jim Meyering [Fri, 13 Jul 2007 16:37:16 +0000 (18:37 +0200)]
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.
Jim Meyering [Fri, 13 Jul 2007 12:12:01 +0000 (14:12 +0200)]
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.
Jim Meyering [Thu, 12 Jul 2007 18:58:53 +0000 (20:58 +0200)]
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.
Jim Meyering [Thu, 12 Jul 2007 09:41:32 +0000 (11:41 +0200)]
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.
Jim Meyering [Wed, 11 Jul 2007 09:25:57 +0000 (11:25 +0200)]
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.
Jim Meyering [Tue, 10 Jul 2007 20:37:48 +0000 (22:37 +0200)]
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>
Jim Meyering [Tue, 10 Jul 2007 20:37:05 +0000 (22:37 +0200)]
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.
Karel Zak [Tue, 5 Jun 2007 21:29:32 +0000 (23:29 +0200)]
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>
Jim Meyering [Tue, 10 Jul 2007 10:21:15 +0000 (12:21 +0200)]
Change "version 2" to "version 3" in all copyright notices.
Jim Meyering [Mon, 9 Jul 2007 17:24:15 +0000 (19:24 +0200)]
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.
P@draigBrady.com [Mon, 9 Jul 2007 15:07:38 +0000 (16:07 +0100)]
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>
Jim Meyering [Sun, 8 Jul 2007 18:09:59 +0000 (20:09 +0200)]
Run the coreutils-specific code only if tests/Makefile.am.in exists.
* bootstrap (mam_template): Move definition out of loop.
Jim Meyering [Sun, 8 Jul 2007 17:12:48 +0000 (19:12 +0200)]
Remove .gdb-history.
Jim Meyering [Sun, 8 Jul 2007 15:25:05 +0000 (17:25 +0200)]
Add to .cvsignore and .gitignore files.
Jim Meyering [Sun, 8 Jul 2007 15:24:29 +0000 (17:24 +0200)]
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/.
Jim Meyering [Sun, 8 Jul 2007 14:42:16 +0000 (16:42 +0200)]
THANKS: Add Pádraig Brady.
2007-07-08 Jim Meyering <jim@meyering.net>
Jim Meyering [Sun, 8 Jul 2007 10:42:05 +0000 (12:42 +0200)]
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".
Jim Meyering [Sun, 8 Jul 2007 08:16:44 +0000 (10:16 +0200)]
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".
Jim Meyering [Fri, 6 Jul 2007 23:49:12 +0000 (01:49 +0200)]
Fix typo in comment.
Jim Meyering [Thu, 5 Jul 2007 15:42:29 +0000 (17:42 +0200)]
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.
Jim Meyering [Thu, 5 Jul 2007 15:44:31 +0000 (17:44 +0200)]
* bootstrap: Merge in changes from gnulib.
Jim Meyering [Thu, 5 Jul 2007 12:44:20 +0000 (14:44 +0200)]
* src/id.c: Include "getugroups.h" rather than declaring manually.
Jim Meyering [Wed, 4 Jul 2007 11:16:53 +0000 (13:16 +0200)]
Add Paul's ChangeLog for previous patch.
Restore the m4/.gitignore file I inadvertently removed.
Paul Eggert [Tue, 3 Jul 2007 18:36:43 +0000 (11:36 -0700)]
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>
Jim Meyering [Sat, 23 Jun 2007 08:11:25 +0000 (10:11 +0200)]
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.
Paul Eggert [Sat, 23 Jun 2007 07:27:11 +0000 (09:27 +0200)]
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.
Pádraig Brady [Fri, 22 Jun 2007 18:39:56 +0000 (20:39 +0200)]
Add test cases for seq off-by-one problem.
Jim Meyering [Fri, 22 Jun 2007 18:26:01 +0000 (20:26 +0200)]
* src/stat.c (long_options): Add a FIXME comment to help ensure
that the deprecated and undocumented "--filesystem" option is
removed someday.
Paul Eggert [Mon, 18 Jun 2007 09:58:47 +0000 (11:58 +0200)]
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.
Jim Meyering [Mon, 18 Jun 2007 09:17:30 +0000 (11:17 +0200)]
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.
Jim Meyering [Mon, 18 Jun 2007 09:19:57 +0000 (11:19 +0200)]
* README-hacking: Don't mention Gzip 1.2.4, now that 1.3.12 is out.
Jim Meyering [Sat, 16 Jun 2007 10:53:40 +0000 (12:53 +0200)]
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.
Paul Eggert [Fri, 15 Jun 2007 20:47:16 +0000 (22:47 +0200)]
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.
Jim Meyering [Fri, 15 Jun 2007 13:44:15 +0000 (15:44 +0200)]
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.
Paul Eggert [Fri, 15 Jun 2007 07:29:18 +0000 (09:29 +0200)]
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.
Jim Meyering [Wed, 13 Jun 2007 13:53:12 +0000 (15:53 +0200)]
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.
Jim Meyering [Wed, 13 Jun 2007 13:33:38 +0000 (15:33 +0200)]
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.
Jim Meyering [Wed, 13 Jun 2007 06:00:41 +0000 (08:00 +0200)]
* README-hacking: List Gperf as a build-requirement, too.
Reported by Steve Ward.
Jim Meyering [Mon, 11 Jun 2007 09:07:21 +0000 (11:07 +0200)]
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>
Jim Meyering [Sun, 10 Jun 2007 16:39:53 +0000 (18:39 +0200)]
Add to .cvsignore and .gitignore files.
Jim Meyering [Sun, 10 Jun 2007 12:56:39 +0000 (14:56 +0200)]
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>.
Jim Meyering [Wed, 6 Jun 2007 06:00:44 +0000 (08:00 +0200)]
* coreutils.texi (rmdir invocation): Fix a tiny typo.
Paul Eggert [Mon, 4 Jun 2007 17:31:22 +0000 (19:31 +0200)]
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).
Jim Meyering [Sun, 3 Jun 2007 19:55:09 +0000 (21:55 +0200)]
Remove constants.texi from version control.
This file has always been generated.
* .gitignore: Add constants.texi.
Signed-off-by: Jim Meyering <jim@meyering.net>
Jim Meyering [Sat, 2 Jun 2007 21:00:09 +0000 (23:00 +0200)]
Add to .cvsignore and .gitignore files.
Jim Meyering [Thu, 31 May 2007 14:40:51 +0000 (16:40 +0200)]
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.