Jim Meyering [Sat, 18 Dec 1999 16:00:49 +0000 (16:00 +0000)]
(wipename): When repeatedly renaming a file, making the name shorter
and shorter, skip to the next shorter length length if a rename fails (e.g. due to
permission denied). Otherwise, this loop would iterate for so long that shred would
appear to be stuck in an infinite loop for any but the shortest file names.
Jim Meyering [Wed, 15 Dec 1999 08:38:54 +0000 (08:38 +0000)]
(decode_switches): If -c or -u is specified and not -l (or any other
option that implies -l), and no sort-type was specified,
then sort by the ctime (-c) or atime (-u). Part of this change reverts
the 1998-01-10 delta.
(usage): Update to reflect this change.
Reported by Paul Slootman via Michael Stone.
Jim Meyering [Sun, 12 Dec 1999 21:49:25 +0000 (21:49 +0000)]
Move 120+ lines of stat.h-related macros from system.h (not shared)
to sys2.h, which is shared between fileutils, sh-utils, textutils.
* src/system.h: Move them from here...
* src/sys2.h: ... to here.
Jim Meyering [Sun, 12 Dec 1999 21:45:34 +0000 (21:45 +0000)]
(S_IRUSR, S_IRGRP, S_IWGRP, S_IROTH, S_IWOTH): Define
if not defined. This was necessary on a NeXT Turbostation running
Mach 3.3. Reported by Nelson H. F. Beebe.
Jim Meyering [Sun, 5 Dec 1999 22:36:02 +0000 (22:36 +0000)]
(main): Flush stdout before switching to unbuffered mode
and calling tail_forever. Required only on Solaris2.7 -- on other
systems, using setvbuf to switch to unbufferd mode does the flush.
Jim Meyering [Sun, 5 Dec 1999 15:13:21 +0000 (15:13 +0000)]
Revert the previous change.
(copy_internal): In move mode, if the rename attempt
fails, then unlink any existing destination file. This makes a
cross-device `mv' more consistent with the intra-device behavior.
This change is required by POSIX to make a cross-device move act with
semantics similar to those of the rename syscall. For example now
`mv' can move a file onto a symlink to itself when that symlink
is on a separate partition. With fileutils-4.0j, it would fail with
a diagnostic saying they were the same file.
Reported by Bruno Haible.
Jim Meyering [Sat, 4 Dec 1999 17:33:49 +0000 (17:33 +0000)]
(trap): Be careful to close $actual before
removing the containing directory. Otherwise, on some systems rmdir
fails to remove the containing directory.
Jim Meyering [Sat, 4 Dec 1999 17:21:47 +0000 (17:21 +0000)]
(copy_internal): Be consistent with intra-device behavior
and *do* allow `mv' to move a file onto a symlink to itself when that
symlink is on a separate partition. With fileutils-4.0j, it would
fail with a diagnostic saying they were the same file.
Reported by Bruno Haible.
Jim Meyering [Sat, 4 Dec 1999 17:03:43 +0000 (17:03 +0000)]
Give the right diagnostic when failing to create a file in an
unwritable directory.
(touch): Record errno upon failed errno and use that
saved value if a subsequent fstat, stat or utime call fails.
Reported by Wichert Akkerman via Michael Stone.
Jim Meyering [Sat, 4 Dec 1999 16:55:27 +0000 (16:55 +0000)]
(check_symlink_color): New variable.
(main): Set it if we need to check for dangling symlinks when
displaying colors.
(gobble_file): Check check_symlink_color instead of print_with_color.
Jim Meyering [Sat, 27 Nov 1999 20:00:54 +0000 (20:00 +0000)]
Rewrite to allow fractional seconds and to handle SIGCONT.
(main): Rewrite.
(sighandler): New function.
(apply_suffix): New function.
(timeval_subtract): New function.
Jim Meyering [Fri, 26 Nov 1999 16:50:24 +0000 (16:50 +0000)]
(df_readable): Now returns char const *, not char *.
New arg NEGATIVE.
(ceil_percent): Now returns double, not int.
Be more careful about adding 1 to a wild value.
(show_dev): Don't filter out wild sizes from the underlying operating
system; instead, show them to the user as faithfully as possible.