]> code.delx.au - offlineimap/blobdiff - offlineimap/repository/LocalStatus.py
Merge commit 'origin' into v7
[offlineimap] / offlineimap / repository / LocalStatus.py
index 0a13706fa5695a0d580014eacacc097c98d44c7a..92e392d13cc5d8d4082be9393279f851bf5a7ed1 100644 (file)
@@ -18,6 +18,7 @@
 
 from Base import BaseRepository
 from offlineimap import folder
+import offlineimap.folder.LocalStatus
 import os, re
 
 class LocalStatusRepository(BaseRepository):
@@ -38,8 +39,14 @@ class LocalStatusRepository(BaseRepository):
 
     def makefolder(self, foldername):
         # "touch" the file, truncating it.
-        file = open(self.getfolderfilename(foldername), "wb")
+        filename = self.getfolderfilename(foldername)
+        file = open(filename + ".tmp", "wt")
+        file.write(offlineimap.folder.LocalStatus.magicline + '\n')
+        file.flush()
+        os.fsync(file.fileno())
         file.close()
+        os.rename(filename + ".tmp", filename)
+        
         # Invalidate the cache.
         self.folders = None
 
@@ -47,12 +54,14 @@ class LocalStatusRepository(BaseRepository):
         retval = []
         for folder in os.listdir(self.directory):
             retval.append(folder.LocalStatus.LocalStatusFolder(self.directory,
-                                                               folder, self, self.accountname))
+                                                               folder, self, self.accountname, 
+                                                               self.config))
         return retval
 
     def getfolder(self, foldername):
         return folder.LocalStatus.LocalStatusFolder(self.directory, foldername,
-                                                    self, self.accountname)
+                                                    self, self.accountname,
+                                                    self.config)