diff options
author | Richard M. Stallman <rms@gnu.org> | 2002-09-09 19:23:37 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 2002-09-09 19:23:37 +0000 |
commit | ee291b4684fe84c1133d529816c8177a99bce9ba (patch) | |
tree | 47b71533fe674f767e1aacc619984b9e8e59d623 /lisp | |
parent | a28947f01ad350898e4cda6cff7dd4a3ebaa4eae (diff) | |
download | emacs-ee291b4684fe84c1133d529816c8177a99bce9ba.tar.gz |
(make-backup-file-name-1): When make-directory fails,
ignore backup-directory-alist.
(make-directory): Expand DIR before looking for handler.
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/files.el | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/lisp/files.el b/lisp/files.el index ac61bbbd017..d720c858c0b 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -2574,18 +2574,18 @@ doesn't exist, it is created." (defun make-backup-file-name-1 (file) "Subroutine of `make-backup-file-name' and `find-backup-file-name'." (let ((alist backup-directory-alist) - elt backup-directory) + elt backup-directory failed) (while alist (setq elt (pop alist)) (if (string-match (car elt) file) (setq backup-directory (cdr elt) alist nil))) - (if (null backup-directory) - file - (unless (file-exists-p backup-directory) + (if (and backup-directory (not (file-exists-p backup-directory))) (condition-case nil (make-directory backup-directory 'parents) - (file-error file))) + (file-error (setq backup-directory nil)))) + (if (null backup-directory) + file (if (file-name-absolute-p backup-directory) (progn (when (memq system-type '(windows-nt ms-dos)) @@ -3199,6 +3199,9 @@ to create parent directories if they don't exist." (list (read-file-name "Make directory: " default-directory default-directory nil nil) t)) + ;; If default-directory is a remote directory, + ;; make sure we find its make-directory handler. + (setq dir (expand-file-name dir)) (let ((handler (find-file-name-handler dir 'make-directory))) (if handler (funcall handler 'make-directory dir parents) |