summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schwab <aschwab@redhat.com>2009-06-16 13:04:18 +0200
committerAndreas Schwab <aschwab@redhat.com>2009-06-16 13:04:18 +0200
commit8a598439b93552cb666ab3cf63a5ff8aabd06260 (patch)
tree50934cb3f9879206cc36e9c80516ef7eb956719c
parentc38262349f9ad25d708e47a6715e94d87aa924ce (diff)
parent837dea7cf54827d6e43d88a9463bcc10d30472d0 (diff)
Merge branch 'master' of sourceware.org:/git/glibc into fedora/master
-rw-r--r--.gitattributes1
-rw-r--r--ChangeLog99
-rw-r--r--Versions.def1
-rw-r--r--assert/assert-perr.c10
-rw-r--r--assert/assert.c11
-rw-r--r--elf/dl-lookup.c17
-rw-r--r--include/stdlib.h3
-rw-r--r--inet/netinet/icmp6.h4
-rw-r--r--libio/tst-fgetwc.c2
-rw-r--r--localedata/ChangeLog7
-rw-r--r--localedata/SUPPORTED1
-rw-r--r--localedata/locales/dv_MV180
-rw-r--r--login/programs/pt_chown.c7
-rw-r--r--misc/sys/select.h4
-rw-r--r--nis/nss_nis/nis-pwd.c4
-rw-r--r--nptl/ChangeLog15
-rw-r--r--nptl/Makefile2
-rw-r--r--nptl/Versions4
-rw-r--r--nptl/sysdeps/pthread/bits/sigthread.h8
-rw-r--r--nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S2
-rw-r--r--nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c83
-rw-r--r--nss/getent.c66
-rw-r--r--po/sv.po48
-rw-r--r--posix/tst-cpucount.c3
-rw-r--r--resolv/res_send.c3
-rw-r--r--stdlib/Versions2
-rw-r--r--stdlib/abort.c6
-rw-r--r--sysdeps/i386/dl-irel.h2
-rw-r--r--sysdeps/posix/libc_fatal.c17
-rw-r--r--sysdeps/unix/sysv/linux/grantpt.c13
-rw-r--r--sysdeps/unix/sysv/linux/libc_fatal.c18
-rw-r--r--sysdeps/x86_64/bits/select.h36
-rw-r--r--time/tzfile.c9
-rw-r--r--timezone/africa140
-rw-r--r--timezone/antarctica4
-rw-r--r--timezone/asia184
-rw-r--r--timezone/australasia25
-rw-r--r--timezone/backward6
-rw-r--r--timezone/etcetera5
-rw-r--r--timezone/europe65
-rw-r--r--timezone/factory5
-rw-r--r--timezone/iso3166.tab6
-rw-r--r--timezone/leapseconds39
-rw-r--r--timezone/northamerica43
-rw-r--r--timezone/pacificnew5
-rw-r--r--timezone/solar875
-rw-r--r--timezone/solar885
-rw-r--r--timezone/solar895
-rw-r--r--timezone/southamerica160
-rw-r--r--timezone/systemv5
-rw-r--r--timezone/tzselect.ksh17
-rwxr-xr-xtimezone/yearistype5
-rw-r--r--timezone/zdump.c31
-rw-r--r--timezone/zic.c26
-rw-r--r--timezone/zone.tab28
55 files changed, 1290 insertions, 212 deletions
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000000..8947e726a2
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1 @@
+timezone/* -whitespace
diff --git a/ChangeLog b/ChangeLog
index ea83ced3fa..d6b66bad7a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,102 @@
+2009-06-15 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/unix/sysv/linux/grantpt.c (grantpt): Only call chown and
+ chmod if it is necessary.
+
+ [BZ #10166]
+ * sysdeps/unix/sysv/linux/grantpt.c: If slave device is on devpts or
+ devfs, the mode might not be correct. Check it and return only if it
+ is correct.
+
+ [BZ #10183]
+ * posix/tst-cpucount.c: Don't try more than CPU_SETSIZE bits.
+
+ [BZ #10195]
+ * inet/netinet/icmp6.h (struct nd_opt_home_agent_info): Change type
+ of nd_opt_home_agent_info_preference to uint16_t.
+ Patch by Arnaud Ebalard <arno@natisbad.org>.
+
+ [BZ #10207]
+ * nss/getent.c: Add support for print gshadow data.
+
+ [BZ #10203]
+ * nis/nss_nis/nis-pwd.c (internal_nis_endpwent): Free all buffers,
+ not just the currently used one and those which follow.
+ Patch by Joe Landers <jlanders@vmware.com>.
+
+ [BZ #10196]
+ * libio/tst-fgetwc.c (do_test): Use de_DE.UTF-8 as locale name.
+ Patch by Bruce Dubbs <bdubbs@linuxfromscratch.org>.
+
+ [BZ #10217]
+ * stdlib/abort.c: Define variable __abort_msg.
+ * stdlib/Versions: Export __abort_msg with GLIBC_PRIVATE version.
+ * include/stdlib.h: Declare __abort_msg.
+ * assert/assert-perr.c: Don't free buffer for message immediately.
+ Store atomically in __abort_msg and free old buffer if necessary.
+ * assert/assert.c: Likewise.
+ * sysdeps/posix/libc_fatal.c: Allocate buffer for message, copy it,
+ store pointer in __abort_msg, and possibly free old string.
+ * sysdeps/unix/sysv/linux/libc_fatal.c: Likewise.
+
+ * time/tzfile.c (__tzfile_read): Correct computation of tzspec_len.
+
+ [BZ #10211]
+ * time/tzfile.c (__tzfile_compute): If we use the envvar format still
+ handle leap seconds if they are available.
+ Patch by Akinori Hattori <hattya@gentoo.org>.
+
+ * timezone/tzselect.ksh: Update from tzcode2009i.
+ * timezone/zdump.c: Likewise.
+ * timezone/zic.c: Likewise.
+
+ * timezone/africa: Update from tzdata2009i.
+ * timezone/antarctica: Likewise.
+ * timezone/asia: Likewise.
+ * timezone/australasia: Likewise.
+ * timezone/backward: Likewise.
+ * timezone/etcetera: Likewise.
+ * timezone/europe: Likewise.
+ * timezone/factory: Likewise.
+ * timezone/iso3166.tab: Likewise.
+ * timezone/leapseconds: Likewise.
+ * timezone/northamerica: Likewise.
+ * timezone/pacificnew: Likewise.
+ * timezone/solar87: Likewise.
+ * timezone/solar88: Likewise.
+ * timezone/solar89: Likewise.
+ * timezone/southamerica: Likewise.
+ * timezone/systemv: Likewise.
+ * timezone/yearistype: Likewise.
+ * timezone/zone.tab: Likewise.
+
+2009-06-15 Jakub Jelinek <jakub@redhat.com>
+
+ * elf/dl-lookup.c (_dl_debug_bindings): When resolving to
+ STT_GNU_IFUNC symbol or in 8 into type_class.
+
+ * sysdeps/i386/dl-irel.h (elf_irel): Use Elf32_Addr type
+ instead of Elf64_Addr.
+
+2009-06-14 Ulrich Drepper <drepper@redhat.com>
+
+ * po/sv.po: Update from translation team.
+
+ [BZ #10229]
+ * misc/sys/select.h (__NFDBITS): Expression should have type int.
+ * sysdeps/x86_64/bits/select.h: Remove asm versions for __FD_SET,
+ __FD_CLR, and __FD_ISSET. gcc nowadays generates better code from
+ the C version.
+
+2009-06-12 Ulrich Drepper <drepper@redhat.com>
+
+ * Versions.def: Add GLIBC_2.11 for libpthread.
+
+2009-06-11 Ulrich Drepper <drepper@redhat.com>
+
+ * resolv/res_send.c (send_dg): Remember we switched to
+ single-request mode.
+
2009-06-09 Ulrich Drepper <drepper@redhat.com>
* dlfcn/dlfcn.h: Remove comma at end of enum.
diff --git a/Versions.def b/Versions.def
index 558f7c3ed8..a8a9cd275e 100644
--- a/Versions.def
+++ b/Versions.def
@@ -89,6 +89,7 @@ libpthread {
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.6
+ GLIBC_2.11
GLIBC_PRIVATE
}
libresolv {
diff --git a/assert/assert-perr.c b/assert/assert-perr.c
index dd54246360..f239fab86b 100644
--- a/assert/assert-perr.c
+++ b/assert/assert-perr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-1998,2001,2002,2005 Free Software Foundation, Inc.
+/* Copyright (C) 1994-1998,2001,2002,2005,2009 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,6 +17,7 @@
02111-1307 USA. */
#include <assert.h>
+#include <atomic.h>
#include <libintl.h>
#include <stdio.h>
#include <stdlib.h>
@@ -64,9 +65,10 @@ __assert_perror_fail (int errnum,
(void) __fxprintf (NULL, "%s", buf);
(void) fflush (stderr);
- /* We have to free the buffer since the appplication might catch the
- SIGABRT. */
- free (buf);
+ /* We have to free the old buffer since the application might
+ catch the SIGABRT signal. */
+ char *old = atomic_exchange_acq (&__abort_msg, buf);
+ free (old);
}
else
{
diff --git a/assert/assert.c b/assert/assert.c
index 0ef4ca62e4..727fb1446c 100644
--- a/assert/assert.c
+++ b/assert/assert.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,1994-1996,1998,2001,2002,2005
+/* Copyright (C) 1991,1994-1996,1998,2001,2002,2005,2009
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -18,6 +18,7 @@
02111-1307 USA. */
#include <assert.h>
+#include <atomic.h>
#include <libintl.h>
#include <stdio.h>
#include <stdlib.h>
@@ -43,6 +44,7 @@ extern const char *__progname;
# include FATAL_PREPARE_INCLUDE
#endif
+
#undef __assert_fail
void
__assert_fail (const char *assertion, const char *file, unsigned int line,
@@ -64,9 +66,10 @@ __assert_fail (const char *assertion, const char *file, unsigned int line,
(void) __fxprintf (NULL, "%s", buf);
(void) fflush (stderr);
- /* We have to free the buffer since the application might catch the
- SIGABRT. */
- free (buf);
+ /* We have to free the old buffer since the application might
+ catch the SIGABRT signal. */
+ char *old = atomic_exchange_acq (&__abort_msg, buf);
+ free (old);
}
else
{
diff --git a/elf/dl-lookup.c b/elf/dl-lookup.c
index 92dc7b226a..707d650719 100644
--- a/elf/dl-lookup.c
+++ b/elf/dl-lookup.c
@@ -1,5 +1,5 @@
/* Look up a symbol in the loaded objects.
- Copyright (C) 1995-2005, 2006, 2007 Free Software Foundation, Inc.
+ Copyright (C) 1995-2005, 2006, 2007, 2009 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -542,15 +542,20 @@ _dl_debug_bindings (const char *undef_name, struct link_map *undef_map,
conflict = 1;
}
- if (value->s
- && (__builtin_expect (ELFW(ST_TYPE) (value->s->st_info)
- == STT_TLS, 0)))
- type_class = 4;
+ if (value->s)
+ {
+ if (__builtin_expect (ELFW(ST_TYPE) (value->s->st_info)
+ == STT_TLS, 0))
+ type_class = 4;
+ else if (__builtin_expect (ELFW(ST_TYPE) (value->s->st_info)
+ == STT_GNU_IFUNC, 0))
+ type_class |= 8;
+ }
if (conflict
|| GLRO(dl_trace_prelink_map) == undef_map
|| GLRO(dl_trace_prelink_map) == NULL
- || type_class == 4)
+ || type_class >= 4)
{
_dl_printf ("%s 0x%0*Zx 0x%0*Zx -> 0x%0*Zx 0x%0*Zx ",
conflict ? "conflict" : "lookup",
diff --git a/include/stdlib.h b/include/stdlib.h
index 883bc34d4a..d90e6ff4fe 100644
--- a/include/stdlib.h
+++ b/include/stdlib.h
@@ -221,6 +221,9 @@ extern int __qfcvt_r (long double __value, int __ndigit,
extern void *__default_morecore (ptrdiff_t) __THROW;
libc_hidden_proto (__default_morecore)
+extern char *__abort_msg;
+libc_hidden_proto (__abort_msg)
+
__END_DECLS
#undef __Need_M_And_C
diff --git a/inet/netinet/icmp6.h b/inet/netinet/icmp6.h
index 0cb1aa6a6c..82893daa99 100644
--- a/inet/netinet/icmp6.h
+++ b/inet/netinet/icmp6.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-1997,2000,2006 Free Software Foundation, Inc.
+/* Copyright (C) 1991-1997,2000,2006,2009 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -339,7 +339,7 @@ struct nd_opt_home_agent_info
uint8_t nd_opt_home_agent_info_type;
uint8_t nd_opt_home_agent_info_len;
uint16_t nd_opt_home_agent_info_reserved;
- int16_t nd_opt_home_agent_info_preference;
+ uint16_t nd_opt_home_agent_info_preference;
uint16_t nd_opt_home_agent_info_lifetime;
};
diff --git a/libio/tst-fgetwc.c b/libio/tst-fgetwc.c
index 9ccfeb1526..06e4a424ff 100644
--- a/libio/tst-fgetwc.c
+++ b/libio/tst-fgetwc.c
@@ -6,7 +6,7 @@
static int
do_test (void)
{
- if (setlocale (LC_ALL, "de_DE.utf8") == NULL)
+ if (setlocale (LC_ALL, "de_DE.UTF-8") == NULL)
{
puts ("setlocale failed");
return 1;
diff --git a/localedata/ChangeLog b/localedata/ChangeLog
index 2f8c9e8b18..a55ab50b76 100644
--- a/localedata/ChangeLog
+++ b/localedata/ChangeLog
@@ -1,3 +1,10 @@
+2009-06-15 Ulrich Drepper <drepper@redhat.com>
+
+ [BZ #10213]
+ * SUPPORTED (SUPPORTED-LOCALES): Add dv_MV.UTF-8 entry.
+ * locales/dv_MV: New file.
+ Contributed by sofwathullah.mohamed@gmail.com.
+
2009-06-09 Ulrich Drepper <drepper@redhat.com>
* locales/ur_IN: New file.
diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
index d05c623d82..ceb2415c19 100644
--- a/localedata/SUPPORTED
+++ b/localedata/SUPPORTED
@@ -99,6 +99,7 @@ de_DE@euro/ISO-8859-15 \
de_LU.UTF-8/UTF-8 \
de_LU/ISO-8859-1 \
de_LU@euro/ISO-8859-15 \
+dv_MV/UTF-8 \
dz_BT/UTF-8 \
el_GR.UTF-8/UTF-8 \
el_GR/ISO-8859-7 \
diff --git a/localedata/locales/dv_MV b/localedata/locales/dv_MV
new file mode 100644
index 0000000000..064da132a8
--- /dev/null
+++ b/localedata/locales/dv_MV
@@ -0,0 +1,180 @@
+comment_char %
+escape_char /
+%
+% Dhivehi Language Locale for Maldives
+% Source:
+% Contact: Sofwathuallah Mohamed
+% Email: smohamed@wataniya-maldives.com , sofwath@hotmail.com
+% Language: dv
+% Territory: MV
+% Revision: 0.1
+% Date: 2006-05-13
+% Users: general
+% Charset: utf-8
+% Distribution and use is free, also
+% for commercial purposes.
+
+LC_IDENTIFICATION
+title "Dhivehi Language Locale for Maldives"
+source ""
+address ""
+contact ""
+email "sofwath@hotmail.com"
+tel ""
+fax ""
+language "Divehi"
+territory "Maldives"
+revision "0.1"
+date "2006-05-13"
+%
+category "dv_MV:2006";LC_IDENTIFICATION
+category "dv_MV:2006";LC_CTYPE
+category "dv_MV:2006";LC_COLLATE
+category "dv_MV:2006";LC_TIME
+category "dv_MV:2006";LC_NUMERIC
+category "dv_MV:2006";LC_MONETARY
+category "dv_MV:2006";LC_MESSAGES
+category "dv_MV:2006";LC_PAPER
+category "dv_MV:2006";LC_NAME
+category "dv_MV:2006";LC_ADDRESS
+category "dv_MV:2006";LC_TELEPHONE
+
+END LC_IDENTIFICATION
+
+LC_CTYPE
+copy "i18n"
+translit_start
+include "translit_combining";""
+
+
+translit_end
+END LC_CTYPE
+
+LC_COLLATE
+copy "en_DK"
+END LC_COLLATE
+
+LC_MONETARY
+% it is meant to be MVR, could you see if it is correct please
+int_curr_symbol "<U004D><U0056><U0052><U0020>"
+currency_symbol "<U0783><U002E>"
+mon_decimal_point "<U002E>"
+mon_thousands_sep "<U002C>"
+mon_grouping 3;3
+positive_sign ""
+negative_sign "<U002D>"
+int_frac_digits 2
+frac_digits 2
+p_cs_precedes 1
+p_sep_by_space 1
+n_cs_precedes 1
+n_sep_by_space 0
+p_sign_posn 2
+n_sign_posn 1
+END LC_MONETARY
+
+LC_NUMERIC
+decimal_point "<U002E>"
+thousands_sep "<U002C>"
+grouping 3;3
+END LC_NUMERIC
+
+% Since their is no abbreviated version of the days in dhivehi I have used the
+% full names of the days and months
+LC_TIME
+
+abday "<U0787><U07A7><U078B><U07A9><U0787><U07B0><U078C><U07A6>";/
+ "<U0780><U07AF><U0789><U07A6>";/
+ "<U0787><U07A6><U0782><U07B0><U078E><U07A7><U0783><U07A6>";/
+ "<U0784><U07AA><U078B><U07A6>";/
+ "<U0784><U07AA><U0783><U07A7><U0790><U07B0><U078A><U07A6><U078C><U07A8>";/
+ "<U0780><U07AA><U0786><U07AA><U0783><U07AA>";/
+ "<U0780><U07AE><U0782><U07A8><U0780><U07A8><U0783><U07AA>"
+day "<U0787><U07A7><U078B><U07A9><U0787><U07B0><U078C><U07A6>";/
+ "<U0780><U07AF><U0789><U07A6>";/
+ "<U0787><U07A6><U0782><U07B0><U078E><U07A7><U0783><U07A6>";/
+ "<U0784><U07AA><U078B><U07A6>";/
+ "<U0784><U07AA><U0783><U07A7><U0790><U07B0><U078A><U07A6><U078C><U07A8>";/
+ "<U0780><U07AA><U0786><U07AA><U0783><U07AA>";/
+ "<U0780><U07AE><U0782><U07A8><U0780><U07A8><U0783><U07AA>"
+abmon "<U0796><U07AC><U0782><U07AA><U0787><U07A6><U0783><U07A9>";/
+ "<U078A><U07AC><U0784><U07B0><U0783><U07AA><U0787><U07A6><U0783><U07A9>";/
+ "<U0789><U07A7><U0783><U0797><U07B0>";/
+ "<U0787><U07AC><U0795><U07B0><U0783><U07A9><U078D><U07B0>";/
+ "<U0789><U07AC><U0787><U07A8>";/
+ "<U0796><U07AB><U0782><U07B0>";/
+ "<U0796><U07AA><U078D><U07A6><U0787><U07A8>";/
+ "<U0787><U07AE><U078E><U07A6><U0790><U07B0><U0793><U07B0>";/
+ "<U0790><U07AC><U0795><U07B0><U0793><U07AC><U0782><U07B0><U0784><U07A6><U0783>";/
+ "<U0787><U07AE><U0786><U07B0><U0793><U07AB><U0784><U07A6><U0783>";/
+ "<U0782><U07AE><U0788><U07AC><U0782><U07B0><U0784><U07A6><U0783>";/
+ "<U0791><U07A8><U0790><U07AC><U0782><U07B0><U0784><U07A6><U0783>"
+mon "<U0796><U07AC><U0782><U07AA><U0787><U07A6><U0783><U07A9>";/
+ "<U078A><U07AC><U0784><U07B0><U0783><U07AA><U0787><U07A6><U0783><U07A9>";/
+ "<U0789><U07A7><U0783><U0797><U07B0>";/
+ "<U0787><U07AC><U0795><U07B0><U0783><U07A9><U078D><U07B0>";/
+ "<U0789><U07AC><U0787><U07A8>";/
+ "<U0796><U07AB><U0782><U07B0>";/
+ "<U0796><U07AA><U078D><U07A6><U0787><U07A8>";/
+ "<U0787><U07AE><U078E><U07A6><U0790><U07B0><U0793><U07B0>";/
+ "<U0790><U07AC><U0795><U07B0><U0793><U07AC><U0782><U07B0><U0784><U07A6><U0783>";/
+ "<U0787><U07AE><U0786><U07B0><U0793><U07AB><U0784><U07A6><U0783>";/
+ "<U0782><U07AE><U0788><U07AC><U0782><U07B0><U0784><U07A6><U0783>";/
+ "<U0791><U07A8><U0790><U07AC><U0782><U07B0><U0784><U07A6><U0783>"
+
+% Date Time Format
+d_t_fmt "<U0025><U005A><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0059><U0020><U0025><U0062><U0020><U0025><U0064><U0020><U0025><U0061>"
+
+% date Format. I have put this in reverse order to try to get the date
+% in R->L order
+d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>"
+
+% time format
+t_fmt "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
+
+%<U0635> stands for <U0635><U0628><U062D>
+%<U0634> stands for <U0634><U0627><U0645>
+%am_pm "<U0020>";"<U0789><U07AC><U0782><U07B0><U078B><U07AA><U0782><U07AA><U0782><U07B0><U0787><U07A6><U0784><U07AA><U0783><U07A7>"
+am_pm "<U0789><U0786>";"<U0789><U078A>"
+
+% time format in 12 hour clock
+t_fmt_ampm "<U0025><U0050><U0020><U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>"
+
+% display columns right to left ?
+cal_direction 3
+END LC_TIME
+
+LC_MESSAGES
+yesexpr "<U005E><U005B><U0079><U0059><U005D><U002E><U002A>"
+noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+END LC_MESSAGES
+
+LC_PAPER
+height 297
+width 210
+END LC_PAPER
+
+LC_TELEPHONE
+tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
+<U006C>"
+tel_dom_fmt "<U0025><U0061><U0020><U0025><U006C>"
+int_select "<U0030><U0030>"
+int_prefix "<U0039><U0036><U0030>"
+END LC_TELEPHONE
+
+LC_MEASUREMENT
+measurement 1
+END LC_MEASUREMENT
+
+LC_NAME
+name_fmt "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
+<U0025><U006D><U0025><U0074><U0025><U0066>"
+END LC_NAME
+
+LC_ADDRESS
+postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+<U004E><U0025><U0025><U007A><U0020><U0025><U0054><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+END LC_ADDRESS
diff --git a/login/programs/pt_chown.c b/login/programs/pt_chown.c
index 485eddabc9..5167b29225 100644
--- a/login/programs/pt_chown.c
+++ b/login/programs/pt_chown.c
@@ -1,5 +1,5 @@
/* pt_chmod - helper program for `grantpt'.
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2009 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by C. Scott Ananian <cananian@alumni.princeton.edu>, 1998.
@@ -119,12 +119,13 @@ do_pt_chown (void)
/* Set the owner to the real user ID, and the group to that special
group ID. */
- if (chown (pty, getuid (), gid) < 0)
+ if (st.st_gid != gid && chown (pty, getuid (), gid) < 0)
return FAIL_EACCES;
/* Set the permission mode to readable and writable by the owner,
and writable by the group. */
- if (chmod (pty, S_IRUSR|S_IWUSR|S_IWGRP) < 0)
+ if ((st.st_mode & ACCESSPERMS) != (S_IRUSR|S_IWUSR|S_IWGRP)
+ && chmod (pty, S_IRUSR|S_IWUSR|S_IWGRP) < 0)
return FAIL_EACCES;
return 0;
diff --git a/misc/sys/select.h b/misc/sys/select.h
index 2a408433ec..f4a37be551 100644
--- a/misc/sys/select.h
+++ b/misc/sys/select.h
@@ -1,5 +1,5 @@
/* `fd_set' type and related macros, and `select'/`pselect' declarations.
- Copyright (C) 1996,97,98,99,2000,01,02,2003 Free Software Foundation, Inc.
+ Copyright (C) 1996-2003, 2009 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -59,7 +59,7 @@ typedef long int __fd_mask;
#undef __FDELT
#undef __FDMASK
/* It's easier to assume 8-bit bytes than to get CHAR_BIT. */
-#define __NFDBITS (8 * sizeof (__fd_mask))
+#define __NFDBITS (8 * (int) sizeof (__fd_mask))
#define __FDELT(d) ((d) / __NFDBITS)
#define __FDMASK(d) ((__fd_mask) 1 << ((d) % __NFDBITS))
diff --git a/nis/nss_nis/nis-pwd.c b/nis/nss_nis/nis-pwd.c
index 1b5206ad6d..fdc7dc9e1e 100644
--- a/nis/nss_nis/nis-pwd.c
+++ b/nis/nss_nis/nis-pwd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-1998,2001,2002,2003,2006 Free Software Foundation, Inc.
+/* Copyright (C) 1996-1998,2001-2003,2006,2009 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
@@ -116,7 +116,7 @@ internal_nis_endpwent (void)
oldkeylen = 0;
}
- struct response_t *curr = intern.next;
+ struct response_t *curr = intern.start;
while (curr != NULL)
{
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index fce9209859..3eb85d9dea 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,18 @@
+2009-06-12 Ulrich Drepper <drepper@redhat.com>
+
+ * Makefile (libpthread-routines): Add pthread_sigqueue.
+ * Versions: Add pthread_sigqueue for GLIBC_2.11.
+ * sysdeps/pthread/bits/sigthread.h: Declare pthread_sigqueue.
+ * sysdeps/unix/sysv/linux/pthread_sigqueue.c: New file.
+
+2009-06-11 Ulrich Drepper <drepper@redhat.com>
+
+ [BZ #10262]
+ * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
+ (LOAD_FUTEX_WAIT_ABS): Fix futex parameter in case private futexes
+ cannot be assumed.
+ Patch by Bryan Kadzban <bz-glibc@kdzbn.homelinux.net>.
+
2009-05-16 Ulrich Drepper <drepper@redhat.com>
* libc-cancellation.c: Move __libc_cleanup_routine to...
diff --git a/nptl/Makefile b/nptl/Makefile
index f2fba243aa..c99aec8ae0 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -86,7 +86,7 @@ libpthread-routines = nptl-init vars events version \
pthread_barrierattr_setpshared \
pthread_key_create pthread_key_delete \
pthread_getspecific pthread_setspecific \
- pthread_sigmask pthread_kill \
+ pthread_sigmask pthread_kill pthread_sigqueue \
pthread_cancel pthread_testcancel \
pthread_setcancelstate pthread_setcanceltype \
pthread_once \
diff --git a/nptl/Versions b/nptl/Versions
index 54b9b9c6a5..09098bf987 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -240,6 +240,10 @@ libpthread {
pthread_mutex_getprioceiling; pthread_mutex_setprioceiling;
};
+ GLIBC_2.11 {
+ pthread_sigqueue;
+ };
+
GLIBC_PRIVATE {
__pthread_initialize_minimal;
__pthread_clock_gettime; __pthread_clock_settime;
diff --git a/nptl/sysdeps/pthread/bits/sigthread.h b/nptl/sysdeps/pthread/bits/sigthread.h
index 960bde18a9..9a524e57db 100644
--- a/nptl/sysdeps/pthread/bits/sigthread.h
+++ b/nptl/sysdeps/pthread/bits/sigthread.h
@@ -1,5 +1,5 @@
/* Signal handling function for threaded programs.
- Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2002, 2009 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -35,4 +35,10 @@ extern int pthread_sigmask (int __how,
/* Send signal SIGNO to the given thread. */
extern int pthread_kill (pthread_t __threadid, int __signo) __THROW;
+#ifdef __USE_GNU
+/* Queue signal and data to a thread. */
+extern int pthread_sigqueue (pthread_t __threadid, int __signo,
+ const union sigval __value) __THROW;
+#endif
+
#endif /* bits/sigthread.h */
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
index 056b72900a..7578c7ece0 100644
--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
@@ -60,7 +60,7 @@
# define LOAD_FUTEX_WAIT_ABS(reg) \
xorl $FUTEX_PRIVATE_FLAG, reg ; \
andl %gs:PRIVATE_FUTEX, reg ; \
- orl $FUTEX_WAIT | FUTEX_CLOCK_REALTIME, reg
+ orl $FUTEX_WAIT_BITSET | FUTEX_CLOCK_REALTIME, reg
# define LOAD_FUTEX_WAKE(reg) \
xorl $FUTEX_PRIVATE_FLAG, reg ; \
andl %gs:PRIVATE_FUTEX, reg ; \
diff --git a/nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c b/nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c
new file mode 100644
index 0000000000..4440703b6a
--- /dev/null
+++ b/nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c
@@ -0,0 +1,83 @@
+/* Copyright (C) 2009 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2009.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#include <errno.h>
+#include <signal.h>
+#include <string.h>
+#include <unistd.h>
+#include <pthreadP.h>
+#include <tls.h>
+#include <sysdep.h>
+#include <kernel-features.h>
+
+
+int
+pthread_sigqueue (threadid, signo, value)
+ pthread_t threadid;
+ int signo;
+ const union sigval value;
+{
+#ifdef __NR_rt_tgsigqueueinfo
+ struct pthread *pd = (struct pthread *) threadid;
+
+ /* Make sure the descriptor is valid. */
+ if (DEBUGGING_P && INVALID_TD_P (pd))
+ /* Not a valid thread handle. */
+ return ESRCH;
+
+ /* Force load of pd->tid into local variable or register. Otherwise
+ if a thread exits between ESRCH test and tgkill, we might return
+ EINVAL, because pd->tid would be cleared by the kernel. */
+ pid_t tid = atomic_forced_read (pd->tid);
+ if (__builtin_expect (tid <= 0, 0))
+ /* Not a valid thread handle. */
+ return ESRCH;
+
+ /* Disallow sending the signal we use for cancellation, timers, for
+ for the setxid implementation. */
+ if (signo == SIGCANCEL || signo == SIGTIMER || signo == SIGSETXID)
+ return EINVAL;
+
+ /* Set up the siginfo_t structure. */
+ siginfo_t info;
+ memset (&info, '\0', sizeof (siginfo_t));
+ info.si_signo = signo;
+ info.si_code = SI_QUEUE;
+ info.si_pid = THREAD_GETMEM (THREAD_SELF, pid);
+ info.si_uid = getuid ();
+ info.si_value = value;
+
+ /* We have a special syscall to do the work. */
+ INTERNAL_SYSCALL_DECL (err);
+
+ /* One comment: The PID field in the TCB can temporarily be changed
+ (in fork). But this must not affect this code here. Since this
+ function would have to be called while the thread is executing
+ fork, it would have to happen in a signal handler. But this is
+ no allowed, pthread_sigqueue is not guaranteed to be async-safe. */
+ int val = INTERNAL_SYSCALL (rt_tgsigqueueinfo, err, 4,
+ THREAD_GETMEM (THREAD_SELF, pid),
+ tid, signo, &info);
+
+ return (INTERNAL_SYSCALL_ERROR_P (val, err)
+ ? INTERNAL_SYSCALL_ERRNO (val, err) : 0);
+#else
+ return ENOSYS;
+#endif
+}
diff --git a/nss/getent.c b/nss/getent.c
index ea5608f1e2..dbcae26809 100644
--- a/nss/getent.c
+++ b/nss/getent.c
@@ -24,6 +24,7 @@
#include <ctype.h>
#include <error.h>
#include <grp.h>
+#include <gshadow.h>
#include <libintl.h>
#include <locale.h>
#include <mcheck.h>
@@ -232,6 +233,70 @@ group_keys (int number, char *key[])
return result;
}
+/* This is for gshadow */
+static void
+print_gshadow (struct sgrp *sg)
+{
+ unsigned int i = 0;
+
+ printf ("%s:%s:",
+ sg->sg_namp ? sg->sg_namp : "",
+ sg->sg_passwd ? sg->sg_passwd : "");
+
+ while (sg->sg_adm[i] != NULL)
+ {
+ fputs_unlocked (sg->sg_adm[i], stdout);
+ ++i;
+ if (sg->sg_adm[i] != NULL)
+ putchar_unlocked (',');
+ }
+
+ putchar_unlocked (':');
+
+ i = 0;
+ while (sg->sg_mem[i] != NULL)
+ {
+ fputs_unlocked (sg->sg_mem[i], stdout);
+ ++i;
+ if (sg->sg_mem[i] != NULL)
+ putchar_unlocked (',');
+ }
+
+ putchar_unlocked ('\n');
+}
+
+static int
+gshadow_keys (int number, char *key[])
+{
+ int result = 0;
+ int i;
+
+ if (number == 0)
+ {
+ struct sgrp *sg;
+
+ setsgent ();
+ while ((sg = getsgent ()) != NULL)
+ print_gshadow (sg);
+ endsgent ();
+ return result;
+ }
+
+ for (i = 0; i < number; ++i)
+ {
+ struct sgrp *sg;
+
+ sg = getsgnam (key[i]);
+
+ if (sg == NULL)
+ result = 2;
+ else
+ print_gshadow (sg);
+ }
+
+ return result;
+}
+
/* This is for hosts */
static void
print_hosts (struct hostent *host)
@@ -756,6 +821,7 @@ D(ahostsv6)
D(aliases)
D(ethers)
D(group)
+D(gshadow)
D(hosts)
D(netgroup)
D(networks)
diff --git a/po/sv.po b/po/sv.po
index 7c7937d59a..8ff80e491e 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,14 +1,14 @@
-# GNU libc message catalog for swedish
+# GNU libc message catalog for Swedish
# Copyright © 1996, 1998, 2001, 2002, 2003, 2006, 2008, 2009 Free Software Foundation, Inc.
# This file is distributed under the same license as the glibc package.
# Jan Djärv <jan.h.d@swipnet.se>, 1996, 1998, 2001, 2002, 2003, 2006, 2007, 2008, 2009
-# Revision: 1.60
+# Revision: 1.61
#
msgid ""
msgstr ""
"Project-Id-Version: libc 2.9.90\n"
"POT-Creation-Date: 2009-02-06 12:40-0800\n"
-"PO-Revision-Date: 2009-02-28 17:57+0100\n"
+"PO-Revision-Date: 2009-06-14 20:41+0200\n"
"Last-Translator: Jan Djärv <jan.h.d@swipnet.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"MIME-Version: 1.0\n"
@@ -295,11 +295,11 @@ msgstr "Användning: xtrace [FLAGGA]... PROGRAM [PROGRAMFLAGGA}...\\n"
#: debug/xtrace.sh:33
msgid "Try \\`xtrace --help' for more information.\\n"
-msgstr "Försök med \\\"xtrace --help\\\" för mer information\\n"
+msgstr "Försök med \"xtrace --help\" för mer information\\n"
#: debug/xtrace.sh:39
msgid "xtrace: option \\`$1' requires an argument.\\n"
-msgstr "xtrace: flaggan \\\"$1\\\" behöver ett argument\\n"
+msgstr "xtrace: flaggan \"$1\" behöver ett argument\\n"
#: debug/xtrace.sh:46
msgid ""
@@ -328,7 +328,7 @@ msgstr ""
#: debug/xtrace.sh:127
msgid "xtrace: unrecognized option \\`$1'\\n"
-msgstr "xtrace: okänd flagga \\\"$1\\\"\\n"
+msgstr "xtrace: okänd flagga \"$1\"\\n"
#: debug/xtrace.sh:140
msgid "No program name given\\n"
@@ -337,12 +337,12 @@ msgstr "Inget programnamn givet\\n"
#: debug/xtrace.sh:148
#, sh-format
msgid "executable \\`$program' not found\\n"
-msgstr "program \\\"$program\\\" hittades inte\\n"
+msgstr "program \"$program\" hittades inte\\n"
#: debug/xtrace.sh:152
#, sh-format
msgid "\\`$program' is no executable\\n"
-msgstr "\\\"$program\\\" är inte en körbar binär\\n"
+msgstr "\"$program\" är inte en körbar binär\\n"
#: dlfcn/dlinfo.c:64
msgid "RTLD_SELF used in code not dynamically loaded"
@@ -932,7 +932,7 @@ msgstr ""
#: elf/ldd.bash.in:82
msgid "ldd: option \\`$1' is ambiguous"
-msgstr "ldd: flaggan \\\"$1\\\" är tvetydig"
+msgstr "ldd: flaggan \"$1\" är tvetydig"
#: elf/ldd.bash.in:89
msgid "unrecognized option"
@@ -940,7 +940,7 @@ msgstr "okänd flagga"
#: elf/ldd.bash.in:90 elf/ldd.bash.in:128
msgid "Try \\`ldd --help' for more information."
-msgstr "Försök med \\\"ldd --help\\\" för mer information"
+msgstr "Försök med \"ldd --help\" för mer information"
#: elf/ldd.bash.in:127
msgid "missing file arguments"
@@ -1051,7 +1051,7 @@ msgstr "Inget mål på rad %d\n"
#: elf/sln.c:179
#, c-format
msgid "%s: destination must not be a directory\n"
-msgstr "%s: målet måste vara en katalog\n"
+msgstr "%s: målet måste inte vara en katalog\n"
#: elf/sln.c:185
#, c-format
@@ -2824,11 +2824,11 @@ msgstr "felaktig mcheck_status, biblioteket är felaktigt\n"
#: malloc/memusage.sh:27
msgid "Try \\`memusage --help' for more information."
-msgstr "Försök med \\\"memusage --help\\\" för mer information"
+msgstr "Försök med \"memusage --help\" för mer information"
#: malloc/memusage.sh:33
msgid "memusage: option \\`$1' requires an argument"
-msgstr "memusage: flaggan \\\"$1\\\" behöver ett argument"
+msgstr "memusage: flaggan \"$1\" behöver ett argument"
#: malloc/memusage.sh:39
msgid ""
@@ -2897,11 +2897,11 @@ msgstr ""
#: malloc/memusage.sh:193
msgid "memusage: option \\`${1##*=}' is ambiguous"
-msgstr "memusage: flaggan \\\"${1##*=}\\\" är tvetydig"
+msgstr "memusage: flaggan \"${1##*=}\" är tvetydig"
#: malloc/memusage.sh:202
msgid "memusage: unrecognized option \\`$1'"
-msgstr "memusage: okänd flagga \\\"$1\\\""
+msgstr "memusage: okänd flagga \"$1\""
#: malloc/memusage.sh:215
msgid "No program name given"
@@ -3463,7 +3463,7 @@ msgstr "DES-post för nätnamn %s är inte unikt\n"
#: nis/nss_nisplus/nisplus-publickey.c:220
#, c-format
msgid "netname2user: missing group id list in `%s'"
-msgstr "netname2user: gruppid-lista saknas i \"%s\"."
+msgstr "netname2user: gruppid-lista saknas i \"%s\""
#: nis/nss_nisplus/nisplus-publickey.c:302
#: nis/nss_nisplus/nisplus-publickey.c:308
@@ -4371,10 +4371,10 @@ msgid ""
"\n"
msgstr ""
"Användning: getconf [-v SPEC] VAR\n"
-" eller: getconf [-v SPEC] PATH_VAR PATH\n"
+" eller: getconf [-v SPEC] VÄG_VAR VÄG\n"
"\n"
-"Hämta konfigureringsvärdet för variabeln VAR, eller för variabeln PATH_VAR\n"
-"för sökväg PATH. Om SPEC är given hämta värden för kompileringsspecifikationen\n"
+"Hämta konfigureringsvärdet för variabeln VAR, eller för variabeln VÄG_VAR\n"
+"för sökväg VÄG. Om SPEC är given hämta värden för kompileringsspecifikationen\n"
"SPEC.\n"
"\n"
@@ -4431,13 +4431,13 @@ msgstr "%s: okänd flagga \"%c%s\"\n"
#: posix/getopt.c:800 posix/getopt.c:803
#, c-format
msgid "%s: invalid option -- '%c'\n"
-msgstr "%s: ogiltig flagga -- %c\n"
+msgstr "%s: ogiltig flagga -- \"%c\"\n"
#: posix/getopt.c:853 posix/getopt.c:870 posix/getopt.c:1073
#: posix/getopt.c:1091
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
-msgstr "%s: flaggan behöver ett argument -- %c\n"
+msgstr "%s: flaggan behöver ett argument -- \"%c\"\n"
#: posix/getopt.c:923 posix/getopt.c:939
#, c-format
@@ -4611,7 +4611,7 @@ msgstr "minnet slut\n"
#: sunrpc/auth_unix.c:350
msgid "auth_unix.c: Fatal marshalling problem"
-msgstr "auth_unix.c - Fatalt kodningsproblem"
+msgstr "auth_unix.c: Fatalt kodningsproblem"
#: sunrpc/clnt_perr.c:105 sunrpc/clnt_perr.c:121
#, c-format
@@ -4907,7 +4907,7 @@ msgstr "'-c\t\tgenerera XDR-funktioner\n"
#: sunrpc/rpc_main.c:1473
#, c-format
msgid "-C\t\tANSI C mode\n"
-msgstr "-C\t\tANSI-läge\n"
+msgstr "-C\t\tANSI C-läge\n"
#: sunrpc/rpc_main.c:1474
#, c-format
@@ -4917,7 +4917,7 @@ msgstr "-Dnamn[=värde]\tdefiniera en symbol (samma som #define)\n"
#: sunrpc/rpc_main.c:1475
#, c-format
msgid "-h\t\tgenerate header file\n"
-msgstr "-h\t\tgenerera huvudfiler\n"
+msgstr "-h\t\tgenerera huvudfil\n"
#: sunrpc/rpc_main.c:1476
#, c-format
diff --git a/posix/tst-cpucount.c b/posix/tst-cpucount.c
index fe3cded732..b3691a18da 100644
--- a/posix/tst-cpucount.c
+++ b/posix/tst-cpucount.c
@@ -1,5 +1,6 @@
#include <sched.h>
#include <stdio.h>
+#include <sys/param.h>
static int
do_test (void)
@@ -8,7 +9,7 @@ do_test (void)
CPU_ZERO (&c);
- for (int cnt = 0; cnt < 130; ++cnt)
+ for (int cnt = 0; cnt < MIN (CPU_SETSIZE, 130); ++cnt)
{
int n = CPU_COUNT (&c);
if (n != cnt)
diff --git a/resolv/res_send.c b/resolv/res_send.c
index 25a854f72e..39c69da2bc 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -1008,7 +1008,7 @@ send_dg(res_state statp,
seconds /= statp->nscount;
if (seconds <= 0)
seconds = 1;
- bool single_request = ((statp->options) & RES_SNGLKUP) != 0;// XXX
+ bool single_request = (statp->options & RES_SNGLKUP) != 0;// XXX
int save_gotsomewhere = *gotsomewhere;
retry:
evNowTime(&now);
@@ -1059,6 +1059,7 @@ send_dg(res_state statp,
have received the first answer. */
if (!single_request)
{
+ statp->options |= RES_SNGLKUP;
single_request = true;
*gotsomewhere = save_gotsomewhere;
goto retry;
diff --git a/stdlib/Versions b/stdlib/Versions
index 93c68f6e31..3e7b8921c4 100644
--- a/stdlib/Versions
+++ b/stdlib/Versions
@@ -104,5 +104,7 @@ libc {
# functions which have an additional interface since they are
# are cancelable.
__libc_system;
+ # Variable which needs a dynamic symbol table entry.
+ __abort_msg;
}
}
diff --git a/stdlib/abort.c b/stdlib/abort.c
index 00788f22c7..3c188c9516 100644
--- a/stdlib/abort.c
+++ b/stdlib/abort.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,93,95,96,97,98,2001,02 Free Software Foundation, Inc.
+/* Copyright (C) 1991,93,1995-1998,2001,02,2009 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -36,6 +36,10 @@
# define fflush(s) _IO_flush_all_lockp (0)
#endif
+/* Exported variable to locate abort message in core files etc. */
+char *__abort_msg __attribute__ ((nocommon));
+libc_hidden_def (__abort_msg)
+
/* We must avoid to run in circles. Therefore we remember how far we
already got. */
static int stage;
diff --git a/sysdeps/i386/dl-irel.h b/sysdeps/i386/dl-irel.h
index 810a35050b..30385a1ef8 100644
--- a/sysdeps/i386/dl-irel.h
+++ b/sysdeps/i386/dl-irel.h
@@ -35,7 +35,7 @@ elf_irel (const Elf32_Rel *reloc)
if (__builtin_expect (r_type == R_386_IRELATIVE, 1))
{
- Elf64_Addr value = ((Elf32_Addr (*) (void)) (*reloc_addr)) ();
+ Elf32_Addr value = ((Elf32_Addr (*) (void)) (*reloc_addr)) ();
*reloc_addr = value;
}
else
diff --git a/sysdeps/posix/libc_fatal.c b/sysdeps/posix/libc_fatal.c
index c611b84363..4f11c0fcb0 100644
--- a/sysdeps/posix/libc_fatal.c
+++ b/sysdeps/posix/libc_fatal.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993,1994,1995,1997,2000,2004,2005
+/* Copyright (C) 1993-1995,1997,2000,2004,2005,2009
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -17,6 +17,7 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
+#include <atomic.h>
#include <errno.h>
#include <fcntl.h>
#include <paths.h>
@@ -123,6 +124,20 @@ __libc_message (int do_abort, const char *fmt, ...)
if (TEMP_FAILURE_RETRY (__writev (fd, iov, nlist)) == total)
written = true;
+
+ char *buf = do_abort ? malloc (total + 1) : NULL;
+ if (buf != NULL)
+ {
+ char *wp = buf;
+ for (int cnt = 0; cnt < nlist; ++cnt)
+ wp = mempcpy (wp, iov[cnt].iov_base, iov[cnt].iov_len);
+ *wp = '\0';
+
+ /* We have to free the old buffer since the application might
+ catch the SIGABRT signal. */
+ char *old = atomic_exchange_acq (&__abort_msg, buf);
+ free (old);
+ }
}
va_end (ap);
diff --git a/sysdeps/unix/sysv/linux/grantpt.c b/sysdeps/unix/sysv/linux/grantpt.c
index b894b8b631..c858f89c8b 100644
--- a/sysdeps/unix/sysv/linux/grantpt.c
+++ b/sysdeps/unix/sysv/linux/grantpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2001, 2002, 2009 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -70,9 +70,16 @@ grantpt (int fd)
return -1;
/* If the slave pseudo terminal lives on a `devpts' filesystem, the
- ownership and access permission are already set. */
+ ownership is already set and the access permission might already
+ be set. */
if (fsbuf.f_type == DEVPTS_SUPER_MAGIC || fsbuf.f_type == DEVFS_SUPER_MAGIC)
- return 0;
+ {
+ struct stat64 st;
+
+ if (fstat (fd, &st) == 0
+ && (st.st_mode & ACCESSPERMS) == (S_IRUSR|S_IWUSR|S_IWGRP))
+ return 0;
+ }
return __unix_grantpt (fd);
}
diff --git a/sysdeps/unix/sysv/linux/libc_fatal.c b/sysdeps/unix/sysv/linux/libc_fatal.c
index c7fac6ab51..7287f4ef6c 100644
--- a/sysdeps/unix/sysv/linux/libc_fatal.c
+++ b/sysdeps/unix/sysv/linux/libc_fatal.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 1993-1995,1997,2000,2002-2005 Free Software Foundation, Inc.
+/* Copyright (C) 1993-1995,1997,2000,2002-2005,2009
+ Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,6 +17,7 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
+#include <atomic.h>
#include <errno.h>
#include <fcntl.h>
#include <paths.h>
@@ -131,6 +133,20 @@ __libc_message (int do_abort, const char *fmt, ...)
if (cnt == total)
written = true;
+
+ char *buf = do_abort ? malloc (total + 1) : NULL;
+ if (buf != NULL)
+ {
+ char *wp = buf;
+ for (int cnt = 0; cnt < nlist; ++cnt)
+ wp = mempcpy (wp, iov[cnt].iov_base, iov[cnt].iov_len);
+ *wp = '\0';
+
+ /* We have to free the old buffer since the application might
+ catch the SIGABRT signal. */
+ char *old = atomic_exchange_acq (&__abort_msg, buf);
+ free (old);
+ }
}
va_end (ap);
diff --git a/sysdeps/x86_64/bits/select.h b/sysdeps/x86_64/bits/select.h
index 7f23cb59b1..5f31b84080 100644
--- a/sysdeps/x86_64/bits/select.h
+++ b/sysdeps/x86_64/bits/select.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 1999, 2001, 2008 Free Software Foundation, Inc.
+/* Copyright (C) 1997,1998,1999,2001,2008,2009 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -27,14 +27,8 @@
# if __WORDSIZE == 64
# define __FD_ZERO_STOS "stosq"
-# define __FD_SET_BTS "btsq"
-# define __FD_CLR_BTR "btrq"
-# define __FD_ISSET_BT "btq"
# else
# define __FD_ZERO_STOS "stosl"
-# define __FD_SET_BTS "btsl"
-# define __FD_CLR_BTR "btrl"
-# define __FD_ISSET_BT "btl"
# endif
# define __FD_ZERO(fdsp) \
@@ -48,26 +42,6 @@
: "memory"); \
} while (0)
-# define __FD_SET(fd, fdsp) \
- __asm__ __volatile__ (__FD_SET_BTS " %1,%0" \
- : "=m" (__FDS_BITS (fdsp)[__FDELT (fd)]) \
- : "r" (((int) (fd)) % __NFDBITS) \
- : "cc","memory")
-# define __FD_CLR(fd, fdsp) \
- __asm__ __volatile__ (__FD_CLR_BTR " %1,%0" \
- : "=m" (__FDS_BITS (fdsp)[__FDELT (fd)]) \
- : "r" (((int) (fd)) % __NFDBITS) \
- : "cc","memory")
-# define __FD_ISSET(fd, fdsp) \
- (__extension__ \
- ({register char __result; \
- __asm__ __volatile__ (__FD_ISSET_BT " %1,%2 ; setcb %b0" \
- : "=q" (__result) \
- : "r" (((int) (fd)) % __NFDBITS), \
- "m" (__FDS_BITS (fdsp)[__FDELT (fd)]) \
- : "cc"); \
- __result; }))
-
#else /* ! GNU CC */
/* We don't use `memset' because this would require a prototype and
@@ -79,8 +53,10 @@
for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i) \
__FDS_BITS (__arr)[__i] = 0; \
} while (0)
-# define __FD_SET(d, set) (__FDS_BITS (set)[__FDELT (d)] |= __FDMASK (d))
-# define __FD_CLR(d, set) (__FDS_BITS (set)[__FDELT (d)] &= ~__FDMASK (d))
-# define __FD_ISSET(d, set) (__FDS_BITS (set)[__FDELT (d)] & __FDMASK (d))
#endif /* GNU CC */
+
+#define __FD_SET(d, set) (__FDS_BITS (set)[__FDELT (d)] |= __FDMASK (d))
+#define __FD_CLR(d, set) (__FDS_BITS (set)[__FDELT (d)] &= ~__FDMASK (d))
+#define __FD_ISSET(d, set) \
+ ((__FDS_BITS (set)[__FDELT (d)] & __FDMASK (d)) != 0)
diff --git a/time/tzfile.c b/time/tzfile.c
index 970022379a..d8bd55a130 100644
--- a/time/tzfile.c
+++ b/time/tzfile.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-1993,1995-2001,2003,2004,2006, 2007
+/* Copyright (C) 1991-1993,1995-2001,2003,2004,2006,2007,2009
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -248,7 +248,7 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
+ num_transitions * (8 + 1)
+ num_types * 6
+ chars
- + num_leaps * 8
+ + num_leaps * 12
+ num_isstd
+ num_isgmt) - 1 : 0);
@@ -659,9 +659,7 @@ __tzfile_compute (time_t timer, int use_localtime,
__tzname[1] = __tzstring (&zone_names[strlen (zone_names) + 1]);
}
- *leap_correct = 0L;
- *leap_hit = 0;
- return;
+ goto leap;
}
else
{
@@ -762,6 +760,7 @@ __tzfile_compute (time_t timer, int use_localtime,
tp->tm_gmtoff = info->offset;
}
+ leap:
*leap_correct = 0L;
*leap_hit = 0;
diff --git a/timezone/africa b/timezone/africa
index 304e7d3b77..3f92eb4745 100644
--- a/timezone/africa
+++ b/timezone/africa
@@ -1,5 +1,7 @@
-# @(#)africa 8.16
# <pre>
+# @(#)africa 8.21
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
# 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
@@ -236,7 +238,46 @@ Rule Egypt 2007 only - Sep Thu>=1 23:00s 0 -
# unless discontinued, next DST may end Thursday 28 August 2008.
# From Paul Eggert (2007-08-17):
# For lack of better info, assume the new rule is last Thursday in August.
-Rule Egypt 2008 max - Aug lastThu 23:00s 0 -
+
+# From Petr Machata (2009-04-06):
+# The following appeared in Red Hat bugzilla[1] (edited):
+#
+# > $ zdump -v /usr/share/zoneinfo/Africa/Cairo | grep 2009
+# > /usr/share/zoneinfo/Africa/Cairo Thu Apr 23 21:59:59 2009 UTC = Thu =
+# Apr 23
+# > 23:59:59 2009 EET isdst=0 gmtoff=7200
+# > /usr/share/zoneinfo/Africa/Cairo Thu Apr 23 22:00:00 2009 UTC = Fri =
+# Apr 24
+# > 01:00:00 2009 EEST isdst=1 gmtoff=10800
+# > /usr/share/zoneinfo/Africa/Cairo Thu Aug 27 20:59:59 2009 UTC = Thu =
+# Aug 27
+# > 23:59:59 2009 EEST isdst=1 gmtoff=10800
+# > /usr/share/zoneinfo/Africa/Cairo Thu Aug 27 21:00:00 2009 UTC = Thu =
+# Aug 27
+# > 23:00:00 2009 EET isdst=0 gmtoff=7200
+#
+# > end date should be Thu Sep 24 2009 (Last Thursday in September at 23:59=
+# :59)
+# > http://support.microsoft.com/kb/958729/
+#
+# timeanddate[2] and another site I've found[3] also support that.
+#
+# [1] <a href="https://bugzilla.redhat.com/show_bug.cgi?id=492263">
+# https://bugzilla.redhat.com/show_bug.cgi?id=492263
+# </a>
+# [2] <a href="http://www.timeanddate.com/worldclock/clockchange.html?n=53">
+# http://www.timeanddate.com/worldclock/clockchange.html?n=53
+# </a>
+# [3] <a href="http://wwp.greenwichmeantime.com/time-zone/africa/egypt/">
+# http://wwp.greenwichmeantime.com/time-zone/africa/egypt/
+# </a>
+
+# From Arthur David Olson (2009-04-20):
+# In 2009 (and for the next several years), Ramadan ends before the fourth
+# Thursday in September; Egypt is expected to revert to the last Thursday
+# in September.
+Rule Egypt 2008 only - Aug lastThu 23:00s 0 -
+Rule Egypt 2009 max - Sep lastThu 23:00s 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Africa/Cairo 2:05:00 - LMT 1900 Oct
@@ -438,8 +479,8 @@ Zone Africa/Nouakchott -1:03:48 - LMT 1912
# From Riad M. Hossen Ally (2008-08-03):
# The Government of Mauritius weblink
-# <a href="http://www.gov.mu/portal/site/pmosite/menuitem.4ca0efdee47462e7440a600248a521ca/?content_id=3D4728ca68b2a5b110VgnVCM1000000a04a8c0RCRD">
-# http://www.gov.mu/portal/site/pmosite/menuitem.4ca0efdee47462e7440a600248a521ca/?content_id=3D4728ca68b2a5b110VgnVCM1000000a04a8c0RCRD
+# <a href="http://www.gov.mu/portal/site/pmosite/menuitem.4ca0efdee47462e7440a600248a521ca/?content_id=4728ca68b2a5b110VgnVCM1000000a04a8c0RCRD">
+# http://www.gov.mu/portal/site/pmosite/menuitem.4ca0efdee47462e7440a600248a521ca/?content_id=4728ca68b2a5b110VgnVCM1000000a04a8c0RCRD
# </a>
# Cabinet Decision of July 18th, 2008 states as follows:
#
@@ -453,11 +494,19 @@ Zone Africa/Nouakchott -1:03:48 - LMT 1912
# year 2008 - 2009 will, therefore, be effective as from 26 October 2008
# and end on 29 March 2009.
+# From Ed Maste (2008-10-07):
+# THE TIME BILL (No. XXVII of 2008) Explanatory Memorandum states the
+# beginning / ending of summer time is 2 o'clock standard time in the
+# morning of the last Sunday of October / last Sunday of March.
+# <a href="http://www.gov.mu/portal/goc/assemblysite/file/bill2708.pdf">
+# http://www.gov.mu/portal/goc/assemblysite/file/bill2708.pdf
+# </a>
+
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Mauritius 1982 only - Oct 10 0:00 1:00 S
Rule Mauritius 1983 only - Mar 21 0:00 0 -
-Rule Mauritius 2008 max - Oct lastSun 2:00 1:00 S
-Rule Mauritius 2009 max - Mar lastSun 2:00 0 -
+Rule Mauritius 2008 max - Oct lastSun 2:00s 1:00 S
+Rule Mauritius 2009 max - Mar lastSun 2:00s 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis
4:00 Mauritius MU%sT # Mauritius Time
@@ -556,6 +605,40 @@ Zone Indian/Mayotte 3:00:56 - LMT 1911 Jul # Mamoutzou
# <a href="http://www.timeanddate.com/news/time/morocco-ends-dst-early-2008.html">
# http://www.timeanddate.com/news/time/morocco-ends-dst-early-2008.html
# </a>
+
+# From Steffen Thorsen (2009-03-17):
+# Morocco will observe DST from 2009-06-01 00:00 to 2009-08-21 00:00 according
+# to many sources, such as
+# <a href="http://news.marweb.com/morocco/entertainment/morocco-daylight-saving.html">
+# http://news.marweb.com/morocco/entertainment/morocco-daylight-saving.html
+# </a>
+# <a href="http://www.medi1sat.ma/fr/depeche.aspx?idp=2312">
+# http://www.medi1sat.ma/fr/depeche.aspx?idp=2312
+# </a>
+# (French)
+#
+# Our summary:
+# <a href="http://www.timeanddate.com/news/time/morocco-starts-dst-2009.html">
+# http://www.timeanddate.com/news/time/morocco-starts-dst-2009.html
+# </a>
+
+# From Alexander Krivenyshev (2009-03-17):
+# Here is a link to official document from Royaume du Maroc Premier Ministre,
+# Ministere de la Modernisation des Secteurs Publics
+#
+# Under Article 1 of Royal Decree No. 455-67 of Act 23 safar 1387 (2 june 1967)
+# concerning the amendment of the legal time, the Ministry of Modernization of
+# Public Sectors announced that the official time in the Kingdom will be
+# advanced 60 minutes from Sunday 31 May 2009 at midnight.
+#
+# <a href="http://www.mmsp.gov.ma/francais/Actualites_fr/PDF_Actualites_Fr/HeureEte_FR.pdf">
+# http://www.mmsp.gov.ma/francais/Actualites_fr/PDF_Actualites_Fr/HeureEte_FR.pdf
+# </a>
+#
+# <a href="http://www.worldtimezone.com/dst_news/dst_news_morocco03.html">
+# http://www.worldtimezone.com/dst_news/dst_news_morocco03.html
+# </a>
+
# RULE NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Morocco 1939 only - Sep 12 0:00 1:00 S
@@ -575,6 +658,8 @@ Rule Morocco 1978 only - Jun 1 0:00 1:00 S
Rule Morocco 1978 only - Aug 4 0:00 0 -
Rule Morocco 2008 only - Jun 1 0:00 1:00 S
Rule Morocco 2008 only - Sep 1 0:00 0 -
+Rule Morocco 2009 only - Jun 1 0:00 1:00 S
+Rule Morocco 2009 only - Aug 21 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Africa/Casablanca -0:30:20 - LMT 1913 Oct 26
0:00 Morocco WE%sT 1984 Mar 16
@@ -779,6 +864,43 @@ Zone Africa/Lome 0:04:52 - LMT 1893
# Ending : the last Sunday of October at 03:00 ...
# http://www.tap.info.tn/en/index.php?option=com_content&task=view&id=1188&Itemid=50
+# From Steffen Thorsen (2009-03-16):
+# According to several news sources, Tunisia will not observe DST this year.
+# (Arabic)
+# <a href="http://www.elbashayer.com/?page=viewn&nid=42546">
+# http://www.elbashayer.com/?page=viewn&nid=42546
+# </a>
+# <a href="http://www.babnet.net/kiwidetail-15295.asp">
+# http://www.babnet.net/kiwidetail-15295.asp
+# </a>
+#
+# We have also confirmed this with the US embassy in Tunisia.
+# We have a wrap-up about this on the following page:
+# <a href="http://www.timeanddate.com/news/time/tunisia-cancels-dst-2009.html">
+# http://www.timeanddate.com/news/time/tunisia-cancels-dst-2009.html
+# </a>
+
+# From Alexander Krivenyshev (2009-03-17):
+# Here is a link to Tunis Afrique Presse News Agency
+#
+# Standard time to be kept the whole year long (tap.info.tn):
+#
+# (in English)
+# <a href="http://www.tap.info.tn/en/index.php?option=com_content&task=view&id=26813&Itemid=157">
+# http://www.tap.info.tn/en/index.php?option=com_content&task=view&id=26813&Itemid=157
+# </a>
+#
+# (in Arabic)
+# <a href="http://www.tap.info.tn/ar/index.php?option=com_content&task=view&id=61240&Itemid=1">
+# http://www.tap.info.tn/ar/index.php?option=com_content&task=view&id=61240&Itemid=1
+# </a>
+
+# From Arthur David Olson (2009--3-18):
+# The Tunis Afrique Presse News Agency notice contains this: "This measure is due to the fact
+# that the fasting month of ramadan coincides with the period concerned by summer time.
+# Therefore, the standard time will be kept unchanged the whole year long."
+# So foregoing DST seems to be an exception (albeit one that may be repeated in the future).
+
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Tunisia 1939 only - Apr 15 23:00s 1:00 S
Rule Tunisia 1939 only - Nov 18 23:00s 0 -
@@ -803,8 +925,10 @@ Rule Tunisia 1989 only - Mar 26 0:00s 1:00 S
Rule Tunisia 1990 only - May 1 0:00s 1:00 S
Rule Tunisia 2005 only - May 1 0:00s 1:00 S
Rule Tunisia 2005 only - Sep 30 1:00s 0 -
-Rule Tunisia 2006 max - Mar lastSun 2:00s 1:00 S
-Rule Tunisia 2006 max - Oct lastSun 2:00s 0 -
+Rule Tunisia 2006 2008 - Mar lastSun 2:00s 1:00 S
+Rule Tunisia 2006 2008 - Oct lastSun 2:00s 0 -
+Rule Tunisia 2010 max - Mar lastSun 2:00s 1:00 S
+Rule Tunisia 2010 max - Oct lastSun 2:00s 0 -
# Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's
# more precise 0:09:21.
# Shanks & Pottenger say the 1911 switch was on Mar 9; go with Howse's Mar 11.
diff --git a/timezone/antarctica b/timezone/antarctica
index ef279cbeda..8511ab207e 100644
--- a/timezone/antarctica
+++ b/timezone/antarctica
@@ -1,5 +1,7 @@
-# @(#)antarctica 8.4
# <pre>
+# @(#)antarctica 8.5
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
# From Paul Eggert (1999-11-15):
# To keep things manageable, we list only locations occupied year-round; see
diff --git a/timezone/asia b/timezone/asia
index 768850f3df..de2ca39352 100644
--- a/timezone/asia
+++ b/timezone/asia
@@ -1,5 +1,7 @@
-# @(#)asia 8.23
# <pre>
+# @(#)asia 8.34
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
# 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
@@ -125,6 +127,48 @@ Zone Asia/Bahrain 3:22:20 - LMT 1920 # Al Manamah
3:00 - AST
# Bangladesh
+# From Alexander Krivenyshev (2009-05-13):
+# According to newspaper Asian Tribune (May 6, 2009) Bangladesh may introduce
+# Daylight Saving Time from June 16 to Sept 30
+#
+# Bangladesh to introduce daylight saving time likely from June 16
+# <a href="http://www.asiantribune.com/?q=node/17288">
+# http://www.asiantribune.com/?q=node/17288
+# </a>
+# or
+# <a href="http://www.worldtimezone.com/dst_news/dst_news_bangladesh02.html">
+# http://www.worldtimezone.com/dst_news/dst_news_bangladesh02.html
+# </a>
+#
+# "... Bangladesh government has decided to switch daylight saving time from
+# June
+# 16 till September 30 in a bid to ensure maximum use of daylight to cope with
+# crippling power crisis. "
+#
+# The switch will remain in effect from June 16 to Sept 30 (2009) but if
+# implemented the next year, it will come in force from April 1, 2010
+
+# From Steffen Thorsen (2009-06-02):
+# They have finally decided now, but changed the start date to midnight between
+# the 19th and 20th, and they have not set the end date yet.
+#
+# Some sources:
+# <a href="http://in.reuters.com/article/southAsiaNews/idINIndia-40017620090601">
+# http://in.reuters.com/article/southAsiaNews/idINIndia-40017620090601
+# </a>
+# <a href="http://bdnews24.com/details.php?id=85889&cid=2">
+# http://bdnews24.com/details.php?id=85889&cid=2
+# </a>
+#
+# Our wrap-up:
+# <a href="http://www.timeanddate.com/news/time/bangladesh-daylight-saving-2009.html">
+# http://www.timeanddate.com/news/time/bangladesh-daylight-saving-2009.html
+# </a>
+
+# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
+Rule Bang 2009 only - Jan 1 0:00 0 -
+Rule Bang 2009 only - Jun 20 0:00 1:00 S
+
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Dhaka 6:01:40 - LMT 1890
5:53:20 - HMT 1941 Oct # Howrah Mean Time?
@@ -132,7 +176,8 @@ Zone Asia/Dhaka 6:01:40 - LMT 1890
5:30 - IST 1942 Sep
6:30 - BURT 1951 Sep 30
6:00 - DACT 1971 Mar 26 # Dacca Time
- 6:00 - BDT # Bangladesh Time
+ 6:00 - BDT 2009 # Bangladesh Time
+ 6:00 Bang BD%sT
# Bhutan
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
@@ -1049,6 +1094,40 @@ Zone Asia/Tokyo 9:18:59 - LMT 1887 Dec 31 15:00u
# http://www.petranews.gov.jo/nepras/2006/Sep/05/4000.htm
# "Jordan will switch to winter time on Friday, October 27".
#
+
+# From Phil Pizzey (2009-04-02):
+# ...I think I may have spotted an error in the timezone data for
+# Jordan.
+# The current (2009d) asia file shows Jordan going to daylight
+# saving
+# time on the last Thursday in March.
+#
+# Rule Jordan 2000 max - Mar lastThu 0:00s 1:00 S
+#
+# However timeanddate.com, which I usually find reliable, shows Jordan
+# going to daylight saving time on the last Friday in March since 2002.
+# Please see
+# <a href="http://www.timeanddate.com/worldclock/timezone.html?n=11">
+# http://www.timeanddate.com/worldclock/timezone.html?n=11
+# </a>
+
+# From Steffen Thorsen (2009-04-02):
+# This single one might be good enough, (2009-03-24, Arabic):
+# <a href="http://petra.gov.jo/Artical.aspx?Lng=2&Section=8&Artical=95279">
+# http://petra.gov.jo/Artical.aspx?Lng=2&Section=8&Artical=95279
+# </a>
+#
+# Google's translation:
+#
+# > The Council of Ministers decided in 2002 to adopt the principle of timely
+# > submission of the summer at 60 minutes as of midnight on the last Thursday
+# > of the month of March of each year.
+#
+# So - this means the midnight between Thursday and Friday since 2002.
+
+# From Arthur David Olson (2009-04-06):
+# We still have Jordan switching to DST on Thursdays in 2000 and 2001.
+
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Jordan 1973 only - Jun 6 0:00 1:00 S
Rule Jordan 1973 1975 - Oct 1 0:00 0 -
@@ -1071,8 +1150,9 @@ Rule Jordan 1993 1998 - Apr Fri>=1 0:00 1:00 S
Rule Jordan 1994 only - Sep Fri>=15 0:00 0 -
Rule Jordan 1995 1998 - Sep Fri>=15 0:00s 0 -
Rule Jordan 1999 only - Jul 1 0:00s 1:00 S
-Rule Jordan 1999 2002 - Sep lastThu 0:00s 0 -
-Rule Jordan 2000 max - Mar lastThu 0:00s 1:00 S
+Rule Jordan 1999 2002 - Sep lastFri 0:00s 0 -
+Rule Jordan 2000 2001 - Mar lastThu 0:00s 1:00 S
+Rule Jordan 2002 max - Mar lastThu 24:00 1:00 S
Rule Jordan 2003 only - Oct 24 0:00s 0 -
Rule Jordan 2004 only - Oct 15 0:00s 0 -
Rule Jordan 2005 only - Sep lastFri 0:00s 0 -
@@ -1474,7 +1554,7 @@ Zone Asia/Choibalsan 7:38:00 - LMT 1905 Aug
# Nepal
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
-Zone Asia/Katmandu 5:41:16 - LMT 1920
+Zone Asia/Kathmandu 5:41:16 - LMT 1920
5:30 - IST 1986
5:45 - NPT # Nepal Time
@@ -1554,11 +1634,46 @@ Zone Asia/Muscat 3:54:20 - LMT 1920
# http://dailymailnews.com/200808/28/news/dmbrn03.html
# </a>
+# From Alexander Krivenyshev (2009-04-08):
+# Based on previous media reports that "... proposed plan to
+# advance clocks by one hour from May 1 will cause disturbance
+# to the working schedules rather than bringing discipline in
+# official working."
+# <a href="http://www.thenews.com.pk/daily_detail.asp?id=171280">
+# http://www.thenews.com.pk/daily_detail.asp?id=171280
+# </a>
+#
+# recent news that instead of May 2009 - Pakistan plan to
+# introduce DST from April 15, 2009
+#
+# FYI: Associated Press Of Pakistan
+# April 08, 2009
+# Cabinet okays proposal to advance clocks by one hour from April 15
+# <a href="http://www.app.com.pk/en_/index.php?option=com_content&task=view&id=73043&Itemid=1">
+# http://www.app.com.pk/en_/index.php?option=com_content&task=view&id=73043&Itemid=1
+# </a>
+#
+# or
+#
+# <a href="http://www.worldtimezone.com/dst_news/dst_news_pakistan05.html">
+# http://www.worldtimezone.com/dst_news/dst_news_pakistan05.html
+# </a>
+#
+# ....
+# The Federal Cabinet on Wednesday approved the proposal to
+# advance clocks in the country by one hour from April 15 to
+# conserve energy"
+
+# From Arthur David Olson (2009-04-10):
+# Assume for now that Pakistan will end DST in 2009 as it did in 2008.
+
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Pakistan 2002 only - Apr Sun>=2 0:01 1:00 S
Rule Pakistan 2002 only - Oct Sun>=2 0:01 0 -
Rule Pakistan 2008 only - Jun 1 0:00 1:00 S
Rule Pakistan 2008 only - Nov 1 0:00 0 -
+Rule Pakistan 2009 only - Apr 15 0:00 1:00 S
+Rule Pakistan 2009 only - Nov 1 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Karachi 4:28:12 - LMT 1907
5:30 - IST 1942 Sep
@@ -1695,6 +1810,22 @@ Zone Asia/Karachi 4:28:12 - LMT 1907
# http://www.worldtimezone.com/dst_news/dst_news_gazastrip01.html
# </a>
+# From Alexander Krivenyshev (2009-03-26):
+# According to the Palestine News Network (arabic.pnn.ps), Palestinian
+# government decided to start Daylight Time on Thursday night March
+# 26 and continue until the night of 27 September 2009.
+#
+# (in Arabic)
+# <a href="http://arabic.pnn.ps/index.php?option=com_content&task=view&id=50850">
+# http://arabic.pnn.ps/index.php?option=com_content&task=view&id=50850
+# </a>
+#
+# or
+# (English translation)
+# <a href="http://www.worldtimezone.com/dst_news/dst_news_westbank01.html">
+# http://www.worldtimezone.com/dst_news/dst_news_westbank01.html
+# </a>
+
# 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
@@ -1708,10 +1839,12 @@ Rule Palestine 1999 2005 - Apr Fri>=15 0:00 1:00 S
Rule Palestine 1999 2003 - Oct Fri>=15 0:00 0 -
Rule Palestine 2004 only - Oct 1 1:00 0 -
Rule Palestine 2005 only - Oct 4 2:00 0 -
-Rule Palestine 2006 max - Apr 1 0:00 1:00 S
+Rule Palestine 2006 2008 - Apr 1 0:00 1:00 S
Rule Palestine 2006 only - Sep 22 0:00 0 -
Rule Palestine 2007 only - Sep Thu>=8 2:00 0 -
-Rule Palestine 2008 max - Aug lastThu 2:00 0 -
+Rule Palestine 2008 only - Aug lastFri 2:00 0 -
+Rule Palestine 2009 max - Mar lastFri 0:00 1:00 S
+Rule Palestine 2009 max - Sep lastMon 2:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Gaza 2:17:52 - LMT 1900 Oct
@@ -1957,8 +2090,41 @@ Rule Syria 2007 only - Nov Fri>=1 0:00 0 -
# compilers can't handle or having multiple Rules (a la Israel).
# For now, use "Apr Fri>=1", and go with IATA on a uniform Sep 30 end.
-Rule Syria 2008 max - Apr Fri>=1 0:00 1:00 S
-Rule Syria 2008 max - Oct 1 0:00 0 -
+# From Steffen Thorsen (2008-10-07):
+# Syria has now officially decided to end DST on 2008-11-01 this year,
+# according to the following article in the Syrian Arab News Agency (SANA).
+#
+# The article is in Arabic, and seems to tell that they will go back to
+# winter time on 2008-11-01 at 00:00 local daylight time (delaying/setting
+# clocks back 60 minutes).
+#
+# <a href="http://sana.sy/ara/2/2008/10/07/195459.htm">
+# http://sana.sy/ara/2/2008/10/07/195459.htm
+# </a>
+
+# From Steffen Thorsen (2009-03-19):
+# Syria will start DST on 2009-03-27 00:00 this year according to many sources,
+# two examples:
+#
+# <a href="http://www.sana.sy/eng/21/2009/03/17/217563.htm">
+# http://www.sana.sy/eng/21/2009/03/17/217563.htm
+# </a>
+# (English, Syrian Arab News # Agency)
+# <a href="http://thawra.alwehda.gov.sy/_View_news2.asp?FileName=94459258720090318012209">
+# http://thawra.alwehda.gov.sy/_View_news2.asp?FileName=94459258720090318012209
+# </a>
+# (Arabic, gov-site)
+#
+# We have not found any sources saying anything about when DST ends this year.
+#
+# Our summary
+# <a href="http://www.timeanddate.com/news/time/syria-dst-starts-march-27-2009.html">
+# http://www.timeanddate.com/news/time/syria-dst-starts-march-27-2009.html
+# </a>
+
+Rule Syria 2008 only - Apr Fri>=1 0:00 1:00 S
+Rule Syria 2008 max - Nov 1 0:00 0 -
+Rule Syria 2009 max - Mar lastFri 0:00 1:00 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Damascus 2:25:12 - LMT 1920 # Dimashq
diff --git a/timezone/australasia b/timezone/australasia
index 41608cdc34..efcfec74d1 100644
--- a/timezone/australasia
+++ b/timezone/australasia
@@ -1,5 +1,7 @@
-# @(#)australasia 8.9
# <pre>
+# @(#)australasia 8.11
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
# This file also includes Pacific islands.
@@ -1119,6 +1121,27 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901
# From Paul Eggert (2007-07-23):
# See "southeast Australia" above for 2008 and later.
+# From Steffen Thorsen (2009-04-28):
+# According to the official press release, South Australia's extended daylight
+# saving period will continue with the same rules as used during the 2008-2009
+# summer (southern hemisphere).
+#
+# From
+# <a href="http://www.safework.sa.gov.au/uploaded_files/DaylightDatesSet.pdf">
+# http://www.safework.sa.gov.au/uploaded_files/DaylightDatesSet.pdf
+# </a>
+# The extended daylight saving period that South Australia has been trialling
+# for over the last year is now set to be ongoing.
+# Daylight saving will continue to start on the first Sunday in October each
+# year and finish on the first Sunday in April the following year.
+# Industrial Relations Minister, Paul Caica, says this provides South Australia
+# with a consistent half hour time difference with NSW, Victoria, Tasmania and
+# the ACT for all 52 weeks of the year...
+#
+# We have a wrap-up here:
+# <a href="http://www.timeanddate.com/news/time/south-australia-extends-dst.html">
+# http://www.timeanddate.com/news/time/south-australia-extends-dst.html
+# </a>
###############################################################################
# New Zealand
diff --git a/timezone/backward b/timezone/backward
index a65991c2dd..c896968c9a 100644
--- a/timezone/backward
+++ b/timezone/backward
@@ -1,4 +1,7 @@
-# @(#)backward 8.6
+# <pre>
+# @(#)backward 8.8
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
# This file provides links between current names for time zones
# and their old names. Many names changed in late 1993.
@@ -24,6 +27,7 @@ Link America/St_Thomas America/Virgin
Link Asia/Ashgabat Asia/Ashkhabad
Link Asia/Chongqing Asia/Chungking
Link Asia/Dhaka Asia/Dacca
+Link Asia/Kathmandu Asia/Katmandu
Link Asia/Kolkata Asia/Calcutta
Link Asia/Macau Asia/Macao
Link Asia/Jerusalem Asia/Tel_Aviv
diff --git a/timezone/etcetera b/timezone/etcetera
index cddbe8a294..5c93682985 100644
--- a/timezone/etcetera
+++ b/timezone/etcetera
@@ -1,4 +1,7 @@
-# @(#)etcetera 8.1
+# <pre>
+# @(#)etcetera 8.2
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
# These entries are mostly present for historical reasons, so that
# people in areas not otherwise covered by the tz files could "zic -l"
diff --git a/timezone/europe b/timezone/europe
index 7bb9864733..3f39215bf6 100644
--- a/timezone/europe
+++ b/timezone/europe
@@ -1,5 +1,7 @@
-# @(#)europe 8.18
# <pre>
+# @(#)europe 8.21
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
# 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
@@ -2313,11 +2315,64 @@ Zone Europe/Stockholm 1:12:12 - LMT 1879 Jan 1
# mean time in preference to apparent time -- Geneva from 1780 ....
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
# From Whitman (who writes ``Midnight?''):
-Rule Swiss 1940 only - Nov 2 0:00 1:00 S
-Rule Swiss 1940 only - Dec 31 0:00 0 -
+# Rule Swiss 1940 only - Nov 2 0:00 1:00 S
+# Rule Swiss 1940 only - Dec 31 0:00 0 -
# From Shanks & Pottenger:
-Rule Swiss 1941 1942 - May Sun>=1 2:00 1:00 S
-Rule Swiss 1941 1942 - Oct Sun>=1 0:00 0 -
+# Rule Swiss 1941 1942 - May Sun>=1 2:00 1:00 S
+# Rule Swiss 1941 1942 - Oct Sun>=1 0:00 0 -
+
+# From Alois Treindl (2008-12-17):
+# I have researched the DST usage in Switzerland during the 1940ies.
+#
+# As I wrote in an earlier message, I suspected the current tzdata values
+# to be wrong. This is now verified.
+#
+# I have found copies of the original ruling by the Swiss Federal
+# government, in 'Eidgen[o]ssische Gesetzessammlung 1941 and 1942' (Swiss
+# federal law collection)...
+#
+# DST began on Monday 5 May 1941, 1:00 am by shifting the clocks to 2:00 am
+# DST ended on Monday 6 Oct 1941, 2:00 am by shifting the clocks to 1:00 am.
+#
+# DST began on Monday, 4 May 1942 at 01:00 am
+# DST ended on Monday, 5 Oct 1942 at 02:00 am
+#
+# There was no DST in 1940, I have checked the law collection carefully.
+# It is also indicated by the fact that the 1942 entry in the law
+# collection points back to 1941 as a reference, but no reference to any
+# other years are made.
+#
+# Newspaper articles I have read in the archives on 6 May 1941 reported
+# about the introduction of DST (Sommerzeit in German) during the previous
+# night as an absolute novelty, because this was the first time that such
+# a thing had happened in Switzerland.
+#
+# I have also checked 1916, because one book source (Gabriel, Traite de
+# l'heure dans le monde) claims that Switzerland had DST in 1916. This is
+# false, no official document could be found. Probably Gabriel got misled
+# by references to Germany, which introduced DST in 1916 for the first time.
+#
+# The tzdata rules for Switzerland must be changed to:
+# Rule Swiss 1941 1942 - May Mon>=1 1:00 1:00 S
+# Rule Swiss 1941 1942 - Oct Mon>=1 2:00 0 -
+#
+# The 1940 rules must be deleted.
+#
+# One further detail for Switzerland, which is probably out of scope for
+# most users of tzdata:
+# The zone file
+# Zone Europe/Zurich 0:34:08 - LMT 1848 Sep 12
+# 0:29:44 - BMT 1894 Jun #Bern Mean Time
+# 1:00 Swiss CE%sT 1981
+# 1:00 EU CE%sT
+# describes all of Switzerland correctly, with the exception of
+# the Cantone Geneve (Geneva, Genf). Between 1848 and 1894 Geneve did not
+# follow Bern Mean Time but kept its own local mean time.
+# To represent this, an extra zone would be needed.
+
+# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
+Rule Swiss 1941 1942 - May Mon>=1 1:00 1:00 S
+Rule Swiss 1941 1942 - Oct Mon>=1 2:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Zurich 0:34:08 - LMT 1848 Sep 12
0:29:44 - BMT 1894 Jun # Bern Mean Time
diff --git a/timezone/factory b/timezone/factory
index 946063c0dd..624ccc0c36 100644
--- a/timezone/factory
+++ b/timezone/factory
@@ -1,4 +1,7 @@
-# @(#)factory 8.1
+# <pre>
+# @(#)factory 8.2
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
# For companies who don't want to put time zone specification in
# their installation procedures. When users run date, they'll get the message.
diff --git a/timezone/iso3166.tab b/timezone/iso3166.tab
index 8d62399580..b8a2592c00 100644
--- a/timezone/iso3166.tab
+++ b/timezone/iso3166.tab
@@ -1,7 +1,9 @@
+# <pre>
+# @(#)iso3166.tab 8.6
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
# ISO 3166 alpha-2 country codes
#
-# @(#)iso3166.tab 8.5
-#
# From Paul Eggert (2006-09-27):
#
# This file contains a table with the following columns:
diff --git a/timezone/leapseconds b/timezone/leapseconds
index a2f4f0be37..d6343c0209 100644
--- a/timezone/leapseconds
+++ b/timezone/leapseconds
@@ -1,4 +1,7 @@
-# @(#)leapseconds 8.6
+# <pre>
+# @(#)leapseconds 8.8
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
# Allowance for leapseconds added to each timezone file.
@@ -53,40 +56,32 @@ Leap 2008 Dec 31 23:59:60 + S
# SERVICE DE LA ROTATION TERRESTRE
# OBSERVATOIRE DE PARIS
# 61, Av. de l'Observatoire 75014 PARIS (France)
-# Tel. : 33 (0) 1 40 51 22 26
+# Tel. : 33 (0) 1 40 51 22 29
# FAX : 33 (0) 1 40 51 22 91
-# e-mail : services.iers@obspm.fr
-# http://hpiers.obspm.fr/eop-pc
+# Internet : services.iers@obspm.fr
#
-# Paris, 4 July 2008
+# Paris, 15 January 2009
#
-# Bulletin C 36
+# Bulletin C 37
#
# To authorities responsible
# for the measurement and
# distribution of time
#
-# UTC TIME STEP
-# on the 1st of January 2009
+# INFORMATION ON UTC - TAI
#
-# A positive leap second will be introduced at the end of December 2008.
-# The sequence of dates of the UTC second markers will be:
+# NO positive leap second will be introduced at the end of June 2009.
+# The difference between Coordinated Universal Time UTC and the
+# International Atomic Time TAI is :
#
-# 2008 December 31, 23h 59m 59s
-# 2008 December 31, 23h 59m 60s
-# 2009 January 1, 0h 0m 0s
-#
-# The difference between UTC and the International Atomic Time TAI is:
-#
-# from 2006 January 1, 0h UTC, to 2009 January 1 0h UTC : UTC-TAI = - 33s
-# from 2009 January 1, 0h UTC, until further notice : UTC-TAI = - 34s
+# from 2009 January 1, 0h UTC, until further notice : UTC-TAI = -34 s
#
# Leap seconds can be introduced in UTC at the end of the months of December
-# or June, depending on the evolution of UT1-TAI. Bulletin C is mailed every
-# six months, either to announce a time step in UTC or to confirm that there
+# or June, depending on the evolution of UT1-TAI. Bulletin C is mailed every
+# six months, either to announce a time step in UTC, or to confirm that there
# will be no time step at the next possible date.
#
# Daniel GAMBIS
-# Head
-# Earth Orientation Center of IERS
+# Head
+# Earth Orientation Center of the IERS
# Observatoire de Paris, France
diff --git a/timezone/northamerica b/timezone/northamerica
index b8b333cc56..236922d754 100644
--- a/timezone/northamerica
+++ b/timezone/northamerica
@@ -1,5 +1,7 @@
-# @(#)northamerica 8.24
# <pre>
+# @(#)northamerica 8.28
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
# also includes Central America and the Caribbean
@@ -1742,9 +1744,13 @@ Zone America/Dawson_Creek -8:00:56 - LMT 1884
# The individual that answered the phone confirmed that the clocks did not
# move at the end of daylight saving on October 29/2006. He also told me that
# the clocks did not move this past weekend (March 11/2007)....
-#
-# America/Resolute should use the "Canada" Rule up to October 29/2006.
-# After that it should be fixed on Eastern Standard Time until further notice.
+
+# From Chris Walton (2008-11-13):
+# ...the residents of Resolute believe that they are changing "time zones"
+# twice a year. In winter months, local time is qualified with "Eastern
+# Time" which is really "Eastern Standard Time (UTC-5)". In summer
+# months, local time is qualified with "Central Time" which is really
+# "Central Daylight Time (UTC-5)"...
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule NT_YK 1918 only - Apr 14 2:00 1:00 D
@@ -1772,11 +1778,14 @@ Zone America/Iqaluit 0 - zzz 1942 Aug # Frobisher Bay est.
-6:00 Canada C%sT 2000 Oct 29 2:00
-5:00 Canada E%sT
# aka Qausuittuq
+# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
+Rule Resolute 2006 max - Nov Sun>=1 2:00 0 ES
+Rule Resolute 2007 max - Mar Sun>=8 2:00 0 CD
Zone America/Resolute 0 - zzz 1947 Aug 31 # Resolute founded
-6:00 NT_YK C%sT 2000 Oct 29 2:00
-5:00 - EST 2001 Apr 1 3:00
-6:00 Canada C%sT 2006 Oct 29 2:00
- -5:00 - EST
+ -5:00 Resolute %sT
# aka Kangiqiniq
Zone America/Rankin_Inlet 0 - zzz 1957 # Rankin Inlet founded
-6:00 NT_YK C%sT 2000 Oct 29 2:00
@@ -2251,6 +2260,25 @@ Zone America/Costa_Rica -5:36:20 - LMT 1890 # San Jose
# From Arthur David Olson (2008-03-12):
# Assume Sun>=15 (third Sunday) going forward.
+# From Alexander Krivenyshev (2009-03-04)
+# According to the Radio Reloj - Cuba will start Daylight Saving Time on
+# midnight between Saturday, March 07, 2009 and Sunday, March 08, 2009-
+# not on midnight March 14 / March 15 as previously thought.
+#
+# <a href="http://www.worldtimezone.com/dst_news/dst_news_cuba05.html">
+# http://www.worldtimezone.com/dst_news/dst_news_cuba05.html
+# (in Spanish)
+# </a>
+
+# From Arthur David Olson (2009-03-09)
+# I listened over the Internet to
+# <a href="http://media.enet.cu/readioreloj">
+# http://media.enet.cu/readioreloj
+# </a>
+# this morning; when it was 10:05 a. m. here in Bethesda, Maryland the
+# the time was announced as "diez cinco"--the same time as here, indicating
+# that has indeed switched to DST. Assume second Sunday from 2009 forward.
+
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Cuba 1928 only - Jun 10 0:00 1:00 D
Rule Cuba 1928 only - Oct 10 0:00 0 S
@@ -2280,10 +2308,11 @@ Rule Cuba 1996 only - Oct 6 0:00s 0 S
Rule Cuba 1997 only - Oct 12 0:00s 0 S
Rule Cuba 1998 1999 - Mar lastSun 0:00s 1:00 D
Rule Cuba 1998 2003 - Oct lastSun 0:00s 0 S
-Rule Cuba 2000 2006 - Apr Sun>=1 0:00s 1:00 D
+Rule Cuba 2000 2004 - Apr Sun>=1 0:00s 1:00 D
Rule Cuba 2006 max - Oct lastSun 0:00s 0 S
Rule Cuba 2007 only - Mar Sun>=8 0:00s 1:00 D
-Rule Cuba 2008 max - Mar Sun>=15 0:00s 1:00 D
+Rule Cuba 2008 only - Mar Sun>=15 0:00s 1:00 D
+Rule Cuba 2009 max - Mar Sun>=8 0:00s 1:00 D
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Havana -5:29:28 - LMT 1890
diff --git a/timezone/pacificnew b/timezone/pacificnew
index 667940bf53..e2512c1d1b 100644
--- a/timezone/pacificnew
+++ b/timezone/pacificnew
@@ -1,4 +1,7 @@
-# @(#)pacificnew 8.1
+# <pre>
+# @(#)pacificnew 8.2
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
# From Arthur David Olson (1989-04-05):
# On 1989-04-05, the U. S. House of Representatives passed (238-154) a bill
diff --git a/timezone/solar87 b/timezone/solar87
index 71839320ad..47ee7e7aad 100644
--- a/timezone/solar87
+++ b/timezone/solar87
@@ -1,4 +1,7 @@
-# @(#)solar87 8.1
+# <pre>
+# @(#)solar87 8.2
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
# So much for footnotes about Saudi Arabia.
# Apparent noon times below are for Riyadh; your mileage will vary.
diff --git a/timezone/solar88 b/timezone/solar88
index b4cfe8e37a..8db590edd9 100644
--- a/timezone/solar88
+++ b/timezone/solar88
@@ -1,4 +1,7 @@
-# @(#)solar88 8.1
+# <pre>
+# @(#)solar88 8.2
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
# Apparent noon times below are for Riyadh; they're a bit off for other places.
# Times were computed using formulas in the U.S. Naval Observatory's
diff --git a/timezone/solar89 b/timezone/solar89
index 8c48531461..d24de4a77e 100644
--- a/timezone/solar89
+++ b/timezone/solar89
@@ -1,4 +1,7 @@
-# @(#)solar89 8.1
+# <pre>
+# @(#)solar89 8.2
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
# Apparent noon times below are for Riyadh; they're a bit off for other places.
# Times were computed using a formula provided by the U. S. Naval Observatory:
diff --git a/timezone/southamerica b/timezone/southamerica
index e2244cf237..341e57ff90 100644
--- a/timezone/southamerica
+++ b/timezone/southamerica
@@ -1,5 +1,7 @@
-# @(#)southamerica 8.27
# <pre>
+# @(#)southamerica 8.36
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
# 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
@@ -177,6 +179,42 @@ Rule Arg 2000 only - Mar 3 0:00 0 -
# http://www.impulsobaires.com.ar/nota.php?id=57832 (in spanish)
# </a>
+# From Rodrigo Severo (2008-10-06):
+# Here is some info available at a Gentoo bug related to TZ on Argentina's DST:
+# ...
+# ------- Comment #1 from [jmdocile] 2008-10-06 16:28 0000 -------
+# Hi, there is a problem with timezone-data-2008e and maybe with
+# timezone-data-2008f
+# Argentinian law [Number] 25.155 is no longer valid.
+# <a href="http://www.infoleg.gov.ar/infolegInternet/anexos/60000-64999/60036/norma.htm">
+# http://www.infoleg.gov.ar/infolegInternet/anexos/60000-64999/60036/norma.htm
+# </a>
+# The new one is law [Number] 26.350
+# <a href="http://www.infoleg.gov.ar/infolegInternet/anexos/135000-139999/136191/norma.htm">
+# http://www.infoleg.gov.ar/infolegInternet/anexos/135000-139999/136191/norma.htm
+# </a>
+# So there is no summer time in Argentina for now.
+
+# From Mariano Absatz (2008-10-20):
+# Decree 1693/2008 applies Law 26.350 for the summer 2008/2009 establishing DST in Argentina
+# From 2008-10-19 until 2009-03-15
+# <a href="http://www.boletinoficial.gov.ar/Bora.Portal/CustomControls/PdfContent.aspx?fp=16102008&pi=3&pf=4&s=0&sec=01">
+# http://www.boletinoficial.gov.ar/Bora.Portal/CustomControls/PdfContent.aspx?fp=16102008&pi=3&pf=4&s=0&sec=01
+# </a>
+#
+# Decree 1705/2008 excepting 12 Provinces from applying DST in the summer 2008/2009:
+# Catamarca, La Rioja, Mendoza, Salta, San Juan, San Luis, La Pampa, Neuquen, Rio Negro, Chubut, Santa Cruz
+# and Tierra del Fuego
+# <a href="http://www.boletinoficial.gov.ar/Bora.Portal/CustomControls/PdfContent.aspx?fp=17102008&pi=1&pf=1&s=0&sec=01">
+# http://www.boletinoficial.gov.ar/Bora.Portal/CustomControls/PdfContent.aspx?fp=17102008&pi=1&pf=1&s=0&sec=01
+# </a>
+#
+# Press release 235 dated Saturday October 18th, from the Government of the Province of Jujuy saying
+# it will not apply DST either (even when it was not included in Decree 1705/2008)
+# <a href="http://www.jujuy.gov.ar/index2/partes_prensa/18_10_08/235-181008.doc">
+# http://www.jujuy.gov.ar/index2/partes_prensa/18_10_08/235-181008.doc
+# </a>
+
Rule Arg 2007 only - Dec 30 0:00 1:00 S
Rule Arg 2008 max - Mar Sun>=15 0:00 0 -
Rule Arg 2008 max - Oct Sun>=15 0:00 1:00 S
@@ -315,6 +353,50 @@ Rule Arg 2008 max - Oct Sun>=15 0:00 1:00 S
# keep America/Cordoba a single region rather than splitting it into the
# other 5 subregions.
+# From Mariano Absatz (2009-03-13):
+# Yesterday (with our usual 2-day notice) the Province of San Luis
+# decided that next Sunday instead of "staying" @utc-03:00 they will go
+# to utc-04:00 until the second Saturday in October...
+#
+# The press release is at
+# <a href="http://www.sanluis.gov.ar/SL/Paginas/NoticiaDetalle.asp?TemaId=1&InfoPrensaId=3102">
+# http://www.sanluis.gov.ar/SL/Paginas/NoticiaDetalle.asp?TemaId=1&InfoPrensaId=3102
+# </a>
+# (I couldn't find the decree, but
+# <a href="http://www.sanluis.gov.ar">
+# www.sanluis.gov.ar
+# <a/>
+# is the official page for the Province Government).
+#
+# There's also a note in only one of the major national papers (La Nación) at
+# <a href="http://www.lanacion.com.ar/nota.asp?nota_id=1107912">
+# http://www.lanacion.com.ar/nota.asp?nota_id=1107912
+# </a>
+#
+# The press release says:
+# (...) anunció que el próximo domingo a las 00:00 los puntanos deberán
+# atrasar una hora sus relojes.
+#
+# A partir de entonces, San Luis establecerá el huso horario propio de
+# la Provincia. De esta manera, durante el periodo del calendario anual
+# 2009, el cambio horario quedará comprendido entre las 00:00 del tercer
+# domingo de marzo y las 24:00 del segundo sábado de octubre.
+# Quick&dirty translation
+# (...) announced that next Sunday, at 00:00, Puntanos (the San Luis
+# inhabitants) will have to turn back one hour their clocks
+#
+# Since then, San Luis will establish its own Province timezone. Thus,
+# during 2009, this timezone change will run from 00:00 the third Sunday
+# in March until 24:00 of the second Saturday in October.
+
+# From Arthur David Olson (2009-03-16):
+# The unofficial claim at
+# <a href="http://www.timeanddate.com/news/time/san-luis-new-time-zone.html">
+# http://www.timeanddate.com/news/time/san-luis-new-time-zone.html
+# </a>
+# is that "The province will most likely follow the next daylight saving schedule,
+# which is planned for the second Sunday in October."
+
#
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
#
@@ -327,9 +409,8 @@ Zone America/Argentina/Buenos_Aires -3:53:48 - LMT 1894 Oct 31
-4:00 Arg AR%sT 2000 Mar 3
-3:00 Arg AR%sT
#
-# Santa Fe (SF), Entre Rios (ER), Corrientes (CN), Misiones (MN), Chaco (CC),
-# Formosa (FM), Salta (SA), Santiago del Estero (SE), Cordoba (CB),
-# La Pampa (LP), Neuquen (NQ), Rio Negro (RN)
+# Cordoba (CB), Santa Fe (SF), Entre Rios (ER), Corrientes (CN), Misiones (MN),
+# Chaco (CC), Formosa (FM), Santiago del Estero (SE)
#
# Shanks & Pottenger also make the following claims, which we haven't verified:
# - Formosa switched to -3:00 on 1991-01-07.
@@ -348,6 +429,18 @@ Zone America/Argentina/Cordoba -4:16:48 - LMT 1894 Oct 31
-4:00 Arg AR%sT 2000 Mar 3
-3:00 Arg AR%sT
#
+# Salta (SA), La Pampa (LP), Neuquen (NQ), Rio Negro (RN)
+Zone America/Argentina/Salta -4:21:40 - LMT 1894 Oct 31
+ -4:16:48 - CMT 1920 May
+ -4:00 - ART 1930 Dec
+ -4:00 Arg AR%sT 1969 Oct 5
+ -3:00 Arg AR%sT 1991 Mar 3
+ -4:00 - WART 1991 Oct 20
+ -3:00 Arg AR%sT 1999 Oct 3
+ -4:00 Arg AR%sT 2000 Mar 3
+ -3:00 Arg AR%sT 2008 Oct 18
+ -3:00 - ART
+#
# Tucuman (TM)
Zone America/Argentina/Tucuman -4:20:52 - LMT 1894 Oct 31
-4:16:48 - CMT 1920 May
@@ -372,7 +465,8 @@ Zone America/Argentina/La_Rioja -4:27:24 - LMT 1894 Oct 31
-4:00 Arg AR%sT 2000 Mar 3
-3:00 - ART 2004 Jun 1
-4:00 - WART 2004 Jun 20
- -3:00 Arg AR%sT
+ -3:00 Arg AR%sT 2008 Oct 18
+ -3:00 - ART
#
# San Juan (SJ)
Zone America/Argentina/San_Juan -4:34:04 - LMT 1894 Oct 31
@@ -385,7 +479,8 @@ Zone America/Argentina/San_Juan -4:34:04 - LMT 1894 Oct 31
-4:00 Arg AR%sT 2000 Mar 3
-3:00 - ART 2004 May 31
-4:00 - WART 2004 Jul 25
- -3:00 Arg AR%sT
+ -3:00 Arg AR%sT 2008 Oct 18
+ -3:00 - ART
#
# Jujuy (JY)
Zone America/Argentina/Jujuy -4:21:12 - LMT 1894 Oct 31
@@ -399,7 +494,8 @@ Zone America/Argentina/Jujuy -4:21:12 - LMT 1894 Oct 31
-3:00 1:00 ARST 1992
-3:00 Arg AR%sT 1999 Oct 3
-4:00 Arg AR%sT 2000 Mar 3
- -3:00 Arg AR%sT
+ -3:00 Arg AR%sT 2008 Oct 18
+ -3:00 - ART
#
# Catamarca (CT), Chubut (CH)
Zone America/Argentina/Catamarca -4:23:08 - LMT 1894 Oct 31
@@ -412,7 +508,8 @@ Zone America/Argentina/Catamarca -4:23:08 - LMT 1894 Oct 31
-4:00 Arg AR%sT 2000 Mar 3
-3:00 - ART 2004 Jun 1
-4:00 - WART 2004 Jun 20
- -3:00 Arg AR%sT
+ -3:00 Arg AR%sT 2008 Oct 18
+ -3:00 - ART
#
# Mendoza (MZ)
Zone America/Argentina/Mendoza -4:35:16 - LMT 1894 Oct 31
@@ -429,7 +526,8 @@ Zone America/Argentina/Mendoza -4:35:16 - LMT 1894 Oct 31
-4:00 Arg AR%sT 2000 Mar 3
-3:00 - ART 2004 May 23
-4:00 - WART 2004 Sep 26
- -3:00 Arg AR%sT
+ -3:00 Arg AR%sT 2008 Oct 18
+ -3:00 - ART
#
# San Luis (SL)
Zone America/Argentina/San_Luis -4:25:24 - LMT 1894 Oct 31
@@ -446,7 +544,8 @@ Zone America/Argentina/San_Luis -4:25:24 - LMT 1894 Oct 31
-3:00 - ART 2004 May 31
-4:00 - WART 2004 Jul 25
-3:00 Arg AR%sT 2008 Jan 21
- -3:00 - ART
+ -3:00 - ART 2009 Mar 15
+ -4:00 Arg WAR%sT
#
# Santa Cruz (SC)
Zone America/Argentina/Rio_Gallegos -4:36:52 - LMT 1894 Oct 31
@@ -457,7 +556,8 @@ Zone America/Argentina/Rio_Gallegos -4:36:52 - LMT 1894 Oct 31
-4:00 Arg AR%sT 2000 Mar 3
-3:00 - ART 2004 Jun 1
-4:00 - WART 2004 Jun 20
- -3:00 Arg AR%sT
+ -3:00 Arg AR%sT 2008 Oct 18
+ -3:00 - ART
#
# Tierra del Fuego, Antartida e Islas del Atlantico Sur (TF)
Zone America/Argentina/Ushuaia -4:33:12 - LMT 1894 Oct 31
@@ -468,7 +568,8 @@ Zone America/Argentina/Ushuaia -4:33:12 - LMT 1894 Oct 31
-4:00 Arg AR%sT 2000 Mar 3
-3:00 - ART 2004 May 30
-4:00 - WART 2004 Jun 20
- -3:00 Arg AR%sT
+ -3:00 Arg AR%sT 2008 Oct 18
+ -3:00 - ART
# Aruba
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
@@ -575,8 +676,8 @@ Zone America/La_Paz -4:32:36 - LMT 1890
# From Rodrigo Severo (2008-06-24):
# Just correcting the URL:
-# <a href="https://www.in.gov.br/imprensa/visualiza/index.jsp?jornal=3Ddo&secao=3D1&pagina=3D1&data=3D25/04/2008">
-# https://www.in.gov.br/imprensa/visualiza/index.jsp?jornal=3Ddo&secao=3D1&pagina=3D1&data=3D25/04/2008
+# <a href="https://www.in.gov.br/imprensa/visualiza/index.jsp?jornal=do&secao=1&pagina=1&data=25/04/2008">
+# https://www.in.gov.br/imprensa/visualiza/index.jsp?jornal=do&secao=1&pagina=1&data=25/04/2008
# </a>
#
# As a result of the above Decree I believe the America/Rio_Branco
@@ -619,7 +720,7 @@ Zone America/La_Paz -4:32:36 - LMT 1890
# </a>
# Note that this link does not always work directly, but must be accessed
# by going to
-# <a href="http://www.mme.gov.br/first>"
+# <a href="http://www.mme.gov.br/first">
# http://www.mme.gov.br/first
# </a>
#
@@ -768,12 +869,33 @@ Rule Brazil 2007 only - Feb 25 0:00 0 -
# Decree <a href="http://pcdsh01.on.br/DecHV6212.gif">6,212</a> (2007-09-26),
# adopted by the same states as before.
Rule Brazil 2007 only - Oct Sun>=8 0:00 1:00 S
-Rule Brazil 2008 max - Feb Sun>=15 0:00 0 -
-Rule Brazil 2008 max - Oct Sun>=15 0:00 1:00 S
+# From Frederico A. C. Neves (2008-09-10):
+# Acording to this decree
+# <a href="http://www.planalto.gov.br/ccivil_03/_Ato2007-2010/2008/Decreto/D6558.htm">
+# http://www.planalto.gov.br/ccivil_03/_Ato2007-2010/2008/Decreto/D6558.htm
+# </a>
+# [t]he DST period in Brazil now on will be from the 3rd Oct Sunday to the
+# 3rd Feb Sunday. There is an exception on the return date when this is
+# the Carnival Sunday then the return date will be the next Sunday...
+Rule Brazil 2008 max - Oct Sun>=15 0:00 1:00 S
+Rule Brazil 2008 2011 - Feb Sun>=15 0:00 0 -
+Rule Brazil 2012 only - Feb Sun>=22 0:00 0 -
+Rule Brazil 2013 2014 - Feb Sun>=15 0:00 0 -
+Rule Brazil 2015 only - Feb Sun>=22 0:00 0 -
+Rule Brazil 2016 2022 - Feb Sun>=15 0:00 0 -
+Rule Brazil 2023 only - Feb Sun>=22 0:00 0 -
+Rule Brazil 2024 2025 - Feb Sun>=15 0:00 0 -
+Rule Brazil 2026 only - Feb Sun>=22 0:00 0 -
+Rule Brazil 2027 2033 - Feb Sun>=15 0:00 0 -
+Rule Brazil 2034 only - Feb Sun>=22 0:00 0 -
+Rule Brazil 2035 2036 - Feb Sun>=15 0:00 0 -
+Rule Brazil 2037 only - Feb Sun>=22 0:00 0 -
+# From Arthur David Olson (2008-09-29):
+# The next is wrong in some years but is better than nothing.
+Rule Brazil 2038 max - Feb Sun>=15 0:00 0 -
+
# The latest ruleset listed above says that the following states observe DST:
# DF, ES, GO, MG, MS, MT, PR, RJ, RS, SC, SP.
-# For dates after mid-2008, the above rules with TO="max" are guesses
-# and are quite possibly wrong, but are more likely than no DST at all.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
#
diff --git a/timezone/systemv b/timezone/systemv
index 6cf9645de0..767388d6aa 100644
--- a/timezone/systemv
+++ b/timezone/systemv
@@ -1,4 +1,7 @@
-# @(#)systemv 8.1
+# <pre>
+# @(#)systemv 8.2
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
# Old rules, should the need arise.
# No attempt is made to handle Newfoundland, since it cannot be expressed
diff --git a/timezone/tzselect.ksh b/timezone/tzselect.ksh
index b99af8273b..57bf707e45 100644
--- a/timezone/tzselect.ksh
+++ b/timezone/tzselect.ksh
@@ -1,6 +1,6 @@
#! @KSH@
-# '@(#)tzselect.ksh 8.1'
+VERSION='@(#)tzselect.ksh 8.2'
# Ask the user about the time zone, and output the resulting TZ value to stdout.
# Interact with the user via stderr and stdin.
@@ -45,6 +45,21 @@
exit 1
}
+if [ "$1" = "--help" ]; then
+ cat <<EOF
+Usage: tzselect
+Select a time zone interactively.
+
+Report bugs to tz@elsie.nci.nih.gov.
+EOF
+ exit 0
+elif [ "$1" = "--version" ]; then
+ cat <<EOF
+tzselect $VERSION
+EOF
+ exit 0
+fi
+
# Make sure the tables are readable.
TZ_COUNTRY_TABLE=$TZDIR/iso3166.tab
TZ_ZONE_TABLE=$TZDIR/zone.tab
diff --git a/timezone/yearistype b/timezone/yearistype
index d3a248032e..66dbf89a2b 100755
--- a/timezone/yearistype
+++ b/timezone/yearistype
@@ -1,6 +1,9 @@
#! /bin/sh
-: '@(#)yearistype.sh 7.8'
+: 'This file is in the public domain, so clarified as of'
+: '2006-07-17 by Arthur David Olson.'
+
+: '@(#)yearistype.sh 8.2'
case $#-$1 in
2-|2-0*|2-*[!0-9]*)
diff --git a/timezone/zdump.c b/timezone/zdump.c
index 82c91e485e..7122bbf891 100644
--- a/timezone/zdump.c
+++ b/timezone/zdump.c
@@ -1,4 +1,9 @@
-static char elsieid[] = "@(#)zdump.c 8.6";
+/*
+** This file is in the public domain, so clarified as of
+** 2009-05-17 by Arthur David Olson.
+*/
+
+static char elsieid[] = "@(#)zdump.c 8.9";
/*
** This code has been made independent of the rest of the time
@@ -230,6 +235,17 @@ const char * const zone;
warned = TRUE;
}
+static void
+usage(const char *progname, FILE *stream, int status)
+{
+ (void) fprintf(stream,
+_("%s: usage is %s [ --version ] [ --help ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n\
+\n\
+Report bugs to tz@elsie.nci.nih.gov.\n"),
+ progname, progname);
+ exit(status);
+}
+
int
main(argc, argv)
int argc;
@@ -266,6 +282,8 @@ char * argv[];
if (strcmp(argv[i], "--version") == 0) {
(void) printf("%s\n", elsieid);
exit(EXIT_SUCCESS);
+ } else if (strcmp(argv[i], "--help") == 0) {
+ usage(progname, stdout, EXIT_SUCCESS);
}
vflag = 0;
cutarg = NULL;
@@ -275,10 +293,7 @@ char * argv[];
else cutarg = optarg;
if ((c != EOF && c != -1) ||
(optind == argc - 1 && strcmp(argv[optind], "=") == 0)) {
- (void) fprintf(stderr,
-_("%s: usage is %s [ --version ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n"),
- progname, progname);
- exit(EXIT_FAILURE);
+ usage(progname, stderr, EXIT_FAILURE);
}
if (vflag) {
if (cutarg != NULL) {
@@ -349,13 +364,9 @@ _("%s: usage is %s [ --version ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n"),
(void) strncpy(buf, abbr(&tm), (sizeof buf) - 1);
}
for ( ; ; ) {
- if (t >= cuthitime)
+ if (t >= cuthitime || t >= cuthitime - SECSPERHOUR * 12)
break;
newt = t + SECSPERHOUR * 12;
- if (newt >= cuthitime)
- break;
- if (newt <= t)
- break;
newtmp = localtime(&newt);
if (newtmp != NULL)
newtm = *newtmp;
diff --git a/timezone/zic.c b/timezone/zic.c
index 5f8028e480..01d9f135bd 100644
--- a/timezone/zic.c
+++ b/timezone/zic.c
@@ -3,7 +3,7 @@
** 2006-07-17 by Arthur David Olson.
*/
-static char elsieid[] = "@(#)zic.c 8.17";
+static char elsieid[] = "@(#)zic.c 8.19";
#include "private.h"
#include "locale.h"
@@ -156,7 +156,7 @@ static void stringzone(char * result,
const struct zone * zp, int ntzones);
static void setboundaries(void);
static zic_t tadd(zic_t t1, long t2);
-static void usage(void);
+static void usage(FILE *stream, int status);
static void writezone(const char * name, const char * string);
static int yearistype(int year, const char * type);
@@ -454,13 +454,15 @@ const char * const string;
}
static void
-usage(void)
+usage(FILE *stream, int status)
{
- (void) fprintf(stderr, _("%s: usage is %s \
-[ --version ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n\
-\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"),
- progname, progname);
- exit(EXIT_FAILURE);
+ (void) fprintf(stream, _("%s: usage is %s \
+[ --version ] [ --help ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n\
+\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n\
+\n\
+Report bugs to tz@elsie.nci.nih.gov.\n"),
+ progname, progname);
+ exit(status);
}
static const char * psxrules;
@@ -498,11 +500,13 @@ char * argv[];
if (strcmp(argv[i], "--version") == 0) {
(void) printf("%s\n", elsieid);
exit(EXIT_SUCCESS);
+ } else if (strcmp(argv[i], "--help") == 0) {
+ usage(stdout, EXIT_SUCCESS);
}
while ((c = getopt(argc, argv, "d:l:p:L:vsy:")) != EOF && c != -1)
switch (c) {
default:
- usage();
+ usage(stderr, EXIT_FAILURE);
case 'd':
if (directory == NULL)
directory = optarg;
@@ -561,7 +565,7 @@ _("%s: More than one -L option specified\n"),
break;
}
if (optind == argc - 1 && strcmp(argv[optind], "=") == 0)
- usage(); /* usage message by request */
+ usage(stderr, EXIT_FAILURE); /* usage message by request */
if (directory == NULL)
directory = TZDIR;
if (yitcommand == NULL)
@@ -1991,7 +1995,7 @@ const int zonecount;
min_year = max_year = EPOCH_YEAR;
if (leapseen) {
updateminmax(leapminyear);
- updateminmax(leapmaxyear);
+ updateminmax(leapmaxyear + (leapmaxyear < INT_MAX));
}
for (i = 0; i < zonecount; ++i) {
zp = &zpfirst[i];
diff --git a/timezone/zone.tab b/timezone/zone.tab
index 39cc55f816..18aff1bb5a 100644
--- a/timezone/zone.tab
+++ b/timezone/zone.tab
@@ -1,4 +1,7 @@
-# @(#)zone.tab 8.18
+# <pre>
+# @(#)zone.tab 8.28
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
#
# TZ zone descriptions
#
@@ -42,14 +45,15 @@ AQ -7824+10654 Antarctica/Vostok Vostok Station, S Magnetic Pole
AQ -6640+14001 Antarctica/DumontDUrville Dumont-d'Urville Station, Terre Adelie
AQ -690022+0393524 Antarctica/Syowa Syowa Station, E Ongul I
AR -3436-05827 America/Argentina/Buenos_Aires Buenos Aires (BA, CF)
-AR -3124-06411 America/Argentina/Cordoba most locations (CB, CC, CN, ER, FM, LP, MN, NQ, RN, SA, SE, SF)
-AR -3319-06621 America/Argentina/San_Luis San Luis (SL)
+AR -3124-06411 America/Argentina/Cordoba most locations (CB, CC, CN, ER, FM, MN, SE, SF)
+AR -2447-06525 America/Argentina/Salta (SA, LP, NQ, RN)
AR -2411-06518 America/Argentina/Jujuy Jujuy (JY)
AR -2649-06513 America/Argentina/Tucuman Tucuman (TM)
AR -2828-06547 America/Argentina/Catamarca Catamarca (CT), Chubut (CH)
AR -2926-06651 America/Argentina/La_Rioja La Rioja (LR)
AR -3132-06831 America/Argentina/San_Juan San Juan (SJ)
AR -3253-06849 America/Argentina/Mendoza Mendoza (MZ)
+AR -3319-06621 America/Argentina/San_Luis San Luis (SL)
AR -5138-06913 America/Argentina/Rio_Gallegos Santa Cruz (SC)
AR -5448-06818 America/Argentina/Ushuaia Tierra del Fuego (TF)
AS -1416-17042 Pacific/Pago_Pago
@@ -100,7 +104,7 @@ BR -0640-06952 America/Eirunepe W Amazonas
BR -0958-06748 America/Rio_Branco Acre
BS +2505-07721 America/Nassau
BT +2728+08939 Asia/Thimphu
-BW -2545+02555 Africa/Gaborone
+BW -2439+02555 Africa/Gaborone
BY +5354+02734 Europe/Minsk
BZ +1730-08812 America/Belize
CA +4734-05243 America/St_Johns Newfoundland Time, including SE Labrador
@@ -115,7 +119,7 @@ CA +4901-08816 America/Nipigon Eastern Time - Ontario & Quebec - places that did
CA +4823-08915 America/Thunder_Bay Eastern Time - Thunder Bay, Ontario
CA +6344-06828 America/Iqaluit Eastern Time - east Nunavut - most locations
CA +6608-06544 America/Pangnirtung Eastern Time - Pangnirtung, Nunavut
-CA +744144-0944945 America/Resolute Eastern Time - Resolute, Nunavut
+CA +744144-0944945 America/Resolute Eastern Standard Time - Resolute, Nunavut
CA +484531-0913718 America/Atikokan Eastern Standard Time - Atikokan, Ontario and Southampton I, Nunavut
CA +624900-0920459 America/Rankin_Inlet Central Time - central Nunavut
CA +4953-09709 America/Winnipeg Central Time - Manitoba & west Ontario
@@ -284,16 +288,16 @@ MY +0310+10142 Asia/Kuala_Lumpur peninsular Malaysia
MY +0133+11020 Asia/Kuching Sabah & Sarawak
MZ -2558+03235 Africa/Maputo
NA -2234+01706 Africa/Windhoek
-NC -2216+16530 Pacific/Noumea
+NC -2216+16627 Pacific/Noumea
NE +1331+00207 Africa/Niamey
NF -2903+16758 Pacific/Norfolk
NG +0627+00324 Africa/Lagos
NI +1209-08617 America/Managua
NL +5222+00454 Europe/Amsterdam
NO +5955+01045 Europe/Oslo
-NP +2743+08519 Asia/Katmandu
+NP +2743+08519 Asia/Kathmandu
NR -0031+16655 Pacific/Nauru
-NU -1901+16955 Pacific/Niue
+NU -1901-16955 Pacific/Niue
NZ -3652+17446 Pacific/Auckland most locations
NZ -4357-17633 Pacific/Chatham Chatham Islands
OM +2336+05835 Asia/Muscat
@@ -364,7 +368,7 @@ TK -0922-17114 Pacific/Fakaofo
TL -0833+12535 Asia/Dili
TM +3757+05823 Asia/Ashgabat
TN +3648+01011 Africa/Tunis
-TO -2110+17510 Pacific/Tongatapu
+TO -2110-17510 Pacific/Tongatapu
TR +4101+02858 Europe/Istanbul
TT +1039-06131 America/Port_of_Spain
TV -0831+17913 Pacific/Funafuti
@@ -384,13 +388,13 @@ US +381515-0854534 America/Kentucky/Louisville Eastern Time - Kentucky - Louisvi
US +364947-0845057 America/Kentucky/Monticello Eastern Time - Kentucky - Wayne County
US +394606-0860929 America/Indiana/Indianapolis Eastern Time - Indiana - most locations
US +384038-0873143 America/Indiana/Vincennes Eastern Time - Indiana - Daviess, Dubois, Knox & Martin Counties
-US +411745-0863730 America/Indiana/Knox Eastern Time - Indiana - Starke County
US +410305-0863611 America/Indiana/Winamac Eastern Time - Indiana - Pulaski County
US +382232-0862041 America/Indiana/Marengo Eastern Time - Indiana - Crawford County
+US +382931-0871643 America/Indiana/Petersburg Eastern Time - Indiana - Pike County
US +384452-0850402 America/Indiana/Vevay Eastern Time - Indiana - Switzerland County
US +415100-0873900 America/Chicago Central Time
US +375711-0864541 America/Indiana/Tell_City Central Time - Indiana - Perry County
-US +382931-0871643 America/Indiana/Petersburg Central Time - Indiana - Pike County
+US +411745-0863730 America/Indiana/Knox Central Time - Indiana - Starke County
US +450628-0873651 America/Menominee Central Time - Michigan - Dickinson, Gogebic, Iron & Menominee Counties
US +470659-1011757 America/North_Dakota/Center Central Time - North Dakota - Oliver County
US +465042-1012439 America/North_Dakota/New_Salem Central Time - North Dakota - Morton County (except Mandan area)
@@ -408,7 +412,7 @@ US +211825-1575130 Pacific/Honolulu Hawaii
UY -3453-05611 America/Montevideo
UZ +3940+06648 Asia/Samarkand west Uzbekistan
UZ +4120+06918 Asia/Tashkent east Uzbekistan
-VA +4154+01227 Europe/Vatican
+VA +415408+0122711 Europe/Vatican
VC +1309-06114 America/St_Vincent
VE +1030-06656 America/Caracas
VG +1827-06437 America/Tortola