Subject: Re: bug#1058: 23.0.60; emacs --daemon should not return until socket is ready

From: Stefan Monnier <[email-masked]>
Date: Mon, 13 Oct 2008 15:07:59 -0400

>> > -(defun server-start (&optional leave-dead)
>> > +(defun server-start (&optional leave-dead server-arg)
>> >    "Allow this Emacs process to be a server for client processes.
>> >  This starts a server communications subprocess through which
>> >  client \"editors\" can send your editing commands to this Emacs
>> > @@ -463,6 +463,8 @@ kill any existing server communications 
>> >      (when server-process
>> >        ;; kill it dead!
>> >        (ignore-errors (delete-process server-process)))
>> > +    (when (stringp server-arg)
>> > +      (setq server-name server-arg))
>> 
>> Changing the global var like this is an ugly hack.

> Sure, it can be moved before the call to `sever-start'
> I also wanted to make that variable obsolete and make the functional
> interface the preferred method.

There's no need or reason to make it obsolete.  You basically want to
replace the last two lines above with

    (unless (stringp server-arg)
      (setq server-arg server-name))

and then pass server-arg where it's needed.

> But that is a separate issue, and it's quite orthogonal to the point of
> this patch.

Since I'm basically not excited at the idea of adding yet more features
at this point, it's good to try and make sure that any such proposal
comes with the cleanest code possible, rather than with a quick fix.

        Stefan