|
int | link (const char *target, const char *linkname) |
|
static void | memory_exhausted (const char *msg) pg_attribute_noreturn() |
|
static void | verror (const char *string, va_list args) pg_attribute_printf(1 |
|
static void static void | error (const char *string,...) pg_attribute_printf(1 |
|
static void static void static void | warning (const char *string,...) pg_attribute_printf(1 |
|
static void static void static void static void | usage (FILE *stream, int status) pg_attribute_noreturn() |
|
static void | addtt (zic_t starttime, int type) |
|
static int | addtype (zic_t utoff, char const *abbr, bool isdst, bool ttisstd, bool ttisut) |
|
static void | leapadd (zic_t t, int correction, int rolling) |
|
static void | adjleap (void) |
|
static void | associate (void) |
|
static void | dolink (char const *target, char const *linkname, bool staysymlink) |
|
static char ** | getfields (char *cp) |
|
static zic_t | gethms (const char *string, const char *errstring) |
|
static zic_t | getsave (char *field, bool *isdst) |
|
static void | inexpires (char **fields, int nfields) |
|
static void | infile (const char *name) |
|
static void | inleap (char **fields, int nfields) |
|
static void | inlink (char **fields, int nfields) |
|
static void | inrule (char **fields, int nfields) |
|
static bool | inzcont (char **fields, int nfields) |
|
static bool | inzone (char **fields, int nfields) |
|
static bool | inzsub (char **fields, int nfields, bool iscont) |
|
static bool | itsdir (char const *name) |
|
static bool | itssymlink (char const *name) |
|
static bool | is_alpha (char a) |
|
static char | lowerit (char a) |
|
static void | mkdirs (char const *argname, bool ancestors) |
|
static void | newabbr (const char *string) |
|
static zic_t | oadd (zic_t t1, zic_t t2) |
|
static void | outzone (const struct zone *zpfirst, ptrdiff_t zonecount) |
|
static zic_t | rpytime (const struct rule *rp, zic_t wantedy) |
|
static void | rulesub (struct rule *rp, const char *loyearp, const char *hiyearp, const char *typep, const char *monthp, const char *dayp, const char *timep) |
|
static zic_t | tadd (zic_t t1, zic_t t2) |
|
static struct lookup const * | byword (const char *word, const struct lookup *table) |
|
static size_t | size_product (size_t nitems, size_t itemsize) |
|
static void * | memcheck (void *ptr) |
|
static void * | emalloc (size_t size) |
|
static void * | erealloc (void *ptr, size_t size) |
|
static char * | ecpyalloc (char const *str) |
|
static void * | growalloc (void *ptr, size_t itemsize, ptrdiff_t nitems, ptrdiff_t *nitems_alloc) |
|
static void | eats (char const *name, lineno_t num, char const *rname, lineno_t rnum) |
|
static void | eat (char const *name, lineno_t num) |
|
static void | close_file (FILE *stream, char const *dir, char const *name) |
|
static void | change_directory (char const *dir) |
|
static bool | timerange_option (char *timerange) |
|
static bool | want_bloat (void) |
|
int | main (int argc, char **argv) |
|
static bool | componentcheck (char const *name, char const *component, char const *component_end) |
|
static bool | namecheck (const char *name) |
|
static char * | relname (char const *target, char const *linkname) |
|
static int | hardlinkerr (char const *target, char const *linkname) |
|
static int | rcomp (const void *cp1, const void *cp2) |
|
static zic_t | getleapdatetime (char **fields, int nfields, bool expire_line) |
|
static void | convert (const int32 val, char *const buf) |
|
static void | convert64 (const zic_t val, char *const buf) |
|
static void | puttzcode (const int32 val, FILE *const fp) |
|
static void | puttzcodepass (zic_t val, FILE *fp, int pass) |
|
static int | atcomp (const void *avp, const void *bvp) |
|
static struct timerange | limitrange (struct timerange r, zic_t lo, zic_t hi, zic_t const *ats, unsigned char const *types) |
|
static void | writezone (const char *const name, const char *const string, char version, int defaulttype) |
|
static char const * | abbroffset (char *buf, zic_t offset) |
|
static size_t | doabbr (char *abbr, struct zone const *zp, char const *letters, bool isdst, zic_t save, bool doquotes) |
|
static void | updateminmax (const zic_t x) |
|
static int | stringoffset (char *result, zic_t offset) |
|
static int | stringrule (char *result, struct rule *const rp, zic_t save, zic_t stdoff) |
|
static int | rule_cmp (struct rule const *a, struct rule const *b) |
|
static int | stringzone (char *result, struct zone const *zpfirst, ptrdiff_t zonecount) |
|
static bool | is_space (char a) |
|
static bool | ciequal (const char *ap, const char *bp) |
|
static bool | itsabbr (const char *abbr, const char *word) |
|
static bool | ciprefix (char const *abbr, char const *word) |
|
static void | time_overflow (void) |
|
static void infile |
( |
const char * |
name | ) |
|
|
static |
Definition at line 1243 of file zic.c.
1254 if (strcmp(
name,
"-") == 0)
1256 name =
_(
"standard input");
1259 else if ((fp = fopen(
name,
"r")) == NULL)
1263 fprintf(stderr,
_(
"%s: Cannot open %s: %s\n"),
1268 for (num = 1;; ++num)
1273 cp = strchr(
buf,
'\n');
1276 error(
_(
"line too long"));
1282 while (fields[nfields] != NULL)
1286 if (strcmp(fields[nfields],
"-") == 0)
1287 fields[nfields] = &nada;
1304 sscanf(
buf,
"#expires %ld", &cl_tmp);
1310 wantcont =
inzcont(fields, nfields);
1314 struct lookup const *line_codes
1317 lp =
byword(fields[0], line_codes);
1319 error(
_(
"input line of unknown type"));
1328 wantcont =
inzone(fields, nfields);
1344 _(
"%s: panic: Invalid l_value %d\n"),
1353 error(
_(
"expected continuation line not found"));
static const char * leapsec
static void inleap(char **fields, int nfields)
static bool inzone(char **fields, int nfields)
static bool inzcont(char **fields, int nfields)
static struct lookup const zi_line_codes[]
static void inexpires(char **fields, int nfields)
static void inrule(char **fields, int nfields)
static char ** getfields(char *cp)
static struct lookup const leap_line_codes[]
static void inlink(char **fields, int nfields)
References _, buf, byword(), close_file(), comment_leapexpires, eat(), error(), exit(), EXIT_FAILURE, filename, fprintf, free, getfields(), inexpires(), inleap(), inlink(), inrule(), inzcont(), inzone(), lookup::l_value, LC_EXPIRES, LC_LEAP, LC_LINK, LC_RULE, LC_ZONE, leap_line_codes, leapsec, name, progname, strerror, and zi_line_codes.
Referenced by AlterSystemSetConfigFile(), isolation_start_test(), main(), psql_start_test(), and readfile().
static bool inzsub |
( |
char ** |
fields, |
|
|
int |
nfields, |
|
|
bool |
iscont |
|
) |
| |
|
static |
Definition at line 1567 of file zic.c.
1571 static struct zone z;
1607 z.z_stdoff =
gethms(fields[i_stdoff],
_(
"invalid UT offset"));
1608 if ((cp = strchr(fields[i_format],
'%')) != NULL)
1610 if ((*++cp !=
's' && *cp !=
'z') || strchr(cp,
'%')
1611 || strchr(fields[i_format],
'/'))
1613 error(
_(
"invalid abbreviation format"));
1618 z.z_format = cp1 =
ecpyalloc(fields[i_format]);
1619 z.z_format_specifier = cp ? *cp :
'\0';
1620 if (z.z_format_specifier ==
'z')
1623 warning(
_(
"format '%s' not handled by pre-2015 versions of zic"),
1625 cp1[cp - fields[i_format]] =
's';
1629 hasuntil = nfields > i_untilyear;
1632 z.z_untilrule.r_filename =
filename;
1633 z.z_untilrule.r_linenum =
linenum;
1635 fields[i_untilyear],
1638 (nfields > i_untilmonth) ?
1639 fields[i_untilmonth] :
"Jan",
1640 (nfields > i_untilday) ? fields[i_untilday] :
"1",
1641 (nfields > i_untiltime) ? fields[i_untiltime] :
"0");
1642 z.z_untiltime =
rpytime(&z.z_untilrule,
1643 z.z_untilrule.r_loyear);
1644 if (iscont &&
nzones > 0 &&
1651 error(
_(
"Zone continuation line end time is not after end time of previous line"));
static int max_format_len
static ptrdiff_t nzones_alloc
static zic_t rpytime(const struct rule *rp, zic_t wantedy)
References _, ecpyalloc(), error(), filename, gethms(), growalloc(), linenum, max_format_len, max_time, min_time, namecheck(), noise, nzones, nzones_alloc, rule::r_filename, rule::r_linenum, rule::r_loyear, rpytime(), rulesub(), warning(), zone::z_filename, zone::z_format, zone::z_format_specifier, zone::z_linenum, zone::z_name, zone::z_rule, zone::z_stdoff, zone::z_untilrule, zone::z_untiltime, ZF_FORMAT, ZF_NAME, ZF_RULE, ZF_STDOFF, ZF_TILDAY, ZF_TILMONTH, ZF_TILTIME, ZF_TILYEAR, ZFC_FORMAT, ZFC_RULE, ZFC_STDOFF, ZFC_TILDAY, ZFC_TILMONTH, ZFC_TILTIME, ZFC_TILYEAR, and zones.
Referenced by inzcont(), and inzone().
int main |
( |
int |
argc, |
|
|
char ** |
argv |
|
) |
| |
Definition at line 654 of file zic.c.
660 bool timerange_given =
false;
669 _(
"wild compilation-time specification of zic_t"));
672 for (k = 1; k < argc; k++)
673 if (strcmp(argv[k],
"--version") == 0)
675 printf(
"zic %s\n", PG_VERSION);
679 else if (strcmp(argv[k],
"--help") == 0)
683 while ((
c =
getopt(argc, argv,
"b:d:l:L:p:Pr:st:vy:")) != EOF &&
c != -1)
689 if (strcmp(
optarg,
"slim") == 0)
692 error(
_(
"incompatible -b options"));
695 else if (strcmp(
optarg,
"fat") == 0)
698 error(
_(
"incompatible -b options"));
710 _(
"%s: More than one -d option specified\n"),
721 _(
"%s: More than one -l option specified\n"),
732 _(
"%s: More than one -p option specified\n"),
741 _(
"%s: More than one -t option"
757 _(
"%s: More than one -L option specified\n"),
773 _(
"%s: More than one -r option specified\n"),
780 _(
"%s: invalid time range: %s\n"),
784 timerange_given =
true;
790 if (
optind == argc - 1 && strcmp(argv[
optind],
"=") == 0)
796 if (strcmp(bloat_default,
"slim") == 0)
798 else if (strcmp(bloat_default,
"fat") == 0)
814 for (k =
optind; k < argc; k++)
839 if (strcmp(
links[
i].l_linkname,
845 eat(
_(
"command line"), 1);
850 eat(
_(
"command line"), 1);
853 if (
warnings && (ferror(stderr) || fclose(stderr) != 0))
int getopt(int nargc, char *const *nargv, const char *ostr)
PGDLLIMPORT char * optarg
#define ZIC_BLOAT_DEFAULT
static void change_directory(char const *dir)
static bool print_abbrevs
static zic_t print_cutoff
static void outzone(const struct zone *zpfirst, ptrdiff_t zonecount)
static bool timerange_option(char *timerange)
static void dolink(char const *target, char const *linkname, bool staysymlink)
static void infile(const char *name)
static void static void static void static void usage(FILE *stream, int status) pg_attribute_noreturn()
static void adjleap(void)
static void associate(void)
References _, adjleap(), associate(), bloat, change_directory(), close_file(), directory, dolink(), eat(), error(), errors, EXIT_FAILURE, EXIT_SUCCESS, fprintf, getopt(), i, infile(), j, lcltime, leapsec, links, nlinks, noise, nzones, optarg, optind, outzone(), print_abbrevs, print_cutoff, printf, progname, psxrules, S_IWGRP, S_IWOTH, generate_unaccent_rules::stdout, timerange_option(), TYPE_BIT, TZDEFAULT, tzdefault, TZDEFRULES, usage(), warning(), warnings, zone::z_name, ZIC_BLOAT_DEFAULT, and zones.
static void outzone |
( |
const struct zone * |
zpfirst, |
|
|
ptrdiff_t |
zonecount |
|
) |
| |
|
static |
Definition at line 2946 of file zic.c.
2948 const struct zone *zp;
2972 ptrdiff_t lastatmax = -1;
2974 zic_t y2038_boundary = one << 31;
2976 int defaulttype = -1;
2979 max_envvar_len = 2 * max_abbr_len + 5 * 9;
2980 startbuf =
emalloc(max_abbr_len + 1);
2981 ab =
emalloc(max_abbr_len + 1);
2982 envvar =
emalloc(max_envvar_len + 1);
2992 prodstic = zonecount == 1;
2998 startttisstd =
false;
2999 startttisut =
false;
3006 for (
i = 0;
i < zonecount; ++
i)
3009 if (
i < zonecount - 1)
3033 _(
"no POSIX environment variable for zone"),
3041 warning(
_(
"%s: pre-%d clients may mishandle"
3042 " distant timestamps"),
3097 for (
i = 0;
i < zonecount; ++
i)
3099 struct rule *prevrp = NULL;
3106 usestart =
i > 0 && (zp - 1)->z_untiltime >
min_time;
3107 useuntil =
i < (zonecount - 1);
3119 startbuf, zp->
z_isdst, startttisstd,
3151 = (rp->
r_temp < y2038_boundary
3152 || year <= max_year0);
3171 untiltime =
tadd(untiltime,
3174 untiltime =
tadd(untiltime,
3192 offset =
oadd(offset, save);
3197 jtime =
tadd(jtime, -offset);
3198 if (k < 0 || jtime < ktime)
3203 else if (jtime == ktime)
3205 char const *dup_rules_msg =
3206 _(
"two rules for same instant");
3214 error(
"%s", dup_rules_msg);
3221 if (useuntil && ktime >= untiltime)
3224 if (usestart && ktime == starttime)
3228 if (ktime < starttime)
3239 if (*startbuf ==
'\0'
3263 if (defaulttype < 0 && !rp->
r_isdst)
3275 if (*startbuf ==
'\0' &&
3277 strchr(zp->
z_format,
'%') == NULL &&
3281 if (*startbuf ==
'\0')
3282 error(
_(
"cannot determine time zone abbreviation to use just after until time"));
3285 bool isdst = startoff != zp->
z_stdoff;
3288 startttisstd, startttisut);
3289 if (defaulttype < 0 && !isdst)
3304 starttime =
tadd(starttime, -save);
3306 starttime =
tadd(starttime, -stdoff);
3309 if (defaulttype < 0)
3329 xr.r_dayofmonth = 1;
3337 lastat ? lastat->
type : defaulttype);
#define ZIC_VERSION_PRE_2013
static int addtype(zic_t utoff, char const *abbr, bool isdst, bool ttisstd, bool ttisut)
static int stringzone(char *result, struct zone const *zpfirst, ptrdiff_t zonecount)
static void writezone(const char *const name, const char *const string, char version, int defaulttype)
static void addtt(zic_t starttime, int type)
static void updateminmax(const zic_t x)
static size_t doabbr(char *abbr, struct zone const *zp, char const *letters, bool isdst, zic_t save, bool doquotes)
References _, addtt(), addtype(), attype::at, attypes, charcnt, compat, DC_DOM, doabbr(), attype::dontmerge, eat(), eats(), emalloc(), EPOCH_YEAR, error(), free, i, INITIALIZE, j, leapmaxyear, leapminyear, leapseen, max_abbrvar_len, max_format_len, max_time, max_year, min_time, min_year, noise, oadd(), rule::r_abbrvar, rule::r_dayofmonth, rule::r_dycode, rule::r_filename, rule::r_hiwasnum, rule::r_hiyear, rule::r_isdst, rule::r_linenum, rule::r_lowasnum, rule::r_loyear, rule::r_month, rule::r_save, rule::r_temp, rule::r_tod, rule::r_todisstd, rule::r_todisut, rule::r_todo, rpytime(), stringzone(), tadd(), timecnt, TM_JANUARY, type, attype::type, typecnt, updateminmax(), want_bloat(), warning(), writezone(), YEARSPERREPEAT, zone::z_filename, zone::z_format, zone::z_isdst, zone::z_linenum, zone::z_name, zone::z_nrules, zone::z_rules, zone::z_save, zone::z_stdoff, zone::z_untilrule, zone::z_untiltime, ZIC_MAX, ZIC_MIN, ZIC_VERSION, and ZIC_VERSION_PRE_2013.
Referenced by main().
static void rulesub |
( |
struct rule * |
rp, |
|
|
const char * |
loyearp, |
|
|
const char * |
hiyearp, |
|
|
const char * |
typep, |
|
|
const char * |
monthp, |
|
|
const char * |
dayp, |
|
|
const char * |
timep |
|
) |
| |
|
static |
Definition at line 1823 of file zic.c.
1838 error(
_(
"invalid month name"));
1847 ep = dp + strlen(dp) - 1;
1889 _(
"%s: panic: Invalid l_value %d\n"),
1893 else if (sscanf(cp,
"%d%c", &year_tmp, &xs) == 1)
1897 error(
_(
"invalid starting year"));
1917 _(
"%s: panic: Invalid l_value %d\n"),
1921 else if (sscanf(cp,
"%d%c", &year_tmp, &xs) == 1)
1925 error(
_(
"invalid ending year"));
1930 error(
_(
"starting year greater than ending year"));
1935 error(
_(
"year type \"%s\" is unsupported; use \"-\" instead"),
1953 if ((ep = strchr(dp,
'<')) != NULL)
1955 else if ((ep = strchr(dp,
'>')) != NULL)
1967 error(
_(
"invalid day of month"));
1973 error(
_(
"invalid weekday name"));
1983 error(
_(
"invalid day of month"));
static struct lookup const begin_years[]
static struct lookup const end_years[]
References _, begin_years, byword(), DC_DOM, DC_DOWGEQ, DC_DOWLEQ, ecpyalloc(), end_years, error(), exit(), EXIT_FAILURE, fprintf, free, gethms(), lookup::l_value, lasts, len_months, lowerit(), mon_names, progname, rule::r_dayofmonth, rule::r_dycode, rule::r_hiwasnum, rule::r_hiyear, rule::r_lowasnum, rule::r_loyear, rule::r_month, rule::r_tod, rule::r_todisstd, rule::r_todisut, rule::r_wday, wday_names, YR_MAXIMUM, YR_MINIMUM, YR_ONLY, ZIC_MAX, and ZIC_MIN.
Referenced by inrule(), and inzsub().
static void writezone |
( |
const char *const |
name, |
|
|
const char *const |
string, |
|
|
char |
version, |
|
|
int |
defaulttype |
|
) |
| |
|
static |
Definition at line 2082 of file zic.c.
2089 static const struct tzhead tzh0;
2090 static struct tzhead tzh;
2091 bool dir_checked =
false;
2093 zic_t y2038_boundary = one << 31;
2101 void *typesptr = ats + nats;
2102 unsigned char *
types = typesptr;
2122 for (; fromi <
timecnt; ++fromi)
2151 warning(
_(
"reference clients mishandle"
2152 " more than %d transition times"),
2155 warning(
_(
"pre-2014 clients may mishandle"
2156 " more than 1200 transition times"));
2192 && ats[
timecnt - 1] < y2038_boundary - 1 && strchr(
string,
'<'))
2194 ats[
timecnt] = y2038_boundary - 1;
2200 rangeall.base = rangeall.leapbase = 0;
2209 if (remove(
name) == 0)
2211 else if (errno != ENOENT)
2215 fprintf(stderr,
_(
"%s: Cannot remove %s/%s: %s\n"),
2219 fp = fopen(
name,
"wb");
2222 int fopen_errno = errno;
2224 if (fopen_errno == ENOENT && !dir_checked)
2227 fp = fopen(
name,
"wb");
2228 fopen_errno = errno;
2232 fprintf(stderr,
_(
"%s: Cannot create %s/%s: %s\n"),
2237 for (pass = 1; pass <= 2; ++pass)
2239 ptrdiff_t thistimei,
2275 ? range64.defaulttype
2276 : range32.defaulttype);
2278 thistimei = range32.base;
2279 thistimecnt = range32.count;
2280 toomanytimes = thistimecnt >> 31 >> 1 != 0;
2281 thisleapi = range32.leapbase;
2282 thisleapcnt = range32.leapcount;
2288 thisdefaulttype = range64.defaulttype;
2289 thistimei = range64.base;
2290 thistimecnt = range64.count;
2291 toomanytimes = thistimecnt >> 31 >> 31 >> 2 != 0;
2292 thisleapi = range64.leapbase;
2293 thisleapcnt = range64.leapcount;
2298 error(
_(
"too many transition times"));
2308 if (0 < thistimei && ats[thistimei] !=
lo_time)
2315 thistimelim = thistimei + thistimecnt;
2316 thisleaplim = thisleapi + thisleapcnt;
2317 if (thistimecnt != 0)
2319 if (ats[thistimei] ==
lo_time)
2324 memset(omittype,
true,
typecnt);
2325 omittype[thisdefaulttype] =
false;
2326 for (
i = thistimei;
i < thistimelim;
i++)
2327 omittype[
types[
i]] =
false;
2334 old0 = strlen(omittype);
2336 #ifndef LEAVE_SOME_PRE_2011_SYSTEMS_IN_THE_LURCH
2352 hidst = histd = mrudst = mrustd = -1;
2353 for (
i = thistimei;
i < thistimelim; ++
i)
2360 int h = (
i == old0 ? thisdefaulttype
2361 :
i == thisdefaulttype ? old0 :
i);
2371 if (hidst >= 0 && mrudst >= 0 && hidst != mrudst &&
2381 omittype[
type] =
false;
2383 if (histd >= 0 && mrustd >= 0 && histd != mrustd &&
2393 omittype[
type] =
false;
2401 typemap[
i == old0 ? thisdefaulttype
2402 :
i == thisdefaulttype ? old0 :
i]
2405 for (
i = 0;
i <
sizeof indmap /
sizeof indmap[0]; ++
i)
2407 thischarcnt = stdcnt = utcnt = 0;
2415 stdcnt = thistypecnt;
2417 utcnt = thistypecnt;
2421 for (
j = 0;
j < thischarcnt; ++
j)
2422 if (strcmp(&thischars[
j], thisabbr) == 0)
2424 if (
j == thischarcnt)
2426 strcpy(&thischars[thischarcnt], thisabbr);
2427 thischarcnt += strlen(thisabbr) + 1;
2433 utcnt = stdcnt = thisleapcnt = 0;
2434 thistimecnt = -(locut + hicut);
2435 thistypecnt = thischarcnt = 1;
2436 thistimelim = thistimei;
2438 #define DO(field) fwrite(tzh.field, sizeof tzh.field, 1, fp)
2440 memcpy(tzh.tzh_magic,
TZ_MAGIC,
sizeof tzh.tzh_magic);
2441 tzh.tzh_version[0] = version;
2442 convert(utcnt, tzh.tzh_ttisutcnt);
2443 convert(stdcnt, tzh.tzh_ttisstdcnt);
2444 convert(thisleapcnt, tzh.tzh_leapcnt);
2445 convert(locut + thistimecnt + hicut, tzh.tzh_timecnt);
2446 convert(thistypecnt, tzh.tzh_typecnt);
2447 convert(thischarcnt, tzh.tzh_charcnt);
2472 for (
i = thistimei;
i < thistimelim; ++
i)
2477 char *thisabbrev = &thischars[indmap[
desigidx[
tm]]];
2486 if (thistimei >= thistimelim)
2489 char *thisabbrev = &thischars[indmap[
desigidx[
tm]]];
2506 for (
i = thistimei;
i < thistimelim; ++
i)
2508 zic_t at = ats[
i] < lo ? lo : ats[
i];
2516 putc(currenttype, fp);
2517 for (
i = thistimei;
i < thistimelim; ++
i)
2519 currenttype = typemap[
types[
i]];
2520 putc(currenttype, fp);
2523 putc(currenttype, fp);
2527 int h = (
i == old0 ? thisdefaulttype
2528 :
i == thisdefaulttype ? old0 :
i);
2537 if (thischarcnt != 0)
2538 fwrite(thischars,
sizeof thischars[0],
2540 for (
i = thisleapi;
i < thisleaplim; ++
i)
2580 fprintf(fp,
"\n%s\n",
string);
static int atcomp(const void *avp, const void *bvp)
static void puttzcodepass(zic_t val, FILE *fp, int pass)
static struct timerange limitrange(struct timerange r, zic_t lo, zic_t hi, zic_t const *ats, unsigned char const *types)
References _, addtype(), attype::at, atcomp(), attypes, timerange::base, chars, close_file(), convert(), corr, timerange::count, timerange::defaulttype, desigidx, directory, DO, emalloc(), error(), exit(), EXIT_FAILURE, fprintf, free, hi_time, i, INT64_FORMAT, isdsts, j, timerange::leapbase, leapcnt, timerange::leapcount, limitrange(), lo_time, max_time, MAXALIGN, min_time, mkdirs(), name, noise, PG_INT32_MAX, PG_INT32_MIN, print_abbrevs, print_cutoff, progname, puttzcode(), puttzcodepass(), qsort, roll, size_product(), generate_unaccent_rules::stdout, strerror, tadd(), timecnt, tm, trans, ttisstds, ttisuts, type, attype::type, typecnt, types, TZ_MAGIC, TZ_MAX_CHARS, TZ_MAX_TIMES, TZ_MAX_TYPES, tzhead::tzh_charcnt, tzhead::tzh_leapcnt, tzhead::tzh_magic, tzhead::tzh_timecnt, tzhead::tzh_ttisstdcnt, tzhead::tzh_ttisutcnt, tzhead::tzh_typecnt, tzhead::tzh_version, utoffs, want_bloat(), warning(), WORK_AROUND_QTBUG_53071, and ZIC_MAX.
Referenced by outzone().