diff --git a/autojump b/autojump index 114dd61..98816fc 100755 --- a/autojump +++ b/autojump @@ -55,24 +55,25 @@ def save(path_dict, dic_file): a backup file.""" # If the dic_file exists, check that it belongs to us # Otherwise, fail quietly - temp = NamedTemporaryFile(dir=CONFIG_DIR, delete=False) - pickle.dump(path_dict, temp, 2) - temp.flush() - os.fsync(temp) - temp.close() - #cf. http://thunk.org/tytso/blog/2009/03/15/dont-fear-the-fsync/ - #os.rename(temp.name, dic_file) - import shutil - shutil.copy(temp.name, dic_file) - try: #backup file - import time - if (not os.path.exists(dic_file+".bak") or - time.time()-os.path.getmtime(dic_file+".bak")>86400): - import shutil - shutil.copy(dic_file, dic_file+".bak") - except OSError as ex: - print("Error while creating backup autojump file. (%s)" % - ex, file=stderr) + if (not os.path.exists(dic_file)) or os.name == 'nt' or os.getuid() == os.stat(dic_file)[4]: + temp = NamedTemporaryFile(dir=CONFIG_DIR, delete=False) + pickle.dump(path_dict, temp, 2) + temp.flush() + os.fsync(temp) + temp.close() + #cf. http://thunk.org/tytso/blog/2009/03/15/dont-fear-the-fsync/ + #os.rename(temp.name, dic_file) + import shutil + shutil.copy(temp.name, dic_file) + try: #backup file + import time + if (not os.path.exists(dic_file+".bak") or + time.time()-os.path.getmtime(dic_file+".bak")>86400): + import shutil + shutil.copy(dic_file, dic_file+".bak") + except OSError as ex: + print("Error while creating backup autojump file. (%s)" % + ex, file=stderr) def forget(path_dict, dic_file): """Gradually forget about directories. Only call