[Top][All Lists]

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

server-save-buffers-kill-terminal: Invalid client frame

From: Matthias Pfeifer
Subject: server-save-buffers-kill-terminal: Invalid client frame
Date: Fri, 28 Apr 2017 08:11:17 +0200


I must have broken something in my emacs init and cannot exactly recall how
I did it...

Emacs tells me "server-save-buffers-kill-terminal: Invalid client frame"
when i want to call save-buffers-kill-terminal. I don't know about this
function and have tried to find something similar using some search engine
with no luck. I have also edebugged the function
server-save-buffers-kill-terminal which looks like this:

(defun server-save-buffers-kill-terminal (arg)
  ;; Called from save-buffers-kill-terminal in files.el.
  "Offer to save each buffer, then kill the current client.
With ARG non-nil, silently save all file-visiting buffers, then kill.

If emacsclient was started with a list of filenames to edit, then
only these files will be asked to be saved."
  (let ((proc (frame-parameter nil 'client)))
    (cond ((eq proc 'nowait)
       ;; Nowait frames have no client buffer list.
       (if (cdr (frame-list))
           (progn (save-some-buffers arg)
         ;; If we're the last frame standing, kill Emacs.
         (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.
          arg (if buffers
              (lambda () (memq (current-buffer) buffers))
         (server-delete-client proc)))
      (t (error "Invalid client frame")))))

In this function (frame-parameter nil 'client) evaluates into "Unprintable
entity". So the cond form goes into the default case and signals an error
"Invalid client frame".

Question is: How can I fix it...


reply via email to

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