*** empty log message ***
[platform/upstream/coreutils.git] / ChangeLog
1 2006-02-25  Eric Blake  <ebb9@byu.net>
2
3         * Version 6.0-cvs.
4
5         In ls, avoid calling stat for --inode (-i), when possible.
6         * src/pwd.c (NOT_AN_INODE_NUMBER, D_INO): Move to ...
7         * src/system.h: ... here, for use in ...
8         * src/ls.c (main): ... here.  Prefer dirent.d_ino to stat when
9         possible.
10         (gobble_file): Add inode argument.
11         (print_dir): Pass inode if available.
12         (usage): Remove inaccuracy.
13
14 2006-02-23  Jim Meyering  <jim@meyering.net>
15
16         * TODO: Update/correct some obsolete entries.
17
18 2006-02-20  Paul Eggert  <eggert@cs.ucla.edu>
19
20         * doc/coreutils.texi (join invocation): Mention `sort -k 1b,1'.
21         * src/join.c (usage): Likewise.
22         Documentation problem reported by Philip Kensche.
23
24 2006-02-20  Eric Blake  <ebb9@byu.net>
25
26         * man/rm.x: Update documentation to match previous patch.
27
28 2006-02-18  Eric Blake  <ebb9@byu.net>
29
30         New option for rm: --interactive=once (-I).
31         * NEWS: Document it, along with change to rm --interactive.
32         * TODO: Remove entry for implementing rm -I
33         * src/rm.c (INTERACTIVE_OPTION): New enum value.
34         (interactive_type): New enum.
35         (long_opts): Let interactive take an optional argument.
36         (interactive_args, interactive_types): New option arguments.
37         (usage): Document -I, --interactive=WHEN.  Use program_name
38         instead of a basename.
39         (main): New -I option, new behavior to --interactive.
40         * tests/rm/interactive-once: New tests.
41         * tests/rm/interactive-always: Ditto.
42         * tests/rm/Makefile.am (TESTS): Run them.
43
44 2006-02-18  Jim Meyering  <jim@meyering.net>
45
46         * Makefile.maint (sc_two_space_separator_in_usage): Make the regular
47         expression match more of the target lines, e.g., those that start with
48         `-S,' (short option followed by a comma) or that include `=[...]'.
49         Patch by Nicolas François.
50         Fix the four offenders thus exposed:
51         * src/join.c (usage): Use two spaces (not one) to separate the
52         --first-only option string from its description, so help2man formats
53         the derived man page properly.
54         * src/pr.c (usage): Likewise.
55         * src/uniq.c (usage): Likewise.
56         * src/install.c (usage): Likewise.
57
58 2006-02-15  Jim Meyering  <jim@meyering.net>
59
60         * Makefile.maint (alpha beta major): For `make major', ensure that the
61         version string is of the form N.N[.N]*, where N is one or more digits.
62
63 2006-02-14  Jim Meyering  <jim@meyering.net>
64
65         * INSTALL: Update from gnulib.
66
67 2006-02-13  Jim Meyering  <jim@meyering.net>
68
69         * GNUmakefile (all): Emit diagnostics to stderr, not stdout.
70
71 2006-02-12  Jim Meyering  <jim@meyering.net>
72
73         * Makefile.maint (patch-check): New target.
74         (local-checks-available): Add to the list.
75
76 2006-02-11  Jim Meyering  <jim@meyering.net>
77
78         * src/c99-to-c89.diff: New file.
79         * src/Makefile.am (EXTRA_DIST): Add c99-to-c89.diff.
80
81         * .x-po-check: New file, with exclusions so that `make distcheck'
82         passes once again.
83         * Makefile.am (EXTRA_DIST): Add .x-po-check.
84
85         rm -r must remove an empty directory, even if it is inaccessible.
86         * src/remove.c (close_preserve_errno): New function.
87         (fd_to_subdirp): Don't print a diagnostic in this function.
88         Do it from the callers instead, unless rmdir succeeds.
89         (remove_cwd_entries, remove_dir): Adjust callers.
90         * tests/rm/empty-inacc: New test for the above.
91         * tests/rm/Makefile.am (TESTS): Add empty-inacc.
92         * NEWS: Mention this bug fix.
93         * tests/rm/rm2: Adjust two expected diagnostics, now that they're
94         a tiny bit less precise: cannot remove `a/1': ... instead of
95         cannot open directory `a/1': ...
96
97         * Makefile.maint (syntax-check-rules): Automatically derive this
98         list of sc_-prefixed rule names.
99
100 2006-02-10  Paul Eggert  <eggert@cs.ucla.edu>
101
102         * Makefile.maint (CVS_LIST): Don't assume cvsu is available.
103         (CVS_LIST_EXCEPT): New macro, to simplify exception-processing.
104         Most uses of CVS_LIST changed to use CVS_LIST_EXCEPT.
105         (syntax-check-rules): Bring back sc_changelong.  (Hmm, why did it
106         go away? was that an accident?)
107         (sc_cast_of_argument_to_free, sc_cast_of_x_alloc_return_value):
108         (sc_cast_of_alloca_return_value, sc_space_tab, sc_prohibit_atoi_atof):
109         (sc_error_exit_success, sc_file_system, sc_no_if_have_config_h):
110         (sc_system_h_headers, sc_sun_os_names, sc_trailing_blank):
111         (sc_two_space_separator_in_usage, sc_unmarked_diagnostics):
112         (sc_obsolete_symbols, sc_changelog, sc_prohibit_jm_in_m4):
113         (sc_useless_cpp_parens, makefile-check, m4-check, po-check):
114         (author_mark_check, makefile_path_separator_check):
115         Output line numbers, to simplify navigation of Emacs *compilation*
116         buffers.
117         (sc_prohibit_atoi_atof, sc_file_system):
118         Rework slightly so that Makefile.maint doesn't get reported as a
119         violation of its own syntax rules.
120         (sc_dd_max_sym_length): Use ifneq to do nothing, instead of doing
121         it at run-time (which didn't work with Bison).  Fix a makefile typo,
122         caught by Makefile.maint itself: spaces where a tab should be.
123         (po-check): Check lib/*.[ch] even if not in CVS; used by Bison,
124         which copies from ../gnulib/lib/*.[ch] to lib/*.[ch].
125         Ignore djgpp and man subdirectories, to avoid false matches with
126         Bison and coreutils, respectively.  Use sort -u to remove the
127         resulting duplicates.
128         * gnupload: Rework slightly to avoid bogus warning from
129         sc_two_space_separator_in_usage.
130
131 2006-02-10  Jim Meyering  <jim@meyering.net>
132
133         Use gzip's --rsyncable option only if it's available.
134         * Makefile.maint (gzip_rsyncable): New variable.
135         (GZIP_ENV): Use it.
136
137 2006-02-08  Jim Meyering  <jim@meyering.net>
138
139         * Makefile.maint (local-checks-available): Define in terms of
140         the expansion, $(syntax-check-rules), rather than the single,
141         top-level target `syntax-check', so that it's easier to exclude
142         individual rules (via $(local-checks-to-skip)).
143         (tgz-md5, tgz-sha1, ...): Remove now-unused definitions.
144
145 2006-02-07  Jim Meyering  <jim@meyering.net>
146
147         * src/system.h (!defined O_DIRECT): If O_DIRECTIO is defined (as it
148         is on Tru64), define O_DIRECT to that.  Patch From James Lemley.
149
150         * tests/help-version (expected_failure_status_vdir):
151         Redirect an expected disk-full diagnostic to /dev/null.
152
153 2006-02-06  Jim Meyering  <jim@meyering.net>
154
155         * src/unexpand.c (usage): Use two spaces (not one) to separate the
156         --first-only option string from its description, so help2man formats
157         the derived man page properly.
158         * src/rm.c (usage): Likewise for --no-preserve-root.
159         * src/chown.c (usage): Likewise.
160         * src/chgrp.c (usage): Likewise.
161
162         Add a rule to ensure that the above doesn't happen again.
163         * Makefile.maint (sc_two_space_separator_in_usage): New rule.
164         (syntax-check-rules): Add it.
165         * .x-sc_two_space_separator_in_usage: New empty file.
166         * Makefile.am (EXTRA_DIST): Add .x-sc_two_space_separator_in_usage.
167
168 2006-02-06  Jim Meyering  <jim@meyering.net>
169
170         * src/cp.c (usage): Use two spaces (not one) to separate each
171         option string from its description, so help2man formats the
172         derived man page properly.
173         * src/mv.c (usage): Likewise.
174         Patch from Nicolas François in http://bugs.debian.org/351601.
175
176 2006-02-04  Jim Meyering  <jim@meyering.net>
177
178         * src/copy.c (copy_internal): cp -RL would fail when encountering
179         the same directory more than once in the hierarchy beneath a single
180         command-line argument.  That is legitimate, e.g. when there are
181         two or more symbolic links, each pointing to some directory that
182         would not otherwise be copied.  Reported by Christophe LYON.
183         * tests/cp/cp-deref: New file.  Test for today's fix.
184         * tests/cp/Makefile.am (TESTS): Add cp-deref.
185         * NEWS: Document this.
186
187 2006-02-03  Jim Meyering  <jim@meyering.net>
188
189         * configure.ac: Require automake-1.9.6, not 1.8.3.
190
191 2006-02-01  Paul Eggert  <eggert@cs.ucla.edu>
192
193         * src/od.c (usage): Mention that -t a ignores high order bit.
194         Documentation problem reported by Ed Avis.
195
196 2006-02-01  Jim Meyering  <jim@meyering.net>
197
198         * src/pwd.c (find_dir_entry): Remove unused local, `ent_sb_valid'.
199
200 2006-01-30  Paul Eggert  <eggert@cs.ucla.edu>
201
202         * src/head.c (main): Use a better diagnostic when someone uses a
203         trailing numeric option in an invalid way.  Problem reported by
204         Karl Berry.
205         * src/tail.c (parse_options): Likewise.
206
207 2006-01-30  Jim Meyering  <jim@meyering.net>
208
209         * man/wc.x: Include `count' keyword in man page synopsis,
210         per suggestion from http://bugs.debian.org/181585.
211
212 2006-01-24  Paul Eggert  <eggert@cs.ucla.edu>
213
214         * src/df.c (show_dev): If the file system claims to have
215         more available than total blocks, report the number of used
216         blocks as being total - available (a negative number) rather
217         than as garbage.  Problem reported by Toralf Foerster.
218
219 2006-01-24  Jim Meyering  <jim@meyering.net>
220
221         * src/tail.c (tail_forever): Don't exit-nonzero when an attempt
222         to put a regular file in O_NONBLOCK mode fails with EPERM.
223         That happens on Linux (up to 2.6.15) when using tail -f on a file with
224         the append-only attribute.  Reported by Dean Gaudet.  For details,
225         see http://savannah.gnu.org/bugs/?func=detailitem&item_id=15473.
226         * NEWS: Mention this fix.
227         * tests/tail-2/append-only: New file.  Test for the above.
228         * tests/tail-2/Makefile.am (TESTS): Add append-only.
229         * tests/Makefile.am (check-root): Add tail-2/append-only
230
231 2006-01-21  Jim Meyering  <jim@meyering.net>
232
233         * NEWS: Mention fts-related improvements and bug fixes.
234
235 2006-01-19  Jim Meyering  <jim@meyering.net>
236
237         * tests/fmt/basic (pfx-1, pfx-2): New tests, to demonstrate the bug
238         reported as http://bugs.debian.org/147577.  Forwarded by Thomas Hood.
239
240 2006-01-18  Jim Meyering  <jim@meyering.net>
241
242         * tests/du/Makefile.am (TESTS): Add long-from-unreadable.
243
244 2006-01-17  Jim Meyering  <jim@meyering.net>
245
246         Now that fts no longer changes the current working directory, adjust
247         its clients accordingly -- note that du.c uses fts but doesn't need
248         any adjustment, since it doesn't operate on the actual files,
249         but rather just uses the stat buffers provided by fts.
250
251         * src/chown-core.c: Include "openat.h".
252         Don't include "lchown.h".
253         (restricted_chown): Accept a new parameter, CWD_FD, and use it in
254         calling openat, lchownat, chownat, rather than open, lchown, chown.
255         Update caller.
256         * src/chmod.c: Include "openat.h".
257         (process_file): Use chmodat (fts->fts_cwd_fd,... in place of chmod (...
258
259         * tests/du/long-from-unreadable: New test, to exercise one small
260         corner of fts.c.
261
262 2006-01-13  Jim Meyering  <jim@meyering.net>
263
264         * tests/Makefile.am (SUBDIRS): Add comments discouraging the
265         addition of new directories under tests/.
266
267         * tests/acl: Redirect stdin to /dev/null.  Otherwise, FreeBSD 5.0's
268         getfacl would hang.
269
270 2006-01-12  Jim Meyering  <jim@meyering.net>
271
272         * tests/du/long-sloop: Adjust not to hard-code the expected
273         diagnostic corresponding to ELOOP.  Solaris' diagnostic differs
274         from that of GNU libc.  Reported by Paul Eggert.
275
276         * tests/du/long-sloop: Create file at end of symlink chain.
277
278         * tests/misc/test: New file, with a test for one of the
279         bugs fixed by yesterday's test.c changes.
280         * tests/misc/Makefile.am (TESTS): Add test.
281
282 2006-01-11  Jim Meyering  <jim@meyering.net>
283
284         * tests/du/long-sloop: New file.  Test for today's fts.c bug fix.
285         That bug could make du -L, chgrp -L, or chown -L fail to diagnose
286         a very long sequence of symbolic links (not necessarily a loop).
287         * tests/du/Makefile.am (TESTS): Add long-sloop.
288
289 2006-01-11  Paul Eggert  <eggert@cs.ucla.edu>
290
291         * src/test.c (test_syntax_error): Append a newline.  All callers
292         changed, except for the ones that didn't already append a newline.
293         Bug reported by Eric Blake.
294
295 2006-01-11  Jim Meyering  <jim@meyering.net>
296
297         * src/system.h (X2NREALLOC): Now that verify_true is no longer
298         void, cast its result to void, to avoid gcc's warning that
299         ``left-hand operand of comma expression has no effect''.
300         (DECIMAL_DIGIT_ACCUMULATE, X2REALLOC): Likewise.
301
302 2006-01-10  Jim Meyering  <jim@meyering.net>
303
304         * tests/chmod/no-x: Add a test for today's fts.c fix.
305
306 2006-01-10  Jim Meyering  <jim@meyering.net>  (tiny change)
307
308         * src/ls.c (gobble_file): Use DTTOIF only if it's defined.
309         This is necessary for Dragonfly.  Patch by Joerg Sonnenberger.
310
311 2006-01-10  Paul Eggert  <eggert@cs.ucla.edu>
312
313         * src/system.h (X2NREALLOC, X2REALLOC, DECIMAL_DIGIT_ACCUMULATE):
314         Use verify_true instead of verify_expr, to sync with gnulib.
315
316 2006-01-08  Jim Meyering  <jim@meyering.net>
317
318         * src/date.c (usage): Adjust the formatting of the entries for
319         %::z and %:::z (separate with two spaces, not one) so that help2man
320         formats them properly.  Reported by Philip Rowlands.
321
322 2006-01-06  Paul Eggert  <eggert@cs.ucla.edu>
323
324         * configure.ac (gl_IGNORE_UNUSED_LIBRARIES): Add.
325
326 2006-01-06  Jim Meyering  <jim@meyering.net>
327
328         * Makefile.maint (copyright-check): Use date +%Y in place of
329         hard-coded 2005.
330
331         * src/remove.c (rm_1): Remove `static' attribute on local `status'.
332         First off, the attribute should have been `volatile' (not static)
333         to avoid longjmp-related risk of clobber.  Secondly, now there is
334         no longer any risk of a local variable being clobbered, so there's
335         no need for any attribute at all.
336
337 2006-01-05  Jim Meyering  <jim@meyering.net>
338
339         * src/remove.c: Give a few functions the inline attribute.
340         (AD_pop_and_chdir): Use gotos to avoid some duplication.
341         (AD_push): Rewrite an assertion so that the entire computation
342         goes away when assertions are turned off.
343
344         * src/tail.c (ENOSYS) [!defined ENOSYS]: Don't define here.
345         It's already defined in "system.h".
346         * Makefile.maint: Add a FIXME comment.
347
348 2006-01-04  Jim Meyering  <jim@meyering.net>
349
350         * ChangeLog: Remove entries from 2005-10-22 and earlier.
351         * ChangeLog-2005: New file, for entries up to version 5.92.
352
353 2006-01-03  Jim Meyering  <jim@meyering.net>
354
355         * tests/du/no-x: Also allow a slightly different diagnostic -- the
356         one you get when using openat-enabled fts.c and du (coming soon).
357         * tests/chmod/no-x: Likewise.
358         * tests/chgrp/no-x: Likewise.
359
360         * src/system.h (O_DIRECTORY) [!defined O_DIRECTORY]: Define.
361
362 2006-01-02  Paul Eggert  <eggert@cs.ucla.edu>
363
364         * src/chown-core.c (RC_do_ordinary_chown): New enum value.
365         (restricted_chown): Return it, if the file cannot be accessed due
366         to EPERM, or if no uid or gid are required, or if the file is
367         neither a directory nor a regular file.  Rewrite to avoid gotos.
368         (change_file_owner): Handle RC_do_ordinary_chown case.
369         Rewrite to avoid gotos.
370         * tests/chgrp/basic: Make sure we can change the group of
371         inaccessible files.
372
373         * src/date.c (usage): Explain %g, %G, and %V a bit better.
374
375 2006-01-02  Jim Meyering  <jim@meyering.net>
376
377         * src/copy.c (set_owner): Correct a comment.
378
379         * src/tail.c (parse_options): Change warning to say that --retry
380         is useful `mainly' (not `only') when following by name.
381         Reported here: http://bugs.debian.org/273781
382
383 2006-01-01  Paul Eggert  <eggert@cs.ucla.edu>
384
385         * NEWS: Document that mkfifo and mknod -m no longer set special bits.
386         * src/copy.c: Include lchmod.h.
387         (copy_internal): Use lchmod rather than chmod.
388         * src/cp.c: Include lchmod.h.
389         (re_protect, make_dir_parents_private): Use lchmod rather than chmod.
390         * src/mkdir.c: Include lchmod.h.
391         (usage): Clarify -m's operation.
392         (main): Use lchmod rather than chmod.  Don't use lchmod unless the
393         new mode contains bits outside the 777 range.
394         * src/mkfifo.c (usage): Clarify -m's operation.
395         (main): If -m is given, don't invoke chmod; use umask 0 instead.
396         Report an error if -m asks for bits outside the 777 range.
397         * src/mknod.c (usage, main): Likewise.
398
399         * src/mkdir.c, src/mkfifo.c, src/mknod.c: Undo 2005-12-19 changes.
400
401 2005-12-27  Jim Meyering  <jim@meyering.net>
402
403         * Makefile.maint (sc_obsolete_symbols): Prohibit use of O_NDELAY.
404         (sc_prohibit_assert_without_use): New rule.
405         (syntax-check-rules): Add it to the list.
406         * .x-sc_prohibit_assert_without_use: New empty file.
407         * Makefile.am (EXTRA_DIST): Add it.
408
409         * Makefile.maint (CVS_LIST): Define in terms of $(srcdir).
410
411         * cp.c, df.c, link.c, mknod.c, nice.c, sleep.c, unlink.c:
412         Don't include <assert.h>; it wasn't used.
413
414 2005-12-26  Paul Eggert  <eggert@cs.ucla.edu>
415
416         * src/chown-core.c (restricted_chown):
417         Don't try O_WRONLY unless O_RDONLY failed wth EACCES.
418         * src/remove.c (fd_to_subdirp): Open with O_DIRECTORY | O_NOCTTY
419         | O_NOFOLLOW too, for consistency with other dir-openers.
420         Use POSIX-preferred O_NONBLOCK rather than O_NDELAY.
421         (is_empty_dir): Likewise.
422         * src/shred.c (wipename): Likewise.  Don't bother trying to open
423         dir for writing, since POSIX prohibits it.
424
425 2005-12-22  Jim Meyering  <jim@meyering.net>
426
427         * tests/help-version: Redirect stderr to /dev/full, to suppress
428         write error diagnostic.
429
430 2005-12-19  Jim Meyering  <jim@meyering.net>
431
432         * src/mkdir.c, src/mknod.c, src/mkfifo.c (main)
433         Avoid a minor race condition when `-m MODE' is specified, by using
434         open, fchown, and close rather than just chown.  To do that reliably --
435         even with an overly restrictive umask -- ensure that each mkdir,
436         mknod and mkfifo call uses a mode including at least owner-read access.
437         * src/mknod.c (main): When `-m MODE' is specified, exit nonzero if
438         the subsequent chown (or equivalent open,fchown,close) fails.
439         * tests/misc/mknod: New tests.
440         * tests/misc/Makefile.am (TESTS): Add mknod.
441
442 2005-12-17  Jim Meyering  <jim@meyering.net>
443
444         * src/remove.c (is_empty_dir): Open with O_NDELAY, so we don't hang,
445         e.g., on a named pipe.
446         (OPEN_NO_FOLLOW_SYMLINK): Remove definition.  Use O_NOFOLLOW in
447         place of all uses, since it is guaranteed (system.h) to be defined.
448
449 2005-12-05  Andreas Gruenbacher  <agruen@suse.de>
450
451         Add POSIX ACL support
452         * src/ls.c: Switch back from HAVE_ACL to USE_ACL: The acl() syscall
453         is no requirement for ACL support; particularly, it does not exist
454         on systems that have POSIX ACLs.
455         * src/copy.h (cp_option_init) [umask_kill]: Remove member.
456         * src/cp.c (umask_kill): With default acls, the umask is not to be
457         applied.  Remove umask_kill, don't change the process umask, and let
458         the kernel apply the umask where appropriate.
459         * src/cp.c (make_dir_parents_private): Fix logic for POSIX ACLs.
460         * src/copy.c (get_dest_mode): Remove; it is obsolete after removing
461         umask_kill.
462         (copy_reg, copy_internal): Use copy_acl and set_acl
463         instead of fchown/chown. Fix the logic for POSIX ACLs.
464         (chown_succeded): Remove; we now always copy acls and
465         preserve S_ISUID, S_ISGID, and S_ISVTX when needed, no matter if we
466         did a chown before or not.
467         * src/mv.c, src/install.c (cp_option_init): Don't set umask_kill member.
468         * src/Makefile.am (dir_LDADD, ls_LDADD, vdir_LDADD, cp_LDADD,
469         mv_LDADD, ginstall_LDADD): On systems with an ACL library, arrange
470         to link with it via $(LIB_ACL), for the utilities that need it.
471
472 2005-12-16  Paul Eggert  <eggert@cs.ucla.edu>
473
474         * src/remove.c (OPENAT_CWD_RESTORE__REQUIRE): Remove.
475         (OPENAT_CWD_RESTORE__ALLOW_FAILURE): Likewise.
476         (fd_to_subdirp): Remove openat_cwd_restore_allow_failure arg; its
477         value is now signified by whether cwd_errno is null.
478         (fd_to_subdirp, remove_dir, rm_1); Change cwd failure indicator from
479         pointer-to-bool to pointer-to-errno-value.  All callers changed.
480         (rm_1): Don't bother setting a local cwd failure flag and then
481         ORing it into the caller's.  Just set the caller's.
482         (rm): Use cwd failure errno value to print a slightly-better
483         diagnostic.
484
485 2005-12-15  Jim Meyering  <jim@meyering.net>
486
487         * src/stat.c (print_it): Properly handle a backslash at the
488         end of a --printf format string.  Reported by Paul Eggert.
489         * tests/misc/stat-printf (end-bs): Add a test for the above.
490
491 2005-12-15  Paul Eggert  <eggert@cs.ucla.edu>
492
493         * tests/acl: Port to pre-POSIX shells like Solaris 8 /bin/sh.
494         Don't assume /etc/passwd contains user names; use 'id' instead.
495
496 2005-12-15  Jim Meyering  <jim@meyering.net>
497
498         stat: revert behavior of --format=FMT (-c)
499         stat: add new option: --printf=FMT
500         * NEWS: Mention this.
501         * src/stat.c (isodigit, octtobin, hextobin): Define.
502         (PRINTF_OPTION): Define.
503         (interpret_backslash_escapes, trailing_delim): New globals.
504         (usage): Document them.  Alphabetize on long option names.
505         (print_esc_char): New function.
506         (print_it): Rewrite, in order to handle backslash escapes.
507         (main): Handle new option.  Set globals for --format, too.
508
509         * tests/misc/stat-printf: Test --printf and --format.
510         * tests/misc/Makefile.am (TESTS): Add stat-printf.
511
512 2005-12-14  Paul Eggert  <eggert@cs.ucla.edu>
513
514         * NEWS: sort now reports incompatible options.
515         * src/sort.c (incompatible_options, check_ordering_compatibility):
516         New functions.
517         (main): Use them.  Don't bother with a usage message for
518         "sort -c a b", for consistency with other error diagnostics.
519         * tests/sort/Test.pm (incompat1, incompat2, incompat3, incompat4):
520         New tests.
521
522         * src/cat.c (main): Undo previous change.  close_stdout already
523         does the check, so the previous change wasn't necessary.
524
525 2005-12-13  Paul Eggert  <eggert@cs.ucla.edu>
526
527         * src/cat.c (main): Check for close (STDOUT_FILENO) failure.
528
529 2005-12-12  Paul Eggert  <eggert@cs.ucla.edu>
530
531         Install a more-conservative approach for sort -R.  It's the
532         same basic idea as the existing code, except it uses the full ISAAC
533         approach (called the "more kosher" approach in the existing comments).
534         This makes "sort -R" quite a bit slower (about a factor of 2 on my
535         little tests involving 10000 lines on a 2.4 GHz P4), but I think it's
536         better to be conservative here at first, and review any performance
537         improvements carefully.
538         * .x-sc_require_config_h: Add src/rand-isaac.c.
539         * src/rand-isaac.h: Remove.  All uses now simply include rand-isaac.c.
540         * src/Makefile.am (noinst_HEADERS): Remove rand-isaac.h.
541         (shred_SOURCES, sort_SOURCES): Remove.
542         (EXTRA_DIST): Add rand-isaac.c.
543         * src/rand-isaac.c: Revert to what used to be in shred.c, without
544         changing it to allow for varying numbers of words in the state.
545         Alter so that we include rand-isaac.c directly rather than
546         compiling it and linking to it.  Don't include config.h or
547         system.h; that's the includer's responsibility.
548         Omit functions that are specific to shred.
549         (ISAAC_LOG, ISAAC_WORDS, ISAAC_BYTES, struct isaac_state, ind):
550         (isaac_step, struct irand_state):
551         Resurrect these, with the same defns that used to be in shred.c.
552         (ISAAC_SIZE, isaac_new, isaac_copy): Remove.
553         (isaac_refill, isaac_seed_start, isaac_seed_data, irand_init, irand32):
554         static again.
555         (struct isaac_state, isaac_refill, isaac_mix, isaac_init):
556         (isaac_seed_start, isaac_seed_data, isaac_seed_finish, isaac_seed):
557         (irand_init, irand32, irand_mod):
558         Number of words is constant again.
559         (struct irand_state, irand_init, irand32, irand_mod): Move to shred.c.
560         * src/shred.c: Include rand-isaac.c rather than rand-isaac.h.
561         * src/sort.c: Likewise.
562         * src/shred.c (fillrand, dopass, main): Undo previous change.
563         (struct irand_state, irand_init, irand32, irand_mod): Moved back here,
564         from rand-isaac.c.
565         * src/sort.c: Don't include md5.h; it wasn't needed.
566         (struct keyfield): Rename random_hash to random, for consistency
567         with the other member names.  All uses changed.
568         (usage): Tweak wording to mention STRING for --seed option.
569         (short_options): Rorder for consistency with other programs.
570         (rand_state): Now a struct, not a pointer to one.  All uses changed.
571         (HASH_WORDS, HASH_SIZE): Remove.
572         (get_hash): Remove comments around resbuf size, since we can assume C89.
573         Use a "more-kosher" (but slower) approach of invoking isaac_refill.
574         (keycompare): Adjust to the new get_hash.
575         Add a FIXME.
576         (badfieldspec): Omit recently-introduced comment; it isn't needed.
577         (main): Don't set need_random simply because gkey has it set; that
578         doesn't necessarily mean we'll need random numbers.
579         Redo seeding to match new get_hash approach.
580
581 2005-12-10  Jim Meyering  <jim@meyering.net>
582
583         * src/Makefile.am (noinst_HEADERS): Add rand-isaac.h.
584
585         Avoid shred segfault on 64-bit systems.
586         * src/rand-isaac.c (isaac_refill): Don't try to negate a
587         local of type uint32_t.  Make the local an `int' instead.
588
589         * NEWS: Mention sort's new options.
590
591         * src/rand-isaac.c (isaac_mix): Declare to be static.
592         Mark all other functions as `extern' so the tight-scope
593         part of `make distcheck' passes once again.
594         * src/rand-isaac.h (isaac_mix): Remove declaration.
595
596         * src/sort.c (get_hash): Change position of `*' in parameter
597         type to conform with convention.
598         (main): Split a long line so it fits in 80 columns.
599         (keycompare): Remove stray SPACE before TAB that was
600         causing `make distcheck' to fail.
601
602         * src/shred.c: Don't include gethrxtime.h.  No longer needed.
603
604         * tests/misc/sort-rand: New file: basic tests for the new options.
605         * tests/misc/Makefile.am (TESTS): Add sort-rand.
606
607 2005-12-10  Frederik Eaton  <frederik@ofb.net>
608
609         * src/Makefile.am (sort_LDADD): Add $(LIB_GETHRXTIME).
610         (shred_SOURCES, sort_SOURCES): New macros, so we compile rand-isaac.c.
611         * src/rand-isaac.c: New file, containing ISAAC code that was in shred.c.
612         Make state size runtime-configurable.
613         (isaac_new, isaac_copy): New functions.
614         * src/rand-isaac.h: New file.
615         * src/shred.c: Include rand-isaac.h.  Move ISAAC code to rand-isaac.c.
616         (fillrand, main): Adjust to the fact that the state size is now
617         runtime-configurable.
618         * src/sort.c (short_options, long_options, WORDS, keycompare, main):
619         (usage): Add options --random-sort and --seed to implement a random
620         shuffle.
621         Include md5.h and rand-isaac.h.
622         (get_hash): New function.
623         (rand_state): New var.
624         (HASH_WORDS, HASH_SIZE): New macros.
625
626 2005-12-09  Paul Eggert  <eggert@cs.ucla.edu>
627
628         * tests/dd/misc: Add test for dd iflags=noatime.
629
630 2005-12-09  Jim Meyering  <jim@meyering.net>
631
632         * src/sort.c (usage): Mention white space vs -b and -t options.
633         From The Wanderer.
634
635 2005-12-09  Eric Blake  <ebb9@byu.net>
636
637         * src/test.c (main): Fix misleading comment.
638
639 2005-12-07  Paul Eggert  <eggert@cs.ucla.edu>
640
641         * NEWS: Mention dd's new noatime flag.
642         * src/system.h (O_NOATIME): Define to 0 if not already defined.
643         * src/dd.c (flags, usage): Add support for noatime flag.
644
645 2005-12-07  Jim Meyering  <jim@meyering.net>
646
647         Distribute the cvsu script, used only by `make syntax-check'.
648         * Makefile.am (EXTRA_DIST): Add build-aux/cvsu.
649         * Makefile.maint (CVS_LIST): Use build-aux/cvsu, now that we
650         distribute a copy of this script.
651         * .x-sc_unmarked_diagnostics: Add build-aux/cvsu.
652
653         * tests/mv/acl: exit-77 before the trap, not after, if we fail
654         to create a temporary directory on another partition.
655         From Andreas Gruenbacher.
656
657 2005-12-06  Tomas Pospisek  <tpo@sourcepole.ch>  (tiny change)
658
659         * man/basename.x: Cross-reference to dirname and readlink.
660         * man/dirname.x: Cross-reference to basename and readlink.
661
662 2005-12-05  Andreas Gruenbacher
663
664         * src/copy.c [!HAVE_FCHOWN]: Define fchown(...) to -1.
665         (set_owner, preserve_author): New functions, factored out of copy_reg.
666         (copy_reg): Use them.
667         (copy_internal): Use them here, too.
668
669 2005-12-04  Jim Meyering  <jim@meyering.net>
670
671         * src/sleep.c (usage): Say what happens with two or more arguments.
672         Suggested by Justin Pryzby.
673
674         * src/uptime.c (print_uptime): Move decl of `upsecs' into scope
675         where it's used.
676
677 2005-12-03  Jim Meyering  <jim@meyering.net>
678
679         * src/rm.c (long_opts): Change the name of each undocumented, for-
680         testing-only option to start with `-', so that it cannot render
681         ambiguous any prefix it happens to share with some other option name.
682         Problem reported by Eric Blake.
683         * src/head.c (long_options): Likewise.
684         * src/tail.c (long_options): Likewise.
685
686         * tests/misc/head-elide-tail: Update uses of undocumented, for-
687         testing-only --presume* options to start with `---'.
688         * tests/rm/dangling-symlink: Likewise.
689         * tests/rm/dir-no-w: Likewise.
690         * tests/rm/isatty: Likewise.
691
692 2005-11-30  Jim Meyering  <jim@meyering.net>
693
694         * Makefile.maint: Add a comment about cvsu.
695
696 2005-11-25  Paul Eggert  <eggert@cs.ucla.edu>
697
698         * NEWS: df updates for "none", "proc", inaccessible file systems.
699         * src/df.c (show_point): Ignore inaccessible file systems.
700         (usage): -a includes dummy file systems, not size-0 file systems.
701
702         * src/od.c (unsigned_long_long_int): Renamed from ulonglong_t,
703         to avoid collision with POSIX name space.  All uses changed.
704
705 2005-11-24  Jim Meyering  <jim@meyering.net>
706
707         * tests/Makefile.am (EXTRA_DIST): Add acl to the list.
708         * tests/acl: Add `$0: ' prefix to diagnostics.
709
710         * .x-sc_require_config_h: Add lib/buffer-lcm.c to the list.
711
712 2005-11-23  Paul Eggert  <eggert@cs.ucla.edu>
713
714         * src/copy.c: Improve performance a bit by optimizing away
715         unnecessary system calls and going to a block size of at least
716         8192 (on normal hosts, anyway).  This improved performance 5% on my
717         Debian stable host (2.4.27 kernel, x86, copying from root
718         ext3 file system to itself).
719         Include "buffer-lcm.h".
720         (copy_reg): Omit last argument.  All callers changed.
721         Use xmalloc to allocate rather than trusting alloca
722         (which is unwise with large block sizes).
723         Declare locals more locally, if possible.
724         Use uintptr_t words instead of int words, for a bit more speed
725         when looking for null blocks on 64-bit hosts.
726         Optimize away reads of zero bytes on regular files.
727         In the typical case, insist on 8 KiB buffers, at least.
728         Avoid unnecessary extra call to fstat when checking for sparse files.
729         Avoid now-unnecessary cast to off_t, and "0L".
730         Avoid unnecessary test of *new_dst when checking for same owner
731         and group.
732
733 2005-11-22  Paul Eggert  <eggert@cs.ucla.edu>
734
735         * src/remove.c (rm): Don't assume C99 for-loop syntax.
736
737 2005-11-22  Jim Meyering  <jim@meyering.net>
738
739         * src/remove.c (AD_push): Remove debugging cruft.
740
741         * tests/rm/unread2 (rm): Change expected diagnostic,
742         `cannot open directory' to `cannot remove', to align with
743         new version of rm.
744         * tests/rm/rm2: Ensure that rm now continues removing entries
745         even after certain types of failure.
746
747         * src/remove.c: Rewrite.  Now, this module is reentrant on systems
748         that provide openat (Solaris), and on systems like Linux+procfs
749         where our openat emulation code is reentrant.  This also fixes a
750         few low-probability leaks and eliminates some code that could,
751         in very unusual circumstances, cause rm() (via a callee) to exit.
752         * NEWS: Mention this.
753
754         * configure.ac: Put copyright dates all on one line so the
755         emacs function that updates them works properly.
756
757 2005-11-18  Paul Eggert  <eggert@cs.ucla.edu>
758
759         * configure.ac (AM_PROG_CC_C_O): Add.  Needed for CVS Automake.
760         Problem reported by Eric Blake.
761         (AC_PROG_CC_STDC): Use this instead of AC_PROG_CC, so that
762         we get a standard-conforming compiler.  This relies on the new
763         m4/c.m4 file.  Note that it's a bit tricky, since c.m4 doesn't
764         define AC_PROG_CC_STDC; we are relying on Autoconf 2.59 internals.
765         m4/c.m4 can go away with Autoconf 2.60 comes out.
766
767 2005-11-17  Jim Meyering  <jim@meyering.net>
768
769         * src/remove.c (AD_mark_helper): Make a `char *' parameter `const'.
770         (AD_mark_current_as_unremovable): Likewise, but for a local.
771         (rm_1): Likewise.
772
773         * tests/mv/acl: Let traps handle removing temporary directories.
774
775         Expect acl-related tests to fail, until the corresponding
776         patches are committed.
777         * tests/mv/Makefile.am (XFAIL_TESTS): Add acl.
778         * tests/cp/Makefile.am (XFAIL_TESTS): Likewise.
779
780         ACL tests, from Andreas Gruenbacher.
781         * tests/acl, tests/mv/acl, tests/cp/acl: New files.
782         * tests/mv/Makefile.am (TESTS): Add acl.
783         * tests/cp/Makefile.am (TESTS): Add acl.
784
785         * src/ls.c (basename_is_dot_or_dotdot): Correct wording in comment.
786
787 2005-11-16  Paul Eggert  <eggert@cs.ucla.edu>
788
789         * NEWS: Improve quality of ln's diagnostics.
790         * src/ln.c (do_link, usage): Likewise.
791         (do_link): Don't use alloca on a buffer of unbounded size.
792
793 2005-11-16  Jim Meyering  <jim@meyering.net>
794
795         * tests/cp/fail-perm: Accommodate HPUX.  It appears to fail
796         with EACCES rather than EPERM.  Reported by Peter O'Gorman here:
797         http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/5766
798
799 2005-11-14  Jim Meyering  <jim@meyering.net>
800
801         * NEWS (sort): Mention consequences of today's mkstemp-safer.c fix.
802
803 2005-11-13  Jim Meyering  <jim@meyering.net>
804
805         * announce-gen: Accept new option, --gpg-key-id=ID and
806         emit a blurb telling how to use the .sig files.
807         * Makefile.cfg (gpg_key_ID): Define.
808         * Makefile.maint (announcement): Use new option and key.
809
810         Require that most .c files include <config.h>.
811         * Makefile.maint (sc_require_config_h): New rule.
812         (syntax-check-rules): Add it.
813         * .x-sc_require_config_h: New file listing exceptions to the
814         above rule.  Some are legit, others are simply grandfathered in.
815         * Makefile.am (EXTRA_DIST): Add .x-sc_require_config_h here, too.
816
817 2005-11-12  Jim Meyering  <jim@meyering.net>
818
819         * src/checksum.h, src/md5.c, src/sha1sum.c: Remove now-unused files.
820
821 2005-11-11  Jim Meyering  <jim@meyering.net>
822
823         * NEWS: Mention `readlink -f' bug fix in 5.3.0 news.
824         Mention new readlink options in 5.3.0's `New features' section.
825         Spotted by Thomas Hood.
826
827 2005-11-08  Jim Meyering  <jim@meyering.net>
828
829         * NEWS: Merge in changes from b5_9x branch.
830
831 2005-11-08  Paul Eggert  <eggert@cs.ucla.edu>
832
833         * NEWS: ls now defaults to --time-style='locale', which in turn acts
834         like --time-style='posix-long-iso' if the locale settings are messed up.
835         * src/ls.c (decode_switches): Implement this.
836
837 2005-11-08  Jim Meyering  <jim@meyering.net>
838
839         * tests/du/2g: s/expensive/very expensive/ in a comment.
840         From Paul Townsend.
841
842 2005-10-17  Eric Blake  <ebb9@byu.net>
843
844         * src/ls.c (usage): Fix descriptions of --sort, --time.
845         Reported by Vitaly A. Ostanin.
846
847 2005-11-04  Paul Eggert  <eggert@cs.ucla.edu>
848
849         * src/ln.c: Include filenamecat.c.
850         (FILE_BASENAME_CONCAT): Remove.
851         (do_link): Remove last arg DEST_IS_DIR.  All callers changed.
852         (main): Use file_name_concat, base_name, and strip_trailing_slashes
853         instead of FILE_BASENAME_CONCAT.  This simplifies the code, and avoids
854         the use of alloca.
855
856 2005-11-04  Jim Meyering  <jim@meyering.net>
857
858         * src/du.c (process_file): Don't overflow for files of size >= 2^31
859         on systems with stat.st_blocks of a signed 32-bit type.
860         This bug causes trouble on some AIX 5.1 systems.
861         Report and trivial patch from Paul Townsend:
862         <http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00033.html>
863         * NEWS: Mention this.
864
865         * tests/du/2g: New (very-expensive) test for the above-fixed bug.
866         * tests/du/Makefile.am (TESTS): Add it here.
867         * tests/very-expensive: New file.
868         * tests/Makefile.am (EXTRA_DIST): Add it here.
869         * tests/cp/perm: Mark this test as `very-expensive', too.
870
871 2005-11-02  Paul Eggert  <eggert@cs.ucla.edu>
872
873         * NEWS: Mention that rm -d and maybe ln -d are scheduled for
874         removal in 2006.
875         * src/remove.h (struct rm_options): Remove unlink_dirs.  All uses
876         removed.
877         * src/rm.c (usage): Don't mention rm -d.
878
879 2005-11-02  Jim Meyering  <jim@meyering.net>
880
881         * tests/dd/skip-seek: Fix typo in comment: s/fileutils/coreutils.
882         From Andreas Schwab.
883
884         * tests/dd/unblock-sync: Redirect stderr to /dev/null so the
885         `M+N records in/out' lines don't pollute `make check' output.
886
887         * tests/dd/skip-seek (sk-seek4): New test, to exercise the bug
888         fixed on 2005-10-31.  This test uses the new, IN_PIPE specifier.
889         * tests/Coreutils.pm: Accept a new type of input specifier: IN_PIPE,
890         to indicate that the input file should be piped into the command
891         under test (via `cat FILE | $prog ...').
892
893         * src/remove.c (remove_entry): Emit a better diagnostic when rm
894         (without -r) fails to remove a directory on a non-Linux system.
895         This change affects only newer Solaris systems (with priv_*
896         functions like priv_allocset).  Reported by Keith Thompson.
897
898         * tests/rm/dir-nonrecur: New file/test for the above fix.
899         * tests/rm/Makefile.am (TESTS): Add dir-nonrecur.
900
901 2005-11-01  Paul Eggert  <eggert@cs.ucla.edu>
902
903         * NEWS: "tail -c 2 FILE" and "touch 0101000000" now operate as
904         POSIX 1002.1-2001 requires.
905         * src/tail.c (parse_obsolete_option): Implement this.
906         Problem reported by Vincent Lefevre.
907         * src/touch.c (main): Pass PDS_PRE_2000 to posixtime.
908         * tests/tail/Test.pm (c-2, c-2-minus, c2, c2-minus): New tests.
909         (test_vector): Add special cases for _POSIX2_VERSION, and
910         regularize the old ones a bit.
911         * tests/touch/obsolescent: Add y2000 test.
912
913 2005-10-31  Paul Eggert  <eggert@cs.ucla.edu>
914
915         * src/dd.c (skip): Fix off-by-one error reported by
916         Theodoros V. Kalamatianos.
917
918 2005-10-30  Paul Eggert  <eggert@cs.ucla.edu>
919
920         * tests/mkdir/p-3: Require that the test be run as non-root.
921         Problem and trivial fix reported by Theodoros V. Kalamatianos.
922
923 2005-10-28  Paul Eggert  <eggert@cs.ucla.edu>
924
925         * src/ln.c (FILE_BASENAME_CONCAT): Omit unnecessary slashes in the
926         boundary between DEST and SOURCE in the result.
927
928 2005-10-26  Dmitry V. Levin  <ldv@altlinux.org>
929
930         * src/md5sum.c (main) [!O_BINARY]: Changed default read mode
931         back to text, to sync with documentation and for backwards
932         compatibility.
933
934 2005-10-25  Jim Meyering  <jim@meyering.net>
935
936         * tests/dircolors/simple (other-wr): Add an explicit test for
937         the dircolors bug (NULL-dereference) fixed yesterday.
938
939 2005-10-24  Jim Meyering  <jim@meyering.net>
940
941         * src/tac.c (tac_file): When determining whether a file is seekable,
942         also test whether it is a tty.  Using only the lseek-based test would
943         give a false positive on Solaris.  Reported by Peter Fales.
944
945 2005-10-24  Dmitry V. Levin  <ldv@altlinux.org>
946
947         * tests/install/d-slashdot: New test, for "install -d" failure.
948         * tests/install/Makefile.am (TESTS): Add d-slashdot.
949         * tests/mkdir/p-slashdot: New test, for "mkdir -p" failure.
950         * tests/mkdir/Makefile.am (TESTS): Add p-slashdot.
951
952 2005-10-24  Jim Meyering  <jim@meyering.net>
953
954         * src/dircolors.c (ls_codes): Add missing comma.
955         Anonymous report and patch from
956         http://savannah.gnu.org/bugs/?func=detailitem&item_id=14849
957
958         * src/dircolors.c: Add compile-time assertion that the slack_codes
959         and ls_codes arrays have the same number of elements.  This would
960         have prevented the above-fixed bug.
961
962         * src/expand.c (parse_tab_stops): Add a comment to make this function
963         identical to the one in unexpand.c.
964         * src/unexpand.c (parse_tab_stops): Adjust syntax to make this function
965         identical to the one in expand.c.
966
967         * src/expand.c (next_file): Don't assume fopen cannot return stdin.
968
969 2005-10-23  Jim Meyering  <jim@meyering.net>
970
971         * src/md5sum.c (digest_check, main): Use ptr_align rather than
972         a dangerous pointer-value-to-`unsigned' cast.
973         * NEWS: mention the new sha* programs.
974         * AUTHORS: Add new sha* programs.
975
976 2005-08-28  David Madore  <david.madore@ens.fr>
977
978         Add new programs: sha224sum, sha256sum, sha384sum, sha512sum.
979         * README: Add their names to the list.
980         * src/md5sum.c: Provide framework for computing sha-2 hashes.
981         * src/Makefile.am (sha224sum, sha256sum, sha384sum, sha512sum):
982         Rules for compiling sha-2 utilities
983         (noinst_HEADERS): Remove checksum.h.
984         * man/sha512sum.x, man/sha384sum.x, man/sha256sum.x, man/sha224sum.x:
985         New files.
986         * man/Makefile.am (dist_man_MANS): Add the corresponding .1 names.
987         (sha224sum.1, sha256sum.1, sha384sum.1, sha512sum.1): New dependencies.
988         * tests/misc/sha224sum, tests/misc/sha256sum: New files.
989         * tests/misc/sha384sum, tests/misc/sha512sum: New files.
990         * tests/misc/Makefile.am (TESTS): Add new sha224sum, sha256sum,
991         sha384sum, sha512sum test scripts here rather that each in its
992         own directory.
993
994 2005-08-28  David Madore  <david.madore@ens.fr>
995
996         * tests/sha1sum/basic-1 (million-a): Add the "million a's" test (one
997         of the FIPS test vectors).
998
999 2005-10-23  Jim Meyering  <jim@meyering.net>
1000
1001         * configure.ac: Use 6.0-cvs as the version string.
1002         * NEWS: Adjust accordingly.