/head: changeset 50
Fixed save() such that it will be atomic. If the program crashes while writing, it is guaranteed to have either a complete copy of the old or the new data.
This commit is contained in:
@ -61,7 +61,7 @@ class LocalStatusFolder(BaseFolder):
|
||||
file.close()
|
||||
|
||||
def save(self):
|
||||
file = open(self.filename, "wt")
|
||||
file = open(self.filename + ".tmp", "wt")
|
||||
file.write(magicline + "\n")
|
||||
for msg in self.messagelist.values():
|
||||
flags = msg['flags']
|
||||
@ -69,6 +69,7 @@ class LocalStatusFolder(BaseFolder):
|
||||
flags = ''.join(flags)
|
||||
file.write("%s:%s\n" % (msg['uid'], flags))
|
||||
file.close()
|
||||
os.rename(self.filename + ".tmp", self.filename)
|
||||
|
||||
def getmessagelist(self):
|
||||
return self.messagelist
|
||||
|
@ -1,5 +1,5 @@
|
||||
productname = 'OfflineIMAP'
|
||||
versionstr = "1.0.1"
|
||||
versionstr = "1.0.2"
|
||||
|
||||
versionlist = versionstr.split(".")
|
||||
major = versionlist[0]
|
||||
|
Reference in New Issue
Block a user