From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Philip Kaludercic Newsgroups: gmane.emacs.bugs Subject: bug#55426: [PATCH] Add option to kill a shell buffer when the process ends Date: Sun, 15 May 2022 11:51:53 +0000 Message-ID: <87mtfjc8ti.fsf@posteo.net> References: <87czgfdxhe.fsf@posteo.net> <83pmkfjizq.fsf@gnu.org> <877d6ndph9.fsf@posteo.net> <83lev3jbev.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="11336"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 55426@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun May 15 13:53:26 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 1nqCoP-0002nW-Ot for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 15 May 2022 13:53:25 +0200 Original-Received: from localhost ([::1]:48818 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nqCoO-0007Gr-SG for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 15 May 2022 07:53:24 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:41230) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nqCo2-0007Dg-7y for bug-gnu-emacs@gnu.org; Sun, 15 May 2022 07:53:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:54779) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nqCo1-0001hk-VQ for bug-gnu-emacs@gnu.org; Sun, 15 May 2022 07:53:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nqCo1-0008ON-UJ for bug-gnu-emacs@gnu.org; Sun, 15 May 2022 07:53:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Philip Kaludercic Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 15 May 2022 11:53:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 55426 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 55426-submit@debbugs.gnu.org id=B55426.165261552632188 (code B ref 55426); Sun, 15 May 2022 11:53:01 +0000 Original-Received: (at 55426) by debbugs.gnu.org; 15 May 2022 11:52:06 +0000 Original-Received: from localhost ([127.0.0.1]:48672 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nqCn4-0008N2-JC for submit@debbugs.gnu.org; Sun, 15 May 2022 07:52:05 -0400 Original-Received: from mout02.posteo.de ([185.67.36.66]:47123) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nqCn2-0008MG-Og for 55426@debbugs.gnu.org; Sun, 15 May 2022 07:52:01 -0400 Original-Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id A4912240109 for <55426@debbugs.gnu.org>; Sun, 15 May 2022 13:51:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1652615514; bh=zBfS2awUf6WGPolts68O+995PSeWEibLI+UGj2svVWk=; h=From:To:Cc:Subject:Autocrypt:Date:From; b=fgVSRJVEigZHhqPrMFjppMZld/BFoTBD4cXWdrM0rNPj8ZKKz4utd9+f4LsnUpKTX kUAyCgqtH7w69lVECHzQrMurugHi/SUT6Mn7+KFw41wurdzKxNFZiNA0ko5FG+NlYI WL09x+kWGrvcIPOik0EFnxpW9YTgdF0OQCpNGEQzxXkPLeoUTBG6SvYCAiPnBSg9iv 73nKZuImzcYfneDSEqVPeasogAiGi2yWUQ8VCM+jdnQovxkY6YQJUuPvm9KPteeUiH pK4gwhhmJ/2jdoRZSf0dddYmmslVTsJQjbxF92wXVU644bhRWAHAZ+r6Cqbzqm9bXv h+nJAZjPU/qqA== Original-Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4L1LMY6Hbhz9rxD; Sun, 15 May 2022 13:51:53 +0200 (CEST) Autocrypt: addr=philipk@posteo.net; prefer-encrypt=nopreference; keydata= mDMEYHHqUhYJKwYBBAHaRw8BAQdAp3GdmYJ6tm5McweY6dEvIYIiry+Oz9rU4MH6NHWK0Ee0QlBo aWxpcCBLYWx1ZGVyY2ljIChnZW5lcmF0ZWQgYnkgYXV0b2NyeXB0LmVsKSA8cGhpbGlwa0Bwb3N0 ZW8ubmV0PoiQBBMWCAA4FiEEDM2H44ZoPt9Ms0eHtVrAHPRh1FwFAmBx6lICGwMFCwkIBwIGFQoJ CAsCBBYCAwECHgECF4AACgkQtVrAHPRh1FyTkgEAjlbGPxFchvMbxzAES3r8QLuZgCxeAXunM9gh io0ePtUBALVhh9G6wIoZhl0gUCbQpoN/UJHI08Gm1qDob5zDxnIHuDgEYHHqUhIKKwYBBAGXVQEF AQEHQNcRB+MUimTMqoxxMMUERpOR+Q4b1KgncDZkhrO2ql1tAwEIB4h4BBgWCAAgFiEEDM2H44Zo Pt9Ms0eHtVrAHPRh1FwFAmBx6lICGwwACgkQtVrAHPRh1Fw1JwD/Qo7kvtib8jy7puyWrSv0MeTS g8qIxgoRWJE/KKdkCLEA/jb9b9/g8nnX+UcwHf/4VfKsjExlnND3FrBviXUW6NcB In-Reply-To: <83lev3jbev.fsf@gnu.org> (Eli Zaretskii's message of "Sun, 15 May 2022 14:14:00 +0300") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:232302 Archived-At: --=-=-= Content-Type: text/plain Fixed both here: --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-Add-option-to-kill-a-shell-buffer-when-the-process-e.patch >From 6db6675c1f931b0eed6606227ecd4919a7052afd Mon Sep 17 00:00:00 2001 From: Philip Kaludercic Date: Sun, 15 May 2022 02:09:46 +0200 Subject: [PATCH] Add option to kill a shell buffer when the process ends * shell.el (shell-kill-buffer-on-quit): Add new option (bug#55426). (shell): Respect 'shell-kill-buffer-on-quit'. * NEWS: Mention 'shell-kill-buffer-on-quit'. --- etc/NEWS | 7 +++++++ lisp/shell.el | 17 +++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/etc/NEWS b/etc/NEWS index a0164bbf3f..27772dc54e 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1544,6 +1544,13 @@ values passed as a single token, such as '-oVALUE' or 'eshell-eval-using-options' macro. See "Defining new built-in commands" in the "(eshell) Built-ins" node of the Eshell manual. +** Shell + +--- +*** New user option 'shell-kill-buffer-on-exit' +Enabling this will automatically kill a *shell* buffer as soon as the +shell session terminates. + ** Calc +++ diff --git a/lisp/shell.el b/lisp/shell.el index 47887433d9..4e65fccf9e 100644 --- a/lisp/shell.el +++ b/lisp/shell.el @@ -331,6 +331,12 @@ shell-has-auto-cd :group 'shell-directories :version "28.1") +(defcustom shell-kill-buffer-on-exit nil + "Kill a shell buffer after the shell process terminates." + :type 'boolean + :group 'shell + :version "29.1") + (defvar shell-mode-map (let ((map (make-sparse-keymap))) (define-key map "\C-c\C-f" 'shell-forward-command) @@ -818,6 +824,17 @@ shell (with-temp-buffer (insert-file-contents startfile) (buffer-string))))))) + (when shell-kill-buffer-on-exit + (let* ((buffer (current-buffer)) + (process (get-buffer-process buffer)) + (sentinel (process-sentinel process))) + (set-process-sentinel + process + (lambda (proc event) + (when sentinel + (funcall sentinel proc event)) + (unless (buffer-live-p proc) + (kill-buffer buffer)))))) buffer) ;;; Directory tracking -- 2.30.2 --=-=-= Content-Type: text/plain Should it push it? Eli Zaretskii writes: >> From: Philip Kaludercic >> Cc: 55426@debbugs.gnu.org >> Date: Sun, 15 May 2022 11:06:42 +0000 >> >> Thank you for your comments, here is an improved version: > > Thanks. One nit: > >> +** Shell >> + >> +--- >> +*** New user option 'shell-kill-buffer-on-exit' >> +Enabling this open will automatically kill a *shell* buffer as soon as > ^^^^ > Seems like a leftover from a different version? Andreas Schwab writes: > On Mai 15 2022, Philip Kaludercic wrote: > >> diff --git a/lisp/shell.el b/lisp/shell.el >> index 47887433d9..7000d38255 100644 >> --- a/lisp/shell.el >> +++ b/lisp/shell.el >> @@ -331,6 +331,12 @@ shell-has-auto-cd >> :group 'shell-directories >> :version "28.1") >> >> +(defcustom shell-kill-buffer-on-exit t > > That should default to nil. --=-=-=--