]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/utilsexc.cpp
moved common code from ctor and Create() to a separate Init() function
[wxWidgets.git] / src / msw / utilsexc.cpp
index ac3c249d08c5f8a650b70037d325cefbcf7fe078..aae349314dc22cf48e2d3c28f0b527491fee3c7e 100644 (file)
@@ -10,7 +10,7 @@
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
-#pragma implementation "utils.h"
+#pragma implementation
 #endif
 
 // For compilers that support precompilation, includes "wx.h".
@@ -26,6 +26,7 @@
 #include "wx/app.h"
 #endif
 
+#include "wx/log.h"
 #include "wx/msw/private.h"
 #include <windows.h>
 
 #ifdef __GNUWIN32__
 #include <sys/unistd.h>
 #include <sys/stat.h>
-#ifndef __MINGW32__
-#include <std.h>
-#endif
-
 #endif
 
 #ifdef __WIN32__
@@ -72,6 +69,8 @@ struct wxExecuteData {
   char state;
 };
 
+
+#ifdef __WIN32__
 static DWORD wxExecuteThread(wxExecuteData *data)
 {
   WaitForSingleObject(data->process, INFINITE);
@@ -81,6 +80,8 @@ static DWORD wxExecuteThread(wxExecuteData *data)
 
   return 0;
 }
+#endif
+
 
 LRESULT APIENTRY _EXPORT wxExecuteWindowCbk(HWND hWnd, UINT message,
                                             WPARAM wParam, LPARAM lParam)
@@ -130,10 +131,8 @@ long wxExecute(const wxString& command, bool sync, wxProcess *handler)
     *argp++ = '\0';
 
 #ifdef __GNUWIN32__
-  result = ShellExecute((HWND) (wxTheApp->GetTopWindow() ? (HWND) wxTheApp->GetT
-opWindow()->GetHWND() : NULL),
-     (const wchar_t) "open", (const wchar_t) cl, (const wchar_t) arg
-p,i
+  result = ShellExecute((HWND) (wxTheApp->GetTopWindow() ? (HWND) wxTheApp->GetTopWindow()->GetHWND() : NULL),
+     (const wchar_t) "open", (const wchar_t) cl, (const wchar_t) argp,
      (const wchar_t) NULL, SW_SHOWNORMAL);
 #else
   result = ShellExecute( (HWND) (wxTheApp->GetTopWindow() ? wxTheApp->GetTopWindow()->GetHWND() : NULL),
@@ -142,6 +141,8 @@ p,i
 
   if (((long)result) <= 32) {
    free(cl);
+
+   wxLogSysError(_("Can't execute command '%s'"), command.c_str());
    return 0;
   }
 
@@ -198,3 +199,16 @@ p,i
   return(instanceID);
 #endif
 }
+
+long wxExecute(char **argv, bool sync, wxProcess *handler)
+{
+  wxString command = "";
+
+  while (*argv != NULL) {
+    command += *argv;
+    command += ' ';
+    argv++;
+  }
+  command.RemoveLast();
+  return wxExecute(command, sync, handler);
+}