Mercurial > hg > octave-lojdl > gnulib-hg
changeset 687:e46401d63db8
revert last change
author | Jim Meyering <jim@meyering.net> |
---|---|
date | Fri, 06 Sep 1996 03:18:46 +0000 |
parents | 8a8967d6be38 |
children | cc4dbb9f5f58 |
files | lib/strftime.c |
diffstat | 1 files changed, 15 insertions(+), 25 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/strftime.c +++ b/lib/strftime.c @@ -472,37 +472,27 @@ case 'z': { struct tm tml = *tp; + time_t t = mktime (&tml); struct tm tmg; - time_t t; - time_t offset = 0; int diff; - t = __mktime_internal (&tml, __localtime_r, &offset); + tml = *localtime (&t); /* Canonicalize the local time. */ + tmg = *gmtime (&t); - /* Canonicalize the local time. */ - if (t == (time_t) -1 || __localtime_r (&t, &tml) == NULL) - /* We didn't managed to get the local time. Assume it - GMT as a reasonable default value. */ - diff = 0; - else - { - __gmtime_r (&t, &tmg); + /* Compute the difference. */ + diff = tml.tm_min - tmg.tm_min; + diff += 60 * (tml.tm_hour - tmg.tm_hour); - /* Compute the difference. */ - diff = tml.tm_min - tmg.tm_min; - diff += 60 * (tml.tm_hour - tmg.tm_hour); - - if (tml.tm_mon != tmg.tm_mon) - { - /* We assume no timezone differs from UTC by more - than +- 23 hours. This should be safe. */ - if (tmg.tm_mday == 1) - tml.tm_mday = 0; - else /* tml.tm_mday == 1 */ - tmg.tm_mday = 0; - } - diff += 1440 * (tml.tm_mday - tmg.tm_mday); + if (tml.tm_mon != tmg.tm_mon) + { + /* We assume no timezone differs from UTC by more than + +- 23 hours. This should be safe. */ + if (tmg.tm_mday == 1) + tml.tm_mday = 0; + else /* tml.tm_mday == 1 */ + tmg.tm_mday = 0; } + diff += 1440 * (tml.tm_mday - tmg.tm_mday); if (diff < 0) {