X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/340b8d4f63cd3d20a3c1883b78111e3768c0265b..65e86587ab836aaa86b12ce30b219bcb4fcbaa06:/lisp/net/tramp-util.el diff --git a/lisp/net/tramp-util.el b/lisp/net/tramp-util.el index 1621c2c818..666471d642 100644 --- a/lisp/net/tramp-util.el +++ b/lisp/net/tramp-util.el @@ -1,7 +1,8 @@ ;;; -*- coding: iso-2022-7bit; -*- ;;; tramp-util.el --- Misc utility functions to use with Tramp -;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2002, 2003, 2004, 2005, +;; 2006 Free Software Foundation, Inc. ;; Author: kai.grossjohann@gmx.net ;; Keywords: comm, extensions, processes @@ -18,8 +19,8 @@ ;; 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., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. ;;; Commentary: @@ -31,58 +32,75 @@ (eval-when-compile (require 'cl)) (require 'compile) (require 'tramp) +(add-hook 'tramp-util-unload-hook + '(lambda () + (when (featurep 'tramp) + (unload-feature 'tramp 'force)))) ;; Define a Tramp minor mode. It's intention is to redefine some keys for Tramp ;; specific functions, like compilation. ;; The key remapping works since Emacs 22 only. Unknown for XEmacs. -(when (fboundp 'define-minor-mode) - - (defvar tramp-minor-mode-map (make-sparse-keymap) - "Keymap for Tramp minor mode.") - - (define-minor-mode tramp-minor-mode "Tramp minor mode for utility functions." - :group 'tramp - :global nil - :init-value nil - :lighter " Tramp" - :keymap tramp-minor-mode-map - (setq tramp-minor-mode - (and tramp-minor-mode (tramp-tramp-file-p default-directory)))) - - (add-hook 'find-file-hooks 'tramp-minor-mode t) - (add-hook 'dired-mode-hook 'tramp-minor-mode t) - - (defun tramp-remap-command (old-command new-command) - "Replaces bindings of OLD-COMMAND by NEW-COMMAND. +;; Pacify byte-compiler +(eval-when-compile + (unless (fboundp 'define-minor-mode) + (defalias 'define-minor-mode 'identity) + (defvar tramp-minor-mode)) + (unless (featurep 'xemacs) + (defalias 'add-menu-button 'ignore))) + +(defvar tramp-minor-mode-map (make-sparse-keymap) + "Keymap for Tramp minor mode.") + +(define-minor-mode tramp-minor-mode "Tramp minor mode for utility functions." + :group 'tramp + :global nil + :init-value nil + :lighter " Tramp" + :keymap tramp-minor-mode-map + (setq tramp-minor-mode + (and tramp-minor-mode (tramp-tramp-file-p default-directory)))) + +(add-hook 'find-file-hooks 'tramp-minor-mode t) +(add-hook 'tramp-util-unload-hook + '(lambda () + (remove-hook 'find-file-hooks 'tramp-minor-mode))) + +(add-hook 'dired-mode-hook 'tramp-minor-mode t) +(add-hook 'tramp-util-unload-hook + '(lambda () + (remove-hook 'dired-mode-hook 'tramp-minor-mode))) + +(defun tramp-remap-command (old-command new-command) + "Replaces bindings of OLD-COMMAND by NEW-COMMAND. If remapping functionality for keymaps is defined, this happens for all bindings. Otherwise, only bindings active during invocation are taken into account. XEmacs menubar bindings are not changed by this." - (if (functionp 'command-remapping) - ;; Emacs 22 - (eval - `(define-key tramp-minor-mode-map [remap ,old-command] new-command)) - ;; previous Emacs versions. - (mapcar - '(lambda (x) - (define-key tramp-minor-mode-map x new-command)) - (where-is-internal old-command)))) - - (tramp-remap-command 'compile 'tramp-compile) - (tramp-remap-command 'recompile 'tramp-recompile) - - ;; XEmacs has an own mimic for menu entries - (when (fboundp 'add-menu-button) - (funcall 'add-menu-button - '("Tools" "Compile") - ["Compile..." - (command-execute (if tramp-minor-mode 'tramp-compile 'compile)) - :active (fboundp 'compile)]) - (funcall 'add-menu-button - '("Tools" "Compile") - ["Repeat Compilation" - (command-execute (if tramp-minor-mode 'tramp-recompile 'recompile)) - :active (fboundp 'compile)]))) + (if (functionp 'command-remapping) + ;; Emacs 22 + (eval + `(define-key tramp-minor-mode-map [remap ,old-command] new-command)) + ;; previous Emacs versions. + (mapcar + '(lambda (x) + (define-key tramp-minor-mode-map x new-command)) + (where-is-internal old-command)))) + +(tramp-remap-command 'compile 'tramp-compile) +(tramp-remap-command 'recompile 'tramp-recompile) + +;; XEmacs has an own mimic for menu entries +(when (fboundp 'add-menu-button) + (funcall 'add-menu-button + '("Tools" "Compile") + ["Compile..." + (command-execute (if tramp-minor-mode 'tramp-compile 'compile)) + :active (fboundp 'compile)]) + (funcall 'add-menu-button + '("Tools" "Compile") + ["Repeat Compilation" + (command-execute (if tramp-minor-mode 'tramp-recompile 'recompile)) + :active (fboundp 'compile)])) ;; Utility functions.