Subject: bug#63555: emacs 29 complains that it can't connect to the display

From: Eli Zaretskii <[email-masked]>
Date: Fri, 19 May 2023 17:52:06 +0300

> From: Robert Pluim <[email-masked]>
> Cc: Eli Zaretskii <[email-masked]>, Phillip Susi <[email-masked]>,
>  [email-masked]
> Date: Fri, 19 May 2023 15:26:42 +0200
> 
>     >> Po Lu, was this an intentional change?  If so, did we document the
>     >> reasons?  I cannot find anything in NEWS.
> 
>     Po Lu> No, I don't think so.  This isn't intentional.
>     Po Lu> Phillip, please place a breakpoint on `init_display_interactive' in
>     Po Lu> src/dispnew.c.  Then, step to this piece of code:
> 
>     Po Lu>   if (! inhibit_window_system && ! display_arg)
>     Po Lu>     {
>     Po Lu>       char *display;
>     Po Lu>       display = getenv ("DISPLAY");
>     Po Lu>       display_arg = (display != 0 && *display != 0); <----------
> 
>     Po Lu>       if (display_arg && !x_display_ok (display))
>     Po Lu> 	{
>     Po Lu> 	  fprintf (stderr, "Display %s unavailable, simulating -nw\n",
>     Po Lu> 		   display);
>     Po Lu> 	  inhibit_window_system = 1;
>     Po Lu> 	}
>     Po Lu>     }
> 
>     Po Lu> and show:
> 
>     Po Lu>   (gdb) p display
> 
> HAVE_X_WINDOWS is not defined in a pgtk build, so this code is never
> run. And it looks kind of X-specific in any case

How did this work in Emacs 28, then?  IOW, which change broke this
feature on Wayland?