X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e8fd750b53e1fa51298d8c17495cdac3363841f0..a02dc3e3ff6a99000b29eeac3be32bcf6dd776da:/src/os2/utils.cpp diff --git a/src/os2/utils.cpp b/src/os2/utils.cpp index c82dfc9a5a..34cb8a977f 100644 --- a/src/os2/utils.cpp +++ b/src/os2/utils.cpp @@ -24,7 +24,11 @@ #include "wx/intl.h" #include +#ifdef __EMX__ +#include +#else #include +#endif #include "wx/log.h" @@ -41,9 +45,11 @@ #define INCL_GPI #include #define PURE_32 +#ifndef __EMX__ #include #include #include +#endif static const wxChar WX_SECTION[] = _T("wxWindows"); static const wxChar eHOSTNAME[] = _T("HostName"); @@ -65,9 +71,9 @@ bool wxGetHostName( 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 @@ -104,10 +110,12 @@ bool wxGetUserId( , int nType ) { +#ifndef __EMX__ long lrc; // UPM procs return 0 on success lrc = U32ELOCU((unsigned char*)zBuf, (unsigned long *)&nType); if (lrc == 0) return TRUE; +#endif return FALSE; } @@ -197,7 +205,7 @@ bool wxShell( // Get free memory in bytes, or -1 if cannot determine amount (e.g. on UNIX) long wxGetFreeMemory() { - void* pMemptr; + void* pMemptr = NULL; ULONG lSize; ULONG lMemFlags; APIRET rc; @@ -265,6 +273,7 @@ void wxError( , const wxString& rTitle ) { + wxBuffer = new wxChar[256]; wxSprintf(wxBuffer, "%s\nContinue?", WXSTRINGCAST rMsg); if (::WinMessageBox( HWND_DESKTOP ,NULL @@ -273,6 +282,7 @@ void wxError( ,0 ,MB_ICONEXCLAMATION | MB_YESNO ) == MBID_YES) + delete[] wxBuffer; wxExit(); } @@ -334,8 +344,8 @@ bool wxWriteResource( , const wxString& rFile ) { - HAB hab; - HINI hIni; + HAB hab = 0; + HINI hIni = 0; if (rFile != "") { @@ -416,8 +426,8 @@ bool wxGetResource( , const wxString& rFile ) { - HAB hab; - HINI hIni; + HAB hab = 0; + HINI hIni = 0; wxChar zDefunkt[] = _T("$$default"); char zBuf[1000]; @@ -469,6 +479,8 @@ bool wxGetResource( ) { wxChar* zStr = NULL; + + zStr = new wxChar[1000]; bool bSucc = wxGetResource( rSection ,rEntry ,(wxChar **)&zStr @@ -481,7 +493,11 @@ bool wxGetResource( delete[] zStr; return TRUE; } - else return FALSE; + else + { + delete[] zStr; + return FALSE; + } } bool wxGetResource( @@ -492,6 +508,8 @@ bool wxGetResource( ) { wxChar* zStr = NULL; + + zStr = new wxChar[1000]; bool bSucc = wxGetResource( rSection ,rEntry ,(wxChar **)&zStr @@ -504,7 +522,11 @@ bool wxGetResource( delete[] zStr; return TRUE; } - else return FALSE; + else + { + delete[] zStr; + return FALSE; + } } bool wxGetResource( @@ -515,6 +537,8 @@ bool wxGetResource( ) { wxChar* zStr = NULL; + + zStr = new wxChar[1000]; bool bSucc = wxGetResource( rSection ,rEntry ,(wxChar **)&zStr @@ -527,7 +551,11 @@ bool wxGetResource( delete[] zStr; return TRUE; } - else return FALSE; + else + { + delete[] zStr; + return FALSE; + } } #endif // wxUSE_RESOURCES @@ -603,6 +631,8 @@ wxChar* wxGetUserHome ( wxChar* zHome; wxString sUser1(rUser); + wxBuffer = new wxChar[256]; +#ifndef __EMX__ if (sUser1 != _T("")) { wxChar zTmp[64]; @@ -617,20 +647,27 @@ wxChar* wxGetUserHome ( if ((zHome = wxGetenv(_T("TMP"))) != NULL || (zHome = wxGetenv(_T("TMPDIR"))) != NULL || (zHome = wxGetenv(_T("TEMP"))) != NULL) + delete[] wxBuffer; return *zHome ? zHome : (wxChar*)_T("\\"); } if (wxStricmp(zTmp, WXSTRINGCAST sUser1) == 0) sUser1 = _T(""); } } +#endif if (sUser1 == _T("")) + { if ((zHome = wxGetenv(_T("HOME"))) != NULL) { wxStrcpy(wxBuffer, zHome); Unix2DosFilename(wxBuffer); - return wxBuffer; + wxStrcpy(zHome, wxBuffer); + delete[] wxBuffer; + return zHome; } - return NULL; // No home known! + } + delete[] wxBuffer; + return NULL; // No home known! } // Check whether this window wants to process messages, e.g. Stop button @@ -642,8 +679,8 @@ bool wxCheckForInterrupt( if(pWnd) { QMSG vMsg; - HAB hab; - HWND hwndFilter; + HAB hab = 0; + HWND hwndFilter = NULLHANDLE; HWND hwndWin= (HWND) pWnd->GetHWND(); while(::WinPeekMsg(hab, &vMsg, hwndFilter, 0, 0, PM_REMOVE)) @@ -711,12 +748,16 @@ void wxDisplaySize( { HPS hpsScreen; HDC hdcScreen; + LONG lWidth; + LONG lHeight; hpsScreen = ::WinGetScreenPS(HWND_DESKTOP); hdcScreen = ::GpiQueryDevice(hpsScreen); - ::DevQueryCaps(hdcScreen, CAPS_WIDTH, 1L, (PLONG)pWidth); - ::DevQueryCaps(hdcScreen, CAPS_HEIGHT, 1L, (PLONG)pHeight); + ::DevQueryCaps(hdcScreen, CAPS_WIDTH, 1L, &lWidth); + ::DevQueryCaps(hdcScreen, CAPS_HEIGHT, 1L, &lHeight); DevCloseDC(hdcScreen); + *pWidth = (int)lWidth; + *pHeight = (int)lHeight; } bool wxDirExists(