svn commit: r446957 - in head/finance/libofx: . files

Jason E. Hale jhale at FreeBSD.org
Mon Jul 31 13:07:24 UTC 2017


Author: jhale
Date: Mon Jul 31 13:07:22 2017
New Revision: 446957
URL: https://svnweb.freebsd.org/changeset/ports/446957

Log:
  Fix Daylight Saving Time (DST) detection. Previous patch was erroneously
  dectecting whether DST is currently in effect for the timezone (TZ) in use
  instead of emulating the glibc global daylight variable which is set to 0 if
  DST conversions should never be applied for the TZ in use; otherwise non-zero.
  
  PR:		220665
  Submitted by:	madpilot
  MFH:		2017Q3

Modified:
  head/finance/libofx/Makefile
  head/finance/libofx/files/patch-lib_ofx__utilities.cpp

Modified: head/finance/libofx/Makefile
==============================================================================
--- head/finance/libofx/Makefile	Mon Jul 31 12:16:28 2017	(r446956)
+++ head/finance/libofx/Makefile	Mon Jul 31 13:07:22 2017	(r446957)
@@ -3,6 +3,7 @@
 
 PORTNAME=	libofx
 PORTVERSION=	0.9.11
+PORTREVISION=	1
 CATEGORIES=	finance
 MASTER_SITES=	SF/${PORTNAME}/${PORTNAME}
 

Modified: head/finance/libofx/files/patch-lib_ofx__utilities.cpp
==============================================================================
--- head/finance/libofx/files/patch-lib_ofx__utilities.cpp	Mon Jul 31 12:16:28 2017	(r446956)
+++ head/finance/libofx/files/patch-lib_ofx__utilities.cpp	Mon Jul 31 13:07:22 2017	(r446957)
@@ -1,18 +1,14 @@
 --- lib/ofx_utilities.cpp.orig	2013-04-16 19:50:51 UTC
 +++ lib/ofx_utilities.cpp
-@@ -115,9 +115,14 @@ time_t ofxdate_to_time_t(const string of
+@@ -115,6 +115,11 @@ time_t ofxdate_to_time_t(const string ofxdate)
    char time_zone_specified = false;
    string ofxdate_whole;
    time_t temptime;
-+  int daylight;
-+  const struct tm* t;
-+  
-+  std::time(&temptime);
-+  t = localtime(&temptime);
-+  daylight = t->tm_isdst;
++  int daylight = 0;
++
++  tzset();
++  if(tzname[1][0] != ' ')
++    daylight = 1;
  
    time.tm_isdst = daylight; // initialize dst setting
--  std::time(&temptime);
-   local_offset = difftime(mktime(localtime(&temptime)), mktime(gmtime(&temptime))) + (3600 * daylight);
- 
-   if (ofxdate.size() != 0)
+   std::time(&temptime);


More information about the svn-ports-all mailing list