]> code.delx.au - gnu-emacs/blobdiff - lisp/net/rlogin.el
Ibuffer: Mark buffers by content
[gnu-emacs] / lisp / net / rlogin.el
index e2619e3bf79f0282a13e12f6689cc8998461332e..921ceff290f50c21cabc2c3b20c4d1daf65484e2 100644 (file)
@@ -1,7 +1,7 @@
 ;;; rlogin.el --- remote login interface
 
-;; Copyright (C) 1992-1995, 1997-1998, 2001-2011
-;;   Free Software Foundation, Inc.
+;; Copyright (C) 1992-1995, 1997-1998, 2001-2016 Free Software
+;; Foundation, Inc.
 
 ;; Author: Noah Friedman
 ;; Maintainer: Noah Friedman <friedman@splode.com>
 
 ;;; Code:
 
+;; FIXME?
+;; Maybe this file should be obsolete.
+;; http://lists.gnu.org/archive/html/emacs-devel/2013-02/msg00517.html
+;; It only adds rlogin-directory-tracking-mode.  Is that useful?
+
 (require 'comint)
 (require 'shell)
 
   :group 'processes
   :group 'unix)
 
-(defcustom rlogin-program "rlogin"
-  "Name of program to invoke rlogin"
+(defcustom rlogin-program "ssh"
+  "Name of program to invoke remote login."
+  :version "24.4"                       ; rlogin -> ssh
   :type 'string
   :group 'rlogin)
 
-(defcustom rlogin-explicit-args nil
-  "List of arguments to pass to rlogin on the command line."
+(defcustom rlogin-explicit-args '("-t" "-t")
+  "List of arguments to pass to `rlogin-program' on the command line."
+  :version "24.4"                       ; nil -> -t -t
   :type '(repeat (string :tag "Argument"))
   :group 'rlogin)
 
 (defcustom rlogin-process-connection-type
   ;; Solaris 2.x `rlogin' will spew a bunch of ioctl error messages if
   ;; stdin isn't a tty.
-  (and (string-match-p "-solaris2" system-configuration) t)
+  (and (string-match "rlogin" rlogin-program)
+       (string-match-p "-solaris2" system-configuration) t)
   "If non-nil, use a pty for the local rlogin process.
 If nil, use a pipe (if pipes are supported on the local system).
 
 Generally it is better not to waste ptys on systems which have a static
 number of them.  On the other hand, some implementations of `rlogin' assume
 a pty is being used, and errors will result from using a pipe instead."
+  :set-after '(rlogin-program)
   :type '(choice (const :tag "pipes" nil)
                 (other :tag "ptys" t))
   :group 'rlogin)
@@ -98,7 +107,7 @@ re-synching of directories."
 (make-variable-buffer-local 'rlogin-directory-tracking-mode)
 
 (defcustom rlogin-host nil
-  "The name of the remote host.  This variable is buffer-local."
+  "The name of the default remote host.  This variable is buffer-local."
   :type '(choice (const nil) string)
   :group 'rlogin)
 
@@ -114,19 +123,17 @@ this variable is set from that."
   (let ((map (if (consp shell-mode-map)
                  (cons 'keymap shell-mode-map)
                (copy-keymap shell-mode-map))))
-    (define-key rlogin-mode-map "\C-c\C-c" 'rlogin-send-Ctrl-C)
-    (define-key rlogin-mode-map "\C-c\C-d" 'rlogin-send-Ctrl-D)
-    (define-key rlogin-mode-map "\C-c\C-z" 'rlogin-send-Ctrl-Z)
-    (define-key rlogin-mode-map "\C-c\C-\\" 'rlogin-send-Ctrl-backslash)
-    (define-key rlogin-mode-map "\C-d" 'rlogin-delchar-or-send-Ctrl-D)
-    (define-key rlogin-mode-map "\C-i" 'rlogin-tab-or-complete)
+    (define-key map "\C-c\C-c" 'rlogin-send-Ctrl-C)
+    (define-key map "\C-c\C-d" 'rlogin-send-Ctrl-D)
+    (define-key map "\C-c\C-z" 'rlogin-send-Ctrl-Z)
+    (define-key map "\C-c\C-\\" 'rlogin-send-Ctrl-backslash)
+    (define-key map "\C-d" 'rlogin-delchar-or-send-Ctrl-D)
+    (define-key map "\C-i" 'rlogin-tab-or-complete)
     map)
   "Keymap for `rlogin-mode'.")
 
 
 \f
-;;;###autoload (add-hook 'same-window-regexps (purecopy "^\\*rlogin-.*\\*\\(\\|<[0-9]+>\\)"))
-
 (defvar rlogin-history nil)
 
 ;;;###autoload
@@ -138,7 +145,7 @@ other arguments for `rlogin'.
 Input is sent line-at-a-time to the remote connection.
 
 Communication with the remote host is recorded in a buffer `*rlogin-HOST*'
-\(or `*rlogin-USER@HOST*' if the remote username differs\).
+\(or `*rlogin-USER@HOST*' if the remote username differs).
 If a prefix argument is given and the buffer `*rlogin-HOST*' already exists,
 a new buffer with a different connection will be made.
 
@@ -167,7 +174,9 @@ If you wish to change directory tracking styles during a session, use the
 function `rlogin-directory-tracking-mode' rather than simply setting the
 variable."
   (interactive (list
-               (read-from-minibuffer "rlogin arguments (hostname first): "
+               (read-from-minibuffer (format-message
+                                       "Arguments for `%s' (hostname first): "
+                                       (file-name-nondirectory rlogin-program))
                                      nil nil nil 'rlogin-history)
                current-prefix-arg))
   (let* ((process-connection-type rlogin-process-connection-type)
@@ -196,7 +205,7 @@ variable."
           (t
            (setq buffer-name (generate-new-buffer-name buffer-name))))
     (setq buffer (get-buffer-create buffer-name))
-    (pop-to-buffer buffer-name)
+    (switch-to-buffer buffer-name)
     (unless (comint-check-proc buffer-name)
       (comint-exec buffer buffer-name rlogin-program nil args)
       (rlogin-mode)
@@ -226,14 +235,14 @@ variable."
   "Do remote or local directory tracking, or disable entirely.
 
 If called with no prefix argument or a unspecified prefix argument (just
-``\\[universal-argument]'' with no number) do remote directory tracking via
+`\\[universal-argument]' with no number) do remote directory tracking via
 ange-ftp.  If called as a function, give it no argument.
 
 If called with a negative prefix argument, disable directory tracking
 entirely.
 
 If called with a positive, numeric prefix argument, e.g.
-``\\[universal-argument] 1 M-x rlogin-directory-tracking-mode\'',
+`\\[universal-argument] 1 M-x rlogin-directory-tracking-mode',
 then do directory tracking but assume the remote filesystem is the same as
 the local system.  This only works in general if the remote machine and the
 local one share the same directories (e.g. through NFS)."
@@ -299,7 +308,7 @@ local one share the same directories (e.g. through NFS)."
   "Complete file name if doing directory tracking, or just insert TAB."
   (interactive)
   (if rlogin-directory-tracking-mode
-      (comint-dynamic-complete)
+      (completion-at-point)
     (insert "\C-i")))
 
 (provide 'rlogin)