]> git.eshelyaron.com Git - emacs.git/commitdiff
* emacsclient.c (main): Return EXIT_FAILURE if Emacs sends us an error string
authorWolfgang Schnerring <wosc@wosc.de>
Sun, 3 Oct 2010 00:00:01 +0000 (20:00 -0400)
committerChong Yidong <cyd@stupidchicken.com>
Sun, 3 Oct 2010 00:00:01 +0000 (20:00 -0400)
(Bug#6963).

lib-src/ChangeLog
lib-src/emacsclient.c

index 93d5e51d285b5943070b272decc3ef19cbf49eed..8c8671af2fc07808fd8bd4f6953e0e568e9ed93c 100644 (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.
index 4d8a835e56de7ce15603b75e43322fcb0c89aea4..d3d6f1cacd8d4d8e3da8d6270433cd17b42c3724 100644 (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 */