]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/utilsexc.cpp
copying as much values from the dc as possible
[wxWidgets.git] / src / mac / carbon / utilsexc.cpp
index b842d08e90f5d6c57449dea938df4c6a321f68c0..6c82d0ca87310800d3ca616ce6007a5ad4ca6933 100644 (file)
@@ -1,28 +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/wxprec.h"
+#ifndef WX_PRECOMP
+    #include "wx/log.h"
+    #include "wx/utils.h"
+#endif //ndef WX_PRECOMP
 
-#include "wx/utils.h"
+#ifndef __DARWIN__
 
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
+#include "wx/mac/private.h"
+#include "LaunchServices.h"
 
-#define wxEXECUTE_WIN_MESSAGE 10000
-
-long wxExecute(const wxString& command, bool sync, wxProcess *handler)
+long wxExecute(const wxString& command, int flags, wxProcess *WXUNUSED(handler))
 {
-    // TODO
-    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 //ndef __DARWIN__
+