<div dir="ltr"><div>Rolling leap seconds were meant to accommodate the New York Times Square ball drop; at least in some leap-second years, there'd be a "3...2...1...leap...Happy New Year" countdown, placing the leap second at midnight New York time rather than midnight London time.<br></div><div><br></div><div>    @dashdashado<br></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Sep 12, 2021 at 9:43 PM Paul Eggert via tz <<a href="mailto:tz@iana.org">tz@iana.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">* NEWS, zic.8: Mention this.<br>
* zic.c (leapadd): Report an error if the user tries it.<br>
---<br>
 NEWS  | 3 +++<br>
 zic.8 | 3 +++<br>
 zic.c | 4 ++++<br>
 3 files changed, 10 insertions(+)<br>
<br>
diff --git a/NEWS b/NEWS<br>
index 1b5535a..62a7ba2 100644<br>
--- a/NEWS<br>
+++ b/NEWS<br>
@@ -137,6 +137,9 @@ Unreleased, experimental changes<br>
     last time transition disagreed with the TZ string, contrary to<br>
     Internet RFC 8563 section 3.3.<br>
<br>
+    zic -r now reports an error if given rolling leap seconds, as this<br>
+    usage has never generally worked and is evidently unused.<br>
+<br>
     zic now generates a POSIX-conforming TZ string for TZif files<br>
     where all-year DST is predicted for the indefinite future.<br>
     For example, for all-year Eastern Daylight Time, zic now generates<br>
diff --git a/zic.8 b/zic.8<br>
index b77841b..3023ebe 100644<br>
--- a/zic.8<br>
+++ b/zic.8<br>
@@ -709,6 +709,9 @@ or<br>
 .q "Rolling"<br>
 if the leap second time given by the other fields should be interpreted as<br>
 local (wall clock) time.<br>
+(Rolling leap seconds are not supported if the<br>
+.B \*-r<br>
+option is used.)<br>
 .PP<br>
 The expiration line, if present, has the form:<br>
 .nf<br>
diff --git a/zic.c b/zic.c<br>
index e2a7e13..b06ef66 100644<br>
--- a/zic.c<br>
+++ b/zic.c<br>
@@ -3144,6 +3144,10 @@ leapadd(zic_t t, int correction, int rolling)<br>
                error(_("too many leap seconds"));<br>
                exit(EXIT_FAILURE);<br>
        }<br>
+       if (rolling && (lo_time != min_time || hi_time != max_time)) {<br>
+         error(_("Rolling leap seconds not supported with -r"));<br>
+         exit(EXIT_FAILURE);<br>
+       }<br>
        for (i = 0; i < leapcnt; ++i)<br>
                if (t <= trans[i])<br>
                        break;<br>
-- <br>
2.30.2<br>
<br>
</blockquote></div>