]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/utilsexc.cpp
Fixed small alignment issues
[wxWidgets.git] / src / msw / utilsexc.cpp
index 7c085553ed2893396b5eb1fd6d1375e02593b8da..aaf6176b1c2b86d35b62b49dcfe99ae771b033fb 100644 (file)
@@ -217,7 +217,7 @@ protected:
 protected:
     HANDLE m_hInput;
 
-    DECLARE_NO_COPY_CLASS(wxPipeInputStream)
+    wxDECLARE_NO_COPY_CLASS(wxPipeInputStream);
 };
 
 class wxPipeOutputStream: public wxOutputStream
@@ -233,7 +233,7 @@ protected:
 protected:
     HANDLE m_hOutput;
 
-    DECLARE_NO_COPY_CLASS(wxPipeOutputStream)
+    wxDECLARE_NO_COPY_CLASS(wxPipeOutputStream);
 };
 
 // define this to let wxexec.cpp know that we know what we're doing
@@ -899,6 +899,9 @@ long wxExecute(const wxString& cmd, int flags, wxProcess *handler)
     {
         // may be NULL or not
         data->handler = handler;
+
+        if (handler)
+            handler->SetPid(pi.dwProcessId);
     }
 
     DWORD tid;
@@ -1032,16 +1035,28 @@ long wxExecuteImpl(CharType **argv, int flags, wxProcess *handler)
     {
         arg = *argv++;
 
-        // escape any quotes present in the string to avoid interfering with
-        // the command line parsing in the child process
-        arg.Replace("\"", "\\\"", true /* replace all */);
+        bool quote;
+        if ( arg.empty() )
+        {
+            // we need to quote empty arguments, otherwise they'd just
+            // disappear
+            quote = true;
+        }
+        else // non-empty
+        {
+            // escape any quotes present in the string to avoid interfering
+            // with the command line parsing in the child process
+            arg.Replace("\"", "\\\"", true /* replace all */);
 
-        // and quote any arguments containing the spaces to prevent them from
-        // being broken down
-        if ( arg.find_first_of(" \t") == wxString::npos )
-            command += arg;
-        else
+            // and quote any arguments containing the spaces to prevent them from
+            // being broken down
+            quote = arg.find_first_of(" \t") != wxString::npos;
+        }
+
+        if ( quote )
             command += '\"' + arg + '\"';
+        else
+            command += arg;
 
         if ( !*argv )
             break;