diff options
Diffstat (limited to 'timezone.scm')
-rw-r--r-- | timezone.scm | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/timezone.scm b/timezone.scm index 2890c39..a9149e3 100644 --- a/timezone.scm +++ b/timezone.scm @@ -19,14 +19,14 @@ ;; The C-library support for time in general and time-zones in particular ;; stands as a fine example of how *not* to create interfaces. -;; +;; ;; Functions are not consistently named. Support for GMT is offered in one ;; direction only; The localtime function returns some timezone data in the ;; structure which it returns, and some data in shared global variables. ;; The structure which localtime returns is overwritten with each ;; invocation. There is no way to find local time in zones other than GMT ;; and the local timezone. -;; +;; ;; The tzfile(5) format encodes only a single timezone per file. There is ;; no dispatch on zone names, so multiple copies of a timezone file exist ;; under different names. The TZ `:' specification is unix filesystem @@ -35,14 +35,14 @@ ;; ASCII bytes, it is incompatible with different character sizes. The ;; binary format makes it impossible to easily inspect a file for ;; corruption. -;; +;; ;; I have corrected most of the failings of the C-library time interface in ;; SLIB while maintaining compatablility. I wrote support for Linux ;; timezone files because on a system where TZ is not set, there is no ;; other way to reveal this information. HP-UX appears to have a more ;; sensible arrangement; I invite you to add support for it and other ;; platforms. -;; +;; ;; Writing this was a long, tedious, and unenlightening process. I hope it ;; is useful. ;; @@ -60,7 +60,10 @@ ;;; This definition is here so that READ-TZFILE can verify the ;;; existence of these files before loading tzfile.scm to actually ;;; read them. -(define tzfile:vicinity (make-vicinity "/usr/lib/zoneinfo/")) +(define tzfile:vicinity (make-vicinity + (if (file-exists? "/usr/share/zoneinfo/.") + "/usr/share/zoneinfo/" + "/usr/lib/zoneinfo/"))) (define (read-tzfile path) (let ((realpath |