Function: ange-ftp-rename-remote-to-remote
ange-ftp-rename-remote-to-remote is a byte-compiled function defined
in ange-ftp.el.gz.
Signature
(ange-ftp-rename-remote-to-remote FILENAME NEWNAME F-PARSED T-PARSED)
Documentation
Rename remote file FILENAME to remote file NEWNAME.
Source Code
;; Defined in /usr/src/emacs/lisp/net/ange-ftp.el.gz
;;;; ------------------------------------------------------------
;;;; File renaming support.
;;;; ------------------------------------------------------------
(defun ange-ftp-rename-remote-to-remote (filename newname f-parsed t-parsed)
"Rename remote file FILENAME to remote file NEWNAME."
(let ((f-host (nth 0 f-parsed))
(f-user (nth 1 f-parsed))
(t-host (nth 0 t-parsed))
(t-user (nth 1 t-parsed)))
(if (and (string-equal f-host t-host)
(string-equal f-user t-user))
(let* ((f-name (ange-ftp-quote-string (nth 2 f-parsed)))
(t-name (ange-ftp-quote-string (nth 2 t-parsed)))
(cmd (list 'rename f-name t-name))
(fabbr (ange-ftp-abbreviate-filename filename))
(nabbr (ange-ftp-abbreviate-filename newname filename))
(result (ange-ftp-send-cmd f-host f-user cmd
(format "Renaming %s to %s"
fabbr
nabbr))))
(or (car result)
(signal 'ftp-error
(list
"Renaming"
(format "FTP Error: \"%s\"" (cdr result))
filename
newname)))
(ange-ftp-add-file-entry newname)
(ange-ftp-delete-file-entry filename))
(ange-ftp-copy-file-internal filename newname t nil)
(delete-file filename))))