summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ange-ftp.el8
1 files changed, 6 insertions, 2 deletions
diff --git a/lisp/ange-ftp.el b/lisp/ange-ftp.el
index 9b40a747b3a..c895ce9fa26 100644
--- a/lisp/ange-ftp.el
+++ b/lisp/ange-ftp.el
@@ -856,7 +856,7 @@ SIZE, if supplied, should be a prime number."
;;;; Internal variables.
;;;; ------------------------------------------------------------
-(defconst ange-ftp-version "$Revision: 1.24 $")
+(defconst ange-ftp-version "$Revision: 1.25 $")
(defvar ange-ftp-data-buffer-name " *ftp data*"
"Buffer name to hold directory listing data received from ftp process.")
@@ -3546,8 +3546,12 @@ system TYPE.")
(ange-ftp-del-hash-entry dir ange-ftp-files-hashtable)
(ange-ftp-get-files dir t))))
-(defun ange-ftp-make-directory (dir)
+(defun ange-ftp-make-directory (dir &optional parents)
(interactive (list (expand-file-name (read-file-name "Make directory: "))))
+ (if parents
+ (let ((parent (file-name-directory (directory-file-name dir))))
+ (or (file-exists-p parent)
+ (ange-ftp-make-directory parent parents))))
(if (file-exists-p dir)
(error "Cannot make directory %s: file already exists" dir)
(let ((parsed (ange-ftp-ftp-name dir)))