diff options
author | Tom Lane | 2018-10-19 23:36:34 +0000 |
---|---|---|
committer | Tom Lane | 2018-10-19 23:36:34 +0000 |
commit | 12bfb778ce688fc662a6cb35f6298734fcf4856f (patch) | |
tree | 63cc6cc5290ec5f8a5435c721632304a90a29436 /src/timezone/strftime.c | |
parent | 13877d30f2ec93f6043937f76af207dcc614a4e7 (diff) |
Sync our copy of the timezone library with IANA release tzcode2018f.
About half of this is purely cosmetic changes to reduce the diff between
our code and theirs, like inserting "const" markers where they have them.
The other half is tracking actual code changes in zic.c and localtime.c.
I don't think any of these represent near-term compatibility hazards, but
it seems best to stay up to date.
I also fixed longstanding bugs in our code for producing the
known_abbrevs.txt list, which by chance hadn't been exposed before,
but which resulted in some garbage output after applying the upstream
changes in zic.c. Notably, because upstream removed their old phony
transitions at the Big Bang, it's now necessary to cope with TZif files
containing no DST transition times at all.
Diffstat (limited to 'src/timezone/strftime.c')
-rw-r--r-- | src/timezone/strftime.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/timezone/strftime.c b/src/timezone/strftime.c index 275b5f477c5..217dd375f36 100644 --- a/src/timezone/strftime.c +++ b/src/timezone/strftime.c @@ -1,4 +1,4 @@ -/* Convert a broken-down timestamp to a string. */ +/* Convert a broken-down timestamp to a string. */ /* * Copyright 1989 The Regents of the University of California. @@ -115,7 +115,7 @@ static char *_add(const char *, char *, const char *); static char *_conv(int, const char *, char *, const char *); static char *_fmt(const char *, const struct pg_tm *, char *, const char *, enum warn *); -static char *_yconv(int, int, bool, bool, char *, const char *); +static char *_yconv(int, int, bool, bool, char *, char const *); size_t @@ -441,7 +441,8 @@ _fmt(const char *format, const struct pg_tm *t, char *pt, /* * C99 and later say that %Z must be replaced by the empty - * string if the time zone is not determinable. + * string if the time zone abbreviation is not + * determinable. */ continue; case 'z': @@ -519,6 +520,7 @@ _add(const char *str, char *pt, const char *ptlim) * same output as %Y, and that %Y contains at least 4 bytes, * with more only if necessary. */ + static char * _yconv(int a, int b, bool convert_top, bool convert_yy, char *pt, const char *ptlim) @@ -526,7 +528,7 @@ _yconv(int a, int b, bool convert_top, bool convert_yy, int lead; int trail; -#define DIVISOR 100 +#define DIVISOR 100 trail = a % DIVISOR + b % DIVISOR; lead = a / DIVISOR + b / DIVISOR + trail / DIVISOR; trail %= DIVISOR; |