diff options
| author | Richard M. Stallman | 2002-09-09 19:23:37 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 2002-09-09 19:23:37 +0000 |
| commit | ee291b4684fe84c1133d529816c8177a99bce9ba (patch) | |
| tree | 47b71533fe674f767e1aacc619984b9e8e59d623 | |
| parent | a28947f01ad350898e4cda6cff7dd4a3ebaa4eae (diff) | |
| download | emacs-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.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." | |||
| 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) |