]> code.delx.au - gnu-emacs/blobdiff - lisp/telnet.el
(flyspell-mode-on): fix kill-buffer-hook
[gnu-emacs] / lisp / telnet.el
index 034c0341a6f2a7c6565a57260dd36e50b35c5af6..2bb605332aabc24af39d6f7d6112c7f1ead87f8d 100644 (file)
@@ -131,20 +131,22 @@ rejecting one login and prompting again for a username and password.")
 
 (defun telnet-initial-filter (proc string)
   ;For reading up to and including password; also will get machine type.
-  (let ((case-fold-search t))
-    (cond ((string-match "No such host" string)
-          (kill-buffer (process-buffer proc))
-          (error "No such host"))
-         ((string-match "passw" string)
-          (telnet-filter proc string)
-          (setq telnet-count 0)
-          (send-string proc (concat (comint-read-noecho "Password: " t)
-                                    telnet-new-line)))
-         (t (telnet-check-software-type-initialize string)
+  (save-current-buffer
+    (set-buffer (process-buffer proc))
+    (let ((case-fold-search t))
+      (cond ((string-match "No such host" string)
+            (kill-buffer (process-buffer proc))
+            (error "No such host"))
+           ((string-match "passw" string)
             (telnet-filter proc string)
-            (cond ((> telnet-count telnet-maximum-count)
-                   (set-process-filter proc 'telnet-filter))
-                  (t (setq telnet-count (1+ telnet-count))))))))
+            (setq telnet-count 0)
+            (send-string proc (concat (comint-read-noecho "Password: " t)
+                                      telnet-new-line)))
+           (t (telnet-check-software-type-initialize string)
+              (telnet-filter proc string)
+              (cond ((> telnet-count telnet-maximum-count)
+                     (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".
@@ -163,6 +165,7 @@ rejecting one login and prompting again for a username and password.")
           (ws (and w (window-start w))))
       (goto-char last-insertion)
       (insert-before-markers string)
+      (set-marker comint-last-output-start last-insertion)
       (set-marker (process-mark proc) (point))
       (if ws (set-window-start w ws t))
       (if ie (set-marker comint-last-input-end ie))