(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))
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.
(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)