Subject: Re: bug#2138: 23.0.60; --daemon and ediff-window-setup-function

From: Eli Zaretskii <[email-masked]>
Date: Sun, 01 Feb 2009 20:24:15 +0200

> Date: Sun, 1 Feb 2009 06:50:11 -0800 (PST)
> From: Dan Nicolaescu <[email-masked]>
> Cc: [email-masked]
> 
> Stephen Berman <[email-masked]> writes:
> 
>   > On Sat, 31 Jan 2009 22:05:07 -0800 (PST) Dan Nicolaescu <[email-masked]> wrote:
>   > 
>   > > Stephen Berman <[email-masked]> writes:
>   > >
>   > >   > Start Emacs like this:
>   > >   > 
>   > >   > 1. emacs -Q --eval "(require 'ediff)"
>   > >   > 2. emacsclient -c
>   > >   > 3. C-h v ediff-window-setup-function
>   > >   > => ediff-setup-windows-multiframe
>   > >   > 
>   > >   > Now start Emacs like this:
>   > >   > 
>   > >   > 1. emacs -Q --daemon --eval "(require 'ediff)"
>   > >   > 2. emacsclient -c
>   > >   > 3. C-h v ediff-window-setup-function
>   > >   > => ediff-setup-windows-plain
>   > >   > 
>   > >   > 
>   > >   > I haven't tried debugging this, but my first guess is that
>   > >   > ediff-setup-windows-multiframe requires non-nil window-system but (still
>   > >   > guessing) when there is no frame window-system evaluates to nil.
>   > >
>   > > You can take --daemon out of this equation, you'd  get the same when
>   > > doing 
>   > > emacs -Q and emacs -Q -nw
>   > 
>   > I should have been more explicit about the point of this bug report,
>   > which is this: when I invoke `emacsclient -c' under X11, I expect the
>   > usual behavior under X11, but in the above case, --daemon apparently
>   > circumvents this behavior.
> 
> Again, you get the same problem if you do:
> emacs -Q -nw -f server-start  --eval "(require 'ediff)"
> emacsclient -c 
> M-x ediff
> 
> and you have a problem if you do
> emacs -Q -f server-start  --eval "(require 'ediff)"
> emacsclient -t
> M-x ediff
> 
>   > I cannot tell from the current documentation when using --daemon has
>   > this effect and when it doesn't.  Hence I cannot tell whether this is a
>   > bug or a limitation of the current implementation.  So I hope this and
>   > similar bug reports lead to both more complete documentation and either
>   > a bug fix or, at some point, a more feature-rich implementation.
> 
> Not really, this is not a problem with --daemon, it's a problem in the
> ediff implementation that it evaluates ediff-window-setup-function at
> load time.  This is not appropriate anymore now when you can have both
> X11 and tty frames in the same emacs session.

Michael, could you please take care of this problem?

Thanks.