aboutsummaryrefslogtreecommitdiffstats
path: root/lib-src
diff options
context:
space:
mode:
Diffstat (limited to 'lib-src')
-rw-r--r--lib-src/ChangeLog5
-rw-r--r--lib-src/emacsclient.c13
2 files changed, 15 insertions, 3 deletions
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog
index 93d5e51d285..8c8671af2fc 100644
--- a/lib-src/ChangeLog
+++ b/lib-src/ChangeLog
@@ -1,3 +1,8 @@
12010-10-02 Wolfgang Schnerring <wosc@wosc.de> (tiny change)
2
3 * emacsclient.c (main): Return EXIT_FAILURE if Emacs sends us an
4 error string (Bug#6963).
5
12010-10-02 Juanma Barranquero <lekktu@gmail.com> 62010-10-02 Juanma Barranquero <lekktu@gmail.com>
2 7
3 * makefile.w32-in (tags): Remove target. 8 * makefile.w32-in (tags): Remove target.
diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c
index 4d8a835e56d..d3d6f1cacd8 100644
--- a/lib-src/emacsclient.c
+++ b/lib-src/emacsclient.c
@@ -1499,6 +1499,7 @@ main (int argc, char **argv)
1499 char *cwd, *str; 1499 char *cwd, *str;
1500 char string[BUFSIZ+1]; 1500 char string[BUFSIZ+1];
1501 int null_socket_name, null_server_file, start_daemon_if_needed; 1501 int null_socket_name, null_server_file, start_daemon_if_needed;
1502 int exit_status = EXIT_SUCCESS;
1502 1503
1503 main_argv = argv; 1504 main_argv = argv;
1504 progname = argv[0]; 1505 progname = argv[0];
@@ -1698,7 +1699,8 @@ main (int argc, char **argv)
1698 fsync (1); 1699 fsync (1);
1699 1700
1700 /* Now, wait for an answer and print any messages. */ 1701 /* Now, wait for an answer and print any messages. */
1701 while ((rl = recv (emacs_socket, string, BUFSIZ, 0)) > 0) 1702 while (exit_status == EXIT_SUCCESS
1703 && (rl = recv (emacs_socket, string, BUFSIZ, 0)) > 0)
1702 { 1704 {
1703 char *p; 1705 char *p;
1704 string[rl] = '\0'; 1706 string[rl] = '\0';
@@ -1737,6 +1739,7 @@ main (int argc, char **argv)
1737 printf ("\n"); 1739 printf ("\n");
1738 fprintf (stderr, "*ERROR*: %s", str); 1740 fprintf (stderr, "*ERROR*: %s", str);
1739 needlf = str[0] == '\0' ? needlf : str[strlen (str) - 1] != '\n'; 1741 needlf = str[0] == '\0' ? needlf : str[strlen (str) - 1] != '\n';
1742 exit_status = EXIT_FAILURE;
1740 } 1743 }
1741#ifdef SIGSTOP 1744#ifdef SIGSTOP
1742 else if (strprefix ("-suspend ", string)) 1745 else if (strprefix ("-suspend ", string))
@@ -1754,7 +1757,8 @@ main (int argc, char **argv)
1754 if (needlf) 1757 if (needlf)
1755 printf ("\n"); 1758 printf ("\n");
1756 printf ("*ERROR*: Unknown message: %s", string); 1759 printf ("*ERROR*: Unknown message: %s", string);
1757 needlf = string[0] == '\0' ? needlf : string[strlen (string) - 1] != '\n'; 1760 needlf = string[0]
1761 == '\0' ? needlf : string[strlen (string) - 1] != '\n';
1758 } 1762 }
1759 } 1763 }
1760 1764
@@ -1763,8 +1767,11 @@ main (int argc, char **argv)
1763 fflush (stdout); 1767 fflush (stdout);
1764 fsync (1); 1768 fsync (1);
1765 1769
1770 if (rl < 0)
1771 exit_status = EXIT_FAILURE;
1772
1766 CLOSE_SOCKET (emacs_socket); 1773 CLOSE_SOCKET (emacs_socket);
1767 return EXIT_SUCCESS; 1774 return exit_status;
1768} 1775}
1769 1776
1770#endif /* HAVE_SOCKETS && HAVE_INET_SOCKETS */ 1777#endif /* HAVE_SOCKETS && HAVE_INET_SOCKETS */