diff options
| author | Richard M. Stallman | 1999-07-09 02:32:02 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1999-07-09 02:32:02 +0000 |
| commit | db7fa396bda9d18bddf9732826f53b52fa2203e9 (patch) | |
| tree | 1e243a54ecef8dd8d9d9e6c06373c46500d434c4 | |
| parent | 340fe109c9367d147ae56aadb9e8af04a66bac5f (diff) | |
| download | emacs-db7fa396bda9d18bddf9732826f53b52fa2203e9.tar.gz emacs-db7fa396bda9d18bddf9732826f53b52fa2203e9.zip | |
(term-emulate-terminal): Avoid infinite loop
in strange case where minibuffer window is selected but not active.
| -rw-r--r-- | lisp/term.el | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lisp/term.el b/lisp/term.el index ac6201c8b33..262686cf9f2 100644 --- a/lisp/term.el +++ b/lisp/term.el | |||
| @@ -2700,6 +2700,7 @@ See `term-prompt-regexp'." | |||
| 2700 | (let* ((previous-buffer (current-buffer)) | 2700 | (let* ((previous-buffer (current-buffer)) |
| 2701 | (i 0) char funny count save-point save-marker old-point temp win | 2701 | (i 0) char funny count save-point save-marker old-point temp win |
| 2702 | (selected (selected-window)) | 2702 | (selected (selected-window)) |
| 2703 | last-win | ||
| 2703 | (str-length (length str))) | 2704 | (str-length (length str))) |
| 2704 | (unwind-protect | 2705 | (unwind-protect |
| 2705 | (progn | 2706 | (progn |
| @@ -2957,6 +2958,11 @@ See `term-prompt-regexp'." | |||
| 2957 | ;; Scroll each window displaying the buffer but (by default) | 2958 | ;; Scroll each window displaying the buffer but (by default) |
| 2958 | ;; only if the point matches the process-mark we started with. | 2959 | ;; only if the point matches the process-mark we started with. |
| 2959 | (setq win selected) | 2960 | (setq win selected) |
| 2961 | ;; Avoid infinite loop in strange case where minibuffer window | ||
| 2962 | ;; is selected but not active. | ||
| 2963 | (while (window-minibuffer-p win) | ||
| 2964 | (setq win (next-window win nil t))) | ||
| 2965 | (setq last-win win) | ||
| 2960 | (while (progn | 2966 | (while (progn |
| 2961 | (setq win (next-window win nil t)) | 2967 | (setq win (next-window win nil t)) |
| 2962 | (if (eq (window-buffer win) (process-buffer proc)) | 2968 | (if (eq (window-buffer win) (process-buffer proc)) |
| @@ -2982,7 +2988,7 @@ See `term-prompt-regexp'." | |||
| 2982 | (save-excursion | 2988 | (save-excursion |
| 2983 | (goto-char (point-max)) | 2989 | (goto-char (point-max)) |
| 2984 | (recenter -1))))) | 2990 | (recenter -1))))) |
| 2985 | (not (eq win selected)))) | 2991 | (not (eq win last-win)))) |
| 2986 | 2992 | ||
| 2987 | ;;; Stolen from comint.el and adapted -mm | 2993 | ;;; Stolen from comint.el and adapted -mm |
| 2988 | (if (> term-buffer-maximum-size 0) | 2994 | (if (> term-buffer-maximum-size 0) |