Make "rm --interactive=never ..." never prompt.
[platform/upstream/coreutils.git] / ChangeLog
1 2007-01-17  Jim Meyering  <jim@meyering.net>
2
3         Make "rm --interactive=never ..." never prompt.
4         * NEWS: Mention this.
5         * src/remove.h (enum rm_interactive): New ternary type.
6         (struct rm_options) [interactive]: Use it, here -- rather than bool.
7         * src/remove.c (prompt): Reflect type change.
8         * src/mv.c (rm_option_init): Initialize to RMI_NEVER now.
9         * src/rm.c (main): Add a FIXME comment for '-d' option.
10         Adapt to type change of rm_options.interactive.
11
12         * tests/rm/i-never: New file.  Test for the above fix.
13         * tests/rm/Makefile.am (TESTS): Add i-never.
14
15 2007-01-15  Jim Meyering  <jim@meyering.net>
16
17         * bootstrap (gnulib_tool): When adding to .cvsignore and .gitignore,
18         emit foo.h, for each foo_.h.  This yields one false-positive, fts.h,
19         but that's ok, since fts_.h will eventually be renamed.
20
21         * src/remove.c (remove_dir): Don't use errno in diagnostic.
22         Root-only test failure reported by Alex van Hout and Jon Grosshart in
23         <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/9415/focus=9415>.
24
25         * bootstrap.conf (avoided_gnulib_modules): Fix my typo:
26         s/--avoid=canonicalize-lgpl/--avoid=canonicalize-gpl/
27
28 2007-01-14  Bruno Haible  <bruno@clisp.org>
29
30         Enable use of gnulib's new fchdir module.
31         * bootstrap.conf (avoided_gnulib_modules): Avoid canonicalize-lgpl,
32         since we use canonicalize.
33         (gnulib_modules): Add fchdir.
34         * m4/jm-macros.m4 (coreutils_MACROS): Remove fchdir-stub.
35
36 2007-01-13  Jim Meyering  <jim@meyering.net>
37
38         * Transform all Makefile.am files so that when running "make check",
39         CU_TEST_NAME is set to the name of the test.  This is so that when I
40         run valgrind-enabled (--log-file-qualifier=CU_TEST_NAME) "make check"
41         on the entire package it is more convenient to map a leak or error
42         found in a valgrind log file back to the offending test.
43         Use this command:
44         (echo tests/Makefile.am.in; find tests -name Makefile.am) \
45          |xargs perl -pi -e '/^(\s*)PATH=...VG_PATH_PREFIX/ and ' \
46            -e 'print $1,q|CU_TEST_NAME=`basename $(abs_srcdir)`,$$tst |,"\\\n"'
47
48 2007-01-11  Jim Meyering  <jim@meyering.net>
49
50         Avoid a leak in expr's implementation of the ":" (match) operator.
51         * src/expr.c (docolon): Free the regexp buffer using regfree, rather
52         than doing it manually, being careful to set fastmap to NULL first.
53         Free any re_regs.start and .end members, if necessary.
54
55         * tests/misc/test-diag: Work also when libc's error function
56         reports the entire program name ("../../src/test"), rather than
57         just the final component.
58
59 2007-01-10  Jim Meyering  <jim@meyering.net>
60
61         Don't use fts_statp uninitialized for "chown -RLh --preserve-root ...".
62         * src/chown-core.c (FTSENT_IS_DIRECTORY): New macro.
63         (change_file_owner): Perform the ROOT_DEV_INO_CHECK only for a
64         directory.  Non-directory entries lack fts_statp data when using
65         the FTS_NOSTAT option.
66
67 2007-01-07  Jim Meyering  <jim@meyering.net>
68
69         * tests/sample-test: Update copyright date to 2007.
70         * Makefile.maint (copyright-check): Also check the copyright date
71         in tests/sample-test.
72
73 2007-01-06  Jim Meyering  <jim@meyering.net>
74
75         * tests/fmt/basic (pfx-only, pfx-of-pfx): New tests,
76         based on examples from G.P. Halkes in
77         <http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/9388>.
78
79 2007-01-06  G.P. Halkes  <buscom@ghalkes.nl>
80
81         * src/fmt.c (copy_rest): Correct prefix handling.
82         Don't elide a line with the prefix followed by only white space.
83         (get_line): Move EOF-check to loop-termination condition.
84         * tests/fmt/basic (pfx-1): Adjust test to expect desired result.
85         (pfx-2): Remove test; its premise was contrary to the documentation.
86
87 2007-01-05  Jim Meyering  <jim@meyering.net>
88
89         Avoid a used-uninitialized bug for invalid input, i.e., when the size
90         of the input, not counting newlines, is 1 % 4.
91         * gl/lib/base64.c (base64_decode): Don't hard-code inlen==4.
92         It may be smaller when flushing.
93
94 2007-01-05  Mike Frysinger  <vapier@gentoo.org>
95
96         * src/dircolors.hin: Add a TERM directive for cons25.
97
98 2007-01-04  Jim Meyering  <jim@meyering.net>
99
100         * Makefile.cfg (local-checks-to-skip): Skip strftime-check, in
101         case you don't have convenient access to glibc info documentation.
102
103         Use the release year, not the current year.
104         * src/groups.sh (version): Use a better name: @RELEASE_YEAR@.
105         * src/Makefile.am (RELEASE_YEAR): Define it.
106         (.sh): Use it.
107         Thanks to a prod from Eric Blake.
108
109         Ensure that "group --version" always prints the current year.
110         * src/groups.sh (version): Use @CURRENT_YEAR@, rather than 2006.
111         * src/Makefile.am (.sh): Also substitute for @CURRENT_YEAR@.
112         Suggestion from Eric Blake.
113
114         When decoding, always allow newlines in input, with almost no
115         performance impact.
116         * src/base64.c (do_decode): Initialize decode context.
117         Call base64_decode one more time, after all input is processed.
118         (usage): When decoding, newlines are always accepted.
119
120         * tests/misc/base64: Add a bunch of tests, for the above.
121         * gl/lib/base64.c: Include <string.h>.
122         (base64_decode_ctx_init, get_4, decode_4): New functions.
123         (base64_decode): Efficiently handle interspersed newlines.
124         (base64_decode_alloc): Update signature.
125         * gl/lib/base64.h (struct base64_decode_context): Define.
126         (base64_decode_ctx_init): Add prototype.
127         (base64_decode, base64_decode_alloc): Update prototypes.
128
129         * gl/lib/base64.c: Copied from gnulib.
130         * gl/lib/base64.h: Likewise.
131
132 2007-01-03  Jim Meyering  <jim@meyering.net>
133
134         * THANKS: Add Evan Hunt.
135
136 2007-01-03  Bruno Haible  <bruno@clisp.org>
137
138         Avoid spurious test failures on MacOS X 10.3.9, in a German locale.
139         * tests/chown/deref: Apply lang-default.
140         * tests/misc/split-a: Likewise.
141         * tests/mv/reply-no: Likewise.
142
143         * src/copy.c (copy_internal): Use mkfifo as a fallback if mknod fails.
144         Needed on MacOS X.
145
146 2007-01-02  Paul Eggert  <eggert@cs.ucla.edu>
147
148         Now, "ls -FRL" always follows symbolic links on Linux.
149         * NEWS: Mention this bug fix.
150         * src/ls.c (gobble_file): Fix bug reported by
151         Nobuyuki Tsuchimura in
152         http://lists.gnu.org/archive/html/bug-coreutils/2006-12/msg00152.html
153         where "ls -FRL" didn't follow a symbolic link in some cases on Linux.
154         * tests/ls/follow-slink: Add a test for this case.
155
156 2007-01-01  Jim Meyering  <jim@meyering.net>
157
158         * tests/rm/fail-eperm: Revert last change.  The PATH=... setting
159         is not honored at least on HP-UX 11.23 systems.
160         Instead, simply transform the actual output diagnostic.
161         Test failure reported by Bob Proulx.
162
163 2006-12-30  Jim Meyering  <jim@meyering.net>
164
165         * bootstrap (gnulib_extra_files): Remove announce-gen.
166         * bootstrap.conf (gnulib_modules): Add it here instead, now that
167         it's a module.
168
169         * tests/misc/base64: Factor a long, repetitive string.
170
171         * src/c99-to-c89.diff: Adjust remove.c offsets.
172
173         Clean up after the change of 2006-12-28.
174         * src/remove.c (AD_pop_and_chdir): Change **DIRP parameter to *DIRP,
175         now that this function never modifies the pointer.  Adjust comments
176         and code accordingly.
177         (remove_dir): Set "dirp" to NULL right after AD_pop_and_chdir call,
178         now that AD_pop_and_chdir no longer does that.
179
180         * tests/rm/fail-eperm: Avoid spurious differences (the error function
181         from latest glibc no longer prints the full program_name): so don't
182         invoke rm via ../../src/rm.  Instead, invoke it via "PATH=../../src rm".
183
184         * tests/mv/acl (skip): Skip this test also if the destination
185         directory, which is on a different file system, lacks ACL support.
186
187         * src/copy.c (copy_reg): Rewrite a comment that was rendered
188         inaccurate by the 2006-10-18 change.
189
190 2006-12-28  Jim Meyering  <jim@meyering.net>
191
192         When moving "up" the hierarchy, be careful to remove a just-emptied
193         directory before opening ".", to avoid trouble with file system
194         implementations that cache readdir results at opendir-time.
195         * src/remove.c (AD_pop_and_chdir): Add a file descriptor parameter.
196         Don't update **DIRP.  Don't call fdopendir here.
197         (remove_dir): Call fdopendir here instead.
198         Report and patch from Mikulas Patocka:
199         <http://lists.gnu.org/archive/html/bug-coreutils/2006-12/msg00170.html>
200
201 2006-12-27  Jim Meyering  <jim@meyering.net>
202
203         * src/tail.c (usage): Mention +N for --bytes and --lines.
204         Suggestion from Evan Hunt.
205
206 2006-12-26  Jim Meyering  <jim@meyering.net>
207
208         * configure.ac: Require autoconf-2.61 and automake-1.10.
209         Without the former (even with autoconf-2.60), "make distcheck"
210         would fail (without the 2006-09-26 autoconf AC_CHECK_DECL fix),
211         due to an inttypes.h generated with CFLAGS including -pedantic.
212         With the old decl check, @HAVE_DECL_STRTOUMAX@ would be 0.
213
214         * Makefile.maint (VC-tag): Define, so as to gpg-sign each release
215         tag, using the release version number as the message.
216         (vc-dist): Use $(VC-tag), rather than "$(VC) tag".
217
218 2006-12-21  Paul Eggert  <eggert@cs.ucla.edu>
219
220         * NEWS: dd bs= operands now silently override later ibs= and obs=,
221         as POSIX requires.
222         * src/dd.c (scanargs): Implement it.
223         * tests/dd/misc (outbytes): Test it.
224         * doc/coreutils.texi (dd invocation): Specify that bs=N
225         overrides later ibs and obs, undoing part of the
226         previous change.  (The behavior was wrong.)
227
228 2006-12-20  Jim Meyering  <jim@meyering.net>
229
230         "rm -rf /etc/motd" (run by non-root) now prints a diagnostic.
231         * src/remove.c (remove_entry): Handle EACCES for a non-directory, too.
232         Don't let a non-directory get by with errno == EPERM, either.
233         Check the file type directly (using cached stat value), rather
234         than trying to guess it from errno values.
235         Karl Berry reported that a cross-partition "mv /etc/issue ~"
236         failed with the um,... suboptimal diagnostic,
237         "mv: cannot remove `/etc/issue': Not a directory".
238         * tests/rm/Makefile.am (TESTS): Add fail-eacces.
239         * tests/rm/fail-eacces: New file.
240         * NEWS: Mention that both mv and rm are affected.
241
242         "cut -f 2- A B" no longer triggers a double-free bug
243         * src/cut.c (cut_fields): Set file-scoped global to NULL after
244         freeing it.  This avoids a double-free (and core dump on some systems)
245         for this usage: "echo 1>a; echo 2>b; cut -f2- a b".  Reported by
246         James Hunt in <http://bugzilla.redhat.com/220312>.
247         * NEWS: List this bug fix.
248         * THANKS: Mention him.
249         * tests/misc/cut: New file.
250         * tests/misc/Makefile.am (TESTS): Add cut.
251
252 2006-12-15  Jim Meyering  <jim@meyering.net>
253
254         * tests/cp/open-perm-race: Correct the gdb-existence check.
255         Don't run either subsequent gdb command in a sub-shell.
256         Reported by Thomas Schwinge.
257         * THANKS: bring up to date.
258
259 2006-12-14  Paul Eggert  <eggert@cs.ucla.edu>
260
261         Make sure cp -p isn't too generous with file permissions.
262         * tests/cp/Makefile.am (TESTS): Add file-perm-race.
263         * tests/cp/file-perm-race: New file.
264
265         Ensure cp -pR --parents isn't too generous with parent permissions.
266         * tests/cp/Makefile.am (TESTS): Add parent-perm-race.
267         * tests/cp/parent-perm-race: New file.
268
269 2006-12-14  Jim Meyering  <jim@meyering.net>
270
271         * tests/chgrp/default-no-deref: Don't assume that files are created
272         with the primary group by default.  That's not true in a directory
273         with the set-GID bit set.
274
275         Don't hang when there's no input tty.
276         * tests/cp/open-perm-race: Skip this test if there is no
277         controlling input `terminal'.
278
279         Test for a hard-to-detect race fix, using gdb.
280         * tests/cp/open-perm-race: New file, to test for the
281         cp --preserve=ownership fix of 2006-12-06.
282
283         * tests/cp/Makefile.am (TESTS_ENVIRONMENT): Define abs_top_builddir.
284         (TESTS): Add open-perm-race.
285
286         * src/chgrp.c (main): Don't prohibit -RLh, aka -RL with --no-dereference.
287         * src/chown.c (main): Likewise.
288         * src/chown-core.c (change_file_owner): Add to a comment.
289         * tests/chown/preserve-root: Add tests.
290
291         * NEWS: --preserve-root now works with chgrp, chmod, and chown.
292         * src/chmod.c (process_file): Do honor the --preserve-root option.
293         * src/chown-core.c (change_file_owner): Likewise, but here, also
294         handle the case in which a traversal would go "through" a symlink
295         to root.  Reported by Matthew M. Boedicker
296         * tests/chown/preserve-root: Test for the above.
297         * tests/chown/Makefile.am (TESTS): Add preserve-root.
298
299         * NEWS: Mention the chmod fix induced by the 2006-12-11 change
300         to gnulib's m4/openat.m4.
301
302 2006-12-13  Andreas Schwab  <schwab@suse.de>
303
304         Don't fail if mv/acl test succeeds.
305         * tests/mv/acl (skip): Check for acl support in the file system.
306         * tests/mv/Makefile.am (XFAIL_TESTS): Remove.
307         (TESTS_ENVIRONMENT): Pass CONFIG_HEADER.
308
309 2006-12-13  Paul Eggert  <eggert@cs.ucla.edu>
310
311         Remove some arbitrary restrictions on size fields, so that
312         commands like "sort -k 18446744073709551616" no longer fail merely
313         because 18446744073709551616 doesn't fit in uintmax_t.  The trick
314         is that these fields can all be treated as effectively infinity;
315         their exact values don't matter, since no internal buffer can be
316         that long.
317         * src/join.c (string_to_join_field): Verify that SIZE_MAX <=
318         ULONG_MAX if the code assumes this.  Silently truncate too-large
319         values to SIZE_MAX, as the remaining code will do the right thing
320         in this case.
321         * src/sort.c (parse_field_count): Likewise.
322         * src/uniq.c (size_opt, main): Likewise.
323         * tests/join/Test.pm (bigfield): New test.
324         * tests/sort/Test.pm (bigfield): New test.
325         * tests/uniq/Test.pm (121): New test.
326
327 2006-12-13  Jim Meyering  <jim@meyering.net>
328
329         * tests/chgrp/default-no-deref: New test.
330         * tests/chgrp/Makefile.am (TESTS): Add default-no-deref.
331
332 2006-12-12  Jim Meyering  <jim@meyering.net>
333
334         * src/system.h (SETVBUF): Remove definition, now that the
335         autoconf macro, AC_FUNC_SETVBUF_REVERSED, does nothing.
336         * src/tee.c (tee_files): s/SETVBUF/setvbuf/.
337         * src/od.c (open_next_file): Likewise.
338
339 2006-12-09  Jim Meyering  <jim@meyering.net>
340
341         * man/Makefile.am (.x.1): Make help2man use $(PACKAGE_STRING) as the
342         "source".  I.e. "GNU coreutils 6.7".
343
344         * NEWS: With the change from "-pre" to "-dirty" suffix, also change
345         from NEXT_VER-pre to CUR_VER-dirty.  So, this is 6.7-dirty.
346         * configure.ac (AC_INIT): s/6.8-dirty/6.7-dirty/.
347
348         * tests/uniq/Test.pm (test_vector): Skip the pipe-reading test
349         whenever uniq is expected to fail.  This should catch the other case
350         [test #112] in which uniq emits "cat: write error: Broken pipe" on
351         some systems.
352
353 2006-12-08  Jim Meyering  <jim@meyering.net>
354
355         Include bootstrap tool version info in the announcement form.
356         * Makefile.maint (gnulib_snapshot_date): Define.
357         (announcement): Use two new announce-gen options,
358         --bootstrap-tools and --gnulib-snapshot-date.
359         * Makefile.cfg (gnulib_dir): Set.
360
361         Post-release version change.
362         * NEWS: Add a line for 6.8-dirty.
363         * configure.ac (AC_INIT): Set new version string.
364
365 2006-12-07  Jim Meyering  jim@meyering.net
366
367         Version 6.7.
368         * NEWS: Record release date.  Remove '-pre' suffix.
369         * configure.ac (AC_INIT): Remove version string suffix.
370
371 2006-12-07  Jim Meyering  <jim@meyering.net>
372
373         Make the output of "make check" more reproducible.
374         * tests/touch/empty-file: Use envvar-check, so "make check" doesn't
375         evoke diagnostics like this when COLUMNS=0 in the environment:
376         ls: ignoring invalid width in environment variable COLUMNS: 0
377         * tests/touch/no-rights: Likewise.
378         * tests/help-version: Likewise.
379         * tests/uniq/Test.pm: Don't perform the pipe-reading version of test
380         118, since it emits "cat: write error: Broken pipe" on some systems.
381
382 2006-12-06  Paul Eggert  <eggert@cs.ucla.edu>
383
384         * NEWS: Document the cp -p fix for special bits.
385         * src/copy.c (set_owner): Now returns a three-way result, so
386         that the caller can clear the special bits.  All callers changed.
387         (copy_reg): Don't set the special bits if chown failed.
388         (copy_internal): Likewise.
389         * tests/cp/special-bits: Test this fix.
390
391 2006-12-06  Paul Eggert  <eggert@cs.ucla.edu>
392
393         * NEWS: Document the cp --preserve=ownership fix.
394         * m4/jm-macros.m4 (coreutils_MACROS): Check for fchmod.
395         * src/copy.c (fchmod_or_lchmod): New function.
396         (copy_reg): New arg OMITTED_PERMISSIONS.  All uses changed.
397         Omit confusing and unused ", dst_mode" arg to 'open' without O_CREAT.
398         When creating a file, use O_EXCL, so we're more likely to detect
399         funny business by other processes.  At the end, if permissions
400         were omitted, chmod them back in.
401         (copy_internal): If the ownership might change, omit some permissions
402         at first, then restore them after chowning the file.
403         * src/cp.c (make_dir_parents_private): Likewise.
404         * src/copy.c (cached_umask): New function.
405         * src/copy.h (cached_umask): New decl.
406
407 2006-12-06  Jim Meyering  <jim@meyering.net>
408
409         Make the output of "make check" more reproducible.
410         * tests/misc/date-sec: Don't emit any diagnostic about sleeping.
411
412 2006-12-03  Paul Eggert  <eggert@cs.ucla.edu>
413
414         * src/install.c (install_file_in_file): Preserve time stamps
415         before changing owner or file mode bits, for consistency with
416         other coreutils programs.
417
418 2006-12-03  Jim Meyering  <jim@meyering.net>
419
420         * tests/misc/date-sec: Output a fixed string.
421
422         * NEWS: du --one-file-system (-x) would skip subdirectories of any
423         directory listed as second or subsequent command line argument.
424         * tests/du/one-file-system: New file.  Test for today's fts.c fix.
425         * tests/du/Makefile.am (TESTS): Add one-file-system.
426         Reported by Mike Frysinger.
427
428 2006-12-02  Jim Meyering  <jim@meyering.net>
429
430         * tests/du/basic: Generate 4KB file simply using printf, rather than
431         seq+head.  This avoids a spurious "Broken pipe" diagnostic from seq.
432
433 2006-11-28  Jim Meyering  <jim@meyering.net>
434
435         * tests/mv/no-target-dir: Detect a buggy rename syscall.  If found,
436         skip this test.  This happens at least on ia64 linux-2.4.19 w/ext3.
437         Reported by Matthew Woehlke.
438
439         * tests/mv/dir2dir: Also accept EBUSY.
440         Reported by Matthew Woehlke.
441
442 2006-11-27  Jim Meyering  <jim@meyering.net>
443
444         * Makefile.maint (patch-check): Rewrite to diagnose failure.
445         * src/c99-to-c89.diff: Adjust shred.c offsets.
446
447 2006-11-26  Paul Eggert  <eggert@cs.ucla.edu>
448
449         Improve the check for departures from C89, and fix the departures
450         I found.
451         * Makefile.maint (my-distcheck): Also check for C89 compatibility
452         as best we can with GCC.
453         * src/stat.c (PRINTF_OPTION): Omit comma before } in enum
454         declaration; C89 doesn't allow this.
455         * src/dcgen: Don't generate string literals longer than
456         what C89 requires support for.
457         * src/cut.c (usage): Don't use string literals longer than
458         what C89 requires support for.
459         * src/date.c (usage): Likewise.
460         * src/dd.c (usage): Likewise.
461         * src/du.c (usage): Likewise.
462         * src/ls.c (usage): Likewise.
463         * src/od.c (usage): Likewise.
464         * src/readlink.c (usage): Likewise.
465         * src/seq.c (usage): Likewise.
466         * src/shred.c (usage): Likewise.
467
468 2006-11-26  Mike Frysinger  <vapier@gentoo.org>
469
470         Recognize new archive, audio and image formats.
471         Give audio files a separate color.
472         * src/dircolors.hin: Add comments for common .sh and .csh scripts.
473         Add .bz2, .tbz2, .tz, .rar, .ace, .zoo, .cpio, .7z, .rz as archive
474         suffixes.  Add .mng, .pcx, .m2v, .mkv, .ogm, .mp4, .m4v, .mp4v, .vob,
475         .qt, .nuv, .wmv, .asf, .rm, .rmvb, .flc, .yuv as image formats.
476         Add .aac, .au, .mid, .midi, .mka, .ra as audio suffixes.  Change
477         audio color to 00;36 to differentiate from image/video color.
478
479 2006-11-26  Jim Meyering  <jim@meyering.net>
480
481         * Makefile.maint (patch-check): Compile patched sources with
482         CFLAGS='-Wdeclaration-after-statement -Werror', to ensure that
483         no violations remain.
484
485         * src/c99-to-c89.diff: Remove 3 bogus hunks.
486
487         * src/remove.c (fd_to_subdirp): Remove unused parameter, ds.
488         Update callers.
489
490         * src/c99-to-c89.diff: Adjust for changes in rm.c and in remove.c.
491
492         * src/rm.c (main): Remove unnecessary (assuming C99) braces.
493
494 2006-11-26  Paul Eggert  <eggert@cs.ucla.edu>
495
496         Port parts of the code to C89 to minimize the need for c99-to-c89.diff,
497         while trying to retain the readability of C99 as much as possible.
498         * src/remove.c (rm_1): Remove decl of local, fd_cwd.
499         Replace each of two uses with literal AT_FDCWD.
500         (cache_stat_init): Return its argument, for convenience.
501         Update the caller in remove_dir.
502         (AD_pop_and_chdir): Return prev_dir rather than storing through
503         a pointer argument.  All uses changed.
504         (AD_ensure_initialized): New function.
505         (AD_mark_helper): Use it, to avoid the need for declaration
506         after statement.
507         (rm): Move cycle_check_init call into callee...
508         (rm_1): ...here.
509         Use an else clause in place of a "continue" statement.
510         (close_preserve_errno): Remove.
511         (fd_to_subdirp): Rewrite to avoid the need for decl after statement.
512
513 2006-11-25  Jim Meyering  <jim@meyering.net>
514
515         * Makefile.am (EXTRA_DIST): Remove announce-gen from here, too.
516
517 2006-11-24  Theodoros V. Kalamatianos  <thkala@softlab.ece.ntua.gr> (tiny change)
518
519         * tests/du/inacc-dest: Skip this test when running as root.
520
521 2006-11-23  Jim Meyering  <jim@meyering.net>
522
523         * announce-gen: Remove file.  It's moving to gnulib.
524         * bootstrap: Pull it from gnulib/build-aux instead.
525         * Makefile.maint (announcement): Reflect move to ./build-aux.
526
527         * tests/du/deref-args: Use "printf %65536s x" to create a 64KB file,
528         rather than a pipeline that would sometimes evoke a diagnostic
529         like "seq: write error: Broken pipe".
530
531         * tests/help-version: Suppress dd transfer rate output.
532
533         * configure.ac (AC_INIT): Bump to 6.7-pre, not 6.6-pre.
534
535 2006-11-22  Jim Meyering  <jim@meyering.net>
536
537         * announce-gen (print_news_deltas): Fix silly, but harmless typo:
538         change "(:?..." to "(?:..." in regexps.
539
540         Post-release version change.
541         * NEWS: Add a line for 6.7-pre.
542         * configure.ac (AC_INIT): Bump to 6.7 and add "-pre" suffix.
543
544         Version 6.6.
545         * NEWS: Record release date.  Remove "-pre" suffix.
546         * configure.ac (AC_INIT): Remove "-pre" suffix from version string.
547
548         * announce-gen: Remove unused --release-archive-directory option.
549         (print_news_deltas): Accept new adjective, "Noteworthy", in addition
550         to the old "Major".
551         Match version numbers in NEWS using tighter regular expressions.
552         (main): Require the --gpg-key-id=ID option.
553         * Makefile.maint (announcement): Don't use now-removed
554         --release-archive-directory=... option.
555
556         * NEWS: Mention the three noteworthy changes, all fixed via gnulib.
557
558 2006-11-21  Jim Meyering  <jim@meyering.net>
559
560         * tests/rm/one-file-system: Upon setup failure (e.g., mount failure),
561         skip the test rather than failing.  Reported by Michael Deutschmann.
562
563         * tests/rm/fail-eperm: Use the "(exit N); exit N" idiom,
564         rather than just "exit N".
565
566         Arrange for "make check-root" to run the new root-only test.
567         * tests/Makefile.am (t7): New target, to run tests/ls/nameless-uid.
568         (all_t): Add t7.
569
570 2006-11-20  Jim Meyering  <jim@meyering.net>
571
572         Add a root-only test for today's lib/idcache.c fix.
573         * tests/ls/nameless-uid: New file.
574         * tests/ls/Makefile.am (TESTS): Add nameless-uid.
575         (TESTS_ENVIRONMENT): Add PERL to the list.
576
577 2006-11-19  Jim Meyering  <jim@meyering.net>
578
579         * tests/tail-2/assert-2: Mark as a very-expensive test, because I
580         find the 7-second sleep annoyingly long.  Besides, this test is
581         probably far too specific and timing sensitive ever to trigger again.
582         * tests/tail-2/assert: Likewise.
583
584         Post-release version change.
585         * NEWS: Add a line for 6.6-pre.
586         * configure.ac (AC_INIT): Bump to 6.6 and add "-pre" suffix.
587
588         Version 6.5.
589         * NEWS: Record release date.  Remove "-cvs" suffix.
590         * configure.ac (AC_INIT): Remove "-cvs" suffix from version string.
591
592 2006-11-18  Jim Meyering  <jim@meyering.net>
593
594         "ln --backup f f" produces a misleading diagnostic:
595         ln: creating hard link `f' => `f': No such file or directory
596         * src/ln.c (do_link): Give a better diagnostic in this unusual case.
597         (do_link): Rename local: s/lstat_ok/dest_lstat_ok/.
598         * tests/ln/Makefile.am (TESTS): Add hard-backup.
599         * tests/ln/hard-backup: New test for the above.
600         * NEWS: Mention this fix.
601
602 2006-11-16  Paul Eggert  <eggert@cs.ucla.edu>
603
604         * bootstrap.conf (gnulib_modules): Add sys_stat, since we use it
605         directly too.
606         * lib/.cvsignore, lib/.gitignore: Add root-dev-ino.c, root-dev-ino.h.
607         * m4/.cvsignore, m4/.gitignore: Add root-dev-ino.m4.
608         * src/ls.c (DIRED_FPUTS_LITERAL, PUSH_CURRENT_DIRED_POS):
609         Omit unnecessary parenthesization of args.
610         * src/od.c (EQUAL_BLOCKS): Likewise.
611         * src/system.h (STREQ, ASSIGN_STRDUPA): Likewise.
612
613 2006-11-16  Jim Meyering  <jim@meyering.net>
614
615         * tests/tail-2/append-only: If chattr +a fails, exit 77 (to tell
616         automake we're skipping this test), and give a diagnostic to tell
617         the user the same thing.  Reported by Mike Grayson.
618
619 2006-11-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
620
621         * man/Makefile.am (dist_man_MANS): Replace all optional manpages
622         with `$(MAN)', computed at configure time; also, list them ...
623         (optional_mans): ... in this new variable.
624         (max_aux, EXTRA_DIST): Ensure that we distribute all manpages.
625
626 2006-11-16  Jim Meyering  <jim@meyering.net>
627
628         Help valgrind see that there is no leak in dd.c.
629         * src/dd.c (dd_copy): Declare real_buf and real_obuf to be static,
630         so we need not free them at all.  This is easier than freeing
631         both buffers at each of the early "return"s.
632
633         * src/csplit.c (load_buffer): Plug an inconsequential leak.
634
635 2006-11-15  Jim Meyering  <jim@meyering.net>
636
637         * .x-po-check: Exclude gl/ files.  Otherwise, po-check would
638         complain that some of gl/lib/*.[ch] are not listed in POTFILES.in.
639
640 2006-11-14  Jim Meyering  <jim@meyering.net>
641
642         * gl/m4/root-dev-ino.m4: Now that this is part of a real "module",
643         remove the now-unnecessary use of AC_LIBSOURCES.
644
645         Adapt to new version of gnulib-tool.
646         * gl/modules/root-dev-ino: New file.
647         * lib/root-dev-ino.c, lib/root-dev-ino.h: Move these files ...
648         * gl/lib/root-dev-ino.c, gl/lib/root-dev-ino.h: ... to here.
649         * m4/root-dev-ino.m4: Move this file ...
650         * gl/m4/root-dev-ino.m4: ... to here.
651
652         * bootstrap.conf (gnulib_modules): Add root-dev-ino.
653
654 2006-11-13  Jim Meyering  <jim@meyering.net>
655
656         * src/sort.c (insertkey): Use xmemdup, rather than xmalloc+assignment.
657         From Paul Eggert.
658
659         Plug another technically-unimportant leak in sort.
660         * src/sort.c (main): Don't allocate memory for each new key here.
661         (insertkey): Allocate memory for each key here, instead.
662         (key_init): Rename from new_key.  Don't allocate.
663
664         * src/sort.c (main): Plug a tiny memory leak.
665         Move declaration of local "minus" down to be nearer point of use.
666
667 2006-11-12  Jim Meyering  <jim@meyering.net>
668
669         du would exit early, when encountering an inaccessible directory
670         Reported by Mike Frysinger, in
671         http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/8831
672         * tests/du/inacc-dest: New test, based on an example from Mike Frysinger.
673         * tests/chgrp/no-x: Remove the "fts_read failed: ..."
674         diagnostic from the expected output when using native fdopendir.
675         * tests/chmod/no-x: Likewise.
676         * tests/du/no-x: Likewise.
677         * NEWS: Mention this bug fix.
678         * tests/du/Makefile.am (TESTS): Add inacc-dest.
679
680         * Makefile.maint (sc_cast_of_x_alloc_return_value): Add an exclusion
681         for xalloc.h itself.
682
683         Avoid false-positive when testing via valgrind.
684         * tests/mv/atomic: Grep strace output for a more specific pattern
685         than just "unlink", since that got a false positive when testing
686         under valgrind: unlink("/tmp/valgrind_proc_9657_cmdline_A51E9991") = 0
687         * tests/mv/Makefile.am (TESTS_ENVIRONMENT): Define EGREP.
688
689 2006-10-28  Jim Meyering  <jim@meyering.net>
690
691         * Makefile.maint (patch-check): Make it easier to regenerate
692         the src/c99-to-c89.diff file.  E.g., I do this:
693         make patch-check REGEN_PATCH=1; ediff src/c99-to-c89.diff new-diff
694
695         * src/c99-to-c89.diff: Update to reflect new offsets in rm.c.
696
697 2006-10-26  Jim Meyering  <jim@meyering.net>
698
699         * src/system.h (ftello): Add a compile-time check for the highly
700         unlikely condition of off_t narrower than long int, rather than
701         handling it at run time.  Based on a patch from Paul Eggert.
702
703 2006-10-25  Paul Eggert  <eggert@cs.ucla.edu>
704
705         * tests/chmod/c-option: When double-quoting part of a word, prefer
706         to double-quote the whole word.  This is a bit easier to read (at
707         least for me), and in some cases it avoids a shell bug with Tru64
708         4.0 sh reported by Nelson H. F. Beebe.  For example, instead of
709         "$abs_srcdir"/../setgid-check we now write
710         "$abs_srcdir/../setgid-check".
711         * tests/cp/cp-parents: Likewise.
712         * tests/du/inaccessible-cwd: Likewise.
713         * tests/du/long-from-unreadable: Likewise.
714         * tests/install/basic-1: Likewise.
715         * tests/install/trap: Likewise.
716         * tests/misc/close-stdout: Likewise.
717         * tests/mkdir/concurrent-1: Likewise.
718         * tests/mkdir/p-1: Likewise.
719         * tests/mkdir/p-3: Likewise.
720         * tests/mkdir/parents: Likewise.
721         * tests/mkdir/perm: Likewise.
722         * tests/readlink/can-e: Likewise.
723         * tests/readlink/can-f: Likewise.
724         * tests/readlink/can-m: Likewise.
725         * tests/rm/inaccessible: Likewise.
726         * tests/rm/unread3: Likewise.
727         * tests/touch/no-create-missing: Likewise.
728
729         * lib/.cvsignore: Add uinttostr.c.
730
731 2006-10-25  Jim Meyering  <jim@meyering.net>
732
733         Portability to Tru64 V4.0.
734         * src/system.h (ftello) [!HAVE_FSEEKO && !defined ftello]:
735         Define inline replacement function.
736         This (along with a yesterday's fix for autoconf's
737         _AC_SYS_LARGEFILE_MACRO_VALUE macro) makes it so coreutils
738         now builds once more on Tru64 V4.0.  Reported by Nelson Beebe.
739
740 2006-10-25  Bruno Haible  <bruno@clisp.org>
741
742         * src/cat.c (infile): Add "const" to declaration.
743         * src/csplit.c (prefix): Likewise.
744         * src/printf.c (cfcc_msg): Likewise.
745         * src/tail.c (valid_file_spec): Likewise.
746         * src/cut.c (cut_file): Likewise, for a parameter.
747         * src/expr.c (str_value): Likewise.
748         * src/fold.c (fold_file): Likewise.
749         * src/pr.c (init_header): Likewise.
750         * src/dircolors.c (dc_parse_stream): Likewise, for a local.
751         * src/tr.c (make_printable_str): Likewise.
752         * src/nl.c (body_type, header_type, footer_type, current_type):
753         (separator_str, build_type_arg, nl_file): Likewise, for many.
754         * src/paste.c (main): Don't assign a read-only string to 'optarg'.
755         * src/tac.c (separator, tac_seekable, copy_to_temp): Likewise.
756
757 2006-10-25  Jim Meyering  <jim@meyering.net>
758
759         * tests/sample-test: Update copyright year list to include only
760         the current year, since this is what I'll want in any new test.
761
762 2006-10-24  Jim Meyering  <jim@meyering.net>
763
764         * src/c99-to-c89.diff: Update to reflect new offsets.
765
766         * NEWS: new feature: rm accepts new option: --one-file-system
767         Suggested by Steve McIntyre in <http://bugs.debian.org/392925>.
768         * src/remove.h (struct rm_options) [one_file_system]: New member.
769         * src/rm.c (rm_option_init): Initialize it.
770         (usage): Document the option.
771         * src/mv.c (rm_option_init): Likewise.
772         * src/remove.c (remove_dir): With --one-file-system and --recursive,
773         for each directory command line argument, do not affect a file system
774         different from that of the starting directory.  And give a diagnostic.
775         * src/rm.c (ONE_FILE_SYSTEM): New enum.
776         (main): Handle new option.
777         * tests/rm/one-file-system: Test the above.
778         * tests/rm/Makefile.am (TESTS): Add one-file-system.
779         * tests/Makefile.am (check-root): Add the rm/one-file-system
780         test to the list.
781         (EXTRA_DIST): Add other-fs-tmpdir.
782
783         * tests/mv/setup: Removed.  Renamed to...
784         * tests/other-fs-tmpdir: ...this new file.
785         * tests/mv/Makefile.am (EXTRA_DIST): Remove setup.
786         * tests/mv/acl: Reflect renaming: use ../other-fs-tmpdir.
787         * tests/mv/backup-is-src: Likewise.
788         * tests/mv/hard-link-1: Likewise.
789         * tests/mv/leak-fd: Likewise.
790         * tests/mv/mv-special-1: Likewise.
791         * tests/mv/part-fail: Likewise.
792         * tests/mv/part-hardlink: Likewise.
793         * tests/mv/part-rename: Likewise.
794         * tests/mv/part-symlink: Likewise.
795         * tests/mv/partition-perm: Likewise.
796         * tests/mv/to-symlink: Likewise.
797         * tests/mv/into-self-2: Likewise.
798
799         Don't let a failure in one test stop "make -k" from running the others.
800         * tests/Makefile.am (t1 t2 t3 t4 t5): New targets.
801         (check-root): Depend on them, rather than executing the five
802         commands in a single rule.  Reported by Greg Schafer.
803
804 2006-10-23  Bob Proulx  <bob@proulx.com>  (tiny change)
805
806         * Makefile.maint (alpha beta major): Use a better log message for
807         the automatic commit of .prev-version.
808
809 2006-10-23  Jim Meyering  <jim@meyering.net>
810
811         * tests/misc/pwd-long: Undo last change, since it made Perl invoke
812         pwd via a shell.  Instead, ensure that the absolute name of the
813         pwd binary consists solely of reasonable characters.
814         Whoops.  Don't exec the perl script.  Otherwise, the sh-trap-based
815         clean-up code isn't run.
816
817         * NEWS: Add a line for 6.5-cvs.
818         * configure.ac (AC_INIT): Bump to 6.5 and add "-cvs" suffix.
819
820 2006-10-22  Jim Meyering  <jim@meyering.net>
821
822         Version 6.4.
823
824         * NEWS: Record the 6.4 release date.
825         * configure.ac (AC_INIT): Remove "-cvs" suffix from version string.
826
827         * Makefile.maint: Complete the adaptation to function with a working
828         directory that is using git (rather than cvs) for version control.
829
830 2006-10-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
831
832         * tests/chmod/c-option: Double-quote instances of `$abs_srcdir'.
833         * tests/cp/cp-parents: Likewise.
834         * tests/mkdir/parents: Likewise.
835         * tests/mkdir/perm: Likewise.
836
837         * tests/sample-test: Quote variables containing absolute build
838         tree paths.  In the cleanup trap, make sure `cd' succeeds before
839         `chmod'ing and `rm'ing the temporary files.
840         * tests/chgrp/basic: Likewise.
841         * tests/chgrp/deref: Likewise.
842         * tests/chgrp/no-x: Likewise.
843         * tests/chgrp/posix-H: Likewise.
844         * tests/chgrp/recurse: Likewise.
845         * tests/chmod/c-option: Likewise.
846         * tests/chmod/equal-x: Likewise.
847         * tests/chmod/equals: Likewise.
848         * tests/chmod/inaccessible: Likewise.
849         * tests/chmod/no-x: Likewise.
850         * tests/chmod/octal: Likewise.
851         * tests/chmod/setgid: Likewise.
852         * tests/chmod/umask-x: Likewise.
853         * tests/chmod/usage: Likewise.
854         * tests/chown/basic: Likewise.
855         * tests/chown/deref: Likewise.
856         * tests/chown/separator: Likewise.
857         * tests/cp/acl: Likewise.
858         * tests/cp/backup-1: Likewise.
859         * tests/cp/backup-dir: Likewise.
860         * tests/cp/backup-is-src: Likewise.
861         * tests/cp/cp-HL: Likewise.
862         * tests/cp/cp-deref: Likewise.
863         * tests/cp/cp-i: Likewise.
864         * tests/cp/cp-mv-backup: Likewise.
865         * tests/cp/cp-parents: Likewise.
866         * tests/cp/deref-slink: Likewise.
867         * tests/cp/dir-rm-dest: Likewise.
868         * tests/cp/dir-slash: Likewise.
869         * tests/cp/dir-vs-file: Likewise.
870         * tests/cp/fail-perm: Likewise.
871         * tests/cp/into-self: Likewise.
872         * tests/cp/link: Likewise.
873         * tests/cp/link-no-deref: Likewise.
874         * tests/cp/link-preserve: Likewise.
875         * tests/cp/no-deref-link1: Likewise.
876         * tests/cp/no-deref-link2: Likewise.
877         * tests/cp/no-deref-link3: Likewise.
878         * tests/cp/perm: Likewise.
879         * tests/cp/preserve-2: Likewise.
880         * tests/cp/r-vs-symlink: Likewise.
881         * tests/cp/same-file: Likewise.
882         * tests/cp/slink-2-slink: Likewise.
883         * tests/cp/sparse: Likewise.
884         * tests/cp/special-bits: Likewise.
885         * tests/cp/src-base-dot: Likewise.
886         * tests/cp/symlink-slash: Likewise.
887         * tests/dd/not-rewound: Likewise.
888         * tests/dd/skip-seek2: Likewise.
889         * tests/dd/unblock-sync: Likewise.
890         * tests/du/2g: Likewise.
891         * tests/du/8gb: Likewise.
892         * tests/du/basic: Likewise.
893         * tests/du/deref: Likewise.
894         * tests/du/deref-args: Likewise.
895         * tests/du/exclude: Likewise.
896         * tests/du/fd-leak: Likewise.
897         * tests/du/hard-link: Likewise.
898         * tests/du/inaccessible-cwd: Likewise.
899         * tests/du/long-from-unreadable: Likewise.
900         * tests/du/long-sloop: Likewise.
901         * tests/du/no-deref: Likewise.
902         * tests/du/no-x: Likewise.
903         * tests/du/restore-wd: Likewise.
904         * tests/du/slash: Likewise.
905         * tests/du/slink: Likewise.
906         * tests/du/trailing-slash: Likewise.
907         * tests/du/two-args: Likewise.
908         * tests/fmt/long-line: Likewise.
909         * tests/install/basic-1: Likewise.
910         * tests/install/create-leading: Likewise.
911         * tests/install/d-slashdot: Likewise.
912         * tests/install/trap: Likewise.
913         * tests/ln/misc: Likewise.
914         * tests/ln/target-1: Likewise.
915         * tests/ls/color-dtype-dir: Likewise.
916         * tests/ls/dangle: Likewise.
917         * tests/ls/dired: Likewise.
918         * tests/ls/file-type: Likewise.
919         * tests/ls/follow-slink: Likewise.
920         * tests/ls/infloop: Likewise.
921         * tests/ls/inode: Likewise.
922         * tests/ls/m-option: Likewise.
923         * tests/ls/no-arg: Likewise.
924         * tests/ls/recursive: Likewise.
925         * tests/ls/rt-1: Likewise.
926         * tests/ls/stat-dtype: Likewise.
927         * tests/ls/stat-failed: Likewise.
928         * tests/ls/stat-vs-dirent: Likewise.
929         * tests/misc/cat-proc: Likewise.
930         * tests/misc/close-stdout: Likewise.
931         * tests/misc/csplit: Likewise.
932         * tests/misc/date-sec: Likewise.
933         * tests/misc/false-status: Likewise.
934         * tests/misc/head-c: Likewise.
935         * tests/misc/head-pos: Likewise.
936         * tests/misc/mknod: Likewise.
937         * tests/misc/nl: Likewise.
938         * tests/misc/nohup: Likewise.
939         * tests/misc/pathchk1: Likewise.
940         * tests/misc/printf: Likewise.
941         * tests/misc/printf-hex: Likewise.
942         * tests/misc/pwd-long: Likewise.
943         * tests/misc/shuf: Likewise.
944         * tests/misc/sort-rand: Likewise.
945         * tests/misc/split-a: Likewise.
946         * tests/misc/split-fail: Likewise.
947         * tests/misc/split-l: Likewise.
948         * tests/misc/stat-fmt: Likewise.
949         * tests/misc/tac-continue: Likewise.
950         * tests/misc/wc-files0: Likewise.
951         * tests/mkdir/concurrent-1: Likewise.
952         * tests/mkdir/p-1: Likewise.
953         * tests/mkdir/p-2: Likewise.
954         * tests/mkdir/p-3: Likewise.
955         * tests/mkdir/p-slashdot: Likewise.
956         * tests/mkdir/p-thru-slink: Likewise.
957         * tests/mkdir/p-v: Likewise.
958         * tests/mkdir/parents: Likewise.
959         * tests/mkdir/perm: Likewise.
960         * tests/mkdir/t-slash: Likewise.
961         * tests/mv/acl: Likewise.
962         * tests/mv/atomic: Likewise.
963         * tests/mv/backup-dir: Likewise.
964         * tests/mv/childproof: Likewise.
965         * tests/mv/diag: Likewise.
966         * tests/mv/dir-file: Likewise.
967         * tests/mv/dir2dir: Likewise.
968         * tests/mv/dup-source: Likewise.
969         * tests/mv/hard-2: Likewise.
970         * tests/mv/hard-3: Likewise.
971         * tests/mv/hard-4: Likewise.
972         * tests/mv/hard-link-1: Likewise.
973         * tests/mv/hard-verbose: Likewise.
974         * tests/mv/i-2: Likewise.
975         * tests/mv/i-3: Likewise.
976         * tests/mv/i-4: Likewise.
977         * tests/mv/i-5: Likewise.
978         * tests/mv/i-link-no: Likewise.
979         * tests/mv/into-self-4: Likewise.
980         * tests/mv/leak-fd: Likewise.
981         * tests/mv/mv-special-1: Likewise.
982         * tests/mv/no-target-dir: Likewise.
983         * tests/mv/part-fail: Likewise.
984         * tests/mv/part-hardlink: Likewise.
985         * tests/mv/part-rename: Likewise.
986         * tests/mv/part-symlink: Likewise.
987         * tests/mv/partition-perm: Likewise.
988         * tests/mv/perm-1: Likewise.
989         * tests/mv/reply-no: Likewise.
990         * tests/mv/trailing-slash: Likewise.
991         * tests/mv/update: Likewise.
992         * tests/od/od-N: Likewise.
993         * tests/od/x8: Likewise.
994         * tests/readlink/can-e: Likewise.
995         * tests/readlink/can-f: Likewise.
996         * tests/readlink/can-m: Likewise.
997         * tests/readlink/rl-1: Likewise.
998         * tests/rm/cycle: Likewise.
999         * tests/rm/dangling-symlink: Likewise.
1000         * tests/rm/deep-1: Likewise.
1001         * tests/rm/dir-no-w: Likewise.
1002         * tests/rm/dir-nonrecur: Likewise.
1003         * tests/rm/dot-rel: Likewise.
1004         * tests/rm/empty-inacc: Likewise.
1005         * tests/rm/f-1: Likewise.
1006         * tests/rm/fail-2eperm: Likewise.
1007         * tests/rm/hash: Likewise.
1008         * tests/rm/i-1: Likewise.
1009         * tests/rm/i-no-r: Likewise.
1010         * tests/rm/ignorable: Likewise.
1011         * tests/rm/inaccessible: Likewise.
1012         * tests/rm/interactive-always: Likewise.
1013         * tests/rm/interactive-once: Likewise.
1014         * tests/rm/ir-1: Likewise.
1015         * tests/rm/isatty: Likewise.
1016         * tests/rm/no-give-up: Likewise.
1017         * tests/rm/r-1: Likewise.
1018         * tests/rm/r-2: Likewise.
1019         * tests/rm/r-3: Likewise.
1020         * tests/rm/r-4: Likewise.
1021         * tests/rm/readdir-bug: Likewise.
1022         * tests/rm/rm1: Likewise.
1023         * tests/rm/rm2: Likewise.
1024         * tests/rm/rm3: Likewise.
1025         * tests/rm/rm4: Likewise.
1026         * tests/rm/rm5: Likewise.
1027         * tests/rm/sunos-1: Likewise.
1028         * tests/rm/unread2: Likewise.
1029         * tests/rm/unread3: Likewise.
1030         * tests/rmdir/fail-perm: Likewise.
1031         * tests/rmdir/t-slash: Likewise.
1032         * tests/shred/exact: Likewise.
1033         * tests/shred/remove: Likewise.
1034         * tests/sum/sysv: Likewise.
1035         * tests/tail-2/append-only: Likewise.
1036         * tests/tail-2/assert: Likewise.
1037         * tests/tail-2/assert-2: Likewise.
1038         * tests/tail-2/big-4gb: Likewise.
1039         * tests/tail-2/fflush: Likewise.
1040         * tests/tail-2/infloop-1: Likewise.
1041         * tests/tail-2/proc-ksyms: Likewise.
1042         * tests/tail-2/start-middle: Likewise.
1043         * tests/tail-2/tail-n0f: Likewise.
1044         * tests/tee/basic: Likewise.
1045         * tests/tee/dash: Likewise.
1046         * tests/touch/fail-diag: Likewise.
1047         * tests/touch/no-create-missing: Likewise.
1048         * tests/touch/not-owner: Likewise.
1049         * tests/touch/obsolescent: Likewise.
1050         * tests/touch/read-only: Likewise.
1051         * tests/touch/relative: Likewise.
1052
1053 2006-10-21  Jim Meyering  <jim@meyering.net>
1054
1055         * NEWS: (cp --backup fix): Fix a typo.
1056
1057         * .gitignore: Remove some references to files in subdirectories.
1058         * build-aux/.gitignore, doc/.gitignore, lib/.gitignore: New files.
1059         * m4/.gitignore, po/.gitignore, src/.gitignore: Likewise.
1060
1061         * src/copy.c (copy_internal): Add a comment saying why we prefer
1062         mknod over mkfifo.
1063
1064         Enable an fts optimization (call lstat only for directories,
1065         on some file system types) also with the --preserve-root option
1066         of chown or chgrp.
1067         * src/chown-core.c (change_file_owner): Compare fts_statp-based
1068         dev/ino against root dev/ino only for directories.
1069         (chown_files): Don't let the root_dev_ino setting influence whether
1070         we use FTS_NOSTAT: fts always sets *fts_statp for a directory.
1071
1072 2006-10-20  Jim Meyering  <jim@meyering.net>
1073
1074         * src/od.c (usage): Change description of default to use "-w16",
1075         not the now-invalid "-w 16" syntax.  From Dan Jacobson.
1076
1077 2006-10-19  Jim Meyering  <jim@meyering.net>
1078
1079         * bootstrap: Add names to each .gitignore file (if it exists)
1080         as well as to .cvsignore.
1081
1082         * Makefile.maint (po-check): This rule didn't detect the new use
1083         of "gettext" (as opposed to the use of "_" everywhere else) in
1084         lib/xstrtol.h.  Adjust the grep regexp so that now it does.
1085
1086 2006-10-18  Paul Eggert  <eggert@cs.ucla.edu>
1087
1088         * src/copy.c (copy_reg): Rewrite slightly to avoid duplicate code
1089         when opening dst_name.
1090         (copy_reg, copy_internal): Use (SYSCALL != 0) rather than plain
1091         (SYSCALL) to test for failure in a system call.
1092
1093         * src/copy.c (copy_internal): Use mknod rather than mkfifo to copy
1094         a fifo.  This preserves the special mode bits on Solaris 10, which
1095         is compatible with what Solaris 10 cp -R does.
1096
1097         * src/copy.c (copy_internal): Remove redundant and confusing local
1098         variable src_type.
1099
1100         * src/copy.c (copy_internal): Don't pass mkdir a mode greater than
1101         7777.  This matches historical 'cp' behavior and avoids some
1102         (though not all) implementation-defined behavior of mkdir.
1103         * src/cp.c (make_dir_parents_private): Likewise.
1104         * src/copy.c (copy_internal): Don't pass 'open' a mode greater
1105         than 777.  This is required by POSIX.  It doesn't make any difference
1106         in actual behavior on any host that I know of.
1107
1108 2006-10-17  Jim Meyering  <jim@meyering.net>
1109
1110         * src/dd.c (usage): Use two spaces (not one) to separate the
1111         "fdatasync" option string from its description, so help2man formats
1112         the derived man page properly.  Reported by Samuel Thibault
1113         in <http://bugs.debian.org/393649>.
1114
1115 2006-10-16  Jim Meyering  <jim@meyering.net>
1116
1117         * .x-sc_trailing_blank: Remove names of files that are no longer
1118         version-controlled.
1119
1120 2006-10-16  Paul Eggert  <eggert@cs.ucla.edu>
1121
1122         * src/groups.sh (version): Reword message to match the other programs.
1123         Problem reported by Eric Blake.
1124
1125 2006-10-14  Jim Meyering  <jim@meyering.net>
1126
1127         * Makefile.maint (headers_with_interesting_macro_defs): Define.
1128         (.re-defmac, sc_always_defined_macros): New rules.
1129
1130         * src/system.h (EXIT_FAILURE, EXIT_SUCCESS): Remove definitions.
1131         Instead, include "exit.h".  This hereby retires the work-around for
1132         "Sony NEWS-OS Release 4.0C"'s bug due to "#define EXIT_FAILURE 0".
1133
1134         * src/cksum.c (uint_fast32_t): Don't define.
1135         Instead, include <stdint.h>.
1136
1137         * src/pinky.c (S_IWGRP): Don't define.
1138         It's already defined by "stat-macros.h" (included via system.h).
1139
1140         * Makefile.cfg: Remove cruft that's now handled via bootstrap.
1141         * Makefile.maint: Likewise, remove these targets/rules/variables:
1142         (local_updates, update, cvs-update, wget_files, get-targets): Remove.
1143         (cvs_files, wget-update, automake_repo): Likewise.
1144         Move the comment about cvsu to build-aux/vc-list-files,
1145         where cvsu is actually used.
1146
1147         * Makefile.maint (cvs-update): Use $(CVS), not "cvs".
1148
1149         Work also when the working directory (with e.g. coreutils sources)
1150         is version controlled with git, rather than CVS.
1151         * bootstrap (CVS_only_file): Test for the existence of README-cvs,
1152         rather than CVS.
1153         In messages and comments, say e.g., "checked-out sources",
1154         rather than "CVS sources".
1155         (version_controlled_file): New function.  Work for git as well as
1156         for CVS.  Don't use grep's -q option.
1157         (slurp): Call it here, in place of CVS-specific code.
1158
1159         * NEWS: cp -r --backup dir1 dir2, would rename an existing dir1/dir2
1160         to dir1/dir2~.
1161         * src/copy.c (copy_internal): Although we do create a backup of each
1162         destination directory when in move mode, don't do that when copying.
1163         Reported by Peter Breitenlohner, in
1164         <http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/8616>.
1165         * tests/cp/backup-dir: New file.  Test for the above.
1166         * tests/cp/Makefile.am (TESTS): Add backup-dir.
1167
1168 2006-10-13  Jim Meyering  <jim@meyering.net>
1169
1170         More chown/chgrp dereferencing-related fixes.
1171         * src/chown-core.c (change_file_owner): Don't use fts_statp if
1172         we're dereferencing symlinks.
1173         Reverse conjuncts, so that we use dereference file_stats
1174         (aka ent->fts_statp) only *after* we've confirmed that
1175         chopt->affect_symlink_referent is true.  Otherwise, we might
1176         use ent->fts_statp uninitialized.
1177         Don't turn on FTS_NOSTAT when dereferencing symlinks.
1178         * tests/chown/deref: Update the expected diagnostic, now that
1179         this test case (trying to use "chown --dereference ..." on a
1180         dangling symlink) takes a different code path.
1181
1182 2006-10-13  Paul Eggert  <eggert@cs.ucla.edu>
1183
1184         Sync from Bison, as follows:
1185
1186         2006-10-01  Paul Eggert  <eggert@cs.ucla.edu>
1187
1188         Fix problems with translating English-language diagnostics.
1189         * bootstrap: Fix bug introduced in recent bootstrap changes, with
1190         respect to bison-runtime pot generation.  The YY_ stuff
1191         wasn't being captured.
1192
1193 2006-10-13  Jim Meyering  <jim@meyering.net>
1194
1195         * src/chown-core.c (change_file_owner): Use fstatat, not stat,
1196         now that we're using fts_open with FTS_CWDFD.
1197         * tests/chgrp/posix-H: Add --preserve-root to an invocation of
1198         chgrp, to exercise the above fix.
1199         * NEWS: Mention the above.
1200
1201         * src/du-tests: Clean up a little, though it's still not portable.
1202
1203         * .vg-suppressions: Add 3 more for debian unstable.
1204
1205         * tests/ls/Test.pm: Remove long-unused file.
1206         * Makefile.am (EXTRA_DIST): Add bootstrap.conf.
1207         Suggestions from Bruno Haible.
1208
1209 2006-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1210
1211         * Makefile.am (THANKS-to-translators): Add missing $(srcdir).
1212         (MAINTAINERCLEANFILES): Add .kludge-stamp.
1213         * man/Makefile.am (MAINTAINERCLEANFILES): Typo $(dist_man_MANS)
1214         instead of $(man_MANS).
1215
1216 2006-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1217
1218         * configure.ac: Avoid compiler warnings about default return
1219         type in function definitions and unused variables in tests.
1220         * src/who.c (print_user) [HAVE_UT_HOST]: hostlen is only needed
1221         if this is #defined.
1222
1223 2006-10-12  Jim Meyering  <jim@meyering.net>
1224
1225         * configure.ac: Reflect s/gl_MACROS/coreutils_MACROS/ renaming.
1226         Call gl_INIT directly, rather than through the above.
1227
1228 2006-10-11  Paul Eggert  <eggert@cs.ucla.edu>
1229
1230         * bootstrap (symlink_to_gnulib): Fix bug: the dot_dots shell
1231         variable was sometimes used without being initialized.  This
1232         messed up the installation of the INSTALL file in some cases.
1233
1234 2006-10-11  Jim Meyering  <jim@meyering.net>
1235
1236         * src/ls.c (usage): Correct description of -s, --size.
1237         It works even without -l.  Suggestion from Karl Berry.
1238
1239 2006-10-10  Paul Eggert  <eggert@cs.ucla.edu>
1240
1241         * src/ls.c (quote_name): Use initializer rather than memset to
1242         initialize an object to zero.  This is easier to read and is less
1243         likely to introduce a runtime error due to a mixup.  It causes
1244         gcc -W to issue a warning, but you can work around this by
1245         appending -Wno-missing-field-initializers.
1246         * src/pathchk.c (portable_chars_only): Likewise.
1247         * src/shred.c (main): Likewise.
1248         * src/stty.c (main): Likewise.
1249         * src/tr.c (card_of_complement): Likewise.
1250         * src/wc.c (wc): Likewise.
1251
1252 2006-10-09  Paul Eggert  <eggert@cs.ucla.edu>
1253
1254         * src/sort.c (usage): Mention again that sort fields are origin 1.
1255
1256         * NEWS: Fix typo: iso-8602 -> iso-8601.  Problem reported by
1257         Bob Proulx.
1258
1259         * bootstrap (usage, main program, symlink_to_gnulib): Add option
1260         --copy.  Inspired by a suggestion from Bruno Haible.
1261
1262 2006-10-09  Jim Meyering  <jim@meyering.net>
1263
1264         Avoid a compiler warning.
1265         * src/pathchk.c (portable_chars_only): Initialize variable of type
1266         mbstate_t via memset, rather than via '{0}'.  Patch from Bruno Haible.
1267
1268 2006-10-06  Paul Eggert  <eggert@cs.ucla.edu>
1269
1270         Fix bug reported today by Mike Frysinger: mkdir -pv is logging the
1271         wrong file name in some cases.  Lars Wendler reported a bug in
1272         my original fix.
1273         * src/install.c (make_ancestor): New arg COMPONENT.
1274         * src/mkdir.c (make_ancestor): Likewise.
1275         * tests/install/basic-1: Check for install -Dv bug.
1276         * tests/mkdir/Makefile.am (TESTS): Add p-v.
1277         * tests/mkdir/p-v: New file, to test this bug.
1278
1279 2006-10-05  Paul Eggert  <eggert@cs.ucla.edu>
1280
1281         * src/chgrp.c: Don't include lchown.h; no longer needed.
1282         * src/chown.c: Likewise.
1283
1284         * tests/ls/stat-dtype: Use a dynamic test to decide whether the
1285         current file system has useful d_type info.
1286
1287         * src/dd.c (flags): noatime and nofollow now depend on
1288         HAVE_WORKING_O_NOATIME and HAVE_WORKING_O_NOFOLLOW, too.
1289         (usage): Output info about noatime and nofollow only if
1290         they are known to work.
1291         * src/remove.c (AD_push): Inspect HAVE_WORKING_O_NOFOLLOW rather
1292         than O_NOFOLLOW, when testing whether it's possible to avoid a
1293         race condition reliably.
1294
1295 2006-10-05  Jim Meyering  <jim@meyering.net>
1296
1297         * src/c99-to-c89.diff: Update to reflect new offsets.
1298
1299         * tests/install/basic-1: Skip the latter part of this test if the
1300         just-built dd binary is not readable.  Otherwise, this test would fail
1301         when binaries were created as root.  Reported by Bauke Jan Douma in
1302         <http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/8433>.
1303
1304 2006-10-03  Paul Eggert  <eggert@cs.ucla.edu>
1305
1306         * src/system.h (ST_BLKSIZE): Ceiling at SIZE_MAX / 8 + 1, not at 4
1307         MiB, since XFS hosts can legitimately have large values of
1308         st_blksize.  Problem reported by Tony Ernst in
1309         <http://savannah.gnu.org/bugs/?17903>.
1310
1311 2006-10-04  Jim Meyering  <jim@meyering.net>
1312
1313         * src/remove.c (nonexistent_file_errno): Remove ENAMETOOLONG.
1314         Paul Eggert pointed out that the specified file may exist,
1315         in spite of such an errno value.
1316         * tests/rm/Makefile.am (TESTS): Remove ignore-name-too-long.
1317         * tests/rm/ignore-name-too-long: Remove file.
1318         * NEWS: Update here, too.
1319
1320 2006-10-03  Jim Meyering  <jim@meyering.net>
1321
1322         * tests/rm/fail-eperm: Report failure also if rm is terminated by
1323         a signal.
1324
1325         * src/c99-to-c89.diff: Convert two c99'isms -- one in remove.c
1326         and one in shred.c -- that were added before coreutils-6.3.
1327         Reported by Michael Deutschmann.
1328
1329         * src/c99-to-c89.diff: Update to reflect new offsets.
1330
1331         * src/remove.c (remove_entry): With -f, exit successfully in spite
1332         of a missing file under some very unusual conditions (with errno
1333         being any of ENOENT, ENOTDIR, ENAMETOOLONG).
1334
1335         With --force (-f), rm no longer fails for ENOTDIR.
1336         * src/remove.c (ignorable_missing): New function.
1337         Use it everywhere, rather than open-coding the test.
1338         Andreas Schwab reported the ENOTDIR problem.
1339         (ignorable_missing): Similarly, don't fail for ENAMETOOLONG.
1340
1341         * NEWS: Mention the bug fix.
1342         * tests/rm/ignorable: New file.  Test for the ENOTDIR case.
1343         * tests/rm/ignore-name-too-long: New file. Test for ENAMETOOLONG.
1344         * tests/rm/Makefile.am (TESTS): Add the new file names.
1345
1346         * bootstrap: Undo last change to this file, since now gnulib-tool
1347         sticks with the automake default in generating dependencies.
1348
1349         * NEWS: Add a line for 6.4-cvs.
1350         * configure.ac (AC_INIT): Bump to 6.4 and add "-cvs" suffix.
1351
1352 2006-09-30  Jim Meyering  <jim@meyering.net>
1353
1354         Version 6.3.
1355         * NEWS: Record the 6.3 release date.
1356         * configure.ac (AC_INIT): Remove "-cvs" suffix from version string.
1357
1358         * NEWS: Mention Paul's Solaris 8 vs. 10 work-around.
1359
1360         * src/c99-to-c89.diff: Update offsets.
1361
1362 2006-09-29  Paul Eggert  <eggert@cs.ucla.edu>
1363
1364         * tests/rm/readdir-bug: Don't use $(...) in a shell script,
1365         as it doesn't work with Solaris /bin/sh.
1366
1367 2006-09-29  Jim Meyering  <jim@meyering.net>
1368
1369         * NEWS: Mention Paul's fix (to gnulib's canon-host.c) for
1370         the pinky segfault.
1371
1372         * tests/seq/basic [neg-2, eq-wid-2]: Comment out tests that
1373         use .1 as the increment.  Actual output varies too much.
1374         [eq-wid-3]: New, commented out test.
1375
1376         * src/shuf.c (read_input): Fix an off-by-one error that
1377         would cause an infloop for piped input of 8KB or more.
1378         * NEWS: Mention the fix.
1379         * tests/misc/shuf: Test for the above fix.
1380
1381         Since any system may be affected by the Darwin readdir bug,
1382         perform the extra rewinddir unconditionally.  The performance
1383         impact of rewinding a directory is negligible.
1384         * src/remove.c (NEED_REWIND): Define to use
1385         CONSECUTIVE_READDIR_UNLINK_THRESHOLD unconditionally.
1386
1387         * tests/seq/basic: Use .11 as the upper bound, in case the ".1"
1388         increment translates to a slightly larger value.
1389         This corrects a test failure on FreeBSD 6.1 reported by Nelson Beebe.
1390         The final expected value wasn't being printed.
1391
1392         Work around a readdir bug in Darwin 7.9.0 (MacOS X 10.3.9) on HFS+
1393         and NFS, whereby rm would not remove all files in a directory.
1394         * src/remove.c (CONSECUTIVE_READDIR_UNLINK_THRESHOLD): Reduce to 10.
1395         (NEED_REWIND): New macro, so that we incur the cost of the work-around
1396         rewinddir only on afflicted systems.
1397         * NEWS: Clarify and correct.
1398         * tests/rm/readdir-bug: New file.  Test for the above fix.
1399         * tests/rm/Makefile.am (TESTS): Add it.
1400         Prompted by testing and analysis from Bruno Haible:
1401         http://lists.gnu.org/archive/html/bug-coreutils/2006-09/msg00326.html
1402
1403 2006-09-28  Paul Eggert  <eggert@cs.ucla.edu>
1404
1405         * tests/rm/fail-eperm: Unset BASH_ENV, CDPATH, and ENV, too;
1406         suggested for Debian stable, which uses Perl 5.8.4.
1407
1408 2006-09-28  Jim Meyering  <jim@meyering.net>
1409
1410         Automatically generated dependencies are important even
1411         when all of the sources in a directory come from gnulib.
1412         * bootstrap (gnulib_tool): Remove the "no-dependencies" automake
1413         option that gnulib-tool adds to what becomes our lib/gnulib.mk.
1414
1415         * tests/rm/fail-eperm: Enable Perl's (-T) taint checking.
1416         Ensure that IFS is set properly and unset PATH.
1417         Sanitize inputs.
1418         Work properly even when the name of the selected file starts with "-".
1419         Invoke rm via "../../src/rm", and adjust expected output.
1420         Prompted by a patch from Tim Waugh.
1421
1422         * README-cvs: Add Bison to the list of required packages.
1423
1424 2006-09-26  Jim Meyering  <jim@meyering.net>
1425
1426         * src/c99-to-c89.diff: Update offsets.
1427
1428         * NEWS: rm works around a bug in Darwin 8.6.1 w/NFS that kept
1429         it from removing a directory containing 188 or more entries.
1430         * src/remove.c (CONSECUTIVE_READDIR_UNLINK_THRESHOLD): Decrease by
1431         20, go work around the buggy readdir on Darwin 8.6.1 with NFS.
1432         Reported by Matthew Woehlke.
1433
1434 2006-09-26  Paul Eggert  <eggert@cs.ucla.edu>
1435
1436         * NEWS: "groups user" no longer outputs "user :"; you need at least
1437         two users.  "groups" now processes options like --help more compatibly.
1438         * src/groups.sh: Implement the option-processing change.
1439         Handle user and group names with special characters more robustly.
1440         Report write errors instead of exiting silently with status 1.
1441
1442 2006-09-26  Jim Meyering  <jim@meyering.net>
1443
1444         * README: Warn not to run autoreconf manually.  Use bootstrap instead.
1445
1446         * src/groups.sh: When invoked with 0 or 1 argument, just exec "id".
1447         Rewrite to avoid using temporary, $status.
1448
1449         * NEWS: Mention the bug fix.
1450         * src/groups.sh: Don't hide a write failure.
1451         Reported by Iain Calder <ic56@rogers.com>.
1452
1453 2006-09-25  Jim Meyering  <jim@meyering.net>
1454
1455         * src/chown.c (usage): Clarify --dereference description.
1456         * src/chgrp.c (usage): Likewise.  Suggestion from Jamie McClelland.
1457
1458 2006-09-24  Jim Meyering  <jim@meyering.net>
1459
1460         * NEWS: Mention these fixes.
1461         * src/copy.c (copy_reg): With --verbose (-v), print
1462         "removed `file_name'" just after unlinking a file.
1463         (copy_internal): Likewise, in three more places.
1464         Marc Lehman reported that "touch x; ln x y; mv -v x y" was silent.
1465         * tests/mv/hard-verbose: New file.  Test for the above fix.
1466         * tests/mv/Makefile.am (TESTS): Add hard-verbose.
1467
1468         * tests/help-version (sync_args): Don't call sync, since it spins up
1469         disks that I've deliberately caused to spin down (but not unmounted).
1470
1471         * NEWS: Mention the improvement to sort.
1472
1473         * tests/tail-2/proc-ksyms: Require that /proc/ksyms be readable
1474         as well as existing.
1475
1476         * tests/ls/stat-dtype: Don't use tmpfs on linux-2.4 or older,
1477         since that predated addition of d_type support.
1478
1479 2006-09-23  Jim Meyering  <jim@meyering.net>
1480
1481         * gl/modules/getloadavg.diff: New file.  Work around the way the latest
1482         version of the getloadavg module interacts with our bootstrap script.
1483         * bootstrap (gnulib_tool_options): Add "--local-dir gl".
1484         * Makefile.am (EXTRA_DIST): Sort file names.
1485         Add bootstrap and gl/modules/getloadavg.diff
1486
1487 2006-09-20  Paul Eggert  <eggert@cs.ucla.edu>
1488
1489         * bootstrap: Add support for --force.
1490         (usage): New function.  Describe usage less tersely.
1491         (CVS_only_file): New var.
1492
1493         * NEWS: Document fix for cp -i and mv -i.
1494         * src/copy.c (copy_internal): With -i, prompt even if the source
1495         is a directory and the destination is not.  This is required by
1496         POSIX and gives the user a chance to bail out before failing.
1497         * tests/cp/Makefile.am (TESTS): Add cp-i.
1498         * tests/cp/cp-i: New file.
1499         * tests/mv/Makefile.am (TESTS): Add i-5.
1500         * tests/mv/i-5: New file.
1501
1502 2006-09-20  Jim Meyering  <jim@meyering.net>
1503
1504         * NEWS: Mention the chmod bug fix.
1505
1506         * tests/chmod/inaccessible: New test, specifically for this bug.
1507         Based on a test case from Paul Eggert.
1508         * tests/chmod/Makefile.am (TESTS): Add inaccessible.
1509
1510         Fix the 2006-09-18 bug differently.
1511         * src/chmod.c: (process_file): Upon FTS_NS for a top-level file,
1512         tell fts_read to stat the file again, in case it has become
1513         accessible since the initial fts_open call.
1514         * src/chown-core.c (change_file_owner): Likewise.
1515
1516         * src/chmod.c: Revert last change.  There is a better way.
1517         * src/chown-core.c: Likewise.
1518
1519 2006-09-19  Paul Eggert  <eggert@cs.ucla.edu>
1520
1521         * src/ln.c (target_directory_operand): Rewrite to avoid porting
1522         problem on Tandem reported by Matthew Woehlke in
1523         <https://savannah.gnu.org/bugs/?17172>.
1524
1525 2006-09-18  Paul Eggert  <eggert@cs.ucla.edu>
1526
1527         Fix bug where chmod, chown, and chgrp did not process operands
1528         left-to-right in some cases.
1529         * src/chmod.c (wd_errno): New var.
1530         (chmod_file): New function, with most of the contents of the
1531         old prcess_file function.
1532         (process_files): Use it.  This gives file names to fts one
1533         at a time, so that they are processed left-to-right as POSIX
1534         requires.
1535         * src/chown-core.c (wd_errno, chown_files): Likewise.
1536         (chown_file): New function.
1537         * tests/install/basic-1: Redo test so as to not workaround
1538         the chmod bug, thereby testing for it.
1539
1540         * src/shuf.c (main): Quote the entire range when reporting an
1541         invalid one, rather than just the part that contained the error.
1542
1543         * tests/stty/row-col-1: Rewrite to avoid temporary file that is
1544         sometimes left behind if the test is skipped or interrupted.
1545
1546         * bootstrap (symlink_to_gnulib): New function.
1547         (cp_mark_as_generated): Use it, to prefer symlinks-to-gnulib
1548         to copies-of-gnulib.
1549         (cp_mark_as_generated, slurp, gnulib_files):
1550         Avoid making a copy if it's the same as the old version.
1551         (gnulib_files): Add support for this variable (used by Bison).
1552
1553         * tests/ls/stat-vs-dirent: Fix quoting problem in diagnostic
1554         indicating flaw in kernel.  Reword to say that the flaw isn't
1555         serious for coreutils, since the flaw does affect ls -i.
1556
1557         * tests/chgrp/basic: Fix bug in test case exposed by building on
1558         Solaris 8 in a setgid directory.  The test case incorrectly
1559         assumed that 'symlink' would be in group $g1.
1560
1561 2006-09-18  Jim Meyering  <jim@meyering.net>
1562
1563         * NEWS: Add a line for 6.3-cvs.
1564         * configure.ac (AC_INIT): Bump to 6.3 and add "-cvs" suffix.
1565
1566         Version 6.2.
1567         * NEWS: Record the 6.2 release date.
1568         * configure.ac (AC_INIT): Remove "-cvs" suffix from version string.
1569
1570 2006-09-17  Jim Meyering  <jim@meyering.net>
1571
1572         * tests/chgrp/basic: On an OpenBSD system, rather than failing
1573         due to a known problem, merely warn about it.
1574         Rewrite to avoid testing output of chgrp --verbose and chgrp -c.
1575         Instead, use stat to test file system for desired results, directly.
1576         * tests/chgrp/Makefile.am (TESTS_ENVIRONMENT): Set host_triplet.
1577
1578         * tests/envvar-check: Add more variable names to the list of those
1579         that can affect these programs and tests: _POSIX2_VERSION, COLUMNS,
1580         QUOTING_STYLE, TABSIZE, TERM, TMPDIR.
1581
1582 2006-09-16  Paul Eggert  <eggert@cs.ucla.edu>
1583
1584         * NEWS: Document that mkdir -p and install -d now fork on occasion.
1585         * bootstrap.conf (gnulib_modules): Add savewd.
1586         * src/install.c: Include savewd.h.
1587         (process_dir): New function.
1588         (main, install_file_in_file_parents): Use it, along with the new
1589         savewd module, to avoid some race conditions.
1590         * src/mkdir.c: Include savewd.h.
1591         (struct mkdir_options): New members make_ancestor_function, mode,
1592         mode_bits.
1593         (make_ancestor): Return 1 if the resulting directory is not readable.
1594         (process_dir): New function.
1595         (main): Use it, along with new savewd module, to avoid some
1596         race conditions.  Fill in new slots of struct mkdir_options, so
1597         that callees get the values.
1598         * tests/install/basic-1: Test for coreutils 5.97 bug that was
1599         fixed in coreutils 6.0, and which should still be fixed with
1600         this change.
1601         * tests/mkdir/p-3: Likewise.
1602
1603 2006-09-15  Jim Meyering  <jim@meyering.net>
1604
1605         * bootstrap.conf (gnulib_modules): Add rename-dest-slash.
1606         The 2006-09-08 changes made it so "mv dir new-name/" would
1607         fail on NetBSD 1.6.  This makes it work once again.
1608
1609 2006-09-14  Jim Meyering  <jim@meyering.net>
1610
1611         * src/mv.c (main): Remove unnecessary (always-true) test for 2 <= n.
1612         Instead, since it's a little fragile, assert the condition.
1613         (target_directory_operand): Update comment to reflect latest change.
1614
1615 2006-09-12  Paul Eggert  <eggert@cs.ucla.edu>
1616
1617         * src/who.c (print_user): Rewrite to avoid warning from
1618         GCC 4.1.1 with -Wall.
1619
1620 2006-09-12  Jim Meyering  <jim@meyering.net>
1621
1622         * tests/mv/atomic: Check for specific strace output, rather than
1623         simply nonempty.  RHEL AS 4 would fail this test due to strace
1624         generating "[ Process PID=14434 runs in 32 bit mode. ]".
1625         Reported by Nelson Beebe.
1626
1627 2006-09-11  Jim Meyering  <jim@meyering.net>
1628
1629         * src/remove.c (remove_dir): Move new cache_stat_init call onto
1630         it's own line.
1631         (rm_1): Move declaration of "st" and new cache_stat_init call
1632         "down" to nearer where they're used.
1633         * src/c99-to-c89.diff: Add another set of curly braces.
1634
1635 2006-09-10  Paul Eggert  <eggert@cs.ucla.edu>
1636
1637         * src/expr.c (eval6): Fix buffer overrun, or bad performance, if
1638         substr's last operand is very large.  Performance problem reported
1639         by Sebastian Kreft.
1640
1641 2006-09-09  Jim Meyering  <jim@meyering.net>
1642
1643         * Makefile.maint (sc_prohibit_jm_in_m4): Don't hang when there
1644         are no .m4 files.
1645         (sc_require_config_h): Skip this test if there are no version-
1646         controlled .c files.
1647         (sc_prohibit_assert_without_use): Likewise.
1648
1649 2006-09-08  Jim Meyering  <jim@meyering.net>
1650
1651         * bootstrap: Export CVS_RSH separate from its assignment, to work
1652         even with Solaris 10's /bin/sh.  Suggestion from Mark D. Baushke.
1653
1654 2006-09-08  Paul Eggert  <eggert@cs.ucla.edu>
1655
1656         * NEWS: tail now ignores the -f option if POSIXLY_CORRECT is set,
1657         no file operand is given, and standard input is any FIFO.
1658         This is in response to Open Group XCU ERN 114.
1659         * src/tail.c (main): Likewise.
1660
1661 2006-09-08  Jim Meyering  <jim@meyering.net>
1662
1663         mv and "cp -r" no longer fail when invoked with two arguments
1664         where the first one names a directory and the second name ends in
1665         a slash and doesn't exist.  E.g., "mv dir B/", for nonexistent B,
1666         now succeeds, once more. This reverts part of the 2004-06-27
1667         change for 5.3.0.
1668         * NEWS: Say the above.
1669         * src/mv.c (target_directory_operand): Don't require (here)
1670         that the target operand "look like" a directory.  This change
1671         pushes the test down to the rename syscall level, where a
1672         "mv dir existing-non-dir/" will mistakenly succeed on older systems
1673         that ignore trailing slashes in the rename destination argument.
1674         * src/cp.c (target_directory_operand): Likewise, but for cp.
1675         * tests/mv/trailing-slash: Exercise the above fixes.
1676         * tests/cp/trailing-slash: New file.
1677         * tests/cp/Makefile.am (EXTRA_DIST): Add trailing-slash.
1678
1679         * bootstrap: Use the previously unused variable, $src,
1680         to avoid repeating "$GNULIB_SRCDIR/$file".
1681
1682         * bootstrap (cp_mark_as_generated): Don't use "local", to
1683         accommodate ancient "/bin/sh".  Suggested by Ralf Wildenhues.
1684         Rename now-global "$src" and "$dst" to have cp_ prefix.
1685         Safer, and avoids confusion.
1686
1687         * bootstrap (cp_mark_as_generated): New function.
1688         (slurp): Use it to prepend editor hints and a warning that
1689         the file we're copying is generated.
1690         Suggestion from Bruce Korb.
1691         (cp_mark_as_generated): Don't add C-style comments for .l or .y files.
1692         Fix last-minute typo.
1693
1694 2006-09-07  Jim Meyering  <jim@meyering.net>
1695
1696         * bootstrap: Revert last change.  There are less disruptive ways
1697         to mark these generated files as read-only.
1698
1699         * src/c99-to-c89.diff: Update to have proper offsets.
1700
1701 2006-09-06  Jim Meyering  <jim@meyering.net>
1702
1703         Ensure that some gnulib-tool-generated files are read-only.
1704         * bootstrap (slurp): Put the body of this function in a sub-shell,
1705         with "umask a-w" so that all new files are read-only.  Remove each
1706         file before we write to it, in case it's read-only.
1707         Make po/Makevars and runtime-po/Makevars read-only, too.
1708
1709 2006-09-05  Jim Meyering  <jim@meyering.net>
1710
1711         * tests/cp/acl: Skip this test when cp lacks ACL support.
1712         * tests/cp/Makefile.am (TESTS_ENVIRONMENT): Set $(CONFIG_HEADER).
1713
1714         * src/c99-to-c89.diff (remove.c): Adapt one hunk to match the new
1715         context from change of 2006-09-02.
1716
1717 2006-09-04  Jim Meyering  <jim@meyering.net>
1718
1719         * README-cvs: Fix typo in update command.
1720
1721 2006-09-03  Jim Meyering  <jim@meyering.net>
1722
1723         * NEWS: Tweak the wording in the new change description so that
1724         no one can think this change causes e.g., `rm -fr foo../' to fail.
1725
1726         * tests/rm/inaccessible: Adjust for movement of config.h to lib/.
1727         Use $CONFIG_HEADER, rather than hard-coding it.
1728         * tests/rm/Makefile.am (TESTS_ENVIRONMENT): Set $CONFIG_HEADER.
1729
1730 2006-09-02  Paul Eggert  <eggert@cs.ucla.edu>
1731
1732         * NEWS: rm now rejects attempts to remove /, ./, and ../.
1733         * src/basename.c: Don't include dirname.h, since system.h does it now.
1734         * src/chmod.c: Likewise.
1735         * src/copy.c: Likewise.
1736         * src/cp.c: Likewise.
1737         * src/df.c: Likewise.
1738         * src/dircolors.c: Likewise.
1739         * src/dirname.c: Likewise.
1740         * src/du.c: Likewise.
1741         * src/install.c: Likewise.
1742         * src/ln.c: Likewise.
1743         * src/ls.c: Likewise.
1744         * src/mkdir.c: Likewise.
1745         * src/mv.c: Likewise.
1746         * src/remove.c: Likewise.
1747         * src/rm.c: Likewise.
1748         * src/rmdir.c: Likewise.
1749         * src/shred.c: Likewise.
1750         * src/split.c: Likewise.
1751         * src/su.c: Likewise.
1752         * src/system.h: Include "dirname.h", since dot_or_dotdot needs it
1753         now.
1754         (dot_or_dotdot): Succeed even if "." or ".." is followed by a
1755         slash.
1756         * src/rm.c (usage, main): --preserve-root is now the default.
1757         * src/remove.h: Fix comment.
1758         * src/remove.c (cache_fstatat, cache_stat_init): New functions.
1759         (cache_statted, cache_stat_ok): New functions.
1760         (write_protected_non_symlink): Remove struct stat ** buf_p arg,
1761         which is no longer needed with the new functions.  All callers
1762         changed.
1763         (prompt, is_dir_lstat, remove_entry, remove_dir):
1764         New struct stat * arg.  All callers changed.
1765         (write_protected_non_symlink, prompt, is_dir_lstat, remove_entry):
1766         (remove_cwd_entries, remove_dir, rm_1):
1767         Use and maintain the file status cache.
1768         (prompt, remove_entry): Omit the first "directory" in the diagnostic
1769         "Cannot remove directory `foo': is a directory".  This causes "rm"
1770         to pass a test case that it would otherwise fail now that it
1771         "knows" more about its argument.  I think the diagnostic is better
1772         without the first "directory" anyway.
1773         (prompt): Remove the no-longer-needed IS_DIR arg; all callers changed.
1774         (rm_1): Reject attempts to remove /, ./, or ../.
1775         * tests/rm/Makefile.am (TESTS): Add r-4.
1776         * tests/rm/r-4: New file.
1777
1778 2006-09-01  Paul Eggert  <eggert@cs.ucla.edu>
1779
1780         * src/stat.c: Include <stddef.h>
1781         (alignof): New macro.
1782         (HAVE_STRUCT_STATXFS_F_FSID___VAL, HAVE_STRUCT_STATXFS_F_FSID_VAL):
1783         Remove.
1784         (STRUCT_STATXFS_F_FSID_IS_INTEGER): New macro.
1785         (FSID_VAL): Remove.
1786         (print_statfs): If f_fsid isn't an integer, grab its words one
1787         at a time in little-endian order.  This is a bit easier to configure
1788         and should avoid a compilation failure on MacOS reported by Bruno
1789         Haible.
1790
1791 2006-08-29  Paul Eggert  <eggert@cs.ucla.edu>
1792
1793         * src/stat.c (HAVE_STRUCT_STATXFS_F_FSID_VAL, FSID_VAL): New macros, to
1794         work around a Mac OS X porting problem reported by Bruno Haible in
1795         <http://lists.gnu.org/archive/html/bug-coreutils/2006-08/msg00308.html>.
1796         (print_statfs): Use them.
1797
1798         * bootstrap.conf (gnulib_modules): Add isapipe.
1799         * src/tail.c: Include isapipe.h.
1800         (IS_PIPE_LIKE_FILE_TYPE): Remove.
1801         (IS_TAILABLE_FILE_TYPE): Just list both FIFOs and sockets as
1802         tailable, since this seems to be portable.
1803         (main): Use isapipe, to fix a bug on MacOS X reported by Bruno Haible in
1804         <http://lists.gnu.org/archive/html/bug-coreutils/2006-08/msg00304.html>.
1805
1806         * src/system.h (LOCALEDIR): Remove, since configmake.h now defines
1807         it for us.
1808
1809 2006-08-28  Paul Eggert  <eggert@cs.ucla.edu>
1810
1811         * src/copy.c (copy_internal): Don't test whether macros like
1812         S_ISLNK are defined, since they're always defined now.
1813         * src/cp.c (main): Likewise.
1814         * src/ln.c (main): Likewise.
1815         * src/ls.c (get_link_name, make_link_name): Likewise.
1816         * src/mknod.c (main): Likewise.
1817         * src/mkfifo.c (usage): Likewise.
1818         * src/who.c (S_IWGRP): Likewise.
1819
1820         Adjust to recent gnulib changes for the gnulib module.
1821         * bootstrap.conf (gnulib_modules): Add fcntl.
1822         * src/system.h (SEEK_SET, SEEK_CUR, SEEK_END): Remove.  Other code
1823         is already assuming these macros are defined.
1824         (O_DIRECT, O_DIRECTORY, O_DSYNC, O_NDELAY, O_NOATIME, O_NONBLOCK):
1825         (O_NOCTTY, O_NOFOLLOW, O_NOLINKS, O_RSYNC, O_SYNC, O_BINARY, O_TEXT):
1826         Remove; the fcntl module now handles these.
1827
1828         Adjust to recent gnulib changes for the inttypes module.
1829         * bootstrap.conf (gnulib_modules): Remove stdint; add inttypes.
1830         (excluded_files): Don't exclude m4/inttypes-h.m4 or m4/inttypes-pri.m4.
1831
1832         * src/system.h: Don't bother to include <stdint.h>, since we can
1833         now assume inttypes.h does the equivalent of including stdint.h.
1834
1835 2006-08-27  Jim Meyering  <jim@meyering.net>
1836
1837         * src/copy.c (copy_internal): Don't make a backup if the last
1838         component of the source name is "." or "..".
1839         Reported by Andreas Schwab in http://savannah.gnu.org/bugs/?17540.
1840         * NEWS: Mention this.
1841         * tests/cp/src-base-dot: New file.  Test for the above fix.
1842         * tests/cp/Makefile.am (TESTS): Add src-base-dot.
1843
1844         * src/system.h (DOT_OR_DOTDOT): Remove macro.  Rewrite as a...
1845         (dot_or_dotdot): ...new static inline function.
1846         * src/remove.c (rm_1): Reflect this renaming.
1847         * src/ls.c (basename_is_dot_or_dotdot): Likewise.
1848
1849         * src/copy.c (copy_internal): Add comments.
1850
1851 2006-08-26  Paul Eggert  <eggert@cs.ucla.edu>
1852
1853         * src/Makefile.am (AM_CPPFLAGS): Remove -I$(srcdir) and -I../lib,
1854         since Automake supplies them for us.  It always did -I$(srcdir),
1855         and with the recent change to AC_CONFIG_HEADERS in configure.ac it
1856         is now also doing -I../lib.
1857
1858         * bootstrap (get_translations): Skip this if WGET_COMMAND is empty.
1859         Fail if the first "echo" fails.  Suppress diagnostics from "ls po/*.po"
1860         since there might not be any .po files.
1861         (WGET_COMMAND): Set to empty if wget doesn't
1862         seem to be available.
1863
1864 2006-08-26  Jim Meyering  <jim@meyering.net>
1865
1866         This test was failing in some environments.
1867         * tests/ls/color-dtype-dir: Don't rely on eval "`dircolors -b`"
1868         to set LS_COLORS in the environment.
1869         * tests/envvar-check: Instead, ensure that LS_COLORS is not set.
1870         Reported by Bob Proulx.
1871
1872         * src/c99-to-c89.diff: Remove hunk for copy.c; no longer needed.
1873
1874         * Makefile.am (EXTRA_DIST): Remove these files here, too:
1875         .x-sc_no_if_have_config_h, .x-sc_prohibit_assert_without_use,
1876         .x-sc_two_space_separator_in_usage.
1877
1878         Fix "mv --verbose --backup" so its output includes the
1879         " (backup: foo.~1~)" suffix also when backing up a directory.
1880         * NEWS: Report this bug fix.
1881         * src/copy.c (emit_verbose): New function, factored out of...
1882         (copy_internal): ...here.  Use the new function.
1883         * tests/mv/backup-dir: Test for the above fix.
1884         * tests/mv/Makefile.am (TESTS): Add backup-dir.
1885
1886 2006-08-25  Paul Eggert  <eggert@cs.ucla.edu>
1887
1888         * .x-sc_no_if_have_config_h: Remove; no longer needed.
1889         * .x-sc_prohibit_assert_without_use: Remove; it was empty.
1890         * .x-sc_two_space_separator_in_usage: Likewise.
1891         * Makefile.maint (sc_no_have_config_h): Renamed from
1892         sc_no_if_have_config_h, since it now checks that HAVE_CONFIG_H
1893         is absent everywhere.
1894         * bootstrap.conf (gnulib_modules): Add config-h.
1895         * src/shred.c: Include <config.h> unconditionally, since
1896         we now assume config.h exists.
1897         * src/dircolors.c: Likewise.
1898
1899 2006-08-26  Jim Meyering  <jim@meyering.net>
1900
1901         "ls --color" would highlight other-writable and sticky directories
1902         no differently than regular directories on a file system with
1903         dirent.d_type support.
1904         * NEWS: Say the above.
1905         * src/ls.c (gobble_file): With --color, also stat the file when
1906         we know it is a directory.
1907         Derived from an anonymous one-line fix and bug report:
1908         <http://savannah.gnu.org/bugs/?15043>.
1909         * tests/ls/color-dtype-dir: New file.  Test for the above fix.
1910         * tests/ls/Makefile.am (TESTS): Add color-dtype-dir.
1911
1912 2006-08-25  Paul Eggert  <eggert@cs.ucla.edu>
1913
1914         * .cvsignore: Remove stamp-h1.  Add coreutils-*, to ignore
1915         tarballs.
1916         * bootstrap.conf: Add configmake, verify.
1917         * src/.cvsignore: Remove localedir.h.
1918         * src/Makefile.am (localedir, DISTCLEANFILES, localedir.h): Remove;
1919         subsumed by configmake.
1920         * src/system.h: Include configmake.h rather than localedir.h
1921         (LOCALEDIR): New macro.
1922
1923         Rewrite to avoid some unnecessary casts, macros, literals.
1924         * src/shred.c (DEFAULT_PASSES, VERBOSE_UPDATE): Now constants,
1925         not macros.
1926         (SECTOR_SIZE, SECTOR_MASK): New constants.
1927         (fillpattern, dopass, do_wipefd, main): Remove unnecessary casts,
1928         and use the SECTOR_* constants when applicable.  Check for size <
1929         0 rather than size == -1, since negative-size files are a sign of
1930         trouble anyway.
1931
1932 2006-08-25  Bruno Haible  <bruno@clisp.org>
1933
1934         * src/shred.c (dopass): Assume a continuable error if EIO even
1935         if the current position is not a multiple of 512.
1936
1937 2006-08-24  Jim Meyering  <jim@meyering.net>
1938
1939         * src/stat.c (print_statfs): Fix typo: remove extra "sizeof".
1940
1941 2006-08-23  Paul Eggert  <eggert@cs.ucla.edu>
1942
1943         * src/stat.c (HAVE_STRUCT_STATXFS_F_FSID___VAL): Define.  This
1944         macro was being used without being defined.
1945         (SB_F_NAMEMAX): Remove cast.
1946         (f_fsid) [BeOS]: Likewise.
1947         (OUT_NAMEMAX): Renamed from NAMEMAX_FORMAT, with a new meaning.
1948         All uses changed.
1949         (out_string, out_int, out_uint, out_uint_o, out_uint_x): New
1950         functions.
1951         (xstrcat): Remove.  All uses changed to use the above functions.
1952         (print_statfs, print_stat): 2nd arg is now the prefix len, not the
1953         buffer len.  All uses changed.  Output '?', not '*', for unknown
1954         data or errors.  Do not assume signed values can be interchanged
1955         with unsigned when printing.
1956         (print_statfs): For %i, print the fsid as a single int, not as a
1957         pair.
1958         (print_it): Quote invalid format better.
1959
1960         * NEWS: printf supports the I flag.
1961         * src/printf.c (print_formatted) [glibc 2.2 or later]: Likewise.
1962
1963 2006-08-23  Bruno Haible  <bruno@clisp.org>
1964
1965         * src/stat.c (STRUCT_STATVFS, statfs, f_fsid, f_blocks, f_bfree) [BeOS]:
1966         (f_bavail, f_bsize, STATFS_FRSIZE, f_files, f_ffree) [BeOS]:
1967         (STATXFS_FILE_SYSTEM_TYPE_MEMBER_NAME) [BeOS]: Define.
1968
1969         * src/ls.c (SA_RESTART): Fallback define.
1970
1971 2006-08-23  Paul Eggert  <eggert@cs.ucla.edu>
1972
1973         * src/system.h (EDQUOT): Define if not already defined.
1974         Problem reported by Bruno Haible for BeOS.
1975
1976         * .cvsignore: Remove config.h, config.hin, as they are now
1977         in lib.
1978         * configure.ac (AC_CONFIG_HEADERS): Move config.h and config.hin
1979         to lib.
1980         * src/Makefile.am (AM_CPPFLAGS): Remove '-I..'; no longer needed.
1981
1982         * bootstrap (slurp): Define gl_LOCK_EARLY instead of gl_LOCK,
1983         to accommodate today's gnulib change.
1984
1985 2006-08-23  Jim Meyering  <jim@meyering.net>
1986
1987         * NEWS: Mention the sweeping infrastructure changes.
1988
1989 2006-08-22  Paul Eggert  <eggert@cs.ucla.edu>
1990
1991         * bootstrap.conf (gnulib_modules): Add gnupload.
1992         * Makefile.maint (emit_upload_commands): gnupload is now
1993         in build-aux.
1994         * gnupload: Remove from CVS, since it's now a gnulib module.
1995
1996         * bootstrap (bootstrap_conf_cleanup): Remove.
1997         (excluded_files): New var.
1998         * bootstrap.conf: Likewise.
1999         * bootstrap (slurp): Exclude files early if they're in the
2000         excluded_files list.  That way, their names don't get put into
2001         .cvsignore.
2002
2003         * aclocal.m4, config.hin, configure:
2004         Remove from CVS, since ./bootstrap generates them automatically.
2005         * .cvsignore: Add INSTALL, Makefile.in, aclocal.m4, config.hin,
2006         configure, *.cache, *.lineno, *.log.
2007         Remove more-specific entries.  This catches files like configure.lineno.
2008         * man/.cvsignore: Add Makefile.in.
2009         * src/.cvsignore: Add Makefile.in.
2010         Remove .version, dir.c, install, mvdir, stamp-v, vdir.c, version.c.
2011
2012         * tests/.cvsignore:
2013         * tests/chgrp/.cvsignore:
2014         * tests/chmod/.cvsignore:
2015         * tests/chown/.cvsignore:
2016         * tests/cp/.cvsignore:
2017         * tests/cut/.cvsignore:
2018         * tests/dd/.cvsignore:
2019         * tests/dircolors/.cvsignore:
2020         * tests/du/.cvsignore:
2021         * tests/expr/.cvsignore:
2022         * tests/factor/.cvsignore:
2023         * tests/fmt/.cvsignore:
2024         * tests/head/.cvsignore:
2025         * tests/install/.cvsignore:
2026         * tests/join/.cvsignore:
2027         * tests/ln/.cvsignore:
2028         * tests/ls/.cvsignore:
2029         * tests/ls-2/.cvsignore:
2030         * tests/md5sum/.cvsignore:
2031         * tests/misc/.cvsignore:
2032         * tests/mkdir/.cvsignore:
2033         * tests/mv/.cvsignore:
2034         * tests/od/.cvsignore:
2035         * tests/pr/.cvsignore:
2036         * tests/readlink/.cvsignore:
2037         * tests/rm/.cvsignore:
2038         * tests/rmdir/.cvsignore:
2039         * tests/seq/.cvsignore:
2040         * tests/sha1sum/.cvsignore:
2041         * tests/shred/.cvsignore:
2042         * tests/sort/.cvsignore:
2043         * tests/stty/.cvsignore:
2044         * tests/sum/.cvsignore:
2045         * tests/tac/.cvsignore:
2046         * tests/tail/.cvsignore:
2047         * tests/tail-2/.cvsignore:
2048         * tests/tee/.cvsignore:
2049         * tests/test/.cvsignore:
2050         * tests/touch/.cvsignore:
2051         * tests/tr/.cvsignore:
2052         * tests/tsort/.cvsignore:
2053         * tests/unexpand/.cvsignore:
2054         * tests/uniq/.cvsignore:
2055         * tests/wc/.cvsignore:
2056         Add Makefile.in.  Sort entries if necessary.  Remove *.I, *.E,
2057         *.X, *.O, *-tests, build-script, mk-script if they're never
2058         created in this directory.
2059
2060 2006-08-22  Bruno Haible  <bruno@clisp.org>
2061
2062         BeOS portability.
2063         * src/uptime.c: Include OS.h if it exists.
2064         (print_uptime): On BeOS, use the get_system_info function (actually a
2065         macro). Loop through utmp entries only if utmp.h or utmpx.h exists.
2066         (uptime): Call read_utmp only if utmp.h or utmpx.h exists.
2067
2068 2006-08-22  Jim Meyering  <jim@meyering.net>
2069
2070         * .cvsignore: Add ABOUT-NLS.
2071
2072         Move the check-AUTHORS rule to be run as part of "make distcheck",
2073         rather than "make check".
2074         * src/Makefile.am (check): Don't depend on check-AUTHORS; it would
2075         cause "make check" to fail on systems unable to build all binaries.
2076         * Makefile.maint (check-AUTHORS): New rule.
2077         (local-checks-available): Add it here.
2078         Reported by Bruno Haible.  Needed for BeOS.
2079
2080 2006-08-21  Paul Eggert  <eggert@cs.ucla.edu>
2081
2082         * src/df.c (print_header, show_dev): Use a column width that
2083         depends on the block size of -P is specified and not autoscaling.
2084         Problem reported by Gustavo G. Rondina in:
2085         http://lists.gnu.org/archive/html/bug-coreutils/2006-08/msg00164.html
2086
2087 2006-08-21  Jim Meyering  <jim@meyering.net>
2088
2089         * tests/dircolors/simple (a): Don't fail with an unexpected diagnostic
2090         when the shell variable, SHELL, is not set.
2091         Trigger the failure with "(unset SHELL; make check TESTS=simple)".
2092         Reported by Sven Joachim in <http://bugs.debian.org/355368>.
2093
2094         * src/od.c: Now that HAVE_UNSIGNED_LONG_LONG is no longer defined
2095         in config.h, change the uses to HAVE_UNSIGNED_LONG_LONG_INT.
2096         Otherwise, on a system with 4-byte longs, "od -t u8" fails with this:
2097         od: invalid type string `u8';
2098         this system doesn't provide a 8-byte integral type
2099         FIXME: add a test for this, but skip it when sizeof uintmax < 8.
2100
2101 2006-08-20  Paul Eggert  <eggert@cs.ucla.edu>
2102
2103         Add a bootstrap procedure, so that the CVS version contains fewer
2104         files and we bootstrap the rest from gnulib, gettext, etc.
2105         * README-cvs: New file.
2106         * bootstrap: New file.
2107         * bootstrap.conf: New file.
2108         * .x-sc_trailing_blank: Remove config-log, .gdb-history.  Add .po.
2109         * configure.ac (AC_PREREQ): Move here from m4/*.m4, for benefit
2110         of gnulib-tool.
2111         (gl_DEFAULT_POSIX2_VERSION, gl_USE_SYSTEM_EXTENSIONS, gl_PERL):
2112         (gl_IGNORE_UNUSED_LIBRARIES): Remove; now done by gnulib.
2113         (gl_EARLY): Add.
2114         (gl_MACROS): Call just after gl_EARLY, just for clarity.
2115         * src/c99-to-c89.diff: Remove patch to ls.c; no longer needed.
2116         * src/kill.c (strtoimax): Remove decl.
2117         * src/ls.c: Include "wcwidth.h" instead of rolling it ourselves.
2118         * src/wc.c: Likewise.
2119         * src/ls.c (sort_files): Rewrite to avoid need for C99-style
2120         declaration, so that we don't need to patch this file.
2121         * src/printf.c (strtoimax, strtoumax): Remove decls.
2122         * src/su.c: Include getpass.h.
2123         (getpass): remove.
2124         * src/system.h: Include mempcpy.h, stpcpy.h, strpbrk.h.
2125         Include inttypes.h unconditionally.
2126         (LONGEST_MODIFIER, PRIdMAX, PRIoMAX, PRIuMAX, PRIxMAX): Remove.
2127         (stpcpy, strndup, strstr, strtoul, mempcpy, CHAR_MIN, CHAR_MAX):
2128         (SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, SHRT_MIN, SHRT_MAX, INT_MAX):
2129         (INT_MIN, INTMAX_MAX, INTMAX_MIN, UINT_MAX, LONG_MAX, ULONG_MAX):
2130         (SIZE_MAX, SSIZE_MAX, UINTMAX_MAX): Remove.
2131
2132         * ABOUT-NLS, INSTALL, Makefile.in, man/Makefile.in:
2133         * src/Makefile.in, tests/Makefile.in, tests/chgrp/Makefile.in:
2134         * tests/chmod/Makefile.in, tests/chown/Makefile.in:
2135         * tests/cp/Makefile.in, tests/cut/Makefile.in:
2136         * tests/dd/Makefile.in, tests/dircolors/Makefile.in:
2137         * tests/du/Makefile.in, tests/expr/Makefile.in:
2138         * tests/factor/Makefile.in, tests/fmt/Makefile.in:
2139         * tests/general/Makefile.in, tests/head/Makefile.in:
2140         * tests/install/Makefile.in, tests/join/Makefile.in:
2141         * tests/ln/Makefile.in, tests/ls/Makefile.in:
2142         * tests/ls-2/Makefile.in, tests/md5sum/Makefile.in:
2143         * tests/misc/Makefile.in, tests/mkdir/Makefile.in:
2144         * tests/mv/Makefile.in, tests/od/Makefile.in:
2145         * tests/pr/Makefile.in, tests/readlink/Makefile.in:
2146         * tests/rm/Makefile.in, tests/rmdir/Makefile.in:
2147         * tests/seq/Makefile.in, tests/sha1sum/Makefile.in:
2148         * tests/shred/Makefile.in, tests/sort/Makefile.in:
2149         * tests/stty/Makefile.in, tests/sum/Makefile.in:
2150         * tests/tac/Makefile.in, tests/tail/Makefile.in:
2151         * tests/tail-2/Makefile.in, tests/tee/Makefile.in:
2152         * tests/test/Makefile.in, tests/touch/Makefile.in:
2153         * tests/tr/Makefile.in, tests/tsort/Makefile.in:
2154         * tests/unexpand/Makefile.in, tests/uniq/Makefile.in:
2155         * tests/wc/Makefile.in:
2156         Remove from CVS, since ./bootstrap generates them automatically.
2157
2158 2006-08-20  Eric Blake  <ebb9@byu.net>
2159
2160         * src/stat.c (USE_STATVFS): Reinstate the patch from 2006-08-15;
2161         the patch from 2006-08-18 broke on cygwin.
2162
2163 2006-08-20  Jim Meyering  <jim@meyering.net>
2164
2165         * NEWS: Add a line for 6.2-cvs.
2166         * configure.ac (AC_INIT): Bump to 6.2 and add "-cvs" suffix.
2167
2168 2006-08-19  Jim Meyering  <jim@meyering.net>
2169
2170         * Version 6.1.
2171         * NEWS: Record the 6.1 release date.
2172         * configure.ac (AC_INIT): Remove "-cvs" suffix from version string.
2173
2174         * tests/Makefile.am (EXTRA_DIST): Add sparse-file.
2175
2176         Avoid test failure when `make check' is run through debuild.
2177         * tests/help-version: Ensure that $SHELL is set to some value
2178         and exported.  Patch from Sven Joachim.  For details, see
2179         <http://bugs.debian.org/355368>.
2180
2181         * tests/ls/stat-dtype: Test for the 2006-08-17 `ls -CF' fix.
2182
2183         * README: Describe potential "pre-C99 build failure", and work-around.
2184
2185         Some of my 2006-07-03 changes to tests/*/Makefile.am were being
2186         backed out due to updates provoked by the copyright changes.
2187         * tests/Makefile.am.in (PATH): Prepend $(VG_PATH_PREFIX), so that
2188         it propagates to the derived Makefile.am files.
2189         ($(srcdir)/Makefile.am): Mark generated .am files as read-only,
2190         so we don't mistakenly edit them again.
2191         * tests/cut/Makefile.am: Regenerate.
2192         * tests/head/Makefile.am: Likewise.
2193         * tests/join/Makefile.am: Likewise.
2194         * tests/pr/Makefile.am: Likewise.
2195         * tests/sort/Makefile.am: Likewise.
2196         * tests/tac/Makefile.am: Likewise.
2197         * tests/tail/Makefile.am: Likewise.
2198         * tests/test/Makefile.am: Likewise.
2199         * tests/tr/Makefile.am: Likewise.
2200         * tests/uniq/Makefile.am: Likewise.
2201         * tests/wc/Makefile.am: Likewise.
2202
2203         * NEWS: Fix cp --sparse so that it preserves tail-end sparseness, even
2204         when the file's apparent size is not a multiple of its block size.
2205         * src/copy.c (copy_reg): Don't write a NUL before calling ftruncate.
2206         For some file sizes, writing that single byte would unnecessarily
2207         waste a few file blocks.  That write may have been necessary in the
2208         early days of Linux, but now, removing it should be safe.
2209         Based on a patch by Alan Curry: <http://bugs.debian.org/370792>
2210         * tests/cp/sparse: New test for the above.
2211         * tests/cp/Makefile.am (TESTS): Add sparse.
2212
2213         * tests/sparse-file: New file, essence factored out of...
2214         * tests/du/8gb: ... here.  Use the new script.
2215
2216 2006-08-18  Paul Eggert  <eggert@cs.ucla.edu>
2217
2218         * src/system.h (select_plural): Reduce by 1000000, not 1000, since
2219         the CVS gettext manual now suggests 1000000.
2220
2221 2006-08-18  Bruno Haible  <bruno@clisp.org>
2222
2223         Add support for NetBSD 3.0.
2224         * src/stat.c (USE_STATVFS): Set to 1 if 'struct statvfs' has a field
2225         f_fstypename.
2226         (STATXFS_FILE_SYSTEM_TYPE_MEMBER_NAME): Define also if 'struct statvfs'
2227         has a field f_fstypename.
2228         This undoes the 2006-08-15 to src/stat.c.
2229
2230 2006-08-17  Paul Eggert  <eggert@cs.ucla.edu>
2231
2232         Copyright notice fixes.
2233
2234         * COPYING: Upgrade to latest version from FSF.
2235
2236         * src/uname.c: Use (C) in copyright notice.
2237
2238         * .vg-suppressions: Add copyright notice.
2239         * ChangeLog: Likewise.
2240         * ChangeLog-2005: Likewise.
2241         * Makefile.am: Likewise.
2242         * NEWS: Likewise.
2243         * README: Likewise.
2244         * README-valgrind: Likewise.
2245         * TODO: Likewise.
2246         * announce-gen: Likewise.
2247         * man/Makefile.am: Likewise.
2248         * man/chmod.x: Likewise.
2249         * man/chown.x: Likewise.
2250         * man/df.x: Likewise.
2251         * man/du.x: Likewise.
2252         * man/rm.x: Likewise.
2253         * src/dircolors.hin: Likewise.
2254         * src/du-tests: Likewise.
2255         * src/extract-magic: Likewise.
2256         * src/tac-pipe.c: Likewise.
2257         * src/wheel-gen.pl: Likewise.
2258         * tests/Coreutils.pm: Likewise.
2259         * tests/Makefile.am.in: Likewise.
2260         * tests/acl: Likewise.
2261         * tests/envvar-check: Likewise.
2262         * tests/expensive: Likewise.
2263         * tests/group-names: Likewise.
2264         * tests/help-version: Likewise.
2265         * tests/mk-script: Likewise.
2266         * tests/priv-check: Likewise.
2267         * tests/rwx-to-mode: Likewise.
2268         * tests/sample-test: Likewise.
2269         * tests/setgid-check: Likewise.
2270         * tests/chgrp/basic: Likewise.
2271         * tests/chgrp/deref: Likewise.
2272         * tests/chgrp/no-x: Likewise.
2273         * tests/chgrp/posix-H: Likewise.
2274         * tests/chgrp/recurse: Likewise.
2275         * tests/chmod/c-option: Likewise.
2276         * tests/chmod/equal-x: Likewise.
2277         * tests/chmod/equals: Likewise.
2278         * tests/chmod/no-x: Likewise.
2279         * tests/chmod/octal: Likewise.
2280         * tests/chmod/setgid: Likewise.
2281         * tests/chmod/umask-x: Likewise.
2282         * tests/chmod/usage: Likewise.
2283         * tests/chown/basic: Likewise.
2284         * tests/chown/deref: Likewise.
2285         * tests/chown/separator: Likewise.
2286         * tests/cp/Makefile.am: Likewise.
2287         * tests/cp/acl: Likewise.
2288         * tests/cp/backup-1: Likewise.
2289         * tests/cp/backup-is-src: Likewise.
2290         * tests/cp/cp-HL: Likewise.
2291         * tests/cp/cp-deref: Likewise.
2292         * tests/cp/cp-mv-backup: Likewise.
2293         * tests/cp/cp-parents: Likewise.
2294         * tests/cp/deref-slink: Likewise.
2295         * tests/cp/dir-rm-dest: Likewise.
2296         * tests/cp/dir-slash: Likewise.
2297         * tests/cp/dir-vs-file: Likewise.
2298         * tests/cp/fail-perm: Likewise.
2299         * tests/cp/into-self: Likewise.
2300         * tests/cp/link: Likewise.
2301         * tests/cp/link-no-deref: Likewise.
2302         * tests/cp/link-preserve: Likewise.
2303         * tests/cp/no-deref-link1: Likewise.
2304         * tests/cp/no-deref-link2: Likewise.
2305         * tests/cp/no-deref-link3: Likewise.
2306         * tests/cp/perm: Likewise.
2307         * tests/cp/preserve-2: Likewise.
2308         * tests/cp/r-vs-symlink: Likewise.
2309         * tests/cp/same-file: Likewise.
2310         * tests/cp/slink-2-slink: Likewise.
2311         * tests/cp/special-bits: Likewise.
2312         * tests/cp/symlink-slash: Likewise.
2313         * tests/cut/Makefile.am: Likewise.
2314         * tests/cut/Test.pm: Likewise.
2315         * tests/dd/misc: Likewise.
2316         * tests/dd/not-rewound: Likewise.
2317         * tests/dd/skip-seek: Likewise.
2318         * tests/dd/skip-seek2: Likewise.
2319         * tests/dd/unblock-sync: Likewise.
2320         * tests/dircolors/simple: Likewise.
2321         * tests/du/2g: Likewise.
2322         * tests/du/8gb: Likewise.
2323         * tests/du/Makefile.am: Likewise.
2324         * tests/du/basic: Likewise.
2325         * tests/du/deref: Likewise.
2326         * tests/du/deref-args: Likewise.
2327         * tests/du/exclude: Likewise.
2328         * tests/du/fd-leak: Likewise.
2329         * tests/du/files0-from: Likewise.
2330         * tests/du/hard-link: Likewise.
2331         * tests/du/inaccessible-cwd: Likewise.
2332         * tests/du/long-from-unreadable: Likewise.
2333         * tests/du/long-sloop: Likewise.
2334         * tests/du/no-deref: Likewise.
2335         * tests/du/no-x: Likewise.
2336         * tests/du/restore-wd: Likewise.
2337         * tests/du/slash: Likewise.
2338         * tests/du/slink: Likewise.
2339         * tests/du/trailing-slash: Likewise.
2340         * tests/du/two-args: Likewise.
2341         * tests/expr/basic: Likewise.
2342         * tests/factor/basic: Likewise.
2343         * tests/fmt/basic: Likewise.
2344         * tests/fmt/long-line: Likewise.
2345         * tests/general/Makefile.am: Likewise.
2346         * tests/general/atgeneral.m4: Likewise.
2347         * tests/general/dd.at: Likewise.
2348         * tests/head/Makefile.am: Likewise.
2349         * tests/head/Test.pm: Likewise.
2350         * tests/install/basic-1: Likewise.
2351         * tests/install/create-leading: Likewise.
2352         * tests/install/d-slashdot: Likewise.
2353         * tests/install/trap: Likewise.
2354         * tests/join/Makefile.am: Likewise.
2355         * tests/join/Test.pm: Likewise.
2356         * tests/ln/backup-1: Likewise.
2357         * tests/ln/misc: Likewise.
2358         * tests/ln/sf-1: Likewise.
2359         * tests/ln/target-1: Likewise.
2360         * tests/ls/Makefile.am: Likewise.
2361         * tests/ls/Test.pm: Likewise.
2362         * tests/ls/dangle: Likewise.
2363         * tests/ls/dired: Likewise.
2364         * tests/ls/file-type: Likewise.
2365         * tests/ls/follow-slink: Likewise.
2366         * tests/ls/infloop: Likewise.
2367         * tests/ls/inode: Likewise.
2368         * tests/ls/m-option: Likewise.
2369         * tests/ls/no-arg: Likewise.
2370         * tests/ls/recursive: Likewise.
2371         * tests/ls/rt-1: Likewise.
2372         * tests/ls/stat-dtype: Likewise.
2373         * tests/ls/stat-failed: Likewise.
2374         * tests/ls/stat-vs-dirent: Likewise.
2375         * tests/ls/symlink-slash: Likewise.
2376         * tests/ls/time-1: Likewise.
2377         * tests/ls-2/tests: Likewise.
2378         * tests/md5sum/basic-1: Likewise.
2379         * tests/md5sum/newline-1: Likewise.
2380         * tests/misc/Makefile.am: Likewise.
2381         * tests/misc/base64: Likewise.
2382         * tests/misc/basename: Likewise.
2383         * tests/misc/cat-proc: Likewise.
2384         * tests/misc/close-stdout: Likewise.
2385         * tests/misc/csplit: Likewise.
2386         * tests/misc/date: Likewise.
2387         * tests/misc/date-sec: Likewise.
2388         * tests/misc/df: Likewise.
2389         * tests/misc/dirname: Likewise.
2390         * tests/misc/expand: Likewise.
2391         * tests/misc/false-status: Likewise.
2392         * tests/misc/fold: Likewise.
2393         * tests/misc/head-c: Likewise.
2394         * tests/misc/head-elide-tail: Likewise.
2395         * tests/misc/head-pos: Likewise.
2396         * tests/misc/mknod: Likewise.
2397         * tests/misc/nice: Likewise.
2398         * tests/misc/nl: Likewise.
2399         * tests/misc/nohup: Likewise.
2400         * tests/misc/paste-no-nl: Likewise.
2401         * tests/misc/pathchk1: Likewise.
2402         * tests/misc/printf: Likewise.
2403         * tests/misc/printf-hex: Likewise.
2404         * tests/misc/pwd-long: Likewise.
2405         * tests/misc/sha224sum: Likewise.
2406         * tests/misc/sha256sum: Likewise.
2407         * tests/misc/sha384sum: Likewise.
2408         * tests/misc/sha512sum: Likewise.
2409         * tests/misc/shuf: Likewise.
2410         * tests/misc/sort-merge: Likewise.
2411         * tests/misc/sort-rand: Likewise.
2412         * tests/misc/split-a: Likewise.
2413         * tests/misc/split-fail: Likewise.
2414         * tests/misc/split-l: Likewise.
2415         * tests/misc/stat-fmt: Likewise.
2416         * tests/misc/stat-printf: Likewise.
2417         * tests/misc/tac-continue: Likewise.
2418         * tests/misc/test-diag: Likewise.
2419         * tests/misc/tty-eof: Likewise.
2420         * tests/misc/wc-files0: Likewise.
2421         * tests/misc/wc-files0-from: Likewise.
2422         * tests/mkdir/concurrent-1: Likewise.
2423         * tests/mkdir/p-1: Likewise.
2424         * tests/mkdir/p-2: Likewise.
2425         * tests/mkdir/p-3: Likewise.
2426         * tests/mkdir/p-slashdot: Likewise.
2427         * tests/mkdir/p-thru-slink: Likewise.
2428         * tests/mkdir/parents: Likewise.
2429         * tests/mkdir/perm: Likewise.
2430         * tests/mkdir/special-1: Likewise.
2431         * tests/mkdir/t-slash: Likewise.
2432         * tests/mkdir/writable-under-readonly: Likewise.
2433         * tests/mv/Makefile.am: Likewise.
2434         * tests/mv/acl: Likewise.
2435         * tests/mv/atomic: Likewise.
2436         * tests/mv/backup-is-src: Likewise.
2437         * tests/mv/childproof: Likewise.
2438         * tests/mv/diag: Likewise.
2439         * tests/mv/dir-file: Likewise.
2440         * tests/mv/dir2dir: Likewise.
2441         * tests/mv/dup-source: Likewise.
2442         * tests/mv/force: Likewise.
2443         * tests/mv/hard-2: Likewise.
2444         * tests/mv/hard-3: Likewise.
2445         * tests/mv/hard-4: Likewise.
2446         * tests/mv/hard-link-1: Likewise.
2447         * tests/mv/i-1: Likewise.
2448         * tests/mv/i-2: Likewise.
2449         * tests/mv/i-3: Likewise.
2450         * tests/mv/i-4: Likewise.
2451         * tests/mv/i-link-no: Likewise.
2452         * tests/mv/into-self: Likewise.
2453         * tests/mv/into-self-2: Likewise.
2454         * tests/mv/into-self-3: Likewise.
2455         * tests/mv/into-self-4: Likewise.
2456         * tests/mv/leak-fd: Likewise.
2457         * tests/mv/mv-special-1: Likewise.
2458         * tests/mv/no-target-dir: Likewise.
2459         * tests/mv/part-fail: Likewise.
2460         * tests/mv/part-hardlink: Likewise.
2461         * tests/mv/part-rename: Likewise.
2462         * tests/mv/part-symlink: Likewise.
2463         * tests/mv/partition-perm: Likewise.
2464         * tests/mv/perm-1: Likewise.
2465         * tests/mv/reply-no: Likewise.
2466         * tests/mv/setup: Likewise.
2467         * tests/mv/to-symlink: Likewise.
2468         * tests/mv/trailing-slash: Likewise.
2469         * tests/mv/update: Likewise.
2470         * tests/mv/vfat: Likewise.
2471         * tests/od/od-N: Likewise.
2472         * tests/od/x8: Likewise.
2473         * tests/pr/Makefile.am: Likewise.
2474         * tests/pr/Test.pm: Likewise.
2475         * tests/readlink/can-e: Likewise.
2476         * tests/readlink/can-f: Likewise.
2477         * tests/readlink/can-m: Likewise.
2478         * tests/readlink/rl-1: Likewise.
2479         * tests/rm/Makefile.am: Likewise.
2480         * tests/rm/cycle: Likewise.
2481         * tests/rm/dangling-symlink: Likewise.
2482         * tests/rm/deep-1: Likewise.
2483         * tests/rm/dir-no-w: Likewise.
2484         * tests/rm/dir-nonrecur: Likewise.
2485         * tests/rm/dot-rel: Likewise.
2486         * tests/rm/empty-inacc: Likewise.
2487         * tests/rm/empty-name: Likewise.
2488         * tests/rm/f-1: Likewise.
2489         * tests/rm/fail-2eperm: Likewise.
2490         * tests/rm/fail-eperm: Likewise.
2491         * tests/rm/hash: Likewise.
2492         * tests/rm/i-1: Likewise.
2493         * tests/rm/i-no-r: Likewise.
2494         * tests/rm/inaccessible: Likewise.
2495         * tests/rm/interactive-always: Likewise.
2496         * tests/rm/interactive-once: Likewise.
2497         * tests/rm/ir-1: Likewise.
2498         * tests/rm/isatty: Likewise.
2499         * tests/rm/no-give-up: Likewise.
2500         * tests/rm/r-1: Likewise.
2501         * tests/rm/r-2: Likewise.
2502         * tests/rm/r-3: Likewise.
2503         * tests/rm/rm1: Likewise.
2504         * tests/rm/rm2: Likewise.
2505         * tests/rm/rm3: Likewise.
2506         * tests/rm/rm4: Likewise.
2507         * tests/rm/rm5: Likewise.
2508         * tests/rm/sunos-1: Likewise.
2509         * tests/rm/unread2: Likewise.
2510         * tests/rm/unread3: Likewise.
2511         * tests/rm/unreadable: Likewise.
2512         * tests/rmdir/fail-perm: Likewise.
2513         * tests/rmdir/ignore: Likewise.
2514         * tests/rmdir/t-slash: Likewise.
2515         * tests/seq/basic: Likewise.
2516         * tests/sha1sum/basic-1: Likewise.
2517         * tests/sha1sum/sample-vec: Likewise.
2518         * tests/shred/exact: Likewise.
2519         * tests/shred/remove: Likewise.
2520         * tests/sort/Makefile.am: Likewise.
2521         * tests/sort/Test.pm: Likewise.
2522         * tests/sort-time/Makefile: Likewise.
2523         * tests/sort-time/README: Likewise.
2524         * tests/sort-time/rand-gen: Likewise.
2525         * tests/stty/basic-1: Likewise.
2526         * tests/stty/row-col-1: Likewise.
2527         * tests/sum/basic-1: Likewise.
2528         * tests/sum/sysv: Likewise.
2529         * tests/tac/Makefile.am: Likewise.
2530         * tests/tac/Test.pm: Likewise.
2531         * tests/tail/Makefile.am: Likewise.
2532         * tests/tail/Test.pm: Likewise.
2533         * tests/tail-2/Makefile.am: Likewise.
2534         * tests/tail-2/append-only: Likewise.
2535         * tests/tail-2/assert: Likewise.
2536         * tests/tail-2/assert-2: Likewise.
2537         * tests/tail-2/big-4gb: Likewise.
2538         * tests/tail-2/fflush: Likewise.
2539         * tests/tail-2/infloop-1: Likewise.
2540         * tests/tail-2/proc-ksyms: Likewise.
2541         * tests/tail-2/start-middle: Likewise.
2542         * tests/tail-2/tail-n0f: Likewise.
2543         * tests/tee/basic: Likewise.
2544         * tests/tee/dash: Likewise.
2545         * tests/test/Makefile.am: Likewise.
2546         * tests/test/Test.pm: Likewise.
2547         * tests/touch/Makefile.am: Likewise.
2548         * tests/touch/dangling-symlink: Likewise.
2549         * tests/touch/empty-file: Likewise.
2550         * tests/touch/fail-diag: Likewise.
2551         * tests/touch/fifo: Likewise.
2552         * tests/touch/no-create-missing: Likewise.
2553         * tests/touch/no-rights: Likewise.
2554         * tests/touch/not-owner: Likewise.
2555         * tests/touch/obsolescent: Likewise.
2556         * tests/touch/read-only: Likewise.
2557         * tests/touch/relative: Likewise.
2558         * tests/tr/Makefile.am: Likewise.
2559         * tests/tr/Test.pm: Likewise.
2560         * tests/tr/failures: Likewise.
2561         * tests/tsort/basic-1: Likewise.
2562         * tests/unexpand/basic-1: Likewise.
2563         * tests/uniq/Makefile.am: Likewise.
2564         * tests/uniq/Test.pm: Likewise.
2565         * tests/wc/Makefile.am: Likewise.
2566         * tests/wc/Test.pm: Likewise.
2567
2568 2006-08-17  Jim Meyering  <jim@meyering.net>
2569
2570         ls -CF would misalign columns in some cases.
2571         * src/ls.c (get_type_indicator): New function.  extracted from...
2572         (print_type_indicator): ...here.  Use it.
2573         (length_of_file_name_and_frills): Use it here, too, rather than
2574         assuming stat.st_mode is valid.
2575         Reported by Andreas Schwab, here:
2576         <http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/7774>
2577         See the test for this above. FYI, I did ls -CF /proc and visually
2578         inspected the result.
2579
2580         * src/copy.c (copy_internal, same_file_ok): Adjust comments not
2581         to mention the now-removed cp_options.xstat member.
2582
2583         * Makefile.maint (patch-check): Adapt to work now that the patch
2584         modifies more than one file in src/.
2585
2586         With this patch, permit building with Solaris cc on Solaris 7.
2587         * src/c99-to-c89.diff: Add diffs to convert more c99-isms.
2588         This integrates patches from Bruno Haible.
2589
2590 2006-08-16  Paul Eggert  <eggert@cs.ucla.edu>
2591
2592         Fix some problems reported by Bruno Haible.
2593         * tests/chmod/setgid (abs_srcdir): Remove; not used or needed.
2594         Skip this test if "chmod g+s d" silently does nothing.
2595         * tests/ls-2/tests: Skip this test suite if we can't set up files
2596         properly for the setuid-etc test.  This simplifies some of the
2597         hacks we were using to work around porting problems.
2598
2599 2006-08-16  Jim Meyering  <jim@meyering.net>
2600
2601         * tests/cp/Makefile.am: Don't mark "acl" as XFAIL.
2602         * tests/cp/acl: Instead, skip the test if either setfacl
2603         or getfacl fails.
2604         Reported by Michael Stone.
2605
2606 2006-08-16  Paul Eggert  <eggert@cs.ucla.edu>
2607
2608         * tests/lang-default (LC_ALL): Set to "C", so we get
2609         English-language diagnostics.  Unset the other variables; it
2610         should be portable to use 'unset' for this stuff nowadays.
2611         Problem reported by Bruno Haible.  Using "C" reverses the
2612         2000-10-22 change to fileutils in this area.
2613
2614         Fix bugs when printing plurals of numbers that are not
2615         unsigned long int values.
2616         * src/system.h (select_plural): New function.
2617         * src/md5sum.c (digest_check): Use select_plural to avoid bug.
2618         * src/uptime.c (print_uptime): Likewise.
2619         * src/dd.c (print_stats): Likewise.  Also, don't use ngettext to
2620         print a floating point number, as reducing to 0 or 1 doesn't work
2621         for some languages.  Instead, just use "s" for seconds since it
2622         doesn't need a plural form.
2623
2624 2006-08-16  Bruno Haible  <bruno@clisp.org>
2625
2626         Old versions of gzip would write --help output to stderr, and it
2627         would be annoying to see that in the output of every "make" command.
2628         * Makefile.maint (gzip_rsyncable): Throw away stderr output of
2629         "gzip --help".
2630
2631 2006-08-16  Andreas Schwab  <schwab@suse.de>
2632
2633         * tests/cp/acl: Don't use non-portable == operator for test.
2634
2635 2006-08-16  Jim Meyering  <jim@meyering.net>
2636
2637         * tests/ls/stat-dtype: Use stat to test file system type, rather
2638         than df -T, in case /etc/mtab lies.  Reported by Michael Stone.
2639
2640 2006-08-15  Paul Eggert  <eggert@cs.ucla.edu>
2641
2642         * NEWS: Mention that df exits with nonzero status if it generates
2643         no output.  This change was in 6.0 but inadvertently unmentioned.
2644         * src/df.c (file_systems_processed): Renamed from n_valid_args, and now
2645         a boolean.
2646         (show_dev): Don't set it until we actually output something.
2647         Print the header if this is the first output.
2648         (main): Don't print a header, as that is now show_dev's job.
2649         * tests/misc/Makefile.am (TESTS): Add df.
2650         * tests/misc/df: New file.
2651
2652 2006-08-15  Eric Blake  <ebb9@byu.net>
2653
2654         * src/stat.c (USE_STATVFS): Define to 0 if f_type is needed, but
2655         statvfs.f_type not present.  See
2656         <http://savannah.gnu.org/bugs/?func=detailitem&item_id=16325>.
2657
2658 2006-08-15  Paul Eggert  <eggert@cs.ucla.edu>
2659
2660         * src/dd.c (print_stats): Don't substitute "1" for number, as this
2661         causes confusion for the Hungarian translators.  Problem reported
2662         by Egmont Koblinger here:
2663         http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/7726
2664
2665 2006-08-15  Jim Meyering  <jim@meyering.net>
2666
2667         * .x-sc_require_config_h: Add lib/at-func.c.
2668
2669         * NEWS: Add a line for 6.1-cvs.
2670         * configure.ac (AC_INIT): Bump to 6.1 and add "-cvs" suffix.
2671
2672 2006-08-15  Jim Meyering  <jim@meyering.net>
2673
2674         * Version 6.0.
2675         * NEWS: Record the 6.0 release date.
2676         * configure.ac (AC_INIT): Remove "-cvs" suffix from version string.
2677
2678         * TODO: Add an item (convert to use gnulib-tool), add to the plan
2679         for id-vs-getgrouplist, and remove a few completed items.
2680
2681         * Makefile.maint (alpha beta major): Fix syntax error.
2682
2683 2006-08-13  Jim Meyering  <jim@meyering.net>
2684
2685         * src/shred.c (usage): Don't indent the second line of an item.
2686         Otherwise, help2man would misformat the output.
2687         Reported by Adam Buchbinder in <https://launchpad.net/bugs/48917>.
2688
2689 2006-08-11  Paul Eggert  <eggert@cs.ucla.edu>
2690
2691         * configure.ac (AM_GNU_GETTEXT): Upgrade to need-formatstring-macros.
2692         Suggested by Eric Blake to avoid problems like
2693         <http://lists.gnu.org/archive/html/bug-coreutils/2006-07/msg00087.html>.
2694
2695 2006-08-11  Jim Meyering  <jim@meyering.net>
2696
2697         * tests/ls/stat-vs-dirent: Too many (losing) systems trigger the
2698         failure that this test checks for (stat/dirent inode mismatch at
2699         a mount point), so continue to give a diagnostic about the failure,
2700         but don't actually count it as a failure.
2701
2702 2006-08-10  Paul Eggert  <eggert@cs.ucla.edu>
2703
2704         * ABOUT-NLS: Update from gettext 0.15.
2705         * configure.ac (AM_GNU_GETTEXT_VERSION): Update from 0.13.1 to 0.15.
2706
2707         * src/csplit.c (struct control): Remove fastmap member.
2708         (extract_regexp): Allocate fastmap separately, since otherwise
2709         it might move due to a realloc.  This fixes a bug that led
2710         to a core dump on 64-bit sparc Solaris 10 (Sun Studio 10).
2711
2712 2006-08-10  Jim Meyering  <jim@meyering.net>
2713
2714         * tests/ls/stat-dtype: If "." is tmpfs, skip this test unless uname -s
2715         reports "Linux".  This avoids a failure on Solaris 10's tmpfs.
2716         Redirect both stdout and stderr of df invocations.
2717
2718         * src/dircolors.hin: Add a TERM directive for each of the following:
2719         ansi, color-xterm, gnome, konsole, kterm, rxvt-cygwin,
2720         rxvt-cygwin-native, screen.linux, xterm-256color.
2721         Sort the TERM directives.
2722         From Mike Frysinger.
2723
2724 2006-08-09  Paul Eggert  <eggert@cs.ucla.edu>
2725
2726         * src/dd.c (usage): Warn about oflag=append without conv=notrunc.
2727         See Debian bug 373736.
2728
2729         * src/dircolors.hin: Add mlterm, rxvt-unicode; this fixes Debian
2730         bug 317503.
2731
2732         * src/.cvsignore: Add shuf.
2733
2734         * Makefile.maint: Remove the po-update procedure; it doesn't
2735         work with the new repository on http://www.iro.umontreal.ca/.
2736         For now I guess we'll have to fix things by hand.
2737         (do-po-update, po-update): Remove.  All references removed.
2738
2739         * src/shuf.c (next_line): New function.
2740         (read_input): Use it, to avoid relying on GCC-specific behavior
2741         with void * arithmetic.  Problem reported by Bob Proulx.
2742         * Makefile.maint (my-distcheck): Compile with -Wpointer-arith
2743         to detect this sort of problem automatically in the future.
2744
2745 2006-08-09  Jim Meyering  <jim@meyering.net>
2746
2747         * src/ls.c: Add a compile-time check to ensure that filetype
2748         and filetype_letter have the same number of elements.
2749
2750         * tests/misc/sort-rand: Remove use of --seed=S.
2751
2752 2006-08-08  Paul Eggert  <eggert@cs.ucla.edu>
2753
2754         Add a command 'shuf', and modify shred and sort to use the new
2755         random number generator library of 'shuf'.
2756
2757         * AUTHORS: Add shuf.
2758         * README: Likewise.
2759         * NEWS: Likewise.  Mention new --random-source option for shred
2760         and sort.  Move "sort +1 -2" notice to the appropriate section,
2761         and clarify its role with respect to POSIXLY_CORRECT.
2762         * man/.cvsignore: Add shuf.1.
2763         * man/Makefile.am (dist_man_MANS): Add shuf.1.
2764         (shuf.1): New dependency.
2765         * man/shuf.x: New file.
2766         * src/Makefile.am (bin_PROGRAMS): Add shuf.
2767         (EXTRA_DIST): Remove rand-isaac.c.
2768         (shuf_LDADD): New macro.
2769         * src/rand-isaac.c: Remove, moving most of its contents to
2770         lib/rand-isaac.c.
2771         * src/shuf.c: New file.
2772         * src/shred.c: Use new random-number interface rather than rand-isaac.c.
2773         Don't include rand-isaac.c; include randint.h and randread.h instead.
2774         (RANDOM_SOURCE_OPTION): New enum.
2775         (long_opts, usage, main): New option --random-source.
2776         * src/sort.c: Likewise.
2777         * src/shred.c (struct irand_state, irand_init, irand32, irand_mod): Remove.
2778         All callers changed to use randint interface.
2779         (fillrand): Remove.  All callers changed to use randread interface.
2780         (dopass): Remove dependency on ISAAC buffer size.
2781         (genpattern): Don't wipe the random state here.
2782         (randint_source): New static var.
2783         (clear_random_data): New function.
2784         (main): Allocate random source, and arrange to wipe it on exit.
2785         * src/sort.c: Include md5.h, randread.h, xmemxfrm.h.
2786         (longopts, usage, main): Remove undocumented --seed option;
2787         it's now replaced by --random-source.
2788         (rand_state, get_hash): Remove.
2789         (randread_source): New static var.
2790         (random_state, cmp_hashes, compare_random): New functions; they guarantee
2791         no collisions in the random hash function.
2792         (keycompare): Use compare_random for -R; don't fall back on comparing
2793         via memcoll, since compare_random does the right thing.
2794         * tests/misc/Makefile.am (TESTS): Add shuf.
2795         * tests/misc/shuf: New file.
2796
2797 2006-07-29  Paul Eggert  <eggert@cs.ucla.edu>
2798
2799         * src/copy.c (set_author): Preserve the st_author field via the
2800         file descriptor dest_desc.
2801
2802 2006-07-28  Paul Eggert  <eggert@cs.ucla.edu>
2803
2804         * NEWS: chmod now preserves setuid and setgid bits on directories
2805         if you use a numeric mode with them clear, e.g., "chmod 755 DIR".
2806
2807         Fix test case problems if working directory is setgid,
2808         reported by Bob Proulx.
2809         * tests/cp/fail-perm: Use symbolic mode so that we clear
2810         setgid bit more reliably on directories.
2811         * tests/mkdir/special-1 (set_mode_string): Likewise.
2812
2813 2006-07-27  Jim Meyering  <jim@meyering.net>
2814
2815         * src/chgrp.c (usage): Use correct grammar in description of the
2816         --reference option
2817         * src/chown.c (usage): Likewise.
2818
2819 2006-07-26  Thomas Schwinge  <tschwinge@gnu.org>  (tiny change)
2820
2821         * src/copy.c (set_author) [HAVE_STRUCT_STAT_ST_AUTHOR]:
2822         Correctly access SRC_SB's element ST_AUTHOR.
2823
2824 2006-07-26  Jim Meyering  <jim@meyering.net>
2825
2826         * tests/ls/stat-failed: Adapt to match new expected output.
2827         From Paul Eggert.
2828
2829         * src/ls.c (print_color_indicator): Test for S_IFREG first, rather
2830         than having the code test for all of the other types first.
2831         Hoist the set-uid/gid-testing code "up" into this new block.
2832         Classify any other type of file (e.g., S_TYPEISSHM, etc.) as
2833         C_ORPHAN, not as C_FILE.
2834
2835 2006-07-26  Jim Meyering  <jim@meyering.net>
2836
2837         Checking in a change from Paul.
2838
2839         2006-07-25  Paul Eggert  <eggert@cs.ucla.edu>
2840
2841         * src/ls.c (DT_INIT): Remove.  All uses removed.
2842         (enum filetype): Use an ordinary enum rather than trying to keep
2843         the values in sync with DT_FIFO etc.  That way, we don't have
2844         to make special assumptions about them.  All uses changed.
2845         (whiteout): New constant member of enum filetype.
2846         (filetype_letter): New constant, for use with enum filetype.
2847         (FILETYPE_INDICATORS): New initializer list.
2848         (print_dir): Add case for DT_WHT.
2849         (gobble_file): If stat fails, don't discard information from
2850         readdir; instead, preserve it so it can be printed.
2851         (print_long_format): Fall back on readdir result if stat info
2852         is not available.  Use "?" to denote each unknown mode char,
2853         instead of an overall "?", since we now know some of the mode
2854         typically.
2855         (print_type_indicator): Now that MODE isn't necessarily
2856         useful, guard all uses.
2857         Now that two blocks in the type-checking tree can set "type = C_FILE",
2858         move the suffix-handling code out and down.
2859
2860 2006-07-26  Jim Meyering  <jim@meyering.net>
2861
2862         Prepare for the above change.
2863         * src/ls.c [struct fileinfo] (stat_ok): Rename from stat_failed,
2864         and adjust uses.  From a patch by Paul Eggert.
2865
2866 2006-07-26  Jim Meyering  <jim@meyering.net>
2867
2868         * src/ls.c: Correct indentation/formatting in a few places.
2869
2870 2006-07-25  Paul Eggert  <eggert@cs.ucla.edu>
2871
2872         * tests/cp/fail-perm: Use "chmod 0500" rather than "chmod 500".
2873         Problem report and fix from Bob Proulx.
2874         * NEWS: Clarify the "chmod 0500" news, and correct the vague
2875         statements about compatibility with BSD.
2876
2877 2006-07-25  Jim Meyering  <jim@meyering.net>
2878
2879         * src/ls.c (gobble_file): When handling a stat-failed entry,
2880         print the entry name not the absolute_name -- to be consistent
2881         with the usual case.
2882         * tests/ls/stat-failed: Update accordingly.
2883
2884         * src/ls.c: Add parens around the new uses of ?: ternary operator.
2885
2886         * src/dircolors.hin: Mention that ORPHAN refers not just to dangling
2887         symlinks.
2888
2889         Get --dired offsets right when handling stat-failed entries.
2890         * src/ls.c (print_long_format): Be careful to increment P by the
2891         appropriate amount, even when inode_number_width and nlink_width
2892         are zero.
2893         * tests/ls/stat-failed: Test for the above.
2894
2895         * src/ls.c (gobble_file) [USE_ACL]: Don't use-uninitialized the
2896         have_acl member.  That would happen for a directory with both a
2897         non-stat'able entry and one with an ACL.
2898
2899         * src/ls.c (gobble_file): Make it so failure to stat a
2900         non-command-line file provokes an exit status of 1, not 0.
2901         Say "cannot access" rather than "cannot stat".
2902         * tests/ls/stat-failed: New file/test, for the above.
2903         * tests/ls/Makefile.am (TESTS): Add stat-failed.
2904         * tests/ls-2/tests (no-a-isdir-b): Update to reflect addition
2905         of "cannot access " to diagnostic.
2906
2907         * src/ls.c: Declare stat_failed to be "bool", not "int" everywhere.
2908
2909         * src/ls.c [enum filetype] (command_line): Remove member.  Not needed.
2910         Replace all occurrences of "type == command_line" with the
2911         equivalent, "command_line_arg".
2912
2913         * src/ls.c: Apply the stat-failed parts of Red Hat's
2914         coreutils-selinux.patch.  From Ulrich Drepper.
2915         This makes it so files not mentioned on the command line (e.g.,
2916         names read from a directory that *is* mentioned on the command
2917         line) for which stat fails are still listed.  With --color,
2918         such files are colored just like ORPHANs (aka dangling symlinks).
2919
2920         * src/df.c (n_valid_args): Declare global to be static.
2921
2922 2006-07-24  Jim Meyering  <jim@meyering.net>
2923
2924         * tests/ls/stat-dtype: Skip this test on reiserfs, since that file
2925         system lacks d_type support.
2926
2927 2006-07-22  Paul Eggert  <eggert@cs.ucla.edu>
2928
2929         * man/chmod.x: Update to reflect recent changes to coreutils.texi.
2930
2931 2006-07-21  Jim Meyering  <jim@meyering.net>
2932
2933         * src/su.c (usage): Correct typo in --help output: s/commmand/command/
2934         Reported by Tim Waugh.
2935         Also remove the comment duplicating much of --help output.
2936
2937         * src/ls.c (FILE_TYPE_INDICATOR_OPTION): Reposition this new
2938         name so the list remains alphabetized.
2939
2940         Fix another bug: ls --indicator-style=file-type would call
2941         stat for a symlink, even though it wasn't always needed.
2942         In some cases, that unnecessary stat would cause ls to fail.
2943         * src/ls.c (gobble_file): Don't treat symlinks specially (in
2944         requiring a stat syscall).  Remove the offending exclusion.
2945
2946         * NEWS: Mention the fix.
2947
2948         * tests/ls/stat-dtype: New file/test, for the above fix.
2949         Also exercises the new df feature, below.
2950
2951         * src/df.c (main): Fail and don't print the headers if no
2952         file system is processed.  This makes it easy to test whether
2953         a specified directory is on a file system of a given type or types.
2954         Otherwise, applications would have had to parse df's output.
2955         E.g., is "." either ext3 or reiserfs: df -t ext3 -t reiserfs .
2956
2957         Fix a bug: ls --file-type worked like --indicator-style=slash,
2958         rather than like --indicator-style=file-type.
2959         * src/ls.c (FILE_TYPE_INDICATOR_OPTION): New enum member.
2960         (long_options): Map "file-type" to FILE_TYPE_INDICATOR_OPTION,
2961         not to 'p'.
2962         (decode_switches): Handle new case: FILE_TYPE_INDICATOR_OPTION.
2963         * NEWS: Mention the fix.
2964         * tests/ls-2/tests (file-type): New test, for the above fix.
2965
2966 2006-07-19  Jim Meyering  <jim@meyering.net>
2967
2968         * src/ls.c (print_dir): Give a better diagnostic for failed opendir.
2969
2970         * Makefile.am (EXTRA_DIST): Add build-aux/vc-list-files.
2971
2972 2006-07-16  Paul Eggert  <eggert@cs.ucla.edu>
2973
2974         * NEWS: chmod, install, and mkdir now leave setgid and setuid bits
2975         of directories alone unless you specify them explicitly.
2976         install and mkdir now implement X correctly.
2977         install now creates parent directories with mode 755, without
2978         changing their owner or group.
2979         * src/chmod.c (process_file): Adjust to mode_adjust API change.
2980         * src/install.c: Include mkancesdirs.h.
2981         (announce_mkdir, make_ancestor): New functions.
2982         (DEFAULT_MODE): New macro, specifying initial value of 'mode'.
2983         (mode): Use it.
2984         (dir_mode, dir_mode_bits): New vars.
2985         (main): Set dir modes separately from nondir, so that the X
2986         op of -m works correctly.
2987         (main): Remove cwd_errno cruft, since make_dir_parents no longer
2988         affects cwd.  Adjust to new make_dir_parents API.
2989         (install_file_in_file_parents): 2nd arg is now char *, not char
2990         const *.  Use mkancesdirs instead of rolling our own code.
2991         (change_attributes): Don't worry about AFS, since that kludge
2992         should not be needed any more.
2993         * src/mkdir.c (struct mkdir_options): New struct.
2994         (announce_mkdir, make_ancestor): New functions.
2995         (main): Use them.  Adjust to mode_adjust API change.  Stick with
2996         umask 0.  Use make_dir_parents for all the work.
2997         * src/mkfifo.c (main): Adjust to new mode_adjust API.
2998         * src/mknod.c (main): Likewise.
2999         * tests/chmod/setgid: Do the setgid test instead of bailing.
3000         * tests/mkdir/p-3: Remove re_protect case that no longer applies.
3001         GNU chmod now behaves like other versions of chmod.
3002         * tests/mkdir/perm: Add a test for the X bug.
3003
3004 2006-07-14  Paul Eggert  <eggert@cs.ucla.edu>
3005
3006         * src/base64.c (do_decode): Output to parameter OUT, not to stdout.
3007         This doesn't fix any bugs, since OUT always equals stdout, but it
3008         makes the code easier to understand.
3009
3010 2006-07-14  Jim Meyering  <jim@meyering.net>
3011
3012         * Makefile.maint (CVS_LIST): Use new file, build-aux/vc-list-files,
3013         rather than open-coding it.  Now supports mercurial, too.
3014         * .hgignore: New file.
3015         * Makefile.am (EXTRA_DIST): Add .hgignore, which ignores nearly
3016         all generated files, including ones like configure and po/*.po
3017         that are currently version-controlled in cvs.
3018
3019         * Makefile.am (EXTRA_DIST): Add a few more .??* files.
3020         They've been in CVS, just haven't been distributed before this.
3021         Distribute ChangeLog-2005, too.
3022         (MAINTAINERCLEANFILES): Add THANKS-to-translators.
3023
3024 2006-07-11  Paul Eggert  <eggert@cs.ucla.edu>
3025
3026         * src/system.h: Assume <dirent.h> exists, since gnulib assumes
3027         this now as well.
3028
3029 2006-07-09  Jim Meyering  <jim@meyering.net>
3030
3031         * tests/mv/dir2dir: Adjust so failing with ENOTEMPTY is ok, too.
3032         That happens with Linux/tmpfs.
3033         * tests/mv/Makefile.am (TESTS): Add dir2dir.
3034
3035 2006-07-09  Paul Eggert  <eggert@cs.ucla.edu>
3036
3037         Adjust to recent updates from gnulib.
3038         * src/dd.c (apply_translations): Use toupper rather than
3039         islower followed by toupper; it's simpler and typically
3040         faster now that we assume at least C89 semantics.  Similarly
3041         for tolower.
3042         * src/sort.c (inittables): Likewise.
3043         * src/expand.c (expand): Don't assume that isprint etc. return
3044         booleans (needed for pre-C99 hosts).
3045         * src/fmt.c (check_punctuation): Likewise.
3046         * src/ptx.c (initialize_regex, fix_output_parameters): Likewise.
3047         * src/tr.c (is_char_class_member): Likewise.
3048         * src/unexpand.c (unexpand): Likewise.
3049         * src/join.c (is_blank): Remove; no longer needed.  All uses
3050         replaced by isblank (to_uchar (...)).
3051         * src/pinky.c (create_fullname): Don't assume char is unsigned.
3052         * src/printf.c (print_esc): Likewise.
3053         * src/ptx.c (SKIP_NON_WHITE, SKIP_WHITE, SKIP_WHITE_BACKWARDS):
3054         (copy_unescaped_string): Likewise.
3055         * src/stat.c (print_it): Likewise.
3056         * src/system.h (_D_EXACT_NAMELEN): Renamed from NLENGTH, for
3057         convenience on GNU systems.  All uses changed.  Don't bother
3058         looking for any dirent.h substitute other than ndir.h.
3059         (D_INO): Remove unnecessary parentheses.
3060         (IN_CTYPE_DOMAIN, ISGRAPH, ISPRINT, ISALNUM, ISALPHA):
3061         (ISCNTRL, ISLOWER, ISPUNCT, ISSPACE, ISUPPER, ISXDIGIT):
3062         (ISDIGIT_LOCALE, TOLOWER, TOUPPER): Remove.  All uses changed
3063         to ctype.h equivalents.
3064         (isblank): Renamed from ISBLANK.  Check for HAVE_DECL_ISBLANK too.
3065         All uses changed.
3066
3067 2006-07-08  Jim Meyering  <jim@meyering.net>
3068
3069         * tests/mv/dir2dir: New file, test for 2006-07-05 fix in copy.c.
3070
3071         * Makefile.maint (sc_the_the): New rule.
3072
3073         * src/dd.c (skip): Remove one of two adjacent "the"s in a comment.
3074         * tests/Coreutils.pm (run_tests): Remove one of two adjacent "then"s
3075         in a comment.
3076
3077 2006-07-07  Jim Meyering  <jim@meyering.net>
3078
3079         * NEWS: Mention that mv can now remove an empty destination directory,
3080         and give an example.  Prompted by a report from Florent Bayle.
3081
3082 2006-07-05  Jim Meyering  <jim@meyering.net>
3083
3084         * src/ls.c (usage): Correct the description of -G: it is useful
3085         only in a long listing.  Reported by Martin Pool in
3086         <https://launchpad.net/distros/ubuntu/+source/coreutils/+bug/51653>.
3087
3088         * man/chmod.x: Correct the description of the sticky bit.  Reported
3089         by Chris Moore via Ian Jackson in <http://bugs.debian.org/376745>.
3090
3091         * src/copy.c (copy_internal): Don't work around old NFS clients like
3092         SunOS-4.1.4 and Irix 5.3 that set errno to values like EIO and
3093         ENOTEMPTY upon failed rename.  Otherwise, we risk misinterpreting
3094         a banal failure as a recursive move-into-self failure.
3095         Reported by Florent Bayle in <http://bugs.debian.org/376749>.
3096
3097         * src/c99-to-c89.diff: Regenerate, to remove fuzz.
3098
3099 2006-07-03  Jim Meyering  <jim@meyering.net>
3100
3101         Plug another unusual leak.
3102         (AD_mark_helper): Free malloc'd filename if hash_insert says
3103         that string is already in the hash table.
3104
3105         The dev/inode of the topmost directory in each hierarchy were not
3106         being recorded.
3107         * src/remove.c (remove_cwd_entries): Don't call cycle_check here.
3108         (AD_push): Call it from here instead.
3109
3110         Fix two small leaks.
3111         * src/remove.c (AD_stack_clear): New function.
3112         (rm_1): Use it.
3113         (AD_pop_and_chdir): Free *prev_dir just before longjmp.
3114
3115         * tests/Makefile.am, tests/*/Makefile.am: (TESTS_ENVIRONMENT):
3116         Add $VG_PATH_PREFIX as a prefix to $PATH
3117
3118         * tests/envvar-check (vars): Add CDPATH and POSIXLY_CORRECT.
3119         * tests/Makefile.am (evar-check): Remove rule.
3120         (EXTRA_DIST): Remove .env-warn.
3121         * tests/.env-warn: Remove file.  No longer used.
3122         Suggestion from Eric Blake.
3123
3124 2006-07-02  Paul Eggert  <eggert@cs.ucla.edu>
3125
3126         * src/system.h: Include <stdint.h> unconditionally, since we
3127         now assume the stdint module.
3128
3129 2006-07-01  Paul Eggert  <eggert@cs.ucla.edu>
3130
3131         * NEWS: With no operand, 'tail -f' now silently ignores the '-f'
3132         only if standard input is a FIFO or pipe and POSIXLY_CORRECT is set.
3133         * src/tail.c (main): Implement this.
3134         * tests/tail/Test.pm (f-pipe-1): Renamed from f-1.
3135         (test_vector): Set POSIXLY_CORRECT for the f-pipe-* tests.
3136
3137 2006-07-01  Jim Meyering  <jim@meyering.net>
3138
3139         * src/ln.c (do_link): Use new, shorter URL, for ag-review link.
3140
3141         * .x-sc_require_config_h: Add ^lib/xstrtold\.c$, so make distcheck
3142         passes once again.
3143
3144 2006-06-30  Paul Eggert  <eggert@cs.ucla.edu>
3145
3146         * NEWS: seq now uses long double internally rather than double.
3147         It now defaults to a minimal fixed point format if possible.
3148         It lets you use %a, %A, %E, %F, %G.
3149         * src/Makefile.am (seq_LDADD): Remove $(SEQ_LIBM); add $(POW_LIB).
3150         * src/seq.c: Don't include <math.h> or <xstrtol.h>; no longer needed.
3151         (isfinite) [!defined isfinite]: New macro.
3152         (separator, terminator): Now points to const.
3153         (first, step, last): Remove.
3154         (usage): Update to match new behavior.
3155         (struct operand, operand): New type.
3156         (scan_arg): Renamed from scan_double_arg, since we no longer use double.
3157         All uses changed.
3158         Compute and return a value of type operand, not double.
3159         (long_double_format): Renamed from valid_format, and now returns a
3160         new format with an "L" added if needed, if the original format was
3161         valid.  Allow %a, %A, %E, %F, and %G formats.
3162         (print_numbers): Take numeric values as args rather than from globals.
3163         Print long double, not double.
3164         (get_width_format): Remove.
3165         (get_default_format): New function.
3166         (main): Implement new way of calculating default format.
3167         Don't worry about locale's representation of the decimal point, since
3168         the arguments are always processed in the C locale.
3169         * tests/seq/basic (neg-2): Adjust to new default format.
3170         (eq-wid-1, eq-wid-2): Resurrect these tests, since the new
3171         implementation should do the right thing.
3172
3173 2006-06-30  Jim Meyering  <jim@meyering.net>
3174
3175         * tests/stty/basic-1: Work around an intermittent test failure
3176         on HP-UX 11.11.  Report and analysis from Bob Proulx.
3177         http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/7475
3178
3179 2006-06-28  Paul Eggert  <eggert@cs.ucla.edu>
3180
3181         * NEWS: Support obsolete usages like "sort +1 -2" even when
3182         conforming to POSIX 1003.1-2001, since this is a pure extension to
3183         POSIX.  Problem reported by Christian in:
3184         http://lists.gnu.org/archive/html/bug-coreutils/2006-06/msg00220.html
3185         * src/sort.c (main): Implement this.
3186
3187         * src/system.h (CLOSEDIR): Remove.  All uses changed to closedir.
3188         Autoconf 2.60 says this stuff was obsolete.
3189
3190 2006-06-28  Jim Meyering  <jim@meyering.net>
3191
3192         * src/c99-to-c89.diff: Regenerate, to remove fuzz.
3193
3194 2006-06-28  Bob Proulx  <bob@proulx.com>  (tiny change)
3195
3196         * tests/mv/i-link-no: Work around HP-UX /bin/sh tracing problem
3197         (set -x when VERBOSE=yes) when stderr is redirected before stdout
3198         causing shell tracing of the stdout redirection to be written to
3199         the stderr file.  Avoid problem and test failure on HP-UX by
3200         redirecting stderr last.
3201         * tests/dd/unblock-sync: Order shell file redirections for
3202         stderr and stdout in the common style.
3203         tests/acl: Likewise.
3204
3205 2006-06-27  Jim Meyering  <jim@meyering.net>
3206
3207         * tests/misc/cat-proc: Try to avoid any spurious numeric
3208         differences in frequently-changing /proc/cpuinfo.
3209         Reported by Nelson Beebe.
3210
3211 2006-06-26  Jim Meyering  <jim@meyering.net>
3212
3213         Attempt rmdir (actually, unlinkat-with-AT_REMOVEDIR) upon any
3214         fd_to_subdirp failure, not just when errno == EACCES.
3215         * src/remove.c (remove_dir): Use unlinkat-with-AT_REMOVEDIR, not
3216         rmdir, here, even though rmdir may happen to be adequate.
3217
3218         * NEWS: rm no longer fails to remove an empty, unreadable directory
3219         * src/remove.c (remove_cwd_entries): If we can't open a directory,
3220         and the failure is not being ignored, try to remove the directory
3221         with rmdir (aka unlinkat-with-AT_REMOVEDIR), in case it's empty.
3222         Problem report and test case from Paul Eggert in
3223         <http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/7425>.
3224
3225         * tests/rm/empty-inacc: New test, for the above.
3226
3227         Avoid a segfault for wc --files0=- < /dev/null.
3228         * src/wc.c (compute_number_width): Return right away if nfiles == 0.
3229
3230 2006-06-25  Jim Meyering  <jim@meyering.net>
3231
3232         * NEWS: wc accepts a new option --files0-from=FILE, where FILE
3233         contains a list of NUL-separated file names.
3234
3235         * src/wc.c: Include "readtokens.h".
3236         (usage): Describe the new option, and adjust the `Usage':
3237         with this option, no FILE may be specified on the command line.
3238         (main): Handle the new option.
3239         * tests/misc/wc-files0: New tests, for the above.
3240         * tests/misc/wc-files0-from: Likewise.
3241         * tests/misc/Makefile.am (TESTS): Add wc-files0.
3242
3243 2006-06-24  Jim Meyering  <jim@meyering.net>
3244
3245         * src/md5sum.c (DIGEST_BUFFER): Remove now-unused definitions.
3246
3247 2006-06-22  Jim Meyering  <jim@meyering.net>
3248
3249         * src/tee.c (tee_files): Rename from tee, to avoid conflict with
3250         the function in glibc's <fcntl.h>.  Reported by Andreas Schwab.
3251
3252 2006-06-19  Jim Meyering  <jim@meyering.net>
3253
3254         * Makefile.cfg (local-checks-to-skip): Add changelog-check,
3255         so this check is not run as part of "make distcheck".
3256
3257 2006-06-18  Bob Proulx  <bob@proulx.com>  (tiny change)
3258
3259         * tests/misc/pwd-long: Fix typo (s/neq/ne/) in previous change.
3260
3261 2006-06-18  Jim Meyering  <jim@meyering.net>
3262
3263         * tests/misc/pwd-long: Make error output a little clearer.
3264
3265 2006-06-17  Jim Meyering  <jim@meyering.net>
3266
3267         * tests/rm/inaccessible: Skip this test on systems without openat
3268         support.  Reported by Bob Proulx.
3269
3270 2006-06-15  Bob Proulx  <bob@proulx.com>  (tiny change)
3271
3272         * tests/misc/mknod: Improve permission checks to handle
3273         running mkdir test in set-gid directories.
3274
3275 2006-06-14  Jim Meyering  <jim@meyering.net>
3276
3277         * tests/du/basic: Revamp not to hard-code file system block sizes.
3278
3279 2006-06-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3280
3281         * tests/du/Makefile.am (TESTS_ENVIRONMENT): Pass $(PERL), for
3282         files0-from test.
3283
3284 2006-06-11  Jim Meyering  <jim@meyering.net>
3285
3286         * .gitignore: New file.
3287         * Makefile.am (EXTRA_DIST): Add .gitignore.
3288
3289         Setting TIME_STYLE=long-iso in the environment would make the
3290         cp/same-file test fail.
3291         * tests/envvar-check (vars): Add TIME_STYLE to the list.
3292         * tests/cp/same-file: Revert last change.
3293         Source the envvar-check script, to ensure that TIME_STYLE
3294         settings don't affect these tests.
3295
3296 2006-06-11  Paul Eggert  <eggert@cs.ucla.edu>
3297
3298         * tests/cp/same-file: Execute 'ls' in the C locale, so that it
3299         uses POSIX time stamp formats.  Problem reported by John Nixon in
3300         <http://lists.gnu.org/archive/html/bug-coreutils/2006-06/msg00062.html>.
3301
3302 2006-06-10  Jim Meyering  <jim@meyering.net>
3303
3304         * NEWS: Mention the AIX-strndup-bug vs. dircolors workaround.
3305
3306         Require a "Version N.M" line at the top of the ChangeLog
3307         file only when making the actual release, not when running
3308         "make distcheck".
3309         * Makefile.maint (maintainer-distcheck): Don't depend on
3310         changelog-check.
3311         (alpha beta major): Depend on it here, instead.
3312
3313 2006-06-08  Jim Meyering  <jim@meyering.net>
3314
3315         Ensure that cat works with any of the options, -A -v -e -E -T,
3316         when applied to files in /proc and /sys, even when the FIONREAD
3317         ioctl produces nonsensical results.  Before this change, cat would
3318         produce no output (or truncated output), for some linux kernels.
3319
3320         * src/cat.c (write_pending): New function, factored out of cat.
3321         (cat): Also interpret a negative ioctl/FIONREAD count as indicating
3322         that there are bytes to read.  Some versions of linux-2.6.16 do that.
3323         Write any pending output before returning.
3324         Reported by Dan Jacobson in <http://bugs.debian.org/370583>.
3325         * NEWS: Mention this bug fix.
3326         * tests/misc/cat-proc: New file.  Test for the above.
3327         * tests/misc/Makefile.am (TESTS): Add cat-proc.
3328
3329 2006-06-07  Paul Eggert  <eggert@cs.ucla.edu>
3330
3331         * src/expr.c (eval4): Detect overflow properly when multiplying
3332         INTMAX_MIN * -1.
3333
3334 2006-06-06  Paul Eggert  <eggert@cs.ucla.edu>
3335
3336         * NEWS: The 'expr' command now detects and reports integer overflow.
3337         (It would be better to use extended precision instead, but that
3338         would be more work.)
3339         * src/expr.c (integer_overflow): New function.
3340         (eval4, eval3): Check for integer overflow.
3341
3342 2006-06-05  Paul Eggert  <eggert@cs.ucla.edu>
3343
3344         Fix problems when building with Solaris/SVR4/etc. make, which uses a
3345         different and somewhat bogus implementation of VPATH.  In the
3346         directory tests/misc, rename tests whose names might appear in the
3347         Automake-generated rules.  For example, we can't use a test named
3348         'test', since Automake generates a rule that contains the text
3349         "if test -f ./$$tst; ...", and this might expand to something like
3350         "if ../../../coreutils-6.0/tests/misc/test -f ./$$test; ...",
3351         which executes the 'test' script rather than the 'test' command.
3352         * tests/misc/false-status: Renamed from tests/misc/false.
3353         * tests/misc/pwd-long: Renamed from tests/misc/pwd.
3354         * tests/misc/sort-merge: Renamed from tests/misc/sort.
3355         ($prog): Set to 'sort' rather than to $PROG.
3356         * tests/misc/test-diag: Renamed from tests/misc/test.
3357         * tests/misc/Makefile.am (PROG): Take the basename of $$tst,
3358         in case Solaris make has prepended the directory.
3359         (TESTS): Adjust to above renamings.
3360         * tests/misc/expand: Don't assign to PROG; no longer needed
3361         now that Makefile.am sets PROG to the basename.
3362         * tests/misc/fold: Likewise.
3363
3364 2006-06-03  Jim Meyering  <jim@meyering.net>
3365
3366         Make `cp --link --no-dereference' work also on systems where the
3367         link system call cannot create a hard link to a symbolic link.
3368         * src/copy.c (copy_internal) [LINK_FOLLOWS_SYMLINKS]: Don't use
3369         the link syscall on a symlink when it would do the wrong thing.
3370         Based on the patch by Aurelien Jarno: <http://bugs.debian.org/329451>
3371         * tests/cp/link-no-deref: New file/test for the above.
3372         * tests/cp/Makefile.am (TESTS): Add link-no-deref.
3373         * NEWS: Mention the change (doesn't affect Linux).
3374
3375 2006-06-01  Paul Eggert  <eggert@cs.ucla.edu>
3376
3377         Fix some porting problems in the test cases reported by
3378         Ralf Wildenhues for HP-UX 11.23 in:
3379         http://lists.gnu.org/archive/html/bug-coreutils/2006-05/msg00238.html
3380         * tests/help-version: Don't assume that \< \> works in sed.
3381         * tests/misc/close-stdout: Don't assume that >&- works.
3382         Add a /dev/full test.
3383         * tests/touch/no-create-missing: Don't assume that >&- works.
3384
3385 2006-05-30  Jim Meyering  <jim@meyering.net>
3386
3387         * src/ls.c (usage): Add `v' to the list of sorting-related options.
3388         From Justin Pryzby.
3389
3390 2006-05-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3391
3392         * tests/cp/fail-perm: source lang-default.
3393         * tests/rm/inaccessible: Likewise.
3394
3395 2006-05-28  Jim Meyering  <jim@meyering.net>
3396
3397         * tests/rm/inaccessible: AIX 4.3.3 gives a different diagnostic.
3398         Recognize it, too.  Reported by Ralf Wildenhues, in
3399         http://lists.gnu.org/archive/html/bug-coreutils/2006-05/msg00192.html
3400
3401 2006-05-27  Jim Meyering  <jim@meyering.net>
3402
3403         * src/chgrp.c: Support new options: --preserve-root and
3404         --no-preserve-root.  Somehow this program was skipped when those
3405         options were added to chown, chmod, and rm.  Reported by
3406         vaqflabuopac@spammotel.com in <http://bugs.debian.org/365656>.
3407         * NEWS: Mention this.
3408
3409 2006-05-25  Paul Eggert  <eggert@cs.ucla.edu>
3410
3411         * NEWS: Remove mention of --seed.  We'll replace it with something
3412         better, and don't want to indicate that it is supported.
3413         * src/sort.c (usage): Likewise.
3414
3415 2006-05-20  Jim Meyering  <jim@meyering.net>
3416
3417         * src/chmod.c (main): Use FTS_PHYSICAL here, too.
3418
3419         * src/du.c (main): Rename local, s/symlink_deref_bit/symlink_deref_bits/
3420         and arrange for -D to set fts' FTS_PHYSICAL bit as well as
3421         FTS_COMFOLLOW.  Spotted by Justin Pryzby.
3422
3423         * gnupload: Merge changes from automake, retaining the ""--to...
3424         kludge to placate overzealous `make distcheck' check.
3425
3426 2006-05-19  Jim Meyering  <jim@meyering.net>
3427
3428         * src/du.c (main): Don't let -D, -L, or -P turn off the internal
3429         FTS_TIGHT_CYCLE_CHECK directory traversal option.
3430         Reported by Justin Pryzby in http://bugs.debian.org/367691
3431
3432 2006-05-15  Jim Meyering  <jim@meyering.net>
3433
3434         * src/cp.c (usage): Correct description of -a: s/-dpR/-dpPR/.
3435         From Tomas Pospisek.
3436
3437 2006-05-13  Jim Meyering  <jim@meyering.net>
3438
3439         * tests/mv/no-target-dir: Test two more cases.
3440
3441 2006-05-11  Jim Meyering  <jim@meyering.net>
3442
3443         mv -T DIR EMPTY_DIR no longer fails unconditionally
3444         * src/copy.c (copy_internal): Don't manually prohibit a move where
3445         the destination is an existing directory.  Sometimes doing that is
3446         valid.  Let the rename system call enforce the rules.  That is
3447         allowed only when the source is a directory and the destination
3448         directory (to be replaced) is empty.  Reported by Eric Blake.
3449         * tests/mv/no-target-dir: New file/test for this.
3450         * tests/mv/Makefile.am (TESTS): Add no-target-dir.
3451         * NEWS: Mention this.
3452
3453         * tests/mv/atomic: New file/test for yesterday's fix.
3454         * tests/mv/Makefile.am (TESTS): Add atomic.
3455
3456         * tests/du/long-sloop: Avoid harmless `ambiguous redirect' diagnostic.
3457
3458 2006-05-10  Jim Meyering  <jim@meyering.net>
3459
3460         * src/copy.c (copy_internal): Don't explicitly unlink the destination
3461         when moving a symlink into the place of an existing non-directory.
3462         Reported by Joshua Hudson.
3463         * NEWS: mention this.
3464
3465 2006-05-07  Jim Meyering  <jim@meyering.net>
3466
3467         * Makefile.maint (patch-check): Fail if patch generates any output,
3468         even merely for changed offsets.
3469
3470         * src/c99-to-c89.diff: Adjust to reflect new offsets.
3471
3472         * NEWS: Mention changes affecting df, pwd, shred.
3473
3474 2006-05-06  Jim Meyering  <jim@meyering.net>
3475
3476         * tests/ls/stat-vs-dirent: New test, to detect the bogus file
3477         system condition where dirent.d_ino != stat.st_ino.
3478         * tests/ls/Makefile.am (TESTS): Add stat-vs-dirent.
3479
3480 2006-05-06  Eric Blake  <ebb9@byu.net>
3481
3482         * tests/ls/inode: Expand to test inode from readdir case.
3483         * tests/ls/follow-slink: Expand to test broken links encountered
3484         implicitly, favoring Solaris 9 and OpenBSD 3.4 behavior.
3485
3486 2006-05-06  Eric Blake  <ebb9@byu.net>
3487
3488         * tests/mv/leak-fd: Work even on case-insensitive file system.
3489
3490 2006-05-04  Jim Meyering  <jim@meyering.net>
3491
3492         * NEWS: Mention the 2006-03-19 pwd-related change that makes
3493         lib/getcwd.c work around inconsistent file system dirent.d_ino data.
3494
3495 2006-05-03  Jim Meyering  <jim@meyering.net>
3496
3497         * src/ls.c (DEFINE_SORT_FUNCTIONS, LIST_SORTFUNCTION_VARIANTS):
3498         Use better macro parameter names: s/basename/key_name/,
3499         s/basefunc/key_cmp_func.  Fix typo in comment.
3500
3501 2006-04-29  Eric Blake  <ebb9@byu.net>
3502
3503         * src/ls.c (main): On systems with d_type, directories_first only
3504         implies format_needs_type, not format_needs_stat.
3505
3506 2006-05-03  Jim Meyering  <jim@meyering.net>
3507
3508         * src/ls.c (xstrcoll_df_version, rev_xstrcoll_df_version): Add space
3509         after comma in arg list, from Eric Blake.
3510
3511 2006-04-25  Paul Eggert  <eggert@cs.ucla.edu>
3512
3513         * tests/misc/date (relative-3): New test, derived from a bug
3514         report by John Thomas McDole.
3515
3516 2006-04-23  Francesco Montorsi  <fr_m@hotmail.com>
3517
3518         New option for ls: --group-directories-first.
3519         It makes ls list directories before files.
3520         * NEWS [New features]: Mention it.
3521         * src/ls.c (sort_type): Rearrange to use as an array index when
3522         choosing sort function; added new sort_numtypes member for
3523         compile-time check.
3524         (time_type): Add new time_numtypes member for compile-time check.
3525         (directories_first): New global variable.
3526         (GROUP_DIRECTORIES_FIRST_OPTION): New enum.
3527         (long_options): Add --directories-first.
3528         (main): Support new option.
3529         (is_directory): New function.
3530         (extract_dirs_from_files): Use it.
3531         (DIRFIRST_CHECK, DEFINE_SORT_FUNCTIONS)
3532         (LIST_SORTFUNCTION_VARIANTS): New macros.
3533         (sort_functions): New global variable.
3534         (sort_files): Use it.
3535         (usage): Document new option.
3536
3537 2006-04-18  Paul Eggert  <eggert@cs.ucla.edu>
3538
3539         * src/shred.c (fillrand): The assertion was way too weak, due to
3540         what must be a typo.  Strengthen it to its intended value.
3541         (dopass): Don't use alloca; it's not worth the aggravation here,
3542         since it's used only to get a page-aligned buffer, and page
3543         alignment doesn't buy us much here.  I'm suspicious that alloca
3544         causes problems on some hosts, due to a recent bug report by Adam
3545         Waltman: http://bugs.gentoo.org/130246.
3546
3547 2006-04-18  Jim Meyering  <jim@meyering.net>
3548
3549         * tests/misc/tty-eof: Add new programs, base64, sha224sum, sha256sum,
3550         sha384sum, sha512sum.
3551
3552 2006-04-17  Paul Eggert  <eggert@cs.ucla.edu>
3553
3554         * src/chmod.c (describe_change): Adjust to filemode changes.
3555         * src/ls.c (HAVE_ST_DM_MODE): Remove; moved to ../lib/filemode.c.
3556         (print_long_format): Use (new) filemodestring rather than
3557         (old) mode_string, so that we get more file types right, at least
3558         in theory.  Adjust to filemode changes.
3559         * src/stat.c (human_access): Likewise.
3560
3561 2006-04-18  Jim Meyering  <jim@meyering.net>
3562
3563         * src/ptx.c (main) [DEFAULT_IGNORE_FILE]: Remove code to use a default
3564         ignore file.  This has never been enabled.  Reported by Eric Blake.
3565
3566 2006-04-12  Paul Eggert  <eggert@cs.ucla.edu>
3567
3568         * src/ln.c (linkfunc): Remove.  This method ran into a compiler/linker
3569         bug in Interix.  Just call symlink or link directly.  All uses changed.
3570         * src/setuidgid.c (main) [! HAVE_SETGROUPS]: Don't call setgroups.
3571         * src/stat.c (USE_STATVFS): New macro.
3572         Include <sys/statvfs.h> and use statvfs only if USE_STATVFS.
3573         (NAMEMAX_FORMAT): define a bit more clearly, now that the
3574         statvfs-using code is a bit more regular.
3575         * src/system.h (sync) [!HAVE_SYNC]: New macro.
3576
3577 2006-04-11  Paul Eggert  <eggert@cs.ucla.edu>
3578
3579         * NEWS: csplit, nl, expr now conform to POSIX better, and are
3580         more-compatible with traditional Unix, with respect to regular
3581         expressions.
3582         * src/csplit.c (extract_regexp): Set re_syntax_options to a
3583         value that is compatible with what POSIX requires.
3584         * src/nl.c (build_type_arg): Likewise.
3585         * src/expr.c (docolon): Likewise.  Also, don't let anchors match
3586         newline; this fixes an incompatibility with tradition and with POSIX.
3587         Don't warn about leading ^.  POSIX says it is unspecified whether
3588         ^ is a special character, which means that implementations can
3589         either treat it as special or not, but either way a warning is not
3590         allowed (unless the regexp is otherwise invalid).  Instead, anchor
3591         the expression but treat ^ as an anchor; this is the traditional
3592         behavior (e.g., Solaris 10).
3593         (eval4, eval3, eval2): Treat non-numeric args, division by zero,
3594         and the like as invalid expressions (exit status 2), not as
3595         failure of 'expr' (exit status 3).  This is more consistent with
3596         how Solaris behaves.
3597         * tests/expr/basic (fail-a): Adjust exit status to match new expr
3598         behavior, for status 2 versus 3.
3599         (anchor): New test.
3600         (bre1, bre2, bre3, bre4, bre5, bre6, bre7, bre8, bre9, bre10):
3601         (bre11, bre12, bre13, bre14, bre15, bre16, bre17, bre18, bre19, bre20):
3602         (bre21, bre22, bre23, bre24, bre25, bre26, bre27, bre28, bre29, bre30):
3603         (bre31, bre32, bre33, bre34, bre35, bre36, bre37, bre38, bre39, bre40):
3604         (bre41, bre42, bre43, bre44, bre45, bre46, bre47, bre48, bre49, bre50):
3605         (bre51, bre52, bre53, bre54, bre55, bre56, bre57, bre58, bre59, bre60):
3606         (bre61, bre62): New tests.
3607         * tests/misc/csplit: Use \{...\} in test RE, to test that we're
3608         conforming to POSIX.
3609
3610         Port to Solaris 8.
3611         * tests/du/long-from-unreachable: Solaris 8 sh doesn't understand
3612         "if !".  Do not assume that 'sed' can handle long, newline-free input.
3613         * tests/du/long-sloop: Likewise.  Evaluate expr once, not $n times.
3614
3615 2006-04-10  Paul Eggert  <eggert@cs.ucla.edu>
3616
3617         Adjust to new regex.h API (with new fastmap type), and clean
3618         up the regex storage allocation a bit.
3619
3620         * src/csplit.c (struct control): Put re_compiled member at the
3621         end, since it's large.  Change regexpr member from char * to bool;
3622         all uses changed.  Add new member fastmap.
3623         (extract_regexp): regexp arg is now char const *, not char *.
3624         Don't bother duplicating the regular expression; it's not needed.
3625         Set fastmap from new fastmap member.  Don't bother allocating
3626         a buffer, as the regexp code does a better job than we do.
3627         * src/expr.c (docolon): Allocate and use a fastmap.
3628         Don't bother allocating a buffer.
3629         * src/nl.c (body_fastmap, header_fastmap, footer_fastmap):
3630         New vars.
3631         (build_type_arg): New fastmap arg.  All uses changed.
3632         Don't bother allocating a buffer, but set a fastmap.
3633         * src/ptx.c (context_regex_string, word_regex_string): Remove.
3634         (context_regex, word_regex): New vars, replacing the above.
3635         All uses changed.
3636         (struct regex_data): New type.
3637         (compile_regex): Renamed from alloc_and_compile_regex, since
3638         we no longer allocate storage.  Arg is now a struct regex_data *,
3639         not a const char *.  All uses changed.  Don't allocate the fastmap;
3640         instead, take it from the caller.  Don't convert size_t to int,
3641         to avoid arithmetic overflow problems.  Don't bother freeing
3642         storage afterwards; it's not worth the aggravation.
3643         * src/tac.c (compiled_separator_fastmap): New ver.
3644         (main): Use it.  Don't bother allocating a buffer.
3645
3646 2006-03-30  Jim Meyering  <jim@meyering.net>
3647
3648         * src/dd.c (iwrite): Remove assignment without effect.
3649         Reported by Felix Rauch Valenti.
3650
3651 2006-03-22  Eric Blake  <ebb9@byu.net>
3652
3653         * src/ptx.c (usage): Remove mention of --copyright/-C.
3654         (main): Alias --copyright to --version plus a deprecation warning.
3655         * NEWS: Mention this.
3656
3657 2006-03-27  Jim Meyering  <jim@meyering.net>
3658
3659         * src/Makefile.am (uptime_LDADD): Add $(POW_LIB), for uptime's
3660         use of strtod.  Tiny patch from Nickolai Zeldovich.
3661
3662 2006-03-11  Eric Blake  <ebb9@byu.net>
3663
3664         * tests/misc/dirname: New file.
3665         * tests/basename/Makefile.am: Delete.
3666         * tests/basename/basic: Move to...
3667         * tests/misc/basename: ... this new file.  Add some tests,
3668         including fixed behavior for //.
3669         * tests/misc/Makefile.am (TESTS): Sort.  Add basename, dirname.
3670         * tests/Makefile.am (SUBDIRS): Remove basename.
3671         * configure.ac (AC_CONFIG_FILES): Remove tests/basename.
3672
3673         Improvements to dirname/basename handling on platforms like
3674         cygwin with distinct // and with drive letters.
3675         * NEWS: Document new behavior.
3676         * src/basename.c (main): Don't strip suffix from file system
3677         roots.
3678         * src/cp.c (target_directory_operand): Use new last_component.
3679         (ASSIGN_BASENAME_STRDUPA): Likewise.  Reduce time spent
3680         traversing the string.
3681         * src/dircolors.c (guess_shell_syntax): Use new last_component.
3682         * src/install.c (target_directory_operand, install_file_in_dir):
3683         Likewise.
3684         * src/ln.c (target_directory_operand, main): Likewise.
3685         * src/ls.c (basename_is_dot_or_dotdot): Likewise.
3686         * src/mv.c (target_directory_operand, movefile): Likewise.
3687         * src/remove.c (rm_1): Likewise.
3688         * src/shred.c (wipename): Likewise.
3689         * src/split.c (next_file_name): Likewise.
3690         * src/su.c (log_su, run_shell): Likewise.
3691
3692 2006-03-23  Paul Eggert  <eggert@cs.ucla.edu>
3693
3694         * NEWS: nohup diagnostics are now more precise, and nohup now
3695         redirects stderr to nohup.out if stdout is closed and stderr is a tty.
3696         * src/nohup.c (main): Implement this.
3697         * tests/misc/nohup: Test the new behavior.
3698
3699 2006-03-12  Jim Meyering  <jim@meyering.net>
3700
3701         * src/copy.c (set_author): Rename function, from preserve_author.
3702
3703         * src/remove.c (AD_pop_and_chdir): Use new macro,
3704         CYCLE_CHECK_REFLECT_CHDIR_UP, rather than open-coding it.
3705
3706         * src/system.h (SAME_INODE): Remove definition.
3707         Include "same-inode.h", instead.
3708
3709 2006-03-11  Eric Blake  <ebb9@byu.net>
3710
3711         * src/pwd.c (robust_getcwd): Prepend only one slash, not two.
3712
3713 2006-03-10  Jim Meyering  <jim@meyering.net>
3714
3715         Fix a bug whereby a user with write access to a directory being removed
3716         could cause the removal of that directory to fail with an erroneous
3717         diagnostic about a directory cycle.  Reported by Vineet Chadha.
3718
3719         * NEWS: Mention this.
3720         * src/remove.c (AD_pop_and_chdir): If the directory we're about to
3721         leave (and try to rmdir) is the one whose dev_ino is being used to
3722         detect a cycle, reset cycle_check_state.dev_ino to that of the parent.
3723
3724 2006-03-08  Paul Eggert  <eggert@cs.ucla.edu>
3725
3726         * NEWS: Document dd's new 'directory' and 'nolinks' flags.
3727         * src/dd.c (set_fd_flags): Handle file-creation flags on file
3728         descriptors, rather than ignoring them.
3729         * tests/dd/misc: Add test cases for append, nofollow, directory,
3730         and nolinks flags.  Simplify redirection to /dev/null in some cases.
3731
3732         * tests/dd/misc: iflags->iflag.  This fixes a typo that meant the
3733         noatime test never tested anything.
3734
3735 2006-03-05  Paul Eggert  <eggert@cs.ucla.edu>
3736
3737         * src/dd.c (flags, usage): New flags directory, nolinks.
3738         * src/system.h (O_NOLINKS): Define to 0 if not already defined.
3739
3740         * src/ls.c (usage): Mention that -f disables --color.
3741         Problem reported by Niels Möller.
3742
3743 2006-03-03  Justin Pryzby  <pryzbyj@justinpryzby.com>
3744
3745         * man/*.x: Add references to syscalls from utilities of the same name.
3746
3747 2006-03-05  Jim Meyering  <jim@meyering.net>
3748
3749         * tests/help-version: Set SHELL, if not already set, in order to
3750         avoid failure when `make check' is run through debuild;  dircolors
3751         would fail due to lack of $SHELL.  Reported by Sven Joachim.
3752
3753         Make `base64 --wrap=N' work for N=0, and for N larger than SIZE_MAX.
3754         * src/base64.c (wrap_write, do_encode, main): Change type of
3755         parameters and locals, wrap_column, form size_t to uintmax_t.
3756         (main): Adjust to use xstrtoumax, accordingly.
3757
3758 2006-03-03  Jim Meyering  <jim@meyering.net>
3759
3760         Don't fail when run from an environment with SHELL not a Bourne
3761         shell, e.g. `env SHELL=/bin/csh make check' would fail this test.
3762         * tests/dircolors/simple: Invoke each non-failing test with -b.
3763         Reported by Michael Stone.
3764
3765 2006-02-27  Jim Meyering  <jim@meyering.net>
3766
3767         * tests/misc/base64: Derive --decode-using tests from the
3768         encode-based ones.
3769
3770         * tests/misc/base64: Factor out a long constant string.
3771         Split lines to stay within 80 columns.
3772
3773         * tests/misc/Makefile.am (TESTS): Add base64.
3774         * tests/misc/base64: Test base64.  From Simon Josefsson.
3775
3776         * src/base64.c (do_decode): Use correct type for parameter,
3777         ignore_garbage: s/size_t/bool/.
3778
3779         * src/base64.c: Don't include .h files already included by system.h:
3780         <string.h>, <stdlib.h>, <stdbool.h>, <limits.h>, <errno.h>.
3781         Include "system.h" before the other lib/*.h header files.
3782         Include <sys/types.h> before "system.h".
3783         (wrap_write): Remove declaration of unused local, initial_column.
3784         (wrap_write): Correct declaration syntax: s/size_t * V/size_t *V/.
3785
3786         * README: Add base64 to the list.
3787
3788 2006-02-17  Simon Josefsson  <jas@extundo.com>
3789
3790         New program: base64.
3791         * AUTHORS: Mention base64.
3792         * NEWS: Likewise.
3793         * man/Makefile.am: Build base64.1.
3794         * man/base64.x: New file.
3795         * src/Makefile.am (bin_PROGRAMS): Add base64.
3796         * src/base64.c: New file.
3797
3798 2006-02-25  Eric Blake  <ebb9@byu.net>
3799
3800         In ls, avoid calling stat for --inode (-i), when possible.
3801         * src/pwd.c (NOT_AN_INODE_NUMBER, D_INO): Move to ...
3802         * src/system.h: ... here, for use in ...
3803         * src/ls.c (main): ... here.  Prefer dirent.d_ino to stat when
3804         possible.
3805         (gobble_file): Add inode argument.
3806         (print_dir): Pass inode if available.
3807         (usage): Remove inaccuracy.
3808
3809 2006-02-23  Jim Meyering  <jim@meyering.net>
3810
3811         * TODO: Update/correct some obsolete entries.
3812
3813 2006-02-20  Paul Eggert  <eggert@cs.ucla.edu>
3814
3815         * doc/coreutils.texi (join invocation): Mention `sort -k 1b,1'.
3816         * src/join.c (usage): Likewise.
3817         Documentation problem reported by Philip Kensche.
3818
3819 2006-02-20  Eric Blake  <ebb9@byu.net>
3820
3821         * man/rm.x: Update documentation to match previous patch.
3822
3823 2006-02-18  Eric Blake  <ebb9@byu.net>
3824
3825         New option for rm: --interactive=once (-I).
3826         * NEWS: Document it, along with change to rm --interactive.
3827         * TODO: Remove entry for implementing rm -I
3828         * src/rm.c (INTERACTIVE_OPTION): New enum value.
3829         (interactive_type): New enum.
3830         (long_opts): Let interactive take an optional argument.
3831         (interactive_args, interactive_types): New option arguments.
3832         (usage): Document -I, --interactive=WHEN.  Use program_name
3833         instead of a basename.
3834         (main): New -I option, new behavior to --interactive.
3835         * tests/rm/interactive-once: New tests.
3836         * tests/rm/interactive-always: Ditto.
3837         * tests/rm/Makefile.am (TESTS): Run them.
3838
3839 2006-02-18  Jim Meyering  <jim@meyering.net>
3840
3841         * Makefile.maint (sc_two_space_separator_in_usage): Make the regular
3842         expression match more of the target lines, e.g., those that start with
3843         `-S,' (short option followed by a comma) or that include `=[...]'.
3844         Patch by Nicolas François.
3845         Fix the four offenders thus exposed:
3846         * src/join.c (usage): Use two spaces (not one) to separate the
3847         --first-only option string from its description, so help2man formats
3848         the derived man page properly.
3849         * src/pr.c (usage): Likewise.
3850         * src/uniq.c (usage): Likewise.
3851         * src/install.c (usage): Likewise.
3852
3853 2006-02-15  Jim Meyering  <jim@meyering.net>
3854
3855         * Makefile.maint (alpha beta major): For `make major', ensure that the
3856         version string is of the form N.N[.N]*, where N is one or more digits.
3857
3858 2006-02-14  Jim Meyering  <jim@meyering.net>
3859
3860         * INSTALL: Update from gnulib.
3861
3862 2006-02-13  Jim Meyering  <jim@meyering.net>
3863
3864         * GNUmakefile (all): Emit diagnostics to stderr, not stdout.
3865
3866 2006-02-12  Jim Meyering  <jim@meyering.net>
3867
3868         * Makefile.maint (patch-check): New target.
3869         (local-checks-available): Add to the list.
3870
3871 2006-02-11  Jim Meyering  <jim@meyering.net>
3872
3873         * src/c99-to-c89.diff: New file.
3874         * src/Makefile.am (EXTRA_DIST): Add c99-to-c89.diff.
3875
3876         * .x-po-check: New file, with exclusions so that `make distcheck'
3877         passes once again.
3878         * Makefile.am (EXTRA_DIST): Add .x-po-check.
3879
3880         rm -r must remove an empty directory, even if it is inaccessible.
3881         * src/remove.c (close_preserve_errno): New function.
3882         (fd_to_subdirp): Don't print a diagnostic in this function.
3883         Do it from the callers instead, unless rmdir succeeds.
3884         (remove_cwd_entries, remove_dir): Adjust callers.
3885         * tests/rm/empty-inacc: New test for the above.
3886         * tests/rm/Makefile.am (TESTS): Add empty-inacc.
3887         * NEWS: Mention this bug fix.
3888         * tests/rm/rm2: Adjust two expected diagnostics, now that they're
3889         a tiny bit less precise: cannot remove `a/1': ... instead of
3890         cannot open directory `a/1': ...
3891
3892         * Makefile.maint (syntax-check-rules): Automatically derive this
3893         list of sc_-prefixed rule names.
3894
3895 2006-02-10  Paul Eggert  <eggert@cs.ucla.edu>
3896
3897         * Makefile.maint (CVS_LIST): Don't assume cvsu is available.
3898         (CVS_LIST_EXCEPT): New macro, to simplify exception-processing.
3899         Most uses of CVS_LIST changed to use CVS_LIST_EXCEPT.
3900         (syntax-check-rules): Bring back sc_changelong.  (Hmm, why did it
3901         go away? was that an accident?)
3902         (sc_cast_of_argument_to_free, sc_cast_of_x_alloc_return_value):
3903         (sc_cast_of_alloca_return_value, sc_space_tab, sc_prohibit_atoi_atof):
3904         (sc_error_exit_success, sc_file_system, sc_no_if_have_config_h):
3905         (sc_system_h_headers, sc_sun_os_names, sc_trailing_blank):
3906         (sc_two_space_separator_in_usage, sc_unmarked_diagnostics):
3907         (sc_obsolete_symbols, sc_changelog, sc_prohibit_jm_in_m4):
3908         (sc_useless_cpp_parens, makefile-check, m4-check, po-check):
3909         (author_mark_check, makefile_path_separator_check):
3910         Output line numbers, to simplify navigation of Emacs *compilation*
3911         buffers.
3912         (sc_prohibit_atoi_atof, sc_file_system):
3913         Rework slightly so that Makefile.maint doesn't get reported as a
3914         violation of its own syntax rules.
3915         (sc_dd_max_sym_length): Use ifneq to do nothing, instead of doing
3916         it at run-time (which didn't work with Bison).  Fix a makefile typo,
3917         caught by Makefile.maint itself: spaces where a tab should be.
3918         (po-check): Check lib/*.[ch] even if not in CVS; used by Bison,
3919         which copies from ../gnulib/lib/*.[ch] to lib/*.[ch].
3920         Ignore djgpp and man subdirectories, to avoid false matches with
3921         Bison and coreutils, respectively.  Use sort -u to remove the
3922         resulting duplicates.
3923         * gnupload: Rework slightly to avoid bogus warning from
3924         sc_two_space_separator_in_usage.
3925
3926 2006-02-10  Jim Meyering  <jim@meyering.net>
3927
3928         Use gzip's --rsyncable option only if it's available.
3929         * Makefile.maint (gzip_rsyncable): New variable.
3930         (GZIP_ENV): Use it.
3931
3932 2006-02-08  Jim Meyering  <jim@meyering.net>
3933
3934         * Makefile.maint (local-checks-available): Define in terms of
3935         the expansion, $(syntax-check-rules), rather than the single,
3936         top-level target `syntax-check', so that it's easier to exclude
3937         individual rules (via $(local-checks-to-skip)).
3938         (tgz-md5, tgz-sha1, ...): Remove now-unused definitions.
3939
3940 2006-02-07  Jim Meyering  <jim@meyering.net>
3941
3942         * src/system.h (!defined O_DIRECT): If O_DIRECTIO is defined (as it
3943         is on Tru64), define O_DIRECT to that.  Patch From James Lemley.
3944
3945         * tests/help-version (expected_failure_status_vdir):
3946         Redirect an expected disk-full diagnostic to /dev/null.
3947
3948 2006-02-06  Jim Meyering  <jim@meyering.net>
3949
3950         * src/unexpand.c (usage): Use two spaces (not one) to separate the
3951         --first-only option string from its description, so help2man formats
3952         the derived man page properly.
3953         * src/rm.c (usage): Likewise for --no-preserve-root.
3954         * src/chown.c (usage): Likewise.
3955         * src/chgrp.c (usage): Likewise.
3956
3957         Add a rule to ensure that the above doesn't happen again.
3958         * Makefile.maint (sc_two_space_separator_in_usage): New rule.
3959         (syntax-check-rules): Add it.
3960         * .x-sc_two_space_separator_in_usage: New empty file.
3961         * Makefile.am (EXTRA_DIST): Add .x-sc_two_space_separator_in_usage.
3962
3963 2006-02-06  Jim Meyering  <jim@meyering.net>
3964
3965         * src/cp.c (usage): Use two spaces (not one) to separate each
3966         option string from its description, so help2man formats the
3967         derived man page properly.
3968         * src/mv.c (usage): Likewise.
3969         Patch from Nicolas François in http://bugs.debian.org/351601.
3970
3971 2006-02-04  Jim Meyering  <jim@meyering.net>
3972
3973         * src/copy.c (copy_internal): cp -RL would fail when encountering
3974         the same directory more than once in the hierarchy beneath a single
3975         command-line argument.  That is legitimate, e.g. when there are
3976         two or more symbolic links, each pointing to some directory that
3977         would not otherwise be copied.  Reported by Christophe LYON.
3978         * tests/cp/cp-deref: New file.  Test for today's fix.
3979         * tests/cp/Makefile.am (TESTS): Add cp-deref.
3980         * NEWS: Document this.
3981
3982 2006-02-03  Jim Meyering  <jim@meyering.net>
3983
3984         * configure.ac: Require automake-1.9.6, not 1.8.3.
3985
3986 2006-02-01  Paul Eggert  <eggert@cs.ucla.edu>
3987
3988         * src/od.c (usage): Mention that -t a ignores high order bit.
3989         Documentation problem reported by Ed Avis.
3990
3991 2006-02-01  Jim Meyering  <jim@meyering.net>
3992
3993         * src/pwd.c (find_dir_entry): Remove unused local, `ent_sb_valid'.
3994
3995 2006-01-30  Paul Eggert  <eggert@cs.ucla.edu>
3996
3997         * src/head.c (main): Use a better diagnostic when someone uses a
3998         trailing numeric option in an invalid way.  Problem reported by
3999         Karl Berry.
4000         * src/tail.c (parse_options): Likewise.
4001
4002 2006-01-30  Jim Meyering  <jim@meyering.net>
4003
4004         * man/wc.x: Include `count' keyword in man page synopsis,
4005         per suggestion from http://bugs.debian.org/181585.
4006
4007 2006-01-24  Paul Eggert  <eggert@cs.ucla.edu>
4008
4009         * src/df.c (show_dev): If the file system claims to have
4010         more available than total blocks, report the number of used
4011         blocks as being total - available (a negative number) rather
4012         than as garbage.  Problem reported by Toralf Foerster.
4013
4014 2006-01-24  Jim Meyering  <jim@meyering.net>
4015
4016         * src/tail.c (tail_forever): Don't exit-nonzero when an attempt
4017         to put a regular file in O_NONBLOCK mode fails with EPERM.
4018         That happens on Linux (up to 2.6.15) when using tail -f on a file with
4019         the append-only attribute.  Reported by Dean Gaudet.  For details,
4020         see http://savannah.gnu.org/bugs/?func=detailitem&item_id=15473.
4021         * NEWS: Mention this fix.
4022         * tests/tail-2/append-only: New file.  Test for the above.
4023         * tests/tail-2/Makefile.am (TESTS): Add append-only.
4024         * tests/Makefile.am (check-root): Add tail-2/append-only
4025
4026 2006-01-21  Jim Meyering  <jim@meyering.net>
4027
4028         * NEWS: Mention fts-related improvements and bug fixes.
4029
4030 2006-01-19  Jim Meyering  <jim@meyering.net>
4031
4032         * tests/fmt/basic (pfx-1, pfx-2): New tests, to demonstrate the bug
4033         reported as http://bugs.debian.org/147577.  Forwarded by Thomas Hood.
4034
4035 2006-01-18  Jim Meyering  <jim@meyering.net>
4036
4037         * tests/du/Makefile.am (TESTS): Add long-from-unreadable.
4038
4039 2006-01-17  Jim Meyering  <jim@meyering.net>
4040
4041         Now that fts no longer changes the current working directory, adjust
4042         its clients accordingly -- note that du.c uses fts but doesn't need
4043         any adjustment, since it doesn't operate on the actual files,
4044         but rather just uses the stat buffers provided by fts.
4045
4046         * src/chown-core.c: Include "openat.h".
4047         Don't include "lchown.h".
4048         (restricted_chown): Accept a new parameter, CWD_FD, and use it in
4049         calling openat, lchownat, chownat, rather than open, lchown, chown.
4050         Update caller.
4051         * src/chmod.c: Include "openat.h".
4052         (process_file): Use chmodat (fts->fts_cwd_fd,... in place of chmod (...
4053
4054         * tests/du/long-from-unreadable: New test, to exercise one small
4055         corner of fts.c.
4056
4057 2006-01-13  Jim Meyering  <jim@meyering.net>
4058
4059         * tests/Makefile.am (SUBDIRS): Add comments discouraging the
4060         addition of new directories under tests/.
4061
4062         * tests/acl: Redirect stdin to /dev/null.  Otherwise, FreeBSD 5.0's
4063         getfacl would hang.
4064
4065 2006-01-12  Jim Meyering  <jim@meyering.net>
4066
4067         * tests/du/long-sloop: Adjust not to hard-code the expected
4068         diagnostic corresponding to ELOOP.  Solaris' diagnostic differs
4069         from that of GNU libc.  Reported by Paul Eggert.
4070
4071         * tests/du/long-sloop: Create file at end of symlink chain.
4072
4073         * tests/misc/test: New file, with a test for one of the
4074         bugs fixed by yesterday's test.c changes.
4075         * tests/misc/Makefile.am (TESTS): Add test.
4076
4077 2006-01-11  Jim Meyering  <jim@meyering.net>
4078
4079         * tests/du/long-sloop: New file.  Test for today's fts.c bug fix.
4080         That bug could make du -L, chgrp -L, or chown -L fail to diagnose
4081         a very long sequence of symbolic links (not necessarily a loop).
4082         * tests/du/Makefile.am (TESTS): Add long-sloop.
4083
4084 2006-01-11  Paul Eggert  <eggert@cs.ucla.edu>
4085
4086         * src/test.c (test_syntax_error): Append a newline.  All callers
4087         changed, except for the ones that didn't already append a newline.
4088         Bug reported by Eric Blake.
4089
4090 2006-01-11  Jim Meyering  <jim@meyering.net>
4091
4092         * src/system.h (X2NREALLOC): Now that verify_true is no longer
4093         void, cast its result to void, to avoid gcc's warning that
4094         ``left-hand operand of comma expression has no effect''.
4095         (DECIMAL_DIGIT_ACCUMULATE, X2REALLOC): Likewise.
4096
4097 2006-01-10  Jim Meyering  <jim@meyering.net>
4098
4099         * tests/chmod/no-x: Add a test for today's fts.c fix.
4100
4101 2006-01-10  Jim Meyering  <jim@meyering.net>  (tiny change)
4102
4103         * src/ls.c (gobble_file): Use DTTOIF only if it's defined.
4104         This is necessary for Dragonfly.  Patch by Joerg Sonnenberger.
4105
4106 2006-01-10  Paul Eggert  <eggert@cs.ucla.edu>
4107
4108         * src/system.h (X2NREALLOC, X2REALLOC, DECIMAL_DIGIT_ACCUMULATE):
4109         Use verify_true instead of verify_expr, to sync with gnulib.
4110
4111 2006-01-08  Jim Meyering  <jim@meyering.net>
4112
4113         * src/date.c (usage): Adjust the formatting of the entries for
4114         %::z and %:::z (separate with two spaces, not one) so that help2man
4115         formats them properly.  Reported by Philip Rowlands.
4116
4117 2006-01-06  Paul Eggert  <eggert@cs.ucla.edu>
4118
4119         * configure.ac (gl_IGNORE_UNUSED_LIBRARIES): Add.
4120
4121 2006-01-06  Jim Meyering  <jim@meyering.net>
4122
4123         * Makefile.maint (copyright-check): Use date +%Y in place of
4124         hard-coded 2005.
4125
4126         * src/remove.c (rm_1): Remove `static' attribute on local `status'.
4127         First off, the attribute should have been `volatile' (not static)
4128         to avoid longjmp-related risk of clobber.  Secondly, now there is
4129         no longer any risk of a local variable being clobbered, so there's
4130         no need for any attribute at all.
4131
4132 2006-01-05  Jim Meyering  <jim@meyering.net>
4133
4134         * src/remove.c: Give a few functions the inline attribute.
4135         (AD_pop_and_chdir): Use gotos to avoid some duplication.
4136         (AD_push): Rewrite an assertion so that the entire computation
4137         goes away when assertions are turned off.
4138
4139         * src/tail.c (ENOSYS) [!defined ENOSYS]: Don't define here.
4140         It's already defined in "system.h".
4141         * Makefile.maint: Add a FIXME comment.
4142
4143 2006-01-04  Jim Meyering  <jim@meyering.net>
4144
4145         * ChangeLog: Remove entries from 2005-10-22 and earlier.
4146         * ChangeLog-2005: New file, for entries up to version 5.92.
4147
4148 2006-01-03  Jim Meyering  <jim@meyering.net>
4149
4150         * tests/du/no-x: Also allow a slightly different diagnostic -- the
4151         one you get when using openat-enabled fts.c and du (coming soon).
4152         * tests/chmod/no-x: Likewise.
4153         * tests/chgrp/no-x: Likewise.
4154
4155         * src/system.h (O_DIRECTORY) [!defined O_DIRECTORY]: Define.
4156
4157 2006-01-02  Paul Eggert  <eggert@cs.ucla.edu>
4158
4159         * src/chown-core.c (RC_do_ordinary_chown): New enum value.
4160         (restricted_chown): Return it, if the file cannot be accessed due
4161         to EPERM, or if no uid or gid are required, or if the file is
4162         neither a directory nor a regular file.  Rewrite to avoid gotos.
4163         (change_file_owner): Handle RC_do_ordinary_chown case.
4164         Rewrite to avoid gotos.
4165         * tests/chgrp/basic: Make sure we can change the group of
4166         inaccessible files.
4167
4168         * src/date.c (usage): Explain %g, %G, and %V a bit better.
4169
4170 2006-01-02  Jim Meyering  <jim@meyering.net>
4171
4172         * src/copy.c (set_owner): Correct a comment.
4173
4174         * src/tail.c (parse_options): Change warning to say that --retry
4175         is useful `mainly' (not `only') when following by name.
4176         Reported here: http://bugs.debian.org/273781
4177
4178 2006-01-01  Paul Eggert  <eggert@cs.ucla.edu>
4179
4180         * NEWS: Document that mkfifo and mknod -m no longer set special bits.
4181         * src/copy.c: Include lchmod.h.
4182         (copy_internal): Use lchmod rather than chmod.
4183         * src/cp.c: Include lchmod.h.
4184         (re_protect, make_dir_parents_private): Use lchmod rather than chmod.
4185         * src/mkdir.c: Include lchmod.h.
4186         (usage): Clarify -m's operation.
4187         (main): Use lchmod rather than chmod.  Don't use lchmod unless the
4188         new mode contains bits outside the 777 range.
4189         * src/mkfifo.c (usage): Clarify -m's operation.
4190         (main): If -m is given, don't invoke chmod; use umask 0 instead.
4191         Report an error if -m asks for bits outside the 777 range.
4192         * src/mknod.c (usage, main): Likewise.
4193
4194         * src/mkdir.c, src/mkfifo.c, src/mknod.c: Undo 2005-12-19 changes.
4195
4196 2005-12-27  Jim Meyering  <jim@meyering.net>
4197
4198         * Makefile.maint (sc_obsolete_symbols): Prohibit use of O_NDELAY.
4199         (sc_prohibit_assert_without_use): New rule.
4200         (syntax-check-rules): Add it to the list.
4201         * .x-sc_prohibit_assert_without_use: New empty file.
4202         * Makefile.am (EXTRA_DIST): Add it.
4203
4204         * Makefile.maint (CVS_LIST): Define in terms of $(srcdir).
4205
4206         * cp.c, df.c, link.c, mknod.c, nice.c, sleep.c, unlink.c:
4207         Don't include <assert.h>; it wasn't used.
4208
4209 2005-12-26  Paul Eggert  <eggert@cs.ucla.edu>
4210
4211         * src/chown-core.c (restricted_chown):
4212         Don't try O_WRONLY unless O_RDONLY failed wth EACCES.
4213         * src/remove.c (fd_to_subdirp): Open with O_DIRECTORY | O_NOCTTY
4214         | O_NOFOLLOW too, for consistency with other dir-openers.
4215         Use POSIX-preferred O_NONBLOCK rather than O_NDELAY.
4216         (is_empty_dir): Likewise.
4217         * src/shred.c (wipename): Likewise.  Don't bother trying to open
4218         dir for writing, since POSIX prohibits it.
4219
4220 2005-12-22  Jim Meyering  <jim@meyering.net>
4221
4222         * tests/help-version: Redirect stderr to /dev/full, to suppress
4223         write error diagnostic.
4224
4225 2005-12-19  Jim Meyering  <jim@meyering.net>
4226
4227         * src/mkdir.c, src/mknod.c, src/mkfifo.c (main)
4228         Avoid a minor race condition when `-m MODE' is specified, by using
4229         open, fchown, and close rather than just chown.  To do that reliably --
4230         even with an overly restrictive umask -- ensure that each mkdir,
4231         mknod and mkfifo call uses a mode including at least owner-read access.
4232         * src/mknod.c (main): When `-m MODE' is specified, exit nonzero if
4233         the subsequent chown (or equivalent open,fchown,close) fails.
4234         * tests/misc/mknod: New tests.
4235         * tests/misc/Makefile.am (TESTS): Add mknod.
4236
4237 2005-12-17  Jim Meyering  <jim@meyering.net>
4238
4239         * src/remove.c (is_empty_dir): Open with O_NDELAY, so we don't hang,
4240         e.g., on a named pipe.
4241         (OPEN_NO_FOLLOW_SYMLINK): Remove definition.  Use O_NOFOLLOW in
4242         place of all uses, since it is guaranteed (system.h) to be defined.
4243
4244 2005-12-05  Andreas Gruenbacher  <agruen@suse.de>
4245
4246         Add POSIX ACL support
4247         * src/ls.c: Switch back from HAVE_ACL to USE_ACL: The acl() syscall
4248         is no requirement for ACL support; particularly, it does not exist
4249         on systems that have POSIX ACLs.
4250         * src/copy.h (cp_option_init) [umask_kill]: Remove member.
4251         * src/cp.c (umask_kill): With default acls, the umask is not to be
4252         applied.  Remove umask_kill, don't change the process umask, and let
4253         the kernel apply the umask where appropriate.
4254         * src/cp.c (make_dir_parents_private): Fix logic for POSIX ACLs.
4255         * src/copy.c (get_dest_mode): Remove; it is obsolete after removing
4256         umask_kill.
4257         (copy_reg, copy_internal): Use copy_acl and set_acl
4258         instead of fchown/chown. Fix the logic for POSIX ACLs.
4259         (chown_succeded): Remove; we now always copy acls and
4260         preserve S_ISUID, S_ISGID, and S_ISVTX when needed, no matter if we
4261         did a chown before or not.
4262         * src/mv.c, src/install.c (cp_option_init): Don't set umask_kill member.
4263         * src/Makefile.am (dir_LDADD, ls_LDADD, vdir_LDADD, cp_LDADD,
4264         mv_LDADD, ginstall_LDADD): On systems with an ACL library, arrange
4265         to link with it via $(LIB_ACL), for the utilities that need it.
4266
4267 2005-12-16  Paul Eggert  <eggert@cs.ucla.edu>
4268
4269         * src/remove.c (OPENAT_CWD_RESTORE__REQUIRE): Remove.
4270         (OPENAT_CWD_RESTORE__ALLOW_FAILURE): Likewise.
4271         (fd_to_subdirp): Remove openat_cwd_restore_allow_failure arg; its
4272         value is now signified by whether cwd_errno is null.
4273         (fd_to_subdirp, remove_dir, rm_1); Change cwd failure indicator from
4274         pointer-to-bool to pointer-to-errno-value.  All callers changed.
4275         (rm_1): Don't bother setting a local cwd failure flag and then
4276         ORing it into the caller's.  Just set the caller's.
4277         (rm): Use cwd failure errno value to print a slightly-better
4278         diagnostic.
4279
4280 2005-12-15  Jim Meyering  <jim@meyering.net>
4281
4282         * src/stat.c (print_it): Properly handle a backslash at the
4283         end of a --printf format string.  Reported by Paul Eggert.
4284         * tests/misc/stat-printf (end-bs): Add a test for the above.
4285
4286 2005-12-15  Paul Eggert  <eggert@cs.ucla.edu>
4287
4288         * tests/acl: Port to pre-POSIX shells like Solaris 8 /bin/sh.
4289         Don't assume /etc/passwd contains user names; use 'id' instead.
4290
4291 2005-12-15  Jim Meyering  <jim@meyering.net>
4292
4293         stat: revert behavior of --format=FMT (-c)
4294         stat: add new option: --printf=FMT
4295         * NEWS: Mention this.
4296         * src/stat.c (isodigit, octtobin, hextobin): Define.
4297         (PRINTF_OPTION): Define.
4298         (interpret_backslash_escapes, trailing_delim): New globals.
4299         (usage): Document them.  Alphabetize on long option names.
4300         (print_esc_char): New function.
4301         (print_it): Rewrite, in order to handle backslash escapes.
4302         (main): Handle new option.  Set globals for --format, too.
4303
4304         * tests/misc/stat-printf: Test --printf and --format.
4305         * tests/misc/Makefile.am (TESTS): Add stat-printf.
4306
4307 2005-12-14  Paul Eggert  <eggert@cs.ucla.edu>
4308
4309         * NEWS: sort now reports incompatible options.
4310         * src/sort.c (incompatible_options, check_ordering_compatibility):
4311         New functions.
4312         (main): Use them.  Don't bother with a usage message for
4313         "sort -c a b", for consistency with other error diagnostics.
4314         * tests/sort/Test.pm (incompat1, incompat2, incompat3, incompat4):
4315         New tests.
4316
4317         * src/cat.c (main): Undo previous change.  close_stdout already
4318         does the check, so the previous change wasn't necessary.
4319
4320 2005-12-13  Paul Eggert  <eggert@cs.ucla.edu>
4321
4322         * src/cat.c (main): Check for close (STDOUT_FILENO) failure.
4323
4324 2005-12-12  Paul Eggert  <eggert@cs.ucla.edu>
4325
4326         Install a more-conservative approach for sort -R.  It's the
4327         same basic idea as the existing code, except it uses the full ISAAC
4328         approach (called the "more kosher" approach in the existing comments).
4329         This makes "sort -R" quite a bit slower (about a factor of 2 on my
4330         little tests involving 10000 lines on a 2.4 GHz P4), but I think it's
4331         better to be conservative here at first, and review any performance
4332         improvements carefully.
4333         * .x-sc_require_config_h: Add src/rand-isaac.c.
4334         * src/rand-isaac.h: Remove.  All uses now simply include rand-isaac.c.
4335         * src/Makefile.am (noinst_HEADERS): Remove rand-isaac.h.
4336         (shred_SOURCES, sort_SOURCES): Remove.
4337         (EXTRA_DIST): Add rand-isaac.c.
4338         * src/rand-isaac.c: Revert to what used to be in shred.c, without
4339         changing it to allow for varying numbers of words in the state.
4340         Alter so that we include rand-isaac.c directly rather than
4341         compiling it and linking to it.  Don't include config.h or
4342         system.h; that's the includer's responsibility.
4343         Omit functions that are specific to shred.
4344         (ISAAC_LOG, ISAAC_WORDS, ISAAC_BYTES, struct isaac_state, ind):
4345         (isaac_step, struct irand_state):
4346         Resurrect these, with the same defns that used to be in shred.c.
4347         (ISAAC_SIZE, isaac_new, isaac_copy): Remove.
4348         (isaac_refill, isaac_seed_start, isaac_seed_data, irand_init, irand32):
4349         static again.
4350         (struct isaac_state, isaac_refill, isaac_mix, isaac_init):
4351         (isaac_seed_start, isaac_seed_data, isaac_seed_finish, isaac_seed):
4352         (irand_init, irand32, irand_mod):
4353         Number of words is constant again.
4354         (struct irand_state, irand_init, irand32, irand_mod): Move to shred.c.
4355         * src/shred.c: Include rand-isaac.c rather than rand-isaac.h.
4356         * src/sort.c: Likewise.
4357         * src/shred.c (fillrand, dopass, main): Undo previous change.
4358         (struct irand_state, irand_init, irand32, irand_mod): Moved back here,
4359         from rand-isaac.c.
4360         * src/sort.c: Don't include md5.h; it wasn't needed.
4361         (struct keyfield): Rename random_hash to random, for consistency
4362         with the other member names.  All uses changed.
4363         (usage): Tweak wording to mention STRING for --seed option.
4364         (short_options): Rorder for consistency with other programs.
4365         (rand_state): Now a struct, not a pointer to one.  All uses changed.
4366         (HASH_WORDS, HASH_SIZE): Remove.
4367         (get_hash): Remove comments around resbuf size, since we can assume C89.
4368         Use a "more-kosher" (but slower) approach of invoking isaac_refill.
4369         (keycompare): Adjust to the new get_hash.
4370         Add a FIXME.
4371         (badfieldspec): Omit recently-introduced comment; it isn't needed.
4372         (main): Don't set need_random simply because gkey has it set; that
4373         doesn't necessarily mean we'll need random numbers.
4374         Redo seeding to match new get_hash approach.
4375
4376 2005-12-10  Jim Meyering  <jim@meyering.net>
4377
4378         * src/Makefile.am (noinst_HEADERS): Add rand-isaac.h.
4379
4380         Avoid shred segfault on 64-bit systems.
4381         * src/rand-isaac.c (isaac_refill): Don't try to negate a
4382         local of type uint32_t.  Make the local an `int' instead.
4383
4384         * NEWS: Mention sort's new options.
4385
4386         * src/rand-isaac.c (isaac_mix): Declare to be static.
4387         Mark all other functions as `extern' so the tight-scope
4388         part of `make distcheck' passes once again.
4389         * src/rand-isaac.h (isaac_mix): Remove declaration.
4390
4391         * src/sort.c (get_hash): Change position of `*' in parameter
4392         type to conform with convention.
4393         (main): Split a long line so it fits in 80 columns.
4394         (keycompare): Remove stray SPACE before TAB that was
4395         causing `make distcheck' to fail.
4396
4397         * src/shred.c: Don't include gethrxtime.h.  No longer needed.
4398
4399         * tests/misc/sort-rand: New file: basic tests for the new options.
4400         * tests/misc/Makefile.am (TESTS): Add sort-rand.
4401
4402 2005-12-10  Frederik Eaton  <frederik@ofb.net>
4403
4404         * src/Makefile.am (sort_LDADD): Add $(LIB_GETHRXTIME).
4405         (shred_SOURCES, sort_SOURCES): New macros, so we compile rand-isaac.c.
4406         * src/rand-isaac.c: New file, containing ISAAC code that was in shred.c.
4407         Make state size runtime-configurable.
4408         (isaac_new, isaac_copy): New functions.
4409         * src/rand-isaac.h: New file.
4410         * src/shred.c: Include rand-isaac.h.  Move ISAAC code to rand-isaac.c.
4411         (fillrand, main): Adjust to the fact that the state size is now
4412         runtime-configurable.
4413         * src/sort.c (short_options, long_options, WORDS, keycompare, main):
4414         (usage): Add options --random-sort and --seed to implement a random
4415         shuffle.
4416         Include md5.h and rand-isaac.h.
4417         (get_hash): New function.
4418         (rand_state): New var.
4419         (HASH_WORDS, HASH_SIZE): New macros.
4420
4421 2005-12-09  Paul Eggert  <eggert@cs.ucla.edu>
4422
4423         * tests/dd/misc: Add test for dd iflags=noatime.
4424
4425 2005-12-09  Jim Meyering  <jim@meyering.net>
4426
4427         * src/sort.c (usage): Mention white space vs -b and -t options.
4428         From The Wanderer.
4429
4430 2005-12-09  Eric Blake  <ebb9@byu.net>
4431
4432         * src/test.c (main): Fix misleading comment.
4433
4434 2005-12-07  Paul Eggert  <eggert@cs.ucla.edu>
4435
4436         * NEWS: Mention dd's new noatime flag.
4437         * src/system.h (O_NOATIME): Define to 0 if not already defined.
4438         * src/dd.c (flags, usage): Add support for noatime flag.
4439
4440 2005-12-07  Jim Meyering  <jim@meyering.net>
4441
4442         Distribute the cvsu script, used only by `make syntax-check'.
4443         * Makefile.am (EXTRA_DIST): Add build-aux/cvsu.
4444         * Makefile.maint (CVS_LIST): Use build-aux/cvsu, now that we
4445         distribute a copy of this script.
4446         * .x-sc_unmarked_diagnostics: Add build-aux/cvsu.
4447
4448         * tests/mv/acl: exit-77 before the trap, not after, if we fail
4449         to create a temporary directory on another partition.
4450         From Andreas Gruenbacher.
4451
4452 2005-12-06  Tomas Pospisek  <tpo@sourcepole.ch>  (tiny change)
4453
4454         * man/basename.x: Cross-reference to dirname and readlink.
4455         * man/dirname.x: Cross-reference to basename and readlink.
4456
4457 2005-12-05  Andreas Gruenbacher
4458
4459         * src/copy.c [!HAVE_FCHOWN]: Define fchown(...) to -1.
4460         (set_owner, preserve_author): New functions, factored out of copy_reg.
4461         (copy_reg): Use them.
4462         (copy_internal): Use them here, too.
4463
4464 2005-12-04  Jim Meyering  <jim@meyering.net>
4465
4466         * src/sleep.c (usage): Say what happens with two or more arguments.
4467         Suggested by Justin Pryzby.
4468
4469         * src/uptime.c (print_uptime): Move decl of `upsecs' into scope
4470         where it's used.
4471
4472 2005-12-03  Jim Meyering  <jim@meyering.net>
4473
4474         * src/rm.c (long_opts): Change the name of each undocumented, for-
4475         testing-only option to start with `-', so that it cannot render
4476         ambiguous any prefix it happens to share with some other option name.
4477         Problem reported by Eric Blake.
4478         * src/head.c (long_options): Likewise.
4479         * src/tail.c (long_options): Likewise.
4480
4481         * tests/misc/head-elide-tail: Update uses of undocumented, for-
4482         testing-only --presume* options to start with `---'.
4483         * tests/rm/dangling-symlink: Likewise.
4484         * tests/rm/dir-no-w: Likewise.
4485         * tests/rm/isatty: Likewise.
4486
4487 2005-11-30  Jim Meyering  <jim@meyering.net>
4488
4489         * Makefile.maint: Add a comment about cvsu.
4490
4491 2005-11-25  Paul Eggert  <eggert@cs.ucla.edu>
4492
4493         * NEWS: df updates for "none", "proc", inaccessible file systems.
4494         * src/df.c (show_point): Ignore inaccessible file systems.
4495         (usage): -a includes dummy file systems, not size-0 file systems.
4496
4497         * src/od.c (unsigned_long_long_int): Renamed from ulonglong_t,
4498         to avoid collision with POSIX name space.  All uses changed.
4499
4500 2005-11-24  Jim Meyering  <jim@meyering.net>
4501
4502         * tests/Makefile.am (EXTRA_DIST): Add acl to the list.
4503         * tests/acl: Add `$0: ' prefix to diagnostics.
4504
4505         * .x-sc_require_config_h: Add lib/buffer-lcm.c to the list.
4506
4507 2005-11-23  Paul Eggert  <eggert@cs.ucla.edu>
4508
4509         * src/copy.c: Improve performance a bit by optimizing away
4510         unnecessary system calls and going to a block size of at least
4511         8192 (on normal hosts, anyway).  This improved performance 5% on my
4512         Debian stable host (2.4.27 kernel, x86, copying from root
4513         ext3 file system to itself).
4514         Include "buffer-lcm.h".
4515         (copy_reg): Omit last argument.  All callers changed.
4516         Use xmalloc to allocate rather than trusting alloca
4517         (which is unwise with large block sizes).
4518         Declare locals more locally, if possible.
4519         Use uintptr_t words instead of int words, for a bit more speed
4520         when looking for null blocks on 64-bit hosts.
4521         Optimize away reads of zero bytes on regular files.
4522         In the typical case, insist on 8 KiB buffers, at least.
4523         Avoid unnecessary extra call to fstat when checking for sparse files.
4524         Avoid now-unnecessary cast to off_t, and "0L".
4525         Avoid unnecessary test of *new_dst when checking for same owner
4526         and group.
4527
4528 2005-11-22  Paul Eggert  <eggert@cs.ucla.edu>
4529
4530         * src/remove.c (rm): Don't assume C99 for-loop syntax.
4531
4532 2005-11-22  Jim Meyering  <jim@meyering.net>
4533
4534         * src/remove.c (AD_push): Remove debugging cruft.
4535
4536         * tests/rm/unread2 (rm): Change expected diagnostic,
4537         `cannot open directory' to `cannot remove', to align with
4538         new version of rm.
4539         * tests/rm/rm2: Ensure that rm now continues removing entries
4540         even after certain types of failure.
4541
4542         * src/remove.c: Rewrite.  Now, this module is reentrant on systems
4543         that provide openat (Solaris), and on systems like Linux+procfs
4544         where our openat emulation code is reentrant.  This also fixes a
4545         few low-probability leaks and eliminates some code that could,
4546         in very unusual circumstances, cause rm() (via a callee) to exit.
4547         * NEWS: Mention this.
4548
4549         * configure.ac: Put copyright dates all on one line so the
4550         emacs function that updates them works properly.
4551
4552 2005-11-18  Paul Eggert  <eggert@cs.ucla.edu>
4553
4554         * configure.ac (AM_PROG_CC_C_O): Add.  Needed for CVS Automake.
4555         Problem reported by Eric Blake.
4556         (AC_PROG_CC_STDC): Use this instead of AC_PROG_CC, so that
4557         we get a standard-conforming compiler.  This relies on the new
4558         m4/c.m4 file.  Note that it's a bit tricky, since c.m4 doesn't
4559         define AC_PROG_CC_STDC; we are relying on Autoconf 2.59 internals.
4560         m4/c.m4 can go away with Autoconf 2.60 comes out.
4561
4562 2005-11-17  Jim Meyering  <jim@meyering.net>
4563
4564         * src/remove.c (AD_mark_helper): Make a `char *' parameter `const'.
4565         (AD_mark_current_as_unremovable): Likewise, but for a local.
4566         (rm_1): Likewise.
4567
4568         * tests/mv/acl: Let traps handle removing temporary directories.
4569
4570         Expect acl-related tests to fail, until the corresponding
4571         patches are committed.
4572         * tests/mv/Makefile.am (XFAIL_TESTS): Add acl.
4573         * tests/cp/Makefile.am (XFAIL_TESTS): Likewise.
4574
4575         ACL tests, from Andreas Gruenbacher.
4576         * tests/acl, tests/mv/acl, tests/cp/acl: New files.
4577         * tests/mv/Makefile.am (TESTS): Add acl.
4578         * tests/cp/Makefile.am (TESTS): Add acl.
4579
4580         * src/ls.c (basename_is_dot_or_dotdot): Correct wording in comment.
4581
4582 2005-11-16  Paul Eggert  <eggert@cs.ucla.edu>
4583
4584         * NEWS: Improve quality of ln's diagnostics.
4585         * src/ln.c (do_link, usage): Likewise.
4586         (do_link): Don't use alloca on a buffer of unbounded size.
4587
4588 2005-11-16  Jim Meyering  <jim@meyering.net>
4589
4590         * tests/cp/fail-perm: Accommodate HPUX.  It appears to fail
4591         with EACCES rather than EPERM.  Reported by Peter O'Gorman here:
4592         http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/5766
4593         This also affects AIX 4.3.3, according to Ralf Wildenhues, in
4594         http://lists.gnu.org/archive/html/bug-coreutils/2006-05/msg00192.html
4595
4596 2005-11-14  Jim Meyering  <jim@meyering.net>
4597
4598         * NEWS (sort): Mention consequences of today's mkstemp-safer.c fix.
4599
4600 2005-11-13  Jim Meyering  <jim@meyering.net>
4601
4602         * announce-gen: Accept new option, --gpg-key-id=ID and
4603         emit a blurb telling how to use the .sig files.
4604         * Makefile.cfg (gpg_key_ID): Define.
4605         * Makefile.maint (announcement): Use new option and key.
4606
4607         Require that most .c files include <config.h>.
4608         * Makefile.maint (sc_require_config_h): New rule.
4609         (syntax-check-rules): Add it.
4610         * .x-sc_require_config_h: New file listing exceptions to the
4611         above rule.  Some are legit, others are simply grandfathered in.
4612         * Makefile.am (EXTRA_DIST): Add .x-sc_require_config_h here, too.
4613
4614 2005-11-12  Jim Meyering  <jim@meyering.net>
4615
4616         * src/checksum.h, src/md5.c, src/sha1sum.c: Remove now-unused files.
4617
4618 2005-11-11  Jim Meyering  <jim@meyering.net>
4619
4620         * NEWS: Mention `readlink -f' bug fix in 5.3.0 news.
4621         Mention new readlink options in 5.3.0's `New features' section.
4622         Spotted by Thomas Hood.
4623
4624 2005-11-08  Jim Meyering  <jim@meyering.net>
4625
4626         * NEWS: Merge in changes from b5_9x branch.
4627
4628 2005-11-08  Paul Eggert  <eggert@cs.ucla.edu>
4629
4630         * NEWS: ls now defaults to --time-style='locale', which in turn acts
4631         like --time-style='posix-long-iso' if the locale settings are messed up.
4632         * src/ls.c (decode_switches): Implement this.
4633
4634 2005-11-08  Jim Meyering  <jim@meyering.net>
4635
4636         * tests/du/2g: s/expensive/very expensive/ in a comment.
4637         From Paul Townsend.
4638
4639 2005-10-17  Eric Blake  <ebb9@byu.net>
4640
4641         * src/ls.c (usage): Fix descriptions of --sort, --time.
4642         Reported by Vitaly A. Ostanin.
4643
4644 2005-11-04  Paul Eggert  <eggert@cs.ucla.edu>
4645
4646         * src/ln.c: Include filenamecat.c.
4647         (FILE_BASENAME_CONCAT): Remove.
4648         (do_link): Remove last arg DEST_IS_DIR.  All callers changed.
4649         (main): Use file_name_concat, base_name, and strip_trailing_slashes
4650         instead of FILE_BASENAME_CONCAT.  This simplifies the code, and avoids
4651         the use of alloca.
4652
4653 2005-11-04  Jim Meyering  <jim@meyering.net>
4654
4655         * src/du.c (process_file): Don't overflow for files of size >= 2^31
4656         on systems with stat.st_blocks of a signed 32-bit type.
4657         This bug causes trouble on some AIX 5.1 systems.
4658         Report and trivial patch from Paul Townsend:
4659         <http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00033.html>
4660         * NEWS: Mention this.
4661
4662         * tests/du/2g: New (very-expensive) test for the above-fixed bug.
4663         * tests/du/Makefile.am (TESTS): Add it here.
4664         * tests/very-expensive: New file.
4665         * tests/Makefile.am (EXTRA_DIST): Add it here.
4666         * tests/cp/perm: Mark this test as `very-expensive', too.
4667
4668 2005-11-02  Paul Eggert  <eggert@cs.ucla.edu>
4669
4670         * NEWS: Mention that rm -d and maybe ln -d are scheduled for
4671         removal in 2006.
4672         * src/remove.h (struct rm_options): Remove unlink_dirs.  All uses
4673         removed.
4674         * src/rm.c (usage): Don't mention rm -d.
4675
4676 2005-11-02  Jim Meyering  <jim@meyering.net>
4677
4678         * tests/dd/skip-seek: Fix typo in comment: s/fileutils/coreutils.
4679         From Andreas Schwab.
4680
4681         * tests/dd/unblock-sync: Redirect stderr to /dev/null so the
4682         `M+N records in/out' lines don't pollute `make check' output.
4683
4684         * tests/dd/skip-seek (sk-seek4): New test, to exercise the bug
4685         fixed on 2005-10-31.  This test uses the new, IN_PIPE specifier.
4686         * tests/Coreutils.pm: Accept a new type of input specifier: IN_PIPE,
4687         to indicate that the input file should be piped into the command
4688         under test (via `cat FILE | $prog ...').
4689
4690         * src/remove.c (remove_entry): Emit a better diagnostic when rm
4691         (without -r) fails to remove a directory on a non-Linux system.
4692         This change affects only newer Solaris systems (with priv_*
4693         functions like priv_allocset).  Reported by Keith Thompson.
4694
4695         * tests/rm/dir-nonrecur: New file/test for the above fix.
4696         * tests/rm/Makefile.am (TESTS): Add dir-nonrecur.
4697
4698 2005-11-01  Paul Eggert  <eggert@cs.ucla.edu>
4699
4700         * NEWS: "tail -c 2 FILE" and "touch 0101000000" now operate as
4701         POSIX 1002.1-2001 requires.
4702         * src/tail.c (parse_obsolete_option): Implement this.
4703         Problem reported by Vincent Lefevre.
4704         * src/touch.c (main): Pass PDS_PRE_2000 to posixtime.
4705         * tests/tail/Test.pm (c-2, c-2-minus, c2, c2-minus): New tests.
4706         (test_vector): Add special cases for _POSIX2_VERSION, and
4707         regularize the old ones a bit.
4708         * tests/touch/obsolescent: Add y2000 test.
4709
4710 2005-10-31  Paul Eggert  <eggert@cs.ucla.edu>
4711
4712         * src/dd.c (skip): Fix off-by-one error reported by
4713         Theodoros V. Kalamatianos.
4714
4715 2005-10-30  Paul Eggert  <eggert@cs.ucla.edu>
4716
4717         * tests/mkdir/p-3: Require that the test be run as non-root.
4718         Problem and trivial fix reported by Theodoros V. Kalamatianos.
4719
4720 2005-10-28  Paul Eggert  <eggert@cs.ucla.edu>
4721
4722         * src/ln.c (FILE_BASENAME_CONCAT): Omit unnecessary slashes in the
4723         boundary between DEST and SOURCE in the result.
4724
4725 2005-10-26  Dmitry V. Levin  <ldv@altlinux.org>
4726
4727         * src/md5sum.c (main) [!O_BINARY]: Changed default read mode
4728         back to text, to sync with documentation and for backwards
4729         compatibility.
4730
4731 2005-10-25  Jim Meyering  <jim@meyering.net>
4732
4733         * tests/dircolors/simple (other-wr): Add an explicit test for
4734         the dircolors bug (NULL-dereference) fixed yesterday.
4735
4736 2005-10-24  Jim Meyering  <jim@meyering.net>
4737
4738         * src/tac.c (tac_file): When determining whether a file is seekable,
4739         also test whether it is a tty.  Using only the lseek-based test would
4740         give a false positive on Solaris.  Reported by Peter Fales.
4741
4742 2005-10-24  Dmitry V. Levin  <ldv@altlinux.org>
4743
4744         * tests/install/d-slashdot: New test, for "install -d" failure.
4745         * tests/install/Makefile.am (TESTS): Add d-slashdot.
4746         * tests/mkdir/p-slashdot: New test, for "mkdir -p" failure.
4747         * tests/mkdir/Makefile.am (TESTS): Add p-slashdot.
4748
4749 2005-10-24  Jim Meyering  <jim@meyering.net>
4750
4751         * src/dircolors.c (ls_codes): Add missing comma.
4752         Anonymous report and patch from
4753         http://savannah.gnu.org/bugs/?func=detailitem&item_id=14849
4754
4755         * src/dircolors.c: Add compile-time assertion that the slack_codes
4756         and ls_codes arrays have the same number of elements.  This would
4757         have prevented the above-fixed bug.
4758
4759         * src/expand.c (parse_tab_stops): Add a comment to make this function
4760         identical to the one in unexpand.c.
4761         * src/unexpand.c (parse_tab_stops): Adjust syntax to make this function
4762         identical to the one in expand.c.
4763
4764         * src/expand.c (next_file): Don't assume fopen cannot return stdin.
4765
4766 2005-10-23  Jim Meyering  <jim@meyering.net>
4767
4768         * src/md5sum.c (digest_check, main): Use ptr_align rather than
4769         a dangerous pointer-value-to-`unsigned' cast.
4770         * NEWS: mention the new sha* programs.
4771         * AUTHORS: Add new sha* programs.
4772
4773 2005-08-28  David Madore  <david.madore@ens.fr>
4774
4775         Add new programs: sha224sum, sha256sum, sha384sum, sha512sum.
4776         * README: Add their names to the list.
4777         * src/md5sum.c: Provide framework for computing sha-2 hashes.
4778         * src/Makefile.am (sha224sum, sha256sum, sha384sum, sha512sum):
4779         Rules for compiling sha-2 utilities
4780         (noinst_HEADERS): Remove checksum.h.
4781         * man/sha512sum.x, man/sha384sum.x, man/sha256sum.x, man/sha224sum.x:
4782         New files.
4783         * man/Makefile.am (dist_man_MANS): Add the corresponding .1 names.
4784         (sha224sum.1, sha256sum.1, sha384sum.1, sha512sum.1): New dependencies.
4785         * tests/misc/sha224sum, tests/misc/sha256sum: New files.
4786         * tests/misc/sha384sum, tests/misc/sha512sum: New files.
4787         * tests/misc/Makefile.am (TESTS): Add new sha224sum, sha256sum,
4788         sha384sum, sha512sum test scripts here rather that each in its
4789         own directory.
4790
4791 2005-08-28  David Madore  <david.madore@ens.fr>
4792
4793         * tests/sha1sum/basic-1 (million-a): Add the "million a's" test (one
4794         of the FIPS test vectors).
4795
4796 2005-10-23  Jim Meyering  <jim@meyering.net>
4797
4798         * configure.ac: Use 6.0-cvs as the version string.
4799         * NEWS: Adjust accordingly.
4800
4801
4802         -----
4803
4804         Copyright (C) 2005, 2006 Free Software Foundation, Inc.
4805
4806         Copying and distribution of this file, with or without
4807         modification, are permitted provided the copyright notice
4808         and this notice are preserved.