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