/////////////////////////////////////////////////////////////////////////////
// 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>
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)
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;
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;
+}
+