always return wxString from wxGetUserHome() instead of char */wxWCharBuffer depending on the build

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49064 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2007-10-06 12:38:15 +00:00
parent 987bb1c66b
commit 14d6351382
8 changed files with 58 additions and 75 deletions

View File

@@ -394,55 +394,45 @@ const wxChar* wxGetHomeDir(
return rStrDir.c_str();
}
// Hack for OS/2
wxChar* wxGetUserHome ( const wxString &rUser )
wxString wxGetUserHome ( const wxString &rUser )
{
wxChar* zHome;
wxString sUser1(rUser);
wxString sUser(rUser);
wxString home;
wxChar *wxBuffer = new wxChar[256];
#ifndef __EMX__
if (!sUser1.empty())
if (!sUser.empty())
{
wxChar zTmp[64];
const wxString currentUser = wxGetUserId();
if (wxGetUserId( zTmp
,sizeof(zTmp)/sizeof(char)
))
// Guests belong in the temp dir
if ( currentUser == "annonymous" )
{
// 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)
delete[] wxBuffer;
return *zHome ? zHome : (wxChar*)_T("\\");
}
if (wxStricmp(zTmp, WXSTRINGCAST sUser1) == 0)
sUser1 = wxEmptyString;
zHome = wxGetenv(_T("TMP"));
if ( !zHome )
zHome = wxGetenv(_T("TMPDIR"));
if ( !zHome )
zHome = wxGetenv(_T("TEMP"));
if ( zHome && *zHome )
return zHome;
}
if ( sUser == currentUser )
sUser.clear();
}
#endif
if (sUser1.empty())
if (sUser.empty())
{
if ((zHome = wxGetenv(_T("HOME"))) != NULL)
{
wxStrcpy(wxBuffer, zHome);
wxUnix2DosFilename(wxBuffer);
#if wxUSE_UNICODE
wxWCharBuffer retBuffer (wxBuffer);
delete[] wxBuffer;
return retBuffer;
#else
wxStrcpy(zHome, wxBuffer);
delete[] wxBuffer;
return zHome;
#endif
home = zHome;
home.Replace("/", "\\");
}
}
delete[] wxBuffer;
return (wxChar*)wxEmptyString; // No home known!
return home;
}
bool wxGetDiskSpace(const wxString& path,