guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gmtime tm_zone


From: Kevin Ryde
Subject: gmtime tm_zone
Date: Thu, 04 Mar 2004 07:12:49 +1000
User-agent: Gnus/5.110002 (No Gnus v0.2) Emacs/21.3 (gnu/linux)

        * stime.c (scm_gmtime): Return bd_time->tm_zone when available, rather
        than "GMT" always.

On glibc tm_zone is "GMT", so this is no change there.  But I'm
inclined to think that if scm_gmtime is designed to return what
gmtime() returns then it should take care to give back whatever zone
name the latter has indicated.

--- stime.c.~1.84.~     2004-02-18 09:38:38.000000000 +1000
+++ stime.c     2004-03-03 10:11:33.000000000 +1000
@@ -255,7 +255,7 @@
 #undef FUNC_NAME
 
 static SCM
-filltime (struct tm *bd_time, int zoff, char *zname)
+filltime (struct tm *bd_time, int zoff, const char *zname)
 {
   SCM result = scm_c_make_vector (11, SCM_UNDEFINED);
 
@@ -405,6 +405,7 @@
   timet itime;
   struct tm *bd_time;
   SCM result;
+  const char *zname;
 
   itime = SCM_NUM2LONG (1, time);
   SCM_DEFER_INTS;
@@ -414,7 +415,12 @@
   bd_time = gmtime (&itime);
   if (bd_time == NULL)
     SCM_SYSERROR;
-  result = filltime (bd_time, 0, "GMT");
+#if HAVE_STRUCT_TM_TM_ZONE
+  zname = bd_time->tm_zone;
+#else
+  zname = "GMT";
+#endif
+  result = filltime (bd_time, 0, zname);
   SCM_ALLOW_INTS;
   return result;
 }

reply via email to

[Prev in Thread] Current Thread [Next in Thread]