From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.bugs Subject: bug#32850: 27.0.50; window-swap-states doesn't swap window prev/next-buffers Date: Wed, 31 Oct 2018 09:11:31 +0100 Message-ID: <5BD963B3.3080800@gmx.at> References: <875zyrrhk8.fsf@mail.linkov.net> <87zhvcteuy.fsf@mail.linkov.net> <5BC83EE4.8030607@gmx.at> <87h8hig9uw.fsf@mail.linkov.net> <5BC98A5F.5050807@gmx.at> <87ftx0nvoi.fsf@mail.linkov.net> <5BCC374E.603@gmx.at> <87a7n7kz7x.fsf@mail.linkov.net> <5BCD935F.8030309@gmx.at> <87in1szirt.fsf@mail.linkov.net> <5BD03F21.6040807@gmx.at> <87lg6map8e.fsf@mail.linkov.net> <5BD15CE0.7080703@gmx.at> <87va5qf1ox.fsf@mail.linkov.net> <5BD2C4AD.3060402@gmx.at> <87r2gbb85y.fsf@mail.linkov.net> <5BD57AB5.2040105@gmx.at> <87woq2xn22.fsf@mail.linkov.net> <5BD6C86F.9030508@gmx.at> <878t2g74oq.fsf@mail.linkov.net> <5BD81DA2.4020003@gmx.at> <87k1lzruwe.fsf@mail.linkov.net> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Trace: blaine.gmane.org 1540973411 9533 195.159.176.226 (31 Oct 2018 08:10:11 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Wed, 31 Oct 2018 08:10:11 +0000 (UTC) Cc: 32850@debbugs.gnu.org To: Juri Linkov Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Oct 31 09:10:06 2018 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gHlZm-0002Nn-Mf for geb-bug-gnu-emacs@m.gmane.org; Wed, 31 Oct 2018 09:10:06 +0100 Original-Received: from localhost ([::1]:57929 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHlbt-0003EC-0k for geb-bug-gnu-emacs@m.gmane.org; Wed, 31 Oct 2018 04:12:17 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:60808) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHlbk-0003DI-LP for bug-gnu-emacs@gnu.org; Wed, 31 Oct 2018 04:12:09 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gHlbf-0005ie-67 for bug-gnu-emacs@gnu.org; Wed, 31 Oct 2018 04:12:08 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:51973) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gHlbe-0005iM-VV for bug-gnu-emacs@gnu.org; Wed, 31 Oct 2018 04:12:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gHlbe-000375-Q7 for bug-gnu-emacs@gnu.org; Wed, 31 Oct 2018 04:12:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 31 Oct 2018 08:12:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 32850 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 32850-submit@debbugs.gnu.org id=B32850.154097350911939 (code B ref 32850); Wed, 31 Oct 2018 08:12:02 +0000 Original-Received: (at 32850) by debbugs.gnu.org; 31 Oct 2018 08:11:49 +0000 Original-Received: from localhost ([127.0.0.1]:56230 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gHlbR-00036V-0G for submit@debbugs.gnu.org; Wed, 31 Oct 2018 04:11:49 -0400 Original-Received: from mout.gmx.net ([212.227.15.19]:33263) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gHlbP-00036J-OR for 32850@debbugs.gnu.org; Wed, 31 Oct 2018 04:11:48 -0400 Original-Received: from [192.168.1.101] ([213.162.73.82]) by mail.gmx.com (mrgmx003 [212.227.17.190]) with ESMTPSA (Nemesis) id 0MXZbS-1g68MB3m7S-00WWuL; Wed, 31 Oct 2018 09:11:38 +0100 Original-Received: from [192.168.1.101] ([213.162.73.82]) by mail.gmx.com (mrgmx003 [212.227.17.190]) with ESMTPSA (Nemesis) id 0MXZbS-1g68MB3m7S-00WWuL; Wed, 31 Oct 2018 09:11:38 +0100 In-Reply-To: <87k1lzruwe.fsf@mail.linkov.net> X-Provags-ID: V03:K1:hG8aVPAAaX7lIoWVj2/k3pYsYBJvq6UNaEthPgCE0z57qlXzVjk M7HgpVuNmx8XaBkOhCo0LQBPVQYTslPUKxQdrREuGawGBBoVDSTLT0k8bqtDzFO4j6RNVxY XTxQb4tjESRaBCrecm6XRHdHZr1TsVGGSZwFtiu6Tus1IachK+iESqfRmtrwEm7Wek+kcY+ RVXpOPuotQNUBCpaJ5B3Q== X-UI-Out-Filterresults: notjunk:1;V01:K0:pCusgWixVT8=:Vqx1rHgNAPYfj6uxX7IC6B +KSeUGDRigIohd7CTNvntHpvwBKxKpECnUgCukOn0P0nAxDQm6DMwDwLbTze+5XihUDws9Hdd hcYjLBYS2tGanME3DYj5LQTFqyY12xSv8gtY1FZjLSdLSJUQ2C1W5BZd2EbL1/b407U0+1cok iZOKyPViNCmXrV9l4CInh2XY7X2YGNVQsXGDunXmLp44EmWTYxksQHxVR5hRH8qvrEEfPFZd7 wZM1tTgpS4Lm+Qc6S813ybnRIgESb1Z4ZBXU+boL0SeIhEJTwgtkpRQgyTpI5QT9Q9Q7A4GTG ZzxF53AM2bnW93Qajy+UfmGacfxvJir2C2C+Ch2V0L06J0GwwhWB+8clmMvVWvLSoyPO/EivX t6Z2q/3c/fbvjpOtTi1dV2+O4mK+/oWy0Fh31QQIfbwUq/Mfsi02HHkiFPb0mYKMAiaP9qhnX cVOSqNK5k6bf17zOyIW7zdqDVNiSQ01hHq55iXU3QQnyg0foX5EcYpbxJInE91+8mFCisYw7Q mkEAhWYNibiluoy5rjhH8jYpJQJ8ixOxKh6VRyrOJ2HyMOmVpoC0vtex0YxWN/kq7JmwaeXpB Z7u3wEQSPQRLFUwp29NFSee7dgTVhsTwMjnwo9yM1SofhIAo08vMfs8pJ0XFG73KjJJ177zY7 Jfb0T9Liz8hQVW3GBD9b32+8lHyd0TDZ6O4fgKIZyqmBmbaHku4qa+op7ofGEcpIu2VrRYkqr lR8fWQZabIUdZxqsaZvKVNdpLQ1SNdsIZGQZhk6vIhS2lsaVE+mbM5Q9FomH3pgpxQDbzbwv X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.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" Xref: news.gmane.org gmane.emacs.bugs:151858 Archived-At: >>> (delete-other-windows) (split-window) (delete-window) >> >> OK. If we document it sufficiently, let's use that. > > I thought it's ugly. But if there is no other way: It's very ugly. > diff --git a/lisp/window.el b/lisp/window.el > index bcd4fa2959..9fdf005202 100644 > --- a/lisp/window.el > +++ b/lisp/window.el > @@ -5898,20 +5898,12 @@ window-state-put > windows can get as small as `window-safe-min-height' and > `window-safe-min-width'." > (setq window-state-put-stale-windows nil) > - (setq window (window-normalize-window window)) > > - ;; When WINDOW is internal, reduce it to a live one to put STATE into, > - ;; see Bug#16793. > + ;; When WINDOW is internal or nil, create a new window. > (unless (window-live-p window) > - (let ((root window)) > - (setq window (catch 'live > - (walk-window-subtree > - (lambda (window) > - (when (and (window-live-p window) > - (not (window-parameter window 'window-side))) > - (throw 'live window))) > - root))) > - (delete-other-windows-internal window root))) So you want to elide this part because 'delete-other-windows' below handles it? But the latter respects the 'no-delete-other-windows' parameter too which might be unwanted in the state putting mechanism. > + (delete-other-windows) > + (setq window (split-window)) > + (delete-window)) martin