12345678910111213141516171819202122232425262728 |
- --- a/src/time/__tz.c
- +++ b/src/time/__tz.c
- @@ -23,6 +23,9 @@ static int r0[5], r1[5];
- static const unsigned char *zi, *trans, *index, *types, *abbrevs, *abbrevs_end;
- static size_t map_size;
-
- +static const char *tzfile;
- +static size_t tzfile_size;
- +
- static char old_tz_buf[32];
- static char *old_tz = old_tz_buf;
- static size_t old_tz_size = sizeof old_tz_buf;
- @@ -125,6 +128,15 @@ static void do_tzset()
- "/usr/share/zoneinfo/\0/share/zoneinfo/\0/etc/zoneinfo/\0";
-
- s = getenv("TZ");
- +
- + /* if TZ is empty try to read it from /etc/TZ */
- + if (!s || !*s) {
- + if (tzfile)
- + __munmap((void*)tzfile, tzfile_size);
- +
- + s = tzfile = (void *)__map_file("/etc/TZ", &tzfile_size);
- + }
- +
- if (!s) s = "/etc/localtime";
- if (!*s) s = __gmt;
-
|