Switch to side-by-side view

--- a/src/utils/smallut.cpp
+++ b/src/utils/smallut.cpp
@@ -995,12 +995,47 @@
     return true;
 }
 
+#ifdef _WIN32
+int setenv(const char *name, const char *value, int overwrite)
+{
+    if(!overwrite) {
+        const char *cp = getenv(name);
+        if (cp)
+            return -1;
+    }
+    return _putenv_s(name, value);
+}
+void unsetenv(const char *name)
+{
+    _putenv_s(name, "");
+}
+#endif
+
+time_t portable_timegm(struct tm *tm)
+{
+    time_t ret;
+    char *tz;
+
+    tz = getenv("TZ");
+    setenv("TZ", "", 1);
+    tzset();
+    ret = mktime(tm);
+    if (tz)
+        setenv("TZ", tz, 1);
+    else
+        unsetenv("TZ");
+    tzset();
+    return ret;
+}
+
+#if 0
 static void cerrdip(const string& s, DateInterval *dip)
 {
     cerr << s << dip->y1 << "-" << dip->m1 << "-" << dip->d1 << "/"
          << dip->y2 << "-" << dip->m2 << "-" << dip->d2 
          << endl;
 }
+#endif
 
 // Compute date + period. Won't work out of the unix era. 
 // or pre-1970 dates. Just convert everything to unixtime and
@@ -1015,13 +1050,8 @@
     tm.tm_year = dp->y1 - 1900 + pp->y1;
     tm.tm_mon = dp->m1 + pp->m1 -1;
     tm.tm_mday = dp->d1 + pp->d1;
-#ifdef sun
     time_t tres = mktime(&tm);
     localtime_r(&tres, &tm);
-#else
-    time_t tres = timegm(&tm);
-    gmtime_r(&tres, &tm);
-#endif
     dp->y1 = tm.tm_year + 1900;
     dp->m1 = tm.tm_mon + 1;
     dp->d1 = tm.tm_mday;