This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Generalize macro and move to handy.h
[perl5.git] / time64.h
index 329d425..c065766 100644 (file)
--- a/time64.h
+++ b/time64.h
@@ -1,14 +1,14 @@
 #include <time.h>
 #include "time64_config.h"
 
-#ifndef TIME64_H
-#    define TIME64_H
+#ifndef PERL_TIME64_H_
+#    define PERL_TIME64_H_
 
 
 /* Set our custom types */
 typedef INT_64_T        Int64;
 typedef Int64           Time64_T;
-typedef Int64           Year;
+typedef I32             Year;
 
 
 /* A copy of the tm struct but with a 64 bit year */
@@ -28,11 +28,15 @@ struct TM64 {
 #endif
 
 #ifdef HAS_TM_TM_ZONE
-#  ifdef __GLIBC__
-        const char    *tm_zone;
-#  else
-        char    *tm_zone;
+/* If glibc is defined or we are on QNX, use const.
+ * Otherwise, if we are on android, use const but
+ * not with g++.
+ */
+#  if defined(__GLIBC__) || (defined(__ANDROID__) && !defined(__cplusplus)) \
+    || defined(__QNX__) || defined(__CYGWIN__)
+        const
 #  endif
+        char    *tm_zone;
 #endif
 };
 
@@ -45,22 +49,21 @@ struct TM64 {
 #endif
 
 
-/* Declare public functions */
-struct TM *gmtime64_r    (const Time64_T *, struct TM *);
-struct TM *localtime64_r (const Time64_T *, struct TM *);
-Time64_T   timegm64      (struct TM *);
+/* Declare functions */
+struct TM *Perl_gmtime64_r    (const Time64_T *, struct TM *);
+struct TM *Perl_localtime64_r (const Time64_T *, struct TM *);
 
 
 /* Not everyone has gm/localtime_r(), provide a replacement */
 #ifdef HAS_LOCALTIME_R
 #    define LOCALTIME_R(clock, result) (L_R_TZSET localtime_r(clock, result))
 #else
-#    define LOCALTIME_R(clock, result) (L_R_TZSET fake_localtime_r(clock, result))
+#    define LOCALTIME_R(clock, result) (L_R_TZSET S_localtime_r(clock, result))
 #endif
 #ifdef HAS_GMTIME_R
 #    define GMTIME_R(clock, result)    gmtime_r(clock, result)
 #else
-#    define GMTIME_R(clock, result)    fake_gmtime_r(clock, result)
+#    define GMTIME_R(clock, result)    S_gmtime_r(clock, result)
 #endif
 
 #endif