From 909023625237d1767dbbf77758731f5a3f138ff4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?=
 <grubba@grubba.org>
Date: Mon, 10 Jun 2013 16:50:15 +0200
Subject: [PATCH] Calendar.Timezone: Make compile() reentrant.

Each time compile() was called an additional set of rules
was appended. This could be triggered when a zone had
compilation errors.

Also fixes issue with throwing broken errors from compile().
---
 lib/modules/Calendar.pmod/Timezone.pmod | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/modules/Calendar.pmod/Timezone.pmod b/lib/modules/Calendar.pmod/Timezone.pmod
index cc60cdcac1..a7c11de6b5 100644
--- a/lib/modules/Calendar.pmod/Timezone.pmod
+++ b/lib/modules/Calendar.pmod/Timezone.pmod
@@ -1186,6 +1186,7 @@ class Runtime_timezone_compiler
        float t1=time(t);
 #endif
 
+       rules = ({});
        foreach(lines, string line) add(line);
 
        string c=dump();
@@ -1206,7 +1207,7 @@ class Runtime_timezone_compiler
        {
 	 int i=0; 
 	 foreach (c/"\n",string line) write("%2d: %s\n",++i,line);
-	 error(err);
+	 throw(err);
        }
        object zo=p();
        if (zo->thezone) zo=zo->thezone;
-- 
GitLab