summaryrefslogtreecommitdiff
path: root/lib-src
diff options
context:
space:
mode:
authorKaroly Lorentey <lorentey@elte.hu>2006-04-10 14:52:24 +0000
committerKaroly Lorentey <lorentey@elte.hu>2006-04-10 14:52:24 +0000
commite349ae3b6b6db99d11321622fadff88bc42c1125 (patch)
tree7a24a5dad70d4b3695f227681fc37e179551d24a /lib-src
parent2518de51d20e848711c712f5030e8c207a4e2840 (diff)
parent4f07f2e8a5458758dcf2bfbdf9b0cf8c91a8572e (diff)
downloademacs-e349ae3b6b6db99d11321622fadff88bc42c1125.tar.gz
Merged from
Patches applied: * emacs@sv.gnu.org/emacs--devo--0--patch-188 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-189 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-190 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-191 Undo incorrect merge of etc/images/README from Gnus 5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-192 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-193 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-194 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-195 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-196 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-197 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-198 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-199 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-200 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-201 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-202 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-203 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-204 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-205 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-206 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-73 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-74 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-75 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-76 Update from CVS: README: Addition from 5.10.6 tar ball. * emacs@sv.gnu.org/gnus--rel--5.10--patch-77 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-78 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-79 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-80 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-547
Diffstat (limited to 'lib-src')
-rw-r--r--lib-src/ChangeLog10
-rw-r--r--lib-src/README2
-rw-r--r--lib-src/b2m.c19
-rw-r--r--lib-src/fakemail.c19
4 files changed, 27 insertions, 23 deletions
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog
index 72ff56c2dfd..a38c0cb6770 100644
--- a/lib-src/ChangeLog
+++ b/lib-src/ChangeLog
@@ -1,3 +1,13 @@
+2006-04-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ * b2m.c (main): Don't include <limits.h>.
+ (TM_YEAR_BASE): New macro.
+ (TM_YEAR_IN_ASCTIME_RANGE): Don't define if already defined, so
+ that s/ files can override this. Use the more-conservative range
+ 1000-9999.
+ (main): Check for asctime returning NULL.
+ * fakemail.c: Likewise.
+
2006-03-27 Paul Eggert <eggert@cs.ucla.edu>
* b2m.c: Include <limits.h>.
diff --git a/lib-src/README b/lib-src/README
index 4d29931a6e9..693b5be74cb 100644
--- a/lib-src/README
+++ b/lib-src/README
@@ -1,3 +1,3 @@
This directory contains the source code for the architecture-dependent
files that go in ${archlibdir}. At present, these are mostly utility
-programs used by Emacs.
+programs used by GNU Emacs.
diff --git a/lib-src/b2m.c b/lib-src/b2m.c
index adaa736bcd9..a3ab9a5bb9a 100644
--- a/lib-src/b2m.c
+++ b/lib-src/b2m.c
@@ -26,7 +26,6 @@
#undef static
#endif
-#include <limits.h>
#include <stdio.h>
#include <time.h>
#include <sys/types.h>
@@ -45,15 +44,13 @@
typedef int logical;
-/* 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
/*
@@ -148,9 +145,9 @@ main (argc, argv)
Don't use 'ctime', as that might dump core if the hardware clock
is set to a bizarre value. */
tm = localtime (&ltoday);
- if (! (tm && TM_YEAR_IN_ASCTIME_RANGE (tm->tm_year)))
+ if (! (tm && TM_YEAR_IN_ASCTIME_RANGE (tm->tm_year)
+ && (today = asctime (tm))))
fatal ("current time is out of range");
- today = asctime (tm);
data.size = 200;
data.buffer = xnew (200, char);
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';