about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-10-01 16:09:12 +0000
committerUlrich Drepper <drepper@redhat.com>1999-10-01 16:09:12 +0000
commita7123f0edfea20a68e64e447dc6ca0c32736be0e (patch)
tree4c9b8434f534faa5a8330f250c8ec296a123818c
parent9133b79b4fae126bbcd95dad6f2cac68329c8ff3 (diff)
downloadglibc-a7123f0edfea20a68e64e447dc6ca0c32736be0e.tar.gz
glibc-a7123f0edfea20a68e64e447dc6ca0c32736be0e.tar.xz
glibc-a7123f0edfea20a68e64e447dc6ca0c32736be0e.zip
Update.
1999-10-01  Andreas Jaeger  <aj@suse.de>

	* locale/programs/ld-collate.c (insert_value): Add cast to avoid
	warning.
	* intl/finddomain.c (_nl_find_domain): Likewise.

1999-09-30  Andreas Schwab  <schwab@suse.de>

	* sysdeps/unix/sysv/linux/alpha/ioperm.c: Disable debug messages.

1999-09-30  Andreas Jaeger  <aj@suse.de>

	* sysdeps/i386/lshift.S: Correct assembler commands to fix warnings.
	* sysdeps/i386/rshift.S: Likewise.
	* sysdeps/i386/strchrnul.S: Likewise.
	* sysdeps/i386/strchr.S: Likewise.
	Patch by Michael Deutschmann <michael@talamasca.wkpowerlink.com>,
	PR libc/1339.

1999-09-30  Andreas Jaeger  <aj@suse.de>

	* manual/examples/pipe.c: Close other end of pipe to make example work.

1999-10-01  Ulrich Drepper  <drepper@cygnus.com>

	* timezone/checktab.awk: Update from tzcode1999g.
	* timezone/tzselect.ksh: Likewise.
	* timezone/africa: Update from tzdata1999g.
	* timezone/asia: Likewise.
	* timezone/australasia: Likewise.
	* timezone/europe: Likewise.
	* timezone/northamerica: Likewise.
	* timezone/southamerica: Likewise.
	* timezone/iso3166.tab: Likewise.
	* timezone/zone.tab: Likewise.

	been renamed to getipnodebyname.  Move flags around.
-rw-r--r--ChangeLog38
-rw-r--r--intl/finddomain.c2
-rw-r--r--locale/programs/ld-collate.c2
-rw-r--r--manual/examples/pipe.c18
-rw-r--r--sysdeps/i386/lshift.S4
-rw-r--r--sysdeps/i386/rshift.S4
-rw-r--r--sysdeps/i386/strchr.S8
-rw-r--r--sysdeps/i386/strchrnul.S6
-rw-r--r--sysdeps/unix/sysv/linux/alpha/ioperm.c18
-rw-r--r--timezone/africa4
-rw-r--r--timezone/asia55
-rw-r--r--timezone/australasia225
-rw-r--r--timezone/checktab.awk17
-rw-r--r--timezone/europe36
-rw-r--r--timezone/iso3166.tab2
-rw-r--r--timezone/northamerica36
-rw-r--r--timezone/southamerica15
-rw-r--r--timezone/tzselect.ksh17
-rw-r--r--timezone/zone.tab9
19 files changed, 339 insertions, 177 deletions
diff --git a/ChangeLog b/ChangeLog
index 433d567eef..5aa6ce80f6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,43 @@
+1999-10-01  Andreas Jaeger  <aj@suse.de>
+
+	* locale/programs/ld-collate.c (insert_value): Add cast to avoid
+	warning.
+	* intl/finddomain.c (_nl_find_domain): Likewise.
+
+1999-09-30  Andreas Schwab  <schwab@suse.de>
+
+	* sysdeps/unix/sysv/linux/alpha/ioperm.c: Disable debug messages.
+
+1999-09-30  Andreas Jaeger  <aj@suse.de>
+
+	* sysdeps/i386/lshift.S: Correct assembler commands to fix warnings.
+	* sysdeps/i386/rshift.S: Likewise.
+	* sysdeps/i386/strchrnul.S: Likewise.
+	* sysdeps/i386/strchr.S: Likewise.
+	Patch by Michael Deutschmann <michael@talamasca.wkpowerlink.com>,
+	PR libc/1339.
+
+1999-09-30  Andreas Jaeger  <aj@suse.de>
+
+	* manual/examples/pipe.c: Close other end of pipe to make example work.
+
+1999-10-01  Ulrich Drepper  <drepper@cygnus.com>
+
+	* timezone/checktab.awk: Update from tzcode1999g.
+	* timezone/tzselect.ksh: Likewise.
+	* timezone/africa: Update from tzdata1999g.
+	* timezone/asia: Likewise.
+	* timezone/australasia: Likewise.
+	* timezone/europe: Likewise.
+	* timezone/northamerica: Likewise.
+	* timezone/southamerica: Likewise.
+	* timezone/iso3166.tab: Likewise.
+	* timezone/zone.tab: Likewise.
+
 1999-09-27  Andreas Jaeger  <aj@suse.de>
 
 	* resolv/netdb.h: Remove declaration of getnodebyname.  It has
- 	been renamed to getipnodebyname.  Move flags around.
+	been renamed to getipnodebyname.  Move flags around.
 
 1999-09-27  Andreas Schwab  <schwab@suse.de>
 
diff --git a/intl/finddomain.c b/intl/finddomain.c
index c6c176ae2b..7f6d35c198 100644
--- a/intl/finddomain.c
+++ b/intl/finddomain.c
@@ -193,7 +193,7 @@ _nl_find_domain (dirname, locale, domainname)
 
   /* The space for normalized_codeset is dynamically allocated.  Free it.  */
   if (mask & XPG_NORM_CODESET)
-    free (normalized_codeset);
+    free ((void *) normalized_codeset);
 
   return retval;
 }
diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c
index fcfdc817a0..905700322f 100644
--- a/locale/programs/ld-collate.c
+++ b/locale/programs/ld-collate.c
@@ -441,7 +441,7 @@ insert_value (struct linereader *ldfile, struct token *arg,
 					     arg->val.str.startwc);
 	}
       else if (find_entry (&collate->elem_table, arg->val.str.startmb,
-			   arg->val.str.lenmb, &elem) != 0)
+			   arg->val.str.lenmb, (void **) &elem) != 0)
 	/* It's also no collation element.  Therefore ignore it.  */
 	return;
     }
diff --git a/manual/examples/pipe.c b/manual/examples/pipe.c
index 054550fec6..92d339a7b9 100644
--- a/manual/examples/pipe.c
+++ b/manual/examples/pipe.c
@@ -5,7 +5,7 @@
 
 /* Read characters from the pipe and echo them to @code{stdout}.  */
 
-void 
+void
 read_from_pipe (int file)
 {
   FILE *stream;
@@ -18,7 +18,7 @@ read_from_pipe (int file)
 
 /* Write some random text to the pipe. */
 
-void 
+void
 write_to_pipe (int file)
 {
   FILE *stream;
@@ -35,7 +35,7 @@ main (void)
   int mypipe[2];
 
 /*@group*/
-  /* Create the pipe. */
+  /* Create the pipe.  */
   if (pipe (mypipe))
     {
       fprintf (stderr, "Pipe failed.\n");
@@ -43,23 +43,27 @@ main (void)
     }
 /*@end group*/
 
-  /* Create the child process. */
+  /* Create the child process.  */
   pid = fork ();
   if (pid == (pid_t) 0)
     {
-      /* This is the child process. */
+      /* This is the child process.
+	 Close other end first.  */
+      close (mypipe[1]);
       read_from_pipe (mypipe[0]);
       return EXIT_SUCCESS;
     }
   else if (pid < (pid_t) 0)
     {
-      /* The fork failed. */
+      /* The fork failed.  */
       fprintf (stderr, "Fork failed.\n");
       return EXIT_FAILURE;
     }
   else
     {
-      /* This is the parent process. */
+      /* This is the parent process.
+	 Close other end first.  */
+      close (mypipe[0]);
       write_to_pipe (mypipe[1]);
       return EXIT_SUCCESS;
     }
diff --git a/sysdeps/i386/lshift.S b/sysdeps/i386/lshift.S
index c427ff0262..737ce3ed2b 100644
--- a/sysdeps/i386/lshift.S
+++ b/sysdeps/i386/lshift.S
@@ -1,5 +1,5 @@
 /* i80386 __mpn_lshift --
-   Copyright (C) 1992, 1994, 1997, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1992, 1994, 1997, 1998, 1999 Free Software Foundation, Inc.
    This file is part of the GNU MP Library.
 
    The GNU MP Library is free software; you can redistribute it and/or modify
@@ -47,7 +47,7 @@ ENTRY(__mpn_lshift)
 	decl	%edx
 	jz	L(end)
 	pushl	%eax			/* push carry limb onto stack */
-	testb	$1,%edx
+	testb	$1,%dl
 	jnz	L(1)			/* enter loop in the middle */
 	movl	%ebx,%eax
 
diff --git a/sysdeps/i386/rshift.S b/sysdeps/i386/rshift.S
index af8c64777b..0bb7288d31 100644
--- a/sysdeps/i386/rshift.S
+++ b/sysdeps/i386/rshift.S
@@ -1,5 +1,5 @@
 /* i80386 __mpn_rshift --
-   Copyright (C) 1992, 1994, 1997, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1992, 1994, 1997, 1998, 1999 Free Software Foundation, Inc.
    This file is part of the GNU MP Library.
 
    The GNU MP Library is free software; you can redistribute it and/or modify
@@ -49,7 +49,7 @@ ENTRY(__mpn_rshift)
 	incl	%edx
 	jz	L(end)
 	pushl	%eax			/* push carry limb onto stack */
-	testb	$1,%edx
+	testb	$1,%dl
 	jnz	L(1)			/* enter loop in the middle */
 	movl	%ebx,%eax
 
diff --git a/sysdeps/i386/strchr.S b/sysdeps/i386/strchr.S
index 69c4b145af..582c3d737a 100644
--- a/sysdeps/i386/strchr.S
+++ b/sysdeps/i386/strchr.S
@@ -1,6 +1,6 @@
 /* strchr (str, ch) -- Return pointer to first occurrence of CH in STR.
    For Intel 80x86, x>=3.
-   Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1994, 1995, 1996, 1997, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>
    Some optimisations by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
@@ -56,7 +56,7 @@ ENTRY (strchr)
 	      implementation (this is because all processor inherent
 	      boundaries are multiples of 4.  */
 
-	testb $3, %eax		/* correctly aligned ? */
+	testb $3, %al		/* correctly aligned ? */
 	jz L(11)		/* yes => begin loop */
 	movb (%eax), %cl	/* load byte in question (we need it twice) */
 	cmpb %cl, %dl		/* compare byte */
@@ -65,7 +65,7 @@ ENTRY (strchr)
 	jz L(2)			/* yes => return NULL */
 	incl %eax		/* increment pointer */
 
-	testb $3, %eax		/* correctly aligned ? */
+	testb $3, %al		/* correctly aligned ? */
 	jz L(11)		/* yes => begin loop */
 	movb (%eax), %cl	/* load byte in question (we need it twice) */
 	cmpb %cl, %dl		/* compare byte */
@@ -74,7 +74,7 @@ ENTRY (strchr)
 	jz L(2)			/* yes => return NULL */
 	incl %eax		/* increment pointer */
 
-	testb $3, %eax		/* correctly aligned ? */
+	testb $3, %al		/* correctly aligned ? */
 	jz L(11)		/* yes => begin loop */
 	movb (%eax), %cl	/* load byte in question (we need it twice) */
 	cmpb %cl, %dl		/* compare byte */
diff --git a/sysdeps/i386/strchrnul.S b/sysdeps/i386/strchrnul.S
index b99a439587..f42a69728c 100644
--- a/sysdeps/i386/strchrnul.S
+++ b/sysdeps/i386/strchrnul.S
@@ -57,7 +57,7 @@ ENTRY (__strchrnul)
 	      implementation (this is because all processor inherent
 	      boundaries are multiples of 4.  */
 
-	testb $3, %eax		/* correctly aligned ? */
+	testb $3, %al		/* correctly aligned ? */
 	jz L(11)		/* yes => begin loop */
 	movb (%eax), %cl	/* load byte in question (we need it twice) */
 	cmpb %cl, %dl		/* compare byte */
@@ -66,7 +66,7 @@ ENTRY (__strchrnul)
 	jz L(6)			/* yes => return NULL */
 	incl %eax		/* increment pointer */
 
-	testb $3, %eax		/* correctly aligned ? */
+	testb $3, %al		/* correctly aligned ? */
 	jz L(11)		/* yes => begin loop */
 	movb (%eax), %cl	/* load byte in question (we need it twice) */
 	cmpb %cl, %dl		/* compare byte */
@@ -75,7 +75,7 @@ ENTRY (__strchrnul)
 	jz L(6)			/* yes => return NULL */
 	incl %eax		/* increment pointer */
 
-	testb $3, %eax		/* correctly aligned ? */
+	testb $3, %al		/* correctly aligned ? */
 	jz L(11)		/* yes => begin loop */
 	movb (%eax), %cl	/* load byte in question (we need it twice) */
 	cmpb %cl, %dl		/* compare byte */
diff --git a/sysdeps/unix/sysv/linux/alpha/ioperm.c b/sysdeps/unix/sysv/linux/alpha/ioperm.c
index 5b2edd0482..7b38fcceea 100644
--- a/sysdeps/unix/sysv/linux/alpha/ioperm.c
+++ b/sysdeps/unix/sysv/linux/alpha/ioperm.c
@@ -436,6 +436,8 @@ static struct ioswtch ioswtch[] = {
   }
 };
 
+#undef DEBUG_IOPERM
+
 /* routine to process the /proc/cpuinfo information into the fields */
 /* that are required for correctly determining the platform parameters */
 
@@ -474,7 +476,7 @@ process_cpuinfo(void)
 
   fclose (fp);
 
-#if 1
+#ifdef DEBUG_IOPERM
   fprintf(stderr, "system type: %s\n", systype);
   fprintf(stderr, "system vari: %s\n", sysvari);
   fprintf(stderr, "cpu model: %s\n", cpumodel);
@@ -598,7 +600,7 @@ init_iosys (void)
 
   /* systype is not a know platform name... */
   __set_errno (EINVAL);
-#if 1
+#ifdef DEBUG_IOPERM
   fprintf(stderr, "init_iosys: platform not recognized\n");
 #endif
   return -1;
@@ -612,7 +614,7 @@ _ioperm (unsigned long int from, unsigned long int num, int turn_on)
   int prot, err;
 
   if (!io.swp && init_iosys() < 0) {
-#if 1
+#ifdef DEBUG_IOPERM
 	    fprintf(stderr, "ioperm: init_iosys() failed\n");
 #endif
     return -1;
@@ -622,13 +624,13 @@ _ioperm (unsigned long int from, unsigned long int num, int turn_on)
   if (from >= MAX_PORT || from + num > MAX_PORT)
     {
       __set_errno (EINVAL);
-#if 1
+#ifdef DEBUG_IOPERM
       fprintf(stderr, "ioperm: from/num out of range\n");
 #endif
       return -1;
     }
 
-#if 1
+#ifdef DEBUG_IOPERM
       fprintf(stderr, "ioperm: turn_on %d io.base %ld\n", turn_on, io.base);
 #endif
 
@@ -645,7 +647,7 @@ _ioperm (unsigned long int from, unsigned long int num, int turn_on)
 
 	  fd = open ("/dev/mem", O_RDWR);
 	  if (fd < 0) {
-#if 1
+#ifdef DEBUG_IOPERM
 	    fprintf(stderr, "ioperm: /dev/mem open failed\n");
 #endif
 	    return -1;
@@ -657,7 +659,7 @@ _ioperm (unsigned long int from, unsigned long int num, int turn_on)
 	    (unsigned long int) __mmap (0, len, PROT_NONE, MAP_SHARED,
 					fd, io.io_base);
 	  close (fd);
-#if 1
+#ifdef DEBUG_IOPERM
 	  fprintf(stderr, "ioperm: mmap of len 0x%lx  returned 0x%lx\n",
 		  len, io.base);
 #endif
@@ -678,7 +680,7 @@ _ioperm (unsigned long int from, unsigned long int num, int turn_on)
   addr &= PAGE_MASK;
   len = port_to_cpu_addr (from + num, io.swiz, 1) - addr;
   err = mprotect ((void *) addr, len, prot);
-#if 1
+#ifdef DEBUG_IOPERM
   fprintf(stderr, "ioperm: mprotect returned %d\n", err);
 #endif
   return err;
diff --git a/timezone/africa b/timezone/africa
index c728eceb0f..d5d85444e8 100644
--- a/timezone/africa
+++ b/timezone/africa
@@ -1,4 +1,4 @@
-# @(#)africa	7.30
+# @(#)africa	7.31
 
 # This data is by no means authoritative; if you think you know better,
 # go ahead and edit the file (and please send any changes to
@@ -207,7 +207,7 @@ Rule	Egypt	1989	only	-	May	 6	1:00	1:00	S
 Rule	Egypt	1990	1994	-	May	 1	1:00	1:00	S
 # IATA (after 1990) says transitions are at 0:00.
 # Go with IATA starting in 1995, except correct 1995 entry from 09-30 to 09-29.
-Rule	Egypt	1995	max	-	Apr	Fri>=22	 0:00s	1:00	S
+Rule	Egypt	1995	max	-	Apr	lastFri	 0:00s	1:00	S
 Rule	Egypt	1995	max	-	Sep	lastThu	23:00s	0	-
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
diff --git a/timezone/asia b/timezone/asia
index dc09affd2d..394877c490 100644
--- a/timezone/asia
+++ b/timezone/asia
@@ -1,4 +1,4 @@
-# @(#)asia	7.42
+# @(#)asia	7.48
 
 # This data is by no means authoritative; if you think you know better,
 # go ahead and edit the file (and please send any changes to
@@ -78,13 +78,14 @@ Zone	Asia/Kabul	4:36:48 -	LMT	1890
 			4:30	-	AFT
 
 # Armenia
-# From Paul Eggert (1998-??-??):
+# From Paul Eggert (1999-09-27):
 # Shanks has Yerevan switching to 3:00 (with Russian DST) in spring 1991,
 # but usno1995 has Armenia at 4:00 (with DST), and Edgar Der-Danieliantz
 # <edd@AIC.NET> reported (1996-05-04) that Yerevan probably wouldn't use DST
 # in 1996, though it did use DST in 1995.  IATA SSIM (1991/1998) reports that
 # Armenia switched from 3:00 to 4:00 in 1998 and observed DST after 1991,
-# but started switching at 3:00s in 1998.
+# but started switching at 3:00s in 1998.  IATA SSIM (1999-02) reports
+# that they switch one day later in 2001 (i.e. on Mondays).
 # What a mess!  We guess Yerevan DST stayed in sync with Moscow between 1990
 # and 1995, did not use DST in 1996, and started using DST again in 1997.
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -365,10 +366,10 @@ Zone Asia/Jayapura	9:22:48 -	LMT	1932 Nov
 			9:00	-	JAYT
 
 # Iran
-# From Paul Eggert (1996-12-17), following up a suggestion by Rich Wales:
+# From Paul Eggert (1999-09-27), following up a suggestion by Rich Wales:
 # Ahmea Alavi in
 # <a href="http://tehran.stanford.edu/Iran_Lib/Calendar/taghveem.txt">
-# TAGHVEEM (1993-08-04)
+# TAGHVEEM (1993-07-12)
 # </a>
 # writes ``Daylight saving time in Iran starts from the first day
 # of Farvardin and ends the first day of Mehr.''  This disagrees with the SSIM:
@@ -382,6 +383,10 @@ Zone Asia/Jayapura	9:22:48 -	LMT	1932 Nov
 #	1995	03-21	03-21	09-22!= 09-23
 #	1996	03-21!=	03-20	09-21!= 09-22
 #	1997	03-21	03-21	09-21!= 09-23
+#	1998	03-21	03-21	09-21!= 09-23
+#	1999	03-22!=	03-21	09-22!= 09-23
+#	2000	03-21!=	03-20	09-21!= 09-22
+#	2001	03-17!=	03-21	09-19!= 09-23
 #
 # Go with Alavi starting with 1992.
 # I used Ed Reingold's cal-persia in GNU Emacs 19.34 to compute Persian dates.
@@ -648,10 +653,14 @@ Zone	Asia/Tokyo	9:18:59	-	LMT	1887 Dec 31 15:00u
 # Since 1938, all Japanese possessions have been like Asia/Tokyo.
 
 # Jordan
-# From Steffen Thorsen (1999-05-08):
-# Jordan do not have DST this year.  It also seems that they are not going
-# to use it the next years either.  "We do not need it" was the answer I got
-# from the Jordan National Information Centre (http://www.nic.gov.jo).
+#
+# From
+# <a href="http://star.arabia.com/990701/JO9.html">
+# Jordan Week (1999-07-01)
+# </a> via Steffen Thorsen (1999-09-09):
+# Clocks in Jordan were forwarded one hour on Wednesday at midnight,
+# in accordance with the government's decision to implement summer time
+# all year round.
 #
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule    Jordan	1973	only	-	Jun	6	0:00	1:00	S
@@ -676,7 +685,8 @@ Rule    Jordan	1994	only	-	Sep	Fri>=15	0:00	0	-
 Rule    Jordan	1995	1998	-	Sep	Fri>=15	0:00s	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Amman	2:23:44 -	LMT	1931
-			2:00	Jordan	EE%sT
+			2:00	Jordan	EE%sT	1999 Jul
+			2:00	1:00	EEST
 
 # Kazakhstan
 # From Paul Eggert (1996-11-22):
@@ -792,7 +802,8 @@ Rule	Lebanon	1989	only	-	May	10	0:00	1:00	S
 Rule	Lebanon	1990	1992	-	May	1	0:00	1:00	S
 Rule	Lebanon	1992	only	-	Oct	4	0:00	0	-
 Rule	Lebanon	1993	max	-	Mar	lastSun	0:00	1:00	S
-Rule	Lebanon	1993	max	-	Sep	lastSun	0:00	0	-
+Rule	Lebanon	1993	1998	-	Sep	lastSun	0:00	0	-
+Rule	Lebanon	1999	max	-	Oct	lastSun	0:00	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Beirut	2:22:00 -	LMT	1880
 			2:00	Lebanon	EE%sT
@@ -934,7 +945,17 @@ Zone	Asia/Karachi	4:28:12 -	LMT	1907
 # one-hour forward at this time.  As a sign of independence from Israeli rule,
 # the PA has decided to implement DST in April.
 
-# These rules for Egypt are stolen from the `africa' file.
+# From Paul Eggert (1999-09-20):
+# Daoud Kuttab writes in
+# <a href="http://www.jpost.com/com/Archive/22.Apr.1999/Opinion/Article-2.html">
+# Holiday havoc
+# </a> (Jerusalem Post, 1999-04-22) that
+# the Palestinian National Authority changed to DST on 1999-04-15.
+# I vaguely recall that they switch back in October (sorry, forgot the source).
+# For now, let's assume that the spring switch was at 24:00,
+# and that they switch at 0:00 on the 3rd Fridays of April and October.
+
+# The rules for Egypt are stolen from the `africa' file.
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule EgyptAsia	1957	only	-	May	10	0:00	1:00	S
 Rule EgyptAsia	1957	1958	-	Oct	 1	0:00	0	-
@@ -942,12 +963,17 @@ Rule EgyptAsia	1958	only	-	May	 1	0:00	1:00	S
 Rule EgyptAsia	1959	1967	-	May	 1	1:00	1:00	S
 Rule EgyptAsia	1959	1965	-	Sep	30	3:00	0	-
 Rule EgyptAsia	1966	only	-	Oct	 1	3:00	0	-
+
+Rule Palestine	1999	max	-	Apr	Fri>=15	0:00	1:00	S
+Rule Palestine	1999	max	-	Oct	Fri>=15	0:00	0	-
+
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Gaza	2:17:52	-	LMT	1900 Oct
 			2:00	Zion	EET	1948 May 15
 			2:00 EgyptAsia	EE%sT	1967 Jun  5
 			2:00	Zion	I%sT	1996
-			2:00	Jordan	EE%sT
+			2:00	Jordan	EE%sT	1999
+			2:00 Palestine	EE%sT
 
 # Paracel Is
 # no information
@@ -1053,7 +1079,8 @@ Rule	Syria	1992	only	-	Apr	 8	0:00	1:00	S
 Rule	Syria	1993	only	-	Mar	26	0:00	1:00	S
 Rule	Syria	1993	only	-	Sep	25	0:00	0	-
 # IATA SSIM (1996-09) says 1997-03-31; (1998-02) says 1998-04-02;
-# (1998-09) says 1999-03-29 and 1999-09-29; ignore all these claims for now.
+# (1998-09) says 1999-03-29 and 1999-09-29; (1999-02) says 1999-04-02,
+# 2000-04-02, and 2001-04-02; ignore all these claims for now.
 Rule	Syria	1994	max	-	Apr	 1	0:00	1:00	S
 Rule	Syria	1994	max	-	Oct	 1	0:00	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
diff --git a/timezone/australasia b/timezone/australasia
index e75edd5053..0dbb9da881 100644
--- a/timezone/australasia
+++ b/timezone/australasia
@@ -1,4 +1,4 @@
-# @(#)australasia	7.48
+# @(#)australasia	7.51
 # This file also includes Pacific islands.
 
 # Notes are at the end of this file
@@ -16,8 +16,9 @@ Rule	Aus	1942	only	-	Mar	29	2:00	0	-
 Rule	Aus	1942	only	-	Sep	27	2:00	1:00	-
 Rule	Aus	1943	1944	-	Mar	lastSun	2:00	0	-
 Rule	Aus	1943	only	-	Oct	 3	2:00	1:00	-
-# Whitman says W Australia didn't use DST in 1943/1944, and that
-# 1944/1945 was just like 1943/1944; go with Shanks.
+# Go with Whitman and the Australian National Standards Commission, which
+# says W Australia didn't use DST in 1943/1944.  Ignore Whitman's claim that
+# 1944/1945 was just like 1943/1944.
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 # Northern Territory
@@ -28,7 +29,8 @@ Zone Australia/Darwin	 8:43:20 -	LMT	1895 Feb
 # Western Australia
 Zone Australia/Perth	 7:43:24 -	LMT	1895 Dec
 			 8:00	-	WST	1917 Jan 1 0:01
-			 8:00	Aus	WST	1974 Oct lastSun 2:00s
+			 8:00	Aus	WST	1943 Jul
+			 8:00	-	WST	1974 Oct lastSun 2:00s
 			 8:00	1:00	WST	1975 Mar Sun>=1 2:00s
 			 8:00	-	WST	1983 Oct lastSun 2:00s
 			 8:00	1:00	WST	1984 Mar Sun>=1 2:00s
@@ -49,70 +51,70 @@ Zone Australia/Perth	 7:43:24 -	LMT	1895 Dec
 # so use Lindeman.
 #
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
+Rule	AQ	1971	only	-	Oct	lastSun	2:00s	1:00	-
+Rule	AQ	1972	only	-	Feb	lastSun	2:00s	0	-
 Rule	AQ	1989	1991	-	Oct	lastSun	2:00s	1:00	-
 Rule	AQ	1990	1992	-	Mar	Sun>=1	2:00s	0	-
-Rule	Holiday	1989	1993	-	Oct	lastSun	2:00s	1:00	-
-Rule	Holiday	1990	1994	-	Mar	Sun>=1	2:00s	0	-
+Rule	Holiday	1992	1993	-	Oct	lastSun	2:00s	1:00	-
+Rule	Holiday	1993	1994	-	Mar	Sun>=1	2:00s	0	-
 Zone Australia/Brisbane	10:12:08 -	LMT	1895
 			10:00	-	EST	1917 Jan 1 0:01
-			10:00	Aus	EST	1971 Oct lastSun 2:00s
-			10:00	1:00	EST	1972 Feb lastSun 2:00s
+			10:00	Aus	EST	1971
 			10:00	AQ	EST
 Zone Australia/Lindeman  9:55:56 -	LMT	1895
 			10:00	-	EST	1917 Jan 1 0:01
-			10:00	Aus	EST	1971 Oct lastSun 2:00s
-			10:00	1:00	EST	1972 Feb lastSun 2:00s
+			10:00	Aus	EST	1971
+			10:00	AQ	EST	1992 Jul
 			10:00	Holiday	EST
 
 # South Australia
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	AS	1971	1985	-	Oct	lastSun	2:00s	1:00	-
 Rule	AS	1986	only	-	Oct	19	2:00s	1:00	-
-Rule	AS	1987	1999	-	Oct	lastSun	2:00s	1:00	-
+Rule	AS	1987	max	-	Oct	lastSun	2:00s	1:00	-
 Rule	AS	1972	only	-	Feb	27	2:00s	0	-
 Rule	AS	1973	1985	-	Mar	Sun>=1	2:00s	0	-
 Rule	AS	1986	1989	-	Mar	Sun>=15	2:00s	0	-
 Rule	AS	1990	1994	even	Mar	Sun>=18	2:00s	0	-
 Rule	AS	1990	1994	odd	Mar	Sun>=1	2:00s	0	-
 Rule	AS	1995	max	-	Mar	lastSun	2:00s	0	-
-Rule	AS	2000	only	-	Aug	lastSun	2:00s	1:00	-
-Rule	AS	2001	max	-	Oct	lastSun	2:00s	1:00	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone Australia/Adelaide	9:14:20 -	LMT	1895 Feb
 			9:00	-	CST	1899 May
 			9:30	-	CST	1917 Jan 1 0:01
-			9:30	Aus	CST	1971 Oct lastSun 2:00s
+			9:30	Aus	CST	1971
 			9:30	AS	CST
 
 # Tasmania
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	AT	1967	only	-	Oct	1	2:00s	1:00	-
-Rule	AT	1968	only	-	Mar	31	2:00s	0	-
+Rule	AT	1967	only	-	Oct	Sun>=1	2:00s	1:00	-
+Rule	AT	1968	only	-	Mar	lastSun	2:00s	0	-
 Rule	AT	1968	1985	-	Oct	lastSun	2:00s	1:00	-
 Rule	AT	1969	1971	-	Mar	Sun>=8	2:00s	0	-
-Rule	AT	1972	only	-	Feb	27	2:00s	0	-
+Rule	AT	1972	only	-	Feb	lastSun	2:00s	0	-
 Rule	AT	1973	1981	-	Mar	Sun>=1	2:00s	0	-
 Rule	AT	1982	1983	-	Mar	lastSun	2:00s	0	-
 Rule	AT	1984	1986	-	Mar	Sun>=1	2:00s	0	-
-Rule	AT	1986	only	-	Oct	19	2:00s	1:00	-
+Rule	AT	1986	only	-	Oct	Sun>=15	2:00s	1:00	-
 Rule	AT	1987	1990	-	Mar	Sun>=15	2:00s	0	-
-Rule	AT	1987	1990	-	Oct	lastSun	2:00s	1:00	-
+Rule	AT	1987	only	-	Oct	Sun>=22	2:00s	1:00	-
+Rule	AT	1988	1990	-	Oct	lastSun	2:00s	1:00	-
 Rule	AT	1991	max	-	Oct	Sun>=1	2:00s	1:00	-
 Rule	AT	1991	max	-	Mar	lastSun	2:00s	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone Australia/Hobart	9:49:16	-	LMT	1895 Sep
 			10:00	-	EST	1917 Jan 1 0:01
-			10:00	Aus	EST	1967 Oct 1 2:00s
+			10:00	Aus	EST	1967
 			10:00	AT	EST
 
 # Victoria
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	AV	1971	1985	-	Oct	lastSun	2:00s	1:00	-
-Rule	AV	1972	only	-	Feb	27	2:00s	0	-
+Rule	AV	1972	only	-	Feb	lastSun	2:00s	0	-
 Rule	AV	1973	1985	-	Mar	Sun>=1	2:00s	0	-
 Rule	AV	1986	1990	-	Mar	Sun>=15	2:00s	0	-
-Rule	AV	1986	only	-	Oct	19	2:00s	1:00	-
-Rule	AV	1987	1999	-	Oct	lastSun	2:00s	1:00	-
+Rule	AV	1986	1987	-	Oct	Sun>=15	2:00s	1:00	-
+Rule	AV	1988	1999	-	Oct	lastSun	2:00s	1:00	-
 Rule	AV	1991	1994	-	Mar	Sun>=1	2:00s	0	-
 Rule	AV	1995	max	-	Mar	lastSun	2:00s	0	-
 Rule	AV	2000	only	-	Aug	lastSun	2:00s	1:00	-
@@ -120,7 +122,7 @@ Rule	AV	2001	max	-	Oct	lastSun	2:00s	1:00	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone Australia/Melbourne 9:39:52 -	LMT	1895 Feb
 			10:00	-	EST	1917 Jan 1 0:01
-			10:00	Aus	EST	1971 Oct 31 2:00s
+			10:00	Aus	EST	1971
 			10:00	AV	EST
 
 # New South Wales
@@ -140,14 +142,15 @@ Rule	AN	2001	max	-	Oct	lastSun	2:00s	1:00	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone Australia/Sydney	10:04:52 -	LMT	1895 Feb
 			10:00	-	EST	1917 Jan 1 0:01
-			10:00	Aus	EST	1971 Oct 31 2:00s
+			10:00	Aus	EST	1971
 			10:00	AN	EST
 Zone Australia/Broken_Hill 9:25:48 -	LMT	1895 Feb
 			10:00	-	EST	1896 Aug 23
 			9:00	-	CST	1899 May
 			9:30	-	CST	1917 Jan 1 0:01
-			9:30	Aus	CST	1971 Oct 31 2:00s
-			9:30	AN	CST
+			9:30	Aus	CST	1971
+			9:30	AN	CST	2000
+			9:30	AS	CST
 
 # Lord Howe Island
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
@@ -176,7 +179,10 @@ Zone Australia/Lord_Howe 10:36:20 -	LMT	1895 Feb
 # Macquarie
 # permanent occupation (scientific station) since 1948;
 # sealing and penguin oil station operated 1888/1917
-# no information
+# <a href="http://www.bom.gov.au/faq/faqgen.htm">
+# The Australian Bureau of Meteorology FAQ
+# </a> (1999-09-27) writes that Macquarie Island follows Tasmanian practice
+# irrespective of any local use of DST.  This is unclear; ignore it for now.
 #
 # Manihiki, Penrhyn, Rakehanga
 # no information
@@ -388,10 +394,15 @@ Zone	Pacific/Fakaofo	-11:24:56 -	LMT	1901
 			-10:00	-	TKT	# Tokelau Time
 
 # Tonga
+# Transition time is a guess--see below
+# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
+Rule	Tonga	1999	max	-	Oct	Sat>=1	0:00	1:00	S
+Rule	Tonga	2000	max	-	Apr	Sat>=15	0:00	-	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone Pacific/Tongatapu	12:19:20 -	LMT	1901
 			12:20	-	TOT	1941 # Tonga Time
-			13:00	-	TOT
+			13:00	-	TOT	1999
+			13:00	Tonga	TO%sT
 
 # Tuvalu
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -596,6 +607,11 @@ Zone	Pacific/Wallis	12:15:20 -	LMT	1901
 # The 1992 ending date used in the rules is a best guess;
 # it matches what was used in the past.
 
+# <a href="http://www.bom.gov.au/faq/faqgen.htm">
+# The Australian Bureau of Meteorology FAQ
+# </a> (1999-09-27) writes that Giles Meteorological Station uses
+# South Australian time even though it's located in Western Australia.
+
 # Queensland
 # From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06):
 # #   The state of QUEENSLAND.. [ Courtesy Qld. Dept Premier Econ&Trade Devel ]
@@ -707,41 +723,10 @@ Zone	Pacific/Wallis	12:15:20 -	LMT	1901
 
 # Tasmania
 
-# From Bradley White (1991-03-04):
-# A recent excerpt from an Australian newspaper...
-# ...Tasmania will revert to Australian Eastern Standard Time on March 31...
-
-# From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06):
+# The rules for 1967 through 1991 were reported by George Shepherd
+# via Simon Woodhead via Robert Elz (1991-03-06):
 # #  The state of TASMANIA.. [Courtesy Tasmanian Dept of Premier + Cabinet ]
 # #					[ Nov 1990 ]
-# ...
-# Zone	Australia/Tasmania	10:00	AT	%sST
-# ...
-# Rule	AT	1967	only	-	Oct	Sun>=1	2:00	1:00	D
-# Rule	AT	1968	only	-	Mar	lastSun	3:00	0	E
-# Rule	AT	1968	1985	-	Oct	lastSun	2:00	1:00	D
-# Rule	AT	1969	1971	-	Mar	Sun>=8	3:00	0	E
-# Rule	AT	1972	only	-	Feb	lastSun	3:00	0	E
-# Rule	AT	1973	1981	-	Mar	Sun>=1	3:00	0	E
-# Rule	AT	1982	1983	-	Mar	lastSun	3:00	0	E
-# Rule	AT	1984	1986	-	Mar	Sun>=1	3:00	0	E
-# Rule	AT	1986	only	-	Oct	Sun>=15	2:00	1:00	D
-# Rule	AT	1987	1990	-	Mar	Sun>=15	3:00	0	E
-# Rule	AT	1987	only	-	Oct	Sun>=22	2:00	1:00	D
-# Rule	AT	1988	1990	-	Oct	lastSun	2:00	1:00	D
-# Rule	AT	1991	max	-	Oct	Sun>=1	2:00	1:00	D
-# Rule	AT	1991	max	-	Mar	lastSun	3:00	0	E
-
-# From Bill Hart via Alexander Dupuy and Guy Harris (1991-10-10):
-# My state Government in there eagerness to get a few more bucks for the
-# tourist industry industry decided to change the daylight savings times
-# yet again (we now have almost 6 months per year)...
-# ...
-# Rule  Oz      1986    1990    -       Oct     Sun<=24 2:00    1:00    -
-# Rule  Oz      1991    max     -       Oct     Sun>=1  2:00    1:00    -
-# ...
-# Rule  Oz      1987    1990    -       Mar     Sun<=21 3:00    0       -
-# Rule  Oz      1991    max     -       Mar     Sun<=31 3:00    0       -
 
 # From Bill Hart via Guy Harris (1991-10-10):
 # Oh yes, the new daylight savings rules are uniquely tasmanian, we have
@@ -750,23 +735,10 @@ Zone	Pacific/Wallis	12:15:20 -	LMT	1901
 
 # Victoria
 
-# From Bradley White (1991-03-04):
-# A recent excerpt from an Australian newspaper...
-# ...Victoria...[has] agreed to end daylight saving at 3am tomorrow (March 3)...
-
-# From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06):
+# The rules for 1971 through 1991 were reported by George Shepherd
+# via Simon Woodhead via Robert Elz (1991-03-06):
 # #   The state of VICTORIA.. [ Courtesy of Vic. Dept of Premier + Cabinet ]
 # #						[ Nov 1990 ]
-# ...
-# Zone	Australia/Victoria	10:00	AV	%sST
-# ...
-# Rule	AV	1971	1985	-	Oct	lastSun	2:00	1:00	D
-# Rule	AV	1972	only	-	Feb	lastSun	3:00	0	E
-# Rule	AV	1973	1985	-	Mar	Sun>=1	3:00	0	E
-# Rule	AV	1986	1990	-	Mar	Sun>=15	3:00	0	E
-# Rule	AV	1986	1987	-	Oct	Sun>=15	2:00	1:00	D
-# Rule	AV	1988	max	-	Oct	lastSun	2:00	1:00	D
-# Rule	AV	1991	max	-	Mar	Sun>=1	3:00	0	E
 
 # New South Wales
 
@@ -781,46 +753,61 @@ Zone	Pacific/Wallis	12:15:20 -	LMT	1901
 #	legislation.  This is very important to understand.
 #	I have researched New South Wales time only...
 
-# From Dave Davey (1990-03-03):
-# Rule	NSW	1988	only	-	Mar	Sun>=1	3:00	0	-
-# Rule	NSW	1989	only	-	Mar	Sun<=21	3:00	0	-
-
-# From Bradley White (1991-03-04):
-# A recent excerpt from an Australian newspaper...
-# NSW...[has] agreed to end daylight saving at 3am tomorrow (March 3)...
-
-# From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06):
-# # The state of NEW SOUTH WALES.. [confirmed by Attorney General's Dept N.S.W]
-# #					[ Dec 1990 ]
-# ...
-# Rule	 AN	1988	1989	-	Mar	Sun<=21	3:00	0	E
-# ...
-
-# From John Mackin (1991-03-09)
-# I have confirmed the accuracy of the historical data for NSW in the
-# file Robert forwarded
-
-# From Arthur David Olson (1992-03-08):
-# Sources differ on whether DST ended March 6 or March 20 in 1988;
-# March 20 (the "confirmed" date) is in the chosen rules.
-
-# From Bradley White (1995-05-20):
-# Prem Bob Carr announced NSW will fall into line with other E states
-# and SA and continue daylight savings to the last Sun in Mar.
+# From Paul Eggert (1999-09-27):
+# The Information Service of the Australian National Standards Commission
+# <a href="http://www.nsc.gov.au/InfoServ/Ileaflet/il27.htm">
+# Daylight Saving
+# </a> page (1995-04) has an excellent overall history of Australian DST.
+# The Community Relations Division of the NSW Attorney General's Department
+# publishes a history of daylight saving in NSW.  See:
+# <a href="http://www.lawlink.nsw.gov.au/crd.nsf/pages/time2">
+# Lawlink NSW: Daylight Saving in New South Wales
+# </a>
 
 # From Eric Ulevik <eau@ozemail.com.au> (1999-05-26):
 # DST will start in NSW on the last Sunday of August, rather than the usual
-# October in 2000.  Victoria and South Australia are expected to adopt this
-# change, Queensland is unlikely.  [See: Matthew Moore,
+# October in 2000.  [See: Matthew Moore,
 # <a href="http://www.smh.com.au/news/9905/26/pageone/pageone4.html">
 # Two months more daylight saving
 # </a>
 # Sydney Morning Herald (1999-05-26).]
 
-# Also see the following official NSW source:
+# From Paul Eggert (1999-09-27):
+# See the following official NSW source:
 # <a href="http://dir.gis.nsw.gov.au/cgi-bin/genobject/document/other/daylightsaving/tigGmZ">
 # Daylight Saving in New South Wales.
 # </a>
+#
+# Narrabri Shire (NSW) council has announced it will ignore the extension of
+# daylight saving next year.  See:
+# <a href="http://abc.net.au/news/regionals/neweng/monthly/regeng-22jul1999-1.htm">
+# Narrabri Council to ignore daylight saving
+# </a> (1999-07-22).  For now, we'll wait to see if this really happens.
+#
+# Victoria will following NSW.  See:
+# <a href="http://abc.net.au/local/news/olympics/1999/07/item19990728112314_1.htm">
+# Vic to extend daylight saving
+# </a> (1999-07-28).
+#
+# However, South Australia rejected the DST request.  See:
+# <a href="http://abc.net.au/news/olympics/1999/07/item19990719151754_1.htm">
+# South Australia rejects Olympics daylight savings request
+# </a> (1999-07-19).
+#
+# Queensland also will not observe DST for the Olympics.  See:
+# <a href="http://abc.net.au/news/olympics/1999/06/item19990601114608_1.htm">
+# Qld says no to daylight savings for Olympics
+# </a> (1999-06-01), which quotes Queensland Premier Peter Beattie as saying
+# ``Look you've got to remember in my family when this came up last time
+# I voted for it, my wife voted against it and she said to me it's all very
+# well for you, you don't have to worry about getting the children out of
+# bed, getting them to school, getting them to sleep at night. 
+# I've been through all this argument domestically...my wife rules.''
+#
+# Broken Hill will stick with South Australian time in 2000.  See:
+# <a href="http://abc.net.au/news/regionals/brokenh/monthly/regbrok-21jul1999-6.htm">
+# Broken Hill to be behind the times
+# </a> (1999-07-21).
 
 # IATA SSIM (1998-09) says that the spring 2000 change for Australian
 # Capital Territory, New South Wales except Lord Howe Island and Broken
@@ -991,7 +978,7 @@ Zone	Pacific/Wallis	12:15:20 -	LMT	1901
 #
 # But some of the older, more conservative members from the outer
 # islands objected. "If at midnight on Dec. 31, we move ahead 40
-# minutes, as your Royal Highness wishes, what becomes of th 40
+# minutes, as your Royal Highness wishes, what becomes of the 40
 # minutes we have lost?"
 #
 # The Crown Prince, presented an unanswerable argument: "Remember that
@@ -1007,3 +994,27 @@ Zone	Pacific/Wallis	12:15:20 -	LMT	1901
 # He has proposed a one-off move to tropical daylight saving for Tonga from
 # October to March, which has won approval in principle from the Tongan
 # Government.
+
+# From Steffen Thorsen [straen@thorsen.priv.no] (1999-09-09):
+# * Tonga will introduce DST in November
+# 
+# I was given this link by John Letts <johnletts@earthlink.net>:
+# <a hef="http://news.bbc.co.uk/hi/english/world/asia-pacific/newsid_424000/424764.stm">
+# http://news.bbc.co.uk/hi/english/world/asia-pacific/newsid_424000/424764.stm
+# </a>
+# 
+# I have not been able to find exact dates for the transition in November
+# yet. By reading this article it seems like Fiji will be 14 hours ahead
+# of UTC as well, but as far as I know Fiji will only be 13 hours ahead
+# (12 + 1 hour DST).
+
+# From Arthur David Olson [arthur_david_olson@nih.gov] (1999-09-20):
+# According to <a href="http://www.tongaonline.com/news/sept1799.html>
+# http://www.tongaonline.com/news/sept1799.html
+# </a>:
+# "Daylight Savings Time will take effect on Oct. 2 through April 15, 2000 
+# and annually thereafter from the first Saturday in October through the 
+# third Saturday of April.  Under the system approved by Privy Council on 
+# Sept. 10, clocks must be turned ahead one hour on the opening day and 
+# set back an hour on the closing date."
+# Alas, no indication of the time of day.
diff --git a/timezone/checktab.awk b/timezone/checktab.awk
index 9006e9f59a..43ecc92dfa 100644
--- a/timezone/checktab.awk
+++ b/timezone/checktab.awk
@@ -1,5 +1,7 @@
 # Check tz tables for consistency.
 
+# @(#)checktab.awk	1.5
+
 # Contributed by Paul Eggert <eggert@twinsun.com>.
 
 BEGIN {
@@ -13,7 +15,7 @@ BEGIN {
 		iso_NR++
 		if ($0 ~ /^#/) continue
 		if (NF != 2) {
-			printf "%s:%d: wrong number of columns\n",
+			printf "%s:%d: wrong number of columns\n", \
 				iso_table, iso_NR >>"/dev/stderr"
 			status = 1
 		}
@@ -25,9 +27,14 @@ BEGIN {
 			status = 1
 		}
 		if (cc <= cc0) {
+			if (cc == cc0) {
+				s = "duplicate";
+			} else {
+				s = "out of order";
+			}
+
 			printf "%s:%d: country code `%s' is %s\n", \
-				iso_table, iso_NR, cc, \
-				cc==cc0 ? "duplicate"  : "out of order" \
+				iso_table, iso_NR, cc, s \
 				>>"/dev/stderr"
 			status = 1
 		}
@@ -50,7 +57,7 @@ BEGIN {
 		zone_NR++
 		if ($0 ~ /^#/) continue
 		if (NF != 3 && NF != 4) {
-			printf "%s:%d: wrong number of columns\n",
+			printf "%s:%d: wrong number of columns\n", \
 				zone_table, zone_NR >>"/dev/stderr"
 			status = 1
 		}
@@ -142,7 +149,7 @@ END {
 		for (cc in cc2name) {
 			if (!cc_used[cc]) {
 				printf "%s:%d: warning:" \
-					"no Zone entries for %s (%s)\n",
+					"no Zone entries for %s (%s)\n", \
 					iso_table, cc2NR[cc], cc, cc2name[cc]
 			}
 		}
diff --git a/timezone/europe b/timezone/europe
index 50440e5cc4..4b4290ec65 100644
--- a/timezone/europe
+++ b/timezone/europe
@@ -1,4 +1,4 @@
-# @(#)europe	7.62
+# @(#)europe	7.64
 
 # This data is by no means authoritative; if you think you know better,
 # go ahead and edit the file (and please send any changes to
@@ -155,6 +155,11 @@
 # time of sunrise and sunset in The Times, when BDST was in effect, and
 # if you find a zone reference it will say, "All times B.D.S.T."
 
+# From Joseph S. Myers (1999-09-02):
+# ... some military cables (WO 219/4100 - this is a copy from the
+# main SHAEF archives held in the US National Archives, SHAEF/5252/8/516)
+# agree that the usage is BDST (this appears in a message dated 17 Feb 1945).
+
 # Howse writes (p 157) `DBST'; let's assume this is a typo.
 
 # From Peter Ilieve <peter@aldie.co.uk> (1998-04-19):
@@ -708,6 +713,17 @@
 # Implements the eighth Directive. Has the same text about the Isle of Man,
 # Guernsey and Jersey as the 1994 Order.
 
+# From Joseph S. Myers (1999-09-02):
+# I today found the 1916 summer time orders for the Channel Islands in
+# the Public Record Office (HO 45/10811/312364)....  Alderney,
+# Jersey and Guernsey all enacted summer time for 1916 (and the
+# enactment for the Isle of Man is already noted).  This doesn't
+# complete the resolution of timekeeping in the Channel Islands, since
+# 1917-1921 need to be resolved for the Channel Islands, and it isn't
+# clear whether the islands were using GMT or local time then.  The
+# changes in Alderney and Guernsey were at the same 2am GMT time as
+# for Great Britain; the order for Jersey is more interesting.
+
 # From Joseph S. Myers <jsm28@hermes.cam.ac.uk> (1998-01-06):
 #
 # The legal time in the UK outside of summer time is definitely GMT, not UTC;
@@ -716,7 +732,7 @@
 # (Lords Hansard 11 June 1997 columns 964 to 976)
 # </a>.
 
-# From Paul Eggert <eggert@twinsun.com> (1996-06-12):
+# From Paul Eggert (1999-09-20):
 #
 # The date `20 April 1924' in the table of ``Summer Time: A
 # Consultation Document'' (Cm 722, 1989) table is a transcription error;
@@ -740,11 +756,14 @@
 # Actually, that date saw the usual switch to summer time.
 # Standard time was not changed until 1968-10-27 (the clocks didn't change).
 #
-# The following claims by Shanks are possible though doubtful;
-# we'll ignore them for now.
+# Here is another incorrect claim by Shanks: 
 #     * Jersey, Guernsey, and the Isle of Man did not switch from GMT
 #	to daylight saving time until 1921 Apr 3, when they began to
 #	conform with Great Britain.
+# S.R.&O. 1916, No. 382 and HO 45/10811/312364 (quoted above) say otherwise.
+#
+# The following claim by Shanks is possible though doubtful;
+# we'll ignore it for now.
 #     * Dublin's 1971-10-31 switch was at 02:00, even though London's was 03:00.
 #
 #
@@ -1165,6 +1184,12 @@ Zone	Europe/Brussels	0:17:30 -	LMT	1880
 # see Yugoslavia
 
 # Bulgaria
+#
+# From Plamen Simenov <P.Simeonov@cnsys.bg> via Steffen Thorsen (1999-09-09):
+# A document of Government of Bulgaria (No.94/1997) says:
+# EET --> EETDST is in 03:00 Local time in last Sunday of March ...
+# EETDST --> EET is in 04:00 Local time in last Sunday of October
+#
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Bulg	1979	only	-	Mar	31	23:00	1:00	S
 Rule	Bulg	1979	only	-	Oct	 1	 1:00	0	-
@@ -1179,7 +1204,8 @@ Zone	Europe/Sofia	1:33:16 -	LMT	1880
 			2:00	-	EET	1979 Mar 31 23:00
 			2:00	Bulg	EE%sT	1982 Sep 26  2:00
 			2:00	C-Eur	EE%sT	1991
-			2:00	E-Eur	EE%sT
+			2:00	E-Eur	EE%sT	1997
+			2:00	EU	EE%sT
 
 # Croatia
 # see Yugosloavia
diff --git a/timezone/iso3166.tab b/timezone/iso3166.tab
index a3b2bee9fa..e20b5895eb 100644
--- a/timezone/iso3166.tab
+++ b/timezone/iso3166.tab
@@ -1,5 +1,7 @@
 # ISO 3166 2-letter country codes
 #
+# @(#)iso3166.tab	1.6
+#
 # From Paul Eggert <eggert@twinsun.com> (1996-09-03):
 #
 # This file contains a table with the following columns:
diff --git a/timezone/northamerica b/timezone/northamerica
index c545344647..6203adf8be 100644
--- a/timezone/northamerica
+++ b/timezone/northamerica
@@ -1,4 +1,4 @@
-# @(#)northamerica	7.45
+# @(#)northamerica	7.47
 # also includes Central America and the Caribbean
 
 # This data is by no means authoritative; if you think you know better,
@@ -889,6 +889,25 @@ Zone America/Dawson_Creek -8:00:56 -	LMT	1884
 #	* O.I.C. 1987/056 changed DST to Apr firstSun 2:00 to Oct lastSun 2:00.
 # Shanks says Yukon's 1973-10-28 switch was at 2:00; go with Englander.
 
+# From Rives McDow (1999-09-04):
+# Nunavut ... moved ... to incorporate the whole territory into one time zone.
+# <a href="http://www.nunatsiaq.com/nunavut/nvt90903_13.html">
+# The change announcement
+# </a> 
+#
+# From Antoine Leca (1999-09-06):
+# We then need to create a new timezone for the Kitikmeot region of Nunavut
+# to differentiate it from the Yellowknife region.
+
+# From Paul Eggert (1999-09-20):
+# <a href="http://www.nunavut.com/basicfacts/english/basicfacts_1territory.html">
+# Basic Facts: The New Territory
+# </a> (1999) reports that Pangnirtung operates on Eastern time,
+# and that Coral Harbour does not observe DST.  We don't know when
+# Pangnirtung switched to Eastern time; we'll guess 1995.
+# We'll ignore the claim about Coral Harbour for now,
+# since we have no further info.
+
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	NT_YK	1918	only	-	Apr	14	2:00	1:00	D
 Rule	NT_YK	1918	only	-	Oct	27	2:00	0	S
@@ -903,11 +922,17 @@ Rule	NT_YK	1980	max	-	Oct	lastSun	2:00	0	S
 Rule	NT_YK	1987	max	-	Apr	Sun>=1	2:00	1:00	D
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone America/Pangnirtung -4:22:56 -	LMT	1884
-			-4:00	NT_YK	A%sT
-Zone America/Iqaluit	-4:33:52 -	LMT	1884	# Frobisher Bay
-			-5:00	NT_YK	E%sT
+			-4:00	NT_YK	A%sT	1995 Apr Sun>=1 2:00
+			-5:00	Canada	E%sT	1999 Oct 31 2:00
+			-6:00	Canada	C%sT
+Zone America/Iqaluit	-4:33:52 -	LMT	1884 # Frobisher Bay before 1987
+			-5:00	NT_YK	E%sT	1999 Oct 31 2:00
+			-6:00	Canada	C%sT
 Zone America/Rankin_Inlet -6:08:40 -	LMT	1884
 			-6:00	NT_YK	C%sT
+Zone America/Cambridge_Bay -7:00:20 -	LMT	1884
+			-7:00	NT_YK	M%sT	1999 Oct 31 2:00
+			-6:00	Canada	C%sT
 Zone America/Yellowknife -7:37:24 -	LMT	1884
 			-7:00	NT_YK	M%sT
 Zone America/Inuvik	-8:54:00 -	LMT	1884
@@ -1205,8 +1230,9 @@ Rule	Cuba	1990	1997	-	Apr	Sun>=1	0:00	1:00	D
 Rule	Cuba	1991	1995	-	Oct	Sun>=8	0:00s	0	S
 Rule	Cuba	1996	only	-	Oct	 6	0:00s	0	S
 Rule	Cuba	1997	only	-	Oct	12	0:00s	0	S
-Rule	Cuba	1998	max	-	Mar	lastSun	0:00s	1:00	D
+Rule	Cuba	1998	1999	-	Mar	lastSun	0:00s	1:00	D
 Rule	Cuba	1998	max	-	Oct	lastSun	0:00s	0	S
+Rule	Cuba	2000	max	-	Apr	 1	0:00s	1:00	D
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	America/Havana	-5:29:28 -	LMT	1890
diff --git a/timezone/southamerica b/timezone/southamerica
index bb3ae36dd1..25446807af 100644
--- a/timezone/southamerica
+++ b/timezone/southamerica
@@ -1,4 +1,4 @@
-# @(#)southamerica	7.28
+# @(#)southamerica	7.31
 
 # This data is by no means authoritative; if you think you know better,
 # go ahead and edit the file (and please send any changes to
@@ -351,12 +351,15 @@ Rule	Brazil	1997	only	-	Oct	 6	 0:00	1:00	S
 # (1998-02-10)
 Rule	Brazil	1998	only	-	Mar	 1	 0:00	0	-
 # Decree <a href="http://pcdsh01.on.br/figuras/Hv98.jpg">2,780</a> (1998-09-11)
-# adopted by the same states as before,
-# specifies only the 1998-10-11 and 1999-02-21 transitions;
+# adopted by the same states as before.
+Rule	Brazil	1998	only	-	Oct	11	 0:00	1:00	S
+Rule	Brazil	1999	only	-	Feb	21	 0:00	0	-
+# Decree <a href="http://pcdsh01.on.br/figuras/HV3150.gif">3,150</a>
+# (1999-08-23), adopted by same states, says only 1999-10-03 and 2000-02-27;
 # after that, these rules are guesses and are quite possibly wrong,
 # but they are more likely than no DST at all.
-Rule	Brazil	1998	max	-	Oct	Sun>=8	 0:00	1:00	S
-Rule	Brazil	1999	max	-	Feb	Sun>=15	 0:00	0	-
+Rule	Brazil	1999	max	-	Oct	Sun>=1	 0:00	1:00	S
+Rule	Brazil	2000	max	-	Feb	lastSun	 0:00	0	-
 
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -558,7 +561,7 @@ Rule	Para	1993	1995	-	Oct	 1	0:00	1:00	S
 Rule	Para	1994	1995	-	Feb	lastSun	0:00	0	-
 Rule	Para	1996	1998	-	Mar	 1	0:00	0	-
 Rule	Para	1996	max	-	Oct	Sun>=1	0:00	1:00	S
-Rule	Para	1999	max	-	Feb	lastSun	0:00	0	-
+Rule	Para	1999	max	-	Feb	lastSat	0:00	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone America/Asuncion	-3:50:40 -	LMT	1890
 			-3:50:40 -	AMT	1931 Oct 10 # Asuncion Mean Time
diff --git a/timezone/tzselect.ksh b/timezone/tzselect.ksh
index 010a0deb32..be589240d1 100644
--- a/timezone/tzselect.ksh
+++ b/timezone/tzselect.ksh
@@ -1,4 +1,7 @@
 #! @KSH@
+
+# '@(#)tzselect.ksh	1.7'
+
 # Ask the user about the time zone, and output the resulting TZ value to stdout.
 # Interact with the user via stderr and stdin.
 
@@ -289,5 +292,17 @@ Universal Time is now:	$UTdate."
 do :
 done
 
-# Output the answer.
+case $SHELL in
+*csh) file=.login line="setenv TZ '$TZ'";;
+*) file=.profile line="TZ='$TZ'; export TZ"
+esac
+
+echo >&2 "
+You can make this change permanent for yourself by appending the line
+	$line
+to the file '$file' in your home directory; then log out and log in again.
+
+Here is that TZ value again, this time on standard output so that you
+can use the $0 command in shell scripts:"
+
 echo "$TZ"
diff --git a/timezone/zone.tab b/timezone/zone.tab
index d55269832b..79257a176e 100644
--- a/timezone/zone.tab
+++ b/timezone/zone.tab
@@ -1,3 +1,5 @@
+# @(#)zone.tab	1.15
+#
 # TZ zone descriptions
 #
 # From Paul Eggert <eggert@twinsun.com> (1996-08-05):
@@ -88,14 +90,15 @@ CA	+4734-05243	America/St_Johns	Newfoundland Island
 CA	+4439-06336	America/Halifax	Atlantic Time - Nova Scotia (most places), NB, W Labrador, E Quebec & PEI
 CA	+4612-05957	America/Glace_Bay	Atlantic Time - Nova Scotia - places that did not observe DST 1966-1971
 CA	+5320-06025	America/Goose_Bay	Atlantic Time - E Labrador
-CA	+6608-06544	America/Pangnirtung	Atlantic Time - Northwest Territories
 CA	+4531-07334	America/Montreal	Eastern Time - Ontario & Quebec - most locations
 CA	+4901-08816	America/Nipigon	Eastern Time - Ontario & Quebec - places that did not observe DST 1967-1973
 CA	+4823-08915	America/Thunder_Bay	Eastern Time - Thunder Bay, Ontario
-CA	+6344-06828	America/Iqaluit	Eastern Time - Northwest Territories
 CA	+4953-09709	America/Winnipeg	Central Time - Manitoba & west Ontario
 CA	+4843-09429	America/Rainy_River	Central Time - Rainy River & Fort Frances, Ontario
-CA	+6245-09210	America/Rankin_Inlet	Central Time - Northwest Territories
+CA	+6608-06544	America/Pangnirtung	Central Time - Pangnirtung, Nunavut
+CA	+6344-06828	America/Iqaluit	Central Time - east Nunavut
+CA	+6245-09210	America/Rankin_Inlet	Central Time - central Nunavut
+CA	+6903-10505	America/Cambridge_Bay	Central Time - west Nunavut
 CA	+5024-10439	America/Regina	Central Standard Time - Saskatchewan - most locations
 CA	+5017-10750	America/Swift_Current	Central Standard Time - Saskatchewan - midwest
 CA	+5333-11328	America/Edmonton	Mountain Time - Alberta, east British Columbia & west Saskatchewan