X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/29d83fc1e5d41ef6adb7984127ce5dc013b09815..404b319a85dadd7decf7a5a5331020520031a41c:/src/os2/utilsexc.cpp diff --git a/src/os2/utilsexc.cpp b/src/os2/utilsexc.cpp index c13b9b3473..199781f7cf 100644 --- a/src/os2/utilsexc.cpp +++ b/src/os2/utilsexc.cpp @@ -1,35 +1,35 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: utilsexec.cpp +// Name: src/os2/utilsexec.cpp // Purpose: Various utilities // Author: David Webster // Modified by: // Created: 10/17/99 // RCS-ID: $Id$ // Copyright: (c) David Webster -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" #ifndef WX_PRECOMP -#include "wx/setup.h" -#include "wx/utils.h" -#include "wx/app.h" -#include "wx/intl.h" + #include "wx/utils.h" + #include "wx/app.h" + #include "wx/intl.h" + #include "wx/log.h" #endif -#include "wx/log.h" - #include "wx/process.h" #include "wx/os2/private.h" #define PURE_32 #ifndef __EMX__ -#include <upm.h> -#include <netcons.h> -#include <netbios.h> + #include <upm.h> + #ifndef __WATCOMC__ + #include <netcons.h> + #include <netbios.h> + #endif #endif #include <ctype.h> @@ -43,30 +43,6 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> -// -// already defined via nerror.h in app.h so undef them -// -#ifdef EEXIST -#undef EEXIST -#endif -#ifdef ENOENT -#undef ENOENT -#endif -#ifdef EMFILE -#undef EMFILE -#endif -#ifdef EINTR -#undef EINTR -#endif -#ifdef EINVAL -#undef EINVAL -#endif -#ifdef ENOMEM -#undef ENOMEM -#endif -#ifdef EACCES -#undef EACCES -#endif #include <errno.h> #include <stdarg.h> @@ -88,19 +64,17 @@ public: DosExit(EXIT_PROCESS, 0); } - HWND hWnd; // window to send wxWM_PROC_TERMINATED to [not used] - RESULTCODES vResultCodes; - wxProcess* pHandler; - ULONG ulExitCode; // the exit code of the process - bool bState; // set to FALSE when the process finishes + HWND hWnd; // window to send wxWM_PROC_TERMINATED to [not used] + RESULTCODES vResultCodes; + wxProcess* pHandler; + ULONG ulExitCode; // the exit code of the process + bool bState; // set to false when the process finishes }; -static ULONG wxExecuteThread( - wxExecuteData* pData -) +static ULONG wxExecuteThread(wxExecuteData* pData) { - ULONG ulRc; - PID vPidChild; + ULONG ulRc; + PID vPidChild; // cout << "Executing thread: " << endl; @@ -112,7 +86,7 @@ static ULONG wxExecuteThread( ); if (ulRc != NO_ERROR) { - wxLogLastError("DosWaitChild"); + wxLogLastError(wxT("DosWaitChild")); } delete pData; return 0; @@ -120,12 +94,10 @@ static ULONG wxExecuteThread( // window procedure of a hidden window which is created just to receive // the notification message when a process exits -MRESULT APIENTRY wxExecuteWindowCbk( - HWND hWnd -, ULONG ulMessage -, MPARAM wParam -, MPARAM lParam -) +MRESULT APIENTRY wxExecuteWindowCbk( HWND hWnd, + ULONG ulMessage, + MPARAM WXUNUSED(wParam), + MPARAM lParam) { if (ulMessage == wxWM_PROC_TERMINATED) { @@ -154,15 +126,12 @@ MRESULT APIENTRY wxExecuteWindowCbk( return 0; } -extern wxChar wxPanelClassName[]; - -long wxExecute( - const wxString& rCommand -, bool bSync -, wxProcess* pHandler -) +long wxExecute( const wxString& rCommand, + int flags, + wxProcess* pHandler, + const wxExecuteEnv *env) { - if (rCommand.IsEmpty()) + if (rCommand.empty()) { // cout << "empty command in wxExecute." << endl; return 0; @@ -174,12 +143,10 @@ long wxExecute( ULONG ulExecFlag; PSZ zArgs = NULL; PSZ zEnvs = NULL; - ULONG ulWindowId; APIRET rc; - PFNWP pOldProc; TID vTID; - if (bSync) + if (flags & wxEXEC_SYNC) ulExecFlag = EXEC_SYNC; else ulExecFlag = EXEC_ASYNCRESULT; @@ -190,7 +157,7 @@ long wxExecute( ,zArgs ,zEnvs ,&vResultCodes - ,(PSZ)rCommand.c_str() + ,rCommand.c_str() ); if (rc != NO_ERROR) { @@ -203,8 +170,8 @@ long wxExecute( pData->vResultCodes = vResultCodes; pData->hWnd = NULLHANDLE; - pData->bState = bSync; - if (bSync) + pData->bState = (flags & wxEXEC_SYNC) != 0; + if (flags & wxEXEC_SYNC) { wxASSERT_MSG(!pHandler, wxT("wxProcess param ignored for sync execution")); pData->pHandler = NULL; @@ -223,13 +190,13 @@ long wxExecute( ); if (rc != NO_ERROR) { - wxLogLastError("CreateThread in wxExecute"); + wxLogLastError(wxT("CreateThread in wxExecute")); delete pData; // the process still started up successfully... return vResultCodes.codeTerminate; } - if (!bSync) + if (!(flags & wxEXEC_SYNC)) { // return the pid // warning: don't exit your app unless you actively @@ -251,49 +218,29 @@ long wxExecute( long wxExecute( char** ppArgv -, bool bSync +, int flags , wxProcess* pHandler +, const wxExecuteEnv *env ) { wxString sCommand; while (*ppArgv != NULL) { - sCommand << *ppArgv++ << ' '; + wxString sArg((wxChar*)(*ppArgv++)); + + + sCommand << sArg.c_str() << ' '; } sCommand.RemoveLast(); return wxExecute( sCommand - ,bSync + ,flags ,pHandler + , env ); } -bool wxGetFullHostName( - wxChar* zBuf -, int nMaxSize -) +bool wxGetFullHostName( wxChar* zBuf, int nMaxSize) { -#if wxUSE_NET_API - char zServer[256]; - char zComputer[256]; - unsigned long ulLevel = 0; - unsigned char* zBuffer = NULL; - unsigned long ulBuffer = 256; - unsigned long* pulTotalAvail = NULL; - - NetBios32GetInfo( (const unsigned char*)zServer - ,(const unsigned char*)zComputer - ,ulLevel - ,zBuffer - ,ulBuffer - ,pulTotalAvail - ); - strncpy(zBuf, zComputer, nMaxSize); - zBuf[nMaxSize] = _T('\0'); -#else - strcpy(zBuf, "noname"); -#endif - return *zBuf ? TRUE : FALSE; - return TRUE; + return wxGetHostName( zBuf, nMaxSize ); } -