Suppress error output from Unix system information functions.

Redirect stderr to /dev/null in wxGetCommandOutput() to avoid errors from the
shell if the command we're trying to run doesn't exist.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73681 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2013-03-19 02:55:31 +00:00
parent 7f4f8a7889
commit 8ea079b33e

View File

@ -844,11 +844,16 @@ wxString wxGetUserHome( const wxString &user )
// the trailing newline
static wxString wxGetCommandOutput(const wxString &cmd)
{
FILE *f = popen(cmd.ToAscii(), "r");
// Suppress stderr from the shell to avoid outputting errors if the command
// doesn't exist.
FILE *f = popen((cmd + "2>/dev/null").ToAscii(), "r");
if ( !f )
{
wxLogSysError(wxT("Executing \"%s\" failed"), cmd.c_str());
return wxEmptyString;
// Notice that this doesn't happen simply if the command doesn't exist,
// but only in case of some really catastrophic failure inside popen()
// so we should really notify the user about this as this is not normal.
wxLogSysError(wxT("Executing \"%s\" failed"), cmd);
return wxString();
}
wxString s;