From 9195d5465ee135ac9451f836d1075bdcd7cac8c2 Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Tue, 12 Dec 2000 22:54:41 +0000 Subject: Add a check for "extern int timezone;" vs struct tm tm_gmtoff, stolen from * configure.in: Add a check for "extern int timezone;" vs struct tm tm_gmtoff, stolen from Evolution's configure.in. * src/libical/icaltime.c (icaltime_utc_offset, icaltime_local_utc_offset): Use HAVE_TIMEZONE, add tm_gmtoff support. * src/libical/icallexer.l: Remove ical_yy_scan_buffer, ..._string, and ..._bytes prototypes, since it compiles fine without them on Linux, and bombs out due to prototype mismatch on my NetBSD box. svn path=/trunk/; revision=6945 --- libical/ChangeLog | 13 +++++++++++++ libical/acconfig.h | 6 ++++++ libical/configure.in | 23 +++++++++++++++++++++++ libical/src/libical/icallexer.l | 8 +------- libical/src/libical/icaltime.c | 11 ++++++++++- 5 files changed, 53 insertions(+), 8 deletions(-) diff --git a/libical/ChangeLog b/libical/ChangeLog index 43b9547fc9..6f3a048ece 100644 --- a/libical/ChangeLog +++ b/libical/ChangeLog @@ -1,3 +1,16 @@ +2000-12-12 Dan Winship + + * configure.in: Add a check for "extern int timezone;" vs struct + tm tm_gmtoff, stolen from Evolution's configure.in. + + * src/libical/icaltime.c (icaltime_utc_offset, + icaltime_local_utc_offset): Use HAVE_TIMEZONE, add tm_gmtoff + support. + + * src/libical/icallexer.l: Remove ical_yy_scan_buffer, ..._string, + and ..._bytes prototypes, since it compiles fine without them on + Linux, and bombs out due to prototype mismatch on my NetBSD box. + 2000-12-11 Federico Mena Quintero * Makefile.am: diff --git a/libical/acconfig.h b/libical/acconfig.h index ede59fd497..96f0975b26 100644 --- a/libical/acconfig.h +++ b/libical/acconfig.h @@ -8,3 +8,9 @@ /* Define to terminate lines with "\n" instead of "\r\n" */ #undef ICAL_UNIX_NEWLINE + +/* Define if your libc defines a "timezone" variable +#undef HAVE_TIMEZONE + +/* Define if your libc defines a struct tm containing a "tm_gmtoff" member */ +#undef HAVE_TM_GMTOFF diff --git a/libical/configure.in b/libical/configure.in index 4413519481..3ce77c6ca5 100644 --- a/libical/configure.in +++ b/libical/configure.in @@ -36,6 +36,29 @@ AC_C_CONST AC_TYPE_SIZE_T AC_STRUCT_TM +AC_CACHE_CHECK(for timezone variable, ac_cv_var_timezone, + AC_TRY_COMPILE([ + #include + ], [ + timezone = 1; + ], ac_cv_var_timezone=yes, ac_cv_var_timezone=no)) +if test $ac_cv_var_timezone = yes; then + AC_DEFINE(HAVE_TIMEZONE) +else + AC_CACHE_CHECK(for tm_gmtoff in struct tm, ac_cv_struct_tm_gmtoff, + AC_TRY_COMPILE([ + #include + ], [ + struct tm tm; + tm.tm_gmtoff = 1; + ], ac_cv_struct_tm_gmtoff=yes, ac_cv_struct_tm_gmtoff=no)) + if test $ac_cv_struct_tm_gmtoff = yes; then + AC_DEFINE(HAVE_TM_GMTOFF) + else + AC_ERROR(unable to find a way to determine timezone) + fi +fi + dnl Checks for library functions. AC_CHECK_FUNCS(strdup) diff --git a/libical/src/libical/icallexer.l b/libical/src/libical/icallexer.l index 4ac847b064..5a3616b8da 100644 --- a/libical/src/libical/icallexer.l +++ b/libical/src/libical/icallexer.l @@ -6,7 +6,7 @@ DESCRIPTION: - $Id: icallexer.l,v 1.6 2000/12/12 00:27:39 federico Exp $ + $Id: icallexer.l,v 1.7 2000/12/12 22:54:40 danw Exp $ $Locker: $ (C) COPYRIGHT 1999 Eric Busboom @@ -63,12 +63,6 @@ char *str_buf; char *str_buf_p; size_t buf_sz; /* = ICAL_MAX_STR_CONST;*/ -/* Define routines that were not propertly defined because of the -renaming hack applied in icalyacc.y */ -YY_BUFFER_STATE ical_yy_scan_buffer ( char *base, yy_size_t size ); -YY_BUFFER_STATE ical_yy_scan_string ( yyconst char *yy_str ); -YY_BUFFER_STATE ical_yy_scan_bytes ( yyconst char *bytes, int len ); - %} crlf \x0D?\x0A diff --git a/libical/src/libical/icaltime.c b/libical/src/libical/icaltime.c index f43602a721..3a762a73f9 100644 --- a/libical/src/libical/icaltime.c +++ b/libical/src/libical/icaltime.c @@ -284,7 +284,9 @@ struct icaltimetype icaltime_as_zone(struct icaltimetype tt,const char* tzid) indicating the date for which you want the offset */ time_t icaltime_utc_offset(struct icaltimetype tt, const char* tzid) { +#ifdef HAVE_TIMEZONE extern long int timezone; +#endif time_t now; struct tm *stm; @@ -315,7 +317,11 @@ time_t icaltime_utc_offset(struct icaltimetype tt, const char* tzid) putenv("TZ"); /* Delete from environment */ } +#ifdef HAVE_TIMEZONE return timezone; +#else + return -stm->tm_gmtoff; +#endif } time_t icaltime_local_utc_offset() @@ -325,8 +331,11 @@ time_t icaltime_local_utc_offset() stm = localtime(&now); /* This sets 'timezone'*/ +#ifdef HAVE_TIMEZONE return timezone; - +#else + return -stm->tm_gmtoff; +#endif } -- cgit v1.2.3