Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Thu, 7 Dec 2017 23:15:36 +0100
From: Natanael Copa <ncopa@...inelinux.org>
To: musl@...ts.openwall.com
Subject: Re: [PATCH] use UTC instead of GMT

Whoops, this was an unintentional re-send. I posted this previously.

Sorry.

I still think still it would be nice to get it applied as it fixes some
annoyances.

-nc

On Thu,  7 Dec 2017 17:54:07 +0100
Natanael Copa <ncopa@...inelinux.org> wrote:

> GMT is a timezone officially used by some countries in Europe and
> Africa. UTC is not a timezone, but a time standard. No country or
> territory officialy uses UTC as local time.
> 
> Also, POSIX mentions UTC a few places[1][2] but never GMT (except as an
> example[2] for a timezone)
> 
> So it makes more sense to use UTC instead of GMT and return UTC when no
> timezone is set in /etc/localtime or TZ is set to empty.
> 
> [1]: http://pubs.opengroup.org/onlinepubs/9699919799/functions/gmtime.html
> [2]: http://pubs.opengroup.org/onlinepubs/9699919799/functions/timezone.html
> ---
>  src/time/__tz.c     | 16 ++++++++--------
>  src/time/gmtime_r.c |  4 ++--
>  src/time/timegm.c   |  4 ++--
>  3 files changed, 12 insertions(+), 12 deletions(-)
> 
> diff --git a/src/time/__tz.c b/src/time/__tz.c
> index ffe8d402..8cc96032 100644
> --- a/src/time/__tz.c
> +++ b/src/time/__tz.c
> @@ -15,7 +15,7 @@ weak_alias(__tzname, tzname);
>  
>  static char std_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 r0[5], r1[5];
> @@ -126,7 +126,7 @@ static void do_tzset()
>  
>  	s = getenv("TZ");
>  	if (!s) s = "/etc/localtime";
> -	if (!*s) s = __gmt;
> +	if (!*s) s = __utc;
>  
>  	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
>  	 * strategy makes it so free would have minimal benefit anyway. */
>  	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) {
>  		old_tz_size *= 2;
>  		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))) {
>  		__munmap((void *)map, map_size);
>  		map = 0;
> -		s = __gmt;
> +		s = __utc;
>  	}
>  
>  	zi = map;
> @@ -207,7 +207,7 @@ static void do_tzset()
>  				}
>  			}
>  			if (!__tzname[0]) __tzname[0] = __tzname[1];
> -			if (!__tzname[0]) __tzname[0] = (char *)__gmt;
> +			if (!__tzname[0]) __tzname[0] = (char *)__utc;
>  			if (!__daylight) {
>  				__tzname[1] = __tzname[0];
>  				dst_off = __timezone;
> @@ -216,7 +216,7 @@ static void do_tzset()
>  		}
>  	}
>  
> -	if (!s) s = __gmt;
> +	if (!s) s = __utc;
>  	getname(std_name, &s);
>  	__tzname[0] = std_name;
>  	__timezone = getoff(&s);
> @@ -413,7 +413,7 @@ const char *__tm_to_tzname(const struct tm *tm)
>  	const void *p = tm->__tm_zone;
>  	LOCK(lock);
>  	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))
>  		p = "";
>  	UNLOCK(lock);
> diff --git a/src/time/gmtime_r.c b/src/time/gmtime_r.c
> index 8cbdadcb..cba72447 100644
> --- a/src/time/gmtime_r.c
> +++ b/src/time/gmtime_r.c
> @@ -2,7 +2,7 @@
>  #include <errno.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)
>  {
> @@ -12,7 +12,7 @@ struct tm *__gmtime_r(const time_t *restrict t, struct tm *restrict tm)
>  	}
>  	tm->tm_isdst = 0;
>  	tm->__tm_gmtoff = 0;
> -	tm->__tm_zone = __gmt;
> +	tm->__tm_zone = __utc;
>  	return tm;
>  }
>  
> diff --git a/src/time/timegm.c b/src/time/timegm.c
> index b5dae8b6..f444e76e 100644
> --- a/src/time/timegm.c
> +++ b/src/time/timegm.c
> @@ -2,7 +2,7 @@
>  #include "time_impl.h"
>  #include <errno.h>
>  
> -extern const char __gmt[];
> +extern const char __utc[];
>  
>  time_t timegm(struct tm *tm)
>  {
> @@ -15,6 +15,6 @@ time_t timegm(struct tm *tm)
>  	*tm = new;
>  	tm->tm_isdst = 0;
>  	tm->__tm_gmtoff = 0;
> -	tm->__tm_zone = __gmt;
> +	tm->__tm_zone = __utc;
>  	return t;
>  }

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.