aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorRichard M. Stallman1997-05-10 00:37:24 +0000
committerRichard M. Stallman1997-05-10 00:37:24 +0000
commitb392bac9b9f6ce3223845d738a556d755f4a2f24 (patch)
treebab744ceffd9b14f9845487c3c8636b365062fc0 /lisp
parent543abb4a789fd36e3d778859d9952c108d84627b (diff)
downloademacs-b392bac9b9f6ce3223845d738a556d755f4a2f24.tar.gz
emacs-b392bac9b9f6ce3223845d738a556d755f4a2f24.zip
(server-buffer-done): New arg FOR-KILLING.
(server-kill-buffer): New fn, to inform clients when buffer is killed.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/server.el16
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."
280 (set-buffer obuf)) 280 (set-buffer obuf))
281 (nconc client client-record))) 281 (nconc client client-record)))
282 282
283(defun server-buffer-done (buffer) 283(defun server-buffer-done (buffer &optional for-killing)
284 "Mark BUFFER as \"done\" for its client(s). 284 "Mark BUFFER as \"done\" for its client(s).
285This buries the buffer, then returns a list of the form (NEXT-BUFFER KILLED). 285This buries the buffer, then returns a list of the form (NEXT-BUFFER KILLED).
286NEXT-BUFFER is another server buffer, as a suggestion for what to select next, 286NEXT-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)."
322 (set-buffer buffer) 322 (set-buffer buffer)
323 (setq server-buffer-clients nil) 323 (setq server-buffer-clients nil)
324 (run-hooks 'server-done-hook)) 324 (run-hooks 'server-done-hook))
325 (if (server-temp-file-p buffer) 325 (if for-killing
326 (progn (kill-buffer buffer) 326 (if (server-temp-file-p buffer)
327 (setq killed t)) 327 (progn (kill-buffer buffer)
328 (bury-buffer buffer)))) 328 (setq killed t))
329 (bury-buffer buffer)))))
329 (list next-buffer killed))) 330 (list next-buffer killed)))
330 331
331(defun server-temp-file-p (buffer) 332(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)."
382 (yes-or-no-p "Server buffers still have clients; exit anyway? ")))) 383 (yes-or-no-p "Server buffers still have clients; exit anyway? "))))
383 384
384(add-hook 'kill-emacs-query-functions 'server-kill-emacs-query-function) 385(add-hook 'kill-emacs-query-functions 'server-kill-emacs-query-function)
386
387;; When a buffer is killed, inform the clients.
388(add-hook 'kill-buffer-hook 'server-kill-buffer)
389(defun server-kill-buffer ()
390 (server-buffer-done (current-buffer) t))
385 391
386(defun server-edit (&optional arg) 392(defun server-edit (&optional arg)
387 "Switch to next server editing buffer; say \"Done\" for current buffer. 393 "Switch to next server editing buffer; say \"Done\" for current buffer.