diff lib-src/emacsclient.c @ 99215:e0e326adf3bc

* emacsclient.c (EXTRA_SPACE): New macro. (get_server_config, set_local_socket): Use it.
author Juanma Barranquero <lekktu@gmail.com>
date Wed, 29 Oct 2008 15:34:06 +0000
parents 01e8c1513572
children 8cade16f7427
line wrap: on
line diff
--- a/lib-src/emacsclient.c	Wed Oct 29 13:09:57 2008 +0000
+++ b/lib-src/emacsclient.c	Wed Oct 29 15:34:06 2008 +0000
@@ -109,6 +109,10 @@
 #ifndef NO_RETURN
 #define NO_RETURN
 #endif
+
+/* Additional space when allocating buffers for filenames, etc.  */
+#define EXTRA_SPACE 100
+
 
 /* Name used to invoke this program.  */
 char *progname;
@@ -316,8 +320,8 @@
 	{
 	  result = (char *) xmalloc (cbData);
 
-	  if ((RegQueryValueEx (hrootkey, key, NULL, type, result, &cbData) != ERROR_SUCCESS) ||
-	      (*result == 0))
+	  if ((RegQueryValueEx (hrootkey, key, NULL, type, result, &cbData) != ERROR_SUCCESS)
+	      || (*result == 0))
 	    {
 	      free (result);
 	      result = NULL;
@@ -893,14 +897,16 @@
 
       if (home)
         {
-          char *path = alloca (32 + strlen (home) + strlen (server_file));
+          char *path = alloca (strlen (home) + strlen (server_file)
+			       + EXTRA_SPACE);
           sprintf (path, "%s/.emacs.d/server/%s", home, server_file);
           config = fopen (path, "rb");
         }
 #ifdef WINDOWSNT
       if (!config && (home = egetenv ("APPDATA")))
         {
-          char *path = alloca (32 + strlen (home) + strlen (server_file));
+          char *path = alloca (strlen (home) + strlen (server_file)
+			       + EXTRA_SPACE);
           sprintf (path, "%s/.emacs.d/server/%s", home, server_file);
           config = fopen (path, "rb");
         }
@@ -1142,7 +1148,8 @@
 	tmpdir = egetenv ("TMPDIR");
 	if (!tmpdir)
 	  tmpdir = "/tmp";
-	socket_name = alloca (32 + strlen (tmpdir) + strlen (server_name));
+	socket_name = alloca (strlen (tmpdir) + strlen (server_name)
+			      + EXTRA_SPACE);
 	sprintf (socket_name, "%s/emacs%d/%s",
 		 tmpdir, (int) geteuid (), server_name);
       }
@@ -1178,8 +1185,8 @@
 	    if (pw && (pw->pw_uid != geteuid ()))
 	      {
 		/* We're running under su, apparently. */
-		socket_name = alloca (32 + strlen (tmpdir)
-				      + strlen (server_name));
+		socket_name = alloca (strlen (tmpdir) + strlen (server_name)
+				      + EXTRA_SPACE);
 		sprintf (socket_name, "%s/emacs%d/%s",
 			 tmpdir, (int) pw->pw_uid, server_name);