GNU bug report logs -
#8147
24.0.50; Inserting *Help* buffer can lead to data loss
Previous Next
Reported by: Stephen Berman <stephen.berman <at> gmx.net>
Date: Tue, 1 Mar 2011 16:03:02 UTC
Severity: normal
Found in version 24.0.50
Done: Chong Yidong <cyd <at> stupidchicken.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
On Sun, 06 Mar 2011 01:24:27 +0100 Stephen Berman <stephen.berman <at> gmx.net> wrote:
> On Sat, 05 Mar 2011 16:10:20 -0500 Chong Yidong <cyd <at> stupidchicken.com> wrote:
>
>> Stefan Monnier <monnier <at> iro.umontreal.ca> writes:
>>
>>>> I reported this problem to emacs-devel in May 2008 (see
>>>> http://thread.gmane.org/gmane.emacs.devel/97367/) and there were a few
>>>> ideas about how to deal with it, but none were pursued. I just got bit
>>>> by it again -- more fool me, perhaps, but it gives me the opportunity to
>>>> put it in the bug tracker. And I offer a fix to the immediate problem
>>>
>>> Maybe another approach is for those buttons to check that the current
>>> buffer is (derived-mode-p 'help-mode) before reusing it.
>>
>> I've committed just such a change.
>
> I just tested this with the doc string of help-buffer in *Help*. There
> are two links in this doc string: clicking on `help-xref-following'
> shows the error message "Current buffer is not in Help mode", which is
> certainly better than overwriting the content of the buffer; but
> clicking on `help-mode.el' finds that file and puts point on the
> beginning of help-buffer's definition, i.e., still does what this kind
> of link has always done. It is confusing to have this divergence in
> behavior between the two kinds of links. Instead of signalling an
> error, couldn't the help-xref-following buttons just show the help in
> the *Help* buffer, as in the following patch?
Sorry, that should have been a patch against the version with your
patch:
*** /data/steve/bzr/emacs/trunk/lisp/help-mode.el 2011-03-06 17:31:58.000000000 +0100
--- /data/steve/bzr/emacs/quickfixes/lisp/help-mode.el 2011-03-06 01:13:36.000000000 +0100
***************
*** 408,424 ****
;;;###autoload
(defun help-buffer ()
"Return the name of a buffer for inserting help.
! If `help-xref-following' is non-nil, this is the name of the
! current buffer. Signal an error if this buffer is not derived
! from `help-mode'.
Otherwise, return \"*Help*\", creating a buffer with that name if
it does not already exist."
(buffer-name ;for with-output-to-temp-buffer
! (if (not help-xref-following)
! (get-buffer-create "*Help*")
! (unless (derived-mode-p 'help-mode)
! (error "Current buffer is not in Help mode"))
! (current-buffer))))
(defvar help-xref-override-view-map
(let ((map (make-sparse-keymap)))
--- 408,422 ----
;;;###autoload
(defun help-buffer ()
"Return the name of a buffer for inserting help.
! If `help-xref-following' is non-nil and the current buffer is
! derived from `help-mode', this is the name of the current buffer.
Otherwise, return \"*Help*\", creating a buffer with that name if
it does not already exist."
(buffer-name ;for with-output-to-temp-buffer
! (if (and help-xref-following
! (derived-mode-p 'help-mode))
! (current-buffer)
! (get-buffer-create "*Help*"))))
(defvar help-xref-override-view-map
(let ((map (make-sparse-keymap)))
Steve Berman
This bug report was last modified 14 years and 136 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.