2574 |
(defun make-backup-file-name-1 (file) |
(defun make-backup-file-name-1 (file) |
2575 |
"Subroutine of `make-backup-file-name' and `find-backup-file-name'." |
"Subroutine of `make-backup-file-name' and `find-backup-file-name'." |
2576 |
(let ((alist backup-directory-alist) |
(let ((alist backup-directory-alist) |
2577 |
elt backup-directory) |
elt backup-directory failed) |
2578 |
(while alist |
(while alist |
2579 |
(setq elt (pop alist)) |
(setq elt (pop alist)) |
2580 |
(if (string-match (car elt) file) |
(if (string-match (car elt) file) |
2581 |
(setq backup-directory (cdr elt) |
(setq backup-directory (cdr elt) |
2582 |
alist nil))) |
alist nil))) |
2583 |
(if (null backup-directory) |
(if (and backup-directory (not (file-exists-p backup-directory))) |
|
file |
|
|
(unless (file-exists-p backup-directory) |
|
2584 |
(condition-case nil |
(condition-case nil |
2585 |
(make-directory backup-directory 'parents) |
(make-directory backup-directory 'parents) |
2586 |
(file-error file))) |
(file-error (setq backup-directory nil)))) |
2587 |
|
(if (null backup-directory) |
2588 |
|
file |
2589 |
(if (file-name-absolute-p backup-directory) |
(if (file-name-absolute-p backup-directory) |
2590 |
(progn |
(progn |
2591 |
(when (memq system-type '(windows-nt ms-dos)) |
(when (memq system-type '(windows-nt ms-dos)) |
3199 |
(list (read-file-name "Make directory: " default-directory default-directory |
(list (read-file-name "Make directory: " default-directory default-directory |
3200 |
nil nil) |
nil nil) |
3201 |
t)) |
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)) |
3205 |
(let ((handler (find-file-name-handler dir 'make-directory))) |
(let ((handler (find-file-name-handler dir 'make-directory))) |
3206 |
(if handler |
(if handler |
3207 |
(funcall handler 'make-directory dir parents) |
(funcall handler 'make-directory dir parents) |