diff options
| author | Andreas Schwab | 2004-01-08 12:20:43 +0000 |
|---|---|---|
| committer | Andreas Schwab | 2004-01-08 12:20:43 +0000 |
| commit | 152b6e830f5213943afbb70be0e91a022f63556f (patch) | |
| tree | 4af58726021b74927d4c140b510e90391bbc35fa /lib-src | |
| parent | 3a9f36e6345fb62fb47b831850384b28ae81f4a3 (diff) | |
| download | emacs-152b6e830f5213943afbb70be0e91a022f63556f.tar.gz emacs-152b6e830f5213943afbb70be0e91a022f63556f.zip | |
(main): Save errno from socket_status.
Diffstat (limited to 'lib-src')
| -rw-r--r-- | lib-src/ChangeLog | 4 | ||||
| -rw-r--r-- | lib-src/emacsclient.c | 7 |
2 files changed, 9 insertions, 2 deletions
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 0e6a568db49..6aa96d2cc91 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2004-01-08 Andreas Schwab <schwab@suse.de> | ||
| 2 | |||
| 3 | * emacsclient.c (main): Save errno from socket_status. | ||
| 4 | |||
| 1 | 2004-01-04 Andreas Schwab <schwab@suse.de> | 5 | 2004-01-04 Andreas Schwab <schwab@suse.de> |
| 2 | 6 | ||
| 3 | * emacsclient.c (main): Fix socket name when using another user. | 7 | * emacsclient.c (main): Fix socket name when using another user. |
diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c index 8ac1902929e..9f8eb04011a 100644 --- a/lib-src/emacsclient.c +++ b/lib-src/emacsclient.c | |||
| @@ -358,6 +358,7 @@ main (argc, argv) | |||
| 358 | 358 | ||
| 359 | { | 359 | { |
| 360 | int sock_status = 0; | 360 | int sock_status = 0; |
| 361 | int saved_errno; | ||
| 361 | 362 | ||
| 362 | if (! socket_name) | 363 | if (! socket_name) |
| 363 | { | 364 | { |
| @@ -374,6 +375,7 @@ main (argc, argv) | |||
| 374 | 375 | ||
| 375 | /* See if the socket exists, and if it's owned by us. */ | 376 | /* See if the socket exists, and if it's owned by us. */ |
| 376 | sock_status = socket_status (server.sun_path); | 377 | sock_status = socket_status (server.sun_path); |
| 378 | saved_errno = errno; | ||
| 377 | if (sock_status) | 379 | if (sock_status) |
| 378 | { | 380 | { |
| 379 | /* Failing that, see if LOGNAME or USER exist and differ from | 381 | /* Failing that, see if LOGNAME or USER exist and differ from |
| @@ -394,6 +396,7 @@ main (argc, argv) | |||
| 394 | sprintf (server.sun_path, "/tmp/emacs%d-%s/server", | 396 | sprintf (server.sun_path, "/tmp/emacs%d-%s/server", |
| 395 | (int) pw->pw_uid, system_name); | 397 | (int) pw->pw_uid, system_name); |
| 396 | sock_status = socket_status (server.sun_path); | 398 | sock_status = socket_status (server.sun_path); |
| 399 | saved_errno = errno; | ||
| 397 | } | 400 | } |
| 398 | } | 401 | } |
| 399 | } | 402 | } |
| @@ -412,14 +415,14 @@ main (argc, argv) | |||
| 412 | 415 | ||
| 413 | case 2: | 416 | case 2: |
| 414 | /* `stat' failed */ | 417 | /* `stat' failed */ |
| 415 | if (errno == ENOENT) | 418 | if (saved_errno == ENOENT) |
| 416 | fprintf (stderr, | 419 | fprintf (stderr, |
| 417 | "%s: can't find socket; have you started the server?\n\ | 420 | "%s: can't find socket; have you started the server?\n\ |
| 418 | To start the server in Emacs, type \"M-x server-start\".\n", | 421 | To start the server in Emacs, type \"M-x server-start\".\n", |
| 419 | argv[0]); | 422 | argv[0]); |
| 420 | else | 423 | else |
| 421 | fprintf (stderr, "%s: can't stat %s: %s\n", | 424 | fprintf (stderr, "%s: can't stat %s: %s\n", |
| 422 | argv[0], server.sun_path, strerror (errno)); | 425 | argv[0], server.sun_path, strerror (saved_errno)); |
| 423 | fail (argc, argv); | 426 | fail (argc, argv); |
| 424 | break; | 427 | break; |
| 425 | } | 428 | } |