Subject: bug#58877: 29.0.50; [PATCH] When killing Emacs from a client frame with no other frames, Emacs shows a useless error prompt

From: Eli Zaretskii <[email-masked]>
Date: Sat, 26 Nov 2022 21:45:19 +0200

> Date: Sat, 26 Nov 2022 11:04:48 -0800
> Cc: [email-masked]
> From: Jim Porter <[email-masked]>
> 
> > I think you need to modify the tests to ensure the server file is created in
> > a temporary directory.  And keep in mind that the variable which affects
> > that is different depending on whether server-use-tcp is or isn't non-nil.
> 
> Hm, I'm surprised the tests failed again for you then. Both of the 
> patches I posted to fix the tests set the 'server-name' to a (hopefully) 
> unique value.
> 
> Still, I think it's a good idea to use a temporary directory to hold the 
> server file, so here's a patch that does that. I've tried this patch 
> with a production Emacs server running at the same time in several 
> different configurations (with 'server-use-tcp' on and off, and with 
> --daemon), and the tests all pass locally for me on GNU/Linux.

Still fails, and here's why:

    Client output: d:\gnu\git\emacs\trunk\lib-src\emacsclient.exe: unrecognized option '--socket-name'
                   Try 'd:\gnu\git\emacs\trunk\lib-src\emacsclient.exe --help' for more information

                   Process d:/gnu/git/emacs/trunk/lib-src/emacsclient exited abnormally with code 1

There's no --socket-name switch on MS-Windows; you need to use --server-file
instead.

If I change server-tests/start-client to use --server-file, the next problem
rears its ugly head:

    Client output: *ERROR*: Not using an ASCII terminal now; cannot make a new ASCII frame

                   Process d:/gnu/git/emacs/trunk/lib-src/emacsclient exited abnormally with code 1

This is because emacsclient on Windows cannot create new terminal frames,
only new GUI frames, unless Emacs was started as "emacs -nw".

Why do these tests need TTY frames?

Btw, with the above changes, only 3 tests fail:

  3 unexpected results:
     FAILED  server-tests/emacsclient/create-frame
     FAILED  server-tests/server-force-stop/keeps-frames
     FAILED  server-tests/server-start/stop-prompt-with-client

So this is progress, thanks.