aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChong Yidong2008-09-24 20:12:02 +0000
committerChong Yidong2008-09-24 20:12:02 +0000
commit737e5c834b8b1a7581d9e7adf571dcfb057304cf (patch)
treeaa67d1316e17b0a0a88bf7591dd6dca159c2efd4
parentef1a3179f0aca460c848857bb4d8a64a15ee44c7 (diff)
downloademacs-737e5c834b8b1a7581d9e7adf571dcfb057304cf.tar.gz
emacs-737e5c834b8b1a7581d9e7adf571dcfb057304cf.zip
(server-buffer-done): Avoid changing the buffer when deleting the
client's frame (bug#640).
-rw-r--r--lisp/server.el8
1 files changed, 7 insertions, 1 deletions
diff --git a/lisp/server.el b/lisp/server.el
index 0a8df5d9f47..8dfa6d19732 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -1084,7 +1084,13 @@ FOR-KILLING if non-nil indicates that we are called from `kill-buffer'."
1084 ;; tell it that it is done, and forget it entirely. 1084 ;; tell it that it is done, and forget it entirely.
1085 (unless buffers 1085 (unless buffers
1086 (server-log "Close" proc) 1086 (server-log "Close" proc)
1087 (server-delete-client proc))))) 1087 (if for-killing
1088 ;; `server-delete-client' might delete the client's
1089 ;; frames, which might change the current buffer. We
1090 ;; don't want that (bug#640).
1091 (save-current-buffer
1092 (server-delete-client proc))
1093 (server-delete-client proc))))))
1088 (when (and (bufferp buffer) (buffer-name buffer)) 1094 (when (and (bufferp buffer) (buffer-name buffer))
1089 ;; We may or may not kill this buffer; 1095 ;; We may or may not kill this buffer;
1090 ;; if we do, do not call server-buffer-done recursively 1096 ;; if we do, do not call server-buffer-done recursively