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