use the name UTC instead of GMT for UTC timezone

notes by maintainer:

both C and POSIX use the term UTC to specify related functionality,
despite POSIX defining it as something more like UT1 or historical
(pre-UTC) GMT without leap seconds. neither specifies the associated
string for %Z. old choice of "GMT" violated principle of least
surprise for users and some applications/tests. use "UTC" instead.
This commit is contained in:
Natanael Copa 2017-12-07 17:54:07 +01:00 committed by Rich Felker
parent 3ec82877e7
commit eb7f93c4f6
3 changed files with 12 additions and 12 deletions

View File

@ -15,7 +15,7 @@ weak_alias(__tzname, tzname);
static char std_name[TZNAME_MAX+1]; static char std_name[TZNAME_MAX+1];
static char dst_name[TZNAME_MAX+1]; static char dst_name[TZNAME_MAX+1];
const char __gmt[] = "GMT"; const char __utc[] = "UTC";
static int dst_off; static int dst_off;
static int r0[5], r1[5]; static int r0[5], r1[5];
@ -126,7 +126,7 @@ static void do_tzset()
s = getenv("TZ"); s = getenv("TZ");
if (!s) s = "/etc/localtime"; if (!s) s = "/etc/localtime";
if (!*s) s = __gmt; if (!*s) s = __utc;
if (old_tz && !strcmp(s, old_tz)) return; if (old_tz && !strcmp(s, old_tz)) return;
@ -136,7 +136,7 @@ static void do_tzset()
* free so as not to pull it into static programs. Growth * free so as not to pull it into static programs. Growth
* strategy makes it so free would have minimal benefit anyway. */ * strategy makes it so free would have minimal benefit anyway. */
i = strlen(s); i = strlen(s);
if (i > PATH_MAX+1) s = __gmt, i = 3; if (i > PATH_MAX+1) s = __utc, i = 3;
if (i >= old_tz_size) { if (i >= old_tz_size) {
old_tz_size *= 2; old_tz_size *= 2;
if (i >= old_tz_size) old_tz_size = i+1; if (i >= old_tz_size) old_tz_size = i+1;
@ -165,12 +165,12 @@ static void do_tzset()
} }
} }
} }
if (!map) s = __gmt; if (!map) s = __utc;
} }
if (map && (map_size < 44 || memcmp(map, "TZif", 4))) { if (map && (map_size < 44 || memcmp(map, "TZif", 4))) {
__munmap((void *)map, map_size); __munmap((void *)map, map_size);
map = 0; map = 0;
s = __gmt; s = __utc;
} }
zi = map; zi = map;
@ -207,7 +207,7 @@ static void do_tzset()
} }
} }
if (!__tzname[0]) __tzname[0] = __tzname[1]; if (!__tzname[0]) __tzname[0] = __tzname[1];
if (!__tzname[0]) __tzname[0] = (char *)__gmt; if (!__tzname[0]) __tzname[0] = (char *)__utc;
if (!__daylight) { if (!__daylight) {
__tzname[1] = __tzname[0]; __tzname[1] = __tzname[0];
dst_off = __timezone; dst_off = __timezone;
@ -216,7 +216,7 @@ static void do_tzset()
} }
} }
if (!s) s = __gmt; if (!s) s = __utc;
getname(std_name, &s); getname(std_name, &s);
__tzname[0] = std_name; __tzname[0] = std_name;
__timezone = getoff(&s); __timezone = getoff(&s);
@ -413,7 +413,7 @@ const char *__tm_to_tzname(const struct tm *tm)
const void *p = tm->__tm_zone; const void *p = tm->__tm_zone;
LOCK(lock); LOCK(lock);
do_tzset(); do_tzset();
if (p != __gmt && p != __tzname[0] && p != __tzname[1] && if (p != __utc && p != __tzname[0] && p != __tzname[1] &&
(!zi || (uintptr_t)p-(uintptr_t)abbrevs >= abbrevs_end - abbrevs)) (!zi || (uintptr_t)p-(uintptr_t)abbrevs >= abbrevs_end - abbrevs))
p = ""; p = "";
UNLOCK(lock); UNLOCK(lock);

View File

@ -2,7 +2,7 @@
#include <errno.h> #include <errno.h>
#include "libc.h" #include "libc.h"
extern const char __gmt[]; extern const char __utc[];
struct tm *__gmtime_r(const time_t *restrict t, struct tm *restrict tm) struct tm *__gmtime_r(const time_t *restrict t, struct tm *restrict tm)
{ {
@ -12,7 +12,7 @@ struct tm *__gmtime_r(const time_t *restrict t, struct tm *restrict tm)
} }
tm->tm_isdst = 0; tm->tm_isdst = 0;
tm->__tm_gmtoff = 0; tm->__tm_gmtoff = 0;
tm->__tm_zone = __gmt; tm->__tm_zone = __utc;
return tm; return tm;
} }

View File

@ -2,7 +2,7 @@
#include "time_impl.h" #include "time_impl.h"
#include <errno.h> #include <errno.h>
extern const char __gmt[]; extern const char __utc[];
time_t timegm(struct tm *tm) time_t timegm(struct tm *tm)
{ {
@ -15,6 +15,6 @@ time_t timegm(struct tm *tm)
*tm = new; *tm = new;
tm->tm_isdst = 0; tm->tm_isdst = 0;
tm->__tm_gmtoff = 0; tm->__tm_gmtoff = 0;
tm->__tm_zone = __gmt; tm->__tm_zone = __utc;
return t; return t;
} }