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