Browse Source

Various MinGW bugfixes from Rosen Matev

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@34695 15284696-431f-4ddb-bdfa-cd5b030d7da7
Glynn Clements 16 years ago
parent
commit
474402cb81
3 changed files with 14 additions and 12 deletions
  1. 4 1
      lib/gis/locale.c
  2. 1 1
      lib/gis/mach_name.c
  3. 9 10
      lib/gis/spawn.c

+ 4 - 1
lib/gis/locale.c

@@ -30,9 +30,12 @@ void G_init_locale(void)
 	return;
 
     setlocale(LC_CTYPE, "");
-    setlocale(LC_MESSAGES, "");
 
 #if defined(HAVE_LIBINTL_H) && defined(USE_NLS)
+#ifdef LC_MESSAGES
+    setlocale(LC_MESSAGES, "");
+#endif
+
     gisbase = getenv("GISBASE");
     if (gisbase && *gisbase) {
 	char localedir[GPATH_MAX];

+ 1 - 1
lib/gis/mach_name.c

@@ -31,7 +31,7 @@ const char *G__machine_name(void)
 	uname(&attname);
 	strcpy(name, attname.nodename);
     }
-#elif
+#else
     strcpy(name, "unknown");
 #endif
 

+ 9 - 10
lib/gis/spawn.c

@@ -61,13 +61,13 @@
 int G_spawn(const char *command, ...)
 {
     va_list va;
-    char *args[MAX_ARGS];
+    const char *args[MAX_ARGS];
     int num_args = 0;
 
     va_start(va, command);
 
     for (num_args = 0; num_args < MAX_ARGS;) {
-	char *arg = va_arg(va, char *);
+	const char *arg = va_arg(va, const char *);
 
 	args[num_args++] = arg;
 	if (!arg)
@@ -81,7 +81,7 @@ int G_spawn(const char *command, ...)
 	return -1;
     }
 
-    return _spawnv(_P_WAIT, (char *)command, args);
+    return _spawnv(_P_WAIT, command, args);
 }
 
 #else
@@ -207,7 +207,7 @@ struct spawn
 
 #ifdef __MINGW32__
 
-static int do_redirects(struct redirect *redirects, int num_redirects)
+static void do_redirects(struct redirect *redirects, int num_redirects)
 {
     if (num_redirects > 0)
 	G_fatal_error
@@ -224,19 +224,18 @@ static char **do_bindings(char **env, struct binding *bindings,
     return env;
 }
 
-static int do_spawn(const char *command)
+static int do_spawn(struct spawn *sp, const char *command)
 {
     char **env;
     int status;
 
-    do_redirects(redirects, num_redirects);
-    env = do_bindings(_environ, bindings, num_bindings);
+    do_redirects(sp->redirects, sp->num_redirects);
+    env = do_bindings(_environ, sp->bindings, sp->num_bindings);
 
     status =
-	spawnvpe(background ? _P_NOWAIT : _P_WAIT, command, (char **)args,
-		 env);
+	spawnvpe(sp->background ? _P_NOWAIT : _P_WAIT, command, sp->args, env);
 
-    if (!background && status < 0)
+    if (!sp->background && status < 0)
 	G_warning(_("Unable to execute command"));
 
     return status;