[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: confusing info in C-u C-x =
From: |
Juri Linkov |
Subject: |
Re: confusing info in C-u C-x = |
Date: |
Fri, 09 Dec 2005 11:57:38 +0200 |
User-agent: |
Gnus/5.110004 (No Gnus v0.4) Emacs/22.0.50 (gnu/linux) |
> I've just installed two changes to fix it.
>
> (1) Use *Help-2* buffer if the current buffer is *Help*.
> The function describe-text-properties already does it.
*Help-2* is not handled correctly when same-window-regexps
contains the standard regexp to handle buffers with similar names:
"\\*Help\\*\\(\\|<[0-9]+>\\)".
I propose using (generate-new-buffer-name "*Help*") in both functions
to generate the standard unique names like *Help*<2>.
Also the *Help* buffer created by `describe-char' misses "[back]"
button. It is too bad because it loses the stack of visited
Help items. The patch below adds "[back]" button without putting
the `describe-char' item to the help stack, because there is no
reliable way to recreate the Help buffer for `describe-char'.
Its argument is `pos', but this position and buffer may not exist
when the Help buffer for `describe-char' is recreated later after
returning from its next Help item's buffer.
There is one problem with having "[back]" button in describe-text-mode.
TAB can't navigate to it. But this is minor disadvantage because
RET still works on it.
Index: lisp/descr-text.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/descr-text.el,v
retrieving revision 1.43
diff -c -r1.43 descr-text.el
*** lisp/descr-text.el 8 Dec 2005 01:38:50 -0000 1.43
--- lisp/descr-text.el 9 Dec 2005 09:55:57 -0000
***************
*** 160,166 ****
(let ((buffer (current-buffer))
(target-buffer "*Help*"))
(when (eq buffer (get-buffer target-buffer))
! (setq target-buffer "*Help-2*"))
(save-excursion
(with-output-to-temp-buffer target-buffer
(set-buffer standard-output)
--- 160,166 ----
(let ((buffer (current-buffer))
(target-buffer "*Help*"))
(when (eq buffer (get-buffer target-buffer))
! (setq target-buffer (generate-new-buffer-name "*Help*")))
(save-excursion
(with-output-to-temp-buffer target-buffer
(set-buffer standard-output)
***************
*** 466,472 ****
(char-to-string char)))))
(orig-buf (current-buffer))
(help-buf (if (eq orig-buf (get-buffer "*Help*"))
! "*Help-2*" "*Help*"))
item-list max-width unicode)
(if (or (< char 256)
--- 466,473 ----
(char-to-string char)))))
(orig-buf (current-buffer))
(help-buf (if (eq orig-buf (get-buffer "*Help*"))
! (generate-new-buffer-name "*Help*")
! "*Help*"))
item-list max-width unicode)
(if (or (< char 256)
***************
*** 621,626 ****
--- 622,629 ----
item-list)))
(with-output-to-temp-buffer help-buf
(with-current-buffer standard-output
+ (let ((help-xref-following t))
+ (help-setup-xref nil nil))
(set-buffer-multibyte multibyte-p)
(let ((formatter (format "%%%ds:" max-width)))
(dolist (elt item-list)
***************
*** 725,731 ****
(save-excursion
(set-buffer orig-buf)
(describe-text-properties pos help-buf))
! (describe-text-mode)))))
(defalias 'describe-char-after 'describe-char)
(make-obsolete 'describe-char-after 'describe-char "22.1")
--- 728,737 ----
(save-excursion
(set-buffer orig-buf)
(describe-text-properties pos help-buf))
! (describe-text-mode)
! (toggle-read-only 1)
! (help-make-xrefs (current-buffer))
! (print-help-return-message)))))
(defalias 'describe-char-after 'describe-char)
(make-obsolete 'describe-char-after 'describe-char "22.1")
--
Juri Linkov
http://www.jurta.org/emacs/