diff options
| author | root | 1991-01-11 19:38:45 +0000 |
|---|---|---|
| committer | root | 1991-01-11 19:38:45 +0000 |
| commit | 88c269cbd1dac8db7c0a3f9d3e70698eed07516e (patch) | |
| tree | d6b917fc13dec4b33de923f6eba493a5827e024b | |
| parent | f3a0bf5c13cba5aeca0947fa8c28803adb1e25d2 (diff) | |
| download | emacs-88c269cbd1dac8db7c0a3f9d3e70698eed07516e.tar.gz emacs-88c269cbd1dac8db7c0a3f9d3e70698eed07516e.zip | |
*** empty log message ***
| -rw-r--r-- | lisp/ehelp.el | 89 |
1 files changed, 39 insertions, 50 deletions
diff --git a/lisp/ehelp.el b/lisp/ehelp.el index 48c6c5b1692..37cd37944c1 100644 --- a/lisp/ehelp.el +++ b/lisp/ehelp.el | |||
| @@ -72,56 +72,45 @@ buffer's window disappears (ie we use save-window-excursion) | |||
| 72 | BUFFER is put into default-major-mode (or fundamental-mode) when we exit" | 72 | BUFFER is put into default-major-mode (or fundamental-mode) when we exit" |
| 73 | (setq buffer (get-buffer-create (or buffer "*Help*"))) | 73 | (setq buffer (get-buffer-create (or buffer "*Help*"))) |
| 74 | (let ((one (one-window-p t)) | 74 | (let ((one (one-window-p t)) |
| 75 | (two nil)) | 75 | (config (current-window-configuration)) |
| 76 | (save-window-excursion | 76 | (bury nil)) |
| 77 | (save-excursion | 77 | (unwind-protect |
| 78 | (if one (goto-char (window-start (selected-window)))) | 78 | (save-excursion |
| 79 | (let ((pop-up-windows t)) | 79 | (if one (goto-char (window-start (selected-window)))) |
| 80 | (pop-to-buffer buffer)) | 80 | (let ((pop-up-windows t)) |
| 81 | (unwind-protect | 81 | (pop-to-buffer buffer)) |
| 82 | (progn | 82 | (save-excursion |
| 83 | (save-excursion | 83 | (set-buffer buffer) |
| 84 | (set-buffer buffer) | 84 | (electric-help-mode) |
| 85 | (electric-help-mode) | 85 | (setq buffer-read-only nil) |
| 86 | (setq buffer-read-only nil) | 86 | (or noerase (erase-buffer))) |
| 87 | (or noerase (erase-buffer))) | 87 | (let ((standard-output buffer)) |
| 88 | (let ((standard-output buffer)) | 88 | (if (not (funcall thunk)) |
| 89 | (if (funcall thunk) | 89 | (progn |
| 90 | () | 90 | (set-buffer buffer) |
| 91 | (set-buffer buffer) | 91 | (set-buffer-modified-p nil) |
| 92 | (set-buffer-modified-p nil) | 92 | (goto-char (point-min)) |
| 93 | (goto-char (point-min)) | 93 | (if one (shrink-window-if-larger-than-buffer (selected-window)))))) |
| 94 | (if one (shrink-window-if-larger-than-buffer (selected-window))))) | 94 | (set-buffer buffer) |
| 95 | (set-buffer buffer) | 95 | (run-hooks 'electric-help-mode-hook) |
| 96 | (run-hooks 'electric-help-mode-hook) | 96 | (if (eq (car-safe (electric-help-command-loop)) |
| 97 | (setq two (electric-help-command-loop)) | 97 | 'retain) |
| 98 | (cond ((eq (car-safe two) 'retain) | 98 | (setq config (current-window-configuration)) |
| 99 | (setq two (vector (window-height (selected-window)) | 99 | (setq bury t))) |
| 100 | (window-start (selected-window)) | 100 | (message "") |
| 101 | (window-hscroll (selected-window)) | 101 | (set-buffer buffer) |
| 102 | (point)))) | 102 | (setq buffer-read-only nil) |
| 103 | (t (setq two nil)))) | 103 | (condition-case () |
| 104 | 104 | (funcall (or default-major-mode 'fundamental-mode)) | |
| 105 | (message "") | 105 | (error nil)) |
| 106 | (set-buffer buffer) | 106 | (set-window-configuration config) |
| 107 | (setq buffer-read-only nil) | 107 | (if bury |
| 108 | (condition-case () | 108 | (progn |
| 109 | (funcall (or default-major-mode 'fundamental-mode)) | 109 | ;;>> Perhaps this shouldn't be done. |
| 110 | (error nil))))) | 110 | ;; so that when we say "Press space to bury" we mean it |
| 111 | (if two | 111 | (replace-buffer-in-windows buffer) |
| 112 | (let ((pop-up-windows t) | 112 | ;; must do this outside of save-window-excursion |
| 113 | tem) | 113 | (bury-buffer buffer)))))) |
| 114 | (pop-to-buffer buffer) | ||
| 115 | (setq tem (- (window-height (selected-window)) (elt two 0))) | ||
| 116 | (if (> tem 0) (shrink-window tem)) | ||
| 117 | (set-window-start (selected-window) (elt two 1) t) | ||
| 118 | (set-window-hscroll (selected-window) (elt two 2)) | ||
| 119 | (goto-char (elt two 3))) | ||
| 120 | ;;>> Perhaps this shouldn't be done. | ||
| 121 | ;; so that when we say "Press space to bury" we mean it | ||
| 122 | (replace-buffer-in-windows buffer) | ||
| 123 | ;; must do this outside of save-window-excursion | ||
| 124 | (bury-buffer buffer)))) | ||
| 125 | 114 | ||
| 126 | (defun electric-help-command-loop () | 115 | (defun electric-help-command-loop () |
| 127 | (catch 'exit | 116 | (catch 'exit |