aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/server.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/server.el')
-rw-r--r--lisp/server.el9
1 files changed, 8 insertions, 1 deletions
diff --git a/lisp/server.el b/lisp/server.el
index bc989c55ed1..e02f63a8268 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -685,7 +685,14 @@ Server mode runs a process that accepts commands from the
685 685
686(defun server-eval-and-print (expr proc) 686(defun server-eval-and-print (expr proc)
687 "Eval EXPR and send the result back to client PROC." 687 "Eval EXPR and send the result back to client PROC."
688 (let ((v (eval (car (read-from-string expr))))) 688 ;; While we're running asynchronously (from a process filter), it is likely
689 ;; that the emacsclient command was run in response to a user
690 ;; action, so the user probably knows that Emacs is processing this
691 ;; emacsclient request, so if we get a C-g it's likely that the user
692 ;; intended it to interrupt us rather than interrupt whatever Emacs
693 ;; was doing before it started handling the process filter.
694 ;; Hence `with-local-quit' (bug#6585).
695 (let ((v (with-local-quit (eval (car (read-from-string expr))))))
689 (when proc 696 (when proc
690 (with-temp-buffer 697 (with-temp-buffer
691 (let ((standard-output (current-buffer))) 698 (let ((standard-output (current-buffer)))