Module Name:    src
Committed By:   christos
Date:           Tue Aug 16 11:07:40 UTC 2022

Modified Files:
        src/lib/libc/time: Makefile NEWS ctime.3 private.h theory.html
            tz-art.html tz-link.html tzfile.5 tzselect.8 tzselect.ksh version
            zic.c

Log Message:
Welcome to tzcode-2022c

Work around a bug in onetrueawk that broke commands like
'make traditional_tarballs' on FreeBSD, macOS, etc.
(Problem reported by Deborah Goldsmith.)

Add code to tzselect that uses experimental structured comments in
zone1970.tab to clarify whether Zones like Africa/Abidjan and
Europe/Istanbul cross continent or ocean boundaries.
(Inspired by a problem reported by Peter Krefting.)

Fix bug with 'zic -d /a/b/c' when /a is unwritable but the
directory /a/b already exists.

Remove zoneinfo2tdf.pl, as it was unused and triggered false
malware alarms on some email servers.


To generate a diff of this commit:
cvs rdiff -u -r1.51 -r1.52 src/lib/libc/time/Makefile
cvs rdiff -u -r1.36 -r1.37 src/lib/libc/time/NEWS
cvs rdiff -u -r1.62 -r1.63 src/lib/libc/time/ctime.3
cvs rdiff -u -r1.59 -r1.60 src/lib/libc/time/private.h
cvs rdiff -u -r1.14 -r1.15 src/lib/libc/time/theory.html
cvs rdiff -u -r1.9 -r1.10 src/lib/libc/time/tz-art.html
cvs rdiff -u -r1.12 -r1.13 src/lib/libc/time/tz-link.html
cvs rdiff -u -r1.31 -r1.32 src/lib/libc/time/tzfile.5
cvs rdiff -u -r1.11 -r1.12 src/lib/libc/time/tzselect.8
cvs rdiff -u -r1.19 -r1.20 src/lib/libc/time/tzselect.ksh \
    src/lib/libc/time/version
cvs rdiff -u -r1.82 -r1.83 src/lib/libc/time/zic.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/time/Makefile
diff -u src/lib/libc/time/Makefile:1.51 src/lib/libc/time/Makefile:1.52
--- src/lib/libc/time/Makefile:1.51	Tue Aug 16 06:56:21 2022
+++ src/lib/libc/time/Makefile	Tue Aug 16 07:07:40 2022
@@ -298,8 +298,9 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fn
 # guess TM_GMTOFF from other macros; define NO_TM_GMTOFF to suppress this.
 # Similarly, if your system has a "zone abbreviation" field, define
 #	-DTM_ZONE=tm_zone
-# and define NO_TM_ZONE to suppress any guessing.  These two fields are not
-# required by POSIX, but are widely available on GNU/Linux and BSD systems.
+# and define NO_TM_ZONE to suppress any guessing.  Although these two fields
+# not required by POSIX, a future version of POSIX is planned to require them
+# and they are widely available on GNU/Linux and BSD systems.
 #
 # The next batch of options control support for external variables
 # exported by tzcode.  In practice these variables are less useful
@@ -538,7 +539,7 @@ DATA=		$(TDATA_TO_CHECK) backzone iso316
 			leapseconds $(ZONETABLES)
 AWK_SCRIPTS=	checklinks.awk checktab.awk leapseconds.awk \
 			ziguard.awk zishrink.awk
-MISC=		$(AWK_SCRIPTS) zoneinfo2tdf.pl
+MISC=		$(AWK_SCRIPTS)
 TZS_YEAR=	2050
 TZS_CUTOFF_FLAG=	-c $(TZS_YEAR)
 TZS=		to$(TZS_YEAR).tzs
@@ -567,7 +568,7 @@ VERSION_DEPS= \
 		tzfile.5 tzfile.h tzselect.8 tzselect.ksh \
 		workman.sh zdump.8 zdump.c zic.8 zic.c \
 		ziguard.awk zishrink.awk \
-		zone.tab zone1970.tab zoneinfo2tdf.pl
+		zone.tab zone1970.tab
 
 # And for the benefit of csh users on systems that assume the user
 # shell should be used to handle commands in Makefiles. . .

Index: src/lib/libc/time/NEWS
diff -u src/lib/libc/time/NEWS:1.36 src/lib/libc/time/NEWS:1.37
--- src/lib/libc/time/NEWS:1.36	Tue Aug 16 06:56:21 2022
+++ src/lib/libc/time/NEWS	Tue Aug 16 07:07:40 2022
@@ -1,5 +1,29 @@
 News for the tz database
 
+Release 2022c - 2022-08-15 17:47:18 -0700
+
+  Briefly:
+    Work around awk bug in FreeBSD, macOS, etc.
+    Improve tzselect on intercontinental Zones.
+
+  Changes to code
+
+    Work around a bug in onetrueawk that broke commands like
+    'make traditional_tarballs' on FreeBSD, macOS, etc.
+    (Problem reported by Deborah Goldsmith.)
+
+    Add code to tzselect that uses experimental structured comments in
+    zone1970.tab to clarify whether Zones like Africa/Abidjan and
+    Europe/Istanbul cross continent or ocean boundaries.
+    (Inspired by a problem reported by Peter Krefting.)
+
+    Fix bug with 'zic -d /a/b/c' when /a is unwritable but the
+    directory /a/b already exists.
+
+    Remove zoneinfo2tdf.pl, as it was unused and triggered false
+    malware alarms on some email servers.
+
+
 Release 2022b - 2022-08-10 15:38:32 -0700
 
   Briefly:
@@ -83,7 +107,7 @@ Release 2022b - 2022-08-10 15:38:32 -070
 
     zic no longer complains "can't determine time zone abbreviation to
     use just after until time" when a transition to a new standard
-    time occurs simultanously with the first DST fallback transition.
+    time occurs simultaneously with the first DST fallback transition.
 
   Changes to build procedure
 

Index: src/lib/libc/time/ctime.3
diff -u src/lib/libc/time/ctime.3:1.62 src/lib/libc/time/ctime.3:1.63
--- src/lib/libc/time/ctime.3:1.62	Tue Sep 28 02:45:08 2021
+++ src/lib/libc/time/ctime.3	Tue Aug 16 07:07:40 2022
@@ -1,8 +1,8 @@
-.\" $NetBSD: ctime.3,v 1.62 2021/09/28 06:45:08 kim Exp $
+.\" $NetBSD: ctime.3,v 1.63 2022/08/16 11:07:40 christos Exp $
 .\"
 .\" XXX: License missing?
 .\"
-.Dd September 2, 2019
+.Dd August 16, 2022
 .Dt CTIME 3
 .Os
 .Sh NAME
@@ -358,8 +358,9 @@ so were made when the library containing
 created.
 Similarly, the
 .Va tzname
-variable is optional.
-There is no guarantee that these fields and this variable will
+variable is optional; also, there is no guarantee that
+.Dv tzname
+will
 continue to exist in this form in future releases of this code.
 .Sh RETURN VALUES
 .Bl -bullet

Index: src/lib/libc/time/private.h
diff -u src/lib/libc/time/private.h:1.59 src/lib/libc/time/private.h:1.60
--- src/lib/libc/time/private.h:1.59	Tue Aug 16 06:56:21 2022
+++ src/lib/libc/time/private.h	Tue Aug 16 07:07:40 2022
@@ -1,6 +1,6 @@
 /* Private header for tzdb code.  */
 
-/*	$NetBSD: private.h,v 1.59 2022/08/16 10:56:21 christos Exp $	*/
+/*	$NetBSD: private.h,v 1.60 2022/08/16 11:07:40 christos Exp $	*/
 
 #ifndef PRIVATE_H
 #define PRIVATE_H
@@ -184,6 +184,9 @@
 # define EINVAL ERANGE
 #endif
 
+#ifndef ELOOP
+# define ELOOP EINVAL
+#endif
 #ifndef ENAMETOOLONG
 # define ENAMETOOLONG EINVAL
 #endif

Index: src/lib/libc/time/theory.html
diff -u src/lib/libc/time/theory.html:1.14 src/lib/libc/time/theory.html:1.15
--- src/lib/libc/time/theory.html:1.14	Tue Aug 16 06:56:21 2022
+++ src/lib/libc/time/theory.html	Tue Aug 16 07:07:40 2022
@@ -122,7 +122,7 @@ If geolocation information is available,
 locate the user on a timezone map or prioritize names that are
 geographically close. For an example selection interface, see the
 <code>tzselect</code> program in the <code><abbr>tz</abbr></code> code.
-The <a href="http://cldr.unicode.org";>Unicode Common Locale Data
+The <a href="https://cldr.unicode.org";>Unicode Common Locale Data
 Repository</a> contains data that may be useful for other selection
 interfaces; it maps timezone names like <code>Europe/Prague</code> to
 locale-dependent strings like "Prague", "Praha", "Прага", and "布拉格".
@@ -571,7 +571,7 @@ in decreasing order of importance:
     locations while uninhabited.
     The leading '<code>-</code>' is a flag that the <abbr>UT</abbr> offset is in
     some sense undefined; this notation is derived
-    from <a href="https://tools.ietf.org/html/rfc3339";>Internet
+    from <a href="https://datatracker.ietf.org/doc/html/rfc3339";>Internet
     <abbr title="Request For Comments">RFC</abbr> 3339</a>.
   </li>
 </ul>
@@ -624,7 +624,7 @@ Errors in the <code><abbr>tz</abbr></cod
     should be observed.
     In her 2015 book
     <cite><a
-    href="http://www.hup.harvard.edu/catalog.php?isbn=9780674286146";>The
+    href="https://www.hup.harvard.edu/catalog.php?isbn=9780674286146";>The
     Global Transformation of Time, 1870&ndash;1950</a></cite>,
     Vanessa Ogle writes
     "Outside of Europe and North America there was no system of time
@@ -810,7 +810,7 @@ href="https://www.dissentmagazine.org/bl
     See: Stephenson FR, Morrison LV, Hohenkerk CY.
     <a href="https://dx.doi.org/10.1098/rspa.2016.0404";>Measurement of
     the Earth's rotation: 720 BC to AD 2015</a>.
-    <cite>Proc Royal Soc A</cite>. 2016 Dec 7;472:20160404.
+    <cite>Proc Royal Soc A</cite>. 2016;472:20160404.
     Also see: Espenak F. <a
     href="https://eclipse.gsfc.nasa.gov/SEhelp/uncertainty2004.html";>Uncertainty
     in Delta T (ΔT)</a>.
@@ -1036,7 +1036,7 @@ an older <code>zic</code>.
     and numeric data as described <a href="#POSIX">above</a>.
     The file's format is <dfn><abbr>TZif</abbr></dfn>,
     a timezone information format that contains binary data; see
-    <a href="https://tools.ietf.org/html/8536";>Internet
+    <a href="https://datatracker.ietf.org/doc/html/8536";>Internet
     <abbr>RFC</abbr> 8536</a>.
     The daylight saving time rules to be used for a
     particular timezone are encoded in the
@@ -1064,11 +1064,12 @@ an older <code>zic</code>.
   </li>
   <li>
     The code supports platforms with a <abbr>UT</abbr> offset member
-    in <code>struct tm</code>, e.g., <code>tm_gmtoff</code>.
-  </li>
-  <li>
-    The code supports platforms with a time zone abbreviation member in
-    <code>struct tm</code>, e.g., <code>tm_zone</code>.
+    in <code>struct tm</code>, e.g., <code>tm_gmtoff</code>,
+    or with a time zone abbreviation member in
+    <code>struct tm</code>, e.g., <code>tm_zone</code>. As noted
+    in <a href="https://austingroupbugs.net/view.php?id=1533";>Austin
+    Group defect 1533</a>, a future version of POSIX is planned to
+    require <code>tm_gmtoff</code> and <code>tm_zone</code>.
   </li>
   <li>
     Functions <code>tzalloc</code>, <code>tzfree</code>,
@@ -1129,7 +1130,8 @@ The vestigial <abbr>API</abbr>s are:
     <abbr>API</abbr>s.
     Although it can still be used in arguments to
     <code>mktime</code> to disambiguate timestamps near
-    a <abbr>DST</abbr> transition when the clock jumps back, this
+    a <abbr>DST</abbr> transition when the clock jumps back on
+    platforms lacking <code>tm_gmtoff</code>, this
     disambiguation does not work when standard time itself jumps back,
     which can occur when a location changes to a time zone with a
     lesser <abbr>UT</abbr> offset.
@@ -1277,7 +1279,7 @@ the operating system kernel clock as des
 <a href="tz-link.html#precision">Precision timekeeping</a>,
 and this package by default installs a <samp>leapseconds</samp> file
 commonly used by
-<a href="http://www.ntp.org";><abbr title="Network Time Protocol">NTP</abbr></a>
+<a href="https://www.ntp.org";><abbr title="Network Time Protocol">NTP</abbr></a>
 software that adjusts the kernel clock.
 However, kernel-clock twiddling approximates UTC only roughly,
 and systems needing more-precise UTC can use this package's leap

Index: src/lib/libc/time/tz-art.html
diff -u src/lib/libc/time/tz-art.html:1.9 src/lib/libc/time/tz-art.html:1.10
--- src/lib/libc/time/tz-art.html:1.9	Fri Oct 22 10:26:04 2021
+++ src/lib/libc/time/tz-art.html	Tue Aug 16 07:07:40 2022
@@ -483,19 +483,19 @@ Supernaw.</td></tr>
 <ul>
 <li>
 The webcomic <em>xkcd</em> has the strip
-"<a href='https://xkcd.com/673/'>The Sun</a>" (2009-12-09) and the panels
-"<a href='https://xkcd.com/1017/'>Backward in Time</a>" (2012-02-14),
-"<a href='https://xkcd.com/1061/'>EST</a>" (2012-05-28),
-"<a href='https://xkcd.com/1179/'>ISO 8601</a>" (2013-02-27),
-"<a href='https://xkcd.com/1335/'>Now</a>" (2014-02-26),
-"<a href='https://xkcd.com/1655/'>Doomsday Clock</a>" (2016-03-14),
-"<a href='https://xkcd.com/1799/'>Bad Map Projection: Time Zones</a>"
+"<a href="https://xkcd.com/673/";>The Sun</a>" (2009-12-09) and the panels
+"<a href="https://xkcd.com/1017/";>Backward in Time</a>" (2012-02-14),
+"<a href="https://xkcd.com/1061/";>EST</a>" (2012-05-28),
+"<a href="https://xkcd.com/1179/";>ISO 8601</a>" (2013-02-27),
+"<a href="https://xkcd.com/1335/";>Now</a>" (2014-02-26),
+"<a href="https://xkcd.com/1655/";>Doomsday Clock</a>" (2016-03-14),
+"<a href="https://xkcd.com/1799/";>Bad Map Projection: Time Zones</a>"
 (2017-02-15),
-"<a href='https://xkcd.com/1883/'>Supervillain Plan</a>" (2017-08-30),
-"<a href='https://xkcd.com/2050/'>6/6 Time</a>" (2018-09-24),
-and "<a href='https://xkcd.com/2266/'>Leap Smearing</a>" (2020-02-10).
+"<a href="https://xkcd.com/1883/";>Supervillain Plan</a>" (2017-08-30),
+"<a href="https://xkcd.com/2050/";>6/6 Time</a>" (2018-09-24),
+and "<a href="https://xkcd.com/2266/";>Leap Smearing</a>" (2020-02-10).
 The related book <em>What If?</em> has an entry
-"<a href='https://what-if.xkcd.com/26/'>Leap Seconds</a>" (2012-12-31).
+"<a href="https://what-if.xkcd.com/26/";>Leap Seconds</a>" (2012-12-31).
 </li>
 <li>
 Pig kills time in <a
@@ -504,11 +504,11 @@ Before Swine</em> (2016-11-06)</a>.
 </li>
 <li>
 Stonehenge is abandoned in <a
-href='https://www.gocomics.com/nonsequitur/2017/03/12'><em>Non Sequitur</em>
+href="https://www.gocomics.com/nonsequitur/2017/03/12";><em>Non Sequitur</em>
 (2017-03-12)</a>.
 <li>
 The boss freaks out in <a
-href='https://dilbert.com/strip/1998-03-14'><em>Dilbert</em> (1998-03-14)</a>.
+href="https://dilbert.com/strip/1998-03-14";><em>Dilbert</em> (1998-03-14)</a>.
 </li>
 <li>
 Peppermint Patty: "What if the world comes to an end tonight, Marcie?"
@@ -516,7 +516,7 @@ Peppermint Patty: "What if the world com
 Marcie: "I promise there'll be a tomorrow, sir ... in fact,
 it's already tomorrow in Australia!"
 <br>
-(Charles M. Schulz, <a href='https://www.gocomics.com/peanuts/1980/06/13'><em>Peanuts</em>, 1980-06-13</a>)
+(Charles M. Schulz, <a href="https://www.gocomics.com/peanuts/1980/06/13";><em>Peanuts</em>, 1980-06-13</a>)
 </li>
 </ul>
 <h2>Jokes</h2>
@@ -621,7 +621,7 @@ but maybe in your time zone I haven't fi
 </ul>
 <h2>See also</h2>
 <ul>
-<li><a href="tz-link.html">Sources for Time Zone and Daylight Saving
+<li><a href="tz-link.html">Time Zone and Daylight Saving
 Time Data</a></li>
 </ul>
 <hr>

Index: src/lib/libc/time/tz-link.html
diff -u src/lib/libc/time/tz-link.html:1.12 src/lib/libc/time/tz-link.html:1.13
--- src/lib/libc/time/tz-link.html:1.12	Tue Aug 16 06:56:21 2022
+++ src/lib/libc/time/tz-link.html	Tue Aug 16 07:07:40 2022
@@ -1,14 +1,14 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-<title>Sources for time zone and daylight saving time data</title>
+<title>Time zone and daylight saving time data</title>
 <meta charset="UTF-8">
 <style>
 pre {margin-left: 2em; white-space: pre-wrap;}
 </style>
 </head>
 <body>
-<h1>Sources for time zone and daylight saving time data</h1>
+<h1>Time zone and daylight saving time data</h1>
 <p>
 <a href="https://en.wikipedia.org/wiki/Time_zone";>Time zone</a> and
 <a href="https://en.wikipedia.org/wiki/Daylight_saving_time";>daylight-saving</a>
@@ -52,9 +52,9 @@ area.
 	  <li><a href="#costs">Costs and benefits of time shifts</a></li>
 	  <li><a href="#precision">Precision timekeeping</a></li>
 	  <li><a href="#notation">Time notation</a></li>
-	  <li><a href="#see-also">See also</a></li>
 	</ul>
       </li>
+      <li><a href="#see-also">See also</a></li>
     </ul>
   </nav>
 
@@ -80,7 +80,7 @@ C Library</a> (used in
 title="Berkeley Software Distribution">BSD</abbr></a>,
 <a href="https://netbsd.org";>Net<abbr>BSD</abbr></a>,
 <a href="https://www.openbsd.org";>Open<abbr>BSD</abbr></a>,
-<a href="https://www.chromium.org/chromium-os";>Chromium OS</a>,
+<a href="https://www.chromium.org/chromium-os/";>Chromium OS</a>,
 <a href="https://cygwin.com";>Cygwin</a>,
 <a href="https://mariadb.org";>MariaDB</a>,
 <a href="https://en.wikipedia.org/wiki/MINIX";>MINIX</a>,
@@ -166,7 +166,7 @@ Since 1996, each version has been a four
 lower-case letter (<samp>a</samp> through <samp>z</samp>,
 then <samp>za</samp> through <samp>zz</samp>, then <samp>zza</samp>
 through <samp>zzz</samp>, and so on).
-Since version 1999g, each release has been distributed in
+Since version 2022a, each release has been distributed in
 <a href="https://pubs.opengroup.org/onlinepubs/9699919799/utilities/pax.html#tag_20_92_13_06";>POSIX
 ustar interchange format</a>, compressed as described above;
 older releases use a nearly-compatible format.
@@ -192,7 +192,7 @@ After obtaining the code and data files,
 The code lets you compile the <code><abbr>tz</abbr></code> source files into
 machine-readable binary files, one for each location. The binary files
 are in a special timezone information format (<dfn><abbr>TZif</abbr></dfn>)
-specified by <a href="https://tools.ietf.org/html/8536";>Internet
+specified by <a href="https://datatracker.ietf.org/doc/html/8536";>Internet
 <abbr>RFC</abbr> 8536</a>.
 The code also lets
 you read a <abbr>TZif</abbr> file and interpret timestamps for that
@@ -276,7 +276,7 @@ Studio Code</a>.
 </p>
 <p>
 For further information about updates, please see
-<a href="https://tools.ietf.org/html/rfc6557";>Procedures for
+<a href="https://datatracker.ietf.org/doc/html/rfc6557";>Procedures for
 Maintaining the Time Zone Database</a> (Internet <abbr
 title="Request For Comments">RFC</abbr> 6557). More detail can be
 found in <a href="theory.html">Theory and pragmatics of the
@@ -327,10 +327,8 @@ title="Structured Query Language">SQL</a
 href="https://twiki.org/cgi-bin/xtra/tzdatepick.html";>Date and Time Gateway</a>
 lets you see the <code><abbr>TZ</abbr></code> values directly.</li>
 <li><a
-href="http://www.convertit.com/Go/ConvertIt/World_Time/Current_Time.ASP";>Current
+href="https://www.convertit.com/Go/ConvertIt/World_Time/Current_Time.ASP";>Current
 Time in 1000 Places</a> uses descriptions of the values.</li>
-<li><a href="https://timezoneconverterapp.com/";>Time Zone Converter</a>
-uses a pulldown menu.</li>
 <li><a href="https://home.kpn.nl/vanadovv/time/TZworld.html";>Complete
 timezone information for all countries</a>
 displays tables of <abbr>DST</abbr> rules.
@@ -340,8 +338,8 @@ Worldwide</a> lets you sort zone names a
 time map and a time converter.</li>
 <li><a href="https://www.zeitverschiebung.net/en/";>Time Difference</a>
 calculates the current time difference between locations.</li>
-<li><a href="http://www.wx-now.com";>Weather Now</a> and
-<a href="http://www.thetimenow.com";>The Time Now</a> list the weather too.</li>
+<li><a href="https://www.wx-now.com";>Weather Now</a> and
+<a href="https://www.thetimenow.com";>The Time Now</a> list the weather too.</li>
 </ul>
 </section>
 
@@ -351,26 +349,26 @@ calculates the current time difference b
 <li>The <a href="https://www.ietf.org";>Internet Engineering Task Force</a>'s
 <a href="https://datatracker.ietf.org/wg/tzdist/charter/";>Time Zone Data
 Distribution Service (tzdist) working group</a> defined <a
-href="https://tools.ietf.org/html/rfc7808";>TZDIST</a>
+href="https://datatracker.ietf.org/doc/html/rfc7808";>TZDIST</a>
 (Internet <abbr>RFC</abbr> 7808), a time zone data distribution service,
-along with <a href="https://tools.ietf.org/html/rfc7809";>CalDAV</a>
+along with <a href="https://datatracker.ietf.org/doc/html/rfc7809";>CalDAV</a>
 (Internet <abbr>RFC</abbr> 7809), a calendar access protocol for
 transferring time zone data by reference.
 <a href="https://devguide.calconnect.org/Time-Zones/TZDS/";>TZDIST
 implementations</a> are available.
 The <a href="https://www.ietf.org/mailman/listinfo/tzdist-bis";>tzdist-bis
 mailing list</a> discusses possible extensions.</li>
-<li>The <a href="https://tools.ietf.org/html/rfc5545";>
+<li>The <a href="https://datatracker.ietf.org/doc/html/rfc5545";>
 Internet Calendaring and Scheduling Core Object Specification
 (iCalendar)</a> (Internet <abbr>RFC</abbr> 5445)
 covers time zone
 data; see its VTIMEZONE calendar component.
 The iCalendar format requires specialized parsers and generators; a
-variant <a href="https://tools.ietf.org/html/rfc6321";>xCal</a>
+variant <a href="https://datatracker.ietf.org/doc/html/rfc6321";>xCal</a>
 (Internet <abbr>RFC</abbr> 6321) uses
 <a href="https://www.w3.org/XML/";><abbr
 title="Extensible Markup Language">XML</abbr></a> format, and a variant
-<a href="https://tools.ietf.org/html/rfc7265";>jCal</a>
+<a href="https://datatracker.ietf.org/doc/html/rfc7265";>jCal</a>
 (Internet <abbr>RFC</abbr> 7265)
 uses <a href="https://www.json.org";><abbr
 title="JavaScript Object Notation">JSON</abbr></a> format.</li>
@@ -413,13 +411,13 @@ transition in the <code><abbr>tz</abbr><
 Database Parser</a> is a
 <a href="https://en.wikipedia.org/wiki/C%2B%2B";>C++</a> parser and
 runtime library with <a
-href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0355r7.html";>API</a>
+href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0355r7.html";>API</a>
 adopted by
 <a href="https://en.wikipedia.org/wiki/C++20";>C++20</a>,
 the current iteration of the C++ standard.
 It is freely available under the
 <abbr title="Massachusetts Institute of Technology">MIT</abbr> license.</li>
-<li><a id="ICU" href="http://site.icu-project.org";>International Components for
+<li><a id="ICU" href="https://icu.unicode.org";>International Components for
 Unicode (<abbr>ICU</abbr>)</a> contains C/C++ and <a
 href="https://en.wikipedia.org/wiki/Java_%28programming_language%29";>Java</a>
 libraries for internationalization that
@@ -549,7 +547,7 @@ Ruby Timezone Library</a>
 compiles <code><abbr>tz</abbr></code> source into
 <a href="https://www.ruby-lang.org/en/";>Ruby</a>.
 It is freely available under the <abbr>MIT</abbr> license.</li>
-<li>The <a href="http://www.squeaksource.com/Chronos/";>Chronos Date/Time
+<li>The <a href="https://www.squeaksource.com/Chronos/";>Chronos Date/Time
 Library</a> is
 a <a href="https://en.wikipedia.org/wiki/Smalltalk";>Smalltalk</a> class
 library that compiles <code><abbr>tz</abbr></code> source into a time
@@ -798,7 +796,7 @@ political subdivision data related to ti
 <li><a href="https://home.kpn.nl/vanadovv/time/Multizones.html";>Time
 zone boundaries for multizone countries</a> summarizes legal
 boundaries between time zones within countries.</li>
-<li><a href="http://manifold.net/info/freestuff.shtml";>Manifold Software
+<li><a href="https://manifold.net/info/freestuff.shtml";>Manifold Software
 &ndash; GIS and Database Tools</a> includes a Manifold-format map of
 world time zone boundaries distributed under the
 <abbr>GPL</abbr>.</li>
@@ -895,7 +893,7 @@ hreflang="he">announcements (in Hebrew)<
 <dt>Mexico</dt>
 <dd>The Investigation and Analysis Service of the Mexican Library of
 Congress has published a <a
-href="http://www.diputados.gob.mx/bibliot/publica/inveyana/polisoc/horver/index.htm";
+href="https://www.diputados.gob.mx/bibliot/publica/inveyana/polisoc/horver/index.htm";
 hreflang="es">history of Mexican local time (in Spanish)</a>.</dd>
 <dt>Netherlands</dt>
 <dd><a href="https://www.staff.science.uu.nl/~gent0113/wettijd/wettijd.htm";
@@ -926,7 +924,7 @@ Time Zone Proceedings</a> lists changes 
 <dt>Uruguay</dt>
 <dd>The Oceanography, Hydrography, and Meteorology Service of the Uruguayan
 Navy (SOHMA) publishes an annual <a
-href="http://sohma.armada.mil.uy/index.php/servicios/datos-astronomicos"; hreflang="es">almanac
+href="https://sohma.armada.mil.uy/index.php/servicios/datos-astronomicos"; hreflang="es">almanac
 (in Spanish)</a>.</dd>
 </dl>
 </section>
@@ -947,9 +945,9 @@ This reviews research literature and con
 neither supports nor refutes road safety benefits from
 shifts in time zones.</li>
 <li>Havranek T, Herman D, Irsova D.
-<a href="https://www.econstor.eu/handle/10419/174191";>Does daylight
-saving save electricity? A meta-analysis</a>. <em>Energy J.</em>
-2018;39(2).
+<a href="https://www.iaee.org/en/publications/ejarticle.aspx?id=3051";>Does
+daylight saving save electricity? A meta-analysis.</a>
+<em>Energy J.</em> 2018;39(2):35&ndash;61.
 doi:<a href="https://doi.org/10.5547/01956574.39.2.thav";>10.5547/01956574.39.2.thav</a>.
 This analyzes research literature and concludes, "Electricity savings
 are larger for countries farther away from the equator, while
@@ -961,16 +959,14 @@ an American Academy of Sleep Medicine po
 2020;<a href="https://doi.org/10.5664/jcsm.8780";>10.5664/jcsm.8780</a>.
 This argues for permanent standard time due to health risks of both
 <abbr>DST</abbr> transitions and permanent <abbr>DST</abbr>.</li>
-<li>Roenneberg T, Winnebeck EC, Klerman EB.
-<a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6692659/";>Daylight
-saving time and artificial time zones &ndash; a battle between
-biological and social times</a>. <em>Front Physiol.</em> 2019;10:944.
-doi:<a href="https://doi.org/10.3389/fphys.2019.00944";>10.3389/fphys.2019.00944</a>.
-This reviews evidence about the health effects of <abbr>DST</abbr>
-and concludes,
-"In summary, the scientific literature strongly argues against the
-switching between <abbr>DST</abbr> and Standard Time and even more so against
-adopting <abbr>DST</abbr> permanently."</li>
+<li>Roenneberg T, Wirz-Justice A, Skene DJ <em>et al</em>.
+<a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7205184/";>Why
+should we abolish Daylight Saving Time?</a>
+<em>J Biol Rhythms</em>. 2019;34(3):227&ndash;230.
+doi:<a href="https://doi.org/10.1177/0748730419854197";>10.1177/0748730419854197</a>.
+This position paper of the Society for Research on Biological Rhythms
+opposes DST changes and permanent DST, and advocates that governments adopt
+"permanent Standard Time for the health and safety of their citizens".</li>
 </ul>
 </section>
 
@@ -983,7 +979,7 @@ Science of Timekeeping</a> is a thorough
 to the theory and practice of precision timekeeping.</li>
 <li><a href="https://doi.org/10.1007/978-3-319-59909-0";>The Science of
 Time 2016</a> contains several freely-readable papers.</li>
-<li><a href="http://www.ntp.org";><abbr
+<li><a href="https://www.ntp.org";><abbr
 title="Network Time Protocol">NTP</abbr>: The Network
 Time Protocol</a> (Internet <abbr>RFC</abbr> 5905)
 discusses how to synchronize clocks of
@@ -998,7 +994,7 @@ title="Institute of Electrical and Elect
 can achieve submicrosecond clock accuracy on a local area network
 with special-purpose hardware.</li>
 <li><a
-href="https://tools.ietf.org/html/rfc4833";>Timezone
+href="https://datatracker.ietf.org/doc/html/rfc4833";>Timezone
 Options for <abbr title="Dynamic Host Configuration Protocol">DHCP</abbr></a>
 (Internet <abbr>RFC</abbr> 4833)
 specifies a <a
@@ -1012,14 +1008,15 @@ Scales</a> describes astronomical time s
 <abbr title="Barycentric Dynamic Time">TDB</abbr>.
 <li>The <a href="https://www.iau.org";><abbr
 title="International Astronomical Union">IAU</abbr></a>'s <a
-href="http://www.iausofa.org";><abbr
+href="https://www.iausofa.org";><abbr
 title="Standards Of Fundamental Astronomy">SOFA</abbr></a>
 collection contains C and <a
 href="https://en.wikipedia.org/wiki/Fortran";>Fortran</a>
 code for converting among time scales like
 <abbr title="International Atomic Time">TAI</abbr>,
 <abbr>TDB</abbr>, <abbr>TDT</abbr> and
-<abbr>UTC</abbr>.</li>
+<abbr>UTC</abbr>. It is freely available under the
+<a href="https://www.iausofa.org/tandc.html";>SOFA license</a>.</li>
 <li><a
 href="https://www.giss.nasa.gov/tools/mars24/help/notes.html";>Mars24 Sunclock
 &ndash; Time on Mars</a> describes Airy Mean Time (<abbr>AMT</abbr>) and the
@@ -1065,7 +1062,7 @@ the <abbr>NTP</abbr> reference implement
 href="https://github.com/google/unsmear";>supports</a> conversion between
 <abbr>UTC</abbr> and smeared <abbr>POSIX</abbr> timestamps, and is used by major
 cloud service providers. However, according to
-<a href="https://tools.ietf.org/html/rfc8633#section-3.7.1";>&sect;3.7.1 of
+<a href="https://datatracker.ietf.org/doc/html/rfc8633#section-3.7.1";>&sect;3.7.1 of
 Network Time Protocol Best Current Practices</a>
 (Internet <abbr>RFC</abbr> 8633), leap smearing is not suitable for
 applications requiring accurate <abbr>UTC</abbr> or civil time,
@@ -1089,7 +1086,7 @@ again.</li>
 <section>
 <h2 id="notation">Time notation</h2>
 <ul>
-<li>The <a id="CLDR" href="http://cldr.unicode.org";>Unicode Common Locale Data
+<li>The <a id="CLDR" href="https://cldr.unicode.org";>Unicode Common Locale Data
 Repository (<abbr>CLDR</abbr>) Project</a> has localizations for time
 zone names, abbreviations, identifiers, and formats. For example, it
 contains French translations for "Eastern European Summer Time",
@@ -1111,13 +1108,13 @@ interchange &ndash; Part 1: Basic rules<
 <a href="https://www.w3.org/TR/xmlschema/#dateTime";><abbr>XML</abbr>
 Schema: Datatypes &ndash; dateTime</a> specifies a format inspired by
 <abbr>ISO</abbr> 8601 that is in common use in <abbr>XML</abbr> data.</li>
-<li><a href="https://tools.ietf.org/html/rfc5322#section-3.3";>&sect;3.3 of
+<li><a href="https://datatracker.ietf.org/doc/html/rfc5322#section-3.3";>&sect;3.3 of
 Internet Message Format</a> (Internet <abbr>RFC</abbr> 5322)
 specifies the time notation used in email and <a
 href="https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol";><abbr>HTTP</abbr></a>
 headers.</li>
 <li>
-<a href="https://tools.ietf.org/html/rfc3339";>Date and Time
+<a href="https://datatracker.ietf.org/doc/html/rfc3339";>Date and Time
 on the Internet: Timestamps</a> (Internet <abbr>RFC</abbr> 3339)
 specifies an <abbr>ISO</abbr> 8601
 profile for use in new Internet

Index: src/lib/libc/time/tzfile.5
diff -u src/lib/libc/time/tzfile.5:1.31 src/lib/libc/time/tzfile.5:1.32
--- src/lib/libc/time/tzfile.5:1.31	Fri Oct 22 10:26:04 2021
+++ src/lib/libc/time/tzfile.5	Tue Aug 16 07:07:40 2022
@@ -1,8 +1,8 @@
-.\"	$NetBSD: tzfile.5,v 1.31 2021/10/22 14:26:04 christos Exp $
+.\"	$NetBSD: tzfile.5,v 1.32 2022/08/16 11:07:40 christos Exp $
 .\"
 .\" This file is in the public domain, so clarified as of
 .\" 1996-06-05 by Arthur David Olson (arthur_david_ol...@nih.gov).
-.Dd October 22, 2021
+.Dd August 16, 2022
 .Dt TZFILE 5
 .Os
 .Sh NAME
@@ -510,7 +510,7 @@ Future changes to the format may append 
 .%A Olson A, Eggert P, Murchison K.
 .%T The Time Zone Information Format (TZif).
 .%D Feb 2019.
-.%U https://www.rfc-editor.org/info/rfc8536
+.%U https://datatracker.ietf.org/doc/html/rfc8536
 .%U https://doi.org/10.17487/RFC8536
 .%R RFC 8536
 .Re

Index: src/lib/libc/time/tzselect.8
diff -u src/lib/libc/time/tzselect.8:1.11 src/lib/libc/time/tzselect.8:1.12
--- src/lib/libc/time/tzselect.8:1.11	Tue Aug 16 06:56:21 2022
+++ src/lib/libc/time/tzselect.8	Tue Aug 16 07:07:40 2022
@@ -1,4 +1,4 @@
-.\"	$NetBSD: tzselect.8,v 1.11 2022/08/16 10:56:21 christos Exp $
+.\"	$NetBSD: tzselect.8,v 1.12 2022/08/16 11:07:40 christos Exp $
 .\"
 .TH TZSELECT 8
 .SH NAME
@@ -9,12 +9,14 @@ tzselect \- select a timezone
 .ds d " degrees
 .ds m " minutes
 .ds s " seconds
-.ds _ " \"
-.if t .if \n(.g .if c \(de .if c \(fm .if c \(sd \{\
+.ds _ " \&
+.if t \{\
+. if \n(.g .if c \(de .if c \(fm .if c \(sd \{\
 .  ds d \(de
 .  ds m \(fm
 .  ds s \(sd
 .  ds _ \|
+. \}
 .\}
 .B tzselect
 [

Index: src/lib/libc/time/tzselect.ksh
diff -u src/lib/libc/time/tzselect.ksh:1.19 src/lib/libc/time/tzselect.ksh:1.20
--- src/lib/libc/time/tzselect.ksh:1.19	Tue Mar 22 13:48:39 2022
+++ src/lib/libc/time/tzselect.ksh	Tue Aug 16 07:07:40 2022
@@ -3,7 +3,7 @@
 # Ask the user about the time zone, and output the resulting TZ value to stdout.
 # Interact with the user via stderr and stdin.
 #
-#	$NetBSD: tzselect.ksh,v 1.19 2022/03/22 17:48:39 christos Exp $
+#	$NetBSD: tzselect.ksh,v 1.20 2022/08/16 11:07:40 christos Exp $
 #
 PKGVERSION='(tzcode) '
 TZVERSION=see_Makefile
@@ -306,15 +306,24 @@ while
 
         quoted_continents=`
 	  $AWK '
+	    function handle_entry(entry) {
+	      entry = substr(entry, 1, index(entry, "/") - 1)
+	      if (entry == "America")
+	       entry = entry "s"
+	      if (entry ~ /^(Arctic|Atlantic|Indian|Pacific)$/)
+	       entry = entry " Ocean"
+	      printf "'\''%s'\''\n", entry
+	    }
 	    BEGIN { FS = "\t" }
 	    /^[^#]/ {
-              entry = substr($3, 1, index($3, "/") - 1)
-              if (entry == "America")
-		entry = entry "s"
-              if (entry ~ /^(Arctic|Atlantic|Indian|Pacific)$/)
-		entry = entry " Ocean"
-              printf "'\''%s'\''\n", entry
+              handle_entry($3)
             }
+	    /^#@/ {
+	      ncont = split($2, cont, /,/)
+	      for (ci = 1; ci <= ncont; ci++) {
+	        handle_entry(cont[ci])
+	      }
+	    }
           ' <"$TZ_ZONE_TABLE" |
 	  sort -u |
 	  tr '\n' ' '
@@ -398,15 +407,37 @@ while
 		*)
 		# Get list of names of countries in the continent or ocean.
 		countries=`$AWK \
-			-v continent="$continent" \
+			-v continent_re="^$continent/" \
 			-v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \
 		'
 			BEGIN { FS = "\t" }
-			/^#/ { next }
-			$3 ~ ("^" continent "/") {
-			    ncc = split($1, cc, /,/)
-			    for (i = 1; i <= ncc; i++)
+			/^#$/ { next }
+			/^#[^@]/ { next }
+			{
+			  commentary = $0 ~ /^#@/
+			  if (commentary) {
+			    col1ccs = substr($1, 3)
+			    conts = $2
+			  } else {
+			    col1ccs = $1
+			    conts = $3
+			  }
+			  ncc = split(col1ccs, cc, /,/)
+			  ncont = split(conts, cont, /,/)
+			  for (i = 1; i <= ncc; i++) {
+			    elsewhere = commentary
+			    for (ci = 1; ci <= ncont; ci++) {
+			      if (cont[ci] ~ continent_re) {
 				if (!cc_seen[cc[i]]++) cc_list[++ccs] = cc[i]
+				elsewhere = 0
+			      }
+			    }
+			    if (elsewhere) {
+			      for (i = 1; i <= ncc; i++) {
+			        cc_elsewhere[cc[i]] = 1
+			      }
+			    }
+			  }
 			}
 			END {
 				while (getline <TZ_COUNTRY_TABLE) {
@@ -414,6 +445,7 @@ while
 				}
 				for (i = 1; i <= ccs; i++) {
 					country = cc_list[i]
+					if (cc_elsewhere[country]) continue
 					if (cc_name[country]) {
 					  country = cc_name[country]
 					}
Index: src/lib/libc/time/version
diff -u src/lib/libc/time/version:1.19 src/lib/libc/time/version:1.20
--- src/lib/libc/time/version:1.19	Tue Aug 16 06:56:21 2022
+++ src/lib/libc/time/version	Tue Aug 16 07:07:40 2022
@@ -1 +1 @@
-2022b
+2022c

Index: src/lib/libc/time/zic.c
diff -u src/lib/libc/time/zic.c:1.82 src/lib/libc/time/zic.c:1.83
--- src/lib/libc/time/zic.c:1.82	Tue Aug 16 06:56:21 2022
+++ src/lib/libc/time/zic.c	Tue Aug 16 07:07:40 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: zic.c,v 1.82 2022/08/16 10:56:21 christos Exp $	*/
+/*	$NetBSD: zic.c,v 1.83 2022/08/16 11:07:40 christos Exp $	*/
 /*
 ** This file is in the public domain, so clarified as of
 ** 2006-07-17 by Arthur David Olson.
@@ -11,7 +11,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: zic.c,v 1.82 2022/08/16 10:56:21 christos Exp $");
+__RCSID("$NetBSD: zic.c,v 1.83 2022/08/16 11:07:40 christos Exp $");
 #endif /* !defined lint */
 
 /* Use the system 'time' function, instead of any private replacement.
@@ -3692,9 +3692,14 @@ mkdirs(char const *argname, bool ancesto
 			   some other process might have made the directory
 			   in the meantime.  Likewise for ENOSYS, because
 			   Solaris 10 mkdir fails with ENOSYS if the
-			   directory is an automounted mount point.  */
+			   directory is an automounted mount point.
+			   Likewise for EACCES, since mkdir can fail
+			   with EACCES merely because the parent directory
+			   is unwritable.  Likewise for most other error
+			   numbers.  */
 			int err = errno;
-			if (err != EEXIST && err != ENOSYS) {
+			if (err == ELOOP || err == ENAMETOOLONG
+			    || err == ENOENT || err == ENOTDIR) {
 				error(_("%s: Can't create directory %s: %s"),
 				      progname, name, strerror(err));
 				exit(EXIT_FAILURE);

Reply via email to