detect if there was an error in standard GTK+ options processing and exit in such case
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45592 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
f7a3c9be64
commit
b045eff215
@ -456,6 +456,38 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
|
|||||||
this->argc = argc;
|
this->argc = argc;
|
||||||
this->argv = argv;
|
this->argv = argv;
|
||||||
|
|
||||||
|
if ( m_traits )
|
||||||
|
{
|
||||||
|
// if there are still GTK+ standard options unparsed in the command
|
||||||
|
// line, it means that they were not syntactically correct and GTK+
|
||||||
|
// already printed a warning on the command line and we should now
|
||||||
|
// exit:
|
||||||
|
wxArrayString opt, desc;
|
||||||
|
m_traits->GetStandardCmdLineOptions(opt, desc);
|
||||||
|
|
||||||
|
for ( int i = 0; i < argc; i++ )
|
||||||
|
{
|
||||||
|
// leave just the names of the options with values
|
||||||
|
const wxString str(wxString(argv[i]).BeforeFirst('='));
|
||||||
|
|
||||||
|
for ( size_t j = 0; j < opt.size(); j++ )
|
||||||
|
{
|
||||||
|
// remove the leading spaces from the option string as it does
|
||||||
|
// have them
|
||||||
|
if ( opt[j].Trim(false).BeforeFirst('=') == str )
|
||||||
|
{
|
||||||
|
// a GTK+ option can be left on the command line only if
|
||||||
|
// there was an error in (or before, in another standard
|
||||||
|
// options) it, so abort, just as we do if incorrect
|
||||||
|
// program option is given
|
||||||
|
wxLogError(_("Invalid GTK+ command line option, use \"%s --help\""),
|
||||||
|
argv[0]);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ( !init_result )
|
if ( !init_result )
|
||||||
{
|
{
|
||||||
wxLogError(_("Unable to initialize GTK+, is DISPLAY set properly?"));
|
wxLogError(_("Unable to initialize GTK+, is DISPLAY set properly?"));
|
||||||
|
Loading…
Reference in New Issue
Block a user