[Checkins] SVN: Products.CMFCore/trunk/Products/CMFCore/ revert windows patch

Nikolay Kim fafhrd91 at gmail.com
Fri Feb 4 11:03:51 EST 2011


Log message for revision 120101:
  revert windows patch

Changed:
  U   Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt
  U   Products.CMFCore/trunk/Products/CMFCore/DirectoryView.py

-=-
Modified: Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt	2011-02-04 15:19:37 UTC (rev 120100)
+++ Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt	2011-02-04 16:03:51 UTC (rev 120101)
@@ -74,9 +74,7 @@
 
 - DirectoryView: Removed support for deprecated old API.
 
-- DirectoryView: Removed os.path.walk call in windows development mode
 
-
 2.2.0-beta (2009-12-06)
 -----------------------
 

Modified: Products.CMFCore/trunk/Products/CMFCore/DirectoryView.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/DirectoryView.py	2011-02-04 15:19:37 UTC (rev 120100)
+++ Products.CMFCore/trunk/Products/CMFCore/DirectoryView.py	2011-02-04 16:03:51 UTC (rev 120101)
@@ -11,6 +11,8 @@
 #
 ##############################################################################
 """ Views of filesystem directories as folders.
+
+$Id: DirectoryView.py 110418 2010-04-01 17:10:54Z tseaver $
 """
 
 import logging
@@ -105,6 +107,7 @@
 class DirectoryInformation:
     data = None
     _v_last_read = 0
+    _v_last_filelist = [] # Only used on Win32
 
     def __init__(self, filepath, reg_key, ignore=ignore):
         self._filepath = filepath
@@ -156,13 +159,23 @@
         if not getConfiguration().debug_mode:
             return 0
         mtime=0
+        filelist=[]
         try:
             mtime = os.stat(self._filepath)[8]
+            if platform == 'win32':
+                # some Windows directories don't change mtime
+                # when a file is added to or deleted from them :-(
+                # So keep a list of files as well, and see if that
+                # changes
+                os.path.walk(self._filepath, self._walker, filelist)
+                filelist.sort()
         except:
             logger.exception("Error checking for directory modification")
 
-        if mtime != self._v_last_read:
+        if mtime != self._v_last_read or filelist != self._v_last_filelist:
             self._v_last_read = mtime
+            self._v_last_filelist = filelist
+
             return 1
 
         return 0



More information about the checkins mailing list