[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 6d12e7a: Improve port to NetBSD tzalloc
From: |
Paul Eggert |
Subject: |
[Emacs-diffs] master 6d12e7a: Improve port to NetBSD tzalloc |
Date: |
Mon, 19 Mar 2018 19:49:48 -0400 (EDT) |
branch: master
commit 6d12e7af88b8287b8dd520aa3a3470f7f112cfe0
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>
Improve port to NetBSD tzalloc
Problem reported by Valery Ushakov (Bug#30738#22).
* src/editfns.c (HAVE_TZALLOC_BUG): New macro.
(tzlookup): Use it. Compile on all platforms, not just on NetBSD.
---
src/editfns.c | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/src/editfns.c b/src/editfns.c
index cb7353a..7e35fe8 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -48,6 +48,16 @@ along with GNU Emacs. If not, see
<https://www.gnu.org/licenses/>. */
#include <float.h>
#include <limits.h>
+#ifdef HAVE_TIMEZONE_T
+# include <sys/param.h>
+# if defined __NetBSD_Version__ && __NetBSD_Version__ < 700000000
+# define HAVE_TZALLOC_BUG true
+# endif
+#endif
+#ifndef HAVE_TZALLOC_BUG
+# define HAVE_TZALLOC_BUG false
+#endif
+
#include <c-ctype.h>
#include <intprops.h>
#include <stdlib.h>
@@ -205,16 +215,14 @@ tzlookup (Lisp_Object zone, bool settz)
new_tz = tzalloc (zone_string);
-#if defined __NetBSD_Version__ && __NetBSD_Version__ < 700000000
- /* NetBSD 6 tzalloc mishandles POSIX TZ strings (Bug#30738).
- If possible, fall back on tzdb. */
- if (!new_tz && errno != ENOMEM && plain_integer
+ if (HAVE_TZALLOC_BUG && !new_tz && errno != ENOMEM && plain_integer
&& XINT (zone) % (60 * 60) == 0)
{
+ /* tzalloc mishandles POSIX strings; fall back on tzdb if
+ possible (Bug#30738). */
sprintf (tzbuf, "Etc/GMT%+"pI"d", - (XINT (zone) / (60 * 60)));
new_tz = tzalloc (zone_string);
}
-#endif
if (!new_tz)
{
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master 6d12e7a: Improve port to NetBSD tzalloc,
Paul Eggert <=