changeset 84635:f539dbd0a615

(server-running-p): New function.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 19 Sep 2007 02:00:54 +0000
parents a5e09adf5e2e
children ffc87ddd4025
files lisp/ChangeLog lisp/server.el
diffstat 2 files changed, 21 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Tue Sep 18 22:18:09 2007 +0000
+++ b/lisp/ChangeLog	Wed Sep 19 02:00:54 2007 +0000
@@ -1,3 +1,7 @@
+2007-09-19  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* server.el (server-running-p): New function.
+
 2007-09-18  Jason Rumney  <jasonr@gnu.org>
 
 	* term/w32-win.el (w32-focus-frame): Make obsolete alias for
--- a/lisp/server.el	Tue Sep 18 22:18:09 2007 +0000
+++ b/lisp/server.el	Wed Sep 19 02:00:54 2007 +0000
@@ -391,7 +391,8 @@
     (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 @@
 			" " (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.