]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/src/cmd/seconds.c
cc, ?[acl]: fix gethunk() and move common memory allocator code to cc/compat
[plan9front.git] / sys / src / cmd / seconds.c
index d6718ffa703780bb7f6df2aaf2f25927cd5691e5..69e243301a0e8e70682e54ba83d0d9bb484724ae 100644 (file)
@@ -102,8 +102,6 @@ tryabsdate(char **fields, int nf, Tm *now, Tm *tm)
 {
        int i, mer = HR24, bigval = -1;
        long flg = 0, ty;
-       char *p;
-       char upzone[32];
        Datetok *tp;
 
        now = localtime(time(0));       /* default to local time (zone) */
@@ -143,13 +141,9 @@ tryabsdate(char **fields, int nf, Tm *now, Tm *tm)
                        break;
                case Dtz:
                case Tz:
+                       /* tm2sec mangles timezones, so we do our own handling */
                        tm->tzoff = FROMVAL(tp);
-                       /* tm2sec needs the name in upper case */
-                       strcpy(upzone, fields[i]);
-                       for (p = upzone; *p; p++)
-                               if (isascii(*p) && islower(*p))
-                                       *p = toupper(*p);
-                       strncpy(tm->zone, upzone, sizeof tm->zone);
+                       snprint(tm->zone, sizeof(tm->zone), "GMT");
                        break;
                case Ignore:
                        break;
@@ -216,7 +210,7 @@ seconds(char *timestr)
        memset(&date, 0, sizeof date);
        if (prsabsdate(timestr, localtime(time(0)), &date) < 0)
                return -1;
-       return validtm(&date)? tm2sec(&date): -1;
+       return validtm(&date)? tm2sec(&date) - 60*date.tzoff: -1;
 }
 
 int