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