From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.bugs Subject: bug#14191: 24.3.50; (buffer-list) returns list with non-current buffer as its first element Date: Fri, 12 Apr 2013 13:32:58 -0400 Message-ID: References: <87a9p4lygy.fsf@fastmail.fm> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1365787997 6083 80.91.229.3 (12 Apr 2013 17:33:17 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 12 Apr 2013 17:33:17 +0000 (UTC) Cc: 14191-done@debbugs.gnu.org To: Joost Kremers Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Apr 12 19:33:21 2013 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1UQhqi-0005wB-Bw for geb-bug-gnu-emacs@m.gmane.org; Fri, 12 Apr 2013 19:33:20 +0200 Original-Received: from localhost ([::1]:44526 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UQhqh-0003B7-ON for geb-bug-gnu-emacs@m.gmane.org; Fri, 12 Apr 2013 13:33:19 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:34925) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UQhqZ-0003B0-Oq for bug-gnu-emacs@gnu.org; Fri, 12 Apr 2013 13:33:17 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UQhqV-0005I8-3b for bug-gnu-emacs@gnu.org; Fri, 12 Apr 2013 13:33:11 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:43539) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UQhqV-0005I2-0f for bug-gnu-emacs@gnu.org; Fri, 12 Apr 2013 13:33:07 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1UQhuI-0007j1-5a for bug-gnu-emacs@gnu.org; Fri, 12 Apr 2013 13:37:02 -0400 Resent-From: Stefan Monnier Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: bug-gnu-emacs@gnu.org Resent-Date: Fri, 12 Apr 2013 17:37:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: cc-closed 14191 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Mail-Followup-To: 14191@debbugs.gnu.org, monnier@iro.umontreal.ca, joostkremers@fastmail.fm Original-Received: via spool by 14191-done@debbugs.gnu.org id=D14191.136578822029680 (code D ref 14191); Fri, 12 Apr 2013 17:37:01 +0000 Original-Received: (at 14191-done) by debbugs.gnu.org; 12 Apr 2013 17:37:00 +0000 Original-Received: from localhost ([127.0.0.1]:47646 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UQhuG-0007ic-BS for submit@debbugs.gnu.org; Fri, 12 Apr 2013 13:37:00 -0400 Original-Received: from ironport2-out.teksavvy.com ([206.248.154.182]:17383) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UQhuC-0007i3-BH for 14191-done@debbugs.gnu.org; Fri, 12 Apr 2013 13:36:59 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av8EABK/CFFFxIEd/2dsb2JhbABEuzWDWRdzgh8BBScvIxALNBIUGA0kiCTBLZEKA5IgklqBXoMTgUok X-IPAS-Result: Av8EABK/CFFFxIEd/2dsb2JhbABEuzWDWRdzgh8BBScvIxALNBIUGA0kiCTBLZEKA5IgklqBXoMTgUok X-IronPort-AV: E=Sophos;i="4.84,565,1355115600"; d="scan'208";a="7278405" Original-Received: from 69-196-129-29.dsl.teksavvy.com (HELO pastel.home) ([69.196.129.29]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 12 Apr 2013 13:32:56 -0400 Original-Received: by pastel.home (Postfix, from userid 20848) id 0479D67B10; Fri, 12 Apr 2013 13:32:58 -0400 (EDT) In-Reply-To: <87a9p4lygy.fsf@fastmail.fm> (Joost Kremers's message of "Fri, 12 Apr 2013 14:34:05 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x 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: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:73364 Archived-At: > - start Emacs with `emacs -Q' > - M-x ielm RET > - at the prompt, type (buffer-list) [...] > Although the *ielm* buffer is current, the first buffer in the list is > the *scratch* buffer. I've installed the patch below which should restore the old behavior. Thanks for the nice test case. Stefan === modified file 'src/window.c' --- src/window.c 2013-04-11 16:06:47 +0000 +++ src/window.c 2013-04-12 17:30:35 +0000 @@ -489,7 +489,10 @@ Fset_buffer (w->contents); if (EQ (window, selected_window) && !inhibit_point_swap) - return window; + /* `switch-to-buffer' uses (select-window (selected-window)) as a "clever" + way to call record_buffer from Elisp, so it's important that we call + record_buffer before returning here. */ + goto record_and_return; sf = SELECTED_FRAME (); if (XFRAME (WINDOW_FRAME (w)) != sf) @@ -508,7 +511,10 @@ fset_selected_window (sf, window); select_window_1 (window, inhibit_point_swap); + bset_last_selected_window (XBUFFER (w->contents), window); + windows_or_buffers_changed++; + record_and_return: /* record_buffer can run QUIT, so make sure it is run only after we have re-established the invariant between selected_window and selected_frame, otherwise the temporary broken invariant might "escape" (bug#14161). */ @@ -518,8 +524,6 @@ record_buffer (w->contents); } - bset_last_selected_window (XBUFFER (w->contents), window); - windows_or_buffers_changed++; return window; }