David Graf has proposed merging lp:~davidagraf/zorba/lastmodifiedfix into 
lp:zorba.

Requested reviews:
  David Graf (davidagraf)

For more details, see:
https://code.launchpad.net/~davidagraf/zorba/lastmodifiedfix/+merge/123494
-- 
https://code.launchpad.net/~davidagraf/zorba/lastmodifiedfix/+merge/123494
Your team Zorba Coders is subscribed to branch lp:zorba.
=== modified file 'ChangeLog'
--- ChangeLog	2012-09-09 07:46:57 +0000
+++ ChangeLog	2012-09-10 07:14:24 +0000
@@ -26,6 +26,7 @@
   * Fixed bug #1042840 (qname pool free-list corruption)
   * Fixed bug #866984 (better error message for an eval error)
   * Fixed bug #932884 (HTML and XHTML serialization of empty elements)
+  * Fixed bug #1045902 (file:last-modified returns current date time)
 	
 version 2.6
 

=== modified file 'modules/org/expath/ns/file.xq.src/file.cpp'
--- modules/org/expath/ns/file.xq.src/file.cpp	2012-08-30 13:45:43 +0000
+++ modules/org/expath/ns/file.xq.src/file.cpp	2012-09-10 07:14:24 +0000
@@ -603,11 +603,19 @@
   // actual last modified
   try {
     time_t lTime = lFile->lastModified();
-    struct tm *lT = localtime(&lTime);
+    // result of localtime needs to be copied.
+    // Otherwise, nasty side effecs do happen
+    struct tm lT(*localtime(&lTime));
     int gmtOffset = LastModifiedFunction::getGmtOffset();
 
     return ItemSequence_t(new SingletonItemSequence(
-      theModule->getItemFactory()->createDateTime(1900 + lT->tm_year, lT->tm_mon, lT->tm_mday, lT->tm_hour, lT->tm_min, lT->tm_sec, gmtOffset)));
+      theModule->getItemFactory()->createDateTime(1900 + lT.tm_year,
+                                                  lT.tm_mon,
+                                                  lT.tm_mday,
+                                                  lT.tm_hour,
+                                                  lT.tm_min, 
+                                                  lT.tm_sec,
+                                                  gmtOffset)));
   } catch (ZorbaException& ze) {
     std::stringstream lSs;
     lSs << "An unknown error occured: " << ze.what() << "Can not retrieve the last modification timestamp of";

-- 
Mailing list: https://launchpad.net/~zorba-coders
Post to     : zorba-coders@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zorba-coders
More help   : https://help.launchpad.net/ListHelp

Reply via email to