Function: ange-ftp-make-directory
ange-ftp-make-directory is an interactive and byte-compiled function
defined in ange-ftp.el.gz.
Signature
(ange-ftp-make-directory DIR &optional PARENTS)
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/net/ange-ftp.el.gz
(defun ange-ftp-make-directory (dir &optional parents)
(interactive (list (expand-file-name (read-directory-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)
(unless parents
(signal
'file-already-exists
(list "Cannot make directory: file already exists" dir)))
(let ((parsed (ange-ftp-ftp-name dir)))
(if parsed
(let* ((host (nth 0 parsed))
(user (nth 1 parsed))
;; Some ftp's on unix machines (at least on Suns)
;; insist that mkdir take a filename, and not a
;; directory-name name as an arg. Argh!! This is a bug.
;; Non-unix machines will probably always insist
;; that mkdir takes a directory-name as an arg
;; (as the ftp man page says it should).
(name (ange-ftp-quote-string
(if (eq (ange-ftp-host-type host) 'unix)
(ange-ftp-real-directory-file-name (nth 2 parsed))
(ange-ftp-real-file-name-as-directory
(nth 2 parsed)))))
(abbr (ange-ftp-abbreviate-filename dir))
(result (ange-ftp-send-cmd host user
(list 'mkdir name)
(format "Making directory %s"
abbr))))
(or (car result)
(ange-ftp-error host user
(format "Could not make directory %s: %s"
dir
(cdr result))))
(ange-ftp-add-file-entry dir t))
(ange-ftp-real-make-directory dir)))))