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