Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Backports:SLE-15-SP6
cxxtools
0001-fix-reading-time-zones-on-32-bit-systems.p...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0001-fix-reading-time-zones-on-32-bit-systems.patch of Package cxxtools
From c7dd08ea25a5b54922c28f2665c8027d6f93e101 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tommi=20M=C3=A4kitalo?= <tommi@tntnet.org> Date: Tue, 2 Feb 2021 18:27:27 +0100 Subject: [PATCH] fix reading time zones on 32 bit systems time_t is 32 bit on 32 bit systems but we need 64 bit --- src/tz.cpp | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/tz.cpp b/src/tz.cpp index 599d8f5..66f243b 100644 --- a/src/tz.cpp +++ b/src/tz.cpp @@ -52,6 +52,8 @@ log_define("cxxtools.tz") namespace cxxtools { +typedef int64_t TimeValue; + class Tz::Impl : public RefCounted { friend class Tz; @@ -81,13 +83,13 @@ class Tz::Impl : public RefCounted struct LeapInfo { - time_t transitionTime; + TimeValue transitionTime; int32_t corrections; }; struct Transition { - time_t transitionTime; + TimeValue transitionTime; uint8_t ttIndex; }; @@ -337,7 +339,7 @@ const std::string& Tz::name() const TzDateTime Tz::toLocal(const UtcDateTime& dt) const { - time_t t = static_cast<time_t>(dt.msecsSinceEpoch().totalSeconds()); + TimeValue t = static_cast<TimeValue>(dt.msecsSinceEpoch().totalSeconds()); uint8_t ttIndex = 0; for (unsigned i = 0; i < _impl->transitions.size(); ++i) @@ -365,7 +367,7 @@ TzDateTime Tz::toLocal(const UtcDateTime& dt) const return TzDateTime(dt + gmtoff, tzName, gmtoff, isdst, leapSeconds); } -static std::string timeT2s(time_t t) +static std::string timeT2s(TimeValue t) { return cxxtools::DateTime::fromMSecsSinceEpoch(cxxtools::Seconds(t)).toString(); } @@ -377,7 +379,7 @@ UtcDateTime Tz::toUtc(const LocalDateTime& dt) const if (_impl->transitions.empty()) return UtcDateTime(dt); - time_t t = static_cast<time_t>(dt.msecsSinceEpoch().totalSeconds()); + TimeValue t = static_cast<TimeValue>(dt.msecsSinceEpoch().totalSeconds()); unsigned i; for (i = 0; i < _impl->transitions.size() - 1; ++i) { @@ -417,7 +419,7 @@ UtcDateTime Tz::toUtc(const LocalDateTime& dt, bool early) const if (_impl->transitions.empty()) return UtcDateTime(dt); - time_t t = static_cast<time_t>(dt.msecsSinceEpoch().totalSeconds()); + TimeValue t = static_cast<TimeValue>(dt.msecsSinceEpoch().totalSeconds()); unsigned i; for (i = 0; i < _impl->transitions.size() - 1; ++i) { @@ -464,7 +466,7 @@ UtcDateTime Tz::previousChange(const cxxtools::DateTime& dt, bool local) const if (!_impl->transitions.empty()) { - time_t t = static_cast<time_t>(dt.msecsSinceEpoch().totalSeconds()); + TimeValue t = static_cast<TimeValue>(dt.msecsSinceEpoch().totalSeconds()); for (unsigned i = 0; i < _impl->transitions.size() - 1; ++i) { if (_impl->transitions[i + 1].transitionTime > t) @@ -484,7 +486,7 @@ UtcDateTime Tz::nextChange(const cxxtools::DateTime& dt, bool local) const if (!_impl->transitions.empty()) { - time_t t = static_cast<time_t>(dt.msecsSinceEpoch().totalSeconds()); + TimeValue t = static_cast<TimeValue>(dt.msecsSinceEpoch().totalSeconds()); for (unsigned i = 0; i < _impl->transitions.size() - 1; ++i) { if (_impl->transitions[i + 1].transitionTime > t) @@ -500,7 +502,7 @@ UtcDateTime Tz::nextChange(const cxxtools::DateTime& dt, bool local) const cxxtools::Timespan Tz::offset(const UtcDateTime& gmtDt) const { - time_t t = static_cast<time_t>(gmtDt.msecsSinceEpoch().totalSeconds()); + TimeValue t = static_cast<TimeValue>(gmtDt.msecsSinceEpoch().totalSeconds()); uint8_t ttIndex = 0; for (unsigned i = 0; i < _impl->transitions.size(); ++i) -- 2.37.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor