From fb19fbabbca0e1e1e8fa4642276e2aa0d596c63f Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Tue, 10 May 2005 05:44:10 +0000 Subject: [PATCH] applying patch 1188918 git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@34005 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/mac/corefoundation/hid.cpp | 17 +++++++++++------ src/unix/utilsunx.cpp | 6 +++--- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/mac/corefoundation/hid.cpp b/src/mac/corefoundation/hid.cpp index b19859b657..d5578c28f7 100644 --- a/src/mac/corefoundation/hid.cpp +++ b/src/mac/corefoundation/hid.cpp @@ -588,6 +588,9 @@ long wxMacExecute(wxChar **argv, int flags, wxProcess *process) { + const long errorCode = ((flags & wxEXEC_SYNC) ? -1 : 0); + const long successCode = ((flags & wxEXEC_SYNC) ? 0 : -1); // fake PID + CFIndex cfiCount = 0; //get count for(wxChar** argvcopy = argv; *argvcopy != NULL ; ++argvcopy) @@ -598,7 +601,7 @@ long wxMacExecute(wxChar **argv, if(cfiCount == 0) //no file to launch? { wxLogDebug(wxT("wxMacExecute No file to launch!")); - return -1; + return errorCode ; } CFURLRef cfurlApp = CFURLCreateWithString( @@ -612,7 +615,7 @@ long wxMacExecute(wxChar **argv, { wxLogDebug(wxT("wxMacExecute Bad bundle")); CFRelease(cfurlApp); - return -1; + return errorCode ; } @@ -623,14 +626,15 @@ long wxMacExecute(wxChar **argv, if(dwBundleType != 'APPL') { CFRelease(cfurlApp); - return -1; + return errorCode ; } // // We have a good bundle - so let's launch it! // - CFMutableArrayRef cfaFiles = CFArrayCreateMutable(kCFAllocatorDefault, cfiCount - 1, NULL); + CFMutableArrayRef cfaFiles = + CFArrayCreateMutable(kCFAllocatorDefault, cfiCount - 1, &kCFTypeArrayCallBacks); wxASSERT(cfaFiles); @@ -656,6 +660,7 @@ long wxMacExecute(wxChar **argv, cfaFiles, cfurlCurrentFile ); + CFRelease(cfurlCurrentFile); // array has retained it } } @@ -677,9 +682,9 @@ long wxMacExecute(wxChar **argv, if(status != noErr) { wxLogDebug(wxString::Format(wxT("wxMacExecute ERROR: %d")), (int)status); - return -1; + return errorCode ; } - return 0; //success + return successCode; //success } #endif //__DARWIN__ diff --git a/src/unix/utilsunx.cpp b/src/unix/utilsunx.cpp index 33caa09fb5..4d670f4ea0 100644 --- a/src/unix/utilsunx.cpp +++ b/src/unix/utilsunx.cpp @@ -316,10 +316,10 @@ long wxExecute( const wxString& command, int flags, wxProcess *process ) long lRc; #if defined(__DARWIN__) // wxMacExecute only executes app bundles. - // It returns -1 if the target is not an app bundle, thus falling through - // to the regular wxExecute for non app bundles. + // It returns an error code if the target is not an app bundle, thus falling + // through to the regular wxExecute for non app bundles. lRc = wxMacExecute(argv, flags, process); - if( lRc != -1) + if( lRc != ((flags & wxEXEC_SYNC) ? -1 : 0)) return lRc; #endif -- 2.45.2