Sorry for the extraordinarily long-winded email the first time around.
The attached patch seems to fix the problem:

d...@kili:~/tr/scheme$ export TZ=EST5EDT
d...@kili:~/tr/scheme$ csi -q t.scm
#,(date 392000000 9 4 2 13 9 2009 -14400 EDT #t #f #f #f)
Sun Sep 13 02:04:09-0400 2009
d...@kili:~/tr/scheme$ export TZ=EST5
d...@kili:~/tr/scheme$ csi -q t.scm
#,(date 612000000 21 4 1 13 9 2009 -18000 EST #f #f #f #f)
Sun Sep 13 01:04:21-0500 2009
d...@kili:~/tr/scheme$ export TZ=XXX0
d...@kili:~/tr/scheme$ csi -q t.scm
#,(date 871000000 27 7 6 13 9 2009 0 XXX #f #f #f #f)
Sun Sep 13 06:07:27Z 2009
d...@kili:~/tr/scheme$ export TZ=GMT0BDT
d...@kili:~/tr/scheme$ csi -q t.scm
#,(date 15000000 50 7 7 13 9 2009 3600 BDT #t #f #f #f)
Sun Sep 13 07:07:50+0100 2009
d...@kili:~/tr/scheme$ export TZ=GST-1GDT
d...@kili:~/tr/scheme$ csi -q t.scm
#,(date 509000000 13 8 8 13 9 2009 7200 GDT #t #f #f #f)
Sun Sep 13 08:08:13+0200 2009
d...@kili:~/tr/scheme$ cat t.scm
(use srfi-19)
(print (current-date))
(print (date->string (current-date)))
(exit)

dnm
--- locale-posix.scm.~1~        Mon Sep  7 19:41:41 2009
+++ locale-posix.scm    Sun Sep 13 07:58:41 2009
@@ -149,7 +149,7 @@
                       (let* ((o-m (next-match offset-re))
                              (off (if o-m (hms->offset (cadr o-m) (cddr o-m))
                                       ;XXX What does "ahead" mean?
-                                      (+ (timezone-component-ref tz 
'std-offset) SEC/HR) ) ) )
+                                      (- (timezone-component-ref tz 
'std-offset) SEC/HR) ) ) )
                         (set-timezone-component! tz 'dst-name (cadr n-m))
                         (set-timezone-component! tz 'dst-offset off)
                         ; Rule, if present, must be complete
_______________________________________________
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to