Jim Meyering [Wed, 10 Jan 2001 12:18:19 +0000 (12:18 +0000)]
(copy_internal): Add a comment.
Set *copy_into_self in the new code that detects that.
Make diagnostic more consistent: s/won't/will not/.
[move_mode, copy_into_self]: Give a diagnstic here, now that
we have the top_level_* globals. Remove the corresponding diagnostic
from mv.c.
Add a FIXME comment.
Jim Meyering [Wed, 10 Jan 2001 12:16:52 +0000 (12:16 +0000)]
(do_move): Remove diagnostic, now that copy.c issues it.
Set `fail' to nonzero in the primary `if (copy_into_self)' block
rather than in its own tiny one below.
Jim Meyering [Wed, 10 Jan 2001 11:54:53 +0000 (11:54 +0000)]
[struct entry] (node): Describe how it's used,
now that we've overloaded it a little, in order to detect and diagnose
the copying-directory-into-self problem.
(new_file): Remove global.
(htab): Declare global to be static.
(remember_created): Insert file name instead of dummy pointer, so
that copy.c can use the just-created directory name to detect
the copying-directory-into-self problem.
Jim Meyering [Wed, 3 Jan 2001 21:02:08 +0000 (21:02 +0000)]
Use the more precise algorithm of GNU "make" to decide whether
a file is in the future, by looking at high-resolution time
stamps if available.
(TIMESPEC_NS): New macro.
(current_time): Initialize to the minimum value.
(current_time_ns): New var.
(main): Do not bother to initialize current_time;
it's no longer needed.
(get_current_time): New function.
(print_long_format): Use it when a file appears to be in the future.
Get the nanoseconds of the file's time stamp, if available,
and use that to decide whether the file appears to be in the future.
Jim Meyering [Wed, 3 Jan 2001 09:47:09 +0000 (09:47 +0000)]
(long_time_expected_width, print_long_format): Fix
bug: the initial byte passed to strftime wasn't initialized to
a nonzero value after the buffer was reallocated.
Jim Meyering [Wed, 3 Jan 2001 09:15:22 +0000 (09:15 +0000)]
(long_time_expected_width): New function.
(print_long_format): Use it, so that we don't assume a
particular width for time stamps in an internationalized
environment.
Jim Meyering [Tue, 2 Jan 2001 15:48:21 +0000 (15:48 +0000)]
(ulonglong_t): Define place-holder type to avoid some #if directives.
(LONGEST_INTEGRAL_TYPE): Remove definition.
(MAX_INTEGRAL_TYPE_SIZE): Use ulonglong_t instead of LONGEST_INTEGRAL_TYPE.
(print_long_long): Compile this function even on systems without
long long support.
(decode_one_format): Remove #if directive.
Jim Meyering [Tue, 2 Jan 2001 10:54:55 +0000 (10:54 +0000)]
(decode_one_format): Guard use of print_long_long with
`#if HAVE_UNSIGNED_LONG_LONG'. From Darren Salt.
Change all `#ifdef HAVE_UNSIGNED_LONG_LONG' to use `#if' instead.
Jim Meyering [Tue, 2 Jan 2001 07:18:56 +0000 (07:18 +0000)]
(print_long_format):
Report the year for files even slightly in the future.
Avoid overflow problems near Y2038 on 32-bit hosts.
To calculate "six months", take half the average Gregorian
year, not 180 days.
Jim Meyering [Mon, 1 Jan 2001 18:16:52 +0000 (18:16 +0000)]
(jm_PREREQ_READUTMP): Include utmp.h (if available), even
on systems with utmpx.h. It's necessary for the declaration of utmp's
ut_user member. Reported by Andreas Jaeger.
Jim Meyering [Mon, 1 Jan 2001 18:08:48 +0000 (18:08 +0000)]
(jm_CHECK_DECLS): Include grp.h and pwd.h if available.
They are required for the declarations of getgrgid and getpwuid resp.
(_jm_DECL_HEADERS): Check for grp.h and pwd.h.