* NEWS: Mention this.
* zic.c (outzone): Omit an incorrect use of ‘useuntil’.
This fixes a bug in 2023-10-15’s “Fix zic bug with Palestine after
2075” (commit 35c116b7536a36c43eb7cd36bff71ad0c5ecf071), which
caused zic to mess up if the last transition is to a new time type.
This patch does not affect any TZif files generated by current tzdata.
This artificial input illustrates the bug:
        Rule Canada 2007 max - Mar Sun>=8 2:00 1:00 D
        Rule Canada 2007 max - Nov Sun>=1 2:00 0    S
        Zone America/Vancouver  -8:00 -      PST  2026 Mar 9
                                -8:00 Canada P%sT 2026 Nov 1 02:00
                                -7:00 -      MST
Without the fix, zic generates a nonconforming TZif file that omits
the last transition even though the trailing TZ string is "MST7".
---
 NEWS  | 7 +++++++
 zic.c | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/NEWS b/NEWS
index 267e62da..d7bf5a3c 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,9 @@ News for the tz database
 
 Unreleased, experimental changes
 
+  Briefly:
+    British Columbia moves to permanent -07 on 2026-03-09.
+
   Changes to future timestamps
 
     British Columbia's 2026-03-08 spring forward will be its last
@@ -12,6 +15,10 @@ Unreleased, experimental changes
     a limitation in CLDR v48.1 (2026-01-08).  This temporary hack is
     planned to be removed after CLDR is fixed.
 
+  Changes to code
+
+    zic no longer mishandles a last transition to a new time type.
+
 
 Release 2026a - 2026-03-01 22:59:49 -0800
 
diff --git a/zic.c b/zic.c
index c10be426..225ad419 100644
--- a/zic.c
+++ b/zic.c
@@ -3522,7 +3522,7 @@ outzone(const struct zone *zpfirst, ptrdiff_t zonecount)
                                startttisut);
                        if (usestart) {
                                addtt(starttime, type);
-                               if (useuntil && nonTZlimtime < starttime) {
+                               if (nonTZlimtime < starttime) {
                                  nonTZlimtime = starttime;
                                  nonTZlimtype = type;
                                }
-- 
2.51.0

Reply via email to