From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Laurence Warne Newsgroups: gmane.emacs.bugs Subject: bug#60381: [PATCH] Preserve Window Position with Proced Date: Wed, 28 Dec 2022 15:55:20 +0000 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000eb19d505f0e5651b" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="40684"; mail-complaints-to="usenet@ciao.gmane.io" To: 60381@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Dec 28 16:56:20 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pAYmx-000ANj-L9 for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 28 Dec 2022 16:56:19 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pAYmk-0008KV-3U; Wed, 28 Dec 2022 10:56:06 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pAYmh-0008K9-N9 for bug-gnu-emacs@gnu.org; Wed, 28 Dec 2022 10:56:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pAYmg-0001Pf-LR for bug-gnu-emacs@gnu.org; Wed, 28 Dec 2022 10:56:03 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pAYmg-0006lA-6h for bug-gnu-emacs@gnu.org; Wed, 28 Dec 2022 10:56:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Laurence Warne Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 28 Dec 2022 15:56:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 60381 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.167224293825946 (code B ref -1); Wed, 28 Dec 2022 15:56:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 28 Dec 2022 15:55:38 +0000 Original-Received: from localhost ([127.0.0.1]:58476 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pAYmH-0006kQ-Um for submit@debbugs.gnu.org; Wed, 28 Dec 2022 10:55:38 -0500 Original-Received: from lists.gnu.org ([209.51.188.17]:43340) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pAYmF-0006kH-JA for submit@debbugs.gnu.org; Wed, 28 Dec 2022 10:55:36 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pAYmF-0008HX-Dh for bug-gnu-emacs@gnu.org; Wed, 28 Dec 2022 10:55:35 -0500 Original-Received: from mail-vk1-xa2d.google.com ([2607:f8b0:4864:20::a2d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pAYmD-0000YL-FZ for bug-gnu-emacs@gnu.org; Wed, 28 Dec 2022 10:55:35 -0500 Original-Received: by mail-vk1-xa2d.google.com with SMTP id v81so7579952vkv.5 for ; Wed, 28 Dec 2022 07:55:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=i1y7aF8U5rpLd3+/eoPynxJdiFkR6g0eQK7D0xsatZA=; b=hBa+owUuq1dLCPuFVdqxhO8avhXImrmAnZuwnW1Em4jlUCJ+QYlgMMQ84Czl1ZC5OT lTj6BH29JAoGHEukTFpVOGJGC5SqkTjGGHXXPbvzCiJj3xN2kWk3DZEHjS1dEg3t7N7D Vg40RY3H26l4/7EbYKU5aTQoZNSV1PfJdh7rFe9c9WN/aANG1DfRxyN5dfjwORfGlm2K lW9iE5dkK4pD7nm6G5uokBbuo4c3+y7AfLOREmI14a38cn157Sfdb84JpsUmh+1lmdrU 65ijH0w6tlyDFLtA9nxVqcyZSzBFu5+DjCGeHvBnHCXbfbfZBrYNSk80RF6Mm/Dzt1YE OhZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=i1y7aF8U5rpLd3+/eoPynxJdiFkR6g0eQK7D0xsatZA=; b=uMN/i3L14Qa2CjHz8rWI+SSmBnyfFZDodJWQK2Mew17mbmZdjrDDatrr/87tQ9fvaV kKbTNIbaG37Qw5JfsCGKlLTzjeMLP6Qta6JI8CMHTGf1xzPGDNQPsfPVqVHLMtyPWO6i m3mqNn4AfVyPuU7hzp7ow+sHVZcH09BjW55iMZXRySS4wYQcctIpJDHhDasxIcMjCLlT kUYgYuEiWY4qFhwhH3PAp5042PyGCHQxKga7qXT+NHq0ZowaHSC8hzAvQVYXnC9iWuu5 6radk58Q6I8W2eNWSO20gY5RI6syT1znGkMP5+99p/97dUb2LIlFsQZYxfS0YOSFnPz8 XdGQ== X-Gm-Message-State: AFqh2krwOccinhAuH8LZGylWeQOT4WYKPYywtYDG836ae+BchqlS/HRk Hglh6Gg6wTnmNuxatPSr6uhIWAMMglS/UhchN8o2KB/W2aw= X-Google-Smtp-Source: AMrXdXuAEtla3w4ayOjMdBn69v81wdjCS/eV9L6yk2H7crtmNVG0LBVVqjec1wTUmmmHknHAHuyhIGrLLFXExxuP92U= X-Received: by 2002:a05:6122:c95:b0:3c8:f99f:1934 with SMTP id ba21-20020a0561220c9500b003c8f99f1934mr3126818vkb.28.1672242931628; Wed, 28 Dec 2022 07:55:31 -0800 (PST) Received-SPF: pass client-ip=2607:f8b0:4864:20::a2d; envelope-from=laurencewarne@gmail.com; helo=mail-vk1-xa2d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:251990 Archived-At: --000000000000eb19d505f0e5651b Content-Type: multipart/alternative; boundary="000000000000eb19d205f0e56519" --000000000000eb19d205f0e56519 Content-Type: text/plain; charset="UTF-8" Hi, This patch fixes a minor issue with proced buffers. Previously, the window position would be set to the start of the buffer when a proced buffer was updated and it was not displayed in the selected window. To reproduce: (require 'proced) (setq-default proceed-auto-update-flag t) (M-x proced) Move down to the next process, then change to a different window, and wait a bit. You should see the point in the proced buffer move back to the beginning of the buffer. A similar issue occurs when the proced buffer is not displayed in any window. This patch addresses this by setting the window point (if applicable) whenever a proced buffer is updated, and the second issue by not updating a proced buffer if it is not displayed in any window. I tried to add a test for this, but for example this: (ert-deftest proced-update-preserves-point-test () (proced--within-buffer 'medium 'user (proced--move-to-column "PID") (let ((point (window-point)) (window (split-window))) (select-window window) (bury-buffer) (with-current-buffer "*Proced*" (proced-update t t)) (switch-to-buffer "*Proced*") (should (= point (window-point)))))) passes even without this patch (though if I step through it with edebug-defun it fails as expected). Thanks, Laurence --000000000000eb19d205f0e56519 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

This patch fixes a minor= issue with proced buffers.=C2=A0 Previously, the window position would be = set to the start of the buffer when a proced buffer was updated and it was = not displayed in the selected window.=C2=A0 To reproduce:

(require 'proced)
(setq-default proceed-auto-update-f= lag t)
(M-x proced)

Move down to the nex= t process, then change to a different window, and wait a bit.=C2=A0 You sho= uld see the point in the proced buffer move back to the beginning of the bu= ffer. A similar issue occurs when the proced buffer is not displayed in any= window.

This patch addresses this by setting the = window point (if applicable) whenever a proced buffer is updated, and the s= econd issue by not updating a proced buffer if it is not displayed in any w= indow.

I tried to add a test for this, but for exa= mple this:

(ert-deftest proced-update-preserves-po= int-test ()
=C2=A0 (proced--within-buffer
=C2=A0 =C2=A0'medium=C2=A0 =C2=A0'user
=C2=A0 =C2=A0(proced--move-to-column "PID&q= uot;)
=C2=A0 =C2=A0(let ((point (window-point))
=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0(window (split-window)))
=C2=A0 =C2=A0 =C2=A0(select-window= window)
=C2=A0 =C2=A0 =C2=A0(bury-buffer)
=C2=A0 =C2=A0 =C2=A0(with-= current-buffer "*Proced*"
=C2=A0 =C2=A0 =C2=A0 =C2=A0(proced-u= pdate t t))
=C2=A0 =C2=A0 =C2=A0(switch-to-buffer "*Proced*")<= br>=C2=A0 =C2=A0 =C2=A0(should (=3D point (window-point))))))
passes even without this patch (though if I step through it wit= h edebug-defun it fails as expected).

Thanks, Laur= ence
--000000000000eb19d205f0e56519-- --000000000000eb19d505f0e5651b Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Preserve-the-window-position-with-proced.patch" Content-Disposition: attachment; filename="0001-Preserve-the-window-position-with-proced.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lc7u7z4p0 RnJvbSA5MGJmNjY3NWJkZjUwYTBmZDMzOTJiN2FjNGFjYzU2ZTFlNjQzNmM0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW5jZSBXYXJuZSA8bGF1cmVuY2V3YXJuZUBnbWFpbC5j b20+CkRhdGU6IFRodSwgMjIgRGVjIDIwMjIgMTc6MTY6MDggKzAwMDAKU3ViamVjdDogW1BBVENI XSBQcmVzZXJ2ZSB0aGUgd2luZG93IHBvc2l0aW9uIHdpdGggcHJvY2VkCgpQcmVzZXJ2ZSB0aGUg d2luZG93IHBvc2l0aW9uIGZvciB3aW5kb3dzIHdoaWNoIGRpc3BsYXkgYSBwcm9jZWQgYnVmZmVy LApidXQgYXJlIG5vdCB0aGUgc2VsZWN0ZWQgd2luZG93IHdoZW4gYSBwcm9jZWQgYnVmZmVyIGlz IHVwZGF0ZWQuICBQcmV2aW91c2x5LAp0aGUgd2luZG93IHBvc2l0aW9uIHdvdWxkIGJlIHNldCB0 byB0aGUgc3RhcnQgb2YgdGhlIGJ1ZmZlciB3aGVuIGEKcHJvY2VkIGJ1ZmZlciB3YXMgdXBkYXRl ZCBhbmQgaXQgd2FzIG5vdCBkaXNwbGF5ZWQgaW4gdGhlIHNlbGVjdGVkIHdpbmRvdy4KCiogbGlz cC9wcm9jZWQuZWwgKHByb2NlZC1hdXRvLXVwZGF0ZS10aW1lcik6IE9ubHkgdXBkYXRlIGEgZ2l2 ZW4KcHJvY2VkIGJ1ZmZlciBpZiBpdCBpcyBkaXNwbGF5ZWQgaW4gYSB3aW5kb3cuCihwcm9jZWQt dXBkYXRlKTogU2V0IHRoZSB3aW5kb3cgcG9zaXRpb24gaWYgdGhlIHByb2NlZCBidWZmZXIgaXMK ZGlzcGxheWVkIGluIGEgd2luZG93LgotLS0KIGxpc3AvcHJvY2VkLmVsIHwgMTEgKysrKysrKysr LS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvbGlzcC9wcm9jZWQuZWwgYi9saXNwL3Byb2NlZC5lbAppbmRleCBjMDllZTE4YThi Li4xMDIxNzFiZWYwIDEwMDY0NAotLS0gYS9saXNwL3Byb2NlZC5lbAorKysgYi9saXNwL3Byb2Nl ZC5lbApAQCAtOTA1LDcgKzkwNSw4IEBAIHByb2NlZC1hdXRvLXVwZGF0ZS10aW1lcgogICAodW5s ZXNzIChzZXEtZmlsdGVyIChsYW1iZGEgKGJ1ZikKICAgICAgICAgICAgICAgICAgICAgICAgICh3 aXRoLWN1cnJlbnQtYnVmZmVyIGJ1ZgogICAgICAgICAgICAgICAgICAgICAgICAgICAod2hlbiAo ZXEgbWFqb3ItbW9kZSAncHJvY2VkLW1vZGUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg KGlmIHByb2NlZC1hdXRvLXVwZGF0ZS1mbGFnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGlmIChhbmQgcHJvY2VkLWF1dG8tdXBkYXRlLWZsYWcKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoZ2V0LWJ1ZmZlci13aW5kb3cgYnVmIHQpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAocHJvY2VkLXVwZGF0ZSB0IHQpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHQpKSkKICAgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLWxpc3QpKQpAQCAt MTk4Niw3ICsxOTg3LDEzIEBAIHByb2NlZC11cGRhdGUKICAgICA7OyBkb25lCiAgICAgKG9yIHF1 aWV0IChpbnB1dC1wZW5kaW5nLXApCiAgICAgICAgIChtZXNzYWdlIChpZiByZXZlcnQgIlVwZGF0 aW5nIHByb2Nlc3MgaW5mb3JtYXRpb24uLi5kb25lLiIKLSAgICAgICAgICAgICAgICAgICAiVXBk YXRpbmcgcHJvY2VzcyBkaXNwbGF5Li4uZG9uZS4iKSkpKSkKKyAgICAgICAgICAgICAgICAgICAi VXBkYXRpbmcgcHJvY2VzcyBkaXNwbGF5Li4uZG9uZS4iKSkpKQorICA7OyBUaGlzIHNldHMgdGhl IHdpbmRvdyBwb2ludCBmb3IgYWxsIHdpbmRvd3MgZGlzcGxheWluZyB0aGUgUHJvY2VkIGJ1ZmZl cgorICA7OyB3aGljaCBtZWFucyBhbGwgd2luZG93cyB3aWxsIGhhdmUgdGhlaXIgcG9pbnQgc2V0 IHRvIHRoZSBtb3N0IHJlY2VudGx5CisgIDs7IHZpc2l0ZWQgd2luZG93IGRpc3BsYXlpbmcgdGhl IGJ1ZmZlci4gIFBvc3NpYmx5IHdlIGNvdWxkIHNhdmUgYWxsIHdpbmRvdworICA7OyBwb2ludHMg YWhlYWQgb2YgdGltZSwgdGhvdWdoIHRoaXMgaXMgbW9yZSBjb21wbGljYXRlZC4KKyAgKG1hcGMg KGxhbWJkYSAod2luKSAoc2V0LXdpbmRvdy1wb2ludCB3aW4gKHBvaW50KSkpCisgICAgICAgIChn ZXQtYnVmZmVyLXdpbmRvdy1saXN0IChjdXJyZW50LWJ1ZmZlcikpKSkKIAogKGRlZnVuIHByb2Nl ZC1yZXZlcnQgKCZyZXN0IF9hcmdzKQogICAiUmVldmFsdWF0ZSB0aGUgcHJvY2VzcyBsaXN0aW5n IGJhc2VkIG9uIHRoZSBjdXJyZW50bHkgcnVubmluZyBwcm9jZXNzZXMuCi0tIAoyLjMwLjIKCg== --000000000000eb19d505f0e5651b--