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