Jim Meyering [Thu, 23 Dec 1999 14:34:38 +0000 (14:34 +0000)]
(USE_CLOCK_GETTIME): Define.
[USE_CLOCK_GETTIME]: Include sys/time.h.
(timespec_subtract): New function.
(clock_get_realtime): New function.
(sighandler): Remove function.
(main): Reimplement again, using nanosleep and clock_gettime.
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.