summaryrefslogtreecommitdiff
path: root/src/timezone/strftime.c
diff options
context:
space:
mode:
authorTom Lane2018-10-19 23:36:34 +0000
committerTom Lane2018-10-19 23:36:34 +0000
commit12bfb778ce688fc662a6cb35f6298734fcf4856f (patch)
tree63cc6cc5290ec5f8a5435c721632304a90a29436 /src/timezone/strftime.c
parent13877d30f2ec93f6043937f76af207dcc614a4e7 (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.c10
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;