summaryrefslogtreecommitdiff
path: root/lib-src/fakemail.c
diff options
context:
space:
mode:
authorMiles Bader <miles@gnu.org>2006-04-09 00:38:22 +0000
committerMiles Bader <miles@gnu.org>2006-04-09 00:38:22 +0000
commit49d395cd57e646162e7f646a8561a416abacac82 (patch)
treed7fabed45dfc19d6bff30024f82613f372b97951 /lib-src/fakemail.c
parentb6828792a25d042ede1ed164389531e30cc3e202 (diff)
parent1b155fbd766b0a0f78fca5de62dd16a3542883f1 (diff)
downloademacs-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.c19
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';