From: Paul Eggert Date: Fri, 23 Nov 2018 08:33:37 +0000 (-0800) Subject: emacsclient: fix child exit when exec fails X-Git-Tag: emacs-27.0.90~4110 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=652dabfff6f99631f8f3d6c3a658f0b8895d48b0;p=emacs.git 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. --- 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 */