git.fiddlerwoaroof.com
Browse code

fix: make tz initing actually correct

Edward Langley authored on 05/05/2023 06:53:10
Showing 1 changed files
... ...
@@ -65,11 +65,14 @@
65 65
   (declare (optimize (debug 3)))
66 66
   (let ((tz-inited nil))
67 67
     (flet ((init-tz ()
68
-             (unless tz-inited
69
-               (handler-case (local-time:find-timezone-by-location-name "America/Los_Angeles")
70
-                 (error ()
71
-                   (local-time:reread-timezone-repository)
72
-                   (setf tz-inited t))))))
68
+             (handler-case (unless (or tz-inited
69
+                                       (local-time:find-timezone-by-location-name
70
+                                        "America/Los_Angeles"))
71
+                             (:printv "asdf")
72
+                             (local-time:reread-timezone-repository))
73
+               (error ()
74
+                 (local-time:reread-timezone-repository)
75
+                 (setf tz-inited t)))))
73 76
 
74 77
       (macrolet ((ensure-tz-inited (&body body)
75 78
                    `(progn (init-tz)
... ...
@@ -77,13 +80,13 @@
77 80
         (let* ((last-space (position #\space date-str :from-end t))
78 81
                (tz-name (check (all-alpha (subseq date-str (1+ last-space)))))
79 82
                (timestamp-raw (if tz-name
80
-                                (subseq date-str 0 last-space)
81
-                                date-str)))
83
+                                  (subseq date-str 0 last-space)
84
+                                  date-str)))
82 85
           (values (if tz-name
83
-                    (ensure-tz-inited
84
-                      (local-time:find-timezone-by-location-name
86
+                      (ensure-tz-inited
87
+                       (local-time:find-timezone-by-location-name
85 88
                         (string-upcase tz-name)))
86
-                    local-time:+utc-zone+)
89
+                      local-time:+utc-zone+)
87 90
                   timestamp-raw))))))
88 91
 
89 92
 (defun get-date (str)