Paul Eggert [Mon, 21 Mar 2005 20:49:01 +0000 (20:49 +0000)]
* path-concat.c: Don't include assert.h.
(path_concat): Remove assertion that would have triggered
for ABASE starting with more than one slash.
Reported by Andreas Schwab.
* path-concat.c (path_concat): Set *BASE_IN_RESULT
properly when ABASE is an absolute file name.
Correct the description of this function.
Include <assert.h>.
Add an assertion and a test driver.
This fixes a bug introduced on 2004-07-02.
Andreas Schwab reported the resulting failure of cp --parents:
http://lists.gnu.org/archive/html/bug-coreutils/2005-01/msg00130.html
Paul Eggert [Sat, 19 Mar 2005 05:34:28 +0000 (05:34 +0000)]
(my_strftime): If the underlying strftime returns 0
(which shouldn't happen), generate nothing instead of returning 0
immediately, so that nstrftime (NULL, ...) doesn't return 0.
Paul Eggert [Wed, 9 Mar 2005 19:11:23 +0000 (19:11 +0000)]
Factor int-properties macros into a single file, except for
glibc-related files.
* lib/intprops.h: New file.
* lib/getloadavg.c: Include it instead of limits.h.
(INT_STRLEN_BOUND): Remove.
* lib/human.c: Include intprops.h.
(group_number): Use INT_STRLEN_BOUND instead of rolling it ourself.
* lib/human.h (LONGEST_HUMAN_READABLE): Use 146/485 rather than 302/1000.
* lib/inttostr.h: Include intprops.h instead of limits.h.
(INT_STRLEN_BOUND, INT_BUFSIZE_BOUND): Remove.
* lib/mktime.c (TYPE_IS_INTEGER, TYPE_TWOS_COMPLEMENT): New macros,
for consistency with intprops.h.
(time_t_is_integer, twos_complement_arithmetic): Use them.
* lib/sig2str.h: Include <signal.h>, intprops.h.
(INT_STRLEN_BOUND): Remove.
* lib/strftime.c (TYPE_SIGNED): Remove.
(INT_STRLEN_BOUND): Switch to same implementation as intprops.h.
* lib/strtol.c: Adjust comments to match intprops.h.
* lib/userspec.c: Include intprops.h.
(TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Remove.
* lib/utimecmp.c, lib/xnanosleep.c, lib/xstrtol.c: Likewise.
* lib/utimecmp.c (utimecmp): Use TYPE_IS_INTEGER, TYPE_TWOS_COMPLEMENT
instead of rolling our own expressions.
* lib/xstrtol.c: Include xstrtol.h first, to test interface.
* modules/getloadavg (Files): Add lib/intprops.h.
* modules/human (Files): Likewise.
* modules/inttostr (Files): Likewise.
* modules/sig2str (Files): Likewise.
* modules/userspec (Files): Likewise.
* modules/utimecmp (Files): Likewise.
* modules/xnanosleep (Files): Likewise.
* modules/xstrtol (Files): Likewise.
Paul Eggert [Wed, 9 Mar 2005 18:39:39 +0000 (18:39 +0000)]
Include <stdbool.h>. Use bool where appropriate,
instead of int.
(my_strftime): Do not mishandle years close to INT_MAX, by doing
the right thing even if adding 1900 would overflow. Similarly
for tm_mon + 1 and tm_yday + 1.
Make %Y always equivalent to %C%y, and similarly for %G and %g.
(DO_NUMBER, DO_NUMBER_SPACEPAD): Set digits to d, not a conditional.
(DO_SIGNED_NUMBER): New macro.
(my_strftime) [HAVE_TZNAME]: Don't dump core if tp->tm_dst > 1.
Bruno Haible [Thu, 3 Mar 2005 20:38:38 +0000 (20:38 +0000)]
From Derek Price:
(pagealign_alloc): Set var to const as possible.
Check for MAP_FAILED return from mmap. Set errno on failure of
posix_memalign(). Catch munmap failure.
Paul Eggert [Tue, 1 Mar 2005 17:25:09 +0000 (17:25 +0000)]
Remove workaround for bug in Linux kernel 2.6.8 or thereabouts.
The workaround isn't strictly needed for POSIX conformance, and
it's too much of a pain to configure and maintain. We'll ask
people to fix their kernels instead.
* modules/xnanosleep (Depends-on): Remove gethrxtime.
* lib/xnanosleep.c: Don't include gethrxtime.h or xtime.h.
(NANOSLEEP_BUG_WORKAROUND): Remove.
(xnanosleep): Remove the workaround.
* m4/xnanosleep.m4 (gl_XNANOSLEEP): Remove configuration attempting
to detect nanosleep bug.