diff options
author | shugo <shugo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-20 17:08:36 +0000 |
---|---|---|
committer | shugo <shugo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-20 17:08:36 +0000 |
commit | 65337c5b2d56c70440f1677f2b175270d77ea0d1 (patch) | |
tree | 233ff2b2b64203a75303c77abc4f44d88afefa36 | |
parent | 19569c8f2596f340b821f104588c59e00b08773d (diff) |
* configure.in: always check timezone().
* strftime.c (rb_strftime): prefer timezone/altzone rather than
gettimeofday(). The second argument to gettimeofday() is ignored
on Solaris.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18739 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | configure.in | 22 | ||||
-rw-r--r-- | strftime.c | 10 |
3 files changed, 23 insertions, 17 deletions
@@ -1,3 +1,11 @@ +Thu Aug 21 01:58:59 2008 Shugo Maeda <shugo@ruby-lang.org> + + * configure.in: always check timezone(). + + * strftime.c (rb_strftime): prefer timezone/altzone rather than + gettimeofday(). The second argument to gettimeofday() is ignored + on Solaris. + Thu Aug 21 02:03:08 2008 Tanaka Akira <akr@fsij.org> * io.c (open_key_args): simplified. diff --git a/configure.in b/configure.in index 0cdc09e214..c05289e140 100644 --- a/configure.in +++ b/configure.in @@ -886,18 +886,16 @@ if test "[$rb_cv_var_]$1" != no; then fi]) RUBY_CHECK_VARTYPE(timezone, [@%:@include <time.h>], [long int]) RUBY_CHECK_VARTYPE(altzone, [@%:@include <time.h>], [long int]) -if test "$rb_cv_var_timezone" = no; then - AC_CHECK_FUNCS(timezone) - if test "$ac_cv_func_timezone" = yes; then - AC_CACHE_CHECK([whether timezone requires zero arguments], rb_cv_func_timezone_void, - [AC_TRY_COMPILE([@%:@include <time.h>], - [(void)timezone(0, 0);], - [rb_cv_func_timezone_void=no], - [rb_cv_func_timezone_void=yes])] - ) - if test $rb_cv_func_timezone_void = yes; then - AC_DEFINE(TIMEZONE_VOID) - fi +AC_CHECK_FUNCS(timezone) +if test "$ac_cv_func_timezone" = yes; then + AC_CACHE_CHECK([whether timezone requires zero arguments], rb_cv_func_timezone_void, + [AC_TRY_COMPILE([@%:@include <time.h>], + [(void)timezone(0, 0);], + [rb_cv_func_timezone_void=no], + [rb_cv_func_timezone_void=yes])] + ) + if test $rb_cv_func_timezone_void = yes; then + AC_DEFINE(TIMEZONE_VOID) fi fi diff --git a/strftime.c b/strftime.c index f2cfea69e6..86284191c2 100644 --- a/strftime.c +++ b/strftime.c @@ -420,18 +420,18 @@ rb_strftime(char *s, size_t maxsize, const char *format, const struct tm *timept */ off = timeptr->tm_gmtoff / 60; #else /* !HAVE_TM_ZONE */ -#ifdef HAVE_GETTIMEOFDAY - gettimeofday(&tv, &zone); - off = -zone.tz_minuteswest; -#else #if HAVE_VAR_TIMEZONE #if HAVE_VAR_ALTZONE off = -(daylight ? timezone : altzone) / 60; #else off = -timezone / 60; #endif +#else /* !HAVE_TIMEZONE */ +#ifdef HAVE_GETTIMEOFDAY + gettimeofday(&tv, &zone); + off = -zone.tz_minuteswest; #endif -#endif +#endif /* !HAVE_TIMEZONE */ #endif /* !HAVE_TM_ZONE */ #endif /* !HAVE_TM_NAME */ if (off < 0) { |