]> git.saurik.com Git - wxWidgets.git/blobdiff - src/unix/utilsunx.cpp
don't mention GUI-only changes in the base section
[wxWidgets.git] / src / unix / utilsunx.cpp
index 0b60c5214cff53d96541e4182b87edfc200e458d..445f88b9faf3ecb6046cd6eeec90bcb51c061056 100644 (file)
@@ -253,11 +253,7 @@ long wxExecute( const wxString& command, int flags, wxProcess *process )
     argv[argc] = NULL;
 
     // do execute the command
-#if wxUSE_UNICODE
-    long lRc = -1;
-#else
     long lRc = wxExecute(argv, flags, process);
-#endif
 
     // clean up
     argc = 0;
@@ -563,13 +559,17 @@ long wxExecute(wxChar **argv,
     }
 
     // fork the process
-#ifdef HAVE_VFORK
-    pid_t pid = vfork();
+    //
+    // NB: do *not* use vfork() here, it completely breaks this code for some
+    //     reason under Solaris (and maybe others, although not under Linux)
+    //     But on OpenVMS we do not have fork so we have to use vfork and
+    //     cross our fingers that it works.
+#ifdef __VMS
+   pid_t pid = vfork();
 #else
-    pid_t pid = fork();
+   pid_t pid = fork();
 #endif
-
-    if ( pid == -1 )     // error?
+   if ( pid == -1 )     // error?
     {
         wxLogSysError( _("Fork failed") );
 
@@ -605,7 +605,7 @@ long wxExecute(wxChar **argv,
             }
         }
 
-#ifndef __VMS
+#if !defined(__VMS) && !defined(__EMX__)
         if ( flags & wxEXEC_MAKE_GROUP_LEADER )
         {
             // Set process group to child process' pid.  Then killing -pid