From 652dabfff6f99631f8f3d6c3a658f0b8895d48b0 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 23 Nov 2018 00:33:37 -0800 Subject: [PATCH] emacsclient: fix child exit when exec fails * lib-src/emacsclient.c (start_daemon_and_retry_set_socket): If the execvp of Emacs fails exit instead of having the child run on and do the work of the parent. Coalesce duplicate code. --- lib-src/emacsclient.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c index b5ed2e0435a..9830eaecc6d 100644 --- a/lib-src/emacsclient.c +++ b/lib-src/emacsclient.c @@ -1484,13 +1484,6 @@ start_daemon_and_retry_set_socket (void) /* Try connecting, the daemon should have started by now. */ message (true, "Emacs daemon should have started, trying to connect again\n"); - - if ((emacs_socket = set_socket (1)) == INVALID_SOCKET) - { - message (true, ("Error: Cannot connect " - "even after starting the Emacs daemon\n")); - exit (EXIT_FAILURE); - } } else if (dpid < 0) { @@ -1518,6 +1511,7 @@ start_daemon_and_retry_set_socket (void) # endif execvp ("emacs", d_argv); message (true, "%s: error starting emacs daemon\n", progname); + exit (EXIT_FAILURE); } # else /* WINDOWSNT */ DWORD wait_result; @@ -1583,13 +1577,15 @@ start_daemon_and_retry_set_socket (void) if (!w32_window_app ()) message (true, "Emacs daemon should have started, trying to connect again\n"); - if ((emacs_socket = set_socket (1)) == INVALID_SOCKET) +# endif /* WINDOWSNT */ + + emacs_socket = set_socket (true); + if (emacs_socket == INVALID_SOCKET) { message (true, "Error: Cannot connect even after starting the Emacs daemon\n"); exit (EXIT_FAILURE); } -# endif /* WINDOWSNT */ } #endif /* HAVE_SOCKETS && HAVE_INET_SOCKETS */ -- 2.39.5