Mercurial > emacs
diff lib-src/emacsclient.c @ 83031:1d2f73785d9d
Merged in changes from CVS HEAD
Patches applied:
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-57
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-58
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-59
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-60
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-61
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-62
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-63
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-64
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-65
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-66
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-67
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-68
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-69
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-71
author | Karoly Lorentey <lorentey@elte.hu> |
---|---|
date | Mon, 02 Feb 2004 19:19:08 +0000 |
parents | 895e130cc8da 132739917566 |
children | 03a73693678e |
line wrap: on
line diff
--- a/lib-src/emacsclient.c Mon Jan 26 21:22:42 2004 +0000 +++ b/lib-src/emacsclient.c Mon Feb 02 19:19:08 2004 +0000 @@ -382,8 +382,6 @@ int argc; char **argv; { - char *system_name; - int system_name_length; int s, i, needlf = 0; FILE *out, *in; struct sockaddr_un server; @@ -418,39 +416,24 @@ server.sun_family = AF_UNIX; { - char *dot; - system_name_length = 32; - - while (1) - { - system_name = (char *) xmalloc (system_name_length + 1); - - /* system_name must be null-terminated string. */ - system_name[system_name_length] = '\0'; - - if (gethostname (system_name, system_name_length) == 0) - break; - - free (system_name); - system_name_length *= 2; - } - - /* We always use the non-dotted host name, for simplicity. */ - dot = index (system_name, '.'); - if (dot) - *dot = '\0'; - } - - { int sock_status = 0; int default_sock = !socket_name; int saved_errno = 0; - if (default_sock) + char *server_name = "server"; + + if (socket_name && !index (socket_name, '/') && !index (socket_name, '\\')) + { /* socket_name is a file name component. */ + server_name = socket_name; + socket_name = NULL; + default_sock = 1; /* Try both UIDs. */ + } + + if (default_sock) { - socket_name = alloca (system_name_length + 100); - sprintf (socket_name, "/tmp/emacs%d-%s/server", - (int) geteuid (), system_name); + socket_name = alloca (100 + strlen (server_name)); + sprintf (socket_name, "/tmp/emacs%d/%s", + (int) geteuid (), server_name); } if (strlen (socket_name) < sizeof (server.sun_path)) @@ -484,8 +467,9 @@ if (pw && (pw->pw_uid != geteuid ())) { /* We're running under su, apparently. */ - sprintf (socket_name, "/tmp/emacs%d-%s/server", - (int) pw->pw_uid, system_name); + socket_name = alloca (100 + strlen (server_name)); + sprintf (socket_name, "/tmp/emacs%d/%s", + (int) pw->pw_uid, server_name); if (strlen (socket_name) < sizeof (server.sun_path)) strcpy (server.sun_path, socket_name);