summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuanma Barranquero <lekktu@gmail.com>2011-07-05 00:40:03 +0200
committerJuanma Barranquero <lekktu@gmail.com>2011-07-05 00:40:03 +0200
commitb768cdcd31e941af9a1ddce45da7e1482b494e77 (patch)
treefe21db239bf1976cf04ca0618db166364822d7a3
parent13aa217bacf43ef70b68e5287e714366e77ae61d (diff)
downloademacs-b768cdcd31e941af9a1ddce45da7e1482b494e77.tar.gz
lisp/server.el: Catch quit and close the connection (bug#8942).
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/server.el5
2 files changed, 10 insertions, 1 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 71fc929308b..6ec351d98c5 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
+2011-07-04 Juanma Barranquero <lekktu@gmail.com>
+
+ * server.el (server-execute): Catch quit and call
+ `server-return-error' to pass the error back to emacsclient and
+ close the connection (bug#8942).
+
2011-07-04 Ken Manheimer <ken.manheimer@gmail.com>
* allout.el (allout-encrypt-unencrypted-on-saves): Do not provide
diff --git a/lisp/server.el b/lisp/server.el
index 36b137b7bc9..c91f10b6584 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -1153,7 +1153,10 @@ The following commands are accepted by the client:
"When done with a buffer, type \\[server-edit]")))))
(when (and frame (null tty-name))
(server-unselect-display frame)))
- (error (server-return-error proc err)))))
+ ((quit error)
+ (when (eq (car err) 'quit)
+ (message "Quit emacsclient request"))
+ (server-return-error proc err)))))
(defun server-return-error (proc err)
(ignore-errors