X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/909b4f08a132c12a6a70959edd2a6e1aebf4497d..a8cb1a4947bbbf5e18ce52448f4c3bb4cff4daee:/src/os2/utilsexc.cpp?ds=sidebyside diff --git a/src/os2/utilsexc.cpp b/src/os2/utilsexc.cpp index 1ebf118034..20d73e6f90 100644 --- a/src/os2/utilsexc.cpp +++ b/src/os2/utilsexc.cpp @@ -6,7 +6,7 @@ // 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". @@ -25,13 +25,19 @@ #include "wx/os2/private.h" -#define INCL_DOSPROCESS -#define INCL_DOSERRORS -#define INCL_DOS -#include +#define PURE_32 +#ifndef __EMX__ + #include + #ifndef __WATCOMC__ + #include + #include + #endif +#endif #include -#include +#ifdef __EMX__ +#include +#endif #include #include @@ -42,6 +48,7 @@ #include #include + // this message is sent when the process we're waiting for terminates #define wxWM_PROC_TERMINATED (WM_USER + 10000) @@ -55,25 +62,23 @@ struct wxExecuteData public: ~wxExecuteData() { - cout << "Closing thread: " << endl; +// cout << "Closing thread: " << endl; 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; +// cout << "Executing thread: " << endl; ulRc = ::DosWaitChild( DCWA_PROCESSTREE ,DCWW_NOWAIT @@ -83,7 +88,7 @@ static ULONG wxExecuteThread( ); if (ulRc != NO_ERROR) { - wxLogLastError("DosWaitChild"); + wxLogLastError(wxT("DosWaitChild")); } delete pData; return 0; @@ -91,12 +96,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) { @@ -125,17 +128,13 @@ 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) { - if (rCommand.IsEmpty()) + if (rCommand.empty()) { - cout << "empty command in wxExecute." << endl; +// cout << "empty command in wxExecute." << endl; return 0; } @@ -145,12 +144,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; @@ -168,14 +165,14 @@ long wxExecute( wxLogSysError(_("Execution of command '%s' failed with error: %ul"), rCommand.c_str(), rc); return 0; } - cout << "Executing: " << rCommand.c_str() << endl; +// cout << "Executing: " << rCommand.c_str() << endl; // Alloc data wxExecuteData* pData = new wxExecuteData; 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; @@ -194,13 +191,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 @@ -222,7 +219,7 @@ long wxExecute( long wxExecute( char** ppArgv -, bool bSync +, int flags , wxProcess* pHandler ) { @@ -230,27 +227,28 @@ long wxExecute( while (*ppArgv != NULL) { - sCommand << *ppArgv++ << ' '; + wxString sArg((wxChar*)(*ppArgv++)); + + + sCommand << sArg.c_str() << ' '; } sCommand.RemoveLast(); return wxExecute( sCommand - ,bSync + ,flags ,pHandler ); } -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; - unsigned long ulBuffer; - unsigned long* pulTotalAvail; + unsigned char* zBuffer = NULL; + unsigned long ulBuffer = 256; + unsigned long* pulTotalAvail = NULL; NetBios32GetInfo( (const unsigned char*)zServer ,(const unsigned char*)zComputer @@ -262,9 +260,8 @@ bool wxGetFullHostName( strncpy(zBuf, zComputer, nMaxSize); zBuf[nMaxSize] = _T('\0'); #else - strcpy(zBuf, "noname"); + wxUnusedVar(nMaxSize); + strcpy((char*)zBuf, "noname"); #endif - return *zBuf ? TRUE : FALSE; - return TRUE; + return *zBuf ? true : false; } -