diff lib-src/emacsclient.c @ 83600:9aa8a3a78f9e

* emacsclient.c (s): Restore. (main): Don't define s here. (w32_execvp): Move definition before use.
author Dan Nicolaescu <dann@ics.uci.edu>
date Wed, 16 May 2007 16:14:26 +0000
parents dab011361c2a
children 8365dbf64d14
line wrap: on
line diff
--- a/lib-src/emacsclient.c	Wed May 16 10:13:25 2007 +0000
+++ b/lib-src/emacsclient.c	Wed May 16 16:14:26 2007 +0000
@@ -172,7 +172,7 @@
 int emacs_pid = 0;
 
 /* Socket used to communicate with the Emacs server process.  */
-/*HSOCKET s;*/
+HSOCKET s;
 
 void print_help_and_exit () NO_RETURN;
 
@@ -314,7 +314,41 @@
 
   return window_app;
 }
-#endif
+
+/*
+  execvp wrapper for Windows. Quotes arguments with embedded spaces.
+
+  This is necessary due to the broken implementation of exec* routines in
+  the Microsoft libraries: they concatenate the arguments together without
+  quoting special characters, and pass the result to CreateProcess, with
+  predictably bad results.  By contrast, Posix execvp passes the arguments
+  directly into the argv array of the child process.
+*/
+int
+w32_execvp (path, argv)
+     char *path;
+     char **argv;
+{
+  int i;
+
+  /* Required to allow a .BAT script as alternate editor.  */
+  argv[0] = (char *) alternate_editor;
+
+  for (i = 0; argv[i]; i++)
+    if (strchr (argv[i], ' '))
+      {
+	char *quoted = alloca (strlen (argv[i]) + 3);
+	sprintf (quoted, "\"%s\"", argv[i]);
+	argv[i] = quoted;
+      }
+
+  return execvp (path, argv);
+}
+
+#undef execvp
+#define execvp w32_execvp
+
+#endif /* WINDOWSNT */
 
 void
 message (int is_error, char *message, ...)
@@ -736,43 +770,6 @@
 #endif /* WINDOWSNT */
 
 
-#ifdef WINDOWSNT
-
-/*
-  execvp wrapper for Windows. Quotes arguments with embedded spaces.
-
-  This is necessary due to the broken implementation of exec* routines in
-  the Microsoft libraries: they concatenate the arguments together without
-  quoting special characters, and pass the result to CreateProcess, with
-  predictably bad results.  By contrast, Posix execvp passes the arguments
-  directly into the argv array of the child process.
-*/
-int
-w32_execvp (path, argv)
-     char *path;
-     char **argv;
-{
-  int i;
-
-  /* Required to allow a .BAT script as alternate editor.  */
-  argv[0] = (char *) alternate_editor;
-
-  for (i = 0; argv[i]; i++)
-    if (strchr (argv[i], ' '))
-      {
-	char *quoted = alloca (strlen (argv[i]) + 3);
-	sprintf (quoted, "\"%s\"", argv[i]);
-	argv[i] = quoted;
-      }
-
-  return execvp (path, argv);
-}
-
-#undef execvp
-#define execvp w32_execvp
-
-#endif /* WINDOWSNT */
-
 /*
  * Read the information needed to set up a TCP comm channel with
  * the Emacs server: host, port, pid and authentication string.
@@ -1265,7 +1262,6 @@
      int argc;
      char **argv;
 {
-  HSOCKET s;
   int i, rl, needlf = 0;
   char *cwd, *str;
   char string[BUFSIZ+1];