bug fix regarding self.tmpext.

added check for access rights when overwriting original file.
This commit is contained in:
Philip Eisenlohr 2015-08-12 18:41:44 +00:00
parent a29240242b
commit 93dd9f5c09
1 changed files with 7 additions and 5 deletions

View File

@ -35,10 +35,12 @@ class ASCIItable():
} }
self.__IO__['inPlace'] = not outname and name and not readonly self.__IO__['inPlace'] = not outname and name and not readonly
if self.__IO__['inPlace']: outname = name+tmpext # transparently create tmp file if self.__IO__['inPlace']: outname = name + self.tmpext # transparently create tmp file
self.__IO__['in'] = (open( name,'r') if os.access( name, os.R_OK) else None) if name else sys.stdin self.__IO__['in'] = (open( name,'r') if os.access( name, os.R_OK) else None) if name else sys.stdin
self.__IO__['out'] = (open(outname,'w') if not os.path.isfile(outname) \ self.__IO__['out'] = (open(outname,'w') if (not os.path.isfile(outname) \
or os.access(outname, os.W_OK) else None) if outname else sys.stdout or os.access(outname, os.W_OK)) \
and (not self.__IO__['inPlace'] \
or os.access(name, os.W_OK)) else None) if outname else sys.stdout
self.info = [] self.info = []
self.labels = [] self.labels = []
@ -116,7 +118,7 @@ class ASCIItable():
except: except:
pass pass
if dismiss and os.path.isfile(self.__IO__['out'].name): os.remove(self.__IO__['out'].name) if dismiss and os.path.isfile(self.__IO__['out'].name): os.remove(self.__IO__['out'].name)
if self.__IO__['inPlace']: os.rename(self.__IO__['out'].name, self.__IO__['out'].name[:-len(tmpext)]) if self.__IO__['inPlace']: os.rename(self.__IO__['out'].name, self.__IO__['out'].name[:-len(self.tmpext)])
# ------------------------------------------------------------------ # ------------------------------------------------------------------
def head_read(self): def head_read(self):