Mercurial > hg > xemacs-beta
changeset 5813:36dddf9d90d1
Fix calculation of time zone string in Fencode_time.
author | Marcus Crestani <marcus@crestani.de> |
---|---|
date | Thu, 02 Oct 2014 10:19:00 +0200 |
parents | 7b42a97af782 |
children | a216b3c2b09e |
files | src/ChangeLog src/editfns.c |
diffstat | 2 files changed, 13 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Sat Sep 27 14:16:11 2014 +0200 +++ b/src/ChangeLog Thu Oct 02 10:19:00 2014 +0200 @@ -1,3 +1,9 @@ +2014-09-30 Marcus Crestani <crestani@informatik.uni-tuebingen.de> + + * editfns.c (Fencode_time): Switch signs when calculating the time + zone string. (The offset indicates the value one must add to the + local time to arrive at UTC.) + 2014-09-23 Jerry James <james@xemacs.org> * floatfns.c (round_two_bignum_1): Fix memory leak.
--- a/src/editfns.c Sat Sep 27 14:16:11 2014 +0200 +++ b/src/editfns.c Thu Oct 02 10:19:00 2014 +0200 @@ -1190,9 +1190,13 @@ else if (FIXNUMP (zone)) { int abszone = abs (XFIXNUM (zone)); - /* #### I have no idea what this conforms to, - but the compiler has stopped whining. */ - sprintf (tzbuf, "XXX%s%d:%02d:%02d", (XFIXNUM (zone) < 0) ? "-" : "+", + /* We specify the time zone in offset notation (see `man + tzset' for details). The offset indicates the value one + must add to local time to arrive at UTC. Thus, we sign + the offset with a `-' if the time zone is east of GMT; we + sign the offset with a `+' if the time zone is GMT (then + the offset is 0) or if the time zone is west of GMT. */ + sprintf (tzbuf, "XXX%s%d:%02d:%02d", (XFIXNUM (zone) < 0) ? "+" : "-", abszone / (60*60), (abszone/60) % 60, abszone % 60); tzstring = tzbuf; }