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