+2007-08-24 Ulrich Mueller <ulm@gentoo.org> (tiny change)
+
+ * files.el (backup-buffer-copy): Don't wrap delete in
+ condition-case, only try to delete if file exists.
+
2007-08-24 Glenn Morris <rgm@gnu.org>
* files.el (backup-buffer-copy): Revert 2007-08-22 change.
(let ((umask (default-file-modes))
(dir (or (file-name-directory to-name)
default-directory)))
- ;; Can't delete or create files in a read-only directory.
- (unless (file-writable-p dir)
- (signal 'file-error (list "Directory is not writable" dir)))
(unwind-protect
(progn
;; Create temp files with strict access rights. It's easy to
(set-default-file-modes ?\700)
(while (condition-case ()
(progn
- ;; If we allow for the possibility of something
- ;; creating the file between delete and copy
- ;; (below), we must also allow for the
- ;; possibility of something deleting it between
- ;; a file-exists-p check and a delete.
(condition-case nil
(delete-file to-name)
(file-error nil))
(file-already-exists t))
;; The file was somehow created by someone else between
;; `delete-file' and `copy-file', so let's try again.
- ;; Does that every actually happen in practice?
- ;; This is a potential infloop, which seems bad...
;; rms says "I think there is also a possible race
;; condition for making backup files" (emacs-devel 20070821).
nil))