diff --git a/ChangeLog b/ChangeLog index 5f29a30114..9dc753d49f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2018-12-31 Joseph Myers + + * timezone/zdump.c: Update from tzcode 2018i. + * timezone/zic.c: Likewise. + 2018-12-31 Paul Eggert regex: improve Gnulib port to AIX diff --git a/timezone/zdump.c b/timezone/zdump.c index 608f288691..0fc8ced96a 100644 --- a/timezone/zdump.c +++ b/timezone/zdump.c @@ -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; } diff --git a/timezone/zic.c b/timezone/zic.c index cb1bf28bfb..2ebc66a9af 100644 --- a/timezone/zic.c +++ b/timezone/zic.c @@ -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