X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5d553c56c979f9a9817282795bc563c3c16e5cdc..61e6a2ab5e3e1de051c3db492219627c368141f1:/src/mac/corefoundation/utilsexc_cf.cpp diff --git a/src/mac/corefoundation/utilsexc_cf.cpp b/src/mac/corefoundation/utilsexc_cf.cpp index 8ab34dd12b..12f26671c0 100644 --- a/src/mac/corefoundation/utilsexc_cf.cpp +++ b/src/mac/corefoundation/utilsexc_cf.cpp @@ -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 ///////////////////////////////////////////////////////////////////////////// @@ -16,6 +16,10 @@ #include "wx/utils.h" #endif //ndef WX_PRECOMP #include "wx/unix/execute.h" +#include "wx/stdpaths.h" +#include "wx/apptrait.h" + + #include #include @@ -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; +} +