emacs-devel
[Top][All Lists]
Advanced

[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/





reply via email to

[Prev in Thread] Current Thread [Next in Thread]