From: Jim Porter Date: Sun, 9 Oct 2022 22:53:27 +0000 (-0700) Subject: Don't prompt when killing an Emacs client if it's the last client X-Git-Tag: emacs-29.0.90~1616^2~667 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=ebc19f56aaeb98b834eea1ce8768ca13bed8578c;p=emacs.git Don't prompt when killing an Emacs client if it's the last client * lisp/server.el (server-kill-emacs-query-function): Ignore the current client (if any) when checking for live clients (bug#58404). --- diff --git a/lisp/server.el b/lisp/server.el index 3caa335c4eb..90d97c1538e 100644 --- a/lisp/server.el +++ b/lisp/server.el @@ -1589,14 +1589,19 @@ specifically for the clients and did not exist before their request for it." (server-buffer-done (current-buffer)))) (defun server-kill-emacs-query-function () - "Ask before exiting Emacs if it has live clients. + "Ask before exiting Emacs if it has other live clients. A \"live client\" is a client with at least one live buffer -associated with it." - (or (not (seq-some (lambda (proc) - (seq-some #'buffer-live-p - (process-get proc 'buffers))) - server-clients)) - (yes-or-no-p "This Emacs session has clients; exit anyway? "))) +associated with it. These clients were (probably) started by +external processes that are waiting for some buffers to be +edited. If there are any other clients, we don't want to fail +their waiting processes, so ask the user to be sure." + (let ((this-client (frame-parameter nil 'client))) + (or (not (seq-some (lambda (proc) + (unless (eq proc this-client) + (seq-some #'buffer-live-p + (process-get proc 'buffers)))) + server-clients)) + (yes-or-no-p "This Emacs session has other clients; exit anyway? ")))) (defun server-kill-buffer () "Remove the current buffer from its clients' buffer list.