aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier <[email protected]>2007-09-19 02:00:54 +0000
committerStefan Monnier <[email protected]>2007-09-19 02:00:54 +0000
commit44954c2f94bf24ed1eaece22da665c088109efa3 (patch)
tree560a3ad565f100a010ae4f7557d549e451432de9
parent44fe0f65718f0ad4458b7a5a7648321888cd62d2 (diff)
(server-running-p): New function.
-rw-r--r--lisp/ChangeLog4
-rw-r--r--lisp/server.el18
2 files changed, 21 insertions, 1 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index d75995a3b5..a00191735f 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,7 @@
+2007-09-19 Stefan Monnier <[email protected]>
+
+ * server.el (server-running-p): New function.
+
2007-09-18 Jason Rumney <[email protected]>
* term/w32-win.el (w32-focus-frame): Make obsolete alias for
diff --git a/lisp/server.el b/lisp/server.el
index 5c44986bb2..f22d693ffa 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -391,7 +391,8 @@ message."
(server-log (format "server-handle-suspend-tty, terminal %s" terminal) proc)
(condition-case err
(server-send-string proc "-suspend \n")
- (file-error (ignore-errors (server-delete-client proc))))))
+ (file-error ;The pipe/socket was closed.
+ (ignore-errors (server-delete-client proc))))))
(defun server-unquote-arg (arg)
"Remove &-quotation from ARG.
@@ -526,6 +527,21 @@ kill any existing server communications subprocess."
" " (int-to-string (emacs-pid))
"\n" auth-key)))))))))
+(defun server-running-p (&optional name)
+ "Test whether server NAME is running."
+ (interactive
+ (list (if current-prefix-arg
+ (read-string "Server name: " nil nil server-name))))
+ (unless name (setq name server-name))
+ (condition-case nil
+ (progn
+ (delete-process
+ (make-network-process
+ :name "server-client-test" :family 'local :server nil :noquery t
+ :service (expand-file-name name server-socket-dir)))
+ t)
+ (file-error nil)))
+
;;;###autoload
(define-minor-mode server-mode
"Toggle Server mode.