Paul Eggert [Fri, 23 Sep 2005 20:39:04 +0000 (20:39 +0000)]
(change_timestamps): First arg is source
struct stat, not file name. All uses changed.
(install_file_in_file): Stat the source file if necessary.
Don't try to change time stamps if copy_file did it.
Paul Eggert [Fri, 23 Sep 2005 20:38:34 +0000 (20:38 +0000)]
(copy_reg): Preserve time stamps if
x->preserve_timestamps is set, using futimens so that
we needn't resolve the path again.
(copy_internal): Don't preserve time stamps if copy_reg did it
already.
Jim Meyering [Fri, 23 Sep 2005 20:13:49 +0000 (20:13 +0000)]
Use `verify' to ensure that our hard-coded
bytes_to_*_digits arrays are long enough. Of course, 17+-byte
integral types aren't on the near horizon, but just in case...
(MAX_INTEGRAL_TYPE_SIZE): Move definition to precede new first use.
(bytes_to_oct_digits, bytes_to_signed_dec_digits):
(bytes_to_unsigned_dec_digits, bytes_to_hex_digits): Change base
type from `char' to the clearer `unsigned int'.
Paul Eggert [Fri, 23 Sep 2005 19:18:27 +0000 (19:18 +0000)]
* lib/utimens.c (futimens): Use futimesat if available.
Prefer it to futimes since it doesn't have the futimes bug.
* m4/utimens.m4 (gl_UTIMENS): Check for futimesat.
Paul Eggert [Fri, 23 Sep 2005 17:47:15 +0000 (17:47 +0000)]
(GL_CONCAT0, GL_CONCAT): Remove.
(verify): Don't use the __LINE__ trick, as it doesn't work in general.
Instead, declare a function that returns a pointer to an array,
and use verify_type__ to declare the size of the array.
Problem and germ of a solution reported by Bruno Haible.
Paul Eggert [Fri, 23 Sep 2005 05:12:50 +0000 (05:12 +0000)]
* lib/getaddrinfo.c [HAVE_NETINET_IN_H]: Include <netinet/in.h>.
Problem reported by Eric Blake.
(getaddrinfo): Initialize se so that it's not garbage.
Redo internal storage allocation so that it doesn't make unportable
assumptions about alignment.
Fix a memory leak.
Paul Eggert [Thu, 22 Sep 2005 07:00:24 +0000 (07:00 +0000)]
(gl_PREREQ): Require gl_FUNC_GETLINE rather than
AM_FUNC_GETLINE. Require gl_FUNC_GETPASS_GNU rather than
gl_FUNC_GETPASS. Require gl_MBCHAR and gl_MBITER.
Paul Eggert [Thu, 22 Sep 2005 06:39:14 +0000 (06:39 +0000)]
(GL_CONCAT): Remove.
Include "verify.h" instead.
(ARGMATCH_CONSTRAINT, ARGMATCH_ASSERT): Remove.
(ARGMATCH_VERIFY): Rewrite in terms of new verify macros.
Paul Eggert [Thu, 22 Sep 2005 06:32:52 +0000 (06:32 +0000)]
(VERIFY_EXPR, X2NREALLOC, X2REALLOC): Remove.
The latter two macros are moving to ../src/system.h for now.
This reverts this file to the gnulib version.
Jim Meyering [Tue, 20 Sep 2005 13:51:01 +0000 (13:51 +0000)]
(fdopendir): Be sure to close the supplied
file descriptor before returning. This makes our replacement
implementation a little closer to Solaris's, where fdopendir
ties the file descriptor to the returned DIR* pointer.
Paul Eggert [Sat, 17 Sep 2005 06:54:22 +0000 (06:54 +0000)]
(set_stat_atime, set_stat_ctime, set_stat_mtime): Remove; they were
buggy in the HAVE_STRUCT_STAT_ST_SPARE1 case, and they were dubious
anyway. I rewrote 'tar' to not use them any more.
Jim Meyering [Fri, 16 Sep 2005 17:53:40 +0000 (17:53 +0000)]
(subfmt-up1): Put quotes around format string
to protect `^' from interpretation by some shells.
Add a use of OUT_SUBST to compensate for Solaris strftime's slightly
different formatting of %c.
Jim Meyering [Fri, 16 Sep 2005 08:08:32 +0000 (08:08 +0000)]
Include fprintftime.h.
Don't include strftime.h or xanstrftime.h -- no longer needed.
(show_date): Use new fprintftime function rather than xanstrftime.
Correct comment: this function no longer handles a NULL format string.
Paul Eggert [Fri, 16 Sep 2005 07:39:41 +0000 (07:39 +0000)]
Include stat-time.h.
(SYSCALL_RESOLUTION): Depend on whether various struct stat
members exist, not on the obsolescent ST_MTIM_NSEC.
(utimecmp): Use the new stat-time functions rater than TIMESPEC_NS.
Paul Eggert [Fri, 16 Sep 2005 07:39:18 +0000 (07:39 +0000)]
(ST_TIME_CMP_NS, ST_TIME_CMP, ATIME_CMP, CTIME_CMP):
(MTIME_CMP, TIMESPEC_NS): Remove. Now done by stat-time.h,
in a different way.
(timespec_cmp): New function.