aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/files.el
diff options
context:
space:
mode:
authorRichard M. Stallman <[email protected]>2002-09-09 19:23:37 +0000
committerRichard M. Stallman <[email protected]>2002-09-09 19:23:37 +0000
commitee291b4684fe84c1133d529816c8177a99bce9ba (patch)
tree47b71533fe674f767e1aacc619984b9e8e59d623 /lisp/files.el
parenta28947f01ad350898e4cda6cff7dd4a3ebaa4eae (diff)
(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/files.el')
-rw-r--r--lisp/files.el13
1 files changed, 8 insertions, 5 deletions
diff --git a/lisp/files.el b/lisp/files.el
index ac61bbbd01..d720c858c0 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)