]> code.delx.au - gnu-emacs/blobdiff - lisp/telnet.el
Fix typo in previous change.
[gnu-emacs] / lisp / telnet.el
index d115f3e4326caf18ad42bfdb75e1d9f569e0aa0c..4422c17032d381222f13bb43ed885d481972f720 100644 (file)
@@ -132,6 +132,12 @@ rejecting one login and prompting for the again for a username and password.")
                  (set-process-filter proc 'telnet-filter))
                 (t (setq telnet-count (1+ telnet-count)))))))
 
+;; Identical to comint-simple-send, except that it sends telnet-new-line
+;; instead of "\n".
+(defun telnet-simple-send (proc string)
+  (comint-send-string proc string)
+  (comint-send-string proc telnet-new-line))
+
 (defun telnet-filter (proc string)
   (let ((at-end
         (and (eq (process-buffer proc) (current-buffer))
@@ -165,20 +171,24 @@ rejecting one login and prompting for the again for a username and password.")
                     comint-last-input-end)))
 
 ;;;###autoload
-(defun telnet (arg)
+(defun telnet (host)
   "Open a network login connection to host named HOST (a string).
 Communication with HOST is recorded in a buffer *HOST-telnet*.
 Normally input is edited in Emacs and sent a line at a time."
   (interactive "sOpen telnet connection to host: ")
-  (let ((name (concat arg "-telnet" )))
-    (switch-to-buffer (make-comint name "telnet"))
-    (set-process-filter (get-process name) 'telnet-initial-filter)
-    ;; Don't send the `open' cmd till telnet is ready for it.
-    (accept-process-output (get-process name))
-    (erase-buffer)
-    (send-string  name (concat "open " arg "\n"))
-    (telnet-mode)
-    (setq telnet-count telnet-initial-count)))
+  (let* ((name (concat host "-telnet" ))
+        (buffer (get-buffer (concat "*" name "*"))))
+    (if (and buffer (get-buffer-process buffer))
+       (switch-to-buffer (concat "*" name "*"))
+      (switch-to-buffer (make-comint name "telnet"))
+      (set-process-filter (get-process name) 'telnet-initial-filter)
+      ;; Don't send the `open' cmd till telnet is ready for it.
+      (accept-process-output (get-process name))
+      (erase-buffer)
+      (send-string  name (concat "open " host "\n"))
+      (telnet-mode)
+      (setq comint-input-sender 'telnet-simple-send)
+      (setq telnet-count telnet-initial-count))))
 
 (defun telnet-mode ()
   "This mode is for using telnet (or rsh) from a buffer to another host.
@@ -198,13 +208,13 @@ Data is sent to the remote host when RET is typed.
   (run-hooks 'telnet-mode-hook))
 
 ;;;###autoload
-(defun rsh (arg)
+(defun rsh (host)
   "Open a network login connection to host named HOST (a string).
 Communication with HOST is recorded in a buffer *HOST-rsh*.
 Normally input is edited in Emacs and sent a line at a time."
   (interactive "sOpen rsh connection to host: ")
   (require 'shell)
-  (let ((name (concat arg "-rsh" )))
+  (let ((name (concat host "-rsh" )))
     (switch-to-buffer (make-comint name "rsh"))
     (set-process-filter (get-process name) 'telnet-initial-filter)
     (telnet-mode)