Update timezone code from tzcode 2018i
Commit Message
This patch updates files coming from tzcode to the versions in tzcode
2018i. No changes elsewhere in glibc were needed.
Tested for x86_64.
2018-12-31 Joseph Myers <joseph@codesourcery.com>
* timezone/zdump.c: Update from tzcode 2018i.
* timezone/zic.c: Likewise.
Comments
Thanks, please install.
That patch fixes a zic bug where it generates an incorrect transition for
TZ='Africa/Casablanca' predicted for the year 2440, but I doubt whether this is
worth mentioning in NEWS as Morocco will surely change its DST rules sometime in
the next three centuries or so anyway.
@@ -807,8 +807,10 @@ my_snprintf(char *s, size_t size, char const *format, ...)
arglen = strlen(arg);
} else {
n = vsprintf(buf, format, args);
- if (n < 0)
+ if (n < 0) {
+ va_end(args);
return n;
+ }
arg = buf;
arglen = n;
}
@@ -2741,7 +2741,7 @@ error(_("can't determine time zone abbreviation to use just after until time"));
if (attypes[i].at > lastat->at)
lastat = &attypes[i];
if (lastat->at < rpytime(&xr, max_year - 1)) {
- addtt(rpytime(&xr, max_year + 1), typecnt-1);
+ addtt(rpytime(&xr, max_year + 1), lastat->type);
attypes[timecnt - 1].dontmerge = true;
}
}
@@ -2945,7 +2945,7 @@ lowerit(char a)
}
/* case-insensitive equality */
-static bool
+static ATTRIBUTE_PURE bool
ciequal(register const char *ap, register const char *bp)
{
while (lowerit(*ap) == lowerit(*bp++))
@@ -2954,7 +2954,7 @@ ciequal(register const char *ap, register const char *bp)
return false;
}
-static bool
+static ATTRIBUTE_PURE bool
itsabbr(register const char *abbr, register const char *word)
{
if (lowerit(*abbr) != lowerit(*word))
@@ -2970,7 +2970,7 @@ itsabbr(register const char *abbr, register const char *word)
/* Return true if ABBR is an initial prefix of WORD, ignoring ASCII case. */
-static bool
+static ATTRIBUTE_PURE bool
ciprefix(char const *abbr, char const *word)
{
do