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