* emacsclient.c (main): Return EXIT_FAILURE if Emacs sends us an error string

(Bug#6963).
This commit is contained in:
Wolfgang Schnerring 2010-10-02 20:00:01 -04:00 committed by Chong Yidong
parent 986d19df1f
commit 3ecb8d931a
2 changed files with 15 additions and 3 deletions

View file

@ -1,3 +1,8 @@
2010-10-02 Wolfgang Schnerring <wosc@wosc.de> (tiny change)
* emacsclient.c (main): Return EXIT_FAILURE if Emacs sends us an
error string (Bug#6963).
2010-10-02 Juanma Barranquero <lekktu@gmail.com>
* makefile.w32-in (tags): Remove target.

View file

@ -1499,6 +1499,7 @@ main (int argc, char **argv)
char *cwd, *str;
char string[BUFSIZ+1];
int null_socket_name, null_server_file, start_daemon_if_needed;
int exit_status = EXIT_SUCCESS;
main_argv = argv;
progname = argv[0];
@ -1698,7 +1699,8 @@ main (int argc, char **argv)
fsync (1);
/* Now, wait for an answer and print any messages. */
while ((rl = recv (emacs_socket, string, BUFSIZ, 0)) > 0)
while (exit_status == EXIT_SUCCESS
&& (rl = recv (emacs_socket, string, BUFSIZ, 0)) > 0)
{
char *p;
string[rl] = '\0';
@ -1737,6 +1739,7 @@ main (int argc, char **argv)
printf ("\n");
fprintf (stderr, "*ERROR*: %s", str);
needlf = str[0] == '\0' ? needlf : str[strlen (str) - 1] != '\n';
exit_status = EXIT_FAILURE;
}
#ifdef SIGSTOP
else if (strprefix ("-suspend ", string))
@ -1754,7 +1757,8 @@ main (int argc, char **argv)
if (needlf)
printf ("\n");
printf ("*ERROR*: Unknown message: %s", string);
needlf = string[0] == '\0' ? needlf : string[strlen (string) - 1] != '\n';
needlf = string[0]
== '\0' ? needlf : string[strlen (string) - 1] != '\n';
}
}
@ -1763,8 +1767,11 @@ main (int argc, char **argv)
fflush (stdout);
fsync (1);
if (rl < 0)
exit_status = EXIT_FAILURE;
CLOSE_SOCKET (emacs_socket);
return EXIT_SUCCESS;
return exit_status;
}
#endif /* HAVE_SOCKETS && HAVE_INET_SOCKETS */