]> diplodocus.org Git - nmh/blobdiff - sbr/dtime.c
Editing of man/pick.man.
[nmh] / sbr / dtime.c
index 7ec75511a38928b7c635ffeb86ebd88185aa0e75..89f5dde8ec96d74c1ffc795281a48ce2e7006327 100644 (file)
 #include <time.h>
 
 #if !defined(HAVE_STRUCT_TM_TM_GMTOFF)
-extern int daylight;
 extern long timezone;
-extern char *tzname[];
-#endif
-
-#ifndef        abs
-# define abs(a) (a >= 0 ? a : -a)
 #endif
 
 /*
@@ -114,7 +108,14 @@ dlocaltime (time_t *clock)
     if (tm->tm_isdst)                  /* if DST is in effect */
        tw.tw_zone -= 60;               /* reset to normal offset */
 #else
-    tzset();
+    {
+        static bool deja_vu;
+
+        if (!deja_vu) {
+            deja_vu = true;
+            tzset();
+        }
+    }
     tw.tw_zone = -(timezone / 60);
 #endif
 
@@ -238,9 +239,9 @@ dtime (time_t *clock, int alpha_timezone)
     if (alpha_timezone)
        /* use alpha-numeric timezones */
        return dasctime (dlocaltime (clock), TW_NULL);
-    else
-       /* use numeric timezones */
-       return dasctime (dlocaltime (clock), TW_ZONE);
+
+    /* use numeric timezones */
+    return dasctime (dlocaltime (clock), TW_ZONE);
 }
 
 
@@ -286,7 +287,10 @@ dasctime (struct tws *tw, int flags)
 
 
 /*
- * Get the timezone for given offset
+ * Get the timezone for given offset.
+ * This used to return a three-letter abbreviation for some offset
+ * values.  But not many.  Until there's a good way to do that,
+ * return the string representation of the numeric offset.
  */
 
 char *
@@ -303,11 +307,6 @@ dtimezone (int offset, int flags)
        hours = offset / 60;
     }
 
-    if (!(flags & TW_ZONE) && mins == 0) {
-       tzset();
-       return ((flags & TW_DST) ? tzname[1] : tzname[0]);
-    }
-
 #ifdef ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST
     if (flags & TW_DST)
        hours += 1;
@@ -410,20 +409,6 @@ void
 twscopy (struct tws *tb, struct tws *tw)
 {
     *tb = *tw;  /* struct copy */
-
-#if 0
-    tb->tw_sec   = tw->tw_sec;
-    tb->tw_min   = tw->tw_min;
-    tb->tw_hour  = tw->tw_hour;
-    tb->tw_mday  = tw->tw_mday;
-    tb->tw_mon   = tw->tw_mon;
-    tb->tw_year  = tw->tw_year;
-    tb->tw_wday  = tw->tw_wday;
-    tb->tw_yday  = tw->tw_yday;
-    tb->tw_zone  = tw->tw_zone;
-    tb->tw_clock = tw->tw_clock;
-    tb->tw_flags = tw->tw_flags;
-#endif
 }