]> code.delx.au - gnu-emacs/blobdiff - lisp/net/rcompile.el
* net/tramp.el (tramp-ssh-controlmaster-template): Make it a
[gnu-emacs] / lisp / net / rcompile.el
index 9eecb8e44810c4b027a0ea48988df0ef6519bec7..e7bfbf386f4d7843677f0114a79869d4b8a7f37e 100644 (file)
@@ -1,19 +1,18 @@
 ;;; rcompile.el --- run a compilation on a remote machine
 
-;; Copyright (C) 1993, 1994, 2001, 2002, 2003, 2004,
-;;   2005, 2006, 2007 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1994, 2001-2013 Free Software Foundation, Inc.
 
-;; Author: Albert    <alon@milcse.rtsg.mot.com>
+;; Author: Alon Albert <alon@milcse.rtsg.mot.com>
 ;; Maintainer: FSF
 ;; Created: 1993 Oct 6
 ;; Keywords: tools, processes
 
 ;; This file is part of GNU Emacs.
 
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -21,9 +20,7 @@
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
@@ -77,7 +74,7 @@
 
 
 (defcustom remote-compile-host nil
-  "*Host for remote compilations."
+  "Host for remote compilations."
   :type '(choice string (const nil))
   :group 'remote-compile)
 
@@ -88,7 +85,7 @@ nil means use the value returned by \\[user-login-name]."
   :group 'remote-compile)
 
 (defcustom remote-compile-run-before nil
-  "*Command to run before compilation.
+  "Command to run before compilation.
 This can be used for setting up environment variables,
 since rsh does not invoke the shell as a login shell and files like .login
 \(tcsh\) and .bash_profile \(bash\) are not run.
@@ -97,12 +94,12 @@ nil means run no commands."
   :group 'remote-compile)
 
 (defcustom remote-compile-prompt-for-host nil
-  "*Non-nil means prompt for host if not available from filename."
+  "Non-nil means prompt for host if not available from filename."
   :type 'boolean
   :group 'remote-compile)
 
 (defcustom remote-compile-prompt-for-user nil
-  "*Non-nil means prompt for user if not available from filename."
+  "Non-nil means prompt for user if not available from filename."
   :type 'boolean
   :group 'remote-compile)
 
@@ -115,43 +112,35 @@ nil means run no commands."
 \f
 ;;;; 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.
+;; We use the Tramp internal function`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 (and (featurep 'tramp)
-                     (file-remote-p default-directory)))
-         host user command prompt l l-host l-user)
-     (if 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)
-                      "Compile on host: ")
-             host (if (or remote-compile-prompt-for-host
-                          (null remote-compile-host))
-                      (read-from-minibuffer prompt
-                                            "" nil nil
-                                            'remote-compile-host-history)
-                    remote-compile-host)
-             user (if remote-compile-prompt-for-user
-                      (read-from-minibuffer (format
-                                             "Compile by user (default %s): "
-                                             (or remote-compile-user
-                                                 (user-login-name)))
-                                            "" nil nil
-                                            'remote-compile-user-history)
-                    remote-compile-user)))
+   (let (host user command prompt l l-host l-user)
+     (setq prompt (if (stringp remote-compile-host)
+                      (format "Compile on host (default %s): "
+                              remote-compile-host)
+                    "Compile on host: ")
+           host (if (or remote-compile-prompt-for-host
+                        (null remote-compile-host))
+                    (read-from-minibuffer prompt
+                                          "" nil nil
+                                          'remote-compile-host-history)
+                  remote-compile-host)
+           user (if remote-compile-prompt-for-user
+                    (read-from-minibuffer (format
+                                           "Compile by user (default %s): "
+                                           (or remote-compile-user
+                                               (user-login-name)))
+                                          "" nil nil
+                                          'remote-compile-user-history)
+                  remote-compile-user))
      (setq command (read-from-minibuffer "Compile command: "
                                          compile-command nil nil
                                          '(compile-history . 1)))
@@ -164,8 +153,6 @@ See \\[compile]."
         ((null remote-compile-user)
          (setq remote-compile-user (user-login-name))))
   (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
@@ -174,10 +161,7 @@ See \\[compile]."
                   (if remote-compile-run-before
                       (concat remote-compile-run-before "; ")
                     "")
-                 (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)
@@ -185,13 +169,12 @@ See \\[compile]."
     ;; Set comint-file-name-prefix in the compilation buffer so
     ;; compilation-parse-errors will find referenced files by Tramp.
     (with-current-buffer compilation-last-buffer
-      (when (featurep 'tramp)
+      (when (fboundp 'tramp-make-tramp-file-name)
        (set (make-local-variable 'comint-file-name-prefix)
-            (funcall (symbol-function 'tramp-make-tramp-file-name)
+            (tramp-make-tramp-file-name
              nil ;; method.
              remote-compile-user
              remote-compile-host
              ""))))))
 
-;;; arch-tag: 2866a132-ece4-4ce9-9f91-ec147f803f73
 ;;; rcompile.el ends here