diff options
| author | Juanma Barranquero | 2008-10-29 15:34:06 +0000 |
|---|---|---|
| committer | Juanma Barranquero | 2008-10-29 15:34:06 +0000 |
| commit | bc558f3edbca94c4b8eb33791720c55eb27b059b (patch) | |
| tree | 928d3d801e9d77656fc414af2cee7c8f9b4d8ec9 /lib-src | |
| parent | f8baa6395ec0f506b7ba72e165581b5299648bbe (diff) | |
| download | emacs-bc558f3edbca94c4b8eb33791720c55eb27b059b.tar.gz emacs-bc558f3edbca94c4b8eb33791720c55eb27b059b.zip | |
* emacsclient.c (EXTRA_SPACE): New macro.
(get_server_config, set_local_socket): Use it.
Diffstat (limited to 'lib-src')
| -rw-r--r-- | lib-src/ChangeLog | 3 | ||||
| -rw-r--r-- | lib-src/emacsclient.c | 21 |
2 files changed, 17 insertions, 7 deletions
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index ec7cb4c9d6e..bf93db88090 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog | |||
| @@ -1,5 +1,8 @@ | |||
| 1 | 2008-10-29 Juanma Barranquero <lekktu@gmail.com> | 1 | 2008-10-29 Juanma Barranquero <lekktu@gmail.com> |
| 2 | 2 | ||
| 3 | * emacsclient.c (EXTRA_SPACE): New macro. | ||
| 4 | (get_server_config, set_local_socket): Use it. | ||
| 5 | |||
| 3 | * makefile.w32-in ($(BLD)/sorted-doc.$(O)): Remove spurious backslash. | 6 | * makefile.w32-in ($(BLD)/sorted-doc.$(O)): Remove spurious backslash. |
| 4 | Reported by Guillaume Conjat <gconjat.ext@orange-ftgroup.com>. | 7 | Reported by Guillaume Conjat <gconjat.ext@orange-ftgroup.com>. |
| 5 | 8 | ||
diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c index 4c167c2ad7f..870100ed4af 100644 --- a/lib-src/emacsclient.c +++ b/lib-src/emacsclient.c | |||
| @@ -109,6 +109,10 @@ char *w32_getenv (); | |||
| 109 | #ifndef NO_RETURN | 109 | #ifndef NO_RETURN |
| 110 | #define NO_RETURN | 110 | #define NO_RETURN |
| 111 | #endif | 111 | #endif |
| 112 | |||
| 113 | /* Additional space when allocating buffers for filenames, etc. */ | ||
| 114 | #define EXTRA_SPACE 100 | ||
| 115 | |||
| 112 | 116 | ||
| 113 | /* Name used to invoke this program. */ | 117 | /* Name used to invoke this program. */ |
| 114 | char *progname; | 118 | char *progname; |
| @@ -316,8 +320,8 @@ w32_get_resource (predefined, key, type) | |||
| 316 | { | 320 | { |
| 317 | result = (char *) xmalloc (cbData); | 321 | result = (char *) xmalloc (cbData); |
| 318 | 322 | ||
| 319 | if ((RegQueryValueEx (hrootkey, key, NULL, type, result, &cbData) != ERROR_SUCCESS) || | 323 | if ((RegQueryValueEx (hrootkey, key, NULL, type, result, &cbData) != ERROR_SUCCESS) |
| 320 | (*result == 0)) | 324 | || (*result == 0)) |
| 321 | { | 325 | { |
| 322 | free (result); | 326 | free (result); |
| 323 | result = NULL; | 327 | result = NULL; |
| @@ -893,14 +897,16 @@ get_server_config (server, authentication) | |||
| 893 | 897 | ||
| 894 | if (home) | 898 | if (home) |
| 895 | { | 899 | { |
| 896 | char *path = alloca (32 + strlen (home) + strlen (server_file)); | 900 | char *path = alloca (strlen (home) + strlen (server_file) |
| 901 | + EXTRA_SPACE); | ||
| 897 | sprintf (path, "%s/.emacs.d/server/%s", home, server_file); | 902 | sprintf (path, "%s/.emacs.d/server/%s", home, server_file); |
| 898 | config = fopen (path, "rb"); | 903 | config = fopen (path, "rb"); |
| 899 | } | 904 | } |
| 900 | #ifdef WINDOWSNT | 905 | #ifdef WINDOWSNT |
| 901 | if (!config && (home = egetenv ("APPDATA"))) | 906 | if (!config && (home = egetenv ("APPDATA"))) |
| 902 | { | 907 | { |
| 903 | char *path = alloca (32 + strlen (home) + strlen (server_file)); | 908 | char *path = alloca (strlen (home) + strlen (server_file) |
| 909 | + EXTRA_SPACE); | ||
| 904 | sprintf (path, "%s/.emacs.d/server/%s", home, server_file); | 910 | sprintf (path, "%s/.emacs.d/server/%s", home, server_file); |
| 905 | config = fopen (path, "rb"); | 911 | config = fopen (path, "rb"); |
| 906 | } | 912 | } |
| @@ -1142,7 +1148,8 @@ set_local_socket () | |||
| 1142 | tmpdir = egetenv ("TMPDIR"); | 1148 | tmpdir = egetenv ("TMPDIR"); |
| 1143 | if (!tmpdir) | 1149 | if (!tmpdir) |
| 1144 | tmpdir = "/tmp"; | 1150 | tmpdir = "/tmp"; |
| 1145 | socket_name = alloca (32 + strlen (tmpdir) + strlen (server_name)); | 1151 | socket_name = alloca (strlen (tmpdir) + strlen (server_name) |
| 1152 | + EXTRA_SPACE); | ||
| 1146 | sprintf (socket_name, "%s/emacs%d/%s", | 1153 | sprintf (socket_name, "%s/emacs%d/%s", |
| 1147 | tmpdir, (int) geteuid (), server_name); | 1154 | tmpdir, (int) geteuid (), server_name); |
| 1148 | } | 1155 | } |
| @@ -1178,8 +1185,8 @@ set_local_socket () | |||
| 1178 | if (pw && (pw->pw_uid != geteuid ())) | 1185 | if (pw && (pw->pw_uid != geteuid ())) |
| 1179 | { | 1186 | { |
| 1180 | /* We're running under su, apparently. */ | 1187 | /* We're running under su, apparently. */ |
| 1181 | socket_name = alloca (32 + strlen (tmpdir) | 1188 | socket_name = alloca (strlen (tmpdir) + strlen (server_name) |
| 1182 | + strlen (server_name)); | 1189 | + EXTRA_SPACE); |
| 1183 | sprintf (socket_name, "%s/emacs%d/%s", | 1190 | sprintf (socket_name, "%s/emacs%d/%s", |
| 1184 | tmpdir, (int) pw->pw_uid, server_name); | 1191 | tmpdir, (int) pw->pw_uid, server_name); |
| 1185 | 1192 | ||