aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard M. Stallman2002-09-09 19:23:37 +0000
committerRichard M. Stallman2002-09-09 19:23:37 +0000
commitee291b4684fe84c1133d529816c8177a99bce9ba (patch)
tree47b71533fe674f767e1aacc619984b9e8e59d623
parenta28947f01ad350898e4cda6cff7dd4a3ebaa4eae (diff)
downloademacs-ee291b4684fe84c1133d529816c8177a99bce9ba.tar.gz
emacs-ee291b4684fe84c1133d529816c8177a99bce9ba.zip
(make-backup-file-name-1): When make-directory fails,
ignore backup-directory-alist. (make-directory): Expand DIR before looking for handler.
-rw-r--r--lisp/files.el13
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."
2574(defun make-backup-file-name-1 (file) 2574(defun make-backup-file-name-1 (file)
2575 "Subroutine of `make-backup-file-name' and `find-backup-file-name'." 2575 "Subroutine of `make-backup-file-name' and `find-backup-file-name'."
2576 (let ((alist backup-directory-alist) 2576 (let ((alist backup-directory-alist)
2577 elt backup-directory) 2577 elt backup-directory failed)
2578 (while alist 2578 (while alist
2579 (setq elt (pop alist)) 2579 (setq elt (pop alist))
2580 (if (string-match (car elt) file) 2580 (if (string-match (car elt) file)
2581 (setq backup-directory (cdr elt) 2581 (setq backup-directory (cdr elt)
2582 alist nil))) 2582 alist nil)))
2583 (if (null backup-directory) 2583 (if (and backup-directory (not (file-exists-p backup-directory)))
2584 file
2585 (unless (file-exists-p backup-directory)
2586 (condition-case nil 2584 (condition-case nil
2587 (make-directory backup-directory 'parents) 2585 (make-directory backup-directory 'parents)
2588 (file-error file))) 2586 (file-error (setq backup-directory nil))))
2587 (if (null backup-directory)
2588 file
2589 (if (file-name-absolute-p backup-directory) 2589 (if (file-name-absolute-p backup-directory)
2590 (progn 2590 (progn
2591 (when (memq system-type '(windows-nt ms-dos)) 2591 (when (memq system-type '(windows-nt ms-dos))
@@ -3199,6 +3199,9 @@ to create parent directories if they don't exist."
3199 (list (read-file-name "Make directory: " default-directory default-directory 3199 (list (read-file-name "Make directory: " default-directory default-directory
3200 nil nil) 3200 nil nil)
3201 t)) 3201 t))
3202 ;; If default-directory is a remote directory,
3203 ;; make sure we find its make-directory handler.
3204 (setq dir (expand-file-name dir))
3202 (let ((handler (find-file-name-handler dir 'make-directory))) 3205 (let ((handler (find-file-name-handler dir 'make-directory)))
3203 (if handler 3206 (if handler
3204 (funcall handler 'make-directory dir parents) 3207 (funcall handler 'make-directory dir parents)