+ wxString& rStrDir = *pStr;
+
+ // OS/2 has no idea about home,
+ // so use the working directory instead?
+
+ // 256 was taken from os2def.h
+#ifndef MAX_PATH
+# define MAX_PATH 256
+#endif
+
+ char zDirName[256];
+ ULONG ulDirLen;
+
+ ::DosQueryCurrentDir(0, zDirName, &ulDirLen);
+ rStrDir = zDirName;
+ return rStrDir.c_str();
+}
+
+// Hack for OS/2
+wxChar* wxGetUserHome (
+ const wxString& rUser
+)
+{
+ wxChar* zHome;
+ wxString sUser1(rUser);
+
+ if (sUser1 != _T(""))
+ {
+ wxChar zTmp[64];
+
+ if (wxGetUserId( zTmp
+ ,sizeof(zTmp)/sizeof(char)
+ ))
+ {
+ // Guests belong in the temp dir
+ if (wxStricmp(zTmp, _T("annonymous")) == 0)
+ {
+ if ((zHome = wxGetenv(_T("TMP"))) != NULL ||
+ (zHome = wxGetenv(_T("TMPDIR"))) != NULL ||
+ (zHome = wxGetenv(_T("TEMP"))) != NULL)
+ return *zHome ? zHome : (wxChar*)_T("\\");
+ }
+ if (wxStricmp(zTmp, WXSTRINGCAST sUser1) == 0)
+ sUser1 = _T("");
+ }
+ }
+ if (sUser1 == _T(""))
+ if ((zHome = wxGetenv(_T("HOME"))) != NULL)
+ {
+ wxStrcpy(wxBuffer, zHome);
+ Unix2DosFilename(wxBuffer);
+ return wxBuffer;
+ }
+ return NULL; // No home known!