X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/40f00746d2d77955a2e21d2c17c864be3218ef4c..eecc043f6ccbe6cc9dbfe44aaff3e05382edac9b:/src/unix/utilsunx.cpp diff --git a/src/unix/utilsunx.cpp b/src/unix/utilsunx.cpp index 3688288505..73148ac613 100644 --- a/src/unix/utilsunx.cpp +++ b/src/unix/utilsunx.cpp @@ -473,7 +473,7 @@ long wxExecute(wxChar **argv, int flags, wxProcess *process) while (argv[mb_argc]) { - wxWX2MBbuf mb_arg = wxConvertWX2MB(argv[mb_argc]); + wxWX2MBbuf mb_arg = wxSafeConvertWX2MB(argv[mb_argc]); mb_argv[mb_argc] = strdup(mb_arg); mb_argc++; } @@ -722,7 +722,7 @@ char *wxGetUserHome( const wxString &user ) } if ((ptr = wxGetenv(wxT("USER"))) != NULL || (ptr = wxGetenv(wxT("LOGNAME"))) != NULL) { - who = getpwnam(wxConvertWX2MB(ptr)); + who = getpwnam(wxSafeConvertWX2MB(ptr)); } // We now make sure the the user exists! @@ -736,7 +736,7 @@ char *wxGetUserHome( const wxString &user ) who = getpwnam (user.mb_str()); } - return wxConvertMB2WX(who ? who->pw_dir : 0); + return wxSafeConvertMB2WX(who ? who->pw_dir : 0); } // ---------------------------------------------------------------------------- @@ -787,7 +787,7 @@ static bool wxGetHostNameInternal(wxChar *buf, int sz) bool ok = uname(&uts) != -1; if ( ok ) { - wxStrncpy(buf, wxConvertMB2WX(uts.nodename), sz - 1); + wxStrncpy(buf, wxSafeConvertMB2WX(uts.nodename), sz - 1); buf[sz] = wxT('\0'); } #elif defined(HAVE_GETHOSTNAME) @@ -795,7 +795,7 @@ static bool wxGetHostNameInternal(wxChar *buf, int sz) bool ok = gethostname(cbuf, sz) != -1; if ( ok ) { - wxStrncpy(buf, wxConvertMB2WX(cbuf), sz - 1); + wxStrncpy(buf, wxSafeConvertMB2WX(cbuf), sz - 1); buf[sz] = wxT('\0'); } #else // no uname, no gethostname @@ -839,7 +839,7 @@ bool wxGetFullHostName(wxChar *buf, int sz) { if ( !wxStrchr(buf, wxT('.')) ) { - struct hostent *host = gethostbyname(wxConvertWX2MB(buf)); + struct hostent *host = gethostbyname(wxSafeConvertWX2MB(buf)); if ( !host ) { wxLogSysError(_("Cannot get the official hostname")); @@ -849,7 +849,7 @@ bool wxGetFullHostName(wxChar *buf, int sz) else { // the canonical name - wxStrncpy(buf, wxConvertMB2WX(host->h_name), sz); + wxStrncpy(buf, wxSafeConvertMB2WX(host->h_name), sz); } } //else: it's already a FQDN (BSD behaves this way) @@ -865,7 +865,7 @@ bool wxGetUserId(wxChar *buf, int sz) *buf = wxT('\0'); if ((who = getpwuid(getuid ())) != NULL) { - wxStrncpy (buf, wxConvertMB2WX(who->pw_name), sz - 1); + wxStrncpy (buf, wxSafeConvertMB2WX(who->pw_name), sz - 1); return true; } @@ -874,24 +874,23 @@ bool wxGetUserId(wxChar *buf, int sz) bool wxGetUserName(wxChar *buf, int sz) { +#ifdef HAVE_PW_GECOS struct passwd *who; *buf = wxT('\0'); if ((who = getpwuid (getuid ())) != NULL) { - // pw_gecos field in struct passwd is not standard -#ifdef HAVE_PW_GECOS char *comma = strchr(who->pw_gecos, ','); if (comma) *comma = '\0'; // cut off non-name comment fields - wxStrncpy (buf, wxConvertMB2WX(who->pw_gecos), sz - 1); -#else // !HAVE_PW_GECOS - wxStrncpy (buf, wxConvertMB2WX(who->pw_name), sz - 1); -#endif // HAVE_PW_GECOS/!HAVE_PW_GECOS + wxStrncpy (buf, wxSafeConvertMB2WX(who->pw_gecos), sz - 1); return true; } return false; +#else // !HAVE_PW_GECOS + return wxGetUserId(buf, sz); +#endif // HAVE_PW_GECOS/!HAVE_PW_GECOS } bool wxIsPlatform64Bit()