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