Paul Eggert [Mon, 4 Aug 2003 23:23:27 +0000 (23:23 +0000)]
(NEW_PATTERN): Cast alloca return value to proper type.
Otherwise, it wouldn't compile with at least /bin/cc on
ymp-cray-unicos9.0.2.X.
Combine two mostly-identical uses of alloca into one.
Jim Meyering [Sun, 20 Jul 2003 15:49:59 +0000 (15:49 +0000)]
(close_stdout_set_status, close_stdout_status): Remove.
Include "closeout.h" right after config.h,
to test that it can stand by itself. Include "exitfail.h".
Clients should set exit_failure instead.
(EXIT_FAILURE): Remove; no longer needed. Do not include <stdlib.h>.
Paul Eggert [Tue, 15 Jul 2003 20:21:02 +0000 (20:21 +0000)]
Get the following files from gettext-runtime/intl
instead: config.charset, localcharset.c, localcharset.h, ref-add.sin,
ref-del.sin. From Bruno Haible.
Jim Meyering [Mon, 14 Jul 2003 18:54:52 +0000 (18:54 +0000)]
Don't emit diagnostics. Let callers do that.
Don't include "error.h".
(save_cwd): Don't call error. Ensure that errno is valid
when returning nonzero.
(restore_cwd): Remove two parameters.
Simplify. Don't call error upon failure. Let callers do that.
(save_cwd): Mention that Irix 5.3 has the same problem as SunOS4
when auditing is enabled. But don't bother updating the #if.
Paul Eggert [Thu, 10 Jul 2003 05:07:45 +0000 (05:07 +0000)]
Sort sublists. Add $LIBCSRC/sysdeps/generic/strtoul.c.
In comments, add more libc files that differ from gnulib for one
reason or another; we'd like this list to be smaller but for now
let's document what we have.
Paul Eggert [Tue, 8 Jul 2003 23:33:45 +0000 (23:33 +0000)]
* srclist-update: Port to POSIX 1003.1-2001 hosts by avoiding the
use of GNU extensions. Change "x=`eval echo $x`" to the shorter
and sweeter "eval x=$x".
Paul Eggert [Mon, 7 Jul 2003 23:11:52 +0000 (23:11 +0000)]
Fix some boundary cases and remove need for floating point.
Issue a compile-time diagnostic if time_t is floating point, or if
two's complement arithmetic is not in effect, or if arithmetic
right shift does not propagate the sign. These assumptions were
all in the original code but they weren't checked.
(TIME_T_MIDPOINT, verify): New macros.
(__isleap): Remove; it has integer overflow problems.
(leapyear): New function, without those problems.
(ydhms_tm_diff): Remove; splitting into two parts.
(ydhms_diff): New function, containing the arithmetic part of
the old ydhms_tm_diff function. Issue a compile-time
diagnostic if we are not using C99 integer division.
Avoid casts when possible.
(guess_time_tm): New function, containing the checking part of
the old ydhms_tm_diff function. Return the new value, rather than
the difference between it and the old. Accept a new argument T
so that *T specifies the old value. Check for overflow in the result.
(__mktime_internal): Use a time_t offset, not a long int offset.
This undoes the 2003-06-04 change, which is no longer needed now
that we have better overflow checking.
(localtime_offset): Likewise.
(__mktime_internal): Avoid harmful overflow on hosts where time_t
and long are 64-bit but int is only 32-bit.
(ydhms_diff): Use long int to store year1 and yday1.
Issue a compile-time diagnostic if long int is not wide enough.
(__mktime_internal): Use long int to store adjusted year and yday.
Use plain C rather than preprocessor commands, if that doesn't
affect efficiency.
Check for overflow (and try to repair) after each probe
rather than checking only at the very end. This avoids some bugs
(e.g., southern hemisphere, behind GMT, and GMT offset at minimum time
does not equal GMT offset at maximum time).
Use integer to check for overflow rather than floating point; this
is more portable to non-IEEE hosts, and is a tad faster.
When we detect that we are oscillating between two values,
don't check whether tm_isdst has the requested value, since
we already know the answer. When tm_isdst has the wrong value,
use a different heuristic to find the right one, based on the
extreme values actually observed in practice in tz2003a,
rather than the (overly optimistic) "previous 3 calendar quarters".
(not_equal_tm, print_tm, check_result): Use "const T" rather than
"T const" to accommodate glibc style.
(check_result): Use less-confusing report format. "long" -> "long int.
(main): Likewise.
Don't loop if the iteration overflows time_t.
Allow a negative step in the iteration.