X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/31d560bf7dfff4735cefe32e2e62222b5e694665..80a779275ae04443c568dca919adb26cf6f5002c:/src/mac/carbon/utilsexc.cpp diff --git a/src/mac/carbon/utilsexc.cpp b/src/mac/carbon/utilsexc.cpp index d6553a7531..6c82d0ca87 100644 --- a/src/mac/carbon/utilsexc.cpp +++ b/src/mac/carbon/utilsexc.cpp @@ -1,42 +1,43 @@ ///////////////////////////////////////////////////////////////////////////// // Name: utilsexec.cpp // Purpose: Execution-related utilities -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 +// Author: Stefan Csomor +// Modified by: +// Created: 1998-01-01 // RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence +// Copyright: (c) Stefan Csomor +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation -#endif - -#include "wx/utils.h" -#ifdef __DARWIN__ -#include "wx/unix/execute.h" -#endif - -#include -#include -#include +#include "wx/wxprec.h" +#ifndef WX_PRECOMP + #include "wx/log.h" + #include "wx/utils.h" +#endif //ndef WX_PRECOMP #ifndef __DARWIN__ -#define wxEXECUTE_WIN_MESSAGE 10000 -long wxExecute(const wxString& command, int flags, wxProcess *handler) -{ - // TODO - wxFAIL_MSG( _T("wxExecute() not yet implemented") ); - return 0; -} -#endif +#include "wx/mac/private.h" +#include "LaunchServices.h" -#ifdef __DARWIN__ -int wxAddProcessCallback(wxEndProcessData *proc_data, int fd) +long wxExecute(const wxString& command, int flags, wxProcess *WXUNUSED(handler)) { - wxFAIL_MSG( _T("wxAddProcessCallback() not yet implemented") ); - return 0; + wxASSERT_MSG( flags == wxEXEC_ASYNC, + wxT("wxExecute: Only wxEXEC_ASYNC is supported") ); + + FSRef fsRef ; + OSErr err = noErr ; + err = wxMacPathToFSRef( command , &fsRef ) ; + if ( noErr == err ) + { + err = LSOpenFSRef( &fsRef , NULL ) ; + } + + // 0 means execution failed. Returning non-zero is a PID, but not + // on Mac where PIDs are 64 bits and won't fit in a long, so we + // return a dummy value for now. + return ( err == noErr ) ? -1 : 0; } -#endif + +#endif //ndef __DARWIN__ +