From unknown Sun Jun 15 08:59:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#48493: 28.0.50; quit-window doesn't work Resent-From: Sujith Manoharan Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 18 May 2021 03:36:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 48493 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 48493@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.162130890818273 (code B ref -1); Tue, 18 May 2021 03:36:01 +0000 Received: (at submit) by debbugs.gnu.org; 18 May 2021 03:35:08 +0000 Received: from localhost ([127.0.0.1]:54217 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1liqVg-0004ke-CF for submit@debbugs.gnu.org; Mon, 17 May 2021 23:35:08 -0400 Received: from lists.gnu.org ([209.51.188.17]:45746) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1liqGO-0004KK-EQ for submit@debbugs.gnu.org; Mon, 17 May 2021 23:19:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48662) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liqGO-00069E-9D for bug-gnu-emacs@gnu.org; Mon, 17 May 2021 23:19:20 -0400 Received: from mail-pg1-x52d.google.com ([2607:f8b0:4864:20::52d]:40818) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1liqGM-0003qy-Fc for bug-gnu-emacs@gnu.org; Mon, 17 May 2021 23:19:20 -0400 Received: by mail-pg1-x52d.google.com with SMTP id j12so6017996pgh.7 for ; Mon, 17 May 2021 20:19:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=user-agent:from:to:subject:date:message-id:mime-version; bh=LKLfk8H4AiyPN+4c1M3pX/+Lal3PbL55SSyCcs1/5zI=; b=VwDt65HTQG/J1ri5R795ggqYrR37dUtRPGFI1YNoNAbO0KVfDYORbyJFiH45+b3NCu deS5wPfBwLtZ5dJ7JziIdErv04k6Va2My5R3AxrM5K9J11vGmQ/waNUrfwTnln0kQ6th L8oMjVJUHKY883nJeZX8RUJMC+rH0nUuR8Z1H5W5H8u9um+7VhXO6nzUuEloi+cfEpp+ jq3XsjQDzOpFjMwQ01/JHfQ4nHw7hRu1vzNJZH6oVYdI+5eWQx4c7ImN5541elcqqTm9 4sHrHAURkWtmgKTpK/qDqiUQADFmymmgrfidNCL0Jgyz5aFRXdzUBHt0cMI0tOP7aVrd t0kA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:user-agent:from:to:subject:date:message-id :mime-version; bh=LKLfk8H4AiyPN+4c1M3pX/+Lal3PbL55SSyCcs1/5zI=; b=P89zGAitzAtclirtqkpyfpBHszzvCp8Lu6Ie879eTjS8g6I2fH0mCxcJBPuJrKCvyO mBY402Lt1JcMd7lKJsDTfGPIhKN3ySKqJNUpaH/c9PNoDbs3OWtz5n/WpJ+5jKZN6Jlq KI/qWNtO3A/o6PXgeHSJKiOI5RzR8oEWHinKX/cV7q1NzoVpfBe420dbEglggAj7z7cV KAW+FKgh4384BLe6vJnim207zTmX7yzqbFdSHuJhvhcYAEKAmA0rBi4E6yXB0t23+zUB dtCVMkCOtweb7V7npjK7Xc+i66PgaFlqZthL1JPvNc5MZXysC+T5Rf0KekT6K+RRjRqS BCWA== X-Gm-Message-State: AOAM53380OneiKCjE+eZGD+6+/AsEKZLvmrky1cY+9DfhVoMaPFYm0xy /rQJHdlMnbnZvCO1iaNbnyziffCIKoQ= X-Google-Smtp-Source: ABdhPJz1zYfPbWzxhhe4QYrPzRiJi3xTlqAlHUrzkSXt0TjSJZoXSKXUuV/a94FsCsxPePzQdXfhEg== X-Received: by 2002:a65:6a07:: with SMTP id m7mr2809912pgu.136.1621307956275; Mon, 17 May 2021 20:19:16 -0700 (PDT) Received: from comp-lnx ([2409:4072:6d1b:5fee:981f:834e:48a8:cf10]) by smtp.gmail.com with ESMTPSA id g19sm6123908pfj.138.2021.05.17.20.19.13 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 May 2021 20:19:15 -0700 (PDT) User-agent: mu4e 1.5.13; emacs 28.0.50 From: Sujith Manoharan Date: Tue, 18 May 2021 08:51:40 +0530 Message-ID: <87h7j0wwkf.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2607:f8b0:4864:20::52d; envelope-from=sujith.wall@gmail.com; helo=mail-pg1-x52d.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, 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-Spam-Score: -1.3 (-) X-Mailman-Approved-At: Mon, 17 May 2021 23:35:07 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) quit-window doesn't work properly with the master branch. To see the issue with emacs -Q, in any git repo: * C-x v L * C-x 1 (if the screen is split). * Hitting 'q' now doesn't close the window. Looks like commit 0a681590268a4039f95a5a919b6b6d4f4e880d4c is the problem. In GNU Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, Xaw scroll bars) of 2021-05-18 built on comp-lnx Repository revision: aff87e5d04de9ac59359ed29ca59483fc10d31ea Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12011000 System Description: Arch Linux Configured using: 'configure --prefix=/usr/local --enable-link-time-optimization --with-sound=no --without-libsystemd --without-harfbuzz --without-m17n-flt --without-libotf --without-lcms2 --with-x-toolkit=lucid --without-dbus --without-gsettings --without-selinux --without-modules --without-gpm --without-cairo 'CFLAGS=-O2 -march=native'' Configured features: ACL FREETYPE GIF GLIB GMP GNUTLS JPEG JSON LIBXML2 NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP THREADS TIFF TOOLKIT_SCROLL_BARS X11 XDBE XFT XIM XPM LUCID ZLIB Important settings: value of $LANG: en_IN.UTF-8 locale-coding-system: utf-8-unix Major mode: Dired by name Minor modes in effect: dired-omit-mode: t save-place-mode: t savehist-mode: t tooltip-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t buffer-read-only: t column-number-mode: 1 line-number-mode: t transient-mark-mode: t Load-path shadows: ~/dev/elisp/dictionary-el/dictionary hides /usr/local/share/emacs/28.0.50/lisp/net/dictionary Features: (shadow face-remap mu4e mu4e-org mu4e-main mu4e-view mu4e-view-old mu4e-view-common thingatpt mu4e-headers mu4e-compose mu4e-context mu4e-draft mu4e-actions rfc2368 smtpmail mu4e-mark mu4e-proc mu4e-utils doc-view jka-compr image-mode exif mu4e-lists mu4e-message shr kinsoku svg xml dom browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util url-parse url-vars flow-fill org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint org-pcomplete pcomplete comint ansi-color org-list org-faces org-entities noutline outline org-version ob-emacs-lisp ob-core ob-eval org-table ol org-keys org-compat advice org-macs org-loaddefs format-spec cal-menu calendar cal-loaddefs mule-util mailcap hl-line mu4e-vars mu4e-meta add-log log-view pcvs-util vc-mtn vc-hg vc-git diff-mode easy-mmode vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs vc vc-dispatcher dired-aux nswbuff eieio-opt cl-extra speedbar ezimage dframe find-func shortdoc help-fns radix-tree help-mode emacsbug message rmc puny rfc822 mml mml-sec epa derived epg epg-config gnus-util rmail rmail-loaddefs auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache json map text-property-search time-date subr-x mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils edmacro kmacro cl-loaddefs cl-lib xcscope ring ido seq byte-opt gv bytecomp byte-compile cconv dired-x dired dired-loaddefs saveplace savehist iso-transl tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads inotify dynamic-setting font-render-setting x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 151859 9119) (symbols 48 16246 5) (strings 32 57927 2771) (string-bytes 1 1891100) (vectors 16 31514) (vector-slots 8 344237 13676) (floats 8 170 151) (intervals 56 1810 15) (buffers 992 14)) From unknown Sun Jun 15 08:59:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#48493: 28.0.50; quit-window doesn't work Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 18 May 2021 08:02:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48493 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sujith Manoharan , 48493@debbugs.gnu.org, pillule Received: via spool by 48493-submit@debbugs.gnu.org id=B48493.162132489611142 (code B ref 48493); Tue, 18 May 2021 08:02:02 +0000 Received: (at 48493) by debbugs.gnu.org; 18 May 2021 08:01:36 +0000 Received: from localhost ([127.0.0.1]:54379 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1liufY-0002te-BZ for submit@debbugs.gnu.org; Tue, 18 May 2021 04:01:36 -0400 Received: from mout.gmx.net ([212.227.15.15]:56113) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1liufV-0002tO-GC for 48493@debbugs.gnu.org; Tue, 18 May 2021 04:01:35 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1621324883; bh=eUZhD6kn6qpa4OqQuFg+gAC0kRYkpxIZmGYmgv9BNU0=; h=X-UI-Sender-Class:Subject:To:References:From:Date:In-Reply-To; b=MQGQyhS1SXtb8DQDaLtcaz2ua/YT42s56gpi+ujgOhv/FGy1UcCCbwX3sPKmS5Cgz 59u2mtc4VnND7exOZp3gh4xf4qEFIXFFMnRoo9DeERTMWsuXA2LFkbxANpDVvc5PnZ YSCV0zfqa4wkSrkfvdIZwqSHpPe2Htj7ahPs23wU= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.1.100] ([213.142.96.212]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1Mo6v3-1l6my015FD-00pbAU; Tue, 18 May 2021 10:01:23 +0200 References: <87h7j0wwkf.fsf@gmail.com> From: martin rudalics Message-ID: Date: Tue, 18 May 2021 10:01:20 +0200 MIME-Version: 1.0 In-Reply-To: <87h7j0wwkf.fsf@gmail.com> Content-Type: multipart/mixed; boundary="------------11B089DAD4F45D53CA98E2B5" Content-Language: en-US X-Provags-ID: V03:K1:7fjRlEGfi25A/Ukpl9BFMETNLzDbug++IMf76FxkmRMUJH65oxa WOsqhQdJfcp0TaqwB1UBL+wapkSSTNzuTVeLVQTzsCUuhc/AB5rfyOWfdbJxO5cbJ1g40NZ omU0hjygqdrTJK3a2mVnq6WCtw4wUfE9iMx7IVNZtfso0Ml7CFic435j4iG2r+NgOVshMXN io3USVqHFq6siPTJwwnSg== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:QoRh4GFgLTI=:s08AMnPQDvX2G4NUtiNUgQ kVVKZ9NL0CJjZIbHvUecGcWRO2i8cWlPQUvfZ7qA4bSmgxWj2diRSn7veeeNF4VtQvSr94ANa BMNDTfyES9IfuvaUeSXrXqjHGH7B3xfjzZdX4oDObGAN2Hkg4fPgLaISSYibbm3wtbNvoXI+0 Dno0oC2wNDkgrkusCUGx+B48wEtd/YT3Deo/FOgfOoS2MajKYRwppNaj2DWc7AjVYTCyGw8KB H4CgJh3bBPL8k9dEB6vrZygLn4XINGc6InVS093+G+wy8T9q5VlBDV/mw71ZMqHfOdVpQLcHp 9Qoaf3tBf1YcDUMorp7cIy/jc3LF3QJQOreDTWNOaL+gCGJWfgnAnWVsgnDmpHVjOPXILQafo 9WarY6eOoYfjEydWMbkNBA2O7tgq6K58izIRHTWwYxNlg43WUYLn6QDfs3UeoGivq+Gfh38aX aUGb/lCNx43MyYJ8+dDEe2l+vBabv2oOJXyp31Ny7GzXIsk8szjupvKx4kWzd+FDOsDxW8Hjd 0sbI38RKpir6aZ/ESetKtWmVvZy8f9Nh0nNDvanEj4cGsT/TJyN4oFyx66hXbwLRwxz8qP9Cu hlw5E8V7A+eJ9M0gQk9IaDlJFKJIWesHxqsZpACXljIyAelN/C06Dt+iyJBeO+komlxOb3kNS 6HQe6F0kGnpUqVgdVbgGWlNuccizafEjF8RPfkaxnuUQz/+iL6raPf2PClEBftur8NZu6anMg 7zJ/gD41dkIderqZstugjfUu/vD4avOn2m3ZtmL/Gd7wf6Vbv2asJqiYm7ch4rwEyzro4vaNg AXsL8nVOICBqNmw4+5t000eYCHKRqhy9V/3yLN8hsYtI0mzaZv8zsDKuAe3Vkfqp1wLb/xlU4 4LEJ98+fC0oYEtujoUxetNg+oibaVg4qv1vcap+e2BL6f2otKRQZgcXXXNQXZnoI+4hCfpM4L 64Qy0OWduoVN8fm5WghCjA9Z2dZCX8AcQpettGwwZyd7QOtXhcyKCw7rYrEaRVbyAXMGaT57l KieTGH8nge8tChiDkkc+6Vv+cBCyr1J2/o3/yS7Xw3B9DEbkFZjQ0NUnE/GjJj6as6TFNMVjG hjLLPQmAVz+/AQhqQTGxzZ9HPWXouB+ma3sGirY4NN0+cVL/LckNpBV/JypRm4Q3NbEPyBGc2 SLSi0rxamTVeYQu4ukYb9rsfTDlcAZxV/j9RtxkoR5vkBJGHTWccA+EqHktBOIi5Hijg0= X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --------------11B089DAD4F45D53CA98E2B5 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit > quit-window doesn't work properly with the master branch. > > To see the issue with emacs -Q, in any git repo: > > * C-x v L > * C-x 1 (if the screen is split). > * Hitting 'q' now doesn't close the window. > > Looks like commit 0a681590268a4039f95a5a919b6b6d4f4e880d4c is > the problem. Right. Can you try the attached patch? pillule, please also have a look into this. Thanks for the report, martin --------------11B089DAD4F45D53CA98E2B5 Content-Type: text/x-patch; name="quit-restore-window.diff" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="quit-restore-window.diff" diff --git a/lisp/window.el b/lisp/window.el index 026cde5901..8a767140bc 100644 =2D-- a/lisp/window.el +++ b/lisp/window.el @@ -5110,8 +5110,7 @@ quit-restore-window (set-window-parameter window 'quit-restore nil) ;; Make sure that WINDOW is no more dedicated. (set-window-dedicated-p window nil) - (if prev-buffer - (switch-to-prev-buffer window bury-or-kill) + (unless (switch-to-prev-buffer window bury-or-kill) ;; Delete WINDOW if there is no previous buffer (Bug#48367). (window--delete window nil (eq bury-or-kill 'kill))))) --------------11B089DAD4F45D53CA98E2B5-- From unknown Sun Jun 15 08:59:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#48493: 28.0.50; quit-window doesn't work Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 18 May 2021 13:32:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48493 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sujith Manoharan Cc: pillule , 48493@debbugs.gnu.org Received: via spool by 48493-submit@debbugs.gnu.org id=B48493.16213446911455 (code B ref 48493); Tue, 18 May 2021 13:32:02 +0000 Received: (at 48493) by debbugs.gnu.org; 18 May 2021 13:31:31 +0000 Received: from localhost ([127.0.0.1]:54682 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lizop-0000NH-Fp for submit@debbugs.gnu.org; Tue, 18 May 2021 09:31:31 -0400 Received: from mout.gmx.net ([212.227.15.18]:48169) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lizom-0000GO-Dx for 48493@debbugs.gnu.org; Tue, 18 May 2021 09:31:30 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1621344678; bh=Kp8fEC0QhOxGaGIl2u7910Vpspm531SV+K3zSiN+lO8=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=X79gariXc4Hj1Edb/vil70Y8/H/9bNFRCf1I5gbsQ98VGx6CX2iCEMN8OIAi/sMlA ElNbuCUGNsvhPG74dFbFdRDKEbNH4pVZVMO+KRVnHNNn9URBf/A0NTOvCRWrInkX8e BQdTKSHJTc3kxo6Q+2Sm0I4Do0RtZaLmVS63zUIw= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.1.100] ([213.142.96.212]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MV67o-1lsJkm1XWg-00S6q3; Tue, 18 May 2021 15:31:18 +0200 References: <87h7j0wwkf.fsf@gmail.com> <87czto5oeq.fsf@gmail.com> From: martin rudalics Message-ID: <91e1b3f2-8afb-f5b4-ed54-b9bb24638774@gmx.at> Date: Tue, 18 May 2021 15:31:17 +0200 MIME-Version: 1.0 In-Reply-To: <87czto5oeq.fsf@gmail.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:66UQAXCMpDhwGfFK2VLKy+yEFy4qGIN+TFrNyQfypKQd2QqPy93 uNJx6SP1LvG2GdUW/XUlxGPzfD8lboRMGS2A7ZcSNMKIh3oIuiXW2AtEs/RM9zQQmv4jgsV X4VoKkAHENjQyupbWBWO6RFXinVnW7PrVUTC0hacG3nc8LkTpTYmPFh9uAt9U7V/g66SvBn VkbaenkFHWWM1sIvjtnHg== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:BjG73ABraCU=:Z9Wz+ZN0e1zYESNbMzhU0u R8Hhej/CsLYl1mEx3JlsRfBXy9qhMFF7mf3kHuAV3iUQxUgvi8SYx8zjMXy7IRzBhPoBvfhcs jirkcAV/8r60RY5yU8BVRV0ypE3QhrJwsb8imRAYmYWpQm83H6W2fX7iMeqx/JMVYJfyMKyU4 0prrjbD1gdqUYD/bukMQ5lOXn1SoJLy2vv+YXjKso4183vqeEwjnC/XEOxk9KG+/Ti89nadkP N0dUo8M6TUxW9mJGKUdZTdSFuvoKXsk15cxltQsCAHmGGwN2C2fZleN+7AN06u76zuMPtbFf7 BQz7kGgx41phksmoB6t8IIiP/wGjEw77t/z9ZURD56YCQDpwA06a34URVp2CWCbIWh6y38/rt L+hh2Y3jKcVs0ebz/zjfjOEwpqCRHAkdPFdb6KttFqQGyOIqTlq+2hrlIwS02jaw5RuulLD7f SKYHHsnYeSCr74yvchjqDKB/N6pbIyK4hESU2qu381GSNywxjPrw5l6E0QvsV9Tx+JleB4qyw /PvLdCijYpqHkKZNO1op1Ln/HV+l6npCgaLWyszhz7owywLTt26PsXg51Q8Nw5CHyVvoadwiH 6scUA0Hzgced+f7NZbbhVk2PdhYwolbQ3+7t6/tpfAWojRmiL6H9dUy+GdYXezJkOs++WoSRk hjhDPG9JmLllmIib1HpabF49pEWAus8Um6u4UWQD+IWOL88uJVmGJF6vpFf1sbj/u2ZJqsomQ iLDRQ++O5Lu2O9ssyr++T+BzpcY2RfQ61Ou5R6jE9M4Pxfi068t7bv6qbjnMbcoT6VsjMOhjX Nrs3sSlTYNVQtpcwhgStNSoXT+5hcNoJC64VS/oDzfHEm2JjIYvXB6oX7JY/MbEvLEyDCPUpq Wjp3xl6oTqxzD5b1yUTYzmFLQiJ9LQbU0F2Mg1gKiq70zsSPTtJ1sOGHnOCiHaJ4rbni5jK4a ncSCWk5rBHChF2jf2j1B8AfoBYefYQkeTWjuBzqtRPUiaQsFYlUVkPZrjBq8V0f0mPLEFbmDz AdECRX+tyluglgmZw2Xm05F3Pz2zF4z6MNZgiex02vxsi0LXHBYRM7kSWI7FI562wCT6b5Lil 8Uuvna6ZGSHafPG68mHDc7iDeK5lNaIJQKJIk0pP1yC4U2uGaLwZa3whqF9tCgi0qhjq8zHtm x2vDt2IGdpIgxj65iZzW1iC6JQsqdt3RmFPBiNxLmAlpbrcIJCno9fE6BHH+cF4rl8On4= X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) > The patch fixes the issue. Thanks. Thanks for checking. Unless pillule has a better idea I'll install that. martin From unknown Sun Jun 15 08:59:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#48493: 28.0.50; quit-window doesn't work Resent-From: Sujith Manoharan Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 18 May 2021 14:42:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48493 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: martin rudalics Cc: pillule , 48493@debbugs.gnu.org Received: via spool by 48493-submit@debbugs.gnu.org id=B48493.162134890830514 (code B ref 48493); Tue, 18 May 2021 14:42:02 +0000 Received: (at 48493) by debbugs.gnu.org; 18 May 2021 14:41:48 +0000 Received: from localhost ([127.0.0.1]:56867 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lj0up-0007w4-JW for submit@debbugs.gnu.org; Tue, 18 May 2021 10:41:48 -0400 Received: from mail-pj1-f44.google.com ([209.85.216.44]:42697) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1liwni-0006Sf-Cg for 48493@debbugs.gnu.org; Tue, 18 May 2021 06:18:11 -0400 Received: by mail-pj1-f44.google.com with SMTP id j6-20020a17090adc86b02900cbfe6f2c96so1288789pjv.1 for <48493@debbugs.gnu.org>; Tue, 18 May 2021 03:18:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=references:user-agent:from:to:cc:subject:date:in-reply-to :message-id:mime-version; bh=exJ8eDEKZd6BdUVGy0gNpJm34O/F2r85m6wQ8IXE7hA=; b=LA8m5CC3JV/DCTWicegGVOWY3CD0GMnDWLso0n5ynKm5hxyE/IsHs2FXW/frThVGS6 rnKDVHQWEwfPDDNZJYaibU0dy9i3MHw0DukVcHoGsLJpGbp89hpETGJPwL4hnTU2Ei03 d5N2nQrx4E3nsv9k2xY4eQjqRIVZQKZrIlhGMsTrm5pqMM/clZ3mKj9ZXNh05yGNHHqg YH6vA1mO8OKf/z4qFh0gqpBGj2CbFyEReDZTIeSFQ24unI11enoTC38HUaHkkRHf6biP Q2zoe54TLQ4aUwG2Yj0fYIP4mslu65OYM4aqUPM7mcGfqDEP8NQeIJY+Ho2OsYqq4/qt qoLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:references:user-agent:from:to:cc:subject:date :in-reply-to:message-id:mime-version; bh=exJ8eDEKZd6BdUVGy0gNpJm34O/F2r85m6wQ8IXE7hA=; b=a8GDoSAFRApt5WSIMJAe+FHAVPRqgl4vJ6wtABfVolJQ8KRImG+XW/aKcsv53+8Jfq 95KoRtJQWCVytSscMznr1GdiwldBCdjTeut4Epj6JpOVxrTMwyOp5zJOlAQJ6nUPrfM1 mNmNYQAtBatKxdbYJSe/h3YnPhgDJTdk+HBs1MMMHZfFfJwtYUtyBjMrbr44VgBDWFoO Cp/MFXC5zz/9teLyPIwKpZvv/NvhTfdKLRwt4ny+4DnSQGa4oHKyp92US054TeuqhtWv JwZiynLnzVHdWzFdLnvh/LR9ouCQd7VJfTypNyT+pPrfZenZ05IG+RSJJFEuo7gqbU0P DEWA== X-Gm-Message-State: AOAM531ElCMRTPx6qYafq8qMSMmlsiGUg79dIXp0PkutcHuQFvPMqr1Z MiJqWzbkl9SqpSOpLD4iUaU= X-Google-Smtp-Source: ABdhPJzfvIPift2+0cocP/9mJML0ruTmPUZgNHeFxd1kFrEsu/+aKAAENMO1ZTFIB12NHPth1mkp0A== X-Received: by 2002:a17:90a:af90:: with SMTP id w16mr4236009pjq.97.1621333084651; Tue, 18 May 2021 03:18:04 -0700 (PDT) Received: from comp-lnx ([2409:4072:6d1b:5fee:981f:834e:48a8:cf10]) by smtp.gmail.com with ESMTPSA id t22sm4884107pfl.50.2021.05.18.03.18.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 May 2021 03:18:04 -0700 (PDT) References: <87h7j0wwkf.fsf@gmail.com> User-agent: mu4e 1.5.13; emacs 28.0.50 From: Sujith Manoharan Date: Tue, 18 May 2021 15:53:31 +0530 In-reply-to: Message-ID: <87czto5oeq.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Mailman-Approved-At: Tue, 18 May 2021 10:41:46 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) martin rudalics writes: > Right. Can you try the attached patch? pillule, please also have a > look into this. The patch fixes the issue. Thanks. From unknown Sun Jun 15 08:59:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#48493: 28.0.50; quit-window doesn't work Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 19 May 2021 07:44:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48493 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sujith Manoharan Cc: pillule , 48493@debbugs.gnu.org Received: via spool by 48493-submit@debbugs.gnu.org id=B48493.162141022015707 (code B ref 48493); Wed, 19 May 2021 07:44:02 +0000 Received: (at 48493) by debbugs.gnu.org; 19 May 2021 07:43:40 +0000 Received: from localhost ([127.0.0.1]:57902 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ljGrj-00045C-Kt for submit@debbugs.gnu.org; Wed, 19 May 2021 03:43:39 -0400 Received: from mout.gmx.net ([212.227.15.19]:34353) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ljGrg-00044u-Oq; Wed, 19 May 2021 03:43:38 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1621410207; bh=Gt10h5+aAYw7lJoy+gLIyQXwbbiHyj3RSq54ej3/EAQ=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=QOzYuBf0cL97a08wz1bGN94FZOMu0BxY3x7e+R1o/7bybszgW8zO9BH6nKn36GinK CyUqJnKF7R0n/Gwcm4yAZWykLP2JiLua8AUPSjCF/hJzv1zX4kVMTTU9DiTGSSXRtd hTz3ibsFV2HLZmjCgw2+Z82anXun7sgdgMyCXyCc= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.1.100] ([212.95.5.159]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1M2f5Z-1llD4C1HBf-004F4T; Wed, 19 May 2021 09:43:27 +0200 References: <87h7j0wwkf.fsf@gmail.com> <87czto5oeq.fsf@gmail.com> From: martin rudalics Message-ID: <4fc89868-c505-0241-e7f1-624aee5a5f25@gmx.at> Date: Wed, 19 May 2021 09:43:26 +0200 MIME-Version: 1.0 In-Reply-To: <87czto5oeq.fsf@gmail.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:dZrZMPTrlFQ3n+b5jJUnxOQqk0Rgub6h06oEGzku6aywTHKAqTc CXxTR8KE2wRSpYyYEV+BbwShkdzWH/c/5zRNEWuZ3dWdAG/fgauysAKrSU1IDtvvO7hKfkA 8nbdOSy4TX+GvLD1G7GLLjZouH8PRitX4AxPohXGCkRuLnZegkVBtU305H7/ef1aPIuBZzD rgxujSoZC2d0mW0uLKsYA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:3+xGEqEJ6+Y=:j4tkZF0vx6JcgosKbV3dmv vdZpnF3sudP2isSZNyDNFc5dDRqnBben4bAPyRha0wJ5kmysB78fYYiY66u/SVdxyXOTuVdzr q965Zyqy4ChkPbY61Fsqx9aptvc2E87BWNMkgaUEYXMTK80llj7gX+G4jgjEIMhI/31/X23MQ 2lMaceElf2PLUEw9EuT53n4uIGNXp8KfES1EihlT9c40vhb1hs99D+hsjt1I9VL0CduPS/UmX 2//z4G5gq0+ITW1fwmI6TRthyxMPiT91j1dlgP93rqMejMublFiuO5TDfL5KiAyyCRgCvDdJv +LvN85NTe/D2KU6qlkW6MZtxdTtBxy+z5Da1mLW1Lq+oKeRCcroAtDBS8QJQ+6fDz99RLj94B RGtNXM2j3yYa/U/wYiZNVoTIs/mF8dpwcv6KfdDhlnfz7aD6rtyzNvbqTIpVGUr+0LIdE7fhR aFZzjbFL+iVVcl6aqAqLQno9Up2pyEKDhTxfLUMK0IfJjF6Ul+kTbymfJmLPUG52deros03LS cnMrH7NUEgrzef3fu59Yw8v7jYtSeb3FlvtUD1/AZgciOkSOfINy47kABU0AfhOfarjKLJ7mI VZOzfdBfgp1M5pLagdNeZR2MI53xrKQVBI/meTmsJlgNRKJF7X5GP6oYPWSjS1Kph5Vz2vUiF /2b9wmRIMUAHKj9br5Jc0rqAy4hCvGRFwbESb90Oq+/wdIoYJpwQR6RZhLIRu4Cri9hPl5AKr MwrCm97YZsksAs4n2EUdOvaUBS9jqxbx0K2UJXF2yft1PQ36ybfNaumUCUF+05/Hw5YO/MYU3 8EbvvAdF7Fo8x1CA5sn1mN4XjWNJwarT+t0x5pkafdOsjzIdrHIlTAf+jb1PdOZvsNs5FTtAK dg+omlNsvG3MVtVwHFe2D6vRNyOy5zQtQvyBLsxL//0j4jN9wG85LQ87vNzEDvzUXhI3tkD3v m33jBqK+Uo5/3ZpsYAlDSWFIeGMn3hORC9RyY0Dxa/uTZb+BjRrsrgC6R2NwKYGeS5kK+JxKK 2QjRn3rkzs6WANgeJKOkS15WkRKfsMQJpDkR8kAi9xA8tPs7TRe0pwP7sURWZWDxu3ZBX7Y9r n7lja6bOcQSVIFCbPdZxFFticIjwYEDyXlOt0F8xkuir1Y34/DTeGgS2KVnLS0xjBRW/h2ptx ie2fjyYxAQz6JaGQqJ0vWat9dYGzmE7rtJ34Ts/RYH5qtIlqDZ3uH0L8XOiNHXfmFUHq0= X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) ;; tags 48493 fixed ;; close 48493 28.1 ;; quit > The patch fixes the issue. Thanks. Installed and bug marked as done. Thanks again for the report, martin From debbugs-submit-bounces@debbugs.gnu.org Wed May 19 03:48:29 2021 Received: (at control) by debbugs.gnu.org; 19 May 2021 07:48:29 +0000 Received: from localhost ([127.0.0.1]:57913 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ljGwP-0006OG-HG for submit@debbugs.gnu.org; Wed, 19 May 2021 03:48:29 -0400 Received: from mout.gmx.net ([212.227.15.18]:53797) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ljGwO-0006O5-PS for control@debbugs.gnu.org; Wed, 19 May 2021 03:48:29 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1621410503; bh=zi5JW1NL6UB/7rat/qp6dxyGaJF5CK/1sG6qFDsNLas=; h=X-UI-Sender-Class:From:Subject:To:References:Date:In-Reply-To; b=O+v3X4Uz2K79pZJDk2llMhGfddk2+FAGq/NyC/4vk/ck69NVGJr73yHuxTbsHCooX bVUFYsv3bGPuuXwA1nE+PtHqc5O8m9IdfNOsuvdjLNO5Gp+IXQQx4I4f40wpEE0pqg oeXAMYg9eMk6dgnImrL/H7vQrTLKMLO2IGK+9c20= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.1.100] ([212.95.5.159]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1M5QJD-1liS7n2flF-001S9C for ; Wed, 19 May 2021 09:48:22 +0200 From: martin rudalics Subject: Control message for bug 48493 To: control@debbugs.gnu.org References: <87h7j0wwkf.fsf@gmail.com> <87czto5oeq.fsf@gmail.com> Message-ID: <2c0a535c-d406-9192-a3a0-db19d6187396@gmx.at> Date: Wed, 19 May 2021 09:48:21 +0200 MIME-Version: 1.0 In-Reply-To: <87czto5oeq.fsf@gmail.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:Rms0miH2j0JdgJvqAyYSJpLALDBrgBq7XAwy4GGduo4N21Au45E k4zvXzwqhTCITH8UaR9c2zMN9Vso1BI8wQgplvIH0ox8+8xKentj9UxoPfv8btUKVZNj75C dES6jYkOl9C7wjAoI65RPFS3ToZNIzlOWN30L2douBBOXtqI5fmorZMhuNDMwvePqo0YYPG XlkYzTLbneGR9ja0NjaVw== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:CWWjQ9a4jzU=:Hb7XTO+FY8lEyShtoll4hM KaKj6hs0wz8NInjn28fZE4wjRzibGQTey56ZlNjtJcpOfqBFmp3EcJ6I41h5fNUvzH2G8oGUo ZEfYtiil/QA1W1/NJD82qxToZf2jko5iVFBjmJnfvlayDQOM+FiwYz4uV/TiVFk5czXrmZ2P2 +pXoU+0ladgGyAWzwIaO1Qkr1G9yf7w85+HSrdHwPgajYFUwEis+mLtb1FWn3v8bQf3GsiuEA E7hBbRMitcJ/KrWXomCdLSSBvzSbo49FF6NEY3H/xpQItgx+ZwcQ9bJQ36gccte+1D2sLI3uC CEnynl/vQiI2gIIA9p3vkLe9R7gotyl556L/DVLsVMQ+SBCXC/ya/0CGUnmRqIcGzd5d0+/5Q +UUXbIf1f2aUptj06Pv1HzBWMj0tbjbNLMtianv4v0V+fKvIAsFf3nHyLjFW/H5lw7q99m9aR XFIenyii06EcshIn9dt44e6K4KSJn5PM705tnqVVtHHtDqtIzkZ5XNDKQZPDQw9YOIEkT4boe ccF2eChF3AWaJeQRzOoZIBC0sMo1H1Vrz0ncFnkzP9Kn302bO8MBAJphmzqJLLhbgHU5Qq023 prvFlH5odfZATTpSoJnusPJLVKngLEK/pTD1TGknuRtTF1eF/dxGmLSJpYwCtHDYz6neqTL67 7gME/p7s9v6QwN7m19kfT3KlSmYjm/KvBT7N/ZjsuIJG0FQOY3DnNFNldX+DBzAYSwXB9bWKb 8TeeiUM4z2iYlMs1IHRItjTC6TPfkUl/ET6NA1OHgNzAgDxBKLE+xH/Rsp57WUhUHiGDergjy hydO/TdIklnYfaPlaKleuSQ6j7xxtjDeAWYUoZzEnRalq1SCrhpAORRkEzMq1q/kc3QPaa8gl oKpQ1PW3iAcj7leLMplfRFx/gD0/IW+zYF8dNEDXJEX159jvLR8lCijOhJEBxU4dJWk6yIEPa lup4DSp0ripxE5bfVUBg6IVD0rCD37Bptnj5QpQKZq+oFhBHFMTqxCil9NZNZg6dop4uSsII5 9Ds8oSvbJcxeZF82amZSmR3FWwLOpURXgAxkQOK4Ce4PUo647683tQDV9egcoCFewJjqzRr2Q x+YYhuDsQiHdYNyaRz/fF8JxxUnYq5N5c2fSKROd8B8F8PTODmbuNC1w3QGRSDP/fGOUABTVV CB/U+4xwCJ3sPuXsWR+cxhv1Z/rqUb5u4VyiMggZ2BbkEmoV/HG1xZoftCQU4DlqemiZ0= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) tags 48493 fixed close 48493 28.1 quit From unknown Sun Jun 15 08:59:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#48493: 28.0.50; quit-window doesn't work Resent-From: pillule Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 24 May 2021 14:54:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48493 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: fixed To: martin rudalics Cc: pillule , Sujith Manoharan , 48493@debbugs.gnu.org Received: via spool by 48493-submit@debbugs.gnu.org id=B48493.162186802321500 (code B ref 48493); Mon, 24 May 2021 14:54:02 +0000 Received: (at 48493) by debbugs.gnu.org; 24 May 2021 14:53:43 +0000 Received: from localhost ([127.0.0.1]:43661 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1llBxf-0005ah-Bw for submit@debbugs.gnu.org; Mon, 24 May 2021 10:53:43 -0400 Received: from mx1.riseup.net ([198.252.153.129]:43726) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1llBxb-0005aR-5Z for 48493@debbugs.gnu.org; Mon, 24 May 2021 10:53:41 -0400 Received: from fews1.riseup.net (fews1-pn.riseup.net [10.0.1.83]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.riseup.net", Issuer "Sectigo RSA Domain Validation Secure Server CA" (not verified)) by mx1.riseup.net (Postfix) with ESMTPS id 4FpgFS67hQzDqh4; Mon, 24 May 2021 07:53:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1621868012; bh=fQazK8MuBjenDIQVz1GkR6WlqrTkjFz2E3rV/fvnBII=; h=References:From:To:Cc:Subject:In-reply-to:Date:From; b=biAohOBGroXrAJNiqnOJFBwcE/dheO6EVPy5/ja3qUNP/Ra978h5yXOoNVym+Cjjc qKn8Sq3Tu5E1frugkBipXY3Va/1xTMtsYY6usv/dos42VzEFrUH0s1wOndsX/hGvP7 ruZCgLo4PCuXcqAajWAcfGDHufGOixFO5V3anFVU= X-Riseup-User-ID: 766A3E7FA247874B0C45CC0D64B749CB2B3383641E6E3204DA34F5C84A6517B5 Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews1.riseup.net (Postfix) with ESMTPSA id 4FpgFQ4LTyz5vNY; Mon, 24 May 2021 07:53:30 -0700 (PDT) References: <87h7j0wwkf.fsf@gmail.com> From: pillule In-reply-to: Date: Mon, 24 May 2021 14:53:21 +0000 Message-ID: <87cztg41zy.fsf@host.localdomain> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) martin rudalics writes: > > Looks like commit 0a681590268a4039f95a5a919b6b6d4f4e880d4c is > > the problem. Sorry about that. > Right. Can you try the attached patch? pillule, please also > have a > look into this. I think there is still edges cases : with emacs -Q ;; set some rules (setq display-buffer-alist '(("\\*\\(Backtrace\\)\\*" (display-buffer-in-side-window) (window-height . 0.2) (side . bottom)) ("\\*\\(Messages\\)\\*" (display-buffer-in-side-window) (window-height . 0.2) (side . bottom)))) ;; display the *Messages* buffer (view-echo-area-messages) ;; trigger a logical error to display the *Backtrace* buffer (> vim emacs) ;; trigger a quit-restore-window by calling kill-buffer in a dedicated window (kill-buffer (get-buffer "*Backtrace*")) ;; the dedicated property has been cleaned from the window, ;; yet *Messages* is displayed in place of this window ! (kill-buffer (get-buffer "*Messages*")) ;; calling kill-buffer in a non-dedicated window, ;; does not trigger quit-restore-window anymore ;; resulting in an undesirable buffer being displayed in place. What is the desired behavior of a dedicated window here ? Must *Messages* be displayed after we killed *Backtrace* in the first place ? I am suspecting that the locale value of `kill-buffer-hook' in *Backtrace* is interfering with this test but I have difficulties to find its human readable form. -- From unknown Sun Jun 15 08:59:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#48493: 28.0.50; quit-window doesn't work Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 24 May 2021 16:52:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48493 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: fixed To: pillule Cc: Sujith Manoharan , 48493@debbugs.gnu.org Received: via spool by 48493-submit@debbugs.gnu.org id=B48493.1621875094833 (code B ref 48493); Mon, 24 May 2021 16:52:01 +0000 Received: (at 48493) by debbugs.gnu.org; 24 May 2021 16:51:34 +0000 Received: from localhost ([127.0.0.1]:43801 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1llDni-0000DN-4p for submit@debbugs.gnu.org; Mon, 24 May 2021 12:51:34 -0400 Received: from mout.gmx.net ([212.227.17.22]:55453) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1llDng-0000D8-43 for 48493@debbugs.gnu.org; Mon, 24 May 2021 12:51:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1621875081; bh=rYAofRKpxOwysSTXhZ+0g/LNK667vK6eAvMRXc2Ea9A=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=cN3q883hxtWlvIZPwlXAS3a1OsYl+kN9EpV8xDtjqxnZgz6tF489VunJRLqraejnd bUAkalR30PoqOqyUlnW3wtEclflAkdWTIWGMfQ/NyXzaWISvNHO1HOgd5INuULqaEP OcYUqV/PCfJfR4ohmoaV7OexLANCAYnZT5TSIlng= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.1.100] ([212.95.5.177]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1M1HZi-1liSuI37fO-002q62; Mon, 24 May 2021 18:51:21 +0200 References: <87h7j0wwkf.fsf@gmail.com> <87cztg41zy.fsf@host.localdomain> From: martin rudalics Message-ID: Date: Mon, 24 May 2021 18:51:18 +0200 MIME-Version: 1.0 In-Reply-To: <87cztg41zy.fsf@host.localdomain> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:DF6tnQF4oSskKwmxAsenpzZ5Nw8agNz1VMO0/1KTlqfdlk9b4rx o0+56Px4oow9x67cdPxvyzG8spGWQMbTbnXo/3856tQX2GXF3FqdZzTOgIP9NKkvWMjv2R6 4d477Xt2hfVAEW6RahNCIOxa0OHvKQ+yUTSBiHUjHHeQ35IdPEjsxpsifW7Ch9ZEzziS04k ysLwxxmztpnwsqjyWuZaQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:CB4DcOHRTRU=:0M976Tivv6N0EEmqPmYFb9 c1Ij9uXUbf91Vlc2eAcfB59Z6ooItoh0U87LGChXnmVoNY72ofUD3QK8uCZO5qNRZrIiEIhMX Q48UYaEcCCJD2eA9nrvYCCwjqEklT/SuCYS5w9aJiwwAx0OPO5QCzZrJZt1Eo8FHBJDaZjpkS WT4HcD9lDFFlw8lDYmsfyPndbJaH3ty6euJ8MAyuKt0jleghlmQCKY5EV8RsddLeTETOgL2Ze gsXKiV49YeWEKOKDAgUwd3sdjNTdPc/ge9Itn1/yqx+CLQSPjrqGkR/ftY625hcRAnBLkxwkL YCh34SeUOhhnIYBoasCv4zO/UL4yQjUbK/OXI3mu3tPQzjfxSYRnHY/7PnPTRF1wYQf3PpllT Ge2ugNim4tRSnPhq5C/eXkdjegR2Y1bEX8O5mCrHl35EioCwm+oLJJgFRdTGQBELtV2ZU9DSR CxSxRtxhbJWrYBmo1ESnkb6zrSnmGU0djPVP+AOiBBWLTcl23Z7gcDffq2FXZriw2eFdWG/nr K0O5USbEqdjwFpLfCZV0ZZMEoIUA+7LBHrrFFZEeNtMCIZNMzXlOesyxTNP2YumhfcYSNEVjo GFaKcfo5eQD4+Q4rrntyV40Ewy3o0T/kuljTlhtMwIyg60kWhZln3ivmzzj7LouGI3CHNxW99 3aIpq/CGH2CUlzRjCc5yvrI6NwLEh9JSXnz7IhlkyQ91rTK/bZUEq2n3nGnl+SsrZYxe+6Xa2 BpyXSaNXOX1qLutvia8kDSHwCqZ8slyvFweNP9Uyuy4ijt4V4sTHG1vVHwwyJ0pB83SbJlbLg 0Hk9+QzXLWBIo0TqQZhHS6PHDwan3ET0Wo7RyfMGLDi1tf+sK0sHGkvAVEkT6+JhjlUI+3TRK 4xhy4+RCOKhO1ywzM0Z5LrbFVGNlxQvdvY1Up0L4ibDdhrpr2cN6JCTS2ZnBvAl6OszZpS5JE HrfpcrJEzi3TQjF9OWcq4fc1dNF7QsXYlVY31Ooahsz/IIFCws+ZNtDAdNeomh7GG5/YLXS/Y AW/k+vLwW1Xv091ak750oeya2HfXQSOGRGavDkvq7YnSNa8Att3wz0wAVsyDIWsEFNrh+T2xI Ff/F6W1PUG39G6lVhScoLEp+S9EFrCvjuChBN1FZn1oivpnUSpeGzob3N7reBFgvRruUQzHvo NmEAslVf5jZByWJESVE4OO1ZabQj6Ur3O/7BN4pDDo8JDdxQweDZl8uxfw5o7u3TcbRPA= X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) > I think there is still edges cases : > > with emacs -Q > > ;; set some rules > (setq display-buffer-alist > '(("\\*\\(Backtrace\\)\\*" > (display-buffer-in-side-window) > (window-height . 0.2) > (side . bottom)) > ("\\*\\(Messages\\)\\*" > (display-buffer-in-side-window) > (window-height . 0.2) > (side . bottom)))) > > ;; display the *Messages* buffer > (view-echo-area-messages) > > ;; trigger a logical error to display the *Backtrace* buffer > (> vim emacs) > > ;; trigger a quit-restore-window by calling kill-buffer in a dedicated window > (kill-buffer (get-buffer "*Backtrace*")) > ;; the dedicated property has been cleaned from the window, > ;; yet *Messages* is displayed in place of this window ! > (kill-buffer (get-buffer "*Messages*")) > ;; calling kill-buffer in a non-dedicated window, > ;; does not trigger quit-restore-window anymore > ;; resulting in an undesirable buffer being displayed in place. > > > What is the desired behavior of a dedicated window here ? > Must *Messages* be displayed after we killed *Backtrace* in the first > place ? I think so, yes. > I am suspecting that the locale value of `kill-buffer-hook' in > *Backtrace* is interfering with this test but I have difficulties to > find its human readable form. I doubt that. It's probably due to my fix for Bug#48493. When *Messages* is killed, the window should have no more previous buffers to display and we should be able to kill it. But `switch-to-prev-buffer' shows the "next" buffer instead. Try to come up with a solution that does not reintroduce Bug#48493 and deletes the window when no previous buffer is found. martin From unknown Sun Jun 15 08:59:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#48493: 28.0.50; quit-window doesn't work Resent-From: pillule Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 25 May 2021 01:59:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48493 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: fixed To: martin rudalics Cc: pillule , Sujith Manoharan , 48493@debbugs.gnu.org Received: via spool by 48493-submit@debbugs.gnu.org id=B48493.162190792420755 (code B ref 48493); Tue, 25 May 2021 01:59:02 +0000 Received: (at 48493) by debbugs.gnu.org; 25 May 2021 01:58:44 +0000 Received: from localhost ([127.0.0.1]:44236 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1llMLA-0005Od-6g for submit@debbugs.gnu.org; Mon, 24 May 2021 21:58:44 -0400 Received: from mx1.riseup.net ([198.252.153.129]:38572) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1llML5-0005OM-26 for 48493@debbugs.gnu.org; Mon, 24 May 2021 21:58:39 -0400 Received: from fews1.riseup.net (fews1-pn.riseup.net [10.0.1.83]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.riseup.net", Issuer "Sectigo RSA Domain Validation Secure Server CA" (not verified)) by mx1.riseup.net (Postfix) with ESMTPS id 4Fpy0j22shzDqC8; Mon, 24 May 2021 18:58:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1621907909; bh=xgbE9rwuA9hKBo1a8JafTtsbCZQSF58e59JZ74Pg9bU=; h=References:From:To:Cc:Subject:In-reply-to:Date:From; b=NhoFt12Ltmjl4BaL6Q9oTH9ba4LnkBGxp1qk3mAAuhZaVLYkq+4aVHm94tWp28Atz DY1C079vMwE1eOpsh5TZn5a/lrC9Wh/oXWhkhWatAwhivivRkg9vYEYDTa01r6Xjtw Yq6fJ5JCRkWJUobiS+MEh+P/vfUx0osJSWKKwD+w= X-Riseup-User-ID: 699BCADBDC4C1D31BF52FBE1F0BBC22CDFE5AE5B566986E56D65EF064F66951D Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews1.riseup.net (Postfix) with ESMTPSA id 4Fpy0g27xbz5vbM; Mon, 24 May 2021 18:58:26 -0700 (PDT) References: <87h7j0wwkf.fsf@gmail.com> <87cztg41zy.fsf@host.localdomain> From: pillule In-reply-to: Date: Tue, 25 May 2021 01:58:22 +0000 Message-ID: <878s434ls1.fsf@host.localdomain> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) >> What is the desired behavior of a dedicated window here ? >> Must *Messages* be displayed after we killed *Backtrace* in the >> first >> place ? > > I think so, yes. Then I suppose that the dedicated window parameter must be restored after a kill-buffer accordingly; this solve the previous test but ask for more modifications. I am testing a version of this. > [...] When > *Messages* is killed, the window should have no more previous > buffers to > display and we should be able to kill it. But > `switch-to-prev-buffer' > shows the "next" buffer instead. Try to come up with a solution > that > does not reintroduce Bug#48493 and deletes the window when no > previous > buffer is found. I can modify to `switch-to-prev-buffer' (and its sibling `switch-to-prev-buffer') to return nil instead of the current buffer; however the result is the same : the window rest in place with an undesired buffer inside. Note that we may want that anyway if it can solve the cases where `quit-restore-window' display the same buffer again. I am still looking to find what may be messing the prev-buffers list. -- From unknown Sun Jun 15 08:59:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#48493: 28.0.50; quit-window doesn't work Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 25 May 2021 06:51:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48493 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: fixed To: pillule Cc: Sujith Manoharan , 48493@debbugs.gnu.org Received: via spool by 48493-submit@debbugs.gnu.org id=B48493.1621925422931 (code B ref 48493); Tue, 25 May 2021 06:51:02 +0000 Received: (at 48493) by debbugs.gnu.org; 25 May 2021 06:50:22 +0000 Received: from localhost ([127.0.0.1]:44531 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1llQtR-0000Ex-S6 for submit@debbugs.gnu.org; Tue, 25 May 2021 02:50:22 -0400 Received: from mout.gmx.net ([212.227.17.20]:60009) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1llQtQ-0000Ej-7X for 48493@debbugs.gnu.org; Tue, 25 May 2021 02:50:20 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1621925411; bh=q1S9SA7oo7Jld30Occ5maz85VMGzUcQmogVPcP7rzfs=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=Ph86PzaxMj3edhgbh5ulbAFhDcBoDNNviPHQoo1C0NqmzC8KRdRdBCRKXyQSLgUng dOJnRD6xz7+EuNNkGBRwMfnm3duaaO3Sht6TAlkD6bBvo3aUvgaklaBiK5CYF7nt0f fi3DOSZmy/MgrcS6del5aSozTGxHYbTEC1f+xzJU= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.1.100] ([213.142.96.13]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MOREc-1m4ibN0lNG-00Pvu0; Tue, 25 May 2021 08:50:11 +0200 References: <87h7j0wwkf.fsf@gmail.com> <87cztg41zy.fsf@host.localdomain> <878s434ls1.fsf@host.localdomain> From: martin rudalics Message-ID: Date: Tue, 25 May 2021 08:50:10 +0200 MIME-Version: 1.0 In-Reply-To: <878s434ls1.fsf@host.localdomain> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:4WRWy6zJuNrUXC41JhSPOkqJWvcuhQtHULJxtAUZGVYKm1KAD1R ihASBbimyB+sANOUP87gar+22Yl9SfE3N1AIk9oHU4O/KnrqQTGQ4ZEmcIuXxhDx4m68mg1 1/0IvJKf6TiNfD06rEVVF+/dVCKZ5JcNiPEi1pufUPxWX0AhuyFzMSmKCs4gSsxH4IAcT6v RJ8iXA+Q/nwgDKMF1cMvA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:4uczqfUGkRc=:Rp9BR4c722PeCU0C4zP+Fh SW+xEF30RmuJW6/mtaf5UhKJVUC2W8OdCGTi3x+9Us+R6E3x20SQFTge4s7ZfVWHFDP8AMgVE XYEnrh0zSfb1g+iqsY8Q+2eBm7xIMf3TDlkyyDcJXDrzTKMTHNo4FkQHFbVZMGFPk3bfkECAW oRhEtFbIWWrlKe7KmAtkB94xLx60oKeIpbzfSrkzELnPhR1e6vHKAGfCMY8510+3lIWEjhOMA 7qh0PVcZn2LSPEKjxCNMtKtX4+wtyrPMhSmjDdPE8Pnf1dsXl3A/yrMo+3EOkXfG2+T6IIB7U wbq7CAXdFhIe00I1FxWt0VT6WvjMRofeqigsJk1TrABm5sP0DbwgSxJ2ti86hs2U5/UuW3Kcl vVFvr+oCzDGzDwt2U4Ux4H2SRoQeJyvX0xGaf6+aqW8hMM2AdOBSEBa7vso0LFuAle5rkhPGY 7rPZ361v+160Ix+Mphx2JbmtbO8Wnrlqy0+Di6zznmg0SJqSe1vSQhuUG7VdLZb2A1ULlehXr FKvFQVFcD84BjZV11cRQjllEPEpqx3QT1YeyjkpsxDIEss7k3qG8bzzDp4XQ4tg8H41ywJVRt NBUcn6Kgg0pUf6UTKoUkrv2GNdEEjWLFRRFTpnPZDag694S9ilZajgNmRy3lV4penC8Rf9pFE nK/xT7MFvu+jIB/sMCRplGWWJVxLPSuU/AbVTNJ6HWEXTSksBeXdwjmodET3NdLNQuOXpr8Hv SNuyfTWl0a+FJtMqdARiPYNDtH7xOdmv9I4dLWYVl6dNn2cT2uqawIZFjGN888sqLhDstoAL0 8Qqi8jPnBxcvj4HTmtf9Hkne+EiSEHgL2TnS4Ch7hFa0YjatOzh4siqnYuItx66e/4/odOYZo FftquKHs8NoEdq2VGp+jTJBeCNgR8PZY65nFCuUs4KvY2DljI1wH0rgrEiz/D66E9nlFiD9f2 cxd7DTIJJEDRpDDJ3eBMRcd6P0pkCCZPXFHy8GbYt4sYUIuDlJuhzU23F0DSfDiXwRZ3BIAnS LTwS4OkecW3CgEVR2cA1T7Ldn8uhQF1NffUmFlepMqVp+XJliTtBSAofpnOcvWpsA+P4/RAr8 FF0bZdTJ+F7OPs6Yu2whA3OittjwDWJpH3B X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) > Then I suppose that the dedicated window parameter must be restored > after a kill-buffer accordingly; this solve the previous test but > ask for more modifications. Who makes any of these buffers dedicared? > I can modify to `switch-to-prev-buffer' (and its sibling > `switch-to-prev-buffer') to return nil instead of the current buffer; > however the result is the same : the window rest in place with an > undesired buffer inside. > Note that we may want that anyway if it can solve the cases where > `quit-restore-window' display the same buffer again. > > I am still looking to find what may be messing the prev-buffers list. Try to experiment with an idiom like (if prev-buffer ;; If a previous buffer exists, try to switch to it. If that ;; fails for whatever reason, try to delete the window. (unless (switch-to-prev-buffer window bury-or-kill) (window--delete window nil (eq bury-or-kill 'kill))) ;; If no previous buffer exists, try to delete the window. If ;; that fails for whatever reason, try to switch to some other ;; buffer. (unless (window--delete window nil (eq bury-or-kill 'kill)) (switch-to-prev-buffer window bury-or-kill))) martin From unknown Sun Jun 15 08:59:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#48493: 28.0.50; quit-window doesn't work Resent-From: pillule Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 25 May 2021 13:02:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48493 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: fixed To: martin rudalics Cc: pillule , Sujith Manoharan , 48493@debbugs.gnu.org Received: via spool by 48493-submit@debbugs.gnu.org id=B48493.162194769022179 (code B ref 48493); Tue, 25 May 2021 13:02:02 +0000 Received: (at 48493) by debbugs.gnu.org; 25 May 2021 13:01:30 +0000 Received: from localhost ([127.0.0.1]:44944 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1llWgZ-0005lc-97 for submit@debbugs.gnu.org; Tue, 25 May 2021 09:01:28 -0400 Received: from mx1.riseup.net ([198.252.153.129]:53838) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1llWgQ-0005lI-Tc for 48493@debbugs.gnu.org; Tue, 25 May 2021 09:01:19 -0400 Received: from fews2.riseup.net (fews2-pn.riseup.net [10.0.1.84]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.riseup.net", Issuer "Sectigo RSA Domain Validation Secure Server CA" (not verified)) by mx1.riseup.net (Postfix) with ESMTPS id 4FqDjP241JzDsDs; Tue, 25 May 2021 06:01:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1621947673; bh=Fvv3e2yGialX+JYlorPqK3rZO3UQSV2CoH4ynFwe01M=; h=References:From:To:Cc:Subject:In-reply-to:Date:From; b=HeiwBVr+Kp4NJBTGTTyG5b5yDppTXtTjNMPLXjOGigIYhNyAl3aWc5Jxx+gEiPpZQ 6KrbSpecx5rdC1KJFJkFd/Zt1AyNOx7OKEZrzzXbYXo1rpvky8C02qKzCgoFWCXjmy eTn4316G+59C+J8V0U3VrpbsB8bj9zPutoVEtKeo= X-Riseup-User-ID: 06144BC4119548D9F97A5D581487C9F7D1694B9A26D311623AFBE08A16F1A8DF Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews2.riseup.net (Postfix) with ESMTPSA id 4FqDjM28Z1z1y6h; Tue, 25 May 2021 06:01:10 -0700 (PDT) References: <87h7j0wwkf.fsf@gmail.com> <87cztg41zy.fsf@host.localdomain> <878s434ls1.fsf@host.localdomain> From: pillule In-reply-to: Date: Tue, 25 May 2021 13:01:05 +0000 Message-ID: <877djn3r3i.fsf@host.localdomain> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) martin rudalics writes: >> Then I suppose that the dedicated window parameter must be >> restored >> after a kill-buffer accordingly; this solve the previous test >> but >> ask for more modifications. > > Who makes any of these buffers dedicared? All windows created by `display-buffer-in-side-window' have the state (dedicated . side) Tiers libraries such as the module popup from Doom emacs come at this subject with the rule : --quitting/killing a buffer in a side window, always delete its window-- (it is done with a local value of kill-buffer-hook installed from their own `display-buffer-alist') instead of the rule : --quitting/killing a buffer in any window, 1 switch to its previous buffer 2 delete the window if no available 3 switch to another buffer if the window is not deletable-- Which is what I think you are asking and IMHO ask to deal with the dedicated window state to not cripple side-windows. >> I can modify to `switch-to-prev-buffer' (and its sibling >> `switch-to-prev-buffer') to return nil instead of the current >> buffer; >> however the result is the same : the window rest in place with >> an >> undesired buffer inside. >> Note that we may want that anyway if it can solve the cases >> where >> `quit-restore-window' display the same buffer again. >> >> I am still looking to find what may be messing the prev-buffers >> list. > > Try to experiment with an idiom like > > (if prev-buffer > ;; If a previous buffer exists, try to switch to it. > If that > ;; fails for whatever reason, try to delete the > window. > (unless (switch-to-prev-buffer window bury-or-kill) > (window--delete window nil (eq bury-or-kill 'kill))) > ;; If no previous buffer exists, try to delete the > window. If > ;; that fails for whatever reason, try to switch to some > other > ;; buffer. > (unless (window--delete window nil (eq bury-or-kill > 'kill)) > (switch-to-prev-buffer window bury-or-kill))) Thanks for the snippet, I think I am confused by this window dedication, please help me to clarify my mind before I try to implement a solution with or without the dedicated window state. -- From unknown Sun Jun 15 08:59:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#48493: 28.0.50; quit-window doesn't work Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 25 May 2021 16:30:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48493 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: fixed To: pillule Cc: Sujith Manoharan , 48493@debbugs.gnu.org Received: via spool by 48493-submit@debbugs.gnu.org id=B48493.162196014312381 (code B ref 48493); Tue, 25 May 2021 16:30:02 +0000 Received: (at 48493) by debbugs.gnu.org; 25 May 2021 16:29:03 +0000 Received: from localhost ([127.0.0.1]:46623 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1llZvT-0003Dd-3n for submit@debbugs.gnu.org; Tue, 25 May 2021 12:29:03 -0400 Received: from mout.gmx.net ([212.227.17.22]:48005) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1llZvQ-0003D6-SL for 48493@debbugs.gnu.org; Tue, 25 May 2021 12:29:02 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1621960130; bh=+sXrPRRBBexsC0DGkVCuuJbregypxPx43skTCA2jZQI=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=GAimk2wJTROz6nu97pzp0g4eY7dCyCYjRJj06RqCdCxdTYncXB+KF2RGXw0Gles+d Fy14bYXqex2u96iY9TbB2q0hTiPIapPJcItwPRzKkQW8JtEHiAr/DEcX8IZkSi08gL QovoUmlNGpvn2ngqucKfPA/KHE2ylAuk04btG9C4= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.1.100] ([213.142.96.199]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MaJ81-1lxRt11Vrh-00WDXP; Tue, 25 May 2021 18:28:50 +0200 References: <87h7j0wwkf.fsf@gmail.com> <87cztg41zy.fsf@host.localdomain> <878s434ls1.fsf@host.localdomain> <877djn3r3i.fsf@host.localdomain> From: martin rudalics Message-ID: Date: Tue, 25 May 2021 18:28:48 +0200 MIME-Version: 1.0 In-Reply-To: <877djn3r3i.fsf@host.localdomain> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:0iRnRAJU+1OgdCSXz4tzmFa0t4wIT0pe6a/ugxtctEhy+XZC7al tCZ/wjh+QLTizv0OfJig/c0TGVOHsSyW++69IDjUJr+Z3h4N4Arngd9yQd2JId8z7q9K/Yq EpKk4T3ltYv2CDzmDBIF2eoAdY+wkodKa8ZquRZaxX5fLm/zML5kSEjcEJWjXRE5HSkz+8k DDB1hef2aXFG5oF3TFqlQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:arBuzWwi3W0=:mTmhy+B05cIx7LViwOJI4c o3ezK/55tjTlS7DG/2s06FFa4Xing9eVq7tL9NudlPn1kWENbIJdUujoBvtO1rOk7euj+AYbS tL0miPwBaYFS4klGeo0oQBZnKuqpzeAW2Ij321deYWyI+msKo9SkaFZTL2czy8ppov2BipC3v 6L2nWaF0/dMRRMPFeXGetnp4GyVviAF/a5BBufa/YLWnD67QE78wPP+VhwvvsynhEc2N5+s+G oi1Q7PMpRF1JszWnOJpDF1eKLm46dzs6AHQmMU8ZkN7D/hdy7ArzBMPU3byvjaLT78TcOYfhd gRqpPuA5ImQKE8awgt2lRKTDA+46zoP3hxqc9f9eKzLziBXtEQv4OQ1wKy4pt2z70sEgFxbsm z7uKEtSF7C0HmLWww2QdUsZumQJG/UgfOzy3V92VjyNoZtonZCc1ICeWdVtGzkfBv1lD3/fWD 3gvxzNoIjuSpxLW8UD4YoTCZRUJNRpiKUIVq1UCtDmhailfAcppZiLKxBM7a/6RZG2NKloq+/ t24GUJ2GOn9NTErKTLwOeKXB1MhWZesHG171wgY1g+Lgm90SuawyyaCv3BJGbdr9F5Hw+4I9P S1MavSECT78zn5dTrg6BApbmoEiomRBS4ieSbNFN8IFFp4tzxYrp/E7TSgISZwVo0+sy1v0lz GcgbozgtkSS9/rchXWasjhV4YtYFeqkoTky0fwox32kMJnTbxZuVP+tFhppJNjhDrnDligfLo JnyAycao9ZGFHGmIgg1d8uKr6oCactLs9SkDESLh/X/IU53APVHjqHucUrxdqsK8onpatw858 VQR0MQD9HLH2Nq2nr2iGv0ur2PmxbjbTz/MVHLPQ3k02nJNwUHC8QscelmRZixNWCyvD7codn qqjUpcaFv6RI5pUCu9AwKVvLkeEYgwXrZJeoFg3n9NkPvskrcrNo6P6Rwd6KqWsvWBUUOCxc+ jf5jSEqp+V7DjRGxt8LQCH7sQrymFltiaDXkU9ihT1Viy8GwsyUIc2htNldnWbv6YWjCfqOaW CfB8FFi5Mj5zQUSo3tUwqncfRP0QAsU25aP/y+DLUw9z0Iauo651471PfHinyUv9vrbVZ3mR4 DECejTH6sZv8fPgQ/q+WgUot66f6YDehJav06QBGhRKxTqeNM5GLcmPZCKuhx7Vh5Tia7QtKU dKAQsqFXgjYxWpbvkizTTem/ucW9DKmEQ4cJo6S/SCGl/eiFKmlDRCkre/a0kPecVBkho= X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) > Which is what I think you are asking and IMHO ask to deal with the > dedicated window state to not cripple side-windows. You're right, I forgot that side windows are by default dedicated to their buffers. The dedicated flag in a side window serves to prevent "normal" buffer display to "avoid" that window. A side window may be reused for showing another buffer only by `display-buffer-in-side-window'. This sense of dedication is somewhat different from the normal sense where killing the buffer always attempts to delete its dedicated windows (and maybe their frames too) first. Hence it is perfectly valid to switch to the previous buffer here - any such buffer was meant to be displayed in that side window. It would be, however, invalid to switch to some buffer that was never shown in that window here. Note in this context that we can always delete a side window, a side window can never be alone on its frame. > Thanks for the snippet, I think I am confused by this window dedication, > please help me to clarify my mind before I try to implement a solution > with or without the dedicated window state. So maybe something like this might cut it: (if (and prev-buffer (memq (window-dedicated-p window) '(nil side))) ;; If a previous buffer exists, try to switch to it. If that ;; fails for whatever reason, try to delete the window. (unless (switch-to-prev-buffer window bury-or-kill) (window--delete window nil (eq bury-or-kill 'kill))) ;; If no previous buffer exists, try to delete the window. If ;; that fails for whatever reason, try to switch to some other ;; buffer. (unless (window--delete window nil (eq bury-or-kill 'kill)) (switch-to-prev-buffer window bury-or-kill))) Tell me whether this works with DOOM's `kill-buffer-hook'. If you feel that it's more natural to delete the window in the case at hand, we can consider that too. But suppose someone uses such a side window for something more permanent like a compile or shell buffer and the backtrace buffer kicked in only accidentally, then deleting the side window when killing the backtrace buffer might not be a good idea. martin From unknown Sun Jun 15 08:59:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#48493: 28.0.50; quit-window doesn't work Resent-From: pillule Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 26 May 2021 16:11:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48493 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: fixed To: martin rudalics Cc: pillule , Sujith Manoharan , 48493@debbugs.gnu.org Received: via spool by 48493-submit@debbugs.gnu.org id=B48493.162204543010166 (code B ref 48493); Wed, 26 May 2021 16:11:02 +0000 Received: (at 48493) by debbugs.gnu.org; 26 May 2021 16:10:30 +0000 Received: from localhost ([127.0.0.1]:49775 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1llw74-0002dt-30 for submit@debbugs.gnu.org; Wed, 26 May 2021 12:10:30 -0400 Received: from mx1.riseup.net ([198.252.153.129]:42002) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1llw71-0002df-RI for 48493@debbugs.gnu.org; Wed, 26 May 2021 12:10:28 -0400 Received: from fews2.riseup.net (fews2-pn.riseup.net [10.0.1.84]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.riseup.net", Issuer "Sectigo RSA Domain Validation Secure Server CA" (not verified)) by mx1.riseup.net (Postfix) with ESMTPS id 4FqwsB0cv6zDxX2; Wed, 26 May 2021 09:10:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1622045422; bh=Et77wjCIqcw11JKKXyK703c9kLs06GRgDgPLJxa2h/s=; h=References:From:To:Cc:Subject:In-reply-to:Date:From; b=RicC0tk0JLDHTGig211TkhwjjQupKAuzxWDFKVC18mCfah8UCvmeQvIAcosf8oPZJ SQoViEKkGdB+vY7KXaRSVt9XFyqYzkEUOfuxiwwMbX6FJb/MCE2ExGfGQTUYJPx+44 mNcQBRUKGQuzj0/whpMf8Medg7CQgjak2vxtTSnc= X-Riseup-User-ID: 426B03E65F47446D25E0971954A1335A7C685987744F624E646E6AE9D9C6D2D0 Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews2.riseup.net (Postfix) with ESMTPSA id 4Fqws72gWTz1y6h; Wed, 26 May 2021 09:10:18 -0700 (PDT) References: <87h7j0wwkf.fsf@gmail.com> <87cztg41zy.fsf@host.localdomain> <878s434ls1.fsf@host.localdomain> <877djn3r3i.fsf@host.localdomain> From: pillule In-reply-to: Date: Wed, 26 May 2021 16:10:15 +0000 Message-ID: <8735u94gt4.fsf@host.localdomain> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --=-=-= Content-Type: text/plain martin rudalics writes: > The dedicated flag in a side window serves to prevent "normal" buffer > display to "avoid" that window. A side window may be reused for showing > another buffer only by `display-buffer-in-side-window'. This sense of > dedication is somewhat different from the normal sense where killing the > buffer always attempts to delete its dedicated windows (and maybe their > frames too) first. > > Hence it is perfectly valid to switch to the previous buffer here - any > such buffer was meant to be displayed in that side window. It would be, > however, invalid to switch to some buffer that was never shown in that > window here. Note in this context that we can always delete a side > window, a side window can never be alone on its frame. Yes. > Tell me whether this works with DOOM's `kill-buffer-hook'. I can test the changes against a version of DOOM, yes. For the draft below it seems to be ok, but keep in mind that their library bypass these parts window.el > If you feel that it's more natural to delete the window in the case at > hand, we can consider that too. Not at all. For me it is ok with switch-to-prev-buffer, if users want to delete the window and/or buffer explicitly, they have commands for that. In the case of DOOM it is implemented as a workaround against some bugs, it is explicated in : (+popup/quit-window) Documentation The regular quit-window sometimes kills the popup buffer and switches to a buffer that shouldn't be in a popup. We prevent that by remapping quit-window to this commmand. So here is the *draft* that pass the previous cases of this thread. `replace-buffer-in-windows' take care of killing buffers. I restore the dedication of side-window because : 1. it seems to me it is the right think to do, and it prevents 2. 2. I lost the trace when we kill a buffer and no previous-buffer is found but still an undesirable buffer replace the current, is it in the C part ? I can't inspect C... --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Better-handling-of-side-windows.patch Content-Description: better handling of side windows >From 8305210da9e2215a8b38cd5cf88cd4c6c856fa0b Mon Sep 17 00:00:00 2001 From: Trust me I am a doctor Date: Wed, 26 May 2021 15:40:39 +0200 Subject: [PATCH] Better handling of side-windows * lisp/window.el (switch-to-prev-buffer) : Return nil when prev-buffer unavailable (switch-to-next-buffer) : Return nil when next-buffer unavailable (replace-buffer-in-windows) : Does not systematically delete side-windows, instead try to `switch-to-prev-buffer' and delete the window only if prev-buffer was unavailable (quit-restore-window) : Add exceptions for side-windows, so it try to to `switch-to-prev-buffer' and delete the window only if prev-buffer was unavailable (bug#48493) --- lisp/window.el | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/lisp/window.el b/lisp/window.el index fd1c617d6b..33f4409fcf 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -4559,11 +4559,11 @@ This function is called by `prev-buffer'." ;; Scan WINDOW's previous buffers first, skipping entries of next ;; buffers. (dolist (entry (window-prev-buffers window)) - (when (and (setq new-buffer (car entry)) + (when (and (not (eq (car entry) old-buffer)) + (setq new-buffer (car entry)) (or (buffer-live-p new-buffer) (not (setq killed-buffers (cons new-buffer killed-buffers)))) - (not (eq new-buffer old-buffer)) (or (null pred) (funcall pred new-buffer)) ;; When BURY-OR-KILL is nil, avoid switching to a ;; buffer in WINDOW's next buffers list. @@ -4726,11 +4726,11 @@ This function is called by `next-buffer'." ;; Scan WINDOW's reverted previous buffers last (must not use ;; nreverse here!) (dolist (entry (reverse (window-prev-buffers window))) - (when (and (setq new-buffer (car entry)) + (when (and (not (eq (car entry) old-buffer)) + (setq new-buffer (car entry)) (or (buffer-live-p new-buffer) (not (setq killed-buffers (cons new-buffer killed-buffers)))) - (not (eq new-buffer old-buffer)) (or (null pred) (funcall pred new-buffer))) (if (switch-to-prev-buffer-skip-p skip window new-buffer) (setq skipped (or skipped new-buffer)) @@ -4989,10 +4989,14 @@ all window-local buffer lists." (let ((buffer (window-normalize-buffer buffer-or-name))) (dolist (window (window-list-1 nil nil t)) (if (eq (window-buffer window) buffer) - (unless (window--delete window t t) - ;; Switch to another buffer in window. - (set-window-dedicated-p window nil) - (switch-to-prev-buffer window 'kill)) + (let ((dedicated-side (eq (window-dedicated-p window) 'side))) + ;; Try to delete the window, with the exception of side-windows + (when (or dedicated-side (not (window--delete window t t))) + ;; Switch to another buffer in window. + (set-window-dedicated-p window nil) + (if (switch-to-prev-buffer window 'kill) + (and dedicated-side (set-window-dedicated-p window 'side)) + (window--delete window nil 'kill)))) ;; Unrecord BUFFER in WINDOW. (unrecord-window-buffer window buffer))))) @@ -5040,6 +5044,7 @@ nil means to not handle the buffer in a particular way. This (dolist (buf (window-prev-buffers window)) (unless (eq (car buf) buffer) (throw 'prev-buffer (car buf)))))) + (dedicated (window-dedicated-p window)) quad entry) (cond ((and (not prev-buffer) @@ -5084,6 +5089,8 @@ nil means to not handle the buffer in a particular way. This ;; Restore WINDOW's previous buffer, start and point position. (set-window-buffer-start-and-point window (nth 0 quad) (nth 1 quad) (nth 2 quad)) + ;; Preserve the side-window dedication + (when (eq dedicated 'side) (set-window-dedicated-p window 'side)) ;; Deal with the buffer we just removed from WINDOW. (setq entry (and (eq bury-or-kill 'append) (assq buffer (window-prev-buffers window)))) @@ -5110,9 +5117,18 @@ nil means to not handle the buffer in a particular way. This (set-window-parameter window 'quit-restore nil) ;; Make sure that WINDOW is no more dedicated. (set-window-dedicated-p window nil) - (unless (switch-to-prev-buffer window bury-or-kill) - ;; Delete WINDOW if there is no previous buffer (Bug#48367). - (window--delete window nil (eq bury-or-kill 'kill))))) + (if (and prev-buffer (eq dedicated 'side)) + ;; If a previous buffer exists, try to switch to it and + ;; to preserve the side-window dedication. If that + ;; fails for whatever reason, try to delete the window. + (if (switch-to-prev-buffer window bury-or-kill) + (set-dedicated-window-p window 'side) + (window--delete window nil (eq bury-or-kill 'kill))) + ;; If no previous buffer exists, try to delete the window. If + ;; that fails for whatever reason, try to switch to some other + ;; buffer. + (unless (window--delete window nil (eq bury-or-kill 'kill)) + (switch-to-prev-buffer window bury-or-kill))))) ;; Deal with the buffer. (cond -- 2.20.1 --=-=-= Content-Type: text/plain I will pass the rest of they day to look at ERT to see if I can learn how to write reusable tests and see if this discussion needs to be reflected in the documentation. -- --=-=-=-- From unknown Sun Jun 15 08:59:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#48493: 28.0.50; quit-window doesn't work Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 27 May 2021 07:48:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48493 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: fixed To: pillule Cc: Sujith Manoharan , 48493@debbugs.gnu.org Received: via spool by 48493-submit@debbugs.gnu.org id=B48493.162210165320424 (code B ref 48493); Thu, 27 May 2021 07:48:02 +0000 Received: (at 48493) by debbugs.gnu.org; 27 May 2021 07:47:33 +0000 Received: from localhost ([127.0.0.1]:50557 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lmAjs-0005JM-No for submit@debbugs.gnu.org; Thu, 27 May 2021 03:47:33 -0400 Received: from mout.gmx.net ([212.227.17.21]:53749) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lmAjr-0005J9-Mk for 48493@debbugs.gnu.org; Thu, 27 May 2021 03:47:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1622101642; bh=CN1kx9Ctp+k5ox/P1RKXRy7dCeB69/Ex0G59bJZqDHc=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=fc/2vfpOUMDnHjn+TsXmxI12Fp/MB4H1Q8yB8LWaGclfGk77kKWCRniv1oHCgCazF ZvL9OJMOls8arbjEj2LUJOQeDAAMo6Q4OFN/3YtZuFOBiZ2vsAV/hdqmvpjOxxiEFQ N4iHapGdgecQTNn66/ZccV4t6F/cV4T/MY9ndyZs= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.1.100] ([212.95.5.167]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MbivG-1l9FLg27lW-00dDaz; Thu, 27 May 2021 09:47:22 +0200 References: <87h7j0wwkf.fsf@gmail.com> <87cztg41zy.fsf@host.localdomain> <878s434ls1.fsf@host.localdomain> <877djn3r3i.fsf@host.localdomain> <8735u94gt4.fsf@host.localdomain> From: martin rudalics Message-ID: Date: Thu, 27 May 2021 09:47:20 +0200 MIME-Version: 1.0 In-Reply-To: <8735u94gt4.fsf@host.localdomain> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:4+N0nOz2K/5w9Kun0eEqlUNBMJIC9E3HRXQBOh70hhpmWkq514V AdUuaj3vAvyRLAGGhCacupJ4Rm9yCO5NMFpSr292RYCnHzTcVRjXLfSzmKqt+v6x2Wg4Flk Xmhgzd30NivqXTLbarm7GmFvzu9WUxpo8n7cTgBZrONYxI/q56fxMtxcCd+DbBz3npQGfw7 nhI+WVDQy6GMKpiKGAOqQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:FZvvdreTdIg=:6OIHxspVjuW++mrJZFZM9V 8R7veGVlyJwJFbK7RGz6bIklyrnOX/D5Fcg7YAD1K470AOXkIoNS1N6tXvYi6Pt9rv5AL4/0d NnZsEUEgnbD0anot9uWHB5M41HFqGhfsnZprurcOhN7wanaz9XEMnOvSplabQp+S6x0bUJXjB u9SDCiqdeq1jok2RjkSi2FDJGK5w5jPrsqCBj6u62b9ie4dT5a6nMl5qL2jS9BSwKXBwjb2hC lEMTYyN7RfSyd2vCbIMLBY4ZgFXYGE/5MzmMMRCbQYzIl5CxLR3ck8xahIcBHLOUBKx0TjOKZ n8/3mm6pZt00wdOJnZ9PTZuxwZp3vR2AiMykCv9qUKtddFTbmgFrth1u90m/ChGOVM1/4g5Kh nTnr9E0aZ3rH4F7v00Lm2ngrYw7dDZs/VzJjKPTPj1SkpVJcicw726YPq5XewMkWl3FGvVZ7x xuu4mviLB8XuxbdWqtipBsmKNvhg29MnXF/NvvP9mznuixTLan9vIjXLSluowNsI16RQv/jko qORMVydBik3RR0J8CKTfETtVq72XtYu6GMDINSXKWkbw68w7zmrzwlkGW0br+SDzWDjdWbHpe 2qIC8WYN9ZGUAPGRHpO18RKHpyJtKzB6VB3dPjJFV0uoHJN3RMmOqi/TldziLXWznp8wqvmVr hKKrwJIT/eRDpTSK0nUSoU4vNSZghnPdluhyVbUS8Y24/N+b+33JRzt6p3sjMTnLoWBtHsBNs L9sIVjNNpqwX9te4gRW09MLoxFw2acEh4MSiLA35oIBN6roAxPFrnNpfdQVW0ST5Fqn/59HBd lGKNJSSJTs4GystVkUCXL4sVznFzcvb8mtwaHdDxyiKxD3+SVZ+YSUlzACPglQOisOXPdEdza bh5b95CBXYqm8Wvkd2efI6N1+9C+VCBxNVfFrzgmM+hT7GoHBxn542i2Z/2AjvuujHR9mYdPB HCgKik8B505egK0eroPD+05wrOuokdi03lSMHGyRxr2JMMnmZNvetHuLkuSenakxiETGJrY3i tJSy97WFZ/660TYdHCVeM1x39hudnIBqVroZdgrjUUh91TcBd58D9hOZHibS/bM0aJ5/L3iao 5+F1V5cbnCaYWzRwPcUvnAj5kf6dHMNnSDYICgXruvdrbuZOf5v16Zc/WDoEpLQ62zohkNTb5 yFZ14EJOs9y5jpW+PxCHXBUv1lfZkEBqPqV+lHWE0OLuEs7u4XRGRQl1bs0TE/eA88Tdk= X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) > I can test the changes against a version of DOOM, yes. For the draft below > it seems to be ok, but keep in mind that their library bypass these parts > window.el You already told me so. >> If you feel that it's more natural to delete the window in the case at >> hand, we can consider that too. > > Not at all. For me it is ok with switch-to-prev-buffer, if users want to delete > the window and/or buffer explicitly, they have commands for that. In the case of > DOOM it is implemented as a workaround against some bugs, it is > explicated in : > > (+popup/quit-window) > Documentation > The regular quit-window sometimes kills the popup buffer and switches to a > buffer that shouldn't be in a popup. We prevent that by remapping quit-window > to this commmand. Maybe this is precisely the behavior you're trying to fix and their fix won't then be needed any more. > So here is the *draft* that pass the previous cases of this thread. > `replace-buffer-in-windows' take care of killing buffers. > I restore the dedication of side-window because : > 1. it seems to me it is the right think to do, and it prevents 2. This is quite a weakness of the present mechanism and I think you got it right. To summarize your approach: - When we have to replace a buffer in a side window, that window's dedicated status is 'side', and some other buffer is found that was shown there before (it's on the list of that window's _previous_ buffers) we show that other buffer in the window and make sure to restore the window's dedicated status to 'side'. - Otherwise delete the window. Deleting the window is always possible and we have to make sure one thing - never show in a side window a buffer that has not been shown before in that window. This rule should take care of the DOOM workaround. And users who override the behavior sketched here by setting the side window's dedicated status to t should have the window deleted (since that is always possible). Have I got it right? > 2. I lost the trace when we kill a buffer and no previous-buffer is found > but still an undesirable buffer replace the current, > is it in the C part ? I can't inspect C... IIUC you mean the one in `kill-buffer' in buffer.c. `kill-buffer' first calls replace_buffer_in_windows (buffer); which simply calls the Lisp function `replace-buffer-in-windows' for buffer (the buffer to kill) and later on does replace_buffer_in_windows_safely (buffer); That last call will show another buffer in a window if and only if `replace-buffer-in-windows' failed to do its work which is an unusual case - one that should _not_ have happened. But we must, in C, simply make sure that such a failure gets caught since showing a dead buffer in a live window can crash Emacs. So if replace_buffer_in_windows_safely shows another buffer, then something in `replace-buffer-in-windows' was already broken before and we need not bother to clean up things. > I will pass the rest of they day to look at ERT to see if I can learn > how to write reusable tests and see if this discussion needs to be reflected > in the documentation. We have to document it in the Elisp manual. martin From unknown Sun Jun 15 08:59:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#48493: 28.0.50; quit-window doesn't work Resent-From: pillule Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 08 Jun 2021 00:02:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48493 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: fixed To: martin rudalics Cc: pillule , Sujith Manoharan , 48493@debbugs.gnu.org Received: via spool by 48493-submit@debbugs.gnu.org id=B48493.162311050928079 (code B ref 48493); Tue, 08 Jun 2021 00:02:01 +0000 Received: (at 48493) by debbugs.gnu.org; 8 Jun 2021 00:01:49 +0000 Received: from localhost ([127.0.0.1]:56870 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lqPBk-0007Io-6e for submit@debbugs.gnu.org; Mon, 07 Jun 2021 20:01:49 -0400 Received: from mx1.riseup.net ([198.252.153.129]:51690) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lqPBh-0007IX-6E for 48493@debbugs.gnu.org; Mon, 07 Jun 2021 20:01:46 -0400 Received: from fews2.riseup.net (fews2-pn.riseup.net [10.0.1.84]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.riseup.net", Issuer "Sectigo RSA Domain Validation Secure Server CA" (not verified)) by mx1.riseup.net (Postfix) with ESMTPS id 4FzVlR3ZPkzDq8H; Mon, 7 Jun 2021 17:01:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1623110499; bh=AEQFxdXMrvW0GpqzVU9W0ichMvF5+qMDrTIo3lEqfac=; h=References:From:To:Cc:Subject:Date:In-reply-to:From; b=Pm5+aNyBWSlOvqVjgqtTKXXKW6E381W5982+RqwlZ8rkx3E4qoVhfdETepQGOgFYt kRtinGPP+7vVcrcTvGyE1+EUf7yZz5onoCBFcvcLZY/w5Fan6nP9qYGT3hkB2wNbf6 yDEfrmu2xdkY91CV7SWsCzRkHrVe4GKiuFXhyQ4U= X-Riseup-User-ID: 77F4802911ECAF16CFFCC8A919394ECFA4FA9035595EBE8E3BCC662ACEE811AB Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews2.riseup.net (Postfix) with ESMTPSA id 4FzVlP2SDkz1xph; Mon, 7 Jun 2021 17:01:36 -0700 (PDT) References: <87h7j0wwkf.fsf@gmail.com> <87cztg41zy.fsf@host.localdomain> <878s434ls1.fsf@host.localdomain> <877djn3r3i.fsf@host.localdomain> <8735u94gt4.fsf@host.localdomain> From: pillule Date: Tue, 08 Jun 2021 01:23:11 +0200 In-reply-to: Message-ID: <87r1hd8bsd.fsf@riseup.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --=-=-= Content-Type: text/plain; format=flowed martin rudalics writes: > This is quite a weakness of the present mechanism and I think > you got > it right. To summarize your approach: > > - When we have to replace a buffer in a side window, that > window's > dedicated status is 'side', and some other buffer is found > that was > shown there before (it's on the list of that window's > _previous_ > buffers) we show that other buffer in the window and make sure > to > restore the window's dedicated status to 'side'. > > - Otherwise delete the window. Deleting the window is always > possible > and we have to make sure one thing - never show in a side > window a > buffer that has not been shown before in that window. This > rule > should take care of the DOOM workaround. > > And users who override the behavior sketched here by setting the > side > window's dedicated status to t should have the window deleted > (since > that is always possible). > > Have I got it right? Yes. Maybe it is a step toward implementing the `soft' dedication that is mentioned in the comments. Thanks you for the explanations. > We have to document it in the Elisp manual. Here another draft with the info manual changes: >From what I have tested so far, there were more functions that needed to preserve the side dedication. I put in my modeline a token for the window dedication and it was quite useful to spot them (maybe not the clever way but worked). I also grepped into window.el to see if I was missing something without more success. There is a change in the indentation of `quit-restore-window' and I don't know if there is convention in such cases. --=-=-= Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename=0001-Improve-handling-of-dedicated-side-flag-when-quittin.patch Content-Transfer-Encoding: quoted-printable Content-Description: Improve handling of side dedicated flag >From 4327b124afd2169e218509143175d1a20f9f65ce Mon Sep 17 00:00:00 2001 From: Trust me I am a doctor Date: Tue, 8 Jun 2021 01:12:03 +0200 Subject: [PATCH] Improve handling of dedicated side flag when quitting wind= ow Following the discussion on (Bug#48493), restore the dedicated side flag of windows when a buffer change in the window, update the documentation. * doc/lispref/windows.texi (Buffers and Windows): mention the exception of side windows and add a reference. (Buffer Display Action Alists): explicit that `display-buffer-in-side-window' is dedicating to side by default. (Dedicated Windows): add the case (4) and explicit its meaning, add a reference. (Displaying Buffers in Side Windows): move the switch-to-(prev|next)-buffer paragraph into a new item to emphasize the special meaning of dedication for side windows. * lisp/window.el (set-window-buffer-start-and-point): restore side dedication. (switch-to-prev-buffer): corrige the return value that should be nil instead of the same buffer in case of no changement. (switch-to-next-buffer): corrige the return value that should be nil instead of the same buffer in case of no changement. (delete-windows-on): restore side dedication. (replace-buffer-in-windows): update the docstring, restore side dedication. (quit-restore-window): rearrange the logic so hard dedicated windows are eventually deleted first, restore the side dedication, try to `switch-to-prev-buffer' before deleting a side window, fix (Bug#48367) --- doc/lispref/windows.texi | 58 +++++++---- lisp/window.el | 216 ++++++++++++++++++++++----------------- 2 files changed, 159 insertions(+), 115 deletions(-) diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi index 44656c057a..601f59e650 100644 --- a/doc/lispref/windows.texi +++ b/doc/lispref/windows.texi @@ -2172,12 +2172,13 @@ Buffers and Windows the current buffer. =20 The replacement buffer in each window is chosen via -@code{switch-to-prev-buffer} (@pxref{Window History}). Any dedicated -window displaying @var{buffer-or-name} is deleted if possible -(@pxref{Dedicated Windows}). If such a window is the only window on its -frame and there are other frames on the same terminal, the frame is -deleted as well. If the dedicated window is the only window on the only -frame on its terminal, the buffer is replaced anyway. +@code{switch-to-prev-buffer} (@pxref{Window History}). With the +exception of side windows, any dedicated window displaying +@var{buffer-or-name} is deleted if possible (@pxref{Dedicated +Windows}). If such a window is the only window on its frame and there +are other frames on the same terminal, the frame is deleted as well. +If the dedicated window is the only window on the only frame on its +terminal, the buffer is replaced anyway. @end deffn =20 =20 @@ -2994,6 +2995,8 @@ Buffer Display Action Alists any window it creates as dedicated to its buffer (@pxref{Dedicated Windows}). It does that by calling @code{set-window-dedicated-p} with the chosen window as first argument and the entry's value as second. +Side windows are by default dedicated with the value @code{side} +((@pxref{Side Window Options and Functions}). =20 @vindex preserve-size@r{, a buffer display action alist entry} @item preserve-size @@ -4042,18 +4045,19 @@ Dedicated Windows =20 Functions supposed to remove a buffer from a window or a window from a frame can behave specially when a window they operate on is dedicated. -We will distinguish three basic cases, namely where (1) the window is +We will distinguish four basic cases, namely where (1) the window is not the only window on its frame, (2) the window is the only window on -its frame but there are other frames on the same terminal left, and (3) -the window is the only window on the only frame on the same terminal. +its frame but there are other frames on the same terminal left, (3) +the window is the only window on the only frame on the same terminal, +and (4) the dedication's value is @code{side} +(@pxref{Displaying Buffers in Side Windows}). =20 In particular, @code{delete-windows-on} (@pxref{Deleting Windows}) -handles case (2) by deleting the associated frame and case (3) by -showing another buffer in that frame's only window. The function +handles case (2) by deleting the associated frame and case (3) and (4) +by showing another buffer in that frame's only window. The function @code{replace-buffer-in-windows} (@pxref{Buffers and Windows}) which is called when a buffer gets killed, deletes the window in case (1) and behaves like @code{delete-windows-on} otherwise. -@c FIXME: Does replace-buffer-in-windows _delete_ a window in case (1)? =20 When @code{bury-buffer} (@pxref{Buffer List}) operates on the selected window (which shows the buffer that shall be buried), it @@ -4316,6 +4320,26 @@ Displaying Buffers in Side Windows middle slot. Hence, all windows on a specific side are ordered by their @code{slot} value. If unspecified, the window is located in the middle of the specified side. + + +@item dedicated +The dedicated flag is not reserved to this function but have a +slightly different meaning for side windows. They receive it upon +creation with the value @code{side}; it serves to prevent +@code{display-buffer} to uses these windows with others action +functions, and it persists across invocations of @code{quit-window}, +@code{kill-buffer}, @code{previous-buffer} and @code{next-buffer} +(@pxref{note Window History}). In particular, these commands will +refrain from showing, in a side window, buffers that have not been +displayed in that window before. They will also refrain from having a +normal, non-side window show a buffer that has been already displayed +in a side window. A notable exception to the latter rule occurs when +an application, after displaying a buffer, resets that buffer=E2=80=99s lo= cal +variables. To override these rules and always delete a side window +with @code{quit-window} or @code{kill-buffer}, and eventually prevent +the use of @code{previous-buffer} and @code{next-buffer}, set this +value to @code{t} or specify a value for +@code{display-buffer-mark-dedicated}. @end table =20 If you specify the same slot on the same side for two or more different @@ -4336,16 +4360,6 @@ Displaying Buffers in Side Windows action. Note also that @code{delete-other-windows} cannot make a side window the only window on its frame (@pxref{Deleting Windows}). =20 - Once set up, side windows also change the behavior of the commands -@code{switch-to-prev-buffer} and @code{switch-to-next-buffer} -(@pxref{Window History}). In particular, these commands will refrain -from showing, in a side window, buffers that have not been displayed in -that window before. They will also refrain from having a normal, -non-side window show a buffer that has been already displayed in a side -window. A notable exception to the latter rule occurs when an -application, after displaying a buffer, resets that buffer's local -variables. - =20 @node Side Window Options and Functions @subsection Side Window Options and Functions diff --git a/lisp/window.el b/lisp/window.el index fd1c617d6b..f619372af8 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -4424,8 +4424,12 @@ set-window-buffer-start-and-point before was current this also makes BUFFER the current buffer." (setq window (window-normalize-window window t)) (let ((selected (eq window (selected-window))) - (current (eq (window-buffer window) (current-buffer)))) + (current (eq (window-buffer window) (current-buffer))) + (dedicated (window-dedicated-p window))) (set-window-buffer window buffer) + ;; restore the dedicated side flag + (when (eq dedicated 'side) + (set-window-dedicated-p window 'side)) (when (and selected current) (set-buffer buffer)) (when start @@ -4559,11 +4563,11 @@ switch-to-prev-buffer ;; Scan WINDOW's previous buffers first, skipping entries of next ;; buffers. (dolist (entry (window-prev-buffers window)) - (when (and (setq new-buffer (car entry)) + (when (and (not (eq (car entry) old-buffer)) + (setq new-buffer (car entry)) (or (buffer-live-p new-buffer) (not (setq killed-buffers (cons new-buffer killed-buffers)))) - (not (eq new-buffer old-buffer)) (or (null pred) (funcall pred new-buffer)) ;; When BURY-OR-KILL is nil, avoid switching to a ;; buffer in WINDOW's next buffers list. @@ -4726,11 +4730,11 @@ switch-to-next-buffer ;; Scan WINDOW's reverted previous buffers last (must not use ;; nreverse here!) (dolist (entry (reverse (window-prev-buffers window))) - (when (and (setq new-buffer (car entry)) + (when (and (not (eq new-buffer (car entry))) + (setq new-buffer (car entry)) (or (buffer-live-p new-buffer) (not (setq killed-buffers (cons new-buffer killed-buffers)))) - (not (eq new-buffer old-buffer)) (or (null pred) (funcall pred new-buffer))) (if (switch-to-prev-buffer-skip-p skip window new-buffer) (setq skipped (or skipped new-buffer)) @@ -4957,9 +4961,10 @@ delete-windows-on (all-frames (cond ((not frame) t) ((eq frame t) nil) (t frame)))) (dolist (window (window-list-1 nil nil all-frames)) (if (eq (window-buffer window) buffer) - (let ((deletable (window-deletable-p window))) + (let ((deletable (window-deletable-p window)) + (dedicated (window-dedicated-p window))) (cond - ((and (eq deletable 'frame) (window-dedicated-p window)) + ((and (eq deletable 'frame) dedicated) ;; Delete frame if and only if window is dedicated. (delete-frame (window-frame window))) ((eq deletable t) @@ -4968,7 +4973,10 @@ delete-windows-on (t ;; In window switch to previous buffer. (set-window-dedicated-p window nil) - (switch-to-prev-buffer window 'bury)))) + (switch-to-prev-buffer window 'bury) + ;; restore the dedicated side flag + (when (eq dedicated 'side) + (set-window-dedicated-p window 'side))))) ;; If a window doesn't show BUFFER, unrecord BUFFER in it. (unrecord-window-buffer window buffer))))) =20 @@ -4977,10 +4985,10 @@ replace-buffer-in-windows BUFFER-OR-NAME may be a buffer or the name of an existing buffer and defaults to the current buffer. =20 -When a window showing BUFFER-OR-NAME is dedicated, that window is -deleted. If that window is the only window on its frame, the -frame is deleted too when there are other frames left. If there -are no other frames left, some other buffer is displayed in that +With the exception of side windows, when a window showing BUFFER-OR-NAME +is dedicated, that window is deleted. If that window is the only window +on its frame, the frame is deleted too when there are other frames left. +If there are no other frames left, some other buffer is displayed in that window. =20 This function removes the buffer denoted by BUFFER-OR-NAME from @@ -4989,10 +4997,14 @@ replace-buffer-in-windows (let ((buffer (window-normalize-buffer buffer-or-name))) (dolist (window (window-list-1 nil nil t)) (if (eq (window-buffer window) buffer) - (unless (window--delete window t t) - ;; Switch to another buffer in window. - (set-window-dedicated-p window nil) - (switch-to-prev-buffer window 'kill)) + ;; delete dedicated window that are not side windows + (let ((dedicated-side (eq (window-dedicated-p window) 'side))) + (when (or dedicated-side (not (window--delete window t t))) + ;; Switch to another buffer in window. + (set-window-dedicated-p window nil) + (if (switch-to-prev-buffer window 'kill) + (and dedicated-side (set-window-dedicated-p window 'side= )) + (window--delete window nil 'kill)))) ;; Unrecord BUFFER in WINDOW. (unrecord-window-buffer window buffer))))) =20 @@ -5014,6 +5026,10 @@ quit-restore-window parameter to nil. See Info node `(elisp) Quitting Windows' for more details. =20 +If WINDOW have the flag dedicated with the value t, always try to +delete WINDOW, with the value side, restore that value when +WINDOW is not deleted. + Optional second argument BURY-OR-KILL tells how to proceed with the buffer of WINDOW. The following values are handled: =20 @@ -5040,87 +5056,101 @@ quit-restore-window (dolist (buf (window-prev-buffers window)) (unless (eq (car buf) buffer) (throw 'prev-buffer (car buf)))))) + (dedicated (window-dedicated-p window)) quad entry) - (cond - ((and (not prev-buffer) - (eq (nth 1 quit-restore) 'tab) - (eq (nth 3 quit-restore) buffer)) - (tab-bar-close-tab) - ;; If the previously selected window is still alive, select it. - (when (window-live-p (nth 2 quit-restore)) - (select-window (nth 2 quit-restore)))) - ((and (not prev-buffer) - (or (eq (nth 1 quit-restore) 'frame) - (and (eq (nth 1 quit-restore) 'window) - ;; If the window has been created on an existing - ;; frame and ended up as the sole window on that - ;; frame, do not delete it (Bug#12764). - (not (eq window (frame-root-window window))))) - (eq (nth 3 quit-restore) buffer) - ;; Delete WINDOW if possible. - (window--delete window nil (eq bury-or-kill 'kill))) - ;; If the previously selected window is still alive, select it. - (when (window-live-p (nth 2 quit-restore)) - (select-window (nth 2 quit-restore)))) - ((and (listp (setq quad (nth 1 quit-restore))) - (buffer-live-p (car quad)) - (eq (nth 3 quit-restore) buffer)) - ;; Show another buffer stored in quit-restore parameter. - (when (and (integerp (nth 3 quad)) - (if (window-combined-p window) - (/=3D (nth 3 quad) (window-total-height window)) - (/=3D (nth 3 quad) (window-total-width window)))) - ;; Try to resize WINDOW to its old height but don't signal an - ;; error. - (condition-case nil - (window-resize - window - (- (nth 3 quad) (if (window-combined-p window) - (window-total-height window) - (window-total-width window))) - (window-combined-p window t)) - (error nil))) - (set-window-dedicated-p window nil) - ;; Restore WINDOW's previous buffer, start and point position. - (set-window-buffer-start-and-point - window (nth 0 quad) (nth 1 quad) (nth 2 quad)) - ;; Deal with the buffer we just removed from WINDOW. - (setq entry (and (eq bury-or-kill 'append) - (assq buffer (window-prev-buffers window)))) - (when bury-or-kill - ;; Remove buffer from WINDOW's previous and next buffers. - (set-window-prev-buffers - window (assq-delete-all buffer (window-prev-buffers window))) - (set-window-next-buffers - window (delq buffer (window-next-buffers window)))) - (when entry - ;; Append old buffer's entry to list of WINDOW's previous - ;; buffers so it's less likely to get switched to soon but - ;; `display-buffer-in-previous-window' can nevertheless find it. - (set-window-prev-buffers - window (append (window-prev-buffers window) (list entry)))) - ;; Reset the quit-restore parameter. - (set-window-parameter window 'quit-restore nil) - ;; Select old window. - (when (window-live-p (nth 2 quit-restore)) - (select-window (nth 2 quit-restore)))) - (t - ;; Show some other buffer in WINDOW and reset the quit-restore - ;; parameter. - (set-window-parameter window 'quit-restore nil) - ;; Make sure that WINDOW is no more dedicated. - (set-window-dedicated-p window nil) - (unless (switch-to-prev-buffer window bury-or-kill) - ;; Delete WINDOW if there is no previous buffer (Bug#48367). - (window--delete window nil (eq bury-or-kill 'kill))))) + (or ;; first try to delete dedicated windows that are not side windows + (and dedicated (not (eq dedicated 'side)) + (window--delete window 'dedicated (eq bury-or-kill 'kill))) + (cond + ((and (not prev-buffer) + (eq (nth 1 quit-restore) 'tab) + (eq (nth 3 quit-restore) buffer)) + (tab-bar-close-tab) + ;; If the previously selected window is still alive, select it. + (when (window-live-p (nth 2 quit-restore)) + (select-window (nth 2 quit-restore)))) + ((and (not prev-buffer) + (or (eq (nth 1 quit-restore) 'frame) + (and (eq (nth 1 quit-restore) 'window) + ;; If the window has been created on an existing + ;; frame and ended up as the sole window on that + ;; frame, do not delete it (Bug#12764). + (not (eq window (frame-root-window window))))) + (eq (nth 3 quit-restore) buffer) + ;; Delete WINDOW if possible. + (window--delete window nil (eq bury-or-kill 'kill))) + ;; If the previously selected window is still alive, select it. + (when (window-live-p (nth 2 quit-restore)) + (select-window (nth 2 quit-restore)))) + ((and (listp (setq quad (nth 1 quit-restore))) + (buffer-live-p (car quad)) + (eq (nth 3 quit-restore) buffer)) + ;; Show another buffer stored in quit-restore parameter. + (when (and (integerp (nth 3 quad)) + (if (window-combined-p window) + (/=3D (nth 3 quad) (window-total-height window)) + (/=3D (nth 3 quad) (window-total-width window)))) + ;; Try to resize WINDOW to its old height but don't signal an + ;; error. + (condition-case nil + (window-resize + window + (- (nth 3 quad) (if (window-combined-p window) + (window-total-height window) + (window-total-width window))) + (window-combined-p window t)) + (error nil))) + (set-window-dedicated-p window nil) + ;; Restore WINDOW's previous buffer, start and point position. + (set-window-buffer-start-and-point + window (nth 0 quad) (nth 1 quad) (nth 2 quad)) + ;; and restore the dedicated side flag + (when (eq dedicated 'side) (set-window-dedicated-p window 'side)) + ;; Deal with the buffer we just removed from WINDOW. + (setq entry (and (eq bury-or-kill 'append) + (assq buffer (window-prev-buffers window)))) + (when bury-or-kill + ;; Remove buffer from WINDOW's previous and next buffers. + (set-window-prev-buffers + window (assq-delete-all buffer (window-prev-buffers window))) + (set-window-next-buffers + window (delq buffer (window-next-buffers window)))) + (when entry + ;; Append old buffer's entry to list of WINDOW's previous + ;; buffers so it's less likely to get switched to soon but + ;; `display-buffer-in-previous-window' can nevertheless find it. + (set-window-prev-buffers + window (append (window-prev-buffers window) (list entry)))) + ;; Reset the quit-restore parameter. + (set-window-parameter window 'quit-restore nil) + ;; Select old window. + (when (window-live-p (nth 2 quit-restore)) + (select-window (nth 2 quit-restore)))) + (t + ;; Show some other buffer in WINDOW and reset the quit-restore + ;; parameter. + (set-window-parameter window 'quit-restore nil) + ;; Make sure that WINDOW is no more dedicated. + (set-window-dedicated-p window nil) + (if (and prev-buffer (eq dedicated 'side)) ;; (Bug#48367) + ;; If a previous buffer exists, try to switch to it. If that + ;; fails for whatever reason, try to delete the window. + (if (switch-to-prev-buffer window bury-or-kill) + (set-window-dedicated-p window 'side) + (window--delete window nil (eq bury-or-kill 'kill))) + ;; If no previous buffer exists, try to delete the window. If + ;; that fails for whatever reason, try to switch to some other + ;; buffer. + (unless (window--delete window nil (eq bury-or-kill 'kill)) + (switch-to-prev-buffer window bury-or-kill)))))) =20 ;; Deal with the buffer. (cond - ((not (buffer-live-p buffer))) - ((eq bury-or-kill 'kill) - (kill-buffer buffer)) - (bury-or-kill - (bury-buffer-internal buffer))))) + ((not (buffer-live-p buffer))) + ((eq bury-or-kill 'kill) + (kill-buffer buffer)) + (bury-or-kill + (bury-buffer-internal buffer))))) =20 (defun quit-window (&optional kill window) "Quit WINDOW and bury its buffer. --=20 2.20.1 --=-=-= Content-Type: text/plain; format=flowed -- --=-=-=-- From unknown Sun Jun 15 08:59:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#48493: 28.0.50; quit-window doesn't work Resent-From: pillule Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 08 Jun 2021 09:30:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48493 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: fixed To: pillule Cc: martin rudalics , 48493@debbugs.gnu.org, Sujith Manoharan Received: via spool by 48493-submit@debbugs.gnu.org id=B48493.162314456727594 (code B ref 48493); Tue, 08 Jun 2021 09:30:02 +0000 Received: (at 48493) by debbugs.gnu.org; 8 Jun 2021 09:29:27 +0000 Received: from localhost ([127.0.0.1]:57454 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lqY31-0007Aw-9d for submit@debbugs.gnu.org; Tue, 08 Jun 2021 05:29:27 -0400 Received: from mx1.riseup.net ([198.252.153.129]:47108) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lqY2v-0007Af-Dq for 48493@debbugs.gnu.org; Tue, 08 Jun 2021 05:29:21 -0400 Received: from fews2.riseup.net (fews2-pn.riseup.net [10.0.1.84]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.riseup.net", Issuer "Sectigo RSA Domain Validation Secure Server CA" (not verified)) by mx1.riseup.net (Postfix) with ESMTPS id 4FzlLH4k7MzDsst; Tue, 8 Jun 2021 02:29:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1623144551; bh=W4L41h8tMGoC1lgT/wmBJ0+CHy+iJ4qpDCx9cjt/P4M=; h=References:From:To:Cc:Subject:Date:In-reply-to:From; b=ao0R4u0tND/Iz3hmpEoySk2xFQ13W+0dGKNo8U9fXqQUCpEnchquEvadIscq4Jhb+ J5tdkXdZlHkM6HIr0ZWJMp3xvhdZ0xD6fbscIYMPiOZkayyI1CVEX03b/qf1BpNgEH csP7wxvD4WNmK+OYTMMP20PNf1Xz98Bnu/M0iMaQ= X-Riseup-User-ID: D2F6568FA6C0196D15C78388961DA08D264D0C8388B58EB39F72BE2BE31E88EB Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews2.riseup.net (Postfix) with ESMTPSA id 4FzlLF3yRBz1yW0; Tue, 8 Jun 2021 02:29:09 -0700 (PDT) References: <87h7j0wwkf.fsf@gmail.com> <87cztg41zy.fsf@host.localdomain> <878s434ls1.fsf@host.localdomain> <877djn3r3i.fsf@host.localdomain> <8735u94gt4.fsf@host.localdomain> <87r1hd8bsd.fsf@riseup.net> From: pillule Date: Tue, 08 Jun 2021 11:24:17 +0200 In-reply-to: <87r1hd8bsd.fsf@riseup.net> Message-ID: <87bl8gzov4.fsf@riseup.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --=-=-= Content-Type: text/plain; format=flowed pillule writes: > martin rudalics writes: > >> This is quite a weakness of the present mechanism and I think >> you got >> it right. To summarize your approach: >> >> - When we have to replace a buffer in a side window, that >> window's >> dedicated status is 'side', and some other buffer is found >> that was >> shown there before (it's on the list of that window's >> _previous_ >> buffers) we show that other buffer in the window and make >> sure to >> restore the window's dedicated status to 'side'. >> >> - Otherwise delete the window. Deleting the window is always >> possible >> and we have to make sure one thing - never show in a side >> window a >> buffer that has not been shown before in that window. This >> rule >> should take care of the DOOM workaround. >> >> And users who override the behavior sketched here by setting >> the side >> window's dedicated status to t should have the window deleted >> (since >> that is always possible). >> >> Have I got it right? > > Yes. > Maybe it is a step toward implementing the `soft' dedication > that is mentioned in the comments. > Thanks you for the explanations. > >> We have to document it in the Elisp manual. > > Here another draft with the info manual changes: > > From what I have tested so far, there were more functions that > needed to preserve the side > dedication. I put in my modeline a token for the window > dedication and it was quite useful to spot > them (maybe not the clever way but worked). I also grepped into > window.el to see if I was missing > something without more success. > > There is a change in the indentation of `quit-restore-window' > and I don't know if there is > convention in such cases. Sorry I forgot a last fix on `quit-restore-window' in the last message please consider instead this one : (because switch-to-prev/next-buffer must return nil in case of no available buffer, we can use it in conditional and simplify the code, also the previous version was changing the behavior of some windows by deleting them when it was not necessary) --=-=-= Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename=0002-Improve-handling-of-side-dedicated-flag.patch Content-Transfer-Encoding: quoted-printable Content-Description: improve handling of side dedication when quitting windows >From 3fd3f1c0aa9175e28224d47f6625a442b8cf540d Mon Sep 17 00:00:00 2001 From: Trust me I am a doctor Date: Tue, 8 Jun 2021 11:20:16 +0200 Subject: [PATCH] Improve handling of side dedicated flag Following the discussion on (Bug#48493), restore the dedicated side flag of windows when a buffer change in the window, update the documentation. * doc/lispref/windows.texi (Buffers and Windows): mention the exception of side windows and add a reference. (Buffer Display Action Alists): explicit that `display-buffer-in-side-window' is dedicating to side by default. (Dedicated Windows): add the case (4) and explicit its meaning, add a reference. (Displaying Buffers in Side Windows): move the switch-to-(prev|next)-buffer paragraph into a new item to emphasize the special meaning of dedication for side windows. * lisp/window.el (set-window-buffer-start-and-point): restore side dedication. (switch-to-prev-buffer): corrige the return value that should be nil instead of the same buffer in case of no changement. (switch-to-next-buffer): corrige the return value that should be nil instead of the same buffer in case of no changement. (delete-windows-on): restore side dedication. (replace-buffer-in-windows): update the docstring, restore side dedication. (quit-restore-window): rearrange the logic so hard dedicated windows are eventually deleted first, restore the side dedication, in the final case try to `switch-to-prev-buffer' before deleting a window fix (Bug#48367) --- doc/lispref/windows.texi | 58 +++++++---- lisp/window.el | 210 ++++++++++++++++++++++----------------- 2 files changed, 153 insertions(+), 115 deletions(-) diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi index 44656c057a..601f59e650 100644 --- a/doc/lispref/windows.texi +++ b/doc/lispref/windows.texi @@ -2172,12 +2172,13 @@ Buffers and Windows the current buffer. =20 The replacement buffer in each window is chosen via -@code{switch-to-prev-buffer} (@pxref{Window History}). Any dedicated -window displaying @var{buffer-or-name} is deleted if possible -(@pxref{Dedicated Windows}). If such a window is the only window on its -frame and there are other frames on the same terminal, the frame is -deleted as well. If the dedicated window is the only window on the only -frame on its terminal, the buffer is replaced anyway. +@code{switch-to-prev-buffer} (@pxref{Window History}). With the +exception of side windows, any dedicated window displaying +@var{buffer-or-name} is deleted if possible (@pxref{Dedicated +Windows}). If such a window is the only window on its frame and there +are other frames on the same terminal, the frame is deleted as well. +If the dedicated window is the only window on the only frame on its +terminal, the buffer is replaced anyway. @end deffn =20 =20 @@ -2994,6 +2995,8 @@ Buffer Display Action Alists any window it creates as dedicated to its buffer (@pxref{Dedicated Windows}). It does that by calling @code{set-window-dedicated-p} with the chosen window as first argument and the entry's value as second. +Side windows are by default dedicated with the value @code{side} +((@pxref{Side Window Options and Functions}). =20 @vindex preserve-size@r{, a buffer display action alist entry} @item preserve-size @@ -4042,18 +4045,19 @@ Dedicated Windows =20 Functions supposed to remove a buffer from a window or a window from a frame can behave specially when a window they operate on is dedicated. -We will distinguish three basic cases, namely where (1) the window is +We will distinguish four basic cases, namely where (1) the window is not the only window on its frame, (2) the window is the only window on -its frame but there are other frames on the same terminal left, and (3) -the window is the only window on the only frame on the same terminal. +its frame but there are other frames on the same terminal left, (3) +the window is the only window on the only frame on the same terminal, +and (4) the dedication's value is @code{side} +(@pxref{Displaying Buffers in Side Windows}). =20 In particular, @code{delete-windows-on} (@pxref{Deleting Windows}) -handles case (2) by deleting the associated frame and case (3) by -showing another buffer in that frame's only window. The function +handles case (2) by deleting the associated frame and case (3) and (4) +by showing another buffer in that frame's only window. The function @code{replace-buffer-in-windows} (@pxref{Buffers and Windows}) which is called when a buffer gets killed, deletes the window in case (1) and behaves like @code{delete-windows-on} otherwise. -@c FIXME: Does replace-buffer-in-windows _delete_ a window in case (1)? =20 When @code{bury-buffer} (@pxref{Buffer List}) operates on the selected window (which shows the buffer that shall be buried), it @@ -4316,6 +4320,26 @@ Displaying Buffers in Side Windows middle slot. Hence, all windows on a specific side are ordered by their @code{slot} value. If unspecified, the window is located in the middle of the specified side. + + +@item dedicated +The dedicated flag is not reserved to this function but have a +slightly different meaning for side windows. They receive it upon +creation with the value @code{side}; it serves to prevent +@code{display-buffer} to uses these windows with others action +functions, and it persists across invocations of @code{quit-window}, +@code{kill-buffer}, @code{previous-buffer} and @code{next-buffer} +(@pxref{note Window History}). In particular, these commands will +refrain from showing, in a side window, buffers that have not been +displayed in that window before. They will also refrain from having a +normal, non-side window show a buffer that has been already displayed +in a side window. A notable exception to the latter rule occurs when +an application, after displaying a buffer, resets that buffer=E2=80=99s lo= cal +variables. To override these rules and always delete a side window +with @code{quit-window} or @code{kill-buffer}, and eventually prevent +the use of @code{previous-buffer} and @code{next-buffer}, set this +value to @code{t} or specify a value for +@code{display-buffer-mark-dedicated}. @end table =20 If you specify the same slot on the same side for two or more different @@ -4336,16 +4360,6 @@ Displaying Buffers in Side Windows action. Note also that @code{delete-other-windows} cannot make a side window the only window on its frame (@pxref{Deleting Windows}). =20 - Once set up, side windows also change the behavior of the commands -@code{switch-to-prev-buffer} and @code{switch-to-next-buffer} -(@pxref{Window History}). In particular, these commands will refrain -from showing, in a side window, buffers that have not been displayed in -that window before. They will also refrain from having a normal, -non-side window show a buffer that has been already displayed in a side -window. A notable exception to the latter rule occurs when an -application, after displaying a buffer, resets that buffer's local -variables. - =20 @node Side Window Options and Functions @subsection Side Window Options and Functions diff --git a/lisp/window.el b/lisp/window.el index fd1c617d6b..d3e3152cd0 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -4424,8 +4424,12 @@ set-window-buffer-start-and-point before was current this also makes BUFFER the current buffer." (setq window (window-normalize-window window t)) (let ((selected (eq window (selected-window))) - (current (eq (window-buffer window) (current-buffer)))) + (current (eq (window-buffer window) (current-buffer))) + (dedicated (window-dedicated-p window))) (set-window-buffer window buffer) + ;; restore the dedicated side flag + (when (eq dedicated 'side) + (set-window-dedicated-p window 'side)) (when (and selected current) (set-buffer buffer)) (when start @@ -4559,11 +4563,11 @@ switch-to-prev-buffer ;; Scan WINDOW's previous buffers first, skipping entries of next ;; buffers. (dolist (entry (window-prev-buffers window)) - (when (and (setq new-buffer (car entry)) + (when (and (not (eq (car entry) old-buffer)) + (setq new-buffer (car entry)) (or (buffer-live-p new-buffer) (not (setq killed-buffers (cons new-buffer killed-buffers)))) - (not (eq new-buffer old-buffer)) (or (null pred) (funcall pred new-buffer)) ;; When BURY-OR-KILL is nil, avoid switching to a ;; buffer in WINDOW's next buffers list. @@ -4726,11 +4730,11 @@ switch-to-next-buffer ;; Scan WINDOW's reverted previous buffers last (must not use ;; nreverse here!) (dolist (entry (reverse (window-prev-buffers window))) - (when (and (setq new-buffer (car entry)) + (when (and (not (eq new-buffer (car entry))) + (setq new-buffer (car entry)) (or (buffer-live-p new-buffer) (not (setq killed-buffers (cons new-buffer killed-buffers)))) - (not (eq new-buffer old-buffer)) (or (null pred) (funcall pred new-buffer))) (if (switch-to-prev-buffer-skip-p skip window new-buffer) (setq skipped (or skipped new-buffer)) @@ -4957,9 +4961,10 @@ delete-windows-on (all-frames (cond ((not frame) t) ((eq frame t) nil) (t frame)))) (dolist (window (window-list-1 nil nil all-frames)) (if (eq (window-buffer window) buffer) - (let ((deletable (window-deletable-p window))) + (let ((deletable (window-deletable-p window)) + (dedicated (window-dedicated-p window))) (cond - ((and (eq deletable 'frame) (window-dedicated-p window)) + ((and (eq deletable 'frame) dedicated) ;; Delete frame if and only if window is dedicated. (delete-frame (window-frame window))) ((eq deletable t) @@ -4968,7 +4973,10 @@ delete-windows-on (t ;; In window switch to previous buffer. (set-window-dedicated-p window nil) - (switch-to-prev-buffer window 'bury)))) + (switch-to-prev-buffer window 'bury) + ;; restore the dedicated side flag + (when (eq dedicated 'side) + (set-window-dedicated-p window 'side))))) ;; If a window doesn't show BUFFER, unrecord BUFFER in it. (unrecord-window-buffer window buffer))))) =20 @@ -4977,10 +4985,10 @@ replace-buffer-in-windows BUFFER-OR-NAME may be a buffer or the name of an existing buffer and defaults to the current buffer. =20 -When a window showing BUFFER-OR-NAME is dedicated, that window is -deleted. If that window is the only window on its frame, the -frame is deleted too when there are other frames left. If there -are no other frames left, some other buffer is displayed in that +With the exception of side windows, when a window showing BUFFER-OR-NAME +is dedicated, that window is deleted. If that window is the only window +on its frame, the frame is deleted too when there are other frames left. +If there are no other frames left, some other buffer is displayed in that window. =20 This function removes the buffer denoted by BUFFER-OR-NAME from @@ -4989,10 +4997,14 @@ replace-buffer-in-windows (let ((buffer (window-normalize-buffer buffer-or-name))) (dolist (window (window-list-1 nil nil t)) (if (eq (window-buffer window) buffer) - (unless (window--delete window t t) - ;; Switch to another buffer in window. - (set-window-dedicated-p window nil) - (switch-to-prev-buffer window 'kill)) + ;; delete dedicated window that are not side windows + (let ((dedicated-side (eq (window-dedicated-p window) 'side))) + (when (or dedicated-side (not (window--delete window t t))) + ;; Switch to another buffer in window. + (set-window-dedicated-p window nil) + (if (switch-to-prev-buffer window 'kill) + (and dedicated-side (set-window-dedicated-p window 'side= )) + (window--delete window nil 'kill)))) ;; Unrecord BUFFER in WINDOW. (unrecord-window-buffer window buffer))))) =20 @@ -5014,6 +5026,10 @@ quit-restore-window parameter to nil. See Info node `(elisp) Quitting Windows' for more details. =20 +If WINDOW have the flag dedicated with the value t, always try to +delete WINDOW, with the value side, restore that value when +WINDOW is not deleted. + Optional second argument BURY-OR-KILL tells how to proceed with the buffer of WINDOW. The following values are handled: =20 @@ -5040,87 +5056,95 @@ quit-restore-window (dolist (buf (window-prev-buffers window)) (unless (eq (car buf) buffer) (throw 'prev-buffer (car buf)))))) + (dedicated (window-dedicated-p window)) quad entry) - (cond - ((and (not prev-buffer) - (eq (nth 1 quit-restore) 'tab) - (eq (nth 3 quit-restore) buffer)) - (tab-bar-close-tab) - ;; If the previously selected window is still alive, select it. - (when (window-live-p (nth 2 quit-restore)) - (select-window (nth 2 quit-restore)))) - ((and (not prev-buffer) - (or (eq (nth 1 quit-restore) 'frame) - (and (eq (nth 1 quit-restore) 'window) - ;; If the window has been created on an existing - ;; frame and ended up as the sole window on that - ;; frame, do not delete it (Bug#12764). - (not (eq window (frame-root-window window))))) - (eq (nth 3 quit-restore) buffer) - ;; Delete WINDOW if possible. - (window--delete window nil (eq bury-or-kill 'kill))) - ;; If the previously selected window is still alive, select it. - (when (window-live-p (nth 2 quit-restore)) - (select-window (nth 2 quit-restore)))) - ((and (listp (setq quad (nth 1 quit-restore))) - (buffer-live-p (car quad)) - (eq (nth 3 quit-restore) buffer)) - ;; Show another buffer stored in quit-restore parameter. - (when (and (integerp (nth 3 quad)) - (if (window-combined-p window) - (/=3D (nth 3 quad) (window-total-height window)) - (/=3D (nth 3 quad) (window-total-width window)))) - ;; Try to resize WINDOW to its old height but don't signal an - ;; error. - (condition-case nil - (window-resize - window - (- (nth 3 quad) (if (window-combined-p window) - (window-total-height window) - (window-total-width window))) - (window-combined-p window t)) - (error nil))) - (set-window-dedicated-p window nil) - ;; Restore WINDOW's previous buffer, start and point position. - (set-window-buffer-start-and-point - window (nth 0 quad) (nth 1 quad) (nth 2 quad)) - ;; Deal with the buffer we just removed from WINDOW. - (setq entry (and (eq bury-or-kill 'append) - (assq buffer (window-prev-buffers window)))) - (when bury-or-kill - ;; Remove buffer from WINDOW's previous and next buffers. - (set-window-prev-buffers - window (assq-delete-all buffer (window-prev-buffers window))) - (set-window-next-buffers - window (delq buffer (window-next-buffers window)))) - (when entry - ;; Append old buffer's entry to list of WINDOW's previous - ;; buffers so it's less likely to get switched to soon but - ;; `display-buffer-in-previous-window' can nevertheless find it. - (set-window-prev-buffers - window (append (window-prev-buffers window) (list entry)))) - ;; Reset the quit-restore parameter. - (set-window-parameter window 'quit-restore nil) - ;; Select old window. - (when (window-live-p (nth 2 quit-restore)) - (select-window (nth 2 quit-restore)))) - (t - ;; Show some other buffer in WINDOW and reset the quit-restore - ;; parameter. - (set-window-parameter window 'quit-restore nil) - ;; Make sure that WINDOW is no more dedicated. - (set-window-dedicated-p window nil) - (unless (switch-to-prev-buffer window bury-or-kill) - ;; Delete WINDOW if there is no previous buffer (Bug#48367). - (window--delete window nil (eq bury-or-kill 'kill))))) + (or ;; first try to delete dedicated windows that are not side windows + (and dedicated (not (eq dedicated 'side)) + (window--delete window 'dedicated (eq bury-or-kill 'kill))) + (cond + ((and (not prev-buffer) + (eq (nth 1 quit-restore) 'tab) + (eq (nth 3 quit-restore) buffer)) + (tab-bar-close-tab) + ;; If the previously selected window is still alive, select it. + (when (window-live-p (nth 2 quit-restore)) + (select-window (nth 2 quit-restore)))) + ((and (not prev-buffer) + (or (eq (nth 1 quit-restore) 'frame) + (and (eq (nth 1 quit-restore) 'window) + ;; If the window has been created on an existing + ;; frame and ended up as the sole window on that + ;; frame, do not delete it (Bug#12764). + (not (eq window (frame-root-window window))))) + (eq (nth 3 quit-restore) buffer) + ;; Delete WINDOW if possible. + (window--delete window nil (eq bury-or-kill 'kill))) + ;; If the previously selected window is still alive, select it. + (when (window-live-p (nth 2 quit-restore)) + (select-window (nth 2 quit-restore)))) + ((and (listp (setq quad (nth 1 quit-restore))) + (buffer-live-p (car quad)) + (eq (nth 3 quit-restore) buffer)) + ;; Show another buffer stored in quit-restore parameter. + (when (and (integerp (nth 3 quad)) + (if (window-combined-p window) + (/=3D (nth 3 quad) (window-total-height window)) + (/=3D (nth 3 quad) (window-total-width window)))) + ;; Try to resize WINDOW to its old height but don't signal an + ;; error. + (condition-case nil + (window-resize + window + (- (nth 3 quad) (if (window-combined-p window) + (window-total-height window) + (window-total-width window))) + (window-combined-p window t)) + (error nil))) + (set-window-dedicated-p window nil) + ;; Restore WINDOW's previous buffer, start and point position. + (set-window-buffer-start-and-point + window (nth 0 quad) (nth 1 quad) (nth 2 quad)) + ;; and restore the dedicated side flag + (when (eq dedicated 'side) (set-window-dedicated-p window 'side)) + ;; Deal with the buffer we just removed from WINDOW. + (setq entry (and (eq bury-or-kill 'append) + (assq buffer (window-prev-buffers window)))) + (when bury-or-kill + ;; Remove buffer from WINDOW's previous and next buffers. + (set-window-prev-buffers + window (assq-delete-all buffer (window-prev-buffers window))) + (set-window-next-buffers + window (delq buffer (window-next-buffers window)))) + (when entry + ;; Append old buffer's entry to list of WINDOW's previous + ;; buffers so it's less likely to get switched to soon but + ;; `display-buffer-in-previous-window' can nevertheless find it. + (set-window-prev-buffers + window (append (window-prev-buffers window) (list entry)))) + ;; Reset the quit-restore parameter. + (set-window-parameter window 'quit-restore nil) + ;; Select old window. + (when (window-live-p (nth 2 quit-restore)) + (select-window (nth 2 quit-restore)))) + (t + ;; Show some other buffer in WINDOW and reset the quit-restore + ;; parameter. + (set-window-parameter window 'quit-restore nil) + ;; Make sure that WINDOW is no more dedicated. + (set-window-dedicated-p window nil) + ;; (Bug#48367) try to swith to a previous buffer + ;; delete the window only if it is not possible + (if (switch-to-prev-buffer window bury-or-kill) + (set-window-dedicated-p window 'side) + (window--delete window nil (eq bury-or-kill 'kill)))))) =20 ;; Deal with the buffer. (cond - ((not (buffer-live-p buffer))) - ((eq bury-or-kill 'kill) - (kill-buffer buffer)) - (bury-or-kill - (bury-buffer-internal buffer))))) + ((not (buffer-live-p buffer))) + ((eq bury-or-kill 'kill) + (kill-buffer buffer)) + (bury-or-kill + (bury-buffer-internal buffer))))) =20 (defun quit-window (&optional kill window) "Quit WINDOW and bury its buffer. --=20 2.20.1 --=-=-= Content-Type: text/plain; format=flowed -- --=-=-=-- From unknown Sun Jun 15 08:59:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#48493: 28.0.50; quit-window doesn't work Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 08 Jun 2021 12:11:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48493 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: fixed To: pillule Cc: pillule@riseup.net, rudalics@gmx.at, 48493@debbugs.gnu.org, sujith.wall@gmail.com Received: via spool by 48493-submit@debbugs.gnu.org id=B48493.162315422419431 (code B ref 48493); Tue, 08 Jun 2021 12:11:02 +0000 Received: (at 48493) by debbugs.gnu.org; 8 Jun 2021 12:10:24 +0000 Received: from localhost ([127.0.0.1]:57605 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lqaYp-00053L-NB for submit@debbugs.gnu.org; Tue, 08 Jun 2021 08:10:24 -0400 Received: from eggs.gnu.org ([209.51.188.92]:33660) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lqaYo-000539-KI for 48493@debbugs.gnu.org; Tue, 08 Jun 2021 08:10:23 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:59468) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lqaYj-0002i2-8G; Tue, 08 Jun 2021 08:10:17 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:1700 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lqaYa-0001ud-Tk; Tue, 08 Jun 2021 08:10:16 -0400 Date: Tue, 08 Jun 2021 15:09:49 +0300 Message-Id: <837dj4ftgy.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87r1hd8bsd.fsf@riseup.net> (message from pillule on Tue, 08 Jun 2021 01:23:11 +0200) References: <87h7j0wwkf.fsf@gmail.com> <87cztg41zy.fsf@host.localdomain> <878s434ls1.fsf@host.localdomain> <877djn3r3i.fsf@host.localdomain> <8735u94gt4.fsf@host.localdomain> <87r1hd8bsd.fsf@riseup.net> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: pillule > Date: Tue, 08 Jun 2021 01:23:11 +0200 > Cc: pillule , Sujith Manoharan , > 48493@debbugs.gnu.org > > > We have to document it in the Elisp manual. > > Here another draft with the info manual changes: Thanks. Once again, I leave it to Martin and others to comment on most of the essence of the patch, and provide here only few minor nits: > * doc/lispref/windows.texi > (Buffers and Windows): mention the exception of side windows and > add a reference. > (Buffer Display Action Alists): explicit that > `display-buffer-in-side-window' is dedicating to side by default. > (Dedicated Windows): add the case (4) and explicit its meaning, > add a reference. > (Displaying Buffers in Side Windows): move the > switch-to-(prev|next)-buffer paragraph into a new item to emphasize > the special meaning of dedication for side windows. Again, this log message is not formatted according to our rules. It should look like this: * doc/lispref/windows.texi (Buffers and Windows): Mention the exception of side windows and add a reference. (Buffer Display Action Alists): Say explicitly that 'display-buffer-in-side-window' is dedicating to side by default. (Dedicated Windows): Add case (4) and explain its meaning, add a reference. (Displaying Buffers in Side Windows): Move the paragraph about 'switch-to-(prev|next)-buffer' into a new item to emphasize the special meaning of dedication for side windows. Note that I also fixed the wording a bit, and that our conventions for quoting in log entries is 'like this'. > The replacement buffer in each window is chosen via > -@code{switch-to-prev-buffer} (@pxref{Window History}). Any dedicated > -window displaying @var{buffer-or-name} is deleted if possible > -(@pxref{Dedicated Windows}). If such a window is the only window on its > -frame and there are other frames on the same terminal, the frame is > -deleted as well. If the dedicated window is the only window on the only > -frame on its terminal, the buffer is replaced anyway. > +@code{switch-to-prev-buffer} (@pxref{Window History}). With the > +exception of side windows, any dedicated window displaying ^^^^^^^^^^^^^^^^^^^^^^^^^ Here' it is quite important that the reader understands what are "side windows", otherwise he/she will not understand the exception. However, "side window" was not yet described in the manual by this point, and its description is not in this section. In these cases, always include a cross-reference to where the term is described, like this: With the exception of side windows (@pxref{Side Windows}), any ... > In particular, @code{delete-windows-on} (@pxref{Deleting Windows}) > -handles case (2) by deleting the associated frame and case (3) by > -showing another buffer in that frame's only window. The function > +handles case (2) by deleting the associated frame and case (3) and (4) ^^^^ "cases", plural. > +@item dedicated > +The dedicated flag is not reserved to this function but have a ^ ^^^^ A comma is missing before "but". Also, please use "has" instead of "have". > +slightly different meaning for side windows. They receive it upon > +creation with the value @code{side}; it serves to prevent > +@code{display-buffer} to uses these windows with others action ^^^^^^^ "to use" > +functions, and it persists across invocations of @code{quit-window}, > +@code{kill-buffer}, @code{previous-buffer} and @code{next-buffer} > +(@pxref{note Window History}). In particular, these commands will ^^^^^^^^^^^^^^^^^^^ No need for "note" here. From unknown Sun Jun 15 08:59:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#48493: 28.0.50; quit-window doesn't work Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 09 Jun 2021 08:34:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48493 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: fixed To: pillule Cc: Sujith Manoharan , 48493@debbugs.gnu.org Received: via spool by 48493-submit@debbugs.gnu.org id=B48493.16232276341950 (code B ref 48493); Wed, 09 Jun 2021 08:34:01 +0000 Received: (at 48493) by debbugs.gnu.org; 9 Jun 2021 08:33:54 +0000 Received: from localhost ([127.0.0.1]:60405 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lqter-0000VN-Rb for submit@debbugs.gnu.org; Wed, 09 Jun 2021 04:33:54 -0400 Received: from mout.gmx.net ([212.227.17.20]:54911) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lqtem-0000V5-9f for 48493@debbugs.gnu.org; Wed, 09 Jun 2021 04:33:51 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1623227619; bh=tIi0PFvfrsUnufSh+jElTx/ufJhbKdJWlSOUR9Vfy3c=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=NnY7WD9PGsACkIjnE7W85etL4UXbAFbYjWXX0v+43XJde5eGy+/OpzFaX9prjcbia 7tWhnonTDjlE2R+SPCoLnzwKWfOkZAiZiL3XxhSvirW9FL6p7BVfvUHDXbACZRB5lf jQ6NafqJCRdmcNdOl18+I21EuLWH4JUMTmn5QRDE= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.1.100] ([212.95.5.113]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1McH5Q-1lL7fz0IkW-00cka6; Wed, 09 Jun 2021 10:33:39 +0200 References: <87h7j0wwkf.fsf@gmail.com> <87cztg41zy.fsf@host.localdomain> <878s434ls1.fsf@host.localdomain> <877djn3r3i.fsf@host.localdomain> <8735u94gt4.fsf@host.localdomain> <87r1hd8bsd.fsf@riseup.net> <87bl8gzov4.fsf@riseup.net> From: martin rudalics Message-ID: <3f8bf130-2723-27ed-8333-5db4de3515d8@gmx.at> Date: Wed, 9 Jun 2021 10:33:37 +0200 MIME-Version: 1.0 In-Reply-To: <87bl8gzov4.fsf@riseup.net> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:P5Er0IiU1VZ8MRxCi27zH3ZnR6PKKiEIhk2e7SwkURjRcVSnb/L QzDZ9ea523MSKqD3SmpXPlu1UDlbYsFVb0QryB/+ObCQHThiZw6RXvIhPXLzSwOm2c1KdRA RfZ3Gei2jGTZsWwy8pGiC6QAwzyAudhjmZIUwEaa8V5jJbq6VmpAgEiqvlaO7/n/FLKkQic sRnRITFpK1OYuQblF1TXg== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:qg/t3TRXQI0=:s8AUXiznGxE12jzVua1z1N 7e8LVQzCh6Th3YOhwHp3/f6M9NMcQCT84onEeBd2yRlYPSfpYsHAo9CnBuoIbZXp8PjtrbqCD Yy0f5nifKOF/3yjWfI1RqnqOIGOvdZooV1of9Zuq50tjot0//5gVpmGILVK7EN2UGI/zCVfCp k7Hqf8KGJY03Z8AkB/EykM0FaOddrvBZNIDiOOJ8iStWLp3xHFsk0FKDc4HPTJMxA9g7/BDnY 0O4cg1f/a6vHQtAyjQPWZZuyG5UUivQ4T4DyMo5LQPhqBWl+9/OE2fAYTctAED1399xBtoGbX F7AQOoe/t6qqzpTdrehWkY9LKd9zhtyR4nCYRoVSBMqa3eY100VXp1sPGtm+bZ5WNAvJ70Ogc YKVYidl5qUmkaHibbx7Ls8/mhGktIoy6gxRi0+MgJF2ChrqMZ7UvMgTvoh0LJEKC0yKT8jA+8 zedaEvW5wPPZqTrjfmWSXo0gFfgWKLTfouP+xrt5W5N6FCH+3TeqBU8IDO4ffYuTEdzc/2Tha HBmw480T52OmwBc9KOrR1gROUTMIkSSMD6Kj0itKlwO8389O7qQ7oKeq1S91ibtnDire30ypx V2G77N/iPtEEswz9hCsPjf+Aoj3Ii5cmVcir0wvN/GxNklpmSRIu9HgQzGvlVcf5Y3DfFzFac YdkRNyTnTZDW07TTZBKtRVTqAH7TgnhlyqZRu9n2ZEqSAX/VG/TOcZzJMXpFCyST26EIWmaQ5 VOTU0qNWVi51Xl93tArgTrLLj+VwEjzoEZitTVqKj+90Yn+m5vFf1jkNHGk5r5gFA6faayvWn 4tWKWJ3M2zWWen/iUsaPpTBrRfAZwLbDGM3UICPpV6URTdEs3KQbiol05F3QpY+YCdLnjsDau zZ7As6H9E4nloWtF6MwZeC7cQfTEmmIUHbRzGD+2ROlG8OP0BywON/8s/328yFYaY3iVKKsr/ WwhzHh7cWxtgZsxKJ/E4Io2QdTvD05HLPdZNwSjgzeBSUineQgcSnG2oBXTWqLGJJ3grqSInq o5wgvwRhDxVz4vUdfAtkSzh/cqo7XBpeWRkF3rHzsGF4S49eoOiHztir1m8Wq3rlf50UifANr DxcDH9yFrZSt9Mqqu1JD72msNjnrqokVmqS X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Thanks for the patches. Please follow ELi's suggestions first, I'll then comment on the manual changes. - (current (eq (window-buffer window) (current-buffer)))) + (current (eq (window-buffer window) (current-buffer))) + (dedicated (window-dedicated-p window))) (set-window-buffer window buffer) + ;; restore the dedicated side flag + (when (eq dedicated 'side) + (set-window-dedicated-p window 'side)) Here you could use the 'dedicated-side' solution you used below in `replace-buffer-in-windows'. + (or ;; first try to delete dedicated windows that are not side windows + (and dedicated (not (eq dedicated 'side)) + (window--delete window 'dedicated (eq bury-or-kill 'kill))) + (cond + ((and (not prev-buffer) + (eq (nth 1 quit-restore) 'tab) + (eq (nth 3 quit-restore) buffer)) + (tab-bar-close-tab) + ;; If the previously selected window is still alive, select it. + (when (window-live-p (nth 2 quit-restore)) + (select-window (nth 2 quit-restore)))) What's wrong with putting the first disjunct into the conditional as in the below? In general, always try to avoid larger indentation changes - they can make forensics cumbersome while bisecting. (cond ;; First try to delete dedicated windows that are not side windows ((and dedicated (not (eq dedicated 'side)) (window--delete window 'dedicated (eq bury-or-kill 'kill)))) ((and (not prev-buffer) (eq (nth 1 quit-restore) 'tab) (eq (nth 3 quit-restore) buffer)) BTW, how's your paperwork process proceeding? martin From unknown Sun Jun 15 08:59:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#48493: 28.0.50; quit-window doesn't work Resent-From: pillule Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 09 Jun 2021 12:38:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48493 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: fixed To: martin rudalics Cc: pillule , Sujith Manoharan , 48493@debbugs.gnu.org Received: via spool by 48493-submit@debbugs.gnu.org id=B48493.16232422485276 (code B ref 48493); Wed, 09 Jun 2021 12:38:01 +0000 Received: (at 48493) by debbugs.gnu.org; 9 Jun 2021 12:37:28 +0000 Received: from localhost ([127.0.0.1]:60710 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lqxSZ-0001N1-5v for submit@debbugs.gnu.org; Wed, 09 Jun 2021 08:37:28 -0400 Received: from mx1.riseup.net ([198.252.153.129]:33322) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lqxSV-0001Mn-T8 for 48493@debbugs.gnu.org; Wed, 09 Jun 2021 08:37:26 -0400 Received: from fews1.riseup.net (fews1-pn.riseup.net [10.0.1.83]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.riseup.net", Issuer "Sectigo RSA Domain Validation Secure Server CA" (not verified)) by mx1.riseup.net (Postfix) with ESMTPS id 4G0RSt2BDCzDqD1; Wed, 9 Jun 2021 05:37:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1623242238; bh=Jyn9T9dQRjrU81VcxUxnKbMNhze1bFFfECoqDk8kC9s=; h=References:From:To:Cc:Subject:Date:In-reply-to:From; b=DH5Ku1u9alEd7VmjvbCbhN5xM4AQUv3Wy8v3mR77huuL8wrz0iStvgh/IjZwpRZRH j3/SJ0+HxH/rdO/xGhTwx4vposVkzaZNHzI+CfLXE2ENXoQqwnUlCeVqLb3QpIUO7M nzpvj5evqq6G1sSDUGI2wXeYph1nKr2YiBfV3Y+U= X-Riseup-User-ID: 69B089AED3F228D873DE5A66218145BA9CDF3449E6A269A44CAC88880B7313F2 Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews1.riseup.net (Postfix) with ESMTPSA id 4G0RSr1YDzz5w26; Wed, 9 Jun 2021 05:37:15 -0700 (PDT) References: <87h7j0wwkf.fsf@gmail.com> <87cztg41zy.fsf@host.localdomain> <878s434ls1.fsf@host.localdomain> <877djn3r3i.fsf@host.localdomain> <8735u94gt4.fsf@host.localdomain> <87r1hd8bsd.fsf@riseup.net> <87bl8gzov4.fsf@riseup.net> <3f8bf130-2723-27ed-8333-5db4de3515d8@gmx.at> From: pillule Date: Wed, 09 Jun 2021 14:34:54 +0200 In-reply-to: <3f8bf130-2723-27ed-8333-5db4de3515d8@gmx.at> Message-ID: <87y2bji58t.fsf@riseup.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --=-=-= Content-Type: text/plain; format=flowed Eli Zaretskii writes: >> From: pillule >> Date: Tue, 08 Jun 2021 01:23:11 +0200 >> Cc: pillule , Sujith Manoharan >> , >> 48493@debbugs.gnu.org >> >> > We have to document it in the Elisp manual. >> >> Here another draft with the info manual changes: > > Thanks. Once again, I leave it to Martin and others to comment > on > most of the essence of the patch, and provide here only few > minor > nits: > >> * doc/lispref/windows.texi >> (Buffers and Windows): mention the exception of side windows >> and >> add a reference. >> (Buffer Display Action Alists): explicit that >> `display-buffer-in-side-window' is dedicating to side by >> default. >> (Dedicated Windows): add the case (4) and explicit its >> meaning, >> add a reference. >> (Displaying Buffers in Side Windows): move the >> switch-to-(prev|next)-buffer paragraph into a new item to >> emphasize >> the special meaning of dedication for side windows. > > Again, this log message is not formatted according to our rules. > It > should look like this: > > * doc/lispref/windows.texi (Buffers and Windows): Mention the > exception of side windows and add a reference. > (Buffer Display Action Alists): Say explicitly that > 'display-buffer-in-side-window' is dedicating to side by > default. > (Dedicated Windows): Add case (4) and explain its meaning, add > a reference. > (Displaying Buffers in Side Windows): Move the paragraph about > 'switch-to-(prev|next)-buffer' into a new item to emphasize the > special meaning of dedication for side windows. > > Note that I also fixed the wording a bit, and that our > conventions for > quoting in log entries is 'like this'. > >> The replacement buffer in each window is chosen via >> -@code{switch-to-prev-buffer} (@pxref{Window History}). Any >> dedicated >> -window displaying @var{buffer-or-name} is deleted if possible >> -(@pxref{Dedicated Windows}). If such a window is the only >> window on its >> -frame and there are other frames on the same terminal, the >> frame is >> -deleted as well. If the dedicated window is the only window >> on the only >> -frame on its terminal, the buffer is replaced anyway. >> +@code{switch-to-prev-buffer} (@pxref{Window History}). With >> the >> +exception of side windows, any dedicated window displaying > ^^^^^^^^^^^^^^^^^^^^^^^^^ > Here' it is quite important that the reader understands what are > "side > windows", otherwise he/she will not understand the exception. > However, "side window" was not yet described in the manual by > this > point, and its description is not in this section. In these > cases, > always include a cross-reference to where the term is described, > like > this: > > With the exception of side windows (@pxref{Side Windows}), any > ... > >> In particular, @code{delete-windows-on} (@pxref{Deleting >> Windows}) >> -handles case (2) by deleting the associated frame and case (3) >> by >> -showing another buffer in that frame's only window. The >> function >> +handles case (2) by deleting the associated frame and case (3) >> and (4) > ^^^^ > "cases", plural. > Here note that I suppressed the comment @c FIXME: Does replace-buffer-in-windows _delete_ a window in case (1)? Because yes, it is the case. >> +@item dedicated >> +The dedicated flag is not reserved to this function but have a > ^ ^^^^ > A comma is missing before "but". Also, please use "has" instead > of > "have". > >> +slightly different meaning for side windows. They receive it >> upon >> +creation with the value @code{side}; it serves to prevent >> +@code{display-buffer} to uses these windows with others action > ^^^^^^^ > "to use" > >> +functions, and it persists across invocations of >> @code{quit-window}, >> +@code{kill-buffer}, @code{previous-buffer} and >> @code{next-buffer} >> +(@pxref{note Window History}). In particular, these commands >> will > ^^^^^^^^^^^^^^^^^^^ > No need for "note" here. Thanks. Got them. martin rudalics writes: > Thanks for the patches. Please follow ELi's suggestions first, > I'll > then comment on the manual changes. > > - (current (eq (window-buffer window) (current-buffer)))) > + (current (eq (window-buffer window) (current-buffer))) > + (dedicated (window-dedicated-p window))) > (set-window-buffer window buffer) > + ;; restore the dedicated side flag > + (when (eq dedicated 'side) > + (set-window-dedicated-p window 'side)) > > Here you could use the 'dedicated-side' solution you used below > in > `replace-buffer-in-windows'. ok > + (or ;; first try to delete dedicated windows that are not > side windows > + (and dedicated (not (eq dedicated 'side)) > + (window--delete window 'dedicated (eq bury-or-kill > 'kill))) > + (cond > + ((and (not prev-buffer) > + (eq (nth 1 quit-restore) 'tab) > + (eq (nth 3 quit-restore) buffer)) > + (tab-bar-close-tab) > + ;; If the previously selected window is still alive, > select it. > + (when (window-live-p (nth 2 quit-restore)) > + (select-window (nth 2 quit-restore)))) > > What's wrong with putting the first disjunct into the > conditional as in > the below? In general, always try to avoid larger indentation > changes - > they can make forensics cumbersome while bisecting. > > (cond > ;; First try to delete dedicated windows that are not side > windows > ((and dedicated (not (eq dedicated 'side)) > (window--delete window 'dedicated (eq bury-or-kill > 'kill)))) > ((and (not prev-buffer) > (eq (nth 1 quit-restore) 'tab) > (eq (nth 3 quit-restore) buffer)) The difference is a window dedicated with flag t may not be deletable, and in this case, we want it to pass through the others conditionals branch of quit-restore-window, so it can try to use the 'quit-restore parameter, close the tab or to fallback in t, etc. Explaining it makes me thing I could use 'window-deletable-p' in its conditional and ... I guess, problem solved In this revision I also restored the use of (select-window (nth 2 quit-restore)) on the branch t. > BTW, how's your paperwork process proceeding? I am currently exchanging with the clerk to complete it. --=-=-= Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename=0003-Improve-handling-of-side-dedicated-flag.patch Content-Transfer-Encoding: quoted-printable Content-Description: respect the indentation >From 39fc2754de267cba77dcb9c8c567fc82bdcd17f9 Mon Sep 17 00:00:00 2001 From: Trust me I am a doctor Date: Wed, 9 Jun 2021 13:43:21 +0200 Subject: [PATCH] Improve handling of side dedicated flag Following the discussion on (Bug#48493), restore the dedicated side flag of windows when a buffer change in the window, update the documentation. * doc/lispref/windows.texi (Buffers and Windows): Mention the exception of side windows and add a reference. (Buffer Display Action Alists): Say explicitly that 'display-buffer-in-side-window' is dedicating to side by default. (Dedicated Windows): Add case (4) and explain its meaning, add a reference. (Displaying Buffers in Side Windows): Move the paragraph about 'switch-to-(prev|next)-buffer' into a new item to emphasize the special meaning of dedication for side windows. * lisp/window.el (set-window-buffer-start-and-point): Restore side dedication. (switch-to-prev-buffer): Correct the return value that should be nil instead of the same buffer in case of no changement. (switch-to-next-buffer): Correct the return value that should be nil instead of the same buffer in case of no changement. (delete-windows-on): Restore side dedication. (replace-buffer-in-windows): Update the docstring, restore side dedication. (quit-restore-window): Rearrange the logic so hard dedicated windows are eventually deleted first, restore the side dedication, in the final case try to 'switch-to-prev-buffer' before deleting a window fix (Bug#48367). --- doc/lispref/windows.texi | 58 ++++++++++++++++++++++-------------- lisp/window.el | 64 ++++++++++++++++++++++++++++------------ 2 files changed, 81 insertions(+), 41 deletions(-) diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi index 44656c057a..3da206cd43 100644 --- a/doc/lispref/windows.texi +++ b/doc/lispref/windows.texi @@ -2172,12 +2172,13 @@ Buffers and Windows the current buffer. =20 The replacement buffer in each window is chosen via -@code{switch-to-prev-buffer} (@pxref{Window History}). Any dedicated -window displaying @var{buffer-or-name} is deleted if possible -(@pxref{Dedicated Windows}). If such a window is the only window on its -frame and there are other frames on the same terminal, the frame is -deleted as well. If the dedicated window is the only window on the only -frame on its terminal, the buffer is replaced anyway. +@code{switch-to-prev-buffer} (@pxref{Window History}). With the +exception of side windows (@pxref{Side Windows}), any dedicated window +displaying @var{buffer-or-name} is deleted if possible (@pxref{Dedicated +Windows}). If such a window is the only window on its frame and there +are other frames on the same terminal, the frame is deleted as well. +If the dedicated window is the only window on the only frame on its +terminal, the buffer is replaced anyway. @end deffn =20 =20 @@ -2994,6 +2995,8 @@ Buffer Display Action Alists any window it creates as dedicated to its buffer (@pxref{Dedicated Windows}). It does that by calling @code{set-window-dedicated-p} with the chosen window as first argument and the entry's value as second. +Side windows are by default dedicated with the value @code{side} +((@pxref{Side Window Options and Functions}). =20 @vindex preserve-size@r{, a buffer display action alist entry} @item preserve-size @@ -4042,18 +4045,19 @@ Dedicated Windows =20 Functions supposed to remove a buffer from a window or a window from a frame can behave specially when a window they operate on is dedicated. -We will distinguish three basic cases, namely where (1) the window is +We will distinguish four basic cases, namely where (1) the window is not the only window on its frame, (2) the window is the only window on -its frame but there are other frames on the same terminal left, and (3) -the window is the only window on the only frame on the same terminal. +its frame but there are other frames on the same terminal left, (3) +the window is the only window on the only frame on the same terminal, +and (4) the dedication's value is @code{side} +(@pxref{Displaying Buffers in Side Windows}). =20 In particular, @code{delete-windows-on} (@pxref{Deleting Windows}) -handles case (2) by deleting the associated frame and case (3) by -showing another buffer in that frame's only window. The function +handles case (2) by deleting the associated frame and cases (3) and (4) +by showing another buffer in that frame's only window. The function @code{replace-buffer-in-windows} (@pxref{Buffers and Windows}) which is called when a buffer gets killed, deletes the window in case (1) and behaves like @code{delete-windows-on} otherwise. -@c FIXME: Does replace-buffer-in-windows _delete_ a window in case (1)? =20 When @code{bury-buffer} (@pxref{Buffer List}) operates on the selected window (which shows the buffer that shall be buried), it @@ -4316,6 +4320,26 @@ Displaying Buffers in Side Windows middle slot. Hence, all windows on a specific side are ordered by their @code{slot} value. If unspecified, the window is located in the middle of the specified side. + + +@item dedicated +The dedicated flag is not reserved to this function, but has a +slightly different meaning for side windows. They receive it upon +creation with the value @code{side}; it serves to prevent +@code{display-buffer} to use these windows with others action +functions, and it persists across invocations of @code{quit-window}, +@code{kill-buffer}, @code{previous-buffer} and @code{next-buffer}. +In particular, these commands will refrain from showing, in a side +window, buffers that have not been displayed in that window before. +They will also refrain from having a normal, non-side window show a +buffer that has been already displayed in a side window. A notable +exception to the latter rule occurs when an application, after +displaying a buffer, resets that buffer=E2=80=99s local variables. To +override these rules and always delete a side window with +@code{quit-window} or @code{kill-buffer}, and eventually prevent +the use of @code{previous-buffer} and @code{next-buffer}, set this +value to @code{t} or specify a value for +@code{display-buffer-mark-dedicated}. @end table =20 If you specify the same slot on the same side for two or more different @@ -4336,16 +4360,6 @@ Displaying Buffers in Side Windows action. Note also that @code{delete-other-windows} cannot make a side window the only window on its frame (@pxref{Deleting Windows}). =20 - Once set up, side windows also change the behavior of the commands -@code{switch-to-prev-buffer} and @code{switch-to-next-buffer} -(@pxref{Window History}). In particular, these commands will refrain -from showing, in a side window, buffers that have not been displayed in -that window before. They will also refrain from having a normal, -non-side window show a buffer that has been already displayed in a side -window. A notable exception to the latter rule occurs when an -application, after displaying a buffer, resets that buffer's local -variables. - =20 @node Side Window Options and Functions @subsection Side Window Options and Functions diff --git a/lisp/window.el b/lisp/window.el index fd1c617d6b..f843aead24 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -4424,8 +4424,10 @@ set-window-buffer-start-and-point before was current this also makes BUFFER the current buffer." (setq window (window-normalize-window window t)) (let ((selected (eq window (selected-window))) - (current (eq (window-buffer window) (current-buffer)))) + (current (eq (window-buffer window) (current-buffer))) + (dedicated-side (eq (window-dedicated-p window) 'side))) (set-window-buffer window buffer) + (and dedicated-side (set-window-dedicated-p window 'side)) (when (and selected current) (set-buffer buffer)) (when start @@ -4559,11 +4561,11 @@ switch-to-prev-buffer ;; Scan WINDOW's previous buffers first, skipping entries of next ;; buffers. (dolist (entry (window-prev-buffers window)) - (when (and (setq new-buffer (car entry)) + (when (and (not (eq (car entry) old-buffer)) + (setq new-buffer (car entry)) (or (buffer-live-p new-buffer) (not (setq killed-buffers (cons new-buffer killed-buffers)))) - (not (eq new-buffer old-buffer)) (or (null pred) (funcall pred new-buffer)) ;; When BURY-OR-KILL is nil, avoid switching to a ;; buffer in WINDOW's next buffers list. @@ -4726,11 +4728,11 @@ switch-to-next-buffer ;; Scan WINDOW's reverted previous buffers last (must not use ;; nreverse here!) (dolist (entry (reverse (window-prev-buffers window))) - (when (and (setq new-buffer (car entry)) + (when (and (not (eq new-buffer (car entry))) + (setq new-buffer (car entry)) (or (buffer-live-p new-buffer) (not (setq killed-buffers (cons new-buffer killed-buffers)))) - (not (eq new-buffer old-buffer)) (or (null pred) (funcall pred new-buffer))) (if (switch-to-prev-buffer-skip-p skip window new-buffer) (setq skipped (or skipped new-buffer)) @@ -4957,9 +4959,10 @@ delete-windows-on (all-frames (cond ((not frame) t) ((eq frame t) nil) (t frame)))) (dolist (window (window-list-1 nil nil all-frames)) (if (eq (window-buffer window) buffer) - (let ((deletable (window-deletable-p window))) + (let ((deletable (window-deletable-p window)) + (dedicated (window-dedicated-p window))) (cond - ((and (eq deletable 'frame) (window-dedicated-p window)) + ((and (eq deletable 'frame) dedicated) ;; Delete frame if and only if window is dedicated. (delete-frame (window-frame window))) ((eq deletable t) @@ -4968,7 +4971,10 @@ delete-windows-on (t ;; In window switch to previous buffer. (set-window-dedicated-p window nil) - (switch-to-prev-buffer window 'bury)))) + (switch-to-prev-buffer window 'bury) + ;; restore the dedicated side flag + (when (eq dedicated 'side) + (set-window-dedicated-p window 'side))))) ;; If a window doesn't show BUFFER, unrecord BUFFER in it. (unrecord-window-buffer window buffer))))) =20 @@ -4977,10 +4983,10 @@ replace-buffer-in-windows BUFFER-OR-NAME may be a buffer or the name of an existing buffer and defaults to the current buffer. =20 -When a window showing BUFFER-OR-NAME is dedicated, that window is -deleted. If that window is the only window on its frame, the -frame is deleted too when there are other frames left. If there -are no other frames left, some other buffer is displayed in that +With the exception of side windows, when a window showing BUFFER-OR-NAME +is dedicated, that window is deleted. If that window is the only window +on its frame, the frame is deleted too when there are other frames left. +If there are no other frames left, some other buffer is displayed in that window. =20 This function removes the buffer denoted by BUFFER-OR-NAME from @@ -4989,10 +4995,14 @@ replace-buffer-in-windows (let ((buffer (window-normalize-buffer buffer-or-name))) (dolist (window (window-list-1 nil nil t)) (if (eq (window-buffer window) buffer) - (unless (window--delete window t t) - ;; Switch to another buffer in window. - (set-window-dedicated-p window nil) - (switch-to-prev-buffer window 'kill)) + ;; delete dedicated window that are not side windows + (let ((dedicated-side (eq (window-dedicated-p window) 'side))) + (when (or dedicated-side (not (window--delete window t t))) + ;; Switch to another buffer in window. + (set-window-dedicated-p window nil) + (if (switch-to-prev-buffer window 'kill) + (and dedicated-side (set-window-dedicated-p window 'side= )) + (window--delete window nil 'kill)))) ;; Unrecord BUFFER in WINDOW. (unrecord-window-buffer window buffer))))) =20 @@ -5014,6 +5024,10 @@ quit-restore-window parameter to nil. See Info node `(elisp) Quitting Windows' for more details. =20 +If WINDOW have the flag dedicated with the value t, always try to +delete WINDOW, with the value side, restore that value when +WINDOW is not deleted. + Optional second argument BURY-OR-KILL tells how to proceed with the buffer of WINDOW. The following values are handled: =20 @@ -5040,8 +5054,14 @@ quit-restore-window (dolist (buf (window-prev-buffers window)) (unless (eq (car buf) buffer) (throw 'prev-buffer (car buf)))))) + (dedicated (window-dedicated-p window)) quad entry) (cond + ;; first try to delete dedicated windows that are not side windows + ((and dedicated + (not (eq dedicated 'side)) + (window-deletable-p window)) + (window--delete window 'dedicated (eq bury-or-kill 'kill))) ((and (not prev-buffer) (eq (nth 1 quit-restore) 'tab) (eq (nth 3 quit-restore) buffer)) @@ -5084,6 +5104,8 @@ quit-restore-window ;; Restore WINDOW's previous buffer, start and point position. (set-window-buffer-start-and-point window (nth 0 quad) (nth 1 quad) (nth 2 quad)) + ;; and restore the side dedicated flag + (when (eq dedicated 'side) (set-window-dedicated-p window 'side)) ;; Deal with the buffer we just removed from WINDOW. (setq entry (and (eq bury-or-kill 'append) (assq buffer (window-prev-buffers window)))) @@ -5110,9 +5132,13 @@ quit-restore-window (set-window-parameter window 'quit-restore nil) ;; Make sure that WINDOW is no more dedicated. (set-window-dedicated-p window nil) - (unless (switch-to-prev-buffer window bury-or-kill) - ;; Delete WINDOW if there is no previous buffer (Bug#48367). - (window--delete window nil (eq bury-or-kill 'kill))))) + ;; (Bug#48367) try to swith to a previous buffer + ;; delete the window only if it is not possible + (if (switch-to-prev-buffer window bury-or-kill) + (set-window-dedicated-p window 'side) + (window--delete window nil (eq bury-or-kill 'kill)) + (when (window-live-p (nth 2 quit-restore)) + (select-window (nth 2 quit-restore)))))) =20 ;; Deal with the buffer. (cond --=20 2.20.1 --=-=-= Content-Type: text/plain; format=flowed -- --=-=-=-- From unknown Sun Jun 15 08:59:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#48493: 28.0.50; quit-window doesn't work Resent-From: pillule Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 09 Jun 2021 13:04:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48493 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: fixed To: pillule Cc: martin rudalics , 48493@debbugs.gnu.org, Sujith Manoharan Received: via spool by 48493-submit@debbugs.gnu.org id=B48493.16232438087962 (code B ref 48493); Wed, 09 Jun 2021 13:04:01 +0000 Received: (at 48493) by debbugs.gnu.org; 9 Jun 2021 13:03:28 +0000 Received: from localhost ([127.0.0.1]:60744 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lqxrk-00024M-0h for submit@debbugs.gnu.org; Wed, 09 Jun 2021 09:03:28 -0400 Received: from mx1.riseup.net ([198.252.153.129]:50978) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lqxrf-000241-ON for 48493@debbugs.gnu.org; Wed, 09 Jun 2021 09:03:26 -0400 Received: from fews2.riseup.net (fews2-pn.riseup.net [10.0.1.84]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.riseup.net", Issuer "Sectigo RSA Domain Validation Secure Server CA" (not verified)) by mx1.riseup.net (Postfix) with ESMTPS id 4G0S2t1KXszDqr8; Wed, 9 Jun 2021 06:03:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1623243798; bh=YycYdiygrUFX8+7IGvJxJxO+/YRUW+yaB7k0W/Wlf8M=; h=References:From:To:Cc:Subject:Date:In-reply-to:From; b=GrE96895pkQFKqjNF5/BkZ3s2VIAG4EgM8MnrMpoPOrgbXzPsLog86edKFJxSPbdn Za62bE37FTZAfb5LGQsO+4pN6ITZnNVyy3psAQWbJ0NNLK/XtTXyjOzaupxf++/oGw uBL05U4FtADjvPLBfUwa2sl66Oairi2srSgswhUI= X-Riseup-User-ID: 14952E984E211583A02FCC9DF0C0C83C95FCB4D69F58517FABE93123813957AD Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews2.riseup.net (Postfix) with ESMTPSA id 4G0S2n4vvDz1y6h; Wed, 9 Jun 2021 06:03:13 -0700 (PDT) References: <87h7j0wwkf.fsf@gmail.com> <87cztg41zy.fsf@host.localdomain> <878s434ls1.fsf@host.localdomain> <877djn3r3i.fsf@host.localdomain> <8735u94gt4.fsf@host.localdomain> <87r1hd8bsd.fsf@riseup.net> <87bl8gzov4.fsf@riseup.net> <3f8bf130-2723-27ed-8333-5db4de3515d8@gmx.at> <87y2bji58t.fsf@riseup.net> From: pillule Date: Wed, 09 Jun 2021 15:00:38 +0200 In-reply-to: <87y2bji58t.fsf@riseup.net> Message-ID: <87v96ni41i.fsf@riseup.net> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) >> What's wrong with putting the first disjunct into the >> conditional as in >> the below? In general, always try to avoid larger indentation >> changes - >> they can make forensics cumbersome while bisecting. >> >> (cond >> ;; First try to delete dedicated windows that are not >> side windows >> ((and dedicated (not (eq dedicated 'side)) >> (window--delete window 'dedicated (eq bury-or-kill >> 'kill)))) >> ((and (not prev-buffer) >> (eq (nth 1 quit-restore) 'tab) >> (eq (nth 3 quit-restore) buffer)) > > The difference is a window dedicated with flag t may not be > deletable, and in this case, we want it > to pass through the others conditionals branch of > quit-restore-window, so it can try to use the > 'quit-restore parameter, close the tab or to fallback in t, etc. > Explaining it makes me thing I could use 'window-deletable-p' in > its conditional and ... > I guess, problem solved > I read it again and think you were right, when (window--delete window 'dedicated (eq bury-or-kill 'kill)) is part of the conditional, it indeed already fail if the window is not deletable ; I will correct that in the next revision. -- From unknown Sun Jun 15 08:59:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#48493: 28.0.50; quit-window doesn't work Resent-From: pillule Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 09 Jun 2021 13:49:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48493 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: fixed To: pillule Cc: martin rudalics , 48493@debbugs.gnu.org, Sujith Manoharan Received: via spool by 48493-submit@debbugs.gnu.org id=B48493.162324652521120 (code B ref 48493); Wed, 09 Jun 2021 13:49:02 +0000 Received: (at 48493) by debbugs.gnu.org; 9 Jun 2021 13:48:45 +0000 Received: from localhost ([127.0.0.1]:60852 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lqyZY-0005UZ-05 for submit@debbugs.gnu.org; Wed, 09 Jun 2021 09:48:45 -0400 Received: from mx1.riseup.net ([198.252.153.129]:52516) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lqyZS-0005UI-M8 for 48493@debbugs.gnu.org; Wed, 09 Jun 2021 09:48:42 -0400 Received: from fews1.riseup.net (fews1-pn.riseup.net [10.0.1.83]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.riseup.net", Issuer "Sectigo RSA Domain Validation Secure Server CA" (not verified)) by mx1.riseup.net (Postfix) with ESMTPS id 4G0T344QM1zDqC3; Wed, 9 Jun 2021 06:48:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1623246512; bh=FJLIvIYE780OLz/VO1GCI9hIdqU3lYsWIU1MqVPdLH0=; h=References:From:To:Cc:Subject:Date:In-reply-to:From; b=CqnZV5UmZqLDUa74y3lM9UNjqvnPBDTetaMMsNee2mqZatcyuewTxQoZJxoWxBXPb hsxGkDB2bjhcDJVBdMXOW5TUailBx2AAlTT4Dx7vyZD+h0bdArKNejcztcUATKLC9m HGHauxNIzBytp+VFTWAL34hgRucuA6pd96lNKmO0= X-Riseup-User-ID: 829FCC605EC4FAC4C48DCA8C488F5C903F3A90F5D956D705335994E65ABC9A46 Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews1.riseup.net (Postfix) with ESMTPSA id 4G0T321Dsgz5vqb; Wed, 9 Jun 2021 06:48:29 -0700 (PDT) References: <87h7j0wwkf.fsf@gmail.com> <87cztg41zy.fsf@host.localdomain> <878s434ls1.fsf@host.localdomain> <877djn3r3i.fsf@host.localdomain> <8735u94gt4.fsf@host.localdomain> <87r1hd8bsd.fsf@riseup.net> <87bl8gzov4.fsf@riseup.net> <3f8bf130-2723-27ed-8333-5db4de3515d8@gmx.at> <87y2bji58t.fsf@riseup.net> <87v96ni41i.fsf@riseup.net> From: pillule Date: Wed, 09 Jun 2021 15:36:44 +0200 In-reply-to: <87v96ni41i.fsf@riseup.net> Message-ID: <87sg1ri1y3.fsf@riseup.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --=-=-= Content-Type: text/plain; format=flowed pillule writes: >>> What's wrong with putting the first disjunct into the >>> conditional as in >>> the below? In general, always try to avoid larger indentation >>> changes - >>> they can make forensics cumbersome while bisecting. >>> >>> (cond >>> ;; First try to delete dedicated windows that are not >>> side windows >>> ((and dedicated (not (eq dedicated 'side)) >>> (window--delete window 'dedicated (eq bury-or-kill >>> 'kill)))) >>> ((and (not prev-buffer) >>> (eq (nth 1 quit-restore) 'tab) >>> (eq (nth 3 quit-restore) buffer)) >> >> The difference is a window dedicated with flag t may not be >> deletable, and in this case, we want >> it >> to pass through the others conditionals branch of >> quit-restore-window, so it can try to use the >> 'quit-restore parameter, close the tab or to fallback in t, >> etc. >> Explaining it makes me thing I could use 'window-deletable-p' >> in its conditional and ... >> I guess, problem solved >> > > I read it again and think you were right, > when (window--delete window 'dedicated (eq bury-or-kill 'kill)) > is part of the conditional, it indeed already fail if the window > is not deletable ; > > I will correct that in the next revision. hm. here again minors corrections. sorry for the noise. --=-=-= Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename=0004-Improve-handling-of-side-dedicated-flag.patch Content-Transfer-Encoding: quoted-printable Content-Description: good ol'cond >From a0c037f8d1896f1e85570df04b1358504ea547b6 Mon Sep 17 00:00:00 2001 From: Trust me I am a doctor Date: Wed, 9 Jun 2021 13:43:21 +0200 Subject: [PATCH] Improve handling of side dedicated flag Following the discussion on (Bug#48493), restore the dedicated side flag of windows when a buffer change in the window, update the documentation. * doc/lispref/windows.texi (Buffers and Windows): Mention the exception of side windows and add a reference. (Buffer Display Action Alists): Say explicitly that 'display-buffer-in-side-window' is dedicating to side by default. (Dedicated Windows): Add case (4) and explain its meaning, add a reference. (Displaying Buffers in Side Windows): Move the paragraph about 'switch-to-(prev|next)-buffer' into a new item to emphasize the special meaning of dedication for side windows. * lisp/window.el (set-window-buffer-start-and-point): Restore side dedication. (switch-to-prev-buffer): Correct the return value that should be nil instead of the same buffer in case of no changement. (switch-to-next-buffer): Correct the return value that should be nil instead of the same buffer in case of no changement. (delete-windows-on): Restore side dedication. (replace-buffer-in-windows): Update the docstring, restore side dedication. (quit-restore-window): Rearrange the logic so hard dedicated windows are eventually deleted first, restore the side dedication, in the final case try to 'switch-to-prev-buffer' before deleting a window fix (Bug#48367). --- doc/lispref/windows.texi | 58 ++++++++++++++++++++++-------------- lisp/window.el | 63 ++++++++++++++++++++++++++++------------ 2 files changed, 80 insertions(+), 41 deletions(-) diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi index 44656c057a..3da206cd43 100644 --- a/doc/lispref/windows.texi +++ b/doc/lispref/windows.texi @@ -2172,12 +2172,13 @@ Buffers and Windows the current buffer. =20 The replacement buffer in each window is chosen via -@code{switch-to-prev-buffer} (@pxref{Window History}). Any dedicated -window displaying @var{buffer-or-name} is deleted if possible -(@pxref{Dedicated Windows}). If such a window is the only window on its -frame and there are other frames on the same terminal, the frame is -deleted as well. If the dedicated window is the only window on the only -frame on its terminal, the buffer is replaced anyway. +@code{switch-to-prev-buffer} (@pxref{Window History}). With the +exception of side windows (@pxref{Side Windows}), any dedicated window +displaying @var{buffer-or-name} is deleted if possible (@pxref{Dedicated +Windows}). If such a window is the only window on its frame and there +are other frames on the same terminal, the frame is deleted as well. +If the dedicated window is the only window on the only frame on its +terminal, the buffer is replaced anyway. @end deffn =20 =20 @@ -2994,6 +2995,8 @@ Buffer Display Action Alists any window it creates as dedicated to its buffer (@pxref{Dedicated Windows}). It does that by calling @code{set-window-dedicated-p} with the chosen window as first argument and the entry's value as second. +Side windows are by default dedicated with the value @code{side} +((@pxref{Side Window Options and Functions}). =20 @vindex preserve-size@r{, a buffer display action alist entry} @item preserve-size @@ -4042,18 +4045,19 @@ Dedicated Windows =20 Functions supposed to remove a buffer from a window or a window from a frame can behave specially when a window they operate on is dedicated. -We will distinguish three basic cases, namely where (1) the window is +We will distinguish four basic cases, namely where (1) the window is not the only window on its frame, (2) the window is the only window on -its frame but there are other frames on the same terminal left, and (3) -the window is the only window on the only frame on the same terminal. +its frame but there are other frames on the same terminal left, (3) +the window is the only window on the only frame on the same terminal, +and (4) the dedication's value is @code{side} +(@pxref{Displaying Buffers in Side Windows}). =20 In particular, @code{delete-windows-on} (@pxref{Deleting Windows}) -handles case (2) by deleting the associated frame and case (3) by -showing another buffer in that frame's only window. The function +handles case (2) by deleting the associated frame and cases (3) and (4) +by showing another buffer in that frame's only window. The function @code{replace-buffer-in-windows} (@pxref{Buffers and Windows}) which is called when a buffer gets killed, deletes the window in case (1) and behaves like @code{delete-windows-on} otherwise. -@c FIXME: Does replace-buffer-in-windows _delete_ a window in case (1)? =20 When @code{bury-buffer} (@pxref{Buffer List}) operates on the selected window (which shows the buffer that shall be buried), it @@ -4316,6 +4320,26 @@ Displaying Buffers in Side Windows middle slot. Hence, all windows on a specific side are ordered by their @code{slot} value. If unspecified, the window is located in the middle of the specified side. + + +@item dedicated +The dedicated flag is not reserved to this function, but has a +slightly different meaning for side windows. They receive it upon +creation with the value @code{side}; it serves to prevent +@code{display-buffer} to use these windows with others action +functions, and it persists across invocations of @code{quit-window}, +@code{kill-buffer}, @code{previous-buffer} and @code{next-buffer}. +In particular, these commands will refrain from showing, in a side +window, buffers that have not been displayed in that window before. +They will also refrain from having a normal, non-side window show a +buffer that has been already displayed in a side window. A notable +exception to the latter rule occurs when an application, after +displaying a buffer, resets that buffer=E2=80=99s local variables. To +override these rules and always delete a side window with +@code{quit-window} or @code{kill-buffer}, and eventually prevent +the use of @code{previous-buffer} and @code{next-buffer}, set this +value to @code{t} or specify a value for +@code{display-buffer-mark-dedicated}. @end table =20 If you specify the same slot on the same side for two or more different @@ -4336,16 +4360,6 @@ Displaying Buffers in Side Windows action. Note also that @code{delete-other-windows} cannot make a side window the only window on its frame (@pxref{Deleting Windows}). =20 - Once set up, side windows also change the behavior of the commands -@code{switch-to-prev-buffer} and @code{switch-to-next-buffer} -(@pxref{Window History}). In particular, these commands will refrain -from showing, in a side window, buffers that have not been displayed in -that window before. They will also refrain from having a normal, -non-side window show a buffer that has been already displayed in a side -window. A notable exception to the latter rule occurs when an -application, after displaying a buffer, resets that buffer's local -variables. - =20 @node Side Window Options and Functions @subsection Side Window Options and Functions diff --git a/lisp/window.el b/lisp/window.el index fd1c617d6b..0504abb8c6 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -4424,8 +4424,10 @@ set-window-buffer-start-and-point before was current this also makes BUFFER the current buffer." (setq window (window-normalize-window window t)) (let ((selected (eq window (selected-window))) - (current (eq (window-buffer window) (current-buffer)))) + (current (eq (window-buffer window) (current-buffer))) + (dedicated-side (eq (window-dedicated-p window) 'side))) (set-window-buffer window buffer) + (and dedicated-side (set-window-dedicated-p window 'side)) (when (and selected current) (set-buffer buffer)) (when start @@ -4559,11 +4561,11 @@ switch-to-prev-buffer ;; Scan WINDOW's previous buffers first, skipping entries of next ;; buffers. (dolist (entry (window-prev-buffers window)) - (when (and (setq new-buffer (car entry)) + (when (and (not (eq (car entry) old-buffer)) + (setq new-buffer (car entry)) (or (buffer-live-p new-buffer) (not (setq killed-buffers (cons new-buffer killed-buffers)))) - (not (eq new-buffer old-buffer)) (or (null pred) (funcall pred new-buffer)) ;; When BURY-OR-KILL is nil, avoid switching to a ;; buffer in WINDOW's next buffers list. @@ -4726,11 +4728,11 @@ switch-to-next-buffer ;; Scan WINDOW's reverted previous buffers last (must not use ;; nreverse here!) (dolist (entry (reverse (window-prev-buffers window))) - (when (and (setq new-buffer (car entry)) + (when (and (not (eq new-buffer (car entry))) + (setq new-buffer (car entry)) (or (buffer-live-p new-buffer) (not (setq killed-buffers (cons new-buffer killed-buffers)))) - (not (eq new-buffer old-buffer)) (or (null pred) (funcall pred new-buffer))) (if (switch-to-prev-buffer-skip-p skip window new-buffer) (setq skipped (or skipped new-buffer)) @@ -4957,9 +4959,10 @@ delete-windows-on (all-frames (cond ((not frame) t) ((eq frame t) nil) (t frame)))) (dolist (window (window-list-1 nil nil all-frames)) (if (eq (window-buffer window) buffer) - (let ((deletable (window-deletable-p window))) + (let ((deletable (window-deletable-p window)) + (dedicated (window-dedicated-p window))) (cond - ((and (eq deletable 'frame) (window-dedicated-p window)) + ((and (eq deletable 'frame) dedicated) ;; Delete frame if and only if window is dedicated. (delete-frame (window-frame window))) ((eq deletable t) @@ -4968,7 +4971,10 @@ delete-windows-on (t ;; In window switch to previous buffer. (set-window-dedicated-p window nil) - (switch-to-prev-buffer window 'bury)))) + (switch-to-prev-buffer window 'bury) + ;; restore the dedicated side flag + (when (eq dedicated 'side) + (set-window-dedicated-p window 'side))))) ;; If a window doesn't show BUFFER, unrecord BUFFER in it. (unrecord-window-buffer window buffer))))) =20 @@ -4977,10 +4983,10 @@ replace-buffer-in-windows BUFFER-OR-NAME may be a buffer or the name of an existing buffer and defaults to the current buffer. =20 -When a window showing BUFFER-OR-NAME is dedicated, that window is -deleted. If that window is the only window on its frame, the -frame is deleted too when there are other frames left. If there -are no other frames left, some other buffer is displayed in that +With the exception of side windows, when a window showing BUFFER-OR-NAME +is dedicated, that window is deleted. If that window is the only window +on its frame, the frame is deleted too when there are other frames left. +If there are no other frames left, some other buffer is displayed in that window. =20 This function removes the buffer denoted by BUFFER-OR-NAME from @@ -4989,10 +4995,14 @@ replace-buffer-in-windows (let ((buffer (window-normalize-buffer buffer-or-name))) (dolist (window (window-list-1 nil nil t)) (if (eq (window-buffer window) buffer) - (unless (window--delete window t t) - ;; Switch to another buffer in window. - (set-window-dedicated-p window nil) - (switch-to-prev-buffer window 'kill)) + ;; delete dedicated window that are not side windows + (let ((dedicated-side (eq (window-dedicated-p window) 'side))) + (when (or dedicated-side (not (window--delete window t t))) + ;; Switch to another buffer in window. + (set-window-dedicated-p window nil) + (if (switch-to-prev-buffer window 'kill) + (and dedicated-side (set-window-dedicated-p window 'side= )) + (window--delete window nil 'kill)))) ;; Unrecord BUFFER in WINDOW. (unrecord-window-buffer window buffer))))) =20 @@ -5014,6 +5024,10 @@ quit-restore-window parameter to nil. See Info node `(elisp) Quitting Windows' for more details. =20 +If WINDOW have the flag dedicated with the value t, always try to +delete WINDOW, with the value side, restore that value when +WINDOW is not deleted. + Optional second argument BURY-OR-KILL tells how to proceed with the buffer of WINDOW. The following values are handled: =20 @@ -5040,8 +5054,12 @@ quit-restore-window (dolist (buf (window-prev-buffers window)) (unless (eq (car buf) buffer) (throw 'prev-buffer (car buf)))))) + (dedicated (window-dedicated-p window)) quad entry) (cond + ;; first try to delete dedicated windows that are not side windows + ((and dedicated (not (eq dedicated 'side)) + (window--delete window 'dedicated (eq bury-or-kill 'kill)))) ((and (not prev-buffer) (eq (nth 1 quit-restore) 'tab) (eq (nth 3 quit-restore) buffer)) @@ -5084,6 +5102,8 @@ quit-restore-window ;; Restore WINDOW's previous buffer, start and point position. (set-window-buffer-start-and-point window (nth 0 quad) (nth 1 quad) (nth 2 quad)) + ;; and restore the side dedicated flag + (when (eq dedicated 'side) (set-window-dedicated-p window 'side)) ;; Deal with the buffer we just removed from WINDOW. (setq entry (and (eq bury-or-kill 'append) (assq buffer (window-prev-buffers window)))) @@ -5110,9 +5130,14 @@ quit-restore-window (set-window-parameter window 'quit-restore nil) ;; Make sure that WINDOW is no more dedicated. (set-window-dedicated-p window nil) - (unless (switch-to-prev-buffer window bury-or-kill) - ;; Delete WINDOW if there is no previous buffer (Bug#48367). - (window--delete window nil (eq bury-or-kill 'kill))))) + ;; (Bug#48367) try to swith to a previous buffer + ;; delete the window only if it is not possible + (if (switch-to-prev-buffer window bury-or-kill) + (when (eq dedicated 'side) + (set-window-dedicated-p window 'side)) + (window--delete window nil (eq bury-or-kill 'kill)) + (when (window-live-p (nth 2 quit-restore)) + (select-window (nth 2 quit-restore)))))) =20 ;; Deal with the buffer. (cond --=20 2.20.1 --=-=-= Content-Type: text/plain; format=flowed -- --=-=-=-- From unknown Sun Jun 15 08:59:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#48493: 28.0.50; quit-window doesn't work Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 13 Jun 2021 08:50:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48493 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: fixed To: pillule Cc: Sujith Manoharan , 48493@debbugs.gnu.org Received: via spool by 48493-submit@debbugs.gnu.org id=B48493.162357419931491 (code B ref 48493); Sun, 13 Jun 2021 08:50:01 +0000 Received: (at 48493) by debbugs.gnu.org; 13 Jun 2021 08:49:59 +0000 Received: from localhost ([127.0.0.1]:42639 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lsLod-0008Br-FD for submit@debbugs.gnu.org; Sun, 13 Jun 2021 04:49:59 -0400 Received: from mout.gmx.net ([212.227.17.21]:54573) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lsLob-0008Bc-3b for 48493@debbugs.gnu.org; Sun, 13 Jun 2021 04:49:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1623574187; bh=b+CT+sf5bYLD0fu4Djo6Sv+tdXZudpdZIuN8o9IksZs=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=PvC8s9ULJDoyFRYx47yMyeuoGcl4FaTEV2cB4QjGgTT396FfUpKB97oyDnITClzVB cbi97GXUdMLw79rGcJOpBx8w/syPgsc79IXCSuCZTSL7WqxQQ9zOehT7umvZShhYQG pg7ddM8Z4g0ZafaChSxa4K7ZmbN37pXw98y3isbM= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.1.100] ([212.95.5.96]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1Mt79F-1l3HYg2Hpx-00tQkY; Sun, 13 Jun 2021 10:49:47 +0200 References: <87h7j0wwkf.fsf@gmail.com> <87cztg41zy.fsf@host.localdomain> <878s434ls1.fsf@host.localdomain> <877djn3r3i.fsf@host.localdomain> <8735u94gt4.fsf@host.localdomain> <87r1hd8bsd.fsf@riseup.net> <87bl8gzov4.fsf@riseup.net> <3f8bf130-2723-27ed-8333-5db4de3515d8@gmx.at> <87y2bji58t.fsf@riseup.net> <87v96ni41i.fsf@riseup.net> <87sg1ri1y3.fsf@riseup.net> From: martin rudalics Message-ID: <4d285d77-03b6-1330-8763-f17eccf64e53@gmx.at> Date: Sun, 13 Jun 2021 10:49:45 +0200 MIME-Version: 1.0 In-Reply-To: <87sg1ri1y3.fsf@riseup.net> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:z+ykiDc5du9HXD3OyYetEeq/DOUvolTS2CcrnhTpHFpWWhnBg84 CWlWKSYXKGA5HYfCzUraxSYI79uftD/7uaDrMaZ52uRsTUaEMHPzIDQKgqQLOUgvR0yLt3S CrJY56nVy3vfMcP95GcJRUC7V/h6e0obRN9n1Jv/Dm4a5FOYlFdiXJPlGPj3+gYi3Trdus1 iIpoqKzIIx+bRzlJ+rl5g== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:UQ2fXmsXOAc=:dmKBtg+CYUYoPl4MGHfMsE DX1820H9LVYHLlX++Z3S9bm7UGb2YmfJsA4Xeeknjv1oHFAcNjk1671t0TU3STOgLgmyE9gIk +hDCF3EkQGvtsBkzT8zC+5SIzTnKBWI2uYLBBfqOStUQmxemNYrHvnQj9/3YCndNH0AW9Anah qGo3+8y0dSy1emspST2xlSIhBnWqWtvaKLqa/uDGR03hL0u9dakXC5nC7+mveFLZFiNhzFvXY FoxzEz6jfEgaXw2ntJOI/Imuce+4Pd89iDTDJoEDRW2wZuhpKPSrMgtZl6wltQku7AjGieqqU +Ka1nQxTBDtml2qZ4ENk8ujMKxxnUM6LGM/DcReKWiqWHiAe3DTzWQeHM/3CZAwoeTizckTbk ij0ayQCc4AmrjKxb3tRvPkpo4o9w4Fn9dmKO18z+Od2gNtRc4ehJj29cGrXSIwJVfpN0U4dLS wa7PeJ6V4DA9t1BCx8dQSejCCUztTS5e+DIXU7ecoFBpWZL1B9c1GGSaT9ST0aa1c+GEnJIiS /i4op2StFEOkELC1fPaSC+6wEKVSL51XQsxd+OTIG2obXPbBRlVfb+DA7wq4V45D4L2JC7cWy MKx3VHC4b5wp83xyD1QFLdVytBrBKdyDJbUZKgaI5D2bCuIshX3HMYOoTKzwhfZjmjFOnCMVH JO4Af0SoKpkW2QBk3OdGIaWXNlzjihbjIhcXdhTCGIKwVysM10OGYIsfG6YIvDiJF4hssUlA3 X0lbLbBljq651X0/TjE1Ln87bza4fENliC44TvuxjYIDATCwNNuvVxnLUkOvsUQmTbxWnoYCq Gf3Tk/c7SFN3YKfwfCSupk5dJ4DQz29Z4Yk9XZzwK0vZpzuNVaFUqDgufpScchLYKPi/A/I// ByI5Rjyx5lZKkeEImiDzY/V2ElVlTQ85fXHUCVPJOjjvfeytaChT77ftXYwuhvvB7oGylxZEh d3Usx5WlOUHq3LtE+YfuRJMAhE+Weop7slc+9phL54BG6tf8L+yk96xwv1OB+Ik1r5bWCIv5V 6f+hgRrCp2RYzRp/Q4e9LDe7e/JAqrZn8OFNtcDKGQfLywxkaZyAVll0AbkaFKkBY/HPAr19P V4zL0czDcFWKYFjs+xcig/5FYWEZA+ak4Ef X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) > hm. here again minors corrections. sorry for the noise. OK. Please inform me as soon as your paperwork is complete. Thanks, martin From unknown Sun Jun 15 08:59:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#48493: 28.0.50; quit-window doesn't work Resent-From: pillule Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 13 Jun 2021 09:30:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48493 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: fixed To: martin rudalics Cc: pillule , Sujith Manoharan , 48493@debbugs.gnu.org Received: via spool by 48493-submit@debbugs.gnu.org id=B48493.16235765472514 (code B ref 48493); Sun, 13 Jun 2021 09:30:03 +0000 Received: (at 48493) by debbugs.gnu.org; 13 Jun 2021 09:29:07 +0000 Received: from localhost ([127.0.0.1]:42653 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lsMQV-0000eT-3G for submit@debbugs.gnu.org; Sun, 13 Jun 2021 05:29:07 -0400 Received: from mx1.riseup.net ([198.252.153.129]:38974) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lsMQS-0000e0-Hd for 48493@debbugs.gnu.org; Sun, 13 Jun 2021 05:29:05 -0400 Received: from fews1.riseup.net (fews1-pn.riseup.net [10.0.1.83]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.riseup.net", Issuer "Sectigo RSA Domain Validation Secure Server CA" (not verified)) by mx1.riseup.net (Postfix) with ESMTPS id 4G2q5k3Z9mzDrcW; Sun, 13 Jun 2021 02:28:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1623576538; bh=DjLBZvFiBi8XqhdxECxzFRWRY+B2/oLgQr2Ms/Yu/fw=; h=References:From:To:Cc:Subject:Date:In-reply-to:From; b=XhnrqrWkxGafldYHn436Pw5v/QJ0x/mgG9FZlT8yHnhCvVna9dObyORzFHcOodCm5 mo6eHQcKTxDFrKZ7w1EchLB0lGwE1Wfw4CpilivaNXCtqImzL0vIYTrtV27O7CJ1Rp HLqmjOKflBkIvQFqT+W3XbWXlUMzOW5ZeQ8MMLNc= X-Riseup-User-ID: CCA4E9D5138E65D245DC62D20B45980521D98787FAE2560D2C8078B13955CBD3 Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews1.riseup.net (Postfix) with ESMTPSA id 4G2q5h0YF2z5vbR; Sun, 13 Jun 2021 02:28:55 -0700 (PDT) References: <87h7j0wwkf.fsf@gmail.com> <87cztg41zy.fsf@host.localdomain> <878s434ls1.fsf@host.localdomain> <877djn3r3i.fsf@host.localdomain> <8735u94gt4.fsf@host.localdomain> <87r1hd8bsd.fsf@riseup.net> <87bl8gzov4.fsf@riseup.net> <3f8bf130-2723-27ed-8333-5db4de3515d8@gmx.at> <87y2bji58t.fsf@riseup.net> <87v96ni41i.fsf@riseup.net> <87sg1ri1y3.fsf@riseup.net> <4d285d77-03b6-1330-8763-f17eccf64e53@gmx.at> From: pillule Date: Sun, 13 Jun 2021 11:28:32 +0200 In-reply-to: <4d285d77-03b6-1330-8763-f17eccf64e53@gmx.at> Message-ID: <87k0my6rlf.fsf@riseup.net> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) martin rudalics writes: >> hm. here again minors corrections. sorry for the noise. > > OK. Please inform me as soon as your paperwork is complete. > > Thanks, martin I get the papers, get the papers ! -- From unknown Sun Jun 15 08:59:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#48493: 28.0.50; quit-window doesn't work Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 13 Jun 2021 14:53:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48493 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: fixed To: pillule Cc: Sujith Manoharan , 48493@debbugs.gnu.org Received: via spool by 48493-submit@debbugs.gnu.org id=B48493.162359593322454 (code B ref 48493); Sun, 13 Jun 2021 14:53:02 +0000 Received: (at 48493) by debbugs.gnu.org; 13 Jun 2021 14:52:13 +0000 Received: from localhost ([127.0.0.1]:44189 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lsRTB-0005q6-E1 for submit@debbugs.gnu.org; Sun, 13 Jun 2021 10:52:13 -0400 Received: from mout.gmx.net ([212.227.17.22]:37927) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lsRT9-0005pr-9f for 48493@debbugs.gnu.org; Sun, 13 Jun 2021 10:52:11 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1623595922; bh=6v3chUx6+JVkClnNVC2snox4sf+vkDPrvyutBWf2yR4=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=AR+DOptp+TgFMMlOqJe2Bzr0JzUiwvJ6QXSjnnkgUaduZybgADSoRTCuvnMtOXonE wMxwPPTuChGM2py8yD8N8F7vW26zJZKpCZfnrf7bxeD89jN5L2pAKi9S2oqkBlNUO9 3wdR8kK1DLlBU3OjmF/nc1hMpiBlIMNHIWvoHY0o= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.1.100] ([212.95.5.96]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1N3se8-1lAgYE1Ba4-00zne6; Sun, 13 Jun 2021 16:52:02 +0200 References: <87h7j0wwkf.fsf@gmail.com> <87cztg41zy.fsf@host.localdomain> <878s434ls1.fsf@host.localdomain> <877djn3r3i.fsf@host.localdomain> <8735u94gt4.fsf@host.localdomain> <87r1hd8bsd.fsf@riseup.net> <87bl8gzov4.fsf@riseup.net> <3f8bf130-2723-27ed-8333-5db4de3515d8@gmx.at> <87y2bji58t.fsf@riseup.net> <87v96ni41i.fsf@riseup.net> <87sg1ri1y3.fsf@riseup.net> <4d285d77-03b6-1330-8763-f17eccf64e53@gmx.at> <87k0my6rlf.fsf@riseup.net> From: martin rudalics Message-ID: Date: Sun, 13 Jun 2021 16:52:01 +0200 MIME-Version: 1.0 In-Reply-To: <87k0my6rlf.fsf@riseup.net> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:s1lXnGoRJcdW1zdbI12OzZ476OCZbN1QSPFXj6x2eGyetRMmPcG mqPtrtE+DaSyK6RejYPYCAL5vBSpT0HG4aBDGWLu00WIVVAQSerU5FhRqSYnNH4az7tNRkP VmjMGjWOmIfJFnijU40yLg9D+APh1gaEBDHn088sVvjO7ydkuaO/2YZUuMm1CZrHSaN0wSH eU7fCFi3fwOdG42evR5wA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:trB4L9ULlJw=:puNLK1f8OueDb3ylpeviM/ rf01H8Fq5l8r8POL7HSVrzLq5KL2V179InLYz11KwYuuEzsoA3Gqskul1QJzocZ59Fe/7Uu/5 gy0SU1c3o1IH7AX2ev5//IDu0JK4dGq2r1PYt6GRey5KXyh5p39i1r7c5HBqfmCXRCrjAwnvf s/xz24TIwl4sqhOrbGTUQ2TMawI654RQqeunSrbJbzU9JeDshkd+XWz+aIXL5sat2It5hhUZ8 7ZcI7V63YqijV8XKD0amj2GvC3qgO3TBlp6ewYBsmYnj8Kdykg+gMoEC/iiLPdeIKlZL6ZAln Y002W4HMisoMT1OFMlaamPohg0I5c1Ehi7hanu8m32w96H7/+8BLkSJnot/KA9dh7+fak4e15 zxDsHB9PIcza03HXk0YlXp0ITqPA/pFK1g4Af754QkUibhbRmZPpETlgMuJsbJAUymQiJ8U// 7D1ZTBk5Hn4ckXT75FJrb7WZaoeEVQS/ly7pt/xXlhfWZttVs1SGL3XUMTxEPASEdRxCAafXG jTOaqBQ694mkxw3uPHUXAsSctF0OLMr70a8sKS6vNxIYugTSmhAUDkpFHSwTeY81YLPgQgoEx 1INjrsuL3wnM3tHLq0f7sJlXW5CQ+PHbtjkzgjmmqFTS4wUyea2tLGg5/whxuSdHKIKj5tyIq WCZYvkTTwX7X/IA+qucFEuZhs4umjXXpEaSZBoNRI8DcVYgUhBZYDZCn8SrEEVw6Xup4uLYNU /RBc0M3abyDmPMaphe/1t2mDRK8r7b/owYSrWdtDhR/5DhqYQ7nnHlcNBc85pW6EDWydLQ9CV QNJzGeDev6gYwvu7jmQUsY+JHWx8RipYC1rDpoarTCJoXyNbw+6fscJcOSdQwIv9i+RhYi17l o6XZjOwXDwPBWE0NUeFsKrPDiVtWa6K4AQHrJCGd6GBM7Al6w5iwOjO7MdC3xygo9vc/dPe4k mWzsjx+UjsUkudocbnUy8zVH35raiSD47SuHWpsr+FeghIg1IaA81MAkqNn9zf7PxWZ224pfC G6V4Q263tR6iE1R4kPozgq6c23gKpq+BaElAriZYv9crdXasFxg6CbG2ayqrRGrEYuPqcTXip PqHfnIi2BCoS6ZBztwTpTXwlB0zP4sFxkuL X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) > I get the papers, get the papers ! Congratulations! martin From unknown Sun Jun 15 08:59:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#48493: 28.0.50; quit-window doesn't work Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 14 Jun 2021 08:29:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48493 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: fixed To: pillule Cc: Sujith Manoharan , 48493@debbugs.gnu.org Received: via spool by 48493-submit@debbugs.gnu.org id=B48493.162365934010982 (code B ref 48493); Mon, 14 Jun 2021 08:29:01 +0000 Received: (at 48493) by debbugs.gnu.org; 14 Jun 2021 08:29:00 +0000 Received: from localhost ([127.0.0.1]:45012 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lshxr-0002r4-RW for submit@debbugs.gnu.org; Mon, 14 Jun 2021 04:28:59 -0400 Received: from mout.gmx.net ([212.227.17.20]:42925) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lshxo-0002qf-Px for 48493@debbugs.gnu.org; Mon, 14 Jun 2021 04:28:58 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1623659327; bh=dRrjU4tvWvy3xYB3nB/H5RU5o8108ooDgSgH7uPinUU=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=diJx8JMoBfQ7FvA9fJVc/mN0wd4p3IUhq0ITmLTzDDWG3Cp2WRWN5/+eedQ6C2RPZ OZ3+1QAlOJPJsAs13HXlIDZCL7H59bvIs2Qia7nH/1DvG2XUp3eRKLb2IAbDZctWU5 Ta5lV+KXhYd9VAnJ9RV8cDatdBZ0awNI2tuGt0/s= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.1.100] ([213.142.96.161]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1N2E1G-1lBVr72PRG-013iVg; Mon, 14 Jun 2021 10:28:47 +0200 References: <87h7j0wwkf.fsf@gmail.com> <87cztg41zy.fsf@host.localdomain> <878s434ls1.fsf@host.localdomain> <877djn3r3i.fsf@host.localdomain> <8735u94gt4.fsf@host.localdomain> <87r1hd8bsd.fsf@riseup.net> <87bl8gzov4.fsf@riseup.net> <3f8bf130-2723-27ed-8333-5db4de3515d8@gmx.at> <87y2bji58t.fsf@riseup.net> <87v96ni41i.fsf@riseup.net> <87sg1ri1y3.fsf@riseup.net> From: martin rudalics Message-ID: <756d58e5-3900-e492-3d2b-655c106760c3@gmx.at> Date: Mon, 14 Jun 2021 10:28:45 +0200 MIME-Version: 1.0 In-Reply-To: <87sg1ri1y3.fsf@riseup.net> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:hWKnQ4Mh5PnzFJj53TChXXeY/6nK6sj+KGJOnSMhQIOTZedChck Bw8YQQGQ4II4a42P41JUP01J8pyuCQMWwiVIEt9sxDU7OAXgvYfdevkUn83yOC8QY2Jy4zM /Qp08H06ObTtmUcmJSgrtA02qd621P+9dybhOgEy+5ErsvNnHY/DdmsWaAGNHjXAzv8nKat AMin1UPdc5XOpx1EzY8sg== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:RFE60ntRtmM=:7f9XFVUgEyBa8PDZwZSjKk spLAnywf3J8wpN0NfSezkIrI8yXQDQC1U4cL54wMJ8GiH7gYxmgl2vbxoux9H/auQFRHq/RR4 WombEEKt8rkLiikWZsrNePkjPMH4PsNsfjUVu6daxd5Y1jEHF3csr3E5HNm6r9jZrqcJ14GoV dvHE8M96jBgDg6+3Dng6oSTFaxFmhtK2ijn9hcFLzsORZNvu17oG5UQnBzo9hFWD+cxTTcPB8 5YMEq62sJ0vKETCTciWPEFr0Nu0rA1YfCAAQXHYp5G0iHO1JoegJM4AvKXJihqw2PYgxxRhfX n57cpyMxzl1FFmoFpfUAKap3qtD0hsyPlihL2UleGeDyA4ZMfgxfjZttMFt+pL+HUNP3IaBxN DhDVzzE737vL60u+ds0kGJQIfrXeESVK5U0M32rKUYW7S6L+G7J6JOEHK6fevqNCNrFK6HXll P34vRVbFNeRbcugAi32TDybHgUsjpSsnNo2+B2laswDCQmaKtqbJVdj80I1hqRRhuxavbwGxL Pdmr3huY9bkh7on/kLp5YPRXEejZWmCMwbxN859VMBUE+wW4wRIJGcu5H6UXfZbn0es2+P5LD toBHvcGiCiHdieWDTZIt8DMgo//kIINUSMl3T+kdFsZFBWU+MYqvGMJMqL7I7vxk0ecrUH5/A ab8qNedrg77RSsinggK7H26NzoGtu7x7kDsy+LJH7unHvKlVRGBx+afR+hMMnnblT9EIKtmZ9 moZsUUHGys1uQMgjiWDMqqsnNzgxZE1lPzwORy6zBbP+bYnWzmthJO45O+C23t7ykBgmNNAzx cqt5EVrDdN/toUndEoy84WzVCyW7pUHJ8J7xe5iJ8cgBRTA1fIKIEwDOg/MSG2HCgW00I8zxd Qnp8NHe2yahBiakGjRTor0ZPkf6Ly/5ZNGgzwVXnK3TQoZ3rGZQ/nl/RUNDPxgQ8ZZDyYJ6/e iYcZWC0PGgyVGt6/z3KgNZ9kRHkpAXqMtIrW4mX9nosEBl+IQ3BSmmj0sd6mrbgYjsrmpoTZY xT5hUOlJo8FV7wRshXTuolBt0d+ODVfcWvFKdq/AXVKULzNQNJ2vFQPF2zXcJ0nC7a88nOWOn Rmi94ntRO5yrZ9k63WWWLonT7q1liUCnea5 X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) > here again minors corrections. sorry for the noise. I pushed that change now with some minor modifications. Please have a look. Thanks, martin From unknown Sun Jun 15 08:59:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#48493: 28.0.50; quit-window doesn't work Resent-From: pillule Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 15 Jun 2021 17:01:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48493 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: fixed To: martin rudalics Cc: pillule , Sujith Manoharan , 48493@debbugs.gnu.org Received: via spool by 48493-submit@debbugs.gnu.org id=B48493.16237764315442 (code B ref 48493); Tue, 15 Jun 2021 17:01:02 +0000 Received: (at 48493) by debbugs.gnu.org; 15 Jun 2021 17:00:31 +0000 Received: from localhost ([127.0.0.1]:50668 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ltCQQ-0001Pi-UV for submit@debbugs.gnu.org; Tue, 15 Jun 2021 13:00:31 -0400 Received: from mx1.riseup.net ([198.252.153.129]:48614) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ltCQP-0001PT-4Y for 48493@debbugs.gnu.org; Tue, 15 Jun 2021 13:00:29 -0400 Received: from fews1.riseup.net (fews1-pn.riseup.net [10.0.1.83]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.riseup.net", Issuer "Sectigo RSA Domain Validation Secure Server CA" (not verified)) by mx1.riseup.net (Postfix) with ESMTPS id 4G4F1g2rvHzDxn2; Tue, 15 Jun 2021 10:00:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1623776423; bh=G+wV+YkyGEUWAN/G+uCKzNd7URQtgojpw8/7u7d4zx8=; h=References:From:To:Cc:Subject:Date:In-reply-to:From; b=OTKULuLsMwhKSGfIi8VkZTLqVKfDZD/0kmTFfpa40PJNJIibg4ftbTMLGmY3KGjy/ rpQiqHkOdMrHB3Pl7aSjef5Q20pTbBnzocge39+7EnxYqYuDlVD27j8/5JWCmb+dbl 5PAexaAVM3zXxrUwBrNo+/bfDSF9zqEwE6xr5f8c= X-Riseup-User-ID: 0638D3FB9DD02AB271119783EE02225EDBFDB18DE617C946C1560CEAB25A4732 Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews1.riseup.net (Postfix) with ESMTPSA id 4G4F1d0tblz5vZN; Tue, 15 Jun 2021 10:00:20 -0700 (PDT) References: <87h7j0wwkf.fsf@gmail.com> <87cztg41zy.fsf@host.localdomain> <878s434ls1.fsf@host.localdomain> <877djn3r3i.fsf@host.localdomain> <8735u94gt4.fsf@host.localdomain> <87r1hd8bsd.fsf@riseup.net> <87bl8gzov4.fsf@riseup.net> <3f8bf130-2723-27ed-8333-5db4de3515d8@gmx.at> <87y2bji58t.fsf@riseup.net> <87v96ni41i.fsf@riseup.net> <87sg1ri1y3.fsf@riseup.net> <756d58e5-3900-e492-3d2b-655c106760c3@gmx.at> From: pillule Date: Tue, 15 Jun 2021 18:53:33 +0200 In-reply-to: <756d58e5-3900-e492-3d2b-655c106760c3@gmx.at> Message-ID: <87sg1j3vxp.fsf@riseup.net> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) martin rudalics writes: >> here again minors corrections. sorry for the noise. > > I pushed that change now with some minor modifications. Please have a > look. > > Thanks, martin Thanks :) --