X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/c89d0fd415a67ad09d0f18cbe1e0b805f6fe3f56..d20e6e9093f74ce2e435a3dac948df200e767405:/lisp/net/rcompile.el diff --git a/lisp/net/rcompile.el b/lisp/net/rcompile.el index 9eecb8e448..e7bfbf386f 100644 --- a/lisp/net/rcompile.el +++ b/lisp/net/rcompile.el @@ -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 +;; Author: Alon Albert ;; 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 . ;;; 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." ;;;; 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