* src/ls.c (gobble_file): When handling a stat-failed entry,
[platform/upstream/coreutils.git] / ChangeLog
1 2006-07-25  Jim Meyering  <jim@meyering.net>
2
3         * src/ls.c (gobble_file): When handling a stat-failed entry,
4         print the entry name not the absolute_name -- to be consistent
5         with the usual case.
6         * tests/ls/stat-failed: Update accordingly.
7
8         * src/ls.c: Add parens around the new uses of ?: ternary operator.
9
10         * src/dircolors.hin: Mention that ORPHAN refers not just to dangling
11         symlinks.
12
13         Get --dired offsets right when handling stat-failed entries.
14         * src/ls.c (print_long_format): Be careful to increment P by the
15         appropriate amount, even when inode_number_width and nlink_width
16         are zero.
17         * tests/ls/stat-failed: Test for the above.
18
19         * src/ls.c (gobble_file) [USE_ACL]: Don't use-uninitialized the
20         have_acl member.  That would happen for a directory with both a
21         non-stat'able entry and one with an ACL.
22
23         * src/ls.c (gobble_file): Make it so failure to stat a
24         non-command-line file provokes an exit status of 1, not 0.
25         Say "cannot access" rather than "cannot stat".
26         * tests/ls/stat-failed: New file/test, for the above.
27         * tests/ls/Makefile.am (TESTS): Add stat-failed.
28         * tests/ls-2/tests (no-a-isdir-b): Update to reflect addition
29         of "cannot access " to diagnostic.
30
31         * src/ls.c: Declare stat_failed to be "bool", not "int" everywhere.
32
33         * src/ls.c [enum filetype] (command_line): Remove member.  Not needed.
34         Replace all occurrences of "type == command_line" with the
35         equivalent, "command_line_arg".
36
37         * src/ls.c: Apply the stat-failed parts of Red Hat's
38         coreutils-selinux.patch.  From Ulrich Drepper.
39         This makes it so files not mentioned on the command line (e.g.,
40         names read from a directory that *is* mentioned on the command
41         line) for which stat fails are still listed.  With --color,
42         such files are colored just like ORPHANs (aka dangling symlinks).
43
44         * src/df.c (n_valid_args): Declare global to be static.
45
46 2006-07-24  Jim Meyering  <jim@meyering.net>
47
48         * tests/ls/stat-dtype: Skip this test on reiserfs, since that file
49         system lacks d_type support.
50
51 2006-07-22  Paul Eggert  <eggert@cs.ucla.edu>
52
53         * man/chmod.x: Update to reflect recent changes to coreutils.texi.
54
55 2006-07-21  Jim Meyering  <jim@meyering.net>
56
57         * src/su.c (usage): Correct typo in --help output: s/commmand/command/
58         Reported by Tim Waugh.
59         Also remove the comment duplicating much of --help output.
60
61         * src/ls.c (FILE_TYPE_INDICATOR_OPTION): Reposition this new
62         name so the list remains alphabetized.
63
64         Fix another bug: ls --indicator-style=file-type would call
65         stat for a symlink, even though it wasn't always needed.
66         In some cases, that unnecessary stat would cause ls to fail.
67         * src/ls.c (gobble_file): Don't treat symlinks specially (in
68         requiring a stat syscall).  Remove the offending exclusion.
69
70         * NEWS: Mention the fix.
71
72         * tests/ls/stat-dtype: New file/test, for the above fix.
73         Also exercises the new df feature, below.
74
75         * src/df.c (main): Fail and don't print the headers if no
76         file system is processed.  This makes it easy to test whether
77         a specified directory is on a file system of a given type or types.
78         Otherwise, applications would have had to parse df's output.
79         E.g., is "." either ext3 or reiserfs: df -t ext3 -t reiserfs .
80
81         Fix a bug: ls --file-type worked like --indicator-style=slash,
82         rather than like --indicator-style=file-type.
83         * src/ls.c (FILE_TYPE_INDICATOR_OPTION): New enum member.
84         (long_options): Map "file-type" to FILE_TYPE_INDICATOR_OPTION,
85         not to 'p'.
86         (decode_switches): Handle new case: FILE_TYPE_INDICATOR_OPTION.
87         * NEWS: Mention the fix.
88         * tests/ls-2/tests (file-type): New test, for the above fix.
89
90 2006-07-19  Jim Meyering  <jim@meyering.net>
91
92         * src/ls.c (print_dir): Give a better diagnostic for failed opendir.
93
94         * Makefile.am (EXTRA_DIST): Add build-aux/vc-list-files.
95
96 2006-07-16  Paul Eggert  <eggert@cs.ucla.edu>
97
98         * NEWS: chmod, install, and mkdir now leave setgid and setuid bits
99         of directories alone unless you specify them explicitly.
100         install and mkdir now implement X correctly.
101         install now creates parent directories with mode 755, without
102         changing their owner or group.
103         * src/chmod.c (process_file): Adjust to mode_adjust API change.
104         * src/install.c: Include mkancesdirs.h.
105         (announce_mkdir, make_ancestor): New functions.
106         (DEFAULT_MODE): New macro, specifying initial value of 'mode'.
107         (mode): Use it.
108         (dir_mode, dir_mode_bits): New vars.
109         (main): Set dir modes separately from nondir, so that the X
110         op of -m works correctly.
111         (main): Remove cwd_errno cruft, since make_dir_parents no longer
112         affects cwd.  Adjust to new make_dir_parents API.
113         (install_file_in_file_parents): 2nd arg is now char *, not char
114         const *.  Use mkancesdirs instead of rolling our own code.
115         (change_attributes): Don't worry about AFS, since that kludge
116         should not be needed any more.
117         * src/mkdir.c (struct mkdir_options): New struct.
118         (announce_mkdir, make_ancestor): New functions.
119         (main): Use them.  Adjust to mode_adjust API change.  Stick with
120         umask 0.  Use make_dir_parents for all the work.
121         * src/mkfifo.c (main): Adjust to new mode_adjust API.
122         * src/mknod.c (main): Likewise.
123         * tests/chmod/setgid: Do the setgid test instead of bailing.
124         * tests/mkdir/p-3: Remove re_protect case that no longer applies.
125         GNU chmod now behaves like other versions of chmod.
126         * tests/mkdir/perm: Add a test for the X bug.
127
128 2006-07-14  Paul Eggert  <eggert@cs.ucla.edu>
129
130         * src/base64.c (do_decode): Output to parameter OUT, not to stdout.
131         This doesn't fix any bugs, since OUT always equals stdout, but it
132         makes the code easier to understand.
133
134 2006-07-14  Jim Meyering  <jim@meyering.net>
135
136         * Makefile.maint (CVS_LIST): Use new file, build-aux/vc-list-files,
137         rather than open-coding it.  Now supports mercurial, too.
138         * .hgignore: New file.
139         * Makefile.am (EXTRA_DIST): Add .hgignore, which ignores nearly
140         all generated files, including ones like configure and po/*.po
141         that are currently version-controlled in cvs.
142
143         * Makefile.am (EXTRA_DIST): Add a few more .??* files.
144         They've been in CVS, just haven't been distributed before this.
145         Distribute ChangeLog-2005, too.
146         (MAINTAINERCLEANFILES): Add THANKS-to-translators.
147
148 2006-07-11  Paul Eggert  <eggert@cs.ucla.edu>
149
150         * src/system.h: Assume <dirent.h> exists, since gnulib assumes
151         this now as well.
152
153 2006-07-09  Jim Meyering  <jim@meyering.net>
154
155         * tests/mv/dir2dir: Adjust so failing with ENOTEMPTY is ok, too.
156         That happens with Linux/tmpfs.
157         * tests/mv/Makefile.am (TESTS): Add dir2dir.
158
159 2006-07-09  Paul Eggert  <eggert@cs.ucla.edu>
160
161         Adjust to recent updates from gnulib.
162         * src/dd.c (apply_translations): Use toupper rather than
163         islower followed by toupper; it's simpler and typically
164         faster now that we assume at least C89 semantics.  Similarly
165         for tolower.
166         * src/sort.c (inittables): Likewise.
167         * src/expand.c (expand): Don't assume that isprint etc. return
168         booleans (needed for pre-C99 hosts).
169         * src/fmt.c (check_punctuation): Likewise.
170         * src/ptx.c (initialize_regex, fix_output_parameters): Likewise.
171         * src/tr.c (is_char_class_member): Likewise.
172         * src/unexpand.c (unexpand): Likewise.
173         * src/join.c (is_blank): Remove; no longer needed.  All uses
174         replaced by isblank (to_uchar (...)).
175         * src/pinky.c (create_fullname): Don't assume char is unsigned.
176         * src/printf.c (print_esc): Likewise.
177         * src/ptx.c (SKIP_NON_WHITE, SKIP_WHITE, SKIP_WHITE_BACKWARDS):
178         (copy_unescaped_string): Likewise.
179         * src/stat.c (print_it): Likewise.
180         * src/system.h (_D_EXACT_NAMELEN): Renamed from NLENGTH, for
181         convenience on GNU systems.  All uses changed.  Don't bother
182         looking for any dirent.h substitute other than ndir.h.
183         (D_INO): Remove unnecessary parentheses.
184         (IN_CTYPE_DOMAIN, ISGRAPH, ISPRINT, ISALNUM, ISALPHA):
185         (ISCNTRL, ISLOWER, ISPUNCT, ISSPACE, ISUPPER, ISXDIGIT):
186         (ISDIGIT_LOCALE, TOLOWER, TOUPPER): Remove.  All uses changed
187         to ctype.h equivalents.
188         (isblank): Renamed from ISBLANK.  Check for HAVE_DECL_ISBLANK too.
189         All uses changed.
190
191 2006-07-08  Jim Meyering  <jim@meyering.net>
192
193         * tests/mv/dir2dir: New file, test for 2006-07-05 fix in copy.c.
194
195         * Makefile.maint (sc_the_the): New rule.
196
197         * src/dd.c (skip): Remove one of two adjacent "the"s in a comment.
198         * tests/Coreutils.pm (run_tests): Remove one of two adjacent "then"s
199         in a comment.
200
201 2006-07-07  Jim Meyering  <jim@meyering.net>
202
203         * NEWS: Mention that mv can now remove an empty destination directory,
204         and give an example.  Prompted by a report from Florent Bayle.
205
206 2006-07-05  Jim Meyering  <jim@meyering.net>
207
208         * src/ls.c (usage): Correct the description of -G: it is useful
209         only in a long listing.  Reported by Martin Pool in
210         <https://launchpad.net/distros/ubuntu/+source/coreutils/+bug/51653>.
211
212         * man/chmod.x: Correct the description of the sticky bit.  Reported
213         by Chris Moore via Ian Jackson in <http://bugs.debian.org/376745>.
214
215         * src/copy.c (copy_internal): Don't work around old NFS clients like
216         SunOS-4.1.4 and Irix 5.3 that set errno to values like EIO and
217         ENOTEMPTY upon failed rename.  Otherwise, we risk misinterpreting
218         a banal failure as a recursive move-into-self failure.
219         Reported by Florent Bayle in <http://bugs.debian.org/376749>.
220
221         * src/c99-to-c89.diff: Regenerate, to remove fuzz.
222
223 2006-07-03  Jim Meyering  <jim@meyering.net>
224
225         Plug another unusual leak.
226         (AD_mark_helper): Free malloc'd filename if hash_insert says
227         that string is already in the hash table.
228
229         The dev/inode of the topmost directory in each hierarchy were not
230         being recorded.
231         * src/remove.c (remove_cwd_entries): Don't call cycle_check here.
232         (AD_push): Call it from here instead.
233
234         Fix two small leaks.
235         * src/remove.c (AD_stack_clear): New function.
236         (rm_1): Use it.
237         (AD_pop_and_chdir): Free *prev_dir just before longjmp.
238
239         * tests/Makefile.am, tests/*/Makefile.am: (TESTS_ENVIRONMENT):
240         Add $VG_PATH_PREFIX as a prefix to $PATH
241
242         * tests/envvar-check (vars): Add CDPATH and POSIXLY_CORRECT.
243         * tests/Makefile.am (evar-check): Remove rule.
244         (EXTRA_DIST): Remove .env-warn.
245         * tests/.env-warn: Remove file.  No longer used.
246         Suggestion from Eric Blake.
247
248 2006-07-02  Paul Eggert  <eggert@cs.ucla.edu>
249
250         * src/system.h: Include <stdint.h> unconditionally, since we
251         now assume the stdint module.
252
253 2006-07-01  Paul Eggert  <eggert@cs.ucla.edu>
254
255         * NEWS: With no operand, 'tail -f' now silently ignores the '-f'
256         only if standard input is a FIFO or pipe and POSIXLY_CORRECT is set.
257         * src/tail.c (main): Implement this.
258         * tests/tail/Test.pm (f-pipe-1): Renamed from f-1.
259         (test_vector): Set POSIXLY_CORRECT for the f-pipe-* tests.
260
261 2006-07-01  Jim Meyering  <jim@meyering.net>
262
263         * src/ln.c (do_link): Use new, shorter URL, for ag-review link.
264
265         * .x-sc_require_config_h: Add ^lib/xstrtold\.c$, so make distcheck
266         passes once again.
267
268 2006-06-30  Paul Eggert  <eggert@cs.ucla.edu>
269
270         * NEWS: seq now uses long double internally rather than double.
271         It now defaults to a minimal fixed point format if possible.
272         It lets you use %a, %A, %E, %F, %G.
273         * src/Makefile.am (seq_LDADD): Remove $(SEQ_LIBM); add $(POW_LIB).
274         * src/seq.c: Don't include <math.h> or <xstrtol.h>; no longer needed.
275         (isfinite) [!defined isfinite]: New macro.
276         (separator, terminator): Now points to const.
277         (first, step, last): Remove.
278         (usage): Update to match new behavior.
279         (struct operand, operand): New type.
280         (scan_arg): Renamed from scan_double_arg, since we no longer use double.
281         All uses changed.
282         Compute and return a value of type operand, not double.
283         (long_double_format): Renamed from valid_format, and now returns a
284         new format with an "L" added if needed, if the original format was
285         valid.  Allow %a, %A, %E, %F, and %G formats.
286         (print_numbers): Take numeric values as args rather than from globals.
287         Print long double, not double.
288         (get_width_format): Remove.
289         (get_default_format): New function.
290         (main): Implement new way of calculating default format.
291         Don't worry about locale's representation of the decimal point, since
292         the arguments are always processed in the C locale.
293         * tests/seq/basic (neg-2): Adjust to new default format.
294         (eq-wid-1, eq-wid-2): Resurrect these tests, since the new
295         implementation should do the right thing.
296
297 2006-06-30  Jim Meyering  <jim@meyering.net>
298
299         * tests/stty/basic-1: Work around an intermittent test failure
300         on HP-UX 11.11.  Report and analysis from Bob Proulx.
301         http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/7475
302
303 2006-06-28  Paul Eggert  <eggert@cs.ucla.edu>
304
305         * NEWS: Support obsolete usages like "sort +1 -2" even when
306         conforming to POSIX 1003.1-2001, since this is a pure extension to
307         POSIX.  Problem reported by Christian in:
308         http://lists.gnu.org/archive/html/bug-coreutils/2006-06/msg00220.html
309         * src/sort.c (main): Implement this.
310
311         * src/system.h (CLOSEDIR): Remove.  All uses changed to closedir.
312         Autoconf 2.60 says this stuff was obsolete.
313
314 2006-06-28  Jim Meyering  <jim@meyering.net>
315
316         * src/c99-to-c89.diff: Regenerate, to remove fuzz.
317
318 2006-06-28  Bob Proulx  <bob@proulx.com>  (tiny change)
319
320         * tests/mv/i-link-no: Work around HP-UX /bin/sh tracing problem
321         (set -x when VERBOSE=yes) when stderr is redirected before stdout
322         causing shell tracing of the stdout redirection to be written to
323         the stderr file.  Avoid problem and test failure on HP-UX by
324         redirecting stderr last.
325         * tests/dd/unblock-sync: Order shell file redirections for
326         stderr and stdout in the common style.
327         tests/acl: Likewise.
328
329 2006-06-27  Jim Meyering  <jim@meyering.net>
330
331         * tests/misc/cat-proc: Try to avoid any spurious numeric
332         differences in frequently-changing /proc/cpuinfo.
333         Reported by Nelson Beebe.
334
335 2006-06-26  Jim Meyering  <jim@meyering.net>
336
337         Attempt rmdir (actually, unlinkat-with-AT_REMOVEDIR) upon any
338         fd_to_subdirp failure, not just when errno == EACCES.
339         * src/remove.c (remove_dir): Use unlinkat-with-AT_REMOVEDIR, not
340         rmdir, here, even though rmdir may happen to be adequate.
341
342         * NEWS: rm no longer fails to remove an empty, unreadable directory
343         * src/remove.c (remove_cwd_entries): If we can't open a directory,
344         and the failure is not being ignored, try to remove the directory
345         with rmdir (aka unlinkat-with-AT_REMOVEDIR), in case it's empty.
346         Problem report and test case from Paul Eggert in
347         <http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/7425>.
348
349         * tests/rm/empty-inacc: New test, for the above.
350
351         Avoid a segfault for wc --files0=- < /dev/null.
352         * src/wc.c (compute_number_width): Return right away if nfiles == 0.
353
354 2006-06-25  Jim Meyering  <jim@meyering.net>
355
356         * NEWS: wc accepts a new option --files0-from=FILE, where FILE
357         contains a list of NUL-separated file names.
358
359         * src/wc.c: Include "readtokens.h".
360         (usage): Describe the new option, and adjust the `Usage':
361         with this option, no FILE may be specified on the command line.
362         (main): Handle the new option.
363         * tests/misc/wc-files0: New tests, for the above.
364         * tests/misc/wc-files0-from: Likewise.
365         * tests/misc/Makefile.am (TESTS): Add wc-files0.
366
367 2006-06-24  Jim Meyering  <jim@meyering.net>
368
369         * src/md5sum.c (DIGEST_BUFFER): Remove now-unused definitions.
370
371 2006-06-22  Jim Meyering  <jim@meyering.net>
372
373         * src/tee.c (tee_files): Rename from tee, to avoid conflict with
374         the function in glibc's <fcntl.h>.  Reported by Andreas Schwab.
375
376 2006-06-19  Jim Meyering  <jim@meyering.net>
377
378         * Makefile.cfg (local-checks-to-skip): Add changelog-check,
379         so this check is not run as part of "make distcheck".
380
381 2006-06-18  Bob Proulx  <bob@proulx.com>  (tiny change)
382
383         * tests/misc/pwd-long: Fix typo (s/neq/ne/) in previous change.
384
385 2006-06-18  Jim Meyering  <jim@meyering.net>
386
387         * tests/misc/pwd-long: Make error output a little clearer.
388
389 2006-06-17  Jim Meyering  <jim@meyering.net>
390
391         * tests/rm/inaccessible: Skip this test on systems without openat
392         support.  Reported by Bob Proulx.
393
394 2006-06-15  Bob Proulx  <bob@proulx.com>  (tiny change)
395
396         * tests/misc/mknod: Improve permission checks to handle
397         running mkdir test in set-gid directories.
398
399 2006-06-14  Jim Meyering  <jim@meyering.net>
400
401         * tests/du/basic: Revamp not to hard-code file system block sizes.
402
403 2006-06-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
404
405         * tests/du/Makefile.am (TESTS_ENVIRONMENT): Pass $(PERL), for
406         files0-from test.
407
408 2006-06-11  Jim Meyering  <jim@meyering.net>
409
410         * .gitignore: New file.
411         * Makefile.am (EXTRA_DIST): Add .gitignore.
412
413         Setting TIME_STYLE=long-iso in the environment would make the
414         cp/same-file test fail.
415         * tests/envvar-check (vars): Add TIME_STYLE to the list.
416         * tests/cp/same-file: Revert last change.
417         Source the envvar-check script, to ensure that TIME_STYLE
418         settings don't affect these tests.
419
420 2006-06-11  Paul Eggert  <eggert@cs.ucla.edu>
421
422         * tests/cp/same-file: Execute 'ls' in the C locale, so that it
423         uses POSIX time stamp formats.  Problem reported by John Nixon in
424         <http://lists.gnu.org/archive/html/bug-coreutils/2006-06/msg00062.html>.
425
426 2006-06-10  Jim Meyering  <jim@meyering.net>
427
428         * NEWS: Mention the AIX-strndup-bug vs. dircolors workaround.
429
430         Require a "Version N.M" line at the top of the ChangeLog
431         file only when making the actual release, not when running
432         "make distcheck".
433         * Makefile.maint (maintainer-distcheck): Don't depend on
434         changelog-check.
435         (alpha beta major): Depend on it here, instead.
436
437 2006-06-08  Jim Meyering  <jim@meyering.net>
438
439         Ensure that cat works with any of the options, -A -v -e -E -T,
440         when applied to files in /proc and /sys, even when the FIONREAD
441         ioctl produces nonsensical results.  Before this change, cat would
442         produce no output (or truncated output), for some linux kernels.
443
444         * src/cat.c (write_pending): New function, factored out of cat.
445         (cat): Also interpret a negative ioctl/FIONREAD count as indicating
446         that there are bytes to read.  Some versions of linux-2.6.16 do that.
447         Write any pending output before returning.
448         Reported by Dan Jacobson in <http://bugs.debian.org/370583>.
449         * NEWS: Mention this bug fix.
450         * tests/misc/cat-proc: New file.  Test for the above.
451         * tests/misc/Makefile.am (TESTS): Add cat-proc.
452
453 2006-06-07  Paul Eggert  <eggert@cs.ucla.edu>
454
455         * src/expr.c (eval4): Detect overflow properly when multiplying
456         INTMAX_MIN * -1.
457
458 2006-06-06  Paul Eggert  <eggert@cs.ucla.edu>
459
460         * NEWS: The 'expr' command now detects and reports integer overflow.
461         (It would be better to use extended precision instead, but that
462         would be more work.)
463         * src/expr.c (integer_overflow): New function.
464         (eval4, eval3): Check for integer overflow.
465
466 2006-06-05  Paul Eggert  <eggert@cs.ucla.edu>
467
468         Fix problems when building with Solaris/SVR4/etc. make, which uses a
469         different and somewhat bogus implementation of VPATH.  In the
470         directory tests/misc, rename tests whose names might appear in the
471         Automake-generated rules.  For example, we can't use a test named
472         'test', since Automake generates a rule that contains the text
473         "if test -f ./$$tst; ...", and this might expand to something like
474         "if ../../../coreutils-6.0/tests/misc/test -f ./$$test; ...",
475         which executes the 'test' script rather than the 'test' command.
476         * tests/misc/false-status: Renamed from tests/misc/false.
477         * tests/misc/pwd-long: Renamed from tests/misc/pwd.
478         * tests/misc/sort-merge: Renamed from tests/misc/sort.
479         ($prog): Set to 'sort' rather than to $PROG.
480         * tests/misc/test-diag: Renamed from tests/misc/test.
481         * tests/misc/Makefile.am (PROG): Take the basename of $$tst,
482         in case Solaris make has prepended the directory.
483         (TESTS): Adjust to above renamings.
484         * tests/misc/expand: Don't assign to PROG; no longer needed
485         now that Makefile.am sets PROG to the basename.
486         * tests/misc/fold: Likewise.
487
488 2006-06-03  Jim Meyering  <jim@meyering.net>
489
490         Make `cp --link --no-dereference' work also on systems where the
491         link system call cannot create a hard link to a symbolic link.
492         * src/copy.c (copy_internal) [LINK_FOLLOWS_SYMLINKS]: Don't use
493         the link syscall on a symlink when it would do the wrong thing.
494         Based on the patch by Aurelien Jarno: <http://bugs.debian.org/329451>
495         * tests/cp/link-no-deref: New file/test for the above.
496         * tests/cp/Makefile.am (TESTS): Add link-no-deref.
497         * NEWS: Mention the change (doesn't affect Linux).
498
499 2006-06-01  Paul Eggert  <eggert@cs.ucla.edu>
500
501         Fix some porting problems in the test cases reported by
502         Ralf Wildenhues for HP-UX 11.23 in:
503         http://lists.gnu.org/archive/html/bug-coreutils/2006-05/msg00238.html
504         * tests/help-version: Don't assume that \< \> works in sed.
505         * tests/misc/close-stdout: Don't assume that >&- works.
506         Add a /dev/full test.
507         * tests/touch/no-create-missing: Don't assume that >&- works.
508
509 2006-05-30  Jim Meyering  <jim@meyering.net>
510
511         * src/ls.c (usage): Add `v' to the list of sorting-related options.
512         From Justin Pryzby.
513
514 2006-05-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
515
516         * tests/cp/fail-perm: source lang-default.
517         * tests/rm/inaccessible: Likewise.
518
519 2006-05-28  Jim Meyering  <jim@meyering.net>
520
521         * tests/rm/inaccessible: AIX 4.3.3 gives a different diagnostic.
522         Recognize it, too.  Reported by Ralf Wildenhues, in
523         http://lists.gnu.org/archive/html/bug-coreutils/2006-05/msg00192.html
524
525 2006-05-27  Jim Meyering  <jim@meyering.net>
526
527         * src/chgrp.c: Support new options: --preserve-root and
528         --no-preserve-root.  Somehow this program was skipped when those
529         options were added to chown, chmod, and rm.  Reported by
530         vaqflabuopac@spammotel.com in <http://bugs.debian.org/365656>.
531         * NEWS: Mention this.
532
533 2006-05-25  Paul Eggert  <eggert@cs.ucla.edu>
534
535         * NEWS: Remove mention of --seed.  We'll replace it with something
536         better, and don't want to indicate that it is supported.
537         * src/sort.c (usage): Likewise.
538
539 2006-05-20  Jim Meyering  <jim@meyering.net>
540
541         * src/chmod.c (main): Use FTS_PHYSICAL here, too.
542
543         * src/du.c (main): Rename local, s/symlink_deref_bit/symlink_deref_bits/
544         and arrange for -D to set fts' FTS_PHYSICAL bit as well as
545         FTS_COMFOLLOW.  Spotted by Justin Pryzby.
546
547         * gnupload: Merge changes from automake, retaining the ""--to...
548         kludge to placate overzealous `make distcheck' check.
549
550 2006-05-19  Jim Meyering  <jim@meyering.net>
551
552         * src/du.c (main): Don't let -D, -L, or -P turn off the internal
553         FTS_TIGHT_CYCLE_CHECK directory traversal option.
554         Reported by Justin Pryzby in http://bugs.debian.org/367691
555
556 2006-05-15  Jim Meyering  <jim@meyering.net>
557
558         * src/cp.c (usage): Correct description of -a: s/-dpR/-dpPR/.
559         From Tomas Pospisek.
560
561 2006-05-13  Jim Meyering  <jim@meyering.net>
562
563         * tests/mv/no-target-dir: Test two more cases.
564
565 2006-05-11  Jim Meyering  <jim@meyering.net>
566
567         mv -T DIR EMPTY_DIR no longer fails unconditionally
568         * src/copy.c (copy_internal): Don't manually prohibit a move where
569         the destination is an existing directory.  Sometimes doing that is
570         valid.  Let the rename system call enforce the rules.  That is
571         allowed only when the source is a directory and the destination
572         directory (to be replaced) is empty.  Reported by Eric Blake.
573         * tests/mv/no-target-dir: New file/test for this.
574         * tests/mv/Makefile.am (TESTS): Add no-target-dir.
575         * NEWS: Mention this.
576
577         * tests/mv/atomic: New file/test for yesterday's fix.
578         * tests/mv/Makefile.am (TESTS): Add atomic.
579
580         * tests/du/long-sloop: Avoid harmless `ambiguous redirect' diagnostic.
581
582 2006-05-10  Jim Meyering  <jim@meyering.net>
583
584         * src/copy.c (copy_internal): Don't explicitly unlink the destination
585         when moving a symlink into the place of an existing non-directory.
586         Reported by Joshua Hudson.
587         * NEWS: mention this.
588
589 2006-05-07  Jim Meyering  <jim@meyering.net>
590
591         * Makefile.maint (patch-check): Fail if patch generates any output,
592         even merely for changed offsets.
593
594         * src/c99-to-c89.diff: Adjust to reflect new offsets.
595
596         * NEWS: Mention changes affecting df, pwd, shred.
597
598 2006-05-06  Jim Meyering  <jim@meyering.net>
599
600         * tests/ls/stat-vs-dirent: New test, to detect the bogus file
601         system condition where dirent.d_ino != stat.st_ino.
602         * tests/ls/Makefile.am (TESTS): Add stat-vs-dirent.
603
604 2006-05-06  Eric Blake  <ebb9@byu.net>
605
606         * tests/ls/inode: Expand to test inode from readdir case.
607         * tests/ls/follow-slink: Expand to test broken links encountered
608         implicitly, favoring Solaris 9 and OpenBSD 3.4 behavior.
609
610 2006-05-06  Eric Blake  <ebb9@byu.net>
611
612         * tests/mv/leak-fd: Work even on case-insensitive file system.
613
614 2006-05-04  Jim Meyering  <jim@meyering.net>
615
616         * NEWS: Mention the 2006-03-19 pwd-related change that makes
617         lib/getcwd.c work around inconsistent file system dirent.d_ino data.
618
619 2006-05-03  Jim Meyering  <jim@meyering.net>
620
621         * src/ls.c (DEFINE_SORT_FUNCTIONS, LIST_SORTFUNCTION_VARIANTS):
622         Use better macro parameter names: s/basename/key_name/,
623         s/basefunc/key_cmp_func.  Fix typo in comment.
624
625 2006-04-29  Eric Blake  <ebb9@byu.net>
626
627         * src/ls.c (main): On systems with d_type, directories_first only
628         implies format_needs_type, not format_needs_stat.
629
630 2006-05-03  Jim Meyering  <jim@meyering.net>
631
632         * src/ls.c (xstrcoll_df_version, rev_xstrcoll_df_version): Add space
633         after comma in arg list, from Eric Blake.
634
635 2006-04-25  Paul Eggert  <eggert@cs.ucla.edu>
636
637         * tests/misc/date (relative-3): New test, derived from a bug
638         report by John Thomas McDole.
639
640 2006-04-23  Francesco Montorsi  <fr_m@hotmail.com>
641
642         New option for ls: --group-directories-first.
643         It makes ls list directories before files.
644         * NEWS [New features]: Mention it.
645         * src/ls.c (sort_type): Rearrange to use as an array index when
646         choosing sort function; added new sort_numtypes member for
647         compile-time check.
648         (time_type): Add new time_numtypes member for compile-time check.
649         (directories_first): New global variable.
650         (GROUP_DIRECTORIES_FIRST_OPTION): New enum.
651         (long_options): Add --directories-first.
652         (main): Support new option.
653         (is_directory): New function.
654         (extract_dirs_from_files): Use it.
655         (DIRFIRST_CHECK, DEFINE_SORT_FUNCTIONS)
656         (LIST_SORTFUNCTION_VARIANTS): New macros.
657         (sort_functions): New global variable.
658         (sort_files): Use it.
659         (usage): Document new option.
660
661 2006-04-18  Paul Eggert  <eggert@cs.ucla.edu>
662
663         * src/shred.c (fillrand): The assertion was way too weak, due to
664         what must be a typo.  Strengthen it to its intended value.
665         (dopass): Don't use alloca; it's not worth the aggravation here,
666         since it's used only to get a page-aligned buffer, and page
667         alignment doesn't buy us much here.  I'm suspicious that alloca
668         causes problems on some hosts, due to a recent bug report by Adam
669         Waltman: http://bugs.gentoo.org/130246.
670
671 2006-04-18  Jim Meyering  <jim@meyering.net>
672
673         * tests/misc/tty-eof: Add new programs, base64, sha224sum, sha256sum,
674         sha384sum, sha512sum.
675
676 2006-04-17  Paul Eggert  <eggert@cs.ucla.edu>
677
678         * src/chmod.c (describe_change): Adjust to filemode changes.
679         * src/ls.c (HAVE_ST_DM_MODE): Remove; moved to ../lib/filemode.c.
680         (print_long_format): Use (new) filemodestring rather than
681         (old) mode_string, so that we get more file types right, at least
682         in theory.  Adjust to filemode changes.
683         * src/stat.c (human_access): Likewise.
684
685 2006-04-18  Jim Meyering  <jim@meyering.net>
686
687         * src/ptx.c (main) [DEFAULT_IGNORE_FILE]: Remove code to use a default
688         ignore file.  This has never been enabled.  Reported by Eric Blake.
689
690 2006-04-12  Paul Eggert  <eggert@cs.ucla.edu>
691
692         * src/ln.c (linkfunc): Remove.  This method ran into a compiler/linker
693         bug in Interix.  Just call symlink or link directly.  All uses changed.
694         * src/setuidgid.c (main) [! HAVE_SETGROUPS]: Don't call setgroups.
695         * src/stat.c (USE_STATVFS): New macro.
696         Include <sys/statvfs.h> and use statvfs only if USE_STATVFS.
697         (NAMEMAX_FORMAT): define a bit more clearly, now that the
698         statvfs-using code is a bit more regular.
699         * src/system.h (sync) [!HAVE_SYNC]: New macro.
700
701 2006-04-11  Paul Eggert  <eggert@cs.ucla.edu>
702
703         * NEWS: csplit, nl, expr now conform to POSIX better, and are
704         more-compatible with traditional Unix, with respect to regular
705         expressions.
706         * src/csplit.c (extract_regexp): Set re_syntax_options to a
707         value that is compatible with what POSIX requires.
708         * src/nl.c (build_type_arg): Likewise.
709         * src/expr.c (docolon): Likewise.  Also, don't let anchors match
710         newline; this fixes an incompatibility with tradition and with POSIX.
711         Don't warn about leading ^.  POSIX says it is unspecified whether
712         ^ is a special character, which means that implementations can
713         either treat it as special or not, but either way a warning is not
714         allowed (unless the regexp is otherwise invalid).  Instead, anchor
715         the expression but treat ^ as an anchor; this is the traditional
716         behavior (e.g., Solaris 10).
717         (eval4, eval3, eval2): Treat non-numeric args, division by zero,
718         and the like as invalid expressions (exit status 2), not as
719         failure of 'expr' (exit status 3).  This is more consistent with
720         how Solaris behaves.
721         * tests/expr/basic (fail-a): Adjust exit status to match new expr
722         behavior, for status 2 versus 3.
723         (anchor): New test.
724         (bre1, bre2, bre3, bre4, bre5, bre6, bre7, bre8, bre9, bre10):
725         (bre11, bre12, bre13, bre14, bre15, bre16, bre17, bre18, bre19, bre20):
726         (bre21, bre22, bre23, bre24, bre25, bre26, bre27, bre28, bre29, bre30):
727         (bre31, bre32, bre33, bre34, bre35, bre36, bre37, bre38, bre39, bre40):
728         (bre41, bre42, bre43, bre44, bre45, bre46, bre47, bre48, bre49, bre50):
729         (bre51, bre52, bre53, bre54, bre55, bre56, bre57, bre58, bre59, bre60):
730         (bre61, bre62): New tests.
731         * tests/misc/csplit: Use \{...\} in test RE, to test that we're
732         conforming to POSIX.
733
734         Port to Solaris 8.
735         * tests/du/long-from-unreachable: Solaris 8 sh doesn't understand
736         "if !".  Do not assume that 'sed' can handle long, newline-free input.
737         * tests/du/long-sloop: Likewise.  Evaluate expr once, not $n times.
738
739 2006-04-10  Paul Eggert  <eggert@cs.ucla.edu>
740
741         Adjust to new regex.h API (with new fastmap type), and clean
742         up the regex storage allocation a bit.
743
744         * src/csplit.c (struct control): Put re_compiled member at the
745         end, since it's large.  Change regexpr member from char * to bool;
746         all uses changed.  Add new member fastmap.
747         (extract_regexp): regexp arg is now char const *, not char *.
748         Don't bother duplicating the regular expression; it's not needed.
749         Set fastmap from new fastmap member.  Don't bother allocating
750         a buffer, as the regexp code does a better job than we do.
751         * src/expr.c (docolon): Allocate and use a fastmap.
752         Don't bother allocating a buffer.
753         * src/nl.c (body_fastmap, header_fastmap, footer_fastmap):
754         New vars.
755         (build_type_arg): New fastmap arg.  All uses changed.
756         Don't bother allocating a buffer, but set a fastmap.
757         * src/ptx.c (context_regex_string, word_regex_string): Remove.
758         (context_regex, word_regex): New vars, replacing the above.
759         All uses changed.
760         (struct regex_data): New type.
761         (compile_regex): Renamed from alloc_and_compile_regex, since
762         we no longer allocate storage.  Arg is now a struct regex_data *,
763         not a const char *.  All uses changed.  Don't allocate the fastmap;
764         instead, take it from the caller.  Don't convert size_t to int,
765         to avoid arithmetic overflow problems.  Don't bother freeing
766         storage afterwards; it's not worth the aggravation.
767         * src/tac.c (compiled_separator_fastmap): New ver.
768         (main): Use it.  Don't bother allocating a buffer.
769
770 2006-03-30  Jim Meyering  <jim@meyering.net>
771
772         * src/dd.c (iwrite): Remove assignment without effect.
773         Reported by Felix Rauch Valenti.
774
775 2006-03-22  Eric Blake  <ebb9@byu.net>
776
777         * src/ptx.c (usage): Remove mention of --copyright/-C.
778         (main): Alias --copyright to --version plus a deprecation warning.
779         * NEWS: Mention this.
780
781 2006-03-27  Jim Meyering  <jim@meyering.net>
782
783         * src/Makefile.am (uptime_LDADD): Add $(POW_LIB), for uptime's
784         use of strtod.  Tiny patch from Nickolai Zeldovich.
785
786 2006-03-11  Eric Blake  <ebb9@byu.net>
787
788         * tests/misc/dirname: New file.
789         * tests/basename/Makefile.am: Delete.
790         * tests/basename/basic: Move to...
791         * tests/misc/basename: ... this new file.  Add some tests,
792         including fixed behavior for //.
793         * tests/misc/Makefile.am (TESTS): Sort.  Add basename, dirname.
794         * tests/Makefile.am (SUBDIRS): Remove basename.
795         * configure.ac (AC_CONFIG_FILES): Remove tests/basename.
796
797         Improvements to dirname/basename handling on platforms like
798         cygwin with distinct // and with drive letters.
799         * NEWS: Document new behavior.
800         * src/basename.c (main): Don't strip suffix from file system
801         roots.
802         * src/cp.c (target_directory_operand): Use new last_component.
803         (ASSIGN_BASENAME_STRDUPA): Likewise.  Reduce time spent
804         traversing the string.
805         * src/dircolors.c (guess_shell_syntax): Use new last_component.
806         * src/install.c (target_directory_operand, install_file_in_dir):
807         Likewise.
808         * src/ln.c (target_directory_operand, main): Likewise.
809         * src/ls.c (basename_is_dot_or_dotdot): Likewise.
810         * src/mv.c (target_directory_operand, movefile): Likewise.
811         * src/remove.c (rm_1): Likewise.
812         * src/shred.c (wipename): Likewise.
813         * src/split.c (next_file_name): Likewise.
814         * src/su.c (log_su, run_shell): Likewise.
815
816 2006-03-23  Paul Eggert  <eggert@cs.ucla.edu>
817
818         * NEWS: nohup diagnostics are now more precise, and nohup now
819         redirects stderr to nohup.out if stdout is closed and stderr is a tty.
820         * src/nohup.c (main): Implement this.
821         * tests/misc/nohup: Test the new behavior.
822
823 2006-03-12  Jim Meyering  <jim@meyering.net>
824
825         * src/copy.c (set_author): Rename function, from preserve_author.
826
827         * src/remove.c (AD_pop_and_chdir): Use new macro,
828         CYCLE_CHECK_REFLECT_CHDIR_UP, rather than open-coding it.
829
830         * src/system.h (SAME_INODE): Remove definition.
831         Include "same-inode.h", instead.
832
833 2006-03-11  Eric Blake  <ebb9@byu.net>
834
835         * src/pwd.c (robust_getcwd): Prepend only one slash, not two.
836
837 2006-03-10  Jim Meyering  <jim@meyering.net>
838
839         Fix a bug whereby a user with write access to a directory being removed
840         could cause the removal of that directory to fail with an erroneous
841         diagnostic about a directory cycle.  Reported by Vineet Chadha.
842
843         * NEWS: Mention this.
844         * src/remove.c (AD_pop_and_chdir): If the directory we're about to
845         leave (and try to rmdir) is the one whose dev_ino is being used to
846         detect a cycle, reset cycle_check_state.dev_ino to that of the parent.
847
848 2006-03-08  Paul Eggert  <eggert@cs.ucla.edu>
849
850         * NEWS: Document dd's new 'directory' and 'nolinks' flags.
851         * src/dd.c (set_fd_flags): Handle file-creation flags on file
852         descriptors, rather than ignoring them.
853         * tests/dd/misc: Add test cases for append, nofollow, directory,
854         and nolinks flags.  Simplify redirection to /dev/null in some cases.
855
856         * tests/dd/misc: iflags->iflag.  This fixes a typo that meant the
857         noatime test never tested anything.
858
859 2006-03-05  Paul Eggert  <eggert@cs.ucla.edu>
860
861         * src/dd.c (flags, usage): New flags directory, nolinks.
862         * src/system.h (O_NOLINKS): Define to 0 if not already defined.
863
864         * src/ls.c (usage): Mention that -f disables --color.
865         Problem reported by Niels Möller.
866
867 2006-03-03  Justin Pryzby  <pryzbyj@justinpryzby.com>
868
869         * man/*.x: Add references to syscalls from utilities of the same name.
870
871 2006-03-05  Jim Meyering  <jim@meyering.net>
872
873         * tests/help-version: Set SHELL, if not already set, in order to
874         avoid failure when `make check' is run through debuild;  dircolors
875         would fail due to lack of $SHELL.  Reported by Sven Joachim.
876
877         Make `base64 --wrap=N' work for N=0, and for N larger than SIZE_MAX.
878         * src/base64.c (wrap_write, do_encode, main): Change type of
879         parameters and locals, wrap_column, form size_t to uintmax_t.
880         (main): Adjust to use xstrtoumax, accordingly.
881
882 2006-03-03  Jim Meyering  <jim@meyering.net>
883
884         Don't fail when run from an environment with SHELL not a Bourne
885         shell, e.g. `env SHELL=/bin/csh make check' would fail this test.
886         * tests/dircolors/simple: Invoke each non-failing test with -b.
887         Reported by Michael Stone.
888
889 2006-02-27  Jim Meyering  <jim@meyering.net>
890
891         * tests/misc/base64: Derive --decode-using tests from the
892         encode-based ones.
893
894         * tests/misc/base64: Factor out a long constant string.
895         Split lines to stay within 80 columns.
896
897         * tests/misc/Makefile.am (TESTS): Add base64.
898         * tests/misc/base64: Test base64.  From Simon Josefsson.
899
900         * src/base64.c (do_decode): Use correct type for parameter,
901         ignore_garbage: s/size_t/bool/.
902
903         * src/base64.c: Don't include .h files already included by system.h:
904         <string.h>, <stdlib.h>, <stdbool.h>, <limits.h>, <errno.h>.
905         Include "system.h" before the other lib/*.h header files.
906         Include <sys/types.h> before "system.h".
907         (wrap_write): Remove declaration of unused local, initial_column.
908         (wrap_write): Correct declaration syntax: s/size_t * V/size_t *V/.
909
910         * README: Add base64 to the list.
911
912 2006-02-17  Simon Josefsson  <jas@extundo.com>
913
914         New program: base64.
915         * AUTHORS: Mention base64.
916         * NEWS: Likewise.
917         * man/Makefile.am: Build base64.1.
918         * man/base64.x: New file.
919         * src/Makefile.am (bin_PROGRAMS): Add base64.
920         * src/base64.c: New file.
921
922 2006-02-25  Eric Blake  <ebb9@byu.net>
923
924         In ls, avoid calling stat for --inode (-i), when possible.
925         * src/pwd.c (NOT_AN_INODE_NUMBER, D_INO): Move to ...
926         * src/system.h: ... here, for use in ...
927         * src/ls.c (main): ... here.  Prefer dirent.d_ino to stat when
928         possible.
929         (gobble_file): Add inode argument.
930         (print_dir): Pass inode if available.
931         (usage): Remove inaccuracy.
932
933 2006-02-23  Jim Meyering  <jim@meyering.net>
934
935         * TODO: Update/correct some obsolete entries.
936
937 2006-02-20  Paul Eggert  <eggert@cs.ucla.edu>
938
939         * doc/coreutils.texi (join invocation): Mention `sort -k 1b,1'.
940         * src/join.c (usage): Likewise.
941         Documentation problem reported by Philip Kensche.
942
943 2006-02-20  Eric Blake  <ebb9@byu.net>
944
945         * man/rm.x: Update documentation to match previous patch.
946
947 2006-02-18  Eric Blake  <ebb9@byu.net>
948
949         New option for rm: --interactive=once (-I).
950         * NEWS: Document it, along with change to rm --interactive.
951         * TODO: Remove entry for implementing rm -I
952         * src/rm.c (INTERACTIVE_OPTION): New enum value.
953         (interactive_type): New enum.
954         (long_opts): Let interactive take an optional argument.
955         (interactive_args, interactive_types): New option arguments.
956         (usage): Document -I, --interactive=WHEN.  Use program_name
957         instead of a basename.
958         (main): New -I option, new behavior to --interactive.
959         * tests/rm/interactive-once: New tests.
960         * tests/rm/interactive-always: Ditto.
961         * tests/rm/Makefile.am (TESTS): Run them.
962
963 2006-02-18  Jim Meyering  <jim@meyering.net>
964
965         * Makefile.maint (sc_two_space_separator_in_usage): Make the regular
966         expression match more of the target lines, e.g., those that start with
967         `-S,' (short option followed by a comma) or that include `=[...]'.
968         Patch by Nicolas François.
969         Fix the four offenders thus exposed:
970         * src/join.c (usage): Use two spaces (not one) to separate the
971         --first-only option string from its description, so help2man formats
972         the derived man page properly.
973         * src/pr.c (usage): Likewise.
974         * src/uniq.c (usage): Likewise.
975         * src/install.c (usage): Likewise.
976
977 2006-02-15  Jim Meyering  <jim@meyering.net>
978
979         * Makefile.maint (alpha beta major): For `make major', ensure that the
980         version string is of the form N.N[.N]*, where N is one or more digits.
981
982 2006-02-14  Jim Meyering  <jim@meyering.net>
983
984         * INSTALL: Update from gnulib.
985
986 2006-02-13  Jim Meyering  <jim@meyering.net>
987
988         * GNUmakefile (all): Emit diagnostics to stderr, not stdout.
989
990 2006-02-12  Jim Meyering  <jim@meyering.net>
991
992         * Makefile.maint (patch-check): New target.
993         (local-checks-available): Add to the list.
994
995 2006-02-11  Jim Meyering  <jim@meyering.net>
996
997         * src/c99-to-c89.diff: New file.
998         * src/Makefile.am (EXTRA_DIST): Add c99-to-c89.diff.
999
1000         * .x-po-check: New file, with exclusions so that `make distcheck'
1001         passes once again.
1002         * Makefile.am (EXTRA_DIST): Add .x-po-check.
1003
1004         rm -r must remove an empty directory, even if it is inaccessible.
1005         * src/remove.c (close_preserve_errno): New function.
1006         (fd_to_subdirp): Don't print a diagnostic in this function.
1007         Do it from the callers instead, unless rmdir succeeds.
1008         (remove_cwd_entries, remove_dir): Adjust callers.
1009         * tests/rm/empty-inacc: New test for the above.
1010         * tests/rm/Makefile.am (TESTS): Add empty-inacc.
1011         * NEWS: Mention this bug fix.
1012         * tests/rm/rm2: Adjust two expected diagnostics, now that they're
1013         a tiny bit less precise: cannot remove `a/1': ... instead of
1014         cannot open directory `a/1': ...
1015
1016         * Makefile.maint (syntax-check-rules): Automatically derive this
1017         list of sc_-prefixed rule names.
1018
1019 2006-02-10  Paul Eggert  <eggert@cs.ucla.edu>
1020
1021         * Makefile.maint (CVS_LIST): Don't assume cvsu is available.
1022         (CVS_LIST_EXCEPT): New macro, to simplify exception-processing.
1023         Most uses of CVS_LIST changed to use CVS_LIST_EXCEPT.
1024         (syntax-check-rules): Bring back sc_changelong.  (Hmm, why did it
1025         go away? was that an accident?)
1026         (sc_cast_of_argument_to_free, sc_cast_of_x_alloc_return_value):
1027         (sc_cast_of_alloca_return_value, sc_space_tab, sc_prohibit_atoi_atof):
1028         (sc_error_exit_success, sc_file_system, sc_no_if_have_config_h):
1029         (sc_system_h_headers, sc_sun_os_names, sc_trailing_blank):
1030         (sc_two_space_separator_in_usage, sc_unmarked_diagnostics):
1031         (sc_obsolete_symbols, sc_changelog, sc_prohibit_jm_in_m4):
1032         (sc_useless_cpp_parens, makefile-check, m4-check, po-check):
1033         (author_mark_check, makefile_path_separator_check):
1034         Output line numbers, to simplify navigation of Emacs *compilation*
1035         buffers.
1036         (sc_prohibit_atoi_atof, sc_file_system):
1037         Rework slightly so that Makefile.maint doesn't get reported as a
1038         violation of its own syntax rules.
1039         (sc_dd_max_sym_length): Use ifneq to do nothing, instead of doing
1040         it at run-time (which didn't work with Bison).  Fix a makefile typo,
1041         caught by Makefile.maint itself: spaces where a tab should be.
1042         (po-check): Check lib/*.[ch] even if not in CVS; used by Bison,
1043         which copies from ../gnulib/lib/*.[ch] to lib/*.[ch].
1044         Ignore djgpp and man subdirectories, to avoid false matches with
1045         Bison and coreutils, respectively.  Use sort -u to remove the
1046         resulting duplicates.
1047         * gnupload: Rework slightly to avoid bogus warning from
1048         sc_two_space_separator_in_usage.
1049
1050 2006-02-10  Jim Meyering  <jim@meyering.net>
1051
1052         Use gzip's --rsyncable option only if it's available.
1053         * Makefile.maint (gzip_rsyncable): New variable.
1054         (GZIP_ENV): Use it.
1055
1056 2006-02-08  Jim Meyering  <jim@meyering.net>
1057
1058         * Makefile.maint (local-checks-available): Define in terms of
1059         the expansion, $(syntax-check-rules), rather than the single,
1060         top-level target `syntax-check', so that it's easier to exclude
1061         individual rules (via $(local-checks-to-skip)).
1062         (tgz-md5, tgz-sha1, ...): Remove now-unused definitions.
1063
1064 2006-02-07  Jim Meyering  <jim@meyering.net>
1065
1066         * src/system.h (!defined O_DIRECT): If O_DIRECTIO is defined (as it
1067         is on Tru64), define O_DIRECT to that.  Patch From James Lemley.
1068
1069         * tests/help-version (expected_failure_status_vdir):
1070         Redirect an expected disk-full diagnostic to /dev/null.
1071
1072 2006-02-06  Jim Meyering  <jim@meyering.net>
1073
1074         * src/unexpand.c (usage): Use two spaces (not one) to separate the
1075         --first-only option string from its description, so help2man formats
1076         the derived man page properly.
1077         * src/rm.c (usage): Likewise for --no-preserve-root.
1078         * src/chown.c (usage): Likewise.
1079         * src/chgrp.c (usage): Likewise.
1080
1081         Add a rule to ensure that the above doesn't happen again.
1082         * Makefile.maint (sc_two_space_separator_in_usage): New rule.
1083         (syntax-check-rules): Add it.
1084         * .x-sc_two_space_separator_in_usage: New empty file.
1085         * Makefile.am (EXTRA_DIST): Add .x-sc_two_space_separator_in_usage.
1086
1087 2006-02-06  Jim Meyering  <jim@meyering.net>
1088
1089         * src/cp.c (usage): Use two spaces (not one) to separate each
1090         option string from its description, so help2man formats the
1091         derived man page properly.
1092         * src/mv.c (usage): Likewise.
1093         Patch from Nicolas François in http://bugs.debian.org/351601.
1094
1095 2006-02-04  Jim Meyering  <jim@meyering.net>
1096
1097         * src/copy.c (copy_internal): cp -RL would fail when encountering
1098         the same directory more than once in the hierarchy beneath a single
1099         command-line argument.  That is legitimate, e.g. when there are
1100         two or more symbolic links, each pointing to some directory that
1101         would not otherwise be copied.  Reported by Christophe LYON.
1102         * tests/cp/cp-deref: New file.  Test for today's fix.
1103         * tests/cp/Makefile.am (TESTS): Add cp-deref.
1104         * NEWS: Document this.
1105
1106 2006-02-03  Jim Meyering  <jim@meyering.net>
1107
1108         * configure.ac: Require automake-1.9.6, not 1.8.3.
1109
1110 2006-02-01  Paul Eggert  <eggert@cs.ucla.edu>
1111
1112         * src/od.c (usage): Mention that -t a ignores high order bit.
1113         Documentation problem reported by Ed Avis.
1114
1115 2006-02-01  Jim Meyering  <jim@meyering.net>
1116
1117         * src/pwd.c (find_dir_entry): Remove unused local, `ent_sb_valid'.
1118
1119 2006-01-30  Paul Eggert  <eggert@cs.ucla.edu>
1120
1121         * src/head.c (main): Use a better diagnostic when someone uses a
1122         trailing numeric option in an invalid way.  Problem reported by
1123         Karl Berry.
1124         * src/tail.c (parse_options): Likewise.
1125
1126 2006-01-30  Jim Meyering  <jim@meyering.net>
1127
1128         * man/wc.x: Include `count' keyword in man page synopsis,
1129         per suggestion from http://bugs.debian.org/181585.
1130
1131 2006-01-24  Paul Eggert  <eggert@cs.ucla.edu>
1132
1133         * src/df.c (show_dev): If the file system claims to have
1134         more available than total blocks, report the number of used
1135         blocks as being total - available (a negative number) rather
1136         than as garbage.  Problem reported by Toralf Foerster.
1137
1138 2006-01-24  Jim Meyering  <jim@meyering.net>
1139
1140         * src/tail.c (tail_forever): Don't exit-nonzero when an attempt
1141         to put a regular file in O_NONBLOCK mode fails with EPERM.
1142         That happens on Linux (up to 2.6.15) when using tail -f on a file with
1143         the append-only attribute.  Reported by Dean Gaudet.  For details,
1144         see http://savannah.gnu.org/bugs/?func=detailitem&item_id=15473.
1145         * NEWS: Mention this fix.
1146         * tests/tail-2/append-only: New file.  Test for the above.
1147         * tests/tail-2/Makefile.am (TESTS): Add append-only.
1148         * tests/Makefile.am (check-root): Add tail-2/append-only
1149
1150 2006-01-21  Jim Meyering  <jim@meyering.net>
1151
1152         * NEWS: Mention fts-related improvements and bug fixes.
1153
1154 2006-01-19  Jim Meyering  <jim@meyering.net>
1155
1156         * tests/fmt/basic (pfx-1, pfx-2): New tests, to demonstrate the bug
1157         reported as http://bugs.debian.org/147577.  Forwarded by Thomas Hood.
1158
1159 2006-01-18  Jim Meyering  <jim@meyering.net>
1160
1161         * tests/du/Makefile.am (TESTS): Add long-from-unreadable.
1162
1163 2006-01-17  Jim Meyering  <jim@meyering.net>
1164
1165         Now that fts no longer changes the current working directory, adjust
1166         its clients accordingly -- note that du.c uses fts but doesn't need
1167         any adjustment, since it doesn't operate on the actual files,
1168         but rather just uses the stat buffers provided by fts.
1169
1170         * src/chown-core.c: Include "openat.h".
1171         Don't include "lchown.h".
1172         (restricted_chown): Accept a new parameter, CWD_FD, and use it in
1173         calling openat, lchownat, chownat, rather than open, lchown, chown.
1174         Update caller.
1175         * src/chmod.c: Include "openat.h".
1176         (process_file): Use chmodat (fts->fts_cwd_fd,... in place of chmod (...
1177
1178         * tests/du/long-from-unreadable: New test, to exercise one small
1179         corner of fts.c.
1180
1181 2006-01-13  Jim Meyering  <jim@meyering.net>
1182
1183         * tests/Makefile.am (SUBDIRS): Add comments discouraging the
1184         addition of new directories under tests/.
1185
1186         * tests/acl: Redirect stdin to /dev/null.  Otherwise, FreeBSD 5.0's
1187         getfacl would hang.
1188
1189 2006-01-12  Jim Meyering  <jim@meyering.net>
1190
1191         * tests/du/long-sloop: Adjust not to hard-code the expected
1192         diagnostic corresponding to ELOOP.  Solaris' diagnostic differs
1193         from that of GNU libc.  Reported by Paul Eggert.
1194
1195         * tests/du/long-sloop: Create file at end of symlink chain.
1196
1197         * tests/misc/test: New file, with a test for one of the
1198         bugs fixed by yesterday's test.c changes.
1199         * tests/misc/Makefile.am (TESTS): Add test.
1200
1201 2006-01-11  Jim Meyering  <jim@meyering.net>
1202
1203         * tests/du/long-sloop: New file.  Test for today's fts.c bug fix.
1204         That bug could make du -L, chgrp -L, or chown -L fail to diagnose
1205         a very long sequence of symbolic links (not necessarily a loop).
1206         * tests/du/Makefile.am (TESTS): Add long-sloop.
1207
1208 2006-01-11  Paul Eggert  <eggert@cs.ucla.edu>
1209
1210         * src/test.c (test_syntax_error): Append a newline.  All callers
1211         changed, except for the ones that didn't already append a newline.
1212         Bug reported by Eric Blake.
1213
1214 2006-01-11  Jim Meyering  <jim@meyering.net>
1215
1216         * src/system.h (X2NREALLOC): Now that verify_true is no longer
1217         void, cast its result to void, to avoid gcc's warning that
1218         ``left-hand operand of comma expression has no effect''.
1219         (DECIMAL_DIGIT_ACCUMULATE, X2REALLOC): Likewise.
1220
1221 2006-01-10  Jim Meyering  <jim@meyering.net>
1222
1223         * tests/chmod/no-x: Add a test for today's fts.c fix.
1224
1225 2006-01-10  Jim Meyering  <jim@meyering.net>  (tiny change)
1226
1227         * src/ls.c (gobble_file): Use DTTOIF only if it's defined.
1228         This is necessary for Dragonfly.  Patch by Joerg Sonnenberger.
1229
1230 2006-01-10  Paul Eggert  <eggert@cs.ucla.edu>
1231
1232         * src/system.h (X2NREALLOC, X2REALLOC, DECIMAL_DIGIT_ACCUMULATE):
1233         Use verify_true instead of verify_expr, to sync with gnulib.
1234
1235 2006-01-08  Jim Meyering  <jim@meyering.net>
1236
1237         * src/date.c (usage): Adjust the formatting of the entries for
1238         %::z and %:::z (separate with two spaces, not one) so that help2man
1239         formats them properly.  Reported by Philip Rowlands.
1240
1241 2006-01-06  Paul Eggert  <eggert@cs.ucla.edu>
1242
1243         * configure.ac (gl_IGNORE_UNUSED_LIBRARIES): Add.
1244
1245 2006-01-06  Jim Meyering  <jim@meyering.net>
1246
1247         * Makefile.maint (copyright-check): Use date +%Y in place of
1248         hard-coded 2005.
1249
1250         * src/remove.c (rm_1): Remove `static' attribute on local `status'.
1251         First off, the attribute should have been `volatile' (not static)
1252         to avoid longjmp-related risk of clobber.  Secondly, now there is
1253         no longer any risk of a local variable being clobbered, so there's
1254         no need for any attribute at all.
1255
1256 2006-01-05  Jim Meyering  <jim@meyering.net>
1257
1258         * src/remove.c: Give a few functions the inline attribute.
1259         (AD_pop_and_chdir): Use gotos to avoid some duplication.
1260         (AD_push): Rewrite an assertion so that the entire computation
1261         goes away when assertions are turned off.
1262
1263         * src/tail.c (ENOSYS) [!defined ENOSYS]: Don't define here.
1264         It's already defined in "system.h".
1265         * Makefile.maint: Add a FIXME comment.
1266
1267 2006-01-04  Jim Meyering  <jim@meyering.net>
1268
1269         * ChangeLog: Remove entries from 2005-10-22 and earlier.
1270         * ChangeLog-2005: New file, for entries up to version 5.92.
1271
1272 2006-01-03  Jim Meyering  <jim@meyering.net>
1273
1274         * tests/du/no-x: Also allow a slightly different diagnostic -- the
1275         one you get when using openat-enabled fts.c and du (coming soon).
1276         * tests/chmod/no-x: Likewise.
1277         * tests/chgrp/no-x: Likewise.
1278
1279         * src/system.h (O_DIRECTORY) [!defined O_DIRECTORY]: Define.
1280
1281 2006-01-02  Paul Eggert  <eggert@cs.ucla.edu>
1282
1283         * src/chown-core.c (RC_do_ordinary_chown): New enum value.
1284         (restricted_chown): Return it, if the file cannot be accessed due
1285         to EPERM, or if no uid or gid are required, or if the file is
1286         neither a directory nor a regular file.  Rewrite to avoid gotos.
1287         (change_file_owner): Handle RC_do_ordinary_chown case.
1288         Rewrite to avoid gotos.
1289         * tests/chgrp/basic: Make sure we can change the group of
1290         inaccessible files.
1291
1292         * src/date.c (usage): Explain %g, %G, and %V a bit better.
1293
1294 2006-01-02  Jim Meyering  <jim@meyering.net>
1295
1296         * src/copy.c (set_owner): Correct a comment.
1297
1298         * src/tail.c (parse_options): Change warning to say that --retry
1299         is useful `mainly' (not `only') when following by name.
1300         Reported here: http://bugs.debian.org/273781
1301
1302 2006-01-01  Paul Eggert  <eggert@cs.ucla.edu>
1303
1304         * NEWS: Document that mkfifo and mknod -m no longer set special bits.
1305         * src/copy.c: Include lchmod.h.
1306         (copy_internal): Use lchmod rather than chmod.
1307         * src/cp.c: Include lchmod.h.
1308         (re_protect, make_dir_parents_private): Use lchmod rather than chmod.
1309         * src/mkdir.c: Include lchmod.h.
1310         (usage): Clarify -m's operation.
1311         (main): Use lchmod rather than chmod.  Don't use lchmod unless the
1312         new mode contains bits outside the 777 range.
1313         * src/mkfifo.c (usage): Clarify -m's operation.
1314         (main): If -m is given, don't invoke chmod; use umask 0 instead.
1315         Report an error if -m asks for bits outside the 777 range.
1316         * src/mknod.c (usage, main): Likewise.
1317
1318         * src/mkdir.c, src/mkfifo.c, src/mknod.c: Undo 2005-12-19 changes.
1319
1320 2005-12-27  Jim Meyering  <jim@meyering.net>
1321
1322         * Makefile.maint (sc_obsolete_symbols): Prohibit use of O_NDELAY.
1323         (sc_prohibit_assert_without_use): New rule.
1324         (syntax-check-rules): Add it to the list.
1325         * .x-sc_prohibit_assert_without_use: New empty file.
1326         * Makefile.am (EXTRA_DIST): Add it.
1327
1328         * Makefile.maint (CVS_LIST): Define in terms of $(srcdir).
1329
1330         * cp.c, df.c, link.c, mknod.c, nice.c, sleep.c, unlink.c:
1331         Don't include <assert.h>; it wasn't used.
1332
1333 2005-12-26  Paul Eggert  <eggert@cs.ucla.edu>
1334
1335         * src/chown-core.c (restricted_chown):
1336         Don't try O_WRONLY unless O_RDONLY failed wth EACCES.
1337         * src/remove.c (fd_to_subdirp): Open with O_DIRECTORY | O_NOCTTY
1338         | O_NOFOLLOW too, for consistency with other dir-openers.
1339         Use POSIX-preferred O_NONBLOCK rather than O_NDELAY.
1340         (is_empty_dir): Likewise.
1341         * src/shred.c (wipename): Likewise.  Don't bother trying to open
1342         dir for writing, since POSIX prohibits it.
1343
1344 2005-12-22  Jim Meyering  <jim@meyering.net>
1345
1346         * tests/help-version: Redirect stderr to /dev/full, to suppress
1347         write error diagnostic.
1348
1349 2005-12-19  Jim Meyering  <jim@meyering.net>
1350
1351         * src/mkdir.c, src/mknod.c, src/mkfifo.c (main)
1352         Avoid a minor race condition when `-m MODE' is specified, by using
1353         open, fchown, and close rather than just chown.  To do that reliably --
1354         even with an overly restrictive umask -- ensure that each mkdir,
1355         mknod and mkfifo call uses a mode including at least owner-read access.
1356         * src/mknod.c (main): When `-m MODE' is specified, exit nonzero if
1357         the subsequent chown (or equivalent open,fchown,close) fails.
1358         * tests/misc/mknod: New tests.
1359         * tests/misc/Makefile.am (TESTS): Add mknod.
1360
1361 2005-12-17  Jim Meyering  <jim@meyering.net>
1362
1363         * src/remove.c (is_empty_dir): Open with O_NDELAY, so we don't hang,
1364         e.g., on a named pipe.
1365         (OPEN_NO_FOLLOW_SYMLINK): Remove definition.  Use O_NOFOLLOW in
1366         place of all uses, since it is guaranteed (system.h) to be defined.
1367
1368 2005-12-05  Andreas Gruenbacher  <agruen@suse.de>
1369
1370         Add POSIX ACL support
1371         * src/ls.c: Switch back from HAVE_ACL to USE_ACL: The acl() syscall
1372         is no requirement for ACL support; particularly, it does not exist
1373         on systems that have POSIX ACLs.
1374         * src/copy.h (cp_option_init) [umask_kill]: Remove member.
1375         * src/cp.c (umask_kill): With default acls, the umask is not to be
1376         applied.  Remove umask_kill, don't change the process umask, and let
1377         the kernel apply the umask where appropriate.
1378         * src/cp.c (make_dir_parents_private): Fix logic for POSIX ACLs.
1379         * src/copy.c (get_dest_mode): Remove; it is obsolete after removing
1380         umask_kill.
1381         (copy_reg, copy_internal): Use copy_acl and set_acl
1382         instead of fchown/chown. Fix the logic for POSIX ACLs.
1383         (chown_succeded): Remove; we now always copy acls and
1384         preserve S_ISUID, S_ISGID, and S_ISVTX when needed, no matter if we
1385         did a chown before or not.
1386         * src/mv.c, src/install.c (cp_option_init): Don't set umask_kill member.
1387         * src/Makefile.am (dir_LDADD, ls_LDADD, vdir_LDADD, cp_LDADD,
1388         mv_LDADD, ginstall_LDADD): On systems with an ACL library, arrange
1389         to link with it via $(LIB_ACL), for the utilities that need it.
1390
1391 2005-12-16  Paul Eggert  <eggert@cs.ucla.edu>
1392
1393         * src/remove.c (OPENAT_CWD_RESTORE__REQUIRE): Remove.
1394         (OPENAT_CWD_RESTORE__ALLOW_FAILURE): Likewise.
1395         (fd_to_subdirp): Remove openat_cwd_restore_allow_failure arg; its
1396         value is now signified by whether cwd_errno is null.
1397         (fd_to_subdirp, remove_dir, rm_1); Change cwd failure indicator from
1398         pointer-to-bool to pointer-to-errno-value.  All callers changed.
1399         (rm_1): Don't bother setting a local cwd failure flag and then
1400         ORing it into the caller's.  Just set the caller's.
1401         (rm): Use cwd failure errno value to print a slightly-better
1402         diagnostic.
1403
1404 2005-12-15  Jim Meyering  <jim@meyering.net>
1405
1406         * src/stat.c (print_it): Properly handle a backslash at the
1407         end of a --printf format string.  Reported by Paul Eggert.
1408         * tests/misc/stat-printf (end-bs): Add a test for the above.
1409
1410 2005-12-15  Paul Eggert  <eggert@cs.ucla.edu>
1411
1412         * tests/acl: Port to pre-POSIX shells like Solaris 8 /bin/sh.
1413         Don't assume /etc/passwd contains user names; use 'id' instead.
1414
1415 2005-12-15  Jim Meyering  <jim@meyering.net>
1416
1417         stat: revert behavior of --format=FMT (-c)
1418         stat: add new option: --printf=FMT
1419         * NEWS: Mention this.
1420         * src/stat.c (isodigit, octtobin, hextobin): Define.
1421         (PRINTF_OPTION): Define.
1422         (interpret_backslash_escapes, trailing_delim): New globals.
1423         (usage): Document them.  Alphabetize on long option names.
1424         (print_esc_char): New function.
1425         (print_it): Rewrite, in order to handle backslash escapes.
1426         (main): Handle new option.  Set globals for --format, too.
1427
1428         * tests/misc/stat-printf: Test --printf and --format.
1429         * tests/misc/Makefile.am (TESTS): Add stat-printf.
1430
1431 2005-12-14  Paul Eggert  <eggert@cs.ucla.edu>
1432
1433         * NEWS: sort now reports incompatible options.
1434         * src/sort.c (incompatible_options, check_ordering_compatibility):
1435         New functions.
1436         (main): Use them.  Don't bother with a usage message for
1437         "sort -c a b", for consistency with other error diagnostics.
1438         * tests/sort/Test.pm (incompat1, incompat2, incompat3, incompat4):
1439         New tests.
1440
1441         * src/cat.c (main): Undo previous change.  close_stdout already
1442         does the check, so the previous change wasn't necessary.
1443
1444 2005-12-13  Paul Eggert  <eggert@cs.ucla.edu>
1445
1446         * src/cat.c (main): Check for close (STDOUT_FILENO) failure.
1447
1448 2005-12-12  Paul Eggert  <eggert@cs.ucla.edu>
1449
1450         Install a more-conservative approach for sort -R.  It's the
1451         same basic idea as the existing code, except it uses the full ISAAC
1452         approach (called the "more kosher" approach in the existing comments).
1453         This makes "sort -R" quite a bit slower (about a factor of 2 on my
1454         little tests involving 10000 lines on a 2.4 GHz P4), but I think it's
1455         better to be conservative here at first, and review any performance
1456         improvements carefully.
1457         * .x-sc_require_config_h: Add src/rand-isaac.c.
1458         * src/rand-isaac.h: Remove.  All uses now simply include rand-isaac.c.
1459         * src/Makefile.am (noinst_HEADERS): Remove rand-isaac.h.
1460         (shred_SOURCES, sort_SOURCES): Remove.
1461         (EXTRA_DIST): Add rand-isaac.c.
1462         * src/rand-isaac.c: Revert to what used to be in shred.c, without
1463         changing it to allow for varying numbers of words in the state.
1464         Alter so that we include rand-isaac.c directly rather than
1465         compiling it and linking to it.  Don't include config.h or
1466         system.h; that's the includer's responsibility.
1467         Omit functions that are specific to shred.
1468         (ISAAC_LOG, ISAAC_WORDS, ISAAC_BYTES, struct isaac_state, ind):
1469         (isaac_step, struct irand_state):
1470         Resurrect these, with the same defns that used to be in shred.c.
1471         (ISAAC_SIZE, isaac_new, isaac_copy): Remove.
1472         (isaac_refill, isaac_seed_start, isaac_seed_data, irand_init, irand32):
1473         static again.
1474         (struct isaac_state, isaac_refill, isaac_mix, isaac_init):
1475         (isaac_seed_start, isaac_seed_data, isaac_seed_finish, isaac_seed):
1476         (irand_init, irand32, irand_mod):
1477         Number of words is constant again.
1478         (struct irand_state, irand_init, irand32, irand_mod): Move to shred.c.
1479         * src/shred.c: Include rand-isaac.c rather than rand-isaac.h.
1480         * src/sort.c: Likewise.
1481         * src/shred.c (fillrand, dopass, main): Undo previous change.
1482         (struct irand_state, irand_init, irand32, irand_mod): Moved back here,
1483         from rand-isaac.c.
1484         * src/sort.c: Don't include md5.h; it wasn't needed.
1485         (struct keyfield): Rename random_hash to random, for consistency
1486         with the other member names.  All uses changed.
1487         (usage): Tweak wording to mention STRING for --seed option.
1488         (short_options): Rorder for consistency with other programs.
1489         (rand_state): Now a struct, not a pointer to one.  All uses changed.
1490         (HASH_WORDS, HASH_SIZE): Remove.
1491         (get_hash): Remove comments around resbuf size, since we can assume C89.
1492         Use a "more-kosher" (but slower) approach of invoking isaac_refill.
1493         (keycompare): Adjust to the new get_hash.
1494         Add a FIXME.
1495         (badfieldspec): Omit recently-introduced comment; it isn't needed.
1496         (main): Don't set need_random simply because gkey has it set; that
1497         doesn't necessarily mean we'll need random numbers.
1498         Redo seeding to match new get_hash approach.
1499
1500 2005-12-10  Jim Meyering  <jim@meyering.net>
1501
1502         * src/Makefile.am (noinst_HEADERS): Add rand-isaac.h.
1503
1504         Avoid shred segfault on 64-bit systems.
1505         * src/rand-isaac.c (isaac_refill): Don't try to negate a
1506         local of type uint32_t.  Make the local an `int' instead.
1507
1508         * NEWS: Mention sort's new options.
1509
1510         * src/rand-isaac.c (isaac_mix): Declare to be static.
1511         Mark all other functions as `extern' so the tight-scope
1512         part of `make distcheck' passes once again.
1513         * src/rand-isaac.h (isaac_mix): Remove declaration.
1514
1515         * src/sort.c (get_hash): Change position of `*' in parameter
1516         type to conform with convention.
1517         (main): Split a long line so it fits in 80 columns.
1518         (keycompare): Remove stray SPACE before TAB that was
1519         causing `make distcheck' to fail.
1520
1521         * src/shred.c: Don't include gethrxtime.h.  No longer needed.
1522
1523         * tests/misc/sort-rand: New file: basic tests for the new options.
1524         * tests/misc/Makefile.am (TESTS): Add sort-rand.
1525
1526 2005-12-10  Frederik Eaton  <frederik@ofb.net>
1527
1528         * src/Makefile.am (sort_LDADD): Add $(LIB_GETHRXTIME).
1529         (shred_SOURCES, sort_SOURCES): New macros, so we compile rand-isaac.c.
1530         * src/rand-isaac.c: New file, containing ISAAC code that was in shred.c.
1531         Make state size runtime-configurable.
1532         (isaac_new, isaac_copy): New functions.
1533         * src/rand-isaac.h: New file.
1534         * src/shred.c: Include rand-isaac.h.  Move ISAAC code to rand-isaac.c.
1535         (fillrand, main): Adjust to the fact that the state size is now
1536         runtime-configurable.
1537         * src/sort.c (short_options, long_options, WORDS, keycompare, main):
1538         (usage): Add options --random-sort and --seed to implement a random
1539         shuffle.
1540         Include md5.h and rand-isaac.h.
1541         (get_hash): New function.
1542         (rand_state): New var.
1543         (HASH_WORDS, HASH_SIZE): New macros.
1544
1545 2005-12-09  Paul Eggert  <eggert@cs.ucla.edu>
1546
1547         * tests/dd/misc: Add test for dd iflags=noatime.
1548
1549 2005-12-09  Jim Meyering  <jim@meyering.net>
1550
1551         * src/sort.c (usage): Mention white space vs -b and -t options.
1552         From The Wanderer.
1553
1554 2005-12-09  Eric Blake  <ebb9@byu.net>
1555
1556         * src/test.c (main): Fix misleading comment.
1557
1558 2005-12-07  Paul Eggert  <eggert@cs.ucla.edu>
1559
1560         * NEWS: Mention dd's new noatime flag.
1561         * src/system.h (O_NOATIME): Define to 0 if not already defined.
1562         * src/dd.c (flags, usage): Add support for noatime flag.
1563
1564 2005-12-07  Jim Meyering  <jim@meyering.net>
1565
1566         Distribute the cvsu script, used only by `make syntax-check'.
1567         * Makefile.am (EXTRA_DIST): Add build-aux/cvsu.
1568         * Makefile.maint (CVS_LIST): Use build-aux/cvsu, now that we
1569         distribute a copy of this script.
1570         * .x-sc_unmarked_diagnostics: Add build-aux/cvsu.
1571
1572         * tests/mv/acl: exit-77 before the trap, not after, if we fail
1573         to create a temporary directory on another partition.
1574         From Andreas Gruenbacher.
1575
1576 2005-12-06  Tomas Pospisek  <tpo@sourcepole.ch>  (tiny change)
1577
1578         * man/basename.x: Cross-reference to dirname and readlink.
1579         * man/dirname.x: Cross-reference to basename and readlink.
1580
1581 2005-12-05  Andreas Gruenbacher
1582
1583         * src/copy.c [!HAVE_FCHOWN]: Define fchown(...) to -1.
1584         (set_owner, preserve_author): New functions, factored out of copy_reg.
1585         (copy_reg): Use them.
1586         (copy_internal): Use them here, too.
1587
1588 2005-12-04  Jim Meyering  <jim@meyering.net>
1589
1590         * src/sleep.c (usage): Say what happens with two or more arguments.
1591         Suggested by Justin Pryzby.
1592
1593         * src/uptime.c (print_uptime): Move decl of `upsecs' into scope
1594         where it's used.
1595
1596 2005-12-03  Jim Meyering  <jim@meyering.net>
1597
1598         * src/rm.c (long_opts): Change the name of each undocumented, for-
1599         testing-only option to start with `-', so that it cannot render
1600         ambiguous any prefix it happens to share with some other option name.
1601         Problem reported by Eric Blake.
1602         * src/head.c (long_options): Likewise.
1603         * src/tail.c (long_options): Likewise.
1604
1605         * tests/misc/head-elide-tail: Update uses of undocumented, for-
1606         testing-only --presume* options to start with `---'.
1607         * tests/rm/dangling-symlink: Likewise.
1608         * tests/rm/dir-no-w: Likewise.
1609         * tests/rm/isatty: Likewise.
1610
1611 2005-11-30  Jim Meyering  <jim@meyering.net>
1612
1613         * Makefile.maint: Add a comment about cvsu.
1614
1615 2005-11-25  Paul Eggert  <eggert@cs.ucla.edu>
1616
1617         * NEWS: df updates for "none", "proc", inaccessible file systems.
1618         * src/df.c (show_point): Ignore inaccessible file systems.
1619         (usage): -a includes dummy file systems, not size-0 file systems.
1620
1621         * src/od.c (unsigned_long_long_int): Renamed from ulonglong_t,
1622         to avoid collision with POSIX name space.  All uses changed.
1623
1624 2005-11-24  Jim Meyering  <jim@meyering.net>
1625
1626         * tests/Makefile.am (EXTRA_DIST): Add acl to the list.
1627         * tests/acl: Add `$0: ' prefix to diagnostics.
1628
1629         * .x-sc_require_config_h: Add lib/buffer-lcm.c to the list.
1630
1631 2005-11-23  Paul Eggert  <eggert@cs.ucla.edu>
1632
1633         * src/copy.c: Improve performance a bit by optimizing away
1634         unnecessary system calls and going to a block size of at least
1635         8192 (on normal hosts, anyway).  This improved performance 5% on my
1636         Debian stable host (2.4.27 kernel, x86, copying from root
1637         ext3 file system to itself).
1638         Include "buffer-lcm.h".
1639         (copy_reg): Omit last argument.  All callers changed.
1640         Use xmalloc to allocate rather than trusting alloca
1641         (which is unwise with large block sizes).
1642         Declare locals more locally, if possible.
1643         Use uintptr_t words instead of int words, for a bit more speed
1644         when looking for null blocks on 64-bit hosts.
1645         Optimize away reads of zero bytes on regular files.
1646         In the typical case, insist on 8 KiB buffers, at least.
1647         Avoid unnecessary extra call to fstat when checking for sparse files.
1648         Avoid now-unnecessary cast to off_t, and "0L".
1649         Avoid unnecessary test of *new_dst when checking for same owner
1650         and group.
1651
1652 2005-11-22  Paul Eggert  <eggert@cs.ucla.edu>
1653
1654         * src/remove.c (rm): Don't assume C99 for-loop syntax.
1655
1656 2005-11-22  Jim Meyering  <jim@meyering.net>
1657
1658         * src/remove.c (AD_push): Remove debugging cruft.
1659
1660         * tests/rm/unread2 (rm): Change expected diagnostic,
1661         `cannot open directory' to `cannot remove', to align with
1662         new version of rm.
1663         * tests/rm/rm2: Ensure that rm now continues removing entries
1664         even after certain types of failure.
1665
1666         * src/remove.c: Rewrite.  Now, this module is reentrant on systems
1667         that provide openat (Solaris), and on systems like Linux+procfs
1668         where our openat emulation code is reentrant.  This also fixes a
1669         few low-probability leaks and eliminates some code that could,
1670         in very unusual circumstances, cause rm() (via a callee) to exit.
1671         * NEWS: Mention this.
1672
1673         * configure.ac: Put copyright dates all on one line so the
1674         emacs function that updates them works properly.
1675
1676 2005-11-18  Paul Eggert  <eggert@cs.ucla.edu>
1677
1678         * configure.ac (AM_PROG_CC_C_O): Add.  Needed for CVS Automake.
1679         Problem reported by Eric Blake.
1680         (AC_PROG_CC_STDC): Use this instead of AC_PROG_CC, so that
1681         we get a standard-conforming compiler.  This relies on the new
1682         m4/c.m4 file.  Note that it's a bit tricky, since c.m4 doesn't
1683         define AC_PROG_CC_STDC; we are relying on Autoconf 2.59 internals.
1684         m4/c.m4 can go away with Autoconf 2.60 comes out.
1685
1686 2005-11-17  Jim Meyering  <jim@meyering.net>
1687
1688         * src/remove.c (AD_mark_helper): Make a `char *' parameter `const'.
1689         (AD_mark_current_as_unremovable): Likewise, but for a local.
1690         (rm_1): Likewise.
1691
1692         * tests/mv/acl: Let traps handle removing temporary directories.
1693
1694         Expect acl-related tests to fail, until the corresponding
1695         patches are committed.
1696         * tests/mv/Makefile.am (XFAIL_TESTS): Add acl.
1697         * tests/cp/Makefile.am (XFAIL_TESTS): Likewise.
1698
1699         ACL tests, from Andreas Gruenbacher.
1700         * tests/acl, tests/mv/acl, tests/cp/acl: New files.
1701         * tests/mv/Makefile.am (TESTS): Add acl.
1702         * tests/cp/Makefile.am (TESTS): Add acl.
1703
1704         * src/ls.c (basename_is_dot_or_dotdot): Correct wording in comment.
1705
1706 2005-11-16  Paul Eggert  <eggert@cs.ucla.edu>
1707
1708         * NEWS: Improve quality of ln's diagnostics.
1709         * src/ln.c (do_link, usage): Likewise.
1710         (do_link): Don't use alloca on a buffer of unbounded size.
1711
1712 2005-11-16  Jim Meyering  <jim@meyering.net>
1713
1714         * tests/cp/fail-perm: Accommodate HPUX.  It appears to fail
1715         with EACCES rather than EPERM.  Reported by Peter O'Gorman here:
1716         http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/5766
1717         This also affects AIX 4.3.3, according to Ralf Wildenhues, in
1718         http://lists.gnu.org/archive/html/bug-coreutils/2006-05/msg00192.html
1719
1720 2005-11-14  Jim Meyering  <jim@meyering.net>
1721
1722         * NEWS (sort): Mention consequences of today's mkstemp-safer.c fix.
1723
1724 2005-11-13  Jim Meyering  <jim@meyering.net>
1725
1726         * announce-gen: Accept new option, --gpg-key-id=ID and
1727         emit a blurb telling how to use the .sig files.
1728         * Makefile.cfg (gpg_key_ID): Define.
1729         * Makefile.maint (announcement): Use new option and key.
1730
1731         Require that most .c files include <config.h>.
1732         * Makefile.maint (sc_require_config_h): New rule.
1733         (syntax-check-rules): Add it.
1734         * .x-sc_require_config_h: New file listing exceptions to the
1735         above rule.  Some are legit, others are simply grandfathered in.
1736         * Makefile.am (EXTRA_DIST): Add .x-sc_require_config_h here, too.
1737
1738 2005-11-12  Jim Meyering  <jim@meyering.net>
1739
1740         * src/checksum.h, src/md5.c, src/sha1sum.c: Remove now-unused files.
1741
1742 2005-11-11  Jim Meyering  <jim@meyering.net>
1743
1744         * NEWS: Mention `readlink -f' bug fix in 5.3.0 news.
1745         Mention new readlink options in 5.3.0's `New features' section.
1746         Spotted by Thomas Hood.
1747
1748 2005-11-08  Jim Meyering  <jim@meyering.net>
1749
1750         * NEWS: Merge in changes from b5_9x branch.
1751
1752 2005-11-08  Paul Eggert  <eggert@cs.ucla.edu>
1753
1754         * NEWS: ls now defaults to --time-style='locale', which in turn acts
1755         like --time-style='posix-long-iso' if the locale settings are messed up.
1756         * src/ls.c (decode_switches): Implement this.
1757
1758 2005-11-08  Jim Meyering  <jim@meyering.net>
1759
1760         * tests/du/2g: s/expensive/very expensive/ in a comment.
1761         From Paul Townsend.
1762
1763 2005-10-17  Eric Blake  <ebb9@byu.net>
1764
1765         * src/ls.c (usage): Fix descriptions of --sort, --time.
1766         Reported by Vitaly A. Ostanin.
1767
1768 2005-11-04  Paul Eggert  <eggert@cs.ucla.edu>
1769
1770         * src/ln.c: Include filenamecat.c.
1771         (FILE_BASENAME_CONCAT): Remove.
1772         (do_link): Remove last arg DEST_IS_DIR.  All callers changed.
1773         (main): Use file_name_concat, base_name, and strip_trailing_slashes
1774         instead of FILE_BASENAME_CONCAT.  This simplifies the code, and avoids
1775         the use of alloca.
1776
1777 2005-11-04  Jim Meyering  <jim@meyering.net>
1778
1779         * src/du.c (process_file): Don't overflow for files of size >= 2^31
1780         on systems with stat.st_blocks of a signed 32-bit type.
1781         This bug causes trouble on some AIX 5.1 systems.
1782         Report and trivial patch from Paul Townsend:
1783         <http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00033.html>
1784         * NEWS: Mention this.
1785
1786         * tests/du/2g: New (very-expensive) test for the above-fixed bug.
1787         * tests/du/Makefile.am (TESTS): Add it here.
1788         * tests/very-expensive: New file.
1789         * tests/Makefile.am (EXTRA_DIST): Add it here.
1790         * tests/cp/perm: Mark this test as `very-expensive', too.
1791
1792 2005-11-02  Paul Eggert  <eggert@cs.ucla.edu>
1793
1794         * NEWS: Mention that rm -d and maybe ln -d are scheduled for
1795         removal in 2006.
1796         * src/remove.h (struct rm_options): Remove unlink_dirs.  All uses
1797         removed.
1798         * src/rm.c (usage): Don't mention rm -d.
1799
1800 2005-11-02  Jim Meyering  <jim@meyering.net>
1801
1802         * tests/dd/skip-seek: Fix typo in comment: s/fileutils/coreutils.
1803         From Andreas Schwab.
1804
1805         * tests/dd/unblock-sync: Redirect stderr to /dev/null so the
1806         `M+N records in/out' lines don't pollute `make check' output.
1807
1808         * tests/dd/skip-seek (sk-seek4): New test, to exercise the bug
1809         fixed on 2005-10-31.  This test uses the new, IN_PIPE specifier.
1810         * tests/Coreutils.pm: Accept a new type of input specifier: IN_PIPE,
1811         to indicate that the input file should be piped into the command
1812         under test (via `cat FILE | $prog ...').
1813
1814         * src/remove.c (remove_entry): Emit a better diagnostic when rm
1815         (without -r) fails to remove a directory on a non-Linux system.
1816         This change affects only newer Solaris systems (with priv_*
1817         functions like priv_allocset).  Reported by Keith Thompson.
1818
1819         * tests/rm/dir-nonrecur: New file/test for the above fix.
1820         * tests/rm/Makefile.am (TESTS): Add dir-nonrecur.
1821
1822 2005-11-01  Paul Eggert  <eggert@cs.ucla.edu>
1823
1824         * NEWS: "tail -c 2 FILE" and "touch 0101000000" now operate as
1825         POSIX 1002.1-2001 requires.
1826         * src/tail.c (parse_obsolete_option): Implement this.
1827         Problem reported by Vincent Lefevre.
1828         * src/touch.c (main): Pass PDS_PRE_2000 to posixtime.
1829         * tests/tail/Test.pm (c-2, c-2-minus, c2, c2-minus): New tests.
1830         (test_vector): Add special cases for _POSIX2_VERSION, and
1831         regularize the old ones a bit.
1832         * tests/touch/obsolescent: Add y2000 test.
1833
1834 2005-10-31  Paul Eggert  <eggert@cs.ucla.edu>
1835
1836         * src/dd.c (skip): Fix off-by-one error reported by
1837         Theodoros V. Kalamatianos.
1838
1839 2005-10-30  Paul Eggert  <eggert@cs.ucla.edu>
1840
1841         * tests/mkdir/p-3: Require that the test be run as non-root.
1842         Problem and trivial fix reported by Theodoros V. Kalamatianos.
1843
1844 2005-10-28  Paul Eggert  <eggert@cs.ucla.edu>
1845
1846         * src/ln.c (FILE_BASENAME_CONCAT): Omit unnecessary slashes in the
1847         boundary between DEST and SOURCE in the result.
1848
1849 2005-10-26  Dmitry V. Levin  <ldv@altlinux.org>
1850
1851         * src/md5sum.c (main) [!O_BINARY]: Changed default read mode
1852         back to text, to sync with documentation and for backwards
1853         compatibility.
1854
1855 2005-10-25  Jim Meyering  <jim@meyering.net>
1856
1857         * tests/dircolors/simple (other-wr): Add an explicit test for
1858         the dircolors bug (NULL-dereference) fixed yesterday.
1859
1860 2005-10-24  Jim Meyering  <jim@meyering.net>
1861
1862         * src/tac.c (tac_file): When determining whether a file is seekable,
1863         also test whether it is a tty.  Using only the lseek-based test would
1864         give a false positive on Solaris.  Reported by Peter Fales.
1865
1866 2005-10-24  Dmitry V. Levin  <ldv@altlinux.org>
1867
1868         * tests/install/d-slashdot: New test, for "install -d" failure.
1869         * tests/install/Makefile.am (TESTS): Add d-slashdot.
1870         * tests/mkdir/p-slashdot: New test, for "mkdir -p" failure.
1871         * tests/mkdir/Makefile.am (TESTS): Add p-slashdot.
1872
1873 2005-10-24  Jim Meyering  <jim@meyering.net>
1874
1875         * src/dircolors.c (ls_codes): Add missing comma.
1876         Anonymous report and patch from
1877         http://savannah.gnu.org/bugs/?func=detailitem&item_id=14849
1878
1879         * src/dircolors.c: Add compile-time assertion that the slack_codes
1880         and ls_codes arrays have the same number of elements.  This would
1881         have prevented the above-fixed bug.
1882
1883         * src/expand.c (parse_tab_stops): Add a comment to make this function
1884         identical to the one in unexpand.c.
1885         * src/unexpand.c (parse_tab_stops): Adjust syntax to make this function
1886         identical to the one in expand.c.
1887
1888         * src/expand.c (next_file): Don't assume fopen cannot return stdin.
1889
1890 2005-10-23  Jim Meyering  <jim@meyering.net>
1891
1892         * src/md5sum.c (digest_check, main): Use ptr_align rather than
1893         a dangerous pointer-value-to-`unsigned' cast.
1894         * NEWS: mention the new sha* programs.
1895         * AUTHORS: Add new sha* programs.
1896
1897 2005-08-28  David Madore  <david.madore@ens.fr>
1898
1899         Add new programs: sha224sum, sha256sum, sha384sum, sha512sum.
1900         * README: Add their names to the list.
1901         * src/md5sum.c: Provide framework for computing sha-2 hashes.
1902         * src/Makefile.am (sha224sum, sha256sum, sha384sum, sha512sum):
1903         Rules for compiling sha-2 utilities
1904         (noinst_HEADERS): Remove checksum.h.
1905         * man/sha512sum.x, man/sha384sum.x, man/sha256sum.x, man/sha224sum.x:
1906         New files.
1907         * man/Makefile.am (dist_man_MANS): Add the corresponding .1 names.
1908         (sha224sum.1, sha256sum.1, sha384sum.1, sha512sum.1): New dependencies.
1909         * tests/misc/sha224sum, tests/misc/sha256sum: New files.
1910         * tests/misc/sha384sum, tests/misc/sha512sum: New files.
1911         * tests/misc/Makefile.am (TESTS): Add new sha224sum, sha256sum,
1912         sha384sum, sha512sum test scripts here rather that each in its
1913         own directory.
1914
1915 2005-08-28  David Madore  <david.madore@ens.fr>
1916
1917         * tests/sha1sum/basic-1 (million-a): Add the "million a's" test (one
1918         of the FIPS test vectors).
1919
1920 2005-10-23  Jim Meyering  <jim@meyering.net>
1921
1922         * configure.ac: Use 6.0-cvs as the version string.
1923         * NEWS: Adjust accordingly.