]> code.delx.au - gnu-emacs/blobdiff - lisp/rlogin.el
(comint-postoutput-scroll-to-bottom): Cope with unset
[gnu-emacs] / lisp / rlogin.el
index fd27a93638a2f7962b84099fd51fb8b0cacbc406..04cea26cdfc8b812dd7ace46652c04668f1657ca 100644 (file)
@@ -6,6 +6,8 @@
 ;; Maintainer: Noah Friedman <friedman@prep.ai.mit.edu>
 ;; Keywords: unix, comm
 
+;; $Id: rlogin.el,v 1.41 1998/03/14 04:46:55 rms Exp $
+
 ;; This file is part of GNU Emacs.
 
 ;; GNU Emacs is free software; you can redistribute it and/or modify
@@ -23,8 +25,6 @@
 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 ;; Boston, MA 02111-1307, USA.
 
-;; $Id: rlogin.el,v 1.36 1997/04/12 02:53:36 rms Exp rms $
-
 ;;; Commentary:
 
 ;; Support for remote logins using `rlogin'.
   :type 'hook
   :group 'rlogin)
 
-(defcustom rlogin-process-connection-type nil
+(defcustom rlogin-process-connection-type
+  (save-match-data
+    ;; Solaris 2.x `rlogin' will spew a bunch of ioctl error messages if
+    ;; stdin isn't a tty.
+    (cond ((and (boundp 'system-configuration)
+                (stringp system-configuration)
+                (string-match "-solaris2" system-configuration))
+           t)
+          (t nil)))
   "*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."
-  :type '(choice (const :tag "ptys" t)
-                (const :tag "pipes" nil))
+  :type '(choice (const :tag "pipes" nil)
+                (other :tag "ptys" t))
   :group 'rlogin)
 
 (defcustom rlogin-directory-tracking-mode 'local
@@ -93,7 +101,7 @@ simply setting this variable, since the function does the necessary
 re-synching of directories."
   :type '(choice (const :tag "off" nil)
                 (const :tag "ftp" t)
-                (const :tag "local" local))
+                (other :tag "local" local))
   :group 'rlogin)
 
 (make-variable-buffer-local 'rlogin-directory-tracking-mode)
@@ -237,6 +245,8 @@ variable."
                  (cd-absolute (concat comint-file-name-prefix "~/"))))
         (error nil))))))
 
+(put 'rlogin-mode 'mode-class 'special)
+
 (defun rlogin-mode ()
   "Set major-mode for rlogin sessions.
 If `rlogin-mode-hook' is set, run it."
@@ -310,7 +320,7 @@ local one share the same directories (through NFS)."
       (setq list (cons (substring line (match-beginning 0) (match-end 0))
                        list))
       (setq posn (match-end 0)))
-    (store-match-data (match-data))
+    (set-match-data (match-data))
     (nreverse list)))
 
 (defun rlogin-carriage-filter (string)
@@ -355,4 +365,6 @@ Delete ARG characters forward, or send a C-d to process if at end of buffer."
       (comint-dynamic-complete)
     (insert "\C-i")))
 
+(provide 'rlogin)
+
 ;;; rlogin.el ends here