dot/emacs: Look for running server before leaping at starting a new one.
authorMark Wooding <mdw@distorted.org.uk>
Mon, 29 Apr 2024 09:53:10 +0000 (10:53 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Mon, 29 Apr 2024 10:05:46 +0000 (11:05 +0100)
I used to use `warning-suppress-types' to muffle this, but it doesn't
work any more because there's a new mechanism for `delayed warnings'.
If we're still starting up (and not being a daemon or noninteractive)
then warnings get put on a list to deal with later -- but the
suppression lists aren't saved, so the warning `escapes' from under my
attempt to muffle it.

Instead, look to see if there's a server already running, and just print
a message if there is.

dot/emacs

index b78c03c..07c1e33 100644 (file)
--- a/dot/emacs
+++ b/dot/emacs
                  edit-server-new-frame nil
                  server-raise-frame nil
                  gnuserv-frame t)
-           (trap (let ((warning-suppress-types
-                        (cons '(server)
-                              (and (boundp 'warning-suppress-types)
-                                   warning-suppress-types))))
-                   (server-start)))
+           (trap (progn
+                   (require 'server)
+                   (let ((state (server-running-p)))
+                     (if state
+                         (message "Emacs server %s: not starting"
+                                  (cond ((eq state t) "already running")
+                                        (t "maybe running")))
+                       (server-start)))))
            (trap (progn
                    (require 'edit-server)
                    (edit-server-start)