From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.bugs Subject: bug#6454: 24.0.50; kill-buffer switches current-buffer Date: Mon, 21 Jun 2010 12:46:05 +0200 Message-ID: <4C1F42ED.8010404@gmx.at> References: <4C1CC855.4060508@gmx.at> <4C1DF080.2030203@gmx.at> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-Trace: dough.gmane.org 1277117963 25301 80.91.229.12 (21 Jun 2010 10:59:23 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Mon, 21 Jun 2010 10:59:23 +0000 (UTC) Cc: 6454@debbugs.gnu.org To: Helmut Eller Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Jun 21 12:59:15 2010 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 1OQeig-0006Sr-Dm for geb-bug-gnu-emacs@m.gmane.org; Mon, 21 Jun 2010 12:59:14 +0200 Original-Received: from localhost ([127.0.0.1]:38438 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OQeiZ-0000jm-KU for geb-bug-gnu-emacs@m.gmane.org; Mon, 21 Jun 2010 06:59:07 -0400 Original-Received: from [140.186.70.92] (port=40044 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OQeiQ-0000jg-RZ for bug-gnu-emacs@gnu.org; Mon, 21 Jun 2010 06:58:59 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OQeiP-0004cp-PR for bug-gnu-emacs@gnu.org; Mon, 21 Jun 2010 06:58:58 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:48574) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OQeiP-0004ci-Lo for bug-gnu-emacs@gnu.org; Mon, 21 Jun 2010 06:58:57 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1OQeWs-0002eP-CL; Mon, 21 Jun 2010 06:47:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: martin rudalics Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 21 Jun 2010 10:47:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 6454 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 6454-submit@debbugs.gnu.org id=B6454.127711717910172 (code B ref 6454); Mon, 21 Jun 2010 10:47:02 +0000 Original-Received: (at 6454) by debbugs.gnu.org; 21 Jun 2010 10:46:19 +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 1OQeWA-0002e1-Uq for submit@debbugs.gnu.org; Mon, 21 Jun 2010 06:46:19 -0400 Original-Received: from mail.gmx.net ([213.165.64.20]) by debbugs.gnu.org with smtp (Exim 4.69) (envelope-from ) id 1OQeW7-0002dw-1G for 6454@debbugs.gnu.org; Mon, 21 Jun 2010 06:46:16 -0400 Original-Received: (qmail invoked by alias); 21 Jun 2010 10:46:08 -0000 Original-Received: from 62-47-46-52.adsl.highway.telekom.at (EHLO [62.47.46.52]) [62.47.46.52] by mail.gmx.net (mp069) with SMTP; 21 Jun 2010 12:46:08 +0200 X-Authenticated: #14592706 X-Provags-ID: V01U2FsdGVkX192SUtVj7t2HVvmNCE11XJkYgLQAzmOLqi/VBzI5H HPMrWo21Jmxfnz User-Agent: Thunderbird 2.0.0.21 (Windows/20090302) In-Reply-To: X-Y-GMX-Trusted: 0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Mon, 21 Jun 2010 06:47:02 -0400 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) 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:37925 Archived-At: > Below are two patches. The first essentially adds a save-excursion > around the whole function. > > The second patch adds a function run_hook_in_buffer. It iterates over > the functions in the hook and for each function explicitly sets the > buffer before calling it. I had to introduce a new macro > DO_HOOK_FUNCTIONS which is a big hammer for this, but I couldn't find a > better way. Thanks. I applied them here and will run them for a while to see whether and what they change. BTW run_window_scroll_functions in xdisp.c has run_hook_with_args_2 (Qwindow_scroll_functions, window, make_number (CHARPOS (startp))); SET_TEXT_POS_FROM_MARKER (startp, w->start); /* In case the hook functions switch buffers. */ if (current_buffer != XBUFFER (w->buffer)) set_buffer_internal_1 (XBUFFER (w->buffer)); so with your patch this is probably no more needed? Now, when a function run by a hook wants to change the current buffer it cannot do so any more. Admittedly this was unreliable before so we probably won't lose much ... martin