[tz] [PROPOSED 1/7] Port better to C23 bool

Paul Eggert eggert at cs.ucla.edu
Thu Oct 20 19:44:00 UTC 2022


* private.h (HAVE_STDBOOL_H): Remove.
(true, false, bool): Simply rely on __STDC_VERSION__.  There’s no
longer need to treat pre-C99 compilers with <stdbool.h> specially,
as they can be treated as if they lack <stdbool.h>.
---
 Makefile  |  1 -
 NEWS      |  3 +++
 private.h | 10 +++-------
 3 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/Makefile b/Makefile
index 156840e..afe7af7 100644
--- a/Makefile
+++ b/Makefile
@@ -223,7 +223,6 @@ LDLIBS=
 #  -DHAVE_POSIX_DECLS=0 if your system's include files do not declare
 #	functions like 'link' or variables like 'tzname' required by POSIX
 #  -DHAVE_SNPRINTF=0 if your system lacks the snprintf function
-#  -DHAVE_STDBOOL_H if you have a non-C99 compiler with <stdbool.h>
 #  -DHAVE_STDINT_H if you have a non-C99 compiler with <stdint.h>
 #  -DHAVE_STRFTIME_L if <time.h> declares locale_t and strftime_l
 #  -DHAVE_STRDUP=0 if your system lacks the strdup function
diff --git a/NEWS b/NEWS
index 164ab95..16f454c 100644
--- a/NEWS
+++ b/NEWS
@@ -37,6 +37,9 @@ Unreleased, experimental changes
     number 2438 comes from the 32-bit limit in the year 2038, plus the
     400-year Gregorian cycle.  (Problem reported by Bradley White.)
 
+    Take advantage of the following C23 features if available:
+    bool/true/false keywords.
+
 
 Release 2022e - 2022-10-11 11:13:02 -0700
 
diff --git a/private.h b/private.h
index 9c31ec5..058d3c0 100644
--- a/private.h
+++ b/private.h
@@ -74,10 +74,6 @@
 # define HAVE_POSIX_DECLS 1
 #endif
 
-#ifndef HAVE_STDBOOL_H
-# define HAVE_STDBOOL_H (199901 <= __STDC_VERSION__)
-#endif
-
 #ifndef HAVE_STRDUP
 # define HAVE_STRDUP 1
 #endif
@@ -623,12 +619,12 @@ time_t time2posix_z(timezone_t, time_t) ATTRIBUTE_PURE;
 ** Finally, some convenience items.
 */
 
-#if HAVE_STDBOOL_H
-# include <stdbool.h>
-#else
+#if __STDC_VERSION__ < 199901
 # define true 1
 # define false 0
 # define bool int
+#elif __STDC_VERSION__ < 202311
+# include <stdbool.h>
 #endif
 
 #define TYPE_BIT(type)	(sizeof(type) * CHAR_BIT)
-- 
2.37.3



More information about the tz mailing list