mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-06 06:20:55 -08:00
* ehelp.el (electric-help-orig-major-mode): New buffer-local variable.
(electric-help-mode): Set it to original major-mode. Doc fix. (with-electric-help): Use `electric-help-orig-major-mode' instead of (default-value 'major-mode). Doc fix. http://lists.gnu.org/archive/html/emacs-devel/2010-04/msg00069.html
This commit is contained in:
parent
dbb5e44a98
commit
9c13a46e07
2 changed files with 23 additions and 6 deletions
|
|
@ -1,3 +1,12 @@
|
|||
2010-04-02 Juri Linkov <juri@jurta.org>
|
||||
|
||||
* ehelp.el (electric-help-orig-major-mode):
|
||||
New buffer-local variable.
|
||||
(electric-help-mode): Set it to original major-mode. Doc fix.
|
||||
(with-electric-help): Use `electric-help-orig-major-mode' instead
|
||||
of (default-value 'major-mode). Doc fix.
|
||||
http://lists.gnu.org/archive/html/emacs-devel/2010-04/msg00069.html
|
||||
|
||||
2010-04-02 Sam Steingold <sds@gnu.org>
|
||||
|
||||
* vc-hg.el (vc-hg-push, vc-hg-pull): Use `apply' when calling
|
||||
|
|
|
|||
|
|
@ -94,10 +94,14 @@
|
|||
map)
|
||||
"Keymap defining commands available in `electric-help-mode'.")
|
||||
|
||||
(defvar electric-help-orig-major-mode nil)
|
||||
(make-variable-buffer-local 'electric-help-orig-major-mode)
|
||||
|
||||
(defun electric-help-mode ()
|
||||
"`with-electric-help' temporarily places its buffer in this mode.
|
||||
\(On exit from `with-electric-help', the buffer is put in default `major-mode'.)"
|
||||
\(On exit from `with-electric-help', the original `major-mode' is restored.)"
|
||||
(setq buffer-read-only t)
|
||||
(setq electric-help-orig-major-mode major-mode)
|
||||
(setq mode-name "Help")
|
||||
(setq major-mode 'help)
|
||||
(setq mode-line-buffer-identification '(" Help: %b"))
|
||||
|
|
@ -131,7 +135,7 @@ If THUNK returns non-nil, we don't do those things.
|
|||
|
||||
When the user exits (with `electric-help-exit', or otherwise), the help
|
||||
buffer's window disappears (i.e., we use `save-window-excursion'), and
|
||||
BUFFER is put into default `major-mode' (or `fundamental-mode')."
|
||||
BUFFER is put back into its original major mode."
|
||||
(setq buffer (get-buffer-create (or buffer "*Help*")))
|
||||
(let ((one (one-window-p t))
|
||||
(config (current-window-configuration))
|
||||
|
|
@ -170,13 +174,17 @@ BUFFER is put into default `major-mode' (or `fundamental-mode')."
|
|||
(set-buffer buffer)
|
||||
(setq buffer-read-only nil)
|
||||
|
||||
;; Restore the original major mode saved by `electric-help-mode'.
|
||||
;; We should really get a usable *Help* buffer when retaining
|
||||
;; the electric one with `r'. The problem is that a simple
|
||||
;; call to help-mode won't cut it; at least RET is bound wrong
|
||||
;; afterwards. It's also not clear that `help-mode' is always
|
||||
;; the right thing, maybe we should add an optional parameter.
|
||||
;; call to `help-mode' won't cut it; e.g. RET is bound wrong
|
||||
;; afterwards (`View-scroll-line-forward' instead of `help-follow').
|
||||
;; That's because Help mode should be set with `with-help-window'
|
||||
;; instead of the direct call to `help-mode'. But at least
|
||||
;; RET works correctly on links after using `help-mode'.
|
||||
;; This is satisfactory enough.
|
||||
(condition-case ()
|
||||
(funcall (or (default-value 'major-mode) 'fundamental-mode))
|
||||
(funcall (or electric-help-orig-major-mode 'fundamental-mode))
|
||||
(error nil))
|
||||
|
||||
(set-window-configuration config)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue