##// END OF EJS Templates
Do not automatically rename an atomicfile if a write to it has generated an exception.
Brendan Cully -
r4378:e33ad7ce default
parent child Browse files
Show More
@@ -1161,11 +1161,19 b' def opener(base, audit=True):'
1161 class atomicfile(atomictempfile):
1161 class atomicfile(atomictempfile):
1162 """the file will only be copied on close"""
1162 """the file will only be copied on close"""
1163 def __init__(self, name, mode):
1163 def __init__(self, name, mode):
1164 self._err = False
1164 atomictempfile.__init__(self, name, mode)
1165 atomictempfile.__init__(self, name, mode)
1166 def write(self, s):
1167 try:
1168 atomictempfile.write(self, s)
1169 except:
1170 self._err = True
1171 raise
1165 def close(self):
1172 def close(self):
1166 self.rename()
1173 self.rename()
1167 def __del__(self):
1174 def __del__(self):
1168 self.rename()
1175 if not self._err:
1176 self.rename()
1169
1177
1170 def o(path, mode="r", text=False, atomic=False, atomictemp=False):
1178 def o(path, mode="r", text=False, atomic=False, atomictemp=False):
1171 if audit_p:
1179 if audit_p:
General Comments 0
You need to be logged in to leave comments. Login now