From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jim Porter Newsgroups: gmane.emacs.bugs Subject: bug#58909: 29.0.50; [WIP PATCH] Deleting the last frame of an emacsclient doesn't ask to save Date: Wed, 2 Nov 2022 09:36:52 -0700 Message-ID: References: <9a70f868-ca50-52fc-af3e-23813af104f2@gmail.com> <83zgdcduxm.fsf@gnu.org> <53238b5b-3e0a-3dfe-eeba-f37cafa81f50@gmail.com> <838rkveq3n.fsf@gnu.org> <7de45884-b4c9-4a4c-777c-5db17b3bacca@gmail.com> <835yfzeobt.fsf@gnu.org> <7694fcf2-8982-9099-5eb8-39835d049847@gmail.com> <83y1svch5u.fsf@gnu.org> <0dc07894-dfa1-01f6-87c4-9e02bfcaf0dc@gmail.com> <83bkppblh7.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------qlARUBNhtTsCxdvPZv0SDD6R" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="1606"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 58909@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Nov 02 17:38:11 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oqGkk-0000Fj-Hc for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 02 Nov 2022 17:38:10 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oqGke-0002gu-KY; Wed, 02 Nov 2022 12:38:04 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oqGkc-0002g3-Rk for bug-gnu-emacs@gnu.org; Wed, 02 Nov 2022 12:38:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oqGkc-0000Tw-D0 for bug-gnu-emacs@gnu.org; Wed, 02 Nov 2022 12:38:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oqGkc-0003ON-0C for bug-gnu-emacs@gnu.org; Wed, 02 Nov 2022 12:38:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 02 Nov 2022 16:38:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 58909 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 58909-submit@debbugs.gnu.org id=B58909.166740703112977 (code B ref 58909); Wed, 02 Nov 2022 16:38:01 +0000 Original-Received: (at 58909) by debbugs.gnu.org; 2 Nov 2022 16:37:11 +0000 Original-Received: from localhost ([127.0.0.1]:47059 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oqGjn-0003NF-1Q for submit@debbugs.gnu.org; Wed, 02 Nov 2022 12:37:11 -0400 Original-Received: from mail-pf1-f180.google.com ([209.85.210.180]:42526) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oqGjb-0003Mb-4P for 58909@debbugs.gnu.org; Wed, 02 Nov 2022 12:37:10 -0400 Original-Received: by mail-pf1-f180.google.com with SMTP id b185so16887426pfb.9 for <58909@debbugs.gnu.org>; Wed, 02 Nov 2022 09:36:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:from:references:cc:to:content-language:subject :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=OdGdMGsxUq4SsLsIYqyLT8dKQaaPZOE7kXidScdWJmk=; b=FriPQCSHLaOwEZ3AHMAeCbRbDBuLB+DfNs6R5TuyB8vpN/RSy0J3RlgFkTsypKRP47 qZfGei5N0bLZCUCuRoHS25KIvYVXjotdMCfq0zF6HO4cDgSexFFVrNht1eOOOyWCCqF6 vzRFzzlIhb5S2YVkArX4SNzpmXhiGWypA7BFiDixRrYY9VVXNAw6fPo/MGEDipGRH3+6 mcc6suFZmve3gugyFJHe6SZpEtHbcbDpgTCXhNZCXHRLcOS6VI3zCEuuM5z8CkF1mBJU c9VFhv2u3r0hDHknbyFsZUatSxIPN0LAiYjTv91+1R309+X2dTYgTc35pTZcQuPrbNlG FTLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:from:references:cc:to:content-language:subject :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=OdGdMGsxUq4SsLsIYqyLT8dKQaaPZOE7kXidScdWJmk=; b=diX0tIQvKOuAJE8swMlhIlPmwj26MKEBHanNEuM06w/DRN2bX+eH2+XKQ42Fs4Z4Lt d8/LIB8zEpJVQMnxH3p18X+fRadlnpFHBLTyDIw1K5HHcy/jrgWKcOYz9XUKj4eVhq5Y HSXCCH8JniE5rRilf9gWk/jSMIHMKQp2D/oXbBxSlSocIUOE5SY9vxPTw/RoobGXcDrI 4SiwtDaVeUPCICxIrcd/u8yCEl+3gux+u3aiYHRg3OaqWq1rqzmHYoFa/94+m8/vnQV6 BIXI79oRhd/ELe+X4ihvYPIY8BYrI4pm7fLNIEK+5/8a/qPi3tcRcn0XO21CrSaTWNwO NaLg== X-Gm-Message-State: ACrzQf17xh5Kbt4E4rNwh8C43obbEOBNvbyLprBwcADOnqL2PxKKHaGJ H/EGCnYZ3a5kBYgEG8UIxUqUJRMARCs= X-Google-Smtp-Source: AMsMyM62mkdZCnPBafWPmM3UeTAnG7cDrmuEvD/anzQ7A4OYmhY1mbZuAc1C5hDr5K89IgKyREroeA== X-Received: by 2002:a63:ff5a:0:b0:42c:61f:b81 with SMTP id s26-20020a63ff5a000000b0042c061f0b81mr22490091pgk.254.1667407012924; Wed, 02 Nov 2022 09:36:52 -0700 (PDT) Original-Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id z184-20020a6233c1000000b0056c47a5c34dsm8667502pfz.122.2022.11.02.09.36.50 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 02 Nov 2022 09:36:51 -0700 (PDT) Content-Language: en-US In-Reply-To: <83bkppblh7.fsf@gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: "bug-gnu-emacs" Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:246879 Archived-At: This is a multi-part message in MIME format. --------------qlARUBNhtTsCxdvPZv0SDD6R Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 11/2/2022 5:16 AM, Eli Zaretskii wrote: >> Date: Tue, 1 Nov 2022 15:39:29 -0700 >> From: Jim Porter >> Cc: 58909@debbugs.gnu.org >> >> Attached is a (hopefully) safer version of my change to 'delete-frame'. >> In this patch, a hook can only cancel frame deletion if FORCE is >> non-nil. This way, if there were ever some bug with a hook, you (or some >> code) can still force-delete the frame. > > Sorry, but I still don't like this. We currently call this hook via > safe_call because we don't want to let the hook prevent the deletion > of the frame. > > I prefer to solve this in server.el, not in lower-level primitives. Hm, ok. That means I'd need to make sure 'C-x 5 0' calls something other than 'delete-frame', so that I could add a prompt to it that can prevent deletion of the frame. Two questions then: 1. If 'delete-frame' is a lower-level primitive, should 'C-x 5 0' call it directly, or should there be a higher-level function for it to call? If we had some higher-level function, then user-level commands could call that, but low-level code could still use 'delete-frame'. This user-level command would then be able to run some hook that can prevent deletion of the frame. 2. Since server.el has a minor mode (unsurprisingly named 'server-mode'), maybe one option is to do command remapping. If we remap 'delete-frame' to some new 'server-delete-frame' when 'server-mode' is active, then this should work. See attached for a quick sketch of how this would look. What do you think about one of these? --------------qlARUBNhtTsCxdvPZv0SDD6R Content-Type: text/plain; charset=UTF-8; name="0001-WIP-Try-using-a-keymap-for-server-mode.patch" Content-Disposition: attachment; filename="0001-WIP-Try-using-a-keymap-for-server-mode.patch" Content-Transfer-Encoding: base64 RnJvbSAyY2U5OTRkZTEyNGI3NjA5MDg5OTIzMDkwMjAxY2JiNzdmYTAzNWJjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFdlZCwgMiBOb3YgMjAyMiAwOToyMjo0MyAtMDcwMApTdWJqZWN0OiBbUEFU Q0hdIFtXSVBdIFRyeSB1c2luZyBhIGtleW1hcCBmb3Igc2VydmVyLW1vZGUKCi0tLQogbGlz cC9zZXJ2ZXIuZWwgfCAxNyArKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDE3 IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9saXNwL3NlcnZlci5lbCBiL2xpc3Avc2Vy dmVyLmVsCmluZGV4IDkwZDk3YzE1MzguLmM4ZjkwNzIwZjcgMTAwNjQ0Ci0tLSBhL2xpc3Av c2VydmVyLmVsCisrKyBiL2xpc3Avc2VydmVyLmVsCkBAIC03OTYsNiArNzk2LDE4IEBAIHNl cnZlci1ydW5uaW5nLXAKIAl0KQogICAgIChmaWxlLWVycm9yIG5pbCkpKQogCisoZGVmdmFy LWtleW1hcCBzZXJ2ZXIta2V5bWFwCisgICI8cmVtYXA+IDxkZWxldGUtZnJhbWU+IiAjJ3Nl cnZlci1kZWxldGUtZnJhbWUKKyAgOzsgRklYTUU6IEFkZCAnQy14ICMnIHRvIHRoaXMga2V5 bWFwIGluc3RlYWQgb2YgZG9pbmcgaXQgZ2xvYmFsbHk/CisgICkKKworKGRlZnVuIHNlcnZl ci1kZWxldGUtZnJhbWUgKCkKKyAgIkZJWE1FOiBUaGlzIGZ1bmN0aW9uIGlzIGp1c3QgYSBx dWljayB0ZXN0IGltcGxlbWVudGF0aW9uIHRvCitvdmVycmlkZSBgZGVsZXRlLWZyYW1lJy4i CisgIChpbnRlcmFjdGl2ZSkKKyAgKHNhdmUtc29tZS1idWZmZXJzKQorICAoZGVsZXRlLWZy YW1lKSkKKwogOzs7IyMjYXV0b2xvYWQKIChkZWZpbmUtbWlub3ItbW9kZSBzZXJ2ZXItbW9k ZQogICAiVG9nZ2xlIFNlcnZlciBtb2RlLgpAQCAtODA1LDYgKzgxNywxMSBAQCBzZXJ2ZXIt bW9kZQogYHNlcnZlci1zdGFydCcgZm9yIGRldGFpbHMuIgogICA6Z2xvYmFsIHQKICAgOnZl cnNpb24gIjIyLjEiCisgIDs7IEZJWE1FOiBUbyBzdGFydCBhIHNlcnZlciwgeW91IGNhbiBj YWxsIGBzZXJ2ZXItbW9kZScgb3IKKyAgOzsgYHNlcnZlci1zdGFydCcuICBUaGUgbGF0dGVy IGRvZXNuJ3QgYWN0aXZhdGUgdGhlIG1pbm9yIG1vZGUuICBUbworICA7OyB1c2UgdGhpcyBr ZXltYXAsIHdlJ2QgbmVlZCB0byBtYWtlIHN1cmUgd2UgYWx3YXlzIGFjdGl2YXRlIHRoZQor ICA7OyBtaW5vciBtb2RlLgorICA6a2V5bWFwIHNlcnZlci1rZXltYXAKICAgOzsgRml4bWU6 IFNob3VsZCB0aGlzIGNoZWNrIGZvciBhbiBleGlzdGluZyBzZXJ2ZXIgc29ja2V0IGFuZCBk bwogICA7OyBub3RoaW5nIGlmIHRoZXJlIGlzIG9uZSAoZm9yIG11bHRpcGxlIEVtYWNzIHNl c3Npb25zKT8KICAgKHNlcnZlci1zdGFydCAobm90IHNlcnZlci1tb2RlKSkpCi0tIAoyLjI1 LjEKCg== --------------qlARUBNhtTsCxdvPZv0SDD6R--