From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stephen Berman Newsgroups: gmane.emacs.bugs Subject: bug#8147: 24.0.50; Inserting *Help* buffer can lead to data loss Date: Sun, 06 Mar 2011 01:24:27 +0100 Message-ID: <878vwtt7t0.fsf@escher.fritz.box> References: <8762s2akxq.fsf@escher.fritz.box> <87oc5pff43.fsf@stupidchicken.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1299371833 19085 80.91.229.12 (6 Mar 2011 00:37:13 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sun, 6 Mar 2011 00:37:13 +0000 (UTC) Cc: 8147@debbugs.gnu.org To: Chong Yidong Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Mar 06 01:37:09 2011 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Pw1y8-0004VK-Hx for geb-bug-gnu-emacs@m.gmane.org; Sun, 06 Mar 2011 01:37:08 +0100 Original-Received: from localhost ([127.0.0.1]:35759 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Pw1y7-0000on-RF for geb-bug-gnu-emacs@m.gmane.org; Sat, 05 Mar 2011 19:37:07 -0500 Original-Received: from [140.186.70.92] (port=58930 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Pw1xu-0000ml-Pn for bug-gnu-emacs@gnu.org; Sat, 05 Mar 2011 19:36:55 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Pw1xt-00010K-29 for bug-gnu-emacs@gnu.org; Sat, 05 Mar 2011 19:36:54 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:36668) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Pw1xt-00010G-0m for bug-gnu-emacs@gnu.org; Sat, 05 Mar 2011 19:36:53 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1Pw1mQ-0004TB-40; Sat, 05 Mar 2011 19:25:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Stephen Berman Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 06 Mar 2011 00:25:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 8147 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 8147-submit@debbugs.gnu.org id=B8147.129937108117146 (code B ref 8147); Sun, 06 Mar 2011 00:25:02 +0000 Original-Received: (at 8147) by debbugs.gnu.org; 6 Mar 2011 00:24:41 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Pw1m3-0004SV-VH for submit@debbugs.gnu.org; Sat, 05 Mar 2011 19:24:40 -0500 Original-Received: from mailout-de.gmx.net ([213.165.64.22]) by debbugs.gnu.org with smtp (Exim 4.69) (envelope-from ) id 1Pw1m0-0004SG-LL for 8147@debbugs.gnu.org; Sat, 05 Mar 2011 19:24:38 -0500 Original-Received: (qmail invoked by alias); 06 Mar 2011 00:24:29 -0000 Original-Received: from i59F55DC0.versanet.de (EHLO escher.home) [89.245.93.192] by mail.gmx.net (mp016) with SMTP; 06 Mar 2011 01:24:29 +0100 X-Authenticated: #20778731 X-Provags-ID: V01U2FsdGVkX1/a7tArAAPa3pdt7UXG+awZBdKYREQYJ3/vReVhJ3 DJ30ChFlVveiae Original-Received: by escher.home (Postfix, from userid 1000) id EEDC16336E; Sun, 6 Mar 2011 01:24:27 +0100 (CET) In-Reply-To: <87oc5pff43.fsf@stupidchicken.com> (Chong Yidong's message of "Sat, 05 Mar 2011 16:10:20 -0500") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) X-Y-GMX-Trusted: 0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Sat, 05 Mar 2011 19:25:02 -0500 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:44678 Archived-At: On Sat, 05 Mar 2011 16:10:20 -0500 Chong Yidong wrote: > Stefan Monnier 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? *** /data/steve/bzr/emacs/trunk/lisp/help-mode.el 2011-02-23 15:11:01.000000000 +0100 --- /data/steve/bzr/emacs/quickfixes/lisp/help-mode.el 2011-03-06 01:13:36.000000000 +0100 *************** *** 408,419 **** ;;;###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. ! Otherwise, it is *Help*; if no buffer with that name currently ! exists, it is created." (buffer-name ;for with-output-to-temp-buffer ! (if help-xref-following (current-buffer) (get-buffer-create "*Help*")))) --- 408,420 ---- ;;;###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*")))) Steve Berman