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

From: Po Lu <[email-masked]>
Date: Fri, 19 May 2023 15:22:22 +0800

Eli Zaretskii <[email-masked]> writes:

>> From: Phillip Susi <[email-masked]>
>> Date: Wed, 17 May 2023 09:51:43 -0400
>> 
>> Package: emacs
>> Version: 29.0.90
>> 
>> In previous versions of emacs, if the DISPLAY/WAYLAND_DISPLAY variable
>> was not set, it would default to tty mode.  In version 29, it seems to
>> assume a default value and complains that it can't connect to the
>> display server unless you run it with -nw.
>
> Po Lu, was this an intentional change?  If so, did we document the
> reasons?  I cannot find anything in NEWS.

No, I don't think so.  This isn't intentional.
Phillip, please place a breakpoint on `init_display_interactive' in
src/dispnew.c.  Then, step to this piece of code:

  if (! inhibit_window_system && ! display_arg)
    {
      char *display;
      display = getenv ("DISPLAY");
      display_arg = (display != 0 && *display != 0); <----------

      if (display_arg && !x_display_ok (display))
	{
	  fprintf (stderr, "Display %s unavailable, simulating -nw\n",
		   display);
	  inhibit_window_system = 1;
	}
    }

and show:

  (gdb) p display

Thanks.