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