summaryrefslogtreecommitdiff
path: root/libopie/pim/otimezone.cpp
Unidiff
Diffstat (limited to 'libopie/pim/otimezone.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/pim/otimezone.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/libopie/pim/otimezone.cpp b/libopie/pim/otimezone.cpp
index b2bd3aa..34659c3 100644
--- a/libopie/pim/otimezone.cpp
+++ b/libopie/pim/otimezone.cpp
@@ -7,55 +7,64 @@
7 7
8namespace { 8namespace {
9 9
10 QDateTime utcTime( time_t t) { 10 QDateTime utcTime( time_t t) {
11 tm* broken = ::gmtime( &t ); 11 tm* broken = ::gmtime( &t );
12 QDateTime ret; 12 QDateTime ret;
13 ret.setDate( QDate( broken->tm_year + 1900, broken->tm_mon +1, broken->tm_mday ) ); 13 ret.setDate( QDate( broken->tm_year + 1900, broken->tm_mon +1, broken->tm_mday ) );
14 ret.setTime( QTime( broken->tm_hour, broken->tm_min, broken->tm_sec ) ); 14 ret.setTime( QTime( broken->tm_hour, broken->tm_min, broken->tm_sec ) );
15 return ret; 15 return ret;
16 } 16 }
17 QDateTime utcTime( time_t t, const QString& zone) { 17 QDateTime utcTime( time_t t, const QString& zone) {
18 QCString org = ::getenv( "TZ" ); 18 QCString org = ::getenv( "TZ" );
19#ifndef Q_OS_MACX // Following line causes bus errors on Mac
19 ::setenv( "TZ", zone.latin1(), true ); 20 ::setenv( "TZ", zone.latin1(), true );
20 ::tzset(); 21 ::tzset();
21 22
22 tm* broken = ::localtime( &t ); 23 tm* broken = ::localtime( &t );
23 ::setenv( "TZ", org, true ); 24 ::setenv( "TZ", org, true );
25#else
26#warning "Need a replacement for MacOSX!!"
27 tm* broken = ::localtime( &t );
28#endif
24 29
25 QDateTime ret; 30 QDateTime ret;
26 ret.setDate( QDate( broken->tm_year + 1900, broken->tm_mon +1, broken->tm_mday ) ); 31 ret.setDate( QDate( broken->tm_year + 1900, broken->tm_mon +1, broken->tm_mday ) );
27 ret.setTime( QTime( broken->tm_hour, broken->tm_min, broken->tm_sec ) ); 32 ret.setTime( QTime( broken->tm_hour, broken->tm_min, broken->tm_sec ) );
28 33
29 return ret; 34 return ret;
30 } 35 }
31 time_t to_Time_t( const QDateTime& utc, const QString& str ) { 36 time_t to_Time_t( const QDateTime& utc, const QString& str ) {
32 QDate d = utc.date(); 37 QDate d = utc.date();
33 QTime t = utc.time(); 38 QTime t = utc.time();
34 39
35 tm broken; 40 tm broken;
36 broken.tm_year = d.year() - 1900; 41 broken.tm_year = d.year() - 1900;
37 broken.tm_mon = d.month() - 1; 42 broken.tm_mon = d.month() - 1;
38 broken.tm_mday = d.day(); 43 broken.tm_mday = d.day();
39 broken.tm_hour = t.hour(); 44 broken.tm_hour = t.hour();
40 broken.tm_min = t.minute(); 45 broken.tm_min = t.minute();
41 broken.tm_sec = t.second(); 46 broken.tm_sec = t.second();
42 47
43 QCString org = ::getenv( "TZ" ); 48 QCString org = ::getenv( "TZ" );
49#ifndef Q_OS_MACX // Following line causes bus errors on Mac
44 ::setenv( "TZ", str.latin1(), true ); 50 ::setenv( "TZ", str.latin1(), true );
45 ::tzset(); 51 ::tzset();
46 52
47 time_t ti = ::mktime( &broken ); 53 time_t ti = ::mktime( &broken );
48 ::setenv( "TZ", org, true ); 54 ::setenv( "TZ", org, true );
49 55#else
56#warning "Need a replacement for MacOSX!!"
57 time_t ti = ::mktime( &broken );
58#endif
50 return ti; 59 return ti;
51 } 60 }
52} 61}
53OTimeZone::OTimeZone( const ZoneName& zone ) 62OTimeZone::OTimeZone( const ZoneName& zone )
54 : m_name(zone) { 63 : m_name(zone) {
55} 64}
56OTimeZone::~OTimeZone() { 65OTimeZone::~OTimeZone() {
57} 66}
58 67
59bool OTimeZone::isValid()const { 68bool OTimeZone::isValid()const {
60 return !m_name.isEmpty(); 69 return !m_name.isEmpty();
61} 70}