diff options
author | Richard M. Stallman <rms@gnu.org> | 1997-05-10 00:37:24 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1997-05-10 00:37:24 +0000 |
commit | 84f72bd3233c70081f86ee0bd3ff097cd871663f (patch) | |
tree | 303d4181f5c89ed7991539cfd353cd704ea4ddb0 /lisp/server.el | |
parent | eb4c4c182a04059c85b3bd4bcd78d22196b98f7d (diff) | |
download | emacs-84f72bd3233c70081f86ee0bd3ff097cd871663f.tar.gz |
(server-buffer-done): New arg FOR-KILLING.
(server-kill-buffer): New fn, to inform clients when buffer is killed.
Diffstat (limited to 'lisp/server.el')
-rw-r--r-- | lisp/server.el | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/lisp/server.el b/lisp/server.el index dcd025b3d03..8a548fe0aa9 100644 --- a/lisp/server.el +++ b/lisp/server.el @@ -280,7 +280,7 @@ so don't mark these buffers specially, just visit them normally." (set-buffer obuf)) (nconc client client-record))) -(defun server-buffer-done (buffer) +(defun server-buffer-done (buffer &optional for-killing) "Mark BUFFER as \"done\" for its client(s). This buries the buffer, then returns a list of the form (NEXT-BUFFER KILLED). NEXT-BUFFER is another server buffer, as a suggestion for what to select next, @@ -322,10 +322,11 @@ or nil. KILLED is t if we killed BUFFER (because it was a temp file)." (set-buffer buffer) (setq server-buffer-clients nil) (run-hooks 'server-done-hook)) - (if (server-temp-file-p buffer) - (progn (kill-buffer buffer) - (setq killed t)) - (bury-buffer buffer)))) + (if for-killing + (if (server-temp-file-p buffer) + (progn (kill-buffer buffer) + (setq killed t)) + (bury-buffer buffer))))) (list next-buffer killed))) (defun server-temp-file-p (buffer) @@ -382,6 +383,11 @@ or nil. KILLED is t if we killed the BUFFER (because it was a temp file)." (yes-or-no-p "Server buffers still have clients; exit anyway? ")))) (add-hook 'kill-emacs-query-functions 'server-kill-emacs-query-function) + +;; When a buffer is killed, inform the clients. +(add-hook 'kill-buffer-hook 'server-kill-buffer) +(defun server-kill-buffer () + (server-buffer-done (current-buffer) t)) (defun server-edit (&optional arg) "Switch to next server editing buffer; say \"Done\" for current buffer. |