From 7f05445047c6479b81b7d393543ff73a95ee0dc8 Mon Sep 17 00:00:00 2001
From: Guus Sliepen <guus@tinc-vpn.org>
Date: Fri, 8 Aug 2003 19:43:47 +0000
Subject: [PATCH] Quote when needed and don't try stuff that doesn't work under
 Windows.

---
 src/process.c | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/src/process.c b/src/process.c
index 5566510..43ce5bd 100644
--- a/src/process.c
+++ b/src/process.c
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id: process.c,v 1.1.2.66 2003/08/08 17:17:13 guus Exp $
+    $Id: process.c,v 1.1.2.67 2003/08/08 19:43:47 guus Exp $
 */
 
 #include "system.h"
@@ -99,10 +99,8 @@ bool install_service(void) {
 
 	strncat(command, program_name, sizeof(command));
 	for(argp = g_argv + 1; *argp; argp++) {
-		space = strchr(*argp, " ");
-		strncat(command, " ", sizeof(command));
-		if(space)
-			strncat(command, "\"", sizeof(command));
+		space = strchr(*argp, ' ');
+		strncat(command, space?" \"":" ", sizeof(command));
 		strncat(command, *argp, sizeof(command));
 		if(space)
 			strncat(command, "\"", sizeof(command));
@@ -363,26 +361,29 @@ bool execute_script(const char *name, char **envp)
 
 	cp();
 
-	asprintf(&scriptname, "%s/%s", confbase, name);
+	asprintf(&scriptname, "\"%s/%s\"", confbase, name);
 
+#ifndef HAVE_MINGW
 	/* First check if there is a script */
 
 	if(stat(scriptname, &s))
 		return true;
 
+	ifdebug(STATUS) logger(LOG_INFO, _("Executing script %s"), name);
+#endif
+
 	/* Set environment */
 	
 	while(*envp)
 		putenv(*envp++);
 
-	ifdebug(STATUS) logger(LOG_INFO, _("Executing script %s"), name);
-
 	status = system(scriptname);
 
 	free(scriptname);
 
 	/* Unset environment? */
 
+#ifdef WEXITSTATUS
 	if(status != -1) {
 		if(WIFEXITED(status)) {	/* Child exited by itself */
 			if(WEXITSTATUS(status)) {
@@ -404,6 +405,7 @@ bool execute_script(const char *name, char **envp)
 			   strerror(errno));
 		return false;
 	}
+#endif
 #endif
 	return true;
 }
-- 
2.25.1