diff options
| author | Stefan Monnier | 2011-11-22 10:18:56 -0500 |
|---|---|---|
| committer | Stefan Monnier | 2011-11-22 10:18:56 -0500 |
| commit | 28109f49967302bec7f1a96e8460c75244f55419 (patch) | |
| tree | 489eedad043398a70611264fadab51a23c1c81fd | |
| parent | b5afc20930c91159a1cbf629bcaa7e251653dc74 (diff) | |
| download | emacs-28109f49967302bec7f1a96e8460c75244f55419.tar.gz emacs-28109f49967302bec7f1a96e8460c75244f55419.zip | |
* lisp/server.el (server-eval-and-print): Allow C-g.
Fixes: debbugs:6585
| -rw-r--r-- | lisp/ChangeLog | 4 | ||||
| -rw-r--r-- | lisp/server.el | 9 |
2 files changed, 12 insertions, 1 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 37ecd3e6852..b30f9dcfab5 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2011-11-22 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * server.el (server-eval-and-print): Allow C-g (bug#6585). | ||
| 4 | |||
| 1 | 2011-11-22 Glenn Morris <rgm@gnu.org> | 5 | 2011-11-22 Glenn Morris <rgm@gnu.org> |
| 2 | 6 | ||
| 3 | * mail/rmailmm.el (test-rmail-mime-handler) | 7 | * mail/rmailmm.el (test-rmail-mime-handler) |
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))) |