From f962d792472c45c9bccdc6b0697ad3d6350e9270 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 29 May 1998 09:44:53 +0000 Subject: [PATCH] Update. * timezone/africa: Update from tzdata1998e. * timezone/antarctica: Likewise. * timezone/asia: Likewise. * timezone/australasia: Likewise. * timezone/europe: Likewise. * timezone/iso3166.tab: Likewise. * timezone/northamerica: Likewise. * timezone/tzselect.ksh: Likewise. * timezone/zone.tab: Likewise. --- ChangeLog | 10 + manual/texinfo.tex | 485 +++++++++++++++++++++++++++++++++--------- timezone/africa | 30 ++- timezone/antarctica | 12 +- timezone/asia | 10 +- timezone/australasia | 17 +- timezone/europe | 127 +++++++---- timezone/iso3166.tab | 11 +- timezone/northamerica | 10 +- timezone/tzselect.ksh | 12 +- timezone/zone.tab | 7 +- 11 files changed, 545 insertions(+), 186 deletions(-) diff --git a/ChangeLog b/ChangeLog index f56182caca..4489a8a414 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,16 @@ * manual/texinfo.tex: Update to last available version. + * timezone/africa: Update from tzdata1998e. + * timezone/antarctica: Likewise. + * timezone/asia: Likewise. + * timezone/australasia: Likewise. + * timezone/europe: Likewise. + * timezone/iso3166.tab: Likewise. + * timezone/northamerica: Likewise. + * timezone/tzselect.ksh: Likewise. + * timezone/zone.tab: Likewise. + 1998-05-27 Ulrich Drepper * sysdeps/unix/sysv/linux/i386/chown.c: Fix comment. diff --git a/manual/texinfo.tex b/manual/texinfo.tex index bd5c5522d0..2d29734ef0 100644 --- a/manual/texinfo.tex +++ b/manual/texinfo.tex @@ -1,5 +1,5 @@ % texinfo.tex -- TeX macros to handle Texinfo files. -% $Id: texinfo.tex,v 2.214 1998/04/13 16:40:45 drepper Exp $ +% $Id: texinfo.tex,v 2.215 1998/05/29 09:03:23 drepper Exp $ % % Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98 % Free Software Foundation, Inc. @@ -27,7 +27,7 @@ % reports; you can get the latest version from: % /home/gd/gnu/doc/texinfo.tex on the GNU machines. % ftp://ftp.gnu.org/pub/gnu/texinfo.tex -% (and all GNU mirrors) +% (and all GNU mirrors, see ftp://ftp.gnu.org/pub/gnu/README.mirrors) % ftp://tug.org/tex/texinfo.tex % ftp://ctan.org/macros/texinfo/texinfo.tex % (and all CTAN mirrors, finger ctan@tug.org for a list). @@ -60,7 +60,7 @@ % This automatically updates the version number based on RCS. \def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}} -\deftexinfoversion$Revision: 2.214 $ +\deftexinfoversion$Revision: 2.215 $ \message{Loading texinfo package [Version \texinfoversion]:} % If in a .fmt file, print the version number @@ -98,18 +98,20 @@ % starts a new line in the output. \newlinechar = `^^J -% Set up fixed words for English. -\ifx\putwordChapter\undefined{\gdef\putwordChapter{Chapter}}\fi% -\def\putwordInfo{Info}% -\ifx\putwordSee\undefined{\gdef\putwordSee{See}}\fi% -\ifx\putwordsee\undefined{\gdef\putwordsee{see}}\fi% -\ifx\putwordfile\undefined{\gdef\putwordfile{file}}\fi% -\ifx\putwordpage\undefined{\gdef\putwordpage{page}}\fi% -\ifx\putwordsection\undefined{\gdef\putwordsection{section}}\fi% -\ifx\putwordSection\undefined{\gdef\putwordSection{Section}}\fi% -\ifx\putwordTableofContents\undefined{\gdef\putwordTableofContents{Table of Contents}}\fi% -\ifx\putwordShortContents\undefined{\gdef\putwordShortContents{Short Contents}}\fi% -\ifx\putwordAppendix\undefined{\gdef\putwordAppendix{Appendix}}\fi% +% Set up fixed words for English if not already set. +\ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi +\ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi +\ifx\putwordfile\undefined \gdef\putwordfile{file}\fi +\ifx\putwordInfo\undefined \gdef\putwordfile{Info}\fi +\ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi +\ifx\putwordon\undefined \gdef\putwordon{on}\fi +\ifx\putwordpage\undefined \gdef\putwordpage{page}\fi +\ifx\putwordsection\undefined \gdef\putwordsection{section}\fi +\ifx\putwordSection\undefined \gdef\putwordSection{Section}\fi +\ifx\putwordsee\undefined \gdef\putwordsee{see}\fi +\ifx\putwordSee\undefined \gdef\putwordSee{See}\fi +\ifx\putwordShortContents\undefined \gdef\putwordShortContents{Short Contents}\fi +\ifx\putwordTableofContents\undefined\gdef\putwordTableofContents{Table of Contents}\fi % Ignore a token. % @@ -963,13 +965,24 @@ where each line of input produces a line of output.} \def\value{\begingroup \catcode`\-=12 \catcode`\_=12 % Allow - and _ in VAR. \valuexxx} -\def\valuexxx#1{% +\def\valuexxx#1{\expandablevalue{#1}\endgroup} + +% We have this subroutine so that we can handle at least some @value's +% properly in indexes (we \let\value to this in \indexdummies). Ones +% whose names contain - or _ still won't work, but we can't do anything +% about that. The command has to be fully expandable, since the result +% winds up in the index file. This means that if the variable's value +% contains other Texinfo commands, it's almost certain it will fail +% (although perhaps we could fix that with sufficient work to do a +% one-level expansion on the result, instead of complete). +% +\def\expandablevalue#1{% \expandafter\ifx\csname SET#1\endcsname\relax - {\{No value for ``#1''\}}% + {[No value for ``#1'']v}% \else \csname SET#1\endcsname \fi -\endgroup} +} % @ifset VAR ... @end ifset reads the `...' iff VAR has been defined % with @set. @@ -1077,12 +1090,21 @@ where each line of input produces a line of output.} % @refill is a no-op. \let\refill=\relax +% If working on a large document in chapters, it is convenient to +% be able to disable indexing, cross-referencing, and contents, for test runs. +% This is done with @novalidate (before @setfilename). +% +\newif\iflinks \linkstrue % by default we want the aux files. +\let\novalidate = \linksfalse + % @setfilename is done at the beginning of every texinfo file. % So open here the files we need to have open while reading the input. % This makes it possible to make a .fmt file for texinfo. \def\setfilename{% - \readauxfile - \opencontents + \iflinks + \readauxfile + \opencontents + \fi % \openindices needs to do some work in any case. \openindices \fixbackslash % Turn off hack to swallow `\input texinfo'. \global\let\setfilename=\comment % Ignore extra @setfilename cmds. @@ -1896,7 +1918,7 @@ July\or August\or September\or October\or November\or December\fi \def\itemize{\parsearg\itemizezzz} \def\itemizezzz #1{% - \begingroup % ended by the @end itemsize + \begingroup % ended by the @end itemize \itemizey {#1}{\Eitemize} } @@ -2262,12 +2284,14 @@ width0pt\relax} \fi % the file that accumulates this index. The file's extension is foo. % The name of an index should be no more than 2 characters long % for the sake of vms. - -\def\newindex #1{ -\expandafter\newwrite \csname#1indfile\endcsname% Define number for output file -\openout \csname#1indfile\endcsname \jobname.#1 % Open the file -\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex -\noexpand\doindex {#1}} +% +\def\newindex#1{% + \iflinks + \expandafter\newwrite \csname#1indfile\endcsname + \openout \csname#1indfile\endcsname \jobname.#1 % Open the file + \fi + \expandafter\xdef\csname#1index\endcsname{% % Define @#1index + \noexpand\doindex{#1}} } % @defindex foo == \newindex{foo} @@ -2276,11 +2300,13 @@ width0pt\relax} \fi % Define @defcodeindex, like @defindex except put all entries in @code. -\def\newcodeindex #1{ -\expandafter\newwrite \csname#1indfile\endcsname% Define number for output file -\openout \csname#1indfile\endcsname \jobname.#1 % Open the file -\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex -\noexpand\docodeindex {#1}} +\def\newcodeindex#1{% + \iflinks + \expandafter\newwrite \csname#1indfile\endcsname + \openout \csname#1indfile\endcsname \jobname.#1 + \fi + \expandafter\xdef\csname#1index\endcsname{% + \noexpand\docodeindex{#1}} } \def\defcodeindex{\parsearg\newcodeindex} @@ -2325,6 +2351,7 @@ width0pt\relax} \fi \def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}} \def\indexdummies{% +\def\ { }% % Take care of the plain tex accent commands. \def\"{\realbackslash "}% \def\`{\realbackslash `}% @@ -2366,7 +2393,6 @@ width0pt\relax} \fi \def\gtr{\realbackslash gtr}% \def\less{\realbackslash less}% \def\hat{\realbackslash hat}% -%\def\char{\realbackslash char}% \def\TeX{\realbackslash TeX}% \def\dots{\realbackslash dots }% \def\result{\realbackslash result}% @@ -2393,7 +2419,12 @@ width0pt\relax} \fi \def\kbd##1{\realbackslash kbd {##1}}% \def\dfn##1{\realbackslash dfn {##1}}% \def\emph##1{\realbackslash emph {##1}}% -\def\value##1{\realbackslash value {##1}}% +% +% Handle some cases of @value -- where the variable name does not +% contain - or _, and the value does not contain any +% (non-fully-expandable) commands. +\let\value = \expandablevalue +% \unsepspaces } @@ -2466,14 +2497,24 @@ width0pt\relax} \fi % so we do not become unable to do a definition. {\catcode`\@=0 \catcode`\\=\other -@gdef@realbackslash{\}} + @gdef@realbackslash{\}} \let\indexbackslash=0 %overridden during \printindex. +\let\SETmarginindex=\relax % put index entries in margin (undocumented)? -\let\SETmarginindex=\relax %initialize! -% workhorse for all \fooindexes -% #1 is name of index, #2 is stuff to put there -\def\doind #1#2{% +% For \ifx comparisons. +\def\emptymacro{\empty} + +% Most index entries go through here, but \dosubind is the general case. +% +\def\doind#1#2{\dosubind{#1}{#2}\empty} + +% Workhorse for all \fooindexes. +% #1 is name of index, #2 is stuff to put there, #3 is subentry -- +% \empty if called from \doind, as we usually are. The main exception +% is with defuns, which call us directly. +% +\def\dosubind#1#2#3{% % Put the index entry in the margin if desired. \ifx\SETmarginindex\relax\else \insert\margin{\hbox{\vrule height8pt depth3pt width0pt #2}}% @@ -2484,13 +2525,22 @@ width0pt\relax} \fi \indexdummies % Must do this here, since \bf, etc expand at this stage \escapechar=`\\ {% - \let\folio=0% We will expand all macros now EXCEPT \folio. + \let\folio = 0% We will expand all macros now EXCEPT \folio. \def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now % so it will be output as is; and it will print as backslash. % + \def\thirdarg{#3}% + % + % If third arg is present, precede it with space in sort key. + \ifx\thirdarg\emptymacro + \let\subentry = \empty + \else + \def\subentry{ #3}% + \fi + % % First process the index-string with all font commands turned off % to get the string to sort by. - {\indexnofonts \xdef\indexsorttmp{#2}}% + {\indexnofonts \xdef\indexsorttmp{#2\subentry}}% % % Now produce the complete index entry, with both the sort key and the % original text, including any font commands. @@ -2499,33 +2549,35 @@ width0pt\relax} \fi \write\csname#1indfile\endcsname{% \realbackslash entry{\indexsorttmp}{\folio}{\the\toks0}}% }% - \temp + % + % If third (subentry) arg is present, add it to the index string. + \ifx\thirdarg\emptymacro \else + \toks0 = {#3}% + \edef\temp{\temp{\the\toks0}}% + \fi + % + % If a skip is the last thing on the list now, preserve it + % by backing up by \lastskip, doing the \write, then inserting + % the skip again. Otherwise, the whatsit generated by the + % \write will make \lastskip zero. The result is that sequences + % like this: + % @end defun + % @tindex whatever + % @defun ... + % will have extra space inserted, because the \medbreak in the + % start of the @defun won't see the skip inserted by the @end of + % the previous defun. + \iflinks + \skip0 = \lastskip \ifdim\lastskip = 0pt \else \vskip-\lastskip \fi + \temp + \ifdim\skip0 = 0pt \else \vskip\skip0 \fi + \fi }% }% \penalty\count255 }% } -\def\dosubind #1#2#3{% -{\count10=\lastpenalty % -{\indexdummies % Must do this here, since \bf, etc expand at this stage -\escapechar=`\\% -{\let\folio=0% -\def\rawbackslashxx{\indexbackslash}% -% -% Now process the index-string once, with all font commands turned off, -% to get the string to sort the index by. -{\indexnofonts -\xdef\temp1{#2 #3}% -}% -% Now produce the complete index entry. We process the index-string again, -% this time with font commands expanded, to get what to print in the index. -\edef\temp{% -\write \csname#1indfile\endcsname{% -\realbackslash entry {\temp1}{\folio}{#2}{#3}}}% -\temp }% -}\penalty\count10}} - % The index entry written in the file actually looks like % \entry {sortstring}{page}{topic} % or @@ -2949,7 +3001,7 @@ width0pt\relax} \fi \toks0 = {#1}% \edef\temp{{\realbackslash chapentry{\the\toks0}{\the\chapno}{\noexpand\folio}}}% \escapechar=`\\% -\write \contentsfile \temp % +\iflinks \write\contentsfile\temp \fi \donoderef % \global\let\section = \numberedsec \global\let\subsection = \numberedsubsec @@ -2970,7 +3022,7 @@ width0pt\relax} \fi \edef\temp{{\realbackslash chapentry{\the\toks0}% {\putwordAppendix{} \appendixletter}{\noexpand\folio}}}% \escapechar=`\\% -\write \contentsfile \temp % +\iflinks \write\contentsfile\temp \fi \appendixnoderef % \global\let\section = \appendixsec \global\let\subsection = \appendixsubsec @@ -3005,7 +3057,7 @@ width0pt\relax} \fi \toks0 = {#1}% \edef\temp{{\realbackslash unnumbchapentry{\the\toks0}{\noexpand\folio}}}% \escapechar=`\\% -\write \contentsfile \temp % +\iflinks \write\contentsfile\temp \fi \unnumbnoderef % \global\let\section = \unnumberedsec \global\let\subsection = \unnumberedsubsec @@ -3022,7 +3074,7 @@ width0pt\relax} \fi \edef\temp{{\realbackslash secentry % {\the\toks0}{\the\chapno}{\the\secno}{\noexpand\folio}}}% \escapechar=`\\% -\write \contentsfile \temp % +\iflinks \write\contentsfile\temp \fi \donoderef % \penalty 10000 % }} @@ -3038,7 +3090,7 @@ width0pt\relax} \fi \edef\temp{{\realbackslash secentry % {\the\toks0}{\appendixletter}{\the\secno}{\noexpand\folio}}}% \escapechar=`\\% -\write \contentsfile \temp % +\iflinks \write\contentsfile\temp \fi \appendixnoderef % \penalty 10000 % }} @@ -3051,7 +3103,7 @@ width0pt\relax} \fi \toks0 = {#1}% \edef\temp{{\realbackslash unnumbsecentry{\the\toks0}{\noexpand\folio}}}% \escapechar=`\\% -\write \contentsfile \temp % +\iflinks \write\contentsfile\temp \fi \unnumbnoderef % \penalty 10000 % }} @@ -3066,7 +3118,7 @@ width0pt\relax} \fi \edef\temp{{\realbackslash subsecentry % {\the\toks0}{\the\chapno}{\the\secno}{\the\subsecno}{\noexpand\folio}}}% \escapechar=`\\% -\write \contentsfile \temp % +\iflinks \write\contentsfile\temp \fi \donoderef % \penalty 10000 % }} @@ -3081,7 +3133,7 @@ width0pt\relax} \fi \edef\temp{{\realbackslash subsecentry % {\the\toks0}{\appendixletter}{\the\secno}{\the\subsecno}{\noexpand\folio}}}% \escapechar=`\\% -\write \contentsfile \temp % +\iflinks \write\contentsfile\temp \fi \appendixnoderef % \penalty 10000 % }} @@ -3094,7 +3146,7 @@ width0pt\relax} \fi \toks0 = {#1}% \edef\temp{{\realbackslash unnumbsubsecentry{\the\toks0}{\noexpand\folio}}}% \escapechar=`\\% -\write \contentsfile \temp % +\iflinks \write\contentsfile\temp \fi \unnumbnoderef % \penalty 10000 % }} @@ -3111,7 +3163,7 @@ width0pt\relax} \fi {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno} {\noexpand\folio}}}% \escapechar=`\\% -\write \contentsfile \temp % +\iflinks \write\contentsfile\temp \fi \donoderef % \penalty 10000 % }} @@ -3128,7 +3180,7 @@ width0pt\relax} \fi {\appendixletter} {\the\secno}{\the\subsecno}{\the\subsubsecno}{\noexpand\folio}}}% \escapechar=`\\% -\write \contentsfile \temp % +\iflinks \write\contentsfile\temp \fi \appendixnoderef % \penalty 10000 % }} @@ -3141,7 +3193,7 @@ width0pt\relax} \fi \toks0 = {#1}% \edef\temp{{\realbackslash unnumbsubsubsecentry{\the\toks0}{\noexpand\folio}}}% \escapechar=`\\% -\write \contentsfile \temp % +\iflinks \write\contentsfile\temp \fi \unnumbnoderef % \penalty 10000 % }} @@ -3924,7 +3976,12 @@ width0pt\relax} \fi \catcode 61=\active % 61 is `=' \obeylines\activeparens\spacesplit#3} -\def\defmethparsebody #1#2#3#4 {\begingroup\inENV % +% #1 is the \E... control sequence to end the definition (which we define). +% #2 is the \...x control sequence for consecutive fns (which we define). +% #3 is the control sequence to call to resume processing. +% #4, delimited by the space, is the class name. +% +\def\defmethparsebody#1#2#3#4 {\begingroup\inENV % \medbreak % % Define the end token that this defining construct specifies % so that it will exit this group. @@ -3935,6 +3992,24 @@ width0pt\relax} \fi \exdentamount=\defbodyindent \begingroup\obeylines\activeparens\spacesplit{#3{#4}}} +% @deftypemethod has an extra argument that nothing else does. Sigh. +% #1 is the \E... control sequence to end the definition (which we define). +% #2 is the \...x control sequence for consecutive fns (which we define). +% #3 is the control sequence to call to resume processing. +% #4, delimited by the space, is the class name. +% #5 is the method's return type. +% +\def\deftypemethparsebody#1#2#3#4 #5 {\begingroup\inENV % +\medbreak % +% Define the end token that this defining construct specifies +% so that it will exit this group. +\def#1{\endgraf\endgroup\medbreak}% +\def#2##1 ##2 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}{##2}}}% +\parindent=0in +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent +\exdentamount=\defbodyindent +\begingroup\obeylines\activeparens\spacesplit{#3{#4}{#5}}} + \def\defopparsebody #1#2#3#4#5 {\begingroup\inENV % \medbreak % % Define the end token that this defining construct specifies @@ -4152,39 +4227,46 @@ width0pt\relax} \fi \def\defspecx #1 {\errmessage{@defspecx in invalid context}} \def\deftypefnx #1 {\errmessage{@deftypefnx in invalid context}} \def\deftypemethodx #1 {\errmessage{@deftypemethodx in invalid context}} -\def\deftypeunx #1 {\errmessage{@deftypeunx in invalid context}} +\def\deftypefunx #1 {\errmessage{@deftypeunx in invalid context}} % @defmethod, and so on -% @defop {Funny Method} foo-class frobnicate argument +% @defop CATEGORY CLASS OPERATION ARG... \def\defop #1 {\def\defoptype{#1}% \defopparsebody\Edefop\defopx\defopheader\defoptype} \def\defopheader #1#2#3{% -\dosubind {fn}{\code{#2}}{on #1}% Make entry in function index +\dosubind {fn}{\code{#2}}{\putwordon\ #1}% Make entry in function index \begingroup\defname {#2}{\defoptype{} on #1}% \defunargs {#3}\endgroup % } -% @deftypemethod foo-class return-type foo-method args +% @deftypemethod CLASS RETURN-TYPE METHOD ARG... % \def\deftypemethod{% - \defmethparsebody\Edeftypemethod\deftypemethodx\deftypemethodheader} + \deftypemethparsebody\Edeftypemethod\deftypemethodx\deftypemethodheader} % % #1 is the class name, #2 the data type, #3 the method name, #4 the args. \def\deftypemethodheader#1#2#3#4{% - \deftypefnheaderx{Method on #1}{#2}#3 #4\relax + \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index + \begingroup + \defname{\defheaderxcond#2\relax$$$#3}{\putwordMethodon\ \code{#1}}% + \deftypefunargs{#4}% + \endgroup } % @defmethod == @defop Method - +% \def\defmethod{\defmethparsebody\Edefmethod\defmethodx\defmethodheader} - -\def\defmethodheader #1#2#3{% -\dosubind {fn}{\code{#2}}{on #1}% entry in function index -\begingroup\defname {#2}{Method on #1}% -\defunargs {#3}\endgroup % +% +% #1 is the class name, #2 the method name, #3 the args. +\def\defmethodheader#1#2#3{% + \dosubind{fn}{\code{#2}}{\putwordon\ \code{#1}}% entry in function index + \begingroup + \defname{#2}{\putwordMethodon\ \code{#1}}% + \defunargs{#3}% + \endgroup } % @defcv {Class Option} foo-class foo-flag @@ -4301,7 +4383,205 @@ width0pt\relax} \fi \def\deftpx #1 {\errmessage{@deftpx in invalid context}} -\message{cross reference,} +\message{macros,} +% @macro. +% The basic scheme is as follows: +% We read the first line and split it up into macro name and parameter +% list. We then walk the parameter list defining control sequences +% named \MAC@. Each expands to another +% control sequence named \MAC@.. Those +% control sequences will be defined at macro runtime to be the +% parameter expansion text. +% +% The body is then read in as a single argument in a context where \ +% is an active character, and the cs \MACb. is defined as +% the macro body. The active character \ takes one argument delimited +% by another \, and uses it to index the table of macro arguments +% described above. +% +% Finally, we define a control sequence \ which calls one +% of the six (!) macro execution commands. These six commands +% correspond to recursive and nonrecursive macros with no, one, and +% many arguments. They all take one argument, , set up +% the environment appropriately, and call the real macro. +% +% \macsave@ holds the old definition of \. + +\newcount\paramno +\newtoks\macname + +% This does \let #1 = #2, except with \csnames. +\def\cslet#1#2{% +\expandafter\expandafter\expandafter +\let +\expandafter\expandafter +\csname#1\endcsname +\csname#2\endcsname} + +% We have to play lots of games with the catcodes. Initially { and } +% are made `other' so that \splitarg (below) can use them as argument +% delimiters. Then - is made a letter so that \iimacro can recognize +% @allow-recursion. +\def\macro{\bgroup\catcode`\{=\other\catcode`\}=\other\parsearg\imacro} +\def\imacro#1{\egroup % started in \macro + \splitarg{#1}% now \macname is the macname and \toks0 the arglist + \paramno=0% + \edef\tmp{\the\toks0}% + \ifx\tmp\empty % no arguments + \else + \expandafter\parsemargdef \the\toks0;% + \fi + \bgroup\catcode`\-=11\global\futurelet\nxt\iimacro} + +% \imacro has noted whether the macro takes one, two, or many +% arguments (in \paramno). \iimacro figures out whether it's +% recursive, and then uses the argument count and the recursivity to +% select one of the six macro execution sequences. Then we save the +% original definition of @foo in \macsave@foo, and define @foo to call +% the selected execution sequence. \edef conveniently just expands +% the token registers, not the deep structure. +\def\iimacro{% + \egroup % started in \imacro + \ifx\nxt\allowrecur + \let\next\parserbody + \toks0=\expandafter{\csname dormacro\ifcase\paramno na\or oa\fi\endcsname}% + \else + \let\next\parsebody + \toks0=\expandafter{\csname domacro\ifcase\paramno na\or oa\fi\endcsname}% + \fi + \expandafter\ifx \csname macsave@\the\macname\endcsname \relax + \cslet{macsave@\the\macname}{\the\macname}% + \else + \errmessage{warning: redefining macro \the\macname}% + \fi + \expandafter\edef\csname\the\macname\endcsname{\the\toks0{\the\macname}}% +\next} + +% @allow-recursion is noticed and handled by \iimacro. It should +% never actually be executed. It has two names so we don't need +% strange catcodes while defining \iimacro. +\def\allowrecur{\errmessage{Internal error: \noexpand\allowrecur executed}} +{\catcode`\-=11\global\let\allow-recursion\allowrecur} + +% unmacro just restores the old meaning; the MAC@ macros +% remain defined. (Memory leak!) \norecurse is defined below, near +% the execution commands. +\def\unmacro{\parsearg\iunmacro} +\def\iunmacro#1{\macname={#1} \norecurse} + +% We need {} to be ordinary inside these commands. [] are temporary +% grouping symbols. +\begingroup +\catcode`\{=\other \catcode`\}=\other +\catcode`\[=1 \catcode`\]=2 + +% @macro can be called with or without a brace-surrounded macro +% argument list. These three sequences extract the macro name and arg +% list in hopefully all cases. *Note, anything on the line after the +% first pair of braces will be thrown out. +\gdef\splitarg#1[\isplitarg|#1 {}|] +\gdef\isplitarg|#1 {#2}#3|[% + \toks0=[#2]% + \edef\tmp[\the\toks0]% + \ifx\tmp\empty + \isplitargnospaces|#1{}|% + \else + \macname=[#1]% + \fi] +\gdef\isplitargnospaces|#1{#2}#3|[\macname=[#1] \toks0=[#2]] + +% \parsebrace gets around the situation produced by \braceorline +% (below) where the { has the wrong catcode because of \futurelet. +% The \egroup matches a \bgroup in \braceorline. +\gdef\parsebrace#1{#2}[\egroup\let\next=#1\next[#2]] + +\global\let\brace={ % used by \braceorline, below + +\endgroup + + +% Argument parsing. +% These routines iterate over a comma-separated list defining +% tokens that map macro formal to actual parameters. +% \parsemargdef sets the formal -> positional correspondence at macro +% definition time; \parsemarg sets positional -> actual at runtime. +% +% The definitions are not symmetric because the callers have the +% argument list in different places (token register and #arg) +\def\parsemargdef#1;{\paramno=0\iparsemargdef#1,;,} +\def\iparsemargdef#1,{% + \if#1;\let\next=\relax + \else \let\next=\iparsemargdef + \advance\paramno by 1% + \expandafter\edef\csname MAC@\the\macname#1\endcsname + {\csname MAC@\the\macname.\the\paramno\endcsname}% + \fi\next} + +\def\parsemarg#1{\paramno=1\iparsemarg#1,;,} +\def\iparsemarg#1,{% + \if#1;\let\next=\relax + \else \let\next=\iparsemarg + \expandafter\def\csname MAC@\the\macname.\the\paramno\endcsname{#1}% + \advance\paramno by 1% + \fi\next} + +% Argument substitution. +% \ is active when the body is read and tokenized; it converts its +% argument to a macro-argument name and expands it. We use | as a +% temporary escape character. +{ +\catcode`\|=0 |catcode`|\=|active +|gdef\#1\{|csname MAC@|the|macname#1|endcsname} +} + +% These sequences read and save the macro body. \parserbody absorbs +% the @allow-recursion in its argument, and then falls through to +% \parsebody. +\def\parsebody{\begingroup\catcode`\\=\active\iparsebody} +\def\parserbody#1{\parsebody} + +% \iparsebody reads the entire macro in as an argument. \ was made +% active by \parsebody while the reading occurs. +\long\def\iparsebody#1 \end macro% The space eats the final CR. +{\endgroup % started in \parsebody +\expandafter\def\csname MACb.\the\macname \endcsname{#1}} + +% These six sequences execute recursive and nonrecursive macros of no, +% one, and many arguments. We need to distinguish one arg from many +% args because a one-argument macro invoked with no arguments gets the +% rest of the line as its argument. +% +% Please note that all macros are executed inside a group, so any +% changes made by a macro (@set, etc.) won't stick. +\def\dormacrona#1{\begingroup\macname={#1}\idomacro{}} +\def\dormacrooa#1{\begingroup\macname={#1}\braceorline} +\def\dormacro#1{\begingroup\macname={#1}\idomacro} + +\def\domacrona#1{\begingroup\macname={#1}\norecurse\idomacro{}} +\def\domacrooa#1{\begingroup\macname={#1}\norecurse\braceorline} +\def\domacro#1{\begingroup\macname={#1}\norecurse\idomacro} + +% some helpers: +\def\norecurse{\cslet{\the\macname}{macsave@\the\macname}} +\def\idomacro#1{\parsemarg{#1}\csname MACb.\the\macname\endcsname\endgroup} + +% \braceorline decides whether the next nonwhitespace character is a +% {. If so it reads up to the closing }, if not, it reads the whole +% line. Whatever was read is then fed to \idomacro. \parsebrace is +% defined above, near \splitarg, in a strange catcode environment; +% this is necessary because \futurelet freezes the catcode of the +% peeked-at character. +\def\braceorline{\bgroup +\catcode`\{=\other\catcode`\}=\other \futurelet\nxt\ibraceorline} +\def\ibraceorline{% +\ifx\nxt\brace + \expandafter\parsebrace + \else + \egroup \expandafter\parsearg + \fi \idomacro} + + +\message{cross references,} \newwrite\auxfile \newif\ifhavexrefs % True if xref values are known. @@ -4394,7 +4674,9 @@ width0pt\relax} \fi {\let\folio=0 \normalturnoffactive \edef\next{\write\auxfile{\internalsetq{#1}{#2}}}% - \next + \iflinks + \next + \fi }% } @@ -4448,12 +4730,14 @@ width0pt\relax} \fi \expandafter\ifx\csname X#1\endcsname\relax % If not defined, say something at least. \angleleft un\-de\-fined\angleright - \ifhavexrefs - \message{\linenumber Undefined cross reference `#1'.}% - \else - \ifwarnedxrefs\else - \global\warnedxrefstrue - \message{Cross reference values unknown; you must run TeX again.}% + \iflinks + \ifhavexrefs + \message{\linenumber Undefined cross reference `#1'.}% + \else + \ifwarnedxrefs\else + \global\warnedxrefstrue + \message{Cross reference values unknown; you must run TeX again.}% + \fi \fi \fi \else @@ -4696,7 +4980,9 @@ width0pt\relax} \fi \openin 1 = epsf.tex \ifeof 1 \else \closein 1 - \def\epsfannounce{\toks0 = }% do not bother showing banner + % Do not bother showing banner with post-v2.7 epsf.tex (available in + % doc/epsf.tex until it shows up on ctan). + \def\epsfannounce{\toks0 = }% \input epsf.tex \fi % @@ -4726,7 +5012,12 @@ width0pt\relax} \fi % \epsfbox itself resets \epsf?size at each figure. \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi - \epsfbox{#1.eps}% + % If the image is by itself, center it. + \ifvmode + \centerline{\epsfbox{#1.eps}}% + \else + \epsfbox{#1.eps}% + \fi } % End of control word definitions. diff --git a/timezone/africa b/timezone/africa index 8286e6f62f..a38818f659 100644 --- a/timezone/africa +++ b/timezone/africa @@ -1,4 +1,4 @@ -# @(#)africa 7.23 +# @(#)africa 7.24 # 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 @@ -105,9 +105,6 @@ Zone Africa/Luanda 0:52:56 - LMT 1892 0:52:04 - LMT 1911 May 26 # Luanda Mean Time? 1:00 - WAT -# Bassas da India -# uninhabited - # Benin # Whitman says they switched to 1:00 in 1946, not 1934; go with Shanks. # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -240,9 +237,6 @@ Zone Africa/Addis_Ababa 2:34:48 - LMT 1870 2:35:20 - ADMT 1936 May 5 # Adis Dera MT 3:00 - EAT -# Europa Island -# uninhabited - # Gabon # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Libreville 0:37:48 - LMT 1912 @@ -264,9 +258,6 @@ Rule Ghana 1936 1942 - Dec 31 0:00 0 GMT Zone Africa/Accra -0:00:52 - LMT 1918 0:00 Ghana %s -# Glorioso Is -# uninhabited - # Guinea # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Conakry -0:54:52 - LMT 1912 @@ -280,9 +271,6 @@ Zone Africa/Bissau -1:02:20 - LMT 1911 May 26 -1:00 - WAT 1975 0:00 - GMT -# Juan de Nova -# uninhabited - # Kenya # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Nairobi 2:27:16 - LMT 1928 Jul @@ -450,6 +438,19 @@ Zone Africa/Lagos 0:13:36 - LMT 1919 Sep # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Indian/Reunion 3:41:52 - LMT 1911 Jun # Saint-Denis 4:00 - RET # Reunion Time +# +# Scattered Islands (Iles Eparses) administered from Reunion are as follows. +# The following information about them is taken from +# +# Iles Eparses +# +# (1997-07-22, in French). We have no info about their time zone histories. +# +# Bassas da India - uninhabited +# Europa Island - inhabited from 1905 to 1910 by two families +# Glorioso Is - inhabited until at least 1958 +# Juan de Nova - uninhabited +# Tromelin - inhabited until at least 1958 # Rwanda # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -553,9 +554,6 @@ Zone Africa/Dar_es_Salaam 2:37:08 - LMT 1931 Zone Africa/Lome 0:04:52 - LMT 1893 0:00 - GMT -# Tromelin -# uninhabited - # Tunisia # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Tunisia 1939 only - Apr 15 23:00s 1:00 S diff --git a/timezone/antarctica b/timezone/antarctica index c4dc3e4180..f5422b2bf1 100644 --- a/timezone/antarctica +++ b/timezone/antarctica @@ -1,4 +1,4 @@ -# @(#)antarctica 7.13 +# @(#)antarctica 7.14 # From Paul Eggert (1997-03-28): # To keep things manageable, we list only locations occupied year-round; @@ -41,18 +41,24 @@ Rule ChileAQ 1970 max - Mar Sun>=9 0:00 0 - # # year-round bases # Casey, Bailey Peninsula, since 1969 -# Davis, Vestfold Hills, since 1957-01-13 (except 1965-01 - 1969-02) +# Davis, Vestfold Hills, since 1957-01-13 (except 1964-11 - 1969-02) # Mawson, Holme Bay, since 1954-02-13 # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Antarctica/Casey 0 - ___ 1969 8:00 - WST # Western (Aus) Standard Time -#Zone Antartica/Davis unknown +Zone Antarctica/Davis 0 - ___ 1957 Jan 13 + 7:00 - DAVT 1964 Nov # Davis Time + 0 - ___ 1969 Feb + 7:00 - DAVT Zone Antarctica/Mawson 0 - ___ 1954 Feb 13 6:00 - MAWT # Mawson Time # References: # # Casey Weather (1998-02-26) # +# +# Davis Station, Antarctica (1998-02-26) +# # # Mawson Station, Antarctica (1998-02-25) # diff --git a/timezone/asia b/timezone/asia index 8d667cc99e..fae16c6995 100644 --- a/timezone/asia +++ b/timezone/asia @@ -1,4 +1,4 @@ -# @(#)asia 7.38 +# @(#)asia 7.39 # 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 @@ -881,6 +881,14 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 # to Palestine's rules. If you have more info about this, please # send it to tz@elsie.nci.nih.gov for incorporation into future editions. +# From IINS News Service - Israel - 1998-03-23 10:38:07 Israel time, +# forwarded by Ephraim Silverberg: +# +# Despite the fact that Israel changed over to daylight savings time +# last week, the PLO Authority (PA) has decided not to turn its clocks +# one-hour forward at this time. As a sign of independence from Israeli rule, +# the PA has decided to implement DST in April. + # These rules for Egypt are stolen from the `africa' file. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule EgyptAsia 1957 only - May 10 0:00 1:00 S diff --git a/timezone/australasia b/timezone/australasia index 810c10d618..f82121e125 100644 --- a/timezone/australasia +++ b/timezone/australasia @@ -1,4 +1,4 @@ -# @(#)australasia 7.41 +# @(#)australasia 7.43 # This file also includes Pacific islands. # Notes are at the end of this file @@ -158,9 +158,6 @@ Zone Australia/Lord_Howe 10:36:20 - LMT 1895 Feb 10:30 LH LHST # Australian miscellany -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Indian/Christmas 7:02:52 - LMT 1895 Feb - 7:00 - CXT # Christmas Island Time # # Ashmore Is, Cartier # no indigenous inhabitants; only seasonal caretakers @@ -178,6 +175,10 @@ Zone Indian/Christmas 7:02:52 - LMT 1895 Feb # Manihiki, Penrhyn, Rakehanga # no information +# Christmas +# Zone NAME GMTOFF RULES FORMAT [UNTIL] +Zone Indian/Christmas 7:02:52 - LMT 1895 Feb + 7:00 - CXT # Christmas Island Time # Cook Is # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S @@ -207,6 +208,8 @@ Zone Pacific/Marquesas -9:18:00 - LMT 1912 Oct -9:30 - MART # Marquesas Time Zone Pacific/Tahiti -9:58:16 - LMT 1912 Oct # Papeete -10:00 - TAHT # Tahiti Time +# Clipperton (near North America) is administered from French Polynesia; +# it is uninhabited. # Guam # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -402,6 +405,12 @@ Zone Pacific/Johnston -10:00 - HST # Kingman # uninhabited +# Midway +Zone Pacific/Midway -11:49:28 - LMT 1901 + -11:00 - NST 1967 Apr # N=Nome + -11:00 - BST 1983 Nov 30 # B=Bering + -11:00 - SST # S=Samoa + # Palmyra # uninhabited since World War II; was probably like Pacific/Kiritimati diff --git a/timezone/europe b/timezone/europe index 0f2398f677..5e920e8366 100644 --- a/timezone/europe +++ b/timezone/europe @@ -1,4 +1,4 @@ -# %W% +# @(#)europe 7.54 # 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 @@ -147,7 +147,7 @@ # time of sunrise and sunset in The Times, when BDST was in effect, and # if you find a zone reference it will say, "All times B.D.S.T." -# From Peter Ilieve (1998-01-12): +# From Peter Ilieve (1998-04-19): # The following list attempts to show the complete history of Summer Time # legislation in the United Kingdom, and has quite a bit to say about # the Isle of Man and the Channel Islands as well. @@ -200,7 +200,7 @@ # seen it I don't know if it used Greenwich mean time, some other definition, # or just said that Isle of Man time would be the same as in Great Britain. # -# - The Isle of Man (War Legislation) Act, 1914 (4 & 5 Geo. 5. c. 62) (???) +# - The Isle of Man (War Legislation) Act, 1914 (4 & 5 Geo. 5. c. 62) # # Gives the power, by Order in Council, to extend wartime legislation # to the Isle of Man. @@ -258,6 +258,14 @@ # # The matching Isle of Man Order for 1918 with the same dates and times. # +# - The Termination of the Present War (Definition) Act, 1918 +# (8 & 9 Geo. 5. c. 59) +# +# This gave power to specify a legal end date for the war just ended, +# which would affect things like the Summer Time Act, 1916, which applied +# only in wartime. This date was to be close to the date of formal +# ratification of the treaty or treaties of peace. +# # - S.R.&O. 1919, No. 297 # # An Order made under the Summer Time Act, 1916 giving dates @@ -285,12 +293,12 @@ # Monday 25 October (the time remaining 02:00 GMT). The 1989 Green # Paper (Cm 722) says this was done because of a coal strike. # -# - The War Emergency Laws (Continuance) Act, 1920 (10 & 11 Geo. 5. c. 5) (???) +# - The War Emergency Laws (Continuance) Act, 1920 (10 Geo. 5. c. 5) # # This extends the power to make Orders under the Summer Time Act, 1916 # for a period of 12 months after the termination of the war. -# I haven't seen this one so I don't know when it came into force, or -# when the law deemed the termination of the war to have been. +# Came into force on 31 March 1920. Although the war had been over for more +# than 12 months by then the legal end date had not yet been set. # # - S.R.&O. 1921, No. 363 # @@ -302,11 +310,16 @@ # # The matching Isle of Man Order for 1921 with the same dates and times. # -# - S.R.&O. 1922, No. 264 (???) +# - S.R.&O. 1922, No. 264 # -# This probably defines Summer Time for 1922 as the Summer Time Act, 1922 -# was passed after the start date. Dates from Cm 722: -# 1922: 26 March to 8 October +# An Order made under the Summer Time Act, 1916 and the War +# Emergency Laws (Continuance) Act, 1920 giving dates for Summer Time +# in 1921 of Sunday 26 March to Sunday 8 October, both at 02:00 GMT. +# It also mentions the arrangements for defining the legal end date +# for the late war. An Order was made on 10 August 1921, under the +# Termination of the Present War (Definition) Act, 1918, setting +# a date of 31 August 1921. This means the powers of the Summer Time +# Act, 1916 would finally expire on 31 August 1922. # # - S.R.&O. 1922, No. 290 (???) # @@ -327,7 +340,7 @@ # dated 13 October 1922. It revokes (among other things) the Order extending # the Summer Time Act, 1916 to the Isle of Man. # -# - The Expiring Laws Continuance Act, 1923 (13 & 14 Geo. 5. c. 37) (jsm) +# - The Expiring Laws Continuance Act, 1923 (13 & 14 Geo. 5. c. 37) # # This extended the Summer Time Act, 1922 (among other things) until # 31 December 1924. @@ -359,15 +372,16 @@ # These were made under the Emergency Powers (Defence) Act, 1939. # They change the end date to be the day after the third Saturday in November. # -# - S.R.&O. 1940, No. 1883 +# - S.R.&O. 1940, No. 172 # # An Order in Council amending the Defence (Summer Time) Regulations, 1939. +# It changed the start date to the day after the fourth Saturday in February +# (ie. 25 Feb 1940). +# +# - S.R.&O. 1940, No. 1883 +# +# Another Order amending the Defence (Summer Time) Regulations, 1939. # This continues summer time throughout the year after it starts in 1940. -# There was another Order (S.R.&O. 1940, No. 172) that I assume had merely -# changed the dates, to start on 4 February, and was then superseded by this -# one. I haven't seen No. 172 so I don't know what end date it would have -# specified. The dates from Cm 722: -# 1940: Summer Time starts on 4 February # # - S.R.&O. 1941, No. 476 # @@ -385,15 +399,20 @@ # # - S.R.&O. 1944, No. 932 # -# This changed the end date of Double Summer Time to 17 September 1944. -# (I don't have the text of this, just a note of what it did, the text almost -# certainly had the `day after the nth Saturday' form.) +# Another Order amending the Defence (Summer Time) Regulations, 1939. +# This changed the end date of Double Summer Time to the day after the +# third Saturday in September (ie. 17 September 1944). # -# - S.R.&O. 1945, No. 312 (???) +# - S.R.&O. 1945, No. 312 # -# Probably defines the dates of Double Summer Time in 1945. -# I do have this quote from Hansard (the official record of the United Kingdom -# Parliament), Oral Answers, 1 March 1945, cols 1559--60: +# Another Order amending the Defence (Summer Time) Regulations, 1939. +# This changes the start and end dates of Double Summer Time to the +# day after the first Sunday in April and the day after the second Saturday +# in July (ie. Mon 2 April to Sun 15 July). +# +# I have this quote from Hansard (the official record of the United Kingdom +# Parliament), Oral Answers, 1 March 1945, cols 1559--60, explaining the +# unusual start on a Monday: # # `58. Major Sir Goronwy Owen asked the Secretary of State for the Home # Department if he is now able to state the Government's proposals @@ -410,15 +429,13 @@ # Sunday, but in the night of Sunday-Monday so that it will operate from # Monday, 2nd April.' # -# Cm 722 gives dates of: -# 1945: Double Summer time: 2 April to 15 July -# 1945: Summer Time ends on 7 October -# # - S.R.&O. 1945, No. 1208 # # An Order under the Emergency Powers (Defence) Acts, 1939 and 1940 revoking # a long list of things, including the Defence (Summer Time) Regulations, 1939. # This meant that Summer Time reverted to being set by the 1922 and 1925 Acts. +# It was made on 28 September, early enough to end Summer Time on the +# date defined by the 1925 Act: 7 October. # # - The Summer Time Act, 1947 (10 & 11 Geo. 6. c. 16) # @@ -431,21 +448,36 @@ # both to vary the dates and to continue Double Summer Time. It applied # to the Isle of Man and the Channel Islands. # -# - Summer Time Order, 1948 (S.I. 1948/495) (???) -# - Summer Time Order, 1949 (S.I. 1949/373) (???) -# - Summer Time Order, 1950 (S.I. 1950/518) (???) -# - Summer Time Order, 1951 (S.I. 1951/430) (???) -# - Summer Time Order, 1952 (S.I. 1952/451) (???) +# - Summer Time Order, 1948 (S.I. 1948/495) # -# These presumably give the dates of Summer Time for the relevent years. -# There was no Double Summer Time. The dates given in the 1989 Green Paper -# for these years are: -# 1948: 14 March to 31 October -# 1949: 3 April to 30 October -# 1950: 16 April to 22 October -# 1951: 15 April to 21 October -# 1952: 20 April to 26 October -# After 1952 things revert back to the 1922 and 1925 Acts. +# An Order made under the Summer Time Act, 1947. Gave dates for 1948 of +# 14 March and 31 October, both at 02:00 GMT. +# +# Although the 1947 Act had legislated for Double Summer Time, this was +# not continued after 1947. +# +# - Summer Time Order, 1949 (S.I. 1949/373) +# +# Another Order made under the Summer Time Act, 1947. Gave dates for 1949 +# of 3 April and 30 October, both at 02:00 GMT. +# +# - Summer Time Order, 1950 (S.I. 1950/518) +# +# Another Order made under the Summer Time Act, 1947. Gave dates for 1950 +# of 16 April and 22 October, both at 02:00 GMT. +# +# - Summer Time Order, 1951 (S.I. 1951/430) +# +# Another Order made under the Summer Time Act, 1947. Gave dates for 1951 +# of 15 April and 21 October, both at 02:00 GMT. +# +# - Summer Time Order, 1952 (S.I. 1952/451) +# +# Another Order made under the Summer Time Act, 1947. Gave dates for 1952 +# of 20 April and 26 October, both at 02:00 GMT. +# +# This is the last of this run of Orders, so for 1953 things reverted +# to the 1922 and 1925 Acts. # # - The Interpretation Act (Northern Ireland), 1954 (1954 c. 33 (N.I.)) (???) # @@ -659,7 +691,9 @@ # 2000: 26 March to 29 October # 2001: 25 March to 28 October # +# # - Summer Time Order 1997 (S.I. 1997/2982) +# # # Implements the eighth Directive. Has the same text about the Isle of Man, # Guernsey and Jersey as the 1994 Order. @@ -757,7 +791,7 @@ Rule GB-Eire 1939 only - Apr Sun>=16 2:00s 1:00 BST # S.R.&O. 1939, No. 1379 Rule GB-Eire 1939 only - Nov Sun>=16 2:00s 0 GMT # S.R.&O. 1940, No. 172 and No. 1883 -Rule GB-Eire 1940 only - Feb 25 2:00s 1:00 BST +Rule GB-Eire 1940 only - Feb Sun>=23 2:00s 1:00 BST # S.R.&O. 1941, No. 476 Rule GB-Eire 1941 only - May Sun>=2 1:00s 2:00 BDST Rule GB-Eire 1941 1943 - Aug Sun>=9 1:00s 1:00 BST @@ -766,9 +800,9 @@ Rule GB-Eire 1942 1944 - Apr Sun>=2 1:00s 2:00 BDST # S.R.&O. 1944, No. 932 Rule GB-Eire 1944 only - Sep Sun>=16 1:00s 1:00 BST # S.R.&O. 1945, No. 312 -Rule GB-Eire 1945 only - Apr 2 1:00s 2:00 BDST +Rule GB-Eire 1945 only - Apr Mon>=2 1:00s 2:00 BDST +Rule GB-Eire 1945 only - Jul Sun>=9 1:00s 1:00 BST # S.R.&O. 1945, No. 1208 -Rule GB-Eire 1945 only - Jul 15 1:00s 1:00 BST Rule GB-Eire 1945 1946 - Oct Sun>=2 2:00s 0 GMT Rule GB-Eire 1946 only - Apr Sun>=9 2:00s 1:00 BST # The Summer Time Act, 1947 @@ -778,9 +812,10 @@ Rule GB-Eire 1947 only - Aug 10 1:00s 1:00 BST Rule GB-Eire 1947 only - Nov 2 2:00s 0 GMT # Summer Time Order, 1948 (S.I. 1948/495) Rule GB-Eire 1948 only - Mar 14 2:00s 1:00 BST -Rule GB-Eire 1948 1949 - Oct lastSun 2:00s 0 GMT +Rule GB-Eire 1948 only - Oct 31 2:00s 0 GMT # Summer Time Order, 1949 (S.I. 1949/373) Rule GB-Eire 1949 only - Apr 3 2:00s 1:00 BST +Rule GB-Eire 1949 only - Oct 30 2:00s 0 GMT # Summer Time Order, 1950 (S.I. 1950/518) # Summer Time Order, 1951 (S.I. 1951/430) # Summer Time Order, 1952 (S.I. 1952/451) diff --git a/timezone/iso3166.tab b/timezone/iso3166.tab index 6eb4d318db..a3b2bee9fa 100644 --- a/timezone/iso3166.tab +++ b/timezone/iso3166.tab @@ -3,12 +3,16 @@ # From Paul Eggert (1996-09-03): # # This file contains a table with the following columns: -# 1. ISO 3166 2-character country code. +# 1. ISO 3166-1:1997 2-character country code. See: # 2. The usual English name for the country, # chosen so that alphabetic sorting of subsets produces helpful lists. +# This is not the same as the English name in the ISO 3166 tables. # -# For France in Europe, we follow common practice and use FR, -# even though FX might be more technically correct. +# The PS code below has been reserved for Palestine by the ISO; +# however, the code is not yet officially assigned to Palestine. Please see +# +# Cord Wischhoefer, Country Code Elements for Palestine (1996-07-24) +# . # # Columns are separated by a single tab. # The table is sorted by country code. @@ -191,6 +195,7 @@ PL Poland PM St Pierre & Miquelon PN Pitcairn PR Puerto Rico +PS Palestine PT Portugal PW Palau PY Paraguay diff --git a/timezone/northamerica b/timezone/northamerica index baaf84095a..042be035d7 100644 --- a/timezone/northamerica +++ b/timezone/northamerica @@ -1,4 +1,4 @@ -# @(#)northamerica 7.39 +# @(#)northamerica 7.40 # also includes Central America and the Caribbean # This data is by no means authoritative; if you think you know better, @@ -262,11 +262,6 @@ Zone Pacific/Honolulu -10:31:26 - LMT 1900 Jan 1 12:00 -10:30 US H%sT 1947 Jun 8 2:00 -10:00 - HST -Zone Pacific/Midway -11:49:28 - LMT 1901 - -11:00 - NST 1967 Apr # N=Nome - -11:00 - BST 1983 Nov 30 # B=Bering - -11:00 - SST # S=Samoa - # Now we turn to US areas that have diverged from the consensus since 1970. # Arizona mostly uses MST. @@ -1102,9 +1097,6 @@ Zone America/Cayman -5:25:32 - LMT 1890 # Georgetown -5:07 - KMT 1912 Feb # Kingston Mean Time -5:00 - EST -# Clipperton -# uninhabited - # Costa Rica # Shanks gives some very odd dates for 1991, and stops there. # For now, we won't guess further. diff --git a/timezone/tzselect.ksh b/timezone/tzselect.ksh index 031cda1de6..010a0deb32 100644 --- a/timezone/tzselect.ksh +++ b/timezone/tzselect.ksh @@ -10,21 +10,25 @@ # If your host lacks the Korn shell, # you can use either of the following free programs instead: # +# # Bourne-Again shell (bash) -# +# # +# # Public domain ksh -# +# # # This script also uses several features of modern awk programs. # If your host lacks awk, or has an old awk that does not conform to Posix.2, # you can use either of the following free programs instead: # +# # GNU awk (gawk) -# +# # +# # mawk -# +# # Specify default values for environment variables if they are unset. diff --git a/timezone/zone.tab b/timezone/zone.tab index df4c157788..3cfd4d12cb 100644 --- a/timezone/zone.tab +++ b/timezone/zone.tab @@ -33,6 +33,7 @@ AQ -7750+16636 Antarctica/McMurdo McMurdo Station, Ross Island AQ -9000+00000 Antarctica/South_Pole Amundsen-Scott Station, South Pole AQ -6448-06406 Antarctica/Palmer Palmer Station, Anvers Island AQ -6736+06253 Antarctica/Mawson Mawson Station, Holme Bay +AQ -6835+07758 Antarctica/Davis Davis Station, Vestfold Hills AQ -6617+11031 Antarctica/Casey Casey Station, Bailey Peninsula AQ -6640+14001 Antarctica/DumontDUrville Dumont-d'Urville Base, Terre Adelie AR -3436-05827 America/Buenos_Aires E Argentina (BA, DF, SC, TF) @@ -178,8 +179,7 @@ ID -0610+10648 Asia/Jakarta Java & Sumatra ID -0507+11924 Asia/Ujung_Pandang Borneo & Celebes ID -0232+14042 Asia/Jayapura Irian Jaya & the Moluccas IE +5320-00615 Europe/Dublin -IL +3146+03514 Asia/Jerusalem most locations -IL +3130+03428 Asia/Gaza Gaza Strip +IL +3146+03514 Asia/Jerusalem IN +2232+08822 Asia/Calcutta IO -0720+07225 Indian/Chagos IQ +3321+04425 Asia/Baghdad @@ -255,7 +255,7 @@ NP +2743+08519 Asia/Katmandu NR -0031+16655 Pacific/Nauru NU -1901+16955 Pacific/Niue NZ -3652+17446 Pacific/Auckland most locations -NZ -4355+17630 Pacific/Chatham Chatham Island +NZ -4355-17630 Pacific/Chatham Chatham Islands OM +2336+05835 Asia/Muscat PA +0858-07932 America/Panama PE -1203-07703 America/Lima @@ -269,6 +269,7 @@ PL +5215+02100 Europe/Warsaw PM +4703-05620 America/Miquelon PN -2504-13005 Pacific/Pitcairn PR +182806-0660622 America/Puerto_Rico +PS +3130+03428 Asia/Gaza PT +3843-00908 Europe/Lisbon mainland PT +3238-01654 Atlantic/Madeira Madeira Islands PT +3744-02540 Atlantic/Azores Azores