diff options
author | Miles Bader <miles@gnu.org> | 2006-04-09 00:38:22 +0000 |
---|---|---|
committer | Miles Bader <miles@gnu.org> | 2006-04-09 00:38:22 +0000 |
commit | 49d395cd57e646162e7f646a8561a416abacac82 (patch) | |
tree | d7fabed45dfc19d6bff30024f82613f372b97951 /lib-src/fakemail.c | |
parent | b6828792a25d042ede1ed164389531e30cc3e202 (diff) | |
parent | 1b155fbd766b0a0f78fca5de62dd16a3542883f1 (diff) | |
download | emacs-49d395cd57e646162e7f646a8561a416abacac82.tar.gz |
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-54
Merge from emacs--devo--0
Patches applied:
* emacs--devo--0 (patch 190-203)
- Update from CVS
- Undo incorrect merge of etc/images/README from Gnus 5.10
- Merge from gnus--rel--5.10
* gnus--rel--5.10 (patch 74-80)
- Update from CVS
- Update from CVS: README: Addition from 5.10.6 tar ball.
Diffstat (limited to 'lib-src/fakemail.c')
-rw-r--r-- | lib-src/fakemail.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/lib-src/fakemail.c b/lib-src/fakemail.c index 2c2b462e366..6b8634f34ab 100644 --- a/lib-src/fakemail.c +++ b/lib-src/fakemail.c @@ -53,7 +53,6 @@ main () #include "ntlib.h" #endif -#include <limits.h> #include <stdio.h> #include <string.h> #include <ctype.h> @@ -71,15 +70,13 @@ main () #define true 1 #define false 0 -/* True if TM_YEAR is a struct tm's tm_year value that is acceptable - to asctime. Glibc asctime returns a useful string unless TM_YEAR - is nearly INT_MAX, but the C Standard lets C libraries overrun a - buffer if TM_YEAR needs more than 4 bytes. */ -#ifdef __GLIBC__ -# define TM_YEAR_IN_ASCTIME_RANGE(tm_year) ((tm_year) <= INT_MAX - 1900) -#else +#define TM_YEAR_BASE 1900 + +/* Nonzero if TM_YEAR is a struct tm's tm_year value that causes + asctime to have well-defined behavior. */ +#ifndef TM_YEAR_IN_ASCTIME_RANGE # define TM_YEAR_IN_ASCTIME_RANGE(tm_year) \ - (-999 - 1900 <= (tm_year) && (tm_year) <= 9999 - 1900) + (1000 - TM_YEAR_BASE <= (tm_year) && (tm_year) <= 9999 - TM_YEAR_BASE) #endif /* Various lists */ @@ -378,9 +375,9 @@ make_file_preface () Don't use 'ctime', as that might dump core if the hardware clock is set to a bizarre value. */ tm = localtime (&idiotic_interface); - if (! (tm && TM_YEAR_IN_ASCTIME_RANGE (tm->tm_year))) + if (! (tm && TM_YEAR_IN_ASCTIME_RANGE (tm->tm_year) + && (the_date = asctime (tm)))) fatal ("current time is out of range", 0); - the_date = asctime (tm); /* the_date has an unwanted newline at the end */ date_length = strlen (the_date) - 1; the_date[date_length] = '\0'; |