(server-execute): Enable quit.
This commit is contained in:
parent
d2e9b790b7
commit
7197f5de6f
2 changed files with 45 additions and 33 deletions
|
@ -1,3 +1,7 @@
|
|||
2009-02-07 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* server.el (server-execute): Enable quit.
|
||||
|
||||
2009-02-07 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* image-mode.el (image-mode): Always set image-type.
|
||||
|
@ -19,8 +23,8 @@
|
|||
|
||||
* mail/rmailedit.el (rmail-cease-edit): narrow-to-region before
|
||||
extracting mail message headers. Use encode-coding-region instead
|
||||
of insert-buffer-substring for re-encoding edited message. Add
|
||||
qp/b64 encoding only after text was encoded.
|
||||
of insert-buffer-substring for re-encoding edited message.
|
||||
Add qp/b64 encoding only after text was encoded.
|
||||
|
||||
2009-02-07 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
|
|
|
@ -1036,40 +1036,48 @@ The following commands are accepted by the client:
|
|||
(error (server-return-error proc err))))
|
||||
|
||||
(defun server-execute (proc files nowait commands dontkill frame tty-name)
|
||||
(condition-case err
|
||||
(let* ((buffers
|
||||
(when files
|
||||
(run-hooks 'pre-command-hook)
|
||||
(prog1 (server-visit-files files proc nowait)
|
||||
(run-hooks 'post-command-hook)))))
|
||||
;; This is run from timers and process-filters, i.e. "asynchronously".
|
||||
;; But w.r.t the user, this is not really asynchronous since the timer
|
||||
;; is run after 0s and the process-filter is run in response to the
|
||||
;; user running `emacsclient'. So it is OK to override the
|
||||
;; inhibit-quit flag, which is good since `commands' (as well as
|
||||
;; find-file-noselect via the major-mode) can run arbitrary code,
|
||||
;; including code that needs to wait.
|
||||
(with-local-quit
|
||||
(condition-case err
|
||||
(let* ((buffers
|
||||
(when files
|
||||
(run-hooks 'pre-command-hook)
|
||||
(prog1 (server-visit-files files proc nowait)
|
||||
(run-hooks 'post-command-hook)))))
|
||||
|
||||
(mapc 'funcall (nreverse commands))
|
||||
(mapc 'funcall (nreverse commands))
|
||||
|
||||
;; Delete the client if necessary.
|
||||
(cond
|
||||
(nowait
|
||||
;; Client requested nowait; return immediately.
|
||||
(server-log "Close nowait client" proc)
|
||||
(server-delete-client proc))
|
||||
((and (not dontkill) (null buffers))
|
||||
;; This client is empty; get rid of it immediately.
|
||||
(server-log "Close empty client" proc)
|
||||
(server-delete-client proc)))
|
||||
(cond
|
||||
((or isearch-mode (minibufferp))
|
||||
nil)
|
||||
((and frame (null buffers))
|
||||
(message "%s" (substitute-command-keys
|
||||
"When done with this frame, type \\[delete-frame]")))
|
||||
((not (null buffers))
|
||||
(server-switch-buffer (car buffers) nil (cdr (car files)))
|
||||
(run-hooks 'server-switch-hook)
|
||||
(unless nowait
|
||||
;; Delete the client if necessary.
|
||||
(cond
|
||||
(nowait
|
||||
;; Client requested nowait; return immediately.
|
||||
(server-log "Close nowait client" proc)
|
||||
(server-delete-client proc))
|
||||
((and (not dontkill) (null buffers))
|
||||
;; This client is empty; get rid of it immediately.
|
||||
(server-log "Close empty client" proc)
|
||||
(server-delete-client proc)))
|
||||
(cond
|
||||
((or isearch-mode (minibufferp))
|
||||
nil)
|
||||
((and frame (null buffers))
|
||||
(message "%s" (substitute-command-keys
|
||||
"When done with a buffer, type \\[server-edit]")))))
|
||||
(when (and frame (null tty-name))
|
||||
(server-unselect-display frame)))
|
||||
(error (server-return-error proc err))))
|
||||
"When done with this frame, type \\[delete-frame]")))
|
||||
((not (null buffers))
|
||||
(server-switch-buffer (car buffers) nil (cdr (car files)))
|
||||
(run-hooks 'server-switch-hook)
|
||||
(unless nowait
|
||||
(message "%s" (substitute-command-keys
|
||||
"When done with a buffer, type \\[server-edit]")))))
|
||||
(when (and frame (null tty-name))
|
||||
(server-unselect-display frame)))
|
||||
(error (server-return-error proc err)))))
|
||||
|
||||
(defun server-return-error (proc err)
|
||||
(ignore-errors
|
||||
|
|
Loading…
Add table
Reference in a new issue