mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-06-26 10:54:26 +02:00
Bug #1030
- Added portable implementation of timegm for non GNU/BSD platforms that don't have their own implementation - Removed the use of tm_gmtoff on non GNU/BSD platforms that don't have it as part of the tm struct in time.h - Added CMake tests HAVE_TIMEGM and HAVE_TM_GMTOFF
This commit is contained in:
parent
7e48eb9ec2
commit
a655be823b
6 changed files with 39 additions and 0 deletions
|
@ -2,6 +2,7 @@ cmake_minimum_required (VERSION 2.8)
|
|||
set(CMAKE_LEGACY_CYGWIN_WIN32 0) # Remove when CMake >= 2.8.4 is required
|
||||
|
||||
include (CheckFunctionExists)
|
||||
include (CheckStructHasMember)
|
||||
|
||||
set (HAVE_CMAKE true)
|
||||
|
||||
|
@ -65,6 +66,9 @@ endif (LUA51_FOUND)
|
|||
|
||||
check_function_exists (random HAVE_RANDOM)
|
||||
check_function_exists (srandom HAVE_SRANDOM)
|
||||
check_function_exists (timegm HAVE_TIMEGM)
|
||||
|
||||
check_struct_has_member ("struct tm" tm_gmtoff time.h HAVE_TM_GMTOFF)
|
||||
|
||||
message ("-- Looking for libuuid")
|
||||
if (DARWIN)
|
||||
|
|
|
@ -110,6 +110,8 @@ Bugs
|
|||
modification (thanks to Christoph Lange).
|
||||
+ Fixed bug #1028, so that UDA durations are stored in seconds, not in raw form
|
||||
(thank to Uli Martens).
|
||||
+ Fixed bug #1030, which defines a portable implementation of timegm and removes
|
||||
the use of tm_gmtoff for non GNU/BSD platforms.
|
||||
|
||||
------ old releases ------------------------------
|
||||
|
||||
|
|
|
@ -57,6 +57,12 @@ Override PACKAGE_LANGUAGE, then
|
|||
/* Found srandom */
|
||||
#cmakedefine HAVE_SRANDOM
|
||||
|
||||
/* Found tm_gmtoff */
|
||||
#cmakedefine HAVE_TM_GMTOFF
|
||||
|
||||
/* Found timegm */
|
||||
#cmakedefine HAVE_TIMEGM
|
||||
|
||||
/* Found the uuid library */
|
||||
#cmakedefine HAVE_UUID
|
||||
#cmakedefine HAVE_UUID_UNPARSE_LOWER
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
#ifdef NIBBLER_FEATURE_REGEX
|
||||
#include <RX.h>
|
||||
#endif
|
||||
#include <cmake.h>
|
||||
|
||||
static const char* _uuid_pattern = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
|
||||
static const unsigned int _uuid_min_length = 9;
|
||||
|
@ -701,7 +702,9 @@ bool Nibbler::getDateISO (time_t& t)
|
|||
tms.tm_hour = hour;
|
||||
tms.tm_min = minute;
|
||||
tms.tm_sec = second;
|
||||
#ifdef HAVE_TM_GMTOFF
|
||||
tms.tm_gmtoff = 0;
|
||||
#endif
|
||||
|
||||
t = timegm (&tms);
|
||||
return true;
|
||||
|
|
20
src/util.cpp
20
src/util.cpp
|
@ -610,3 +610,23 @@ const std::string indentProject (
|
|||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
#ifndef HAVE_TIMEGM
|
||||
time_t timegm (struct tm *tm)
|
||||
{
|
||||
time_t ret;
|
||||
char *tz;
|
||||
tz = getenv ("TZ");
|
||||
setenv ("TZ", "UTC", 1);
|
||||
tzset ();
|
||||
ret = mktime (tm);
|
||||
if (tz)
|
||||
setenv ("TZ", tz, 1);
|
||||
else
|
||||
unsetenv ("TZ");
|
||||
tzset ();
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
|
|
@ -84,5 +84,9 @@ const std::string indentProject (
|
|||
const std::string& whitespace = " ",
|
||||
char delimiter = '.');
|
||||
|
||||
#ifndef HAVE_TIMEGM
|
||||
time_t timegm (struct tm *tm);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue