diff options
| author | Richard M. Stallman | 1997-05-10 00:37:24 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1997-05-10 00:37:24 +0000 |
| commit | b392bac9b9f6ce3223845d738a556d755f4a2f24 (patch) | |
| tree | bab744ceffd9b14f9845487c3c8636b365062fc0 /lisp | |
| parent | 543abb4a789fd36e3d778859d9952c108d84627b (diff) | |
| download | emacs-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.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." | |||
| 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). |
| 285 | This buries the buffer, then returns a list of the form (NEXT-BUFFER KILLED). | 285 | This buries the buffer, then returns a list of the form (NEXT-BUFFER KILLED). |
| 286 | NEXT-BUFFER is another server buffer, as a suggestion for what to select next, | 286 | 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)." | |||
| 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. |