emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#31951: closed (27.0.50; [PATCH] server-save-buffer


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#31951: closed (27.0.50; [PATCH] server-save-buffers-kill-terminal should respect save-some-buffers-default-predicate)
Date: Wed, 27 Jun 2018 13:22:02 +0000

Your message dated Wed, 27 Jun 2018 14:20:54 +0100
with message-id <address@hidden>
and subject line Re: bug#31951: 27.0.50; [PATCH] 
server-save-buffers-kill-terminal should respect 
save-some-buffers-default-predicate
has caused the debbugs.gnu.org bug report #31951,
regarding 27.0.50; [PATCH] server-save-buffers-kill-terminal should respect 
save-some-buffers-default-predicate
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
31951: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=31951
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: 27.0.50; [PATCH] server-save-buffers-kill-terminal should respect save-some-buffers-default-predicate Date: Sat, 23 Jun 2018 17:22:48 +0100 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
Hi,

If the Emacs client was started without an explicit list of buffers to
edit, save-some-buffers is called with t for PRED (save all buffers),
but that was before save-some-buffers-default-predicate existed.

I don't see any reason why save-some-buffers-default-predicate shouldn't
be respected in server-save-buffers-kill-terminal (of course if ARG is
non-nil, we do pass t so that the previous behaviour remains).

Trivial patch attached,
João

diff --git a/lisp/server.el b/lisp/server.el
index ff03cbe622..ac14ef314e 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -1670,9 +1670,9 @@ server-save-buffers-kill-terminal
             ;; and offer to save all buffers.  Otherwise, offer to
             ;; save only the buffers belonging to the client.
             (save-some-buffers
-             arg (if buffers
-                     (lambda () (memq (current-buffer) buffers))
-                   t))
+             arg (and buffers
+                      (lambda () (memq (current-buffer) buffers))
+                       (and arg t)))
             (server-delete-client proc)))
          (t (error "Invalid client frame")))))



--- End Message ---
--- Begin Message --- Subject: Re: bug#31951: 27.0.50; [PATCH] server-save-buffers-kill-terminal should respect save-some-buffers-default-predicate Date: Wed, 27 Jun 2018 14:20:54 +0100 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
Noam Postavsky <address@hidden> writes:

> João Távora <address@hidden> writes:
>
>> I tried to make it terser, but couldn't.
>
> Hmm, maybe just concentrate on the save-some-buffers-default-predicate
> thing.  I think the original comment pretty much redundantly repeats
> what the doc string (and the code itself) say.
>
> --- i/lisp/server.el
> +++ w/lisp/server.el
> @@ -1639,13 +1639,15 @@ server-save-buffers-kill-terminal
>            (save-buffers-kill-emacs arg)))
>         ((processp proc)
>          (let ((buffers (process-get proc 'buffers)))
> -          ;; If client is bufferless, emulate a normal Emacs exit
> -          ;; and offer to save all buffers.  Otherwise, offer to
> -          ;; save only the buffers belonging to the client.
>            (save-some-buffers
>             arg (if buffers
> -                   (lambda () (memq (current-buffer) buffers))
> -                 t))
> +                      ;; Only files from emacsclient file list.
> +                      (lambda () (memq (current-buffer) buffers))
> +                    ;; No emacsclient file list: don't override
> +                    ;; `save-some-buffers-default-predicate' (unless
> +                    ;; ARGS is non-nil), since we're not killing
> +                    ;; Emacs (unlike `save-buffers-kill-emacs').
> +                    (and arg t)))
>            (server-delete-client proc)))
>         (t (error "Invalid client frame")))))
>  


Pushed as ce54573dacaeb234ac006b71cbaafe1c543515f1.

Thanks,
João



--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]