Jim Meyering [Sun, 19 Dec 1999 10:23:26 +0000 (10:23 +0000)]
[! LSTAT_FOLLOWS_SLASHED_SYMLINK]: Use lstat wrapper.
[Notice the new test in m4/lstat-slash.m4. ]
(main): Back out change from 1999-02-19 that made ls remove
trailing slashes from command line arguments to accommodate early
versions of Linux. Now, `ls symlink-to-dir/' acts like
`ls symlink-to-dir/.' thus following the symbolic link, as POSIX says
it should. Suggestion from Bruno Haible and Andreas Schwab.
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.