From: Michael Albinus Date: Sun, 25 Jun 2006 21:05:03 +0000 (+0000) Subject: * net/rcompile.el (remote-compile): Replace ange-ftp based X-Git-Tag: emacs-pretest-22.0.90~1831 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=08b1eb21d5a3f935eb245acf0844a19acc42f57c;p=emacs.git * net/rcompile.el (remote-compile): Replace ange-ftp based implementation by Tramp functions. Based on a patch published by Marc Abramowitz . * net/tramp.el (tramp-unload-tramp): Provide a doc string. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index cead9ddf219..dea9cbc97a6 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2006-06-25 Michael Albinus + + * net/rcompile.el (remote-compile): Replace ange-ftp based + implementation by Tramp functions. Based on a patch published by + Marc Abramowitz . + + * net/tramp.el (tramp-unload-tramp): Provide a doc string. + 2006-06-24 Yoshinori Koseki * international/fontset.el (setup-default-fontset): Fix a typo in diff --git a/lisp/net/rcompile.el b/lisp/net/rcompile.el index 469f268fb9c..158069986d2 100644 --- a/lisp/net/rcompile.el +++ b/lisp/net/rcompile.el @@ -115,17 +115,25 @@ nil means run no commands." ;;;; entry point +;; We use the Tramp internal functions `with-parsed-tramp-file-name' +;; and `tramp-make-tramp-file-name'. Better would be, if there are +;; functions to provide user, host and localname of a remote filename, +;; independent of Tramp's implementation. The function calls are +;; wrapped by `funcall' in order to pacify the byte compiler. +;; ange-ftp check removed, because it is handled also by Tramp. ;;;###autoload (defun remote-compile (host user command) "Compile the current buffer's directory on HOST. Log in as USER. See \\[compile]." (interactive - (let ((parsed (or (and (featurep 'ange-ftp) - (ange-ftp-ftp-name default-directory)))) - host user command prompt) + (let ((parsed (and (featurep 'tramp) + (file-remote-p default-directory))) + host user command prompt l l-host l-user) (if parsed - (setq host (nth 0 parsed) - user (nth 1 parsed)) + (funcall (symbol-function 'with-parsed-tramp-file-name) + default-directory l + (setq host l-host + user l-user)) (setq prompt (if (stringp remote-compile-host) (format "Compile on host (default %s): " remote-compile-host) @@ -155,8 +163,9 @@ See \\[compile]." (setq remote-compile-user user)) ((null remote-compile-user) (setq remote-compile-user (user-login-name)))) - (let* ((parsed (and (featurep 'ange-ftp) - (ange-ftp-ftp-name default-directory))) + (let* (localname ;; Pacify byte-compiler. + (parsed (and (featurep 'tramp) + (file-remote-p default-directory))) (compile-command (format "%s %s -l %s \"(%scd %s; %s)\"" remote-shell-program @@ -165,16 +174,25 @@ See \\[compile]." (if remote-compile-run-before (concat remote-compile-run-before "; ") "") - (if parsed (nth 2 parsed) default-directory) + (if parsed + (funcall (symbol-function 'with-parsed-tramp-file-name) + default-directory nil localname) + "") compile-command))) (setq remote-compile-host host) (save-some-buffers nil nil) (compilation-start compile-command) ;; Set comint-file-name-prefix in the compilation buffer so - ;; compilation-parse-errors will find referenced files by ange-ftp. + ;; compilation-parse-errors will find referenced files by Tramp. (with-current-buffer compilation-last-buffer - (set (make-local-variable 'comint-file-name-prefix) - (concat "/" host ":"))))) + (when (featurep 'tramp) + (set (make-local-variable 'comint-file-name-prefix) + (funcall (symbol-function 'tramp-make-tramp-file-name) + nil ;; multi-method. To be removed with Tramp 2.1. + nil + remote-compile-user + remote-compile-host + "")))))) ;;; arch-tag: 2866a132-ece4-4ce9-9f91-ec147f803f73 ;;; rcompile.el ends here diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index c4166bb6d24..c94ec48b76d 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -7591,6 +7591,7 @@ Therefore, the contents of files might be included in the debug buffer(s).") ;; - Cleanup autoloads ;;;###autoload (defun tramp-unload-tramp () + "Discard Tramp from loading remote files." (interactive) ;; When Tramp is not loaded yet, its autoloads are still active. (tramp-unload-file-name-handlers)