symbian-qemu-0.9.1-12/python-2.6.1/Tools/freeze/bkfile.py
changeset 1 2fb8b9db1c86
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/symbian-qemu-0.9.1-12/python-2.6.1/Tools/freeze/bkfile.py	Fri Jul 31 15:01:17 2009 +0100
@@ -0,0 +1,47 @@
+_orig_open = open
+
+class _BkFile:
+    def __init__(self, file, mode, bufsize):
+        import os
+        self.__filename = file
+        self.__backup = file + '~'
+        try:
+            os.unlink(self.__backup)
+        except os.error:
+            pass
+        try:
+            os.rename(file, self.__backup)
+        except os.error:
+            self.__backup = None
+        self.__file = _orig_open(file, mode, bufsize)
+        self.closed = self.__file.closed
+        self.fileno = self.__file.fileno
+        self.flush = self.__file.flush
+        self.isatty = self.__file.isatty
+        self.mode = self.__file.mode
+        self.name = self.__file.name
+        self.read = self.__file.read
+        self.readinto = self.__file.readinto
+        self.readline = self.__file.readline
+        self.readlines = self.__file.readlines
+        self.seek = self.__file.seek
+        self.softspace = self.__file.softspace
+        self.tell = self.__file.tell
+        self.truncate = self.__file.truncate
+        self.write = self.__file.write
+        self.writelines = self.__file.writelines
+
+    def close(self):
+        self.__file.close()
+        if self.__backup is None:
+            return
+        import filecmp
+        if filecmp.cmp(self.__backup, self.__filename, shallow = 0):
+            import os
+            os.unlink(self.__filename)
+            os.rename(self.__backup, self.__filename)
+
+def open(file, mode = 'r', bufsize = -1):
+    if 'w' not in mode:
+        return _orig_open(file, mode, bufsize)
+    return _BkFile(file, mode, bufsize)