Paul Eggert [Sun, 25 Sep 2005 03:07:33 +0000 (03:07 +0000)]
(HAVE_FCHMOD, HAVE_FCHOWN): Define to 0 if not defined.
(copy_reg): New args CHOWN_SUCCEDED and DST_SB. All callers changed.
Add a "goto close_src_and_dst_desc;" that was missing in the
previous patch.
(copy_reg) [HAVE_FCHOWN]: Prefer fchown to chown.
(copy_reg) [HAVE_FCHMOD]: Prefer fchmod to chmod.
(copy_internal): Don't invoke chown if fchown worked,
and likewise for chmod and fchmod.
Paul Eggert [Sat, 24 Sep 2005 23:14:04 +0000 (23:14 +0000)]
(libcoreutils_a_SOURCES): Remove mbchar.c, since
it doesn't build in OpenBSD 3.4. See
<http://lists.gnu.org/archive/html/bug-gnulib/2005-09/msg00242.html>.
Paul Eggert [Sat, 24 Sep 2005 23:13:19 +0000 (23:13 +0000)]
(gl_MBCHAR): Check for wchar.h and wctype.h, and
don't compile mbchar.c unless both headers exist. See
<http://lists.gnu.org/archive/html/bug-gnulib/2005-09/msg00242.html>.
Paul Eggert [Sat, 24 Sep 2005 22:59:06 +0000 (22:59 +0000)]
(__attribute): Define to nothing for GCC 2.
This works around a core dump on OpenBSD 3.4, which has GCC
2.95.3, which dumps core when given __attribute__(()).
Paul Eggert [Sat, 24 Sep 2005 07:05:27 +0000 (07:05 +0000)]
(uninit-64): Remove this test. It wasn't
portable in theory (it doesn't work on hosts where 'int' is 64
bits, example) or in practice (Solaris 8 localtime returns garbage
in tm_year for the specified date, but that's not coreutils's
fault).
Jim Meyering [Fri, 23 Sep 2005 23:05:39 +0000 (23:05 +0000)]
(verify_type__): Use `unsigned int' as the bitfield type
so we can once again use a positive bitfield width of 1 -- now we
don't have to explain why we were using a bitfield width of 2.
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.