]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/corefoundation/utilsexc_cf.cpp
Line-up interfaces to use size_t for GetCount()s.
[wxWidgets.git] / src / mac / corefoundation / utilsexc_cf.cpp
index 8ab34dd12bc4e99f6ca7dc80beb459ac15a68c4f..12f26671c083311af375a6eb3a42a9ec875bdc76 100644 (file)
@@ -1,12 +1,12 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        src/mac/corefoundation/utilsexec_cf.cpp
 // Purpose:     Execution-related utilities for Darwin
-// Author:      David Elliott
+// Author:      David Elliott, Ryan Norton (wxMacExecute)
 // Modified by: Stefan Csomor (added necessary wxT for unicode builds)
 // Created:     2004-11-04
 // RCS-ID:      $Id$
-// Copyright:   (c) David Elliott
-// Licence:    wxWindows licence
+// Copyright:   (c) David Elliott, Ryan Norton
+// Licence:     wxWindows licence
 // Notes:       This code comes from src/mac/carbon/utilsexc.cpp,1.11
 /////////////////////////////////////////////////////////////////////////////
 
     #include "wx/utils.h"
 #endif //ndef WX_PRECOMP
 #include "wx/unix/execute.h"
+#include "wx/stdpaths.h"
+#include "wx/apptrait.h"
+
+
 
 #include <CoreFoundation/CFMachPort.h>
 #include <sys/wait.h>
@@ -25,20 +29,20 @@ extern "C" {
 
 void wxMAC_MachPortEndProcessDetect(CFMachPortRef port, void *data)
 {
-       wxEndProcessData *proc_data = (wxEndProcessData*)data;
-       wxLogDebug(wxT("Wow.. this actually worked!"));
-       int status = 0;
-       int rc = waitpid(abs(proc_data->pid), &status, WNOHANG);
-       if(!rc)
-       {
-               wxLogDebug(wxT("Mach port was invalidated, but process hasn't terminated!"));
-               return;
-       }
-       if((rc != -1) && WIFEXITED(status))
-               proc_data->exitcode = WEXITSTATUS(status);
-       else
-               proc_data->exitcode = -1;
-       wxHandleProcessTermination(proc_data);
+    wxEndProcessData *proc_data = (wxEndProcessData*)data;
+    wxLogDebug(wxT("Process ended"));
+    int status = 0;
+    int rc = waitpid(abs(proc_data->pid), &status, WNOHANG);
+    if(!rc)
+    {
+       wxLogDebug(wxT("Mach port was invalidated, but process hasn't terminated!"));
+       return;
+    }
+    if((rc != -1) && WIFEXITED(status))
+       proc_data->exitcode = WEXITSTATUS(status);
+    else
+       proc_data->exitcode = -1;
+    wxHandleProcessTermination(proc_data);
 }
 
 int wxAddProcessCallbackForPid(wxEndProcessData *proc_data, int pid)
@@ -69,7 +73,7 @@ int wxAddProcessCallbackForPid(wxEndProcessData *proc_data, int pid)
         return -1;
     }
     CFMachPortContext termcb_contextinfo;
-    termcb_contextinfo.version = NULL;
+    termcb_contextinfo.version = 0;
     termcb_contextinfo.info = (void*)proc_data;
     termcb_contextinfo.retain = NULL;
     termcb_contextinfo.release = NULL;
@@ -109,3 +113,11 @@ int wxAddProcessCallbackForPid(wxEndProcessData *proc_data, int pid)
     return 0;
 }
 
+// NOTE: This doens't really belong here but this was a handy file to
+// put it in because it's already compiled for wxCocoa and wxMac GUI lib.
+static wxStandardPathsCF gs_stdPaths;
+wxStandardPathsBase& wxGUIAppTraits::GetStandardPaths()
+{
+    return gs_stdPaths;
+}
+