]> code.delx.au - gnu-emacs/commitdiff
(main): Save errno from socket_status.
authorAndreas Schwab <schwab@suse.de>
Thu, 8 Jan 2004 12:20:43 +0000 (12:20 +0000)
committerAndreas Schwab <schwab@suse.de>
Thu, 8 Jan 2004 12:20:43 +0000 (12:20 +0000)
lib-src/ChangeLog
lib-src/emacsclient.c

index 0e6a568db4961f7c8a74695cad715d21ed514bcd..6aa96d2cc919633e7202ec626eb317261edb7346 100644 (file)
@@ -1,3 +1,7 @@
+2004-01-08  Andreas Schwab  <schwab@suse.de>
+
+       * emacsclient.c (main): Save errno from socket_status.
+
 2004-01-04  Andreas Schwab  <schwab@suse.de>
 
        * emacsclient.c (main): Fix socket name when using another user.
index 8ac1902929e37966b9b5ff2f09c85a9e9d47174d..9f8eb04011a79198d1c9ab99bc3f23d2ede45114 100644 (file)
@@ -358,6 +358,7 @@ main (argc, argv)
 
   {
     int sock_status = 0;
+    int saved_errno;
 
     if (! socket_name)
       {
@@ -374,6 +375,7 @@ main (argc, argv)
 
     /* See if the socket exists, and if it's owned by us. */
     sock_status = socket_status (server.sun_path);
+    saved_errno = errno;
     if (sock_status)
       {
        /* Failing that, see if LOGNAME or USER exist and differ from
@@ -394,6 +396,7 @@ main (argc, argv)
                sprintf (server.sun_path, "/tmp/emacs%d-%s/server",
                         (int) pw->pw_uid, system_name);
                sock_status = socket_status (server.sun_path);
+               saved_errno = errno;
              }
          }
       }
@@ -412,14 +415,14 @@ main (argc, argv)
 
        case 2:
         /* `stat' failed */
-        if (errno == ENOENT)
+        if (saved_errno == ENOENT)
           fprintf (stderr,
                    "%s: can't find socket; have you started the server?\n\
 To start the server in Emacs, type \"M-x server-start\".\n",
                    argv[0]);
         else
           fprintf (stderr, "%s: can't stat %s: %s\n",
-                   argv[0], server.sun_path, strerror (errno));
+                   argv[0], server.sun_path, strerror (saved_errno));
         fail (argc, argv);
         break;
        }