]> code.delx.au - offlineimap/blobdiff - offlineimap/repository/LocalStatus.py
Merge commit 'origin' into v7
[offlineimap] / offlineimap / repository / LocalStatus.py
index 5b0b4c2886f6bbddfaf311a91373d92a7b9b3563..92e392d13cc5d8d4082be9393279f851bf5a7ed1 100644 (file)
@@ -39,9 +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
 
@@ -49,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)