mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-06 06:20:55 -08:00
Improve message handling on server stop
* lisp/server.el (server-stop): Use a clearer signal message if there is an existing, external Emacs server. (server-start): Use a different warning if one attempts to only stop (and not restart) an external server. (server-unload-function): Silently stop the server if unloading its library. (Bug#76870)
This commit is contained in:
parent
0b2e3db910
commit
b832d37410
1 changed files with 23 additions and 12 deletions
|
|
@ -673,7 +673,7 @@ anyway."
|
||||||
(ignore-errors
|
(ignore-errors
|
||||||
(delete-directory (file-name-directory server-file))))))
|
(delete-directory (file-name-directory server-file))))))
|
||||||
(signal 'server-running-external
|
(signal 'server-running-external
|
||||||
(list (format "There is an existing Emacs server, named %S"
|
(list (format "The existing Emacs server, called \"%s\", could not be stopped."
|
||||||
server-name))))
|
server-name))))
|
||||||
;; If this Emacs already had a server, clear out associated status.
|
;; If this Emacs already had a server, clear out associated status.
|
||||||
(while server-clients
|
(while server-clients
|
||||||
|
|
@ -725,16 +725,27 @@ the `server-process' variable."
|
||||||
(when (server-stop)
|
(when (server-stop)
|
||||||
(message (if leave-dead "Stopped server" "Restarting server"))))
|
(message (if leave-dead "Stopped server" "Restarting server"))))
|
||||||
(server-running-external
|
(server-running-external
|
||||||
(display-warning
|
(cond
|
||||||
'server
|
((not leave-dead)
|
||||||
(concat "Unable to start the Emacs server.\n"
|
(display-warning
|
||||||
(cadr err)
|
'server
|
||||||
(substitute-command-keys
|
(concat "Unable to start the Emacs server.\n"
|
||||||
(concat "\nTo start the server in this Emacs process, stop "
|
(cadr err)
|
||||||
"the existing server or call \\[server-force-delete] "
|
(substitute-command-keys
|
||||||
"to forcibly disconnect it.")))
|
(concat "\nTo start the server in this Emacs session, stop "
|
||||||
:warning)
|
"the existing server or call \\[server-force-delete] "
|
||||||
(setq leave-dead t)))
|
"to forcibly disconnect it.")))
|
||||||
|
:warning)
|
||||||
|
(setq leave-dead t))
|
||||||
|
(t
|
||||||
|
(display-warning
|
||||||
|
'server
|
||||||
|
(concat "Unable to stop the Emacs server.\n"
|
||||||
|
(cadr err)
|
||||||
|
(substitute-command-keys
|
||||||
|
(concat "\n(Perhaps it was run from a different Emacs session?)\n"
|
||||||
|
"You can try stopping the server forcibly by calling \\[server-force-delete].")))
|
||||||
|
:warning)))))
|
||||||
;; Now any previous server is properly stopped.
|
;; Now any previous server is properly stopped.
|
||||||
(unless leave-dead
|
(unless leave-dead
|
||||||
(let ((server-file (server--file-name)))
|
(let ((server-file (server--file-name)))
|
||||||
|
|
@ -2016,7 +2027,7 @@ This sets the variable `server-stop-automatically' (which see)."
|
||||||
|
|
||||||
(defun server-unload-function ()
|
(defun server-unload-function ()
|
||||||
"Unload the Server library."
|
"Unload the Server library."
|
||||||
(server-mode -1)
|
(ignore-errors (server-stop 'noframe))
|
||||||
(substitute-key-definition 'server-edit nil ctl-x-map)
|
(substitute-key-definition 'server-edit nil ctl-x-map)
|
||||||
(save-current-buffer
|
(save-current-buffer
|
||||||
(dolist (buffer (buffer-list))
|
(dolist (buffer (buffer-list))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue