# HG changeset patch # User Stefan Monnier # Date 1164661117 0 # Node ID 3de22dfd43f89ee53fa5c765a2d8ab6e139d782a # Parent 8823864c534b7f05412cf30bb81f64061fad708b Remove spurious * in docstrings. (server-process-filter): Exit from recursive editing before processing a new request. diff -r 8823864c534b -r 3de22dfd43f8 lisp/ChangeLog --- a/lisp/ChangeLog Mon Nov 27 18:08:51 2006 +0000 +++ b/lisp/ChangeLog Mon Nov 27 20:58:37 2006 +0000 @@ -1,3 +1,9 @@ +2006-11-27 Stefan Monnier + + * server.el: Remove spurious * in docstrings. + (server-process-filter): Exit from recursive editing before processing + a new request. + 2006-11-27 J.D. Smith * progmodes/hideshow.el (hs-already-hidden-p): Move to end of @@ -97,8 +103,8 @@ 2006-11-25 Jan Dj,Ad(Brv - * progmodes/cc-vars.el (c-backslash-column): Mention - c-backslash-max-column in documentation for c-backslash-column. + * progmodes/cc-vars.el (c-backslash-column): + Mention c-backslash-max-column in documentation for c-backslash-column. 2006-11-24 Lars Hansen diff -r 8823864c534b -r 3de22dfd43f8 lisp/server.el --- a/lisp/server.el Mon Nov 27 18:08:51 2006 +0000 +++ b/lisp/server.el Mon Nov 27 20:58:37 2006 +0000 @@ -113,23 +113,23 @@ (put 'server-auth-dir 'risky-local-variable t) (defcustom server-raise-frame t - "*If non-nil, raise frame when switching to a buffer." + "If non-nil, raise frame when switching to a buffer." :group 'server :type 'boolean :version "22.1") (defcustom server-visit-hook nil - "*Hook run when visiting a file for the Emacs server." + "Hook run when visiting a file for the Emacs server." :group 'server :type 'hook) (defcustom server-switch-hook nil - "*Hook run when switching to a buffer for the Emacs server." + "Hook run when switching to a buffer for the Emacs server." :group 'server :type 'hook) (defcustom server-done-hook nil - "*Hook run when done editing a buffer for the Emacs server." + "Hook run when done editing a buffer for the Emacs server." :group 'server :type 'hook) @@ -149,7 +149,7 @@ (put 'server-buffer-clients 'permanent-local t) (defcustom server-window nil - "*Specification of the window to use for selecting Emacs server buffers. + "Specification of the window to use for selecting Emacs server buffers. If nil, use the selected window. If it is a function, it should take one argument (a buffer) and display and select it. A common value is `pop-to-buffer'. @@ -168,14 +168,14 @@ (function :tag "Other function"))) (defcustom server-temp-file-regexp "^/tmp/Re\\|/draft$" - "*Regexp matching names of temporary files. + "Regexp matching names of temporary files. These are deleted and reused after each edit by the programs that invoke the Emacs server." :group 'server :type 'regexp) (defcustom server-kill-new-buffers t - "*Whether to kill buffers when done with them. + "Whether to kill buffers when done with them. If non-nil, kill a buffer unless it already existed before editing it with Emacs server. If nil, kill only buffers as specified by `server-temp-file-regexp'. @@ -403,6 +403,16 @@ (when prev (setq string (concat prev string)) (process-put proc :previous-string nil))) + (when (> (recursion-depth) 0) + ;; We're inside a minibuffer already, so if the emacs-client is trying + ;; to open a frame on a new display, we might end up with an unusable + ;; frame because input from that display will be blocked (until exiting + ;; the minibuffer). Better exit this minibuffer right away. + ;; Similarly with recursive-edits such as the splash screen. + (process-put proc :previous-string string) + (run-with-timer 0 nil (lexical-let ((proc proc)) + (lambda () (server-process-filter proc "")))) + (top-level)) ;; If the input is multiple lines, ;; process each line individually. (while (string-match "\n" string)