const wxChar* wxGetHomeDir( wxString *home )
{
- *home = wxGetUserHome( wxEmptyString );
+ *home = wxGetUserHome();
wxString tmp;
if ( home->empty() )
*home = wxT("/");
return home->c_str();
}
-#if wxUSE_UNICODE
-const wxMB2WXbuf wxGetUserHome( const wxString &user )
-#else // just for binary compatibility -- there is no 'const' here
-char *wxGetUserHome( const wxString &user )
-#endif
+wxString wxGetUserHome( const wxString &user )
{
struct passwd *who = (struct passwd *) NULL;
if ((ptr = wxGetenv(wxT("HOME"))) != NULL)
{
-#if wxUSE_UNICODE
- wxWCharBuffer buffer( ptr );
- return buffer;
-#else
return ptr;
-#endif
}
- if ((ptr = wxGetenv(wxT("USER"))) != NULL || (ptr = wxGetenv(wxT("LOGNAME"))) != NULL)
+
+ if ((ptr = wxGetenv(wxT("USER"))) != NULL ||
+ (ptr = wxGetenv(wxT("LOGNAME"))) != NULL)
{
who = getpwnam(wxSafeConvertWX2MB(ptr));
}
- // We now make sure the the user exists!
- if (who == NULL)
+ // make sure the user exists!
+ if ( !who )
{
who = getpwuid(getuid());
}
if ( !value )
{
#ifdef HAVE_UNSETENV
- return unsetenv(variable.mb_str()) == 0;
+ // don't test unsetenv() return value: it's void on some systems (at
+ // least Darwin)
+ unsetenv(variable.mb_str());
+ return true;
#else
value = ""; // we can't pass NULL to setenv()
#endif