don't give empty message box if Parse(FALSE) was called and there was --help on the cmd line
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@17058 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -850,14 +850,23 @@ int wxCmdLineParser::Parse(bool showUsage)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !ok && (errorMsg.length() != 0 || helpRequested) )
|
// if there was an error during parsing the command line, show this error
|
||||||
|
// and also the usage message if it had been requested
|
||||||
|
if ( !ok && (!errorMsg.empty() || (helpRequested && showUsage)) )
|
||||||
{
|
{
|
||||||
wxString usage;
|
|
||||||
wxMessageOutput* msgOut = wxMessageOutput::Get();
|
wxMessageOutput* msgOut = wxMessageOutput::Get();
|
||||||
wxASSERT(msgOut);
|
|
||||||
if ( showUsage ) usage = GetUsageString();
|
|
||||||
if ( msgOut )
|
if ( msgOut )
|
||||||
|
{
|
||||||
|
wxString usage;
|
||||||
|
if ( showUsage )
|
||||||
|
usage = GetUsageString();
|
||||||
|
|
||||||
msgOut->Printf( wxT("%s%s"), usage.c_str(), errorMsg.c_str() );
|
msgOut->Printf( wxT("%s%s"), usage.c_str(), errorMsg.c_str() );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
wxFAIL_MSG( _T("no wxMessageOutput object?") );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return ok ? 0 : helpRequested ? -1 : 1;
|
return ok ? 0 : helpRequested ? -1 : 1;
|
||||||
@@ -869,10 +878,15 @@ int wxCmdLineParser::Parse(bool showUsage)
|
|||||||
|
|
||||||
void wxCmdLineParser::Usage()
|
void wxCmdLineParser::Usage()
|
||||||
{
|
{
|
||||||
wxString usage = GetUsageString();
|
|
||||||
wxMessageOutput* msgOut = wxMessageOutput::Get();
|
wxMessageOutput* msgOut = wxMessageOutput::Get();
|
||||||
if ( msgOut )
|
if ( msgOut )
|
||||||
msgOut->Printf( wxT("%s"), usage.c_str() );
|
{
|
||||||
|
msgOut->Printf( wxT("%s"), GetUsageString().c_str() );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
wxFAIL_MSG( _T("no wxMessageOutput object?") );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
wxString wxCmdLineParser::GetUsageString()
|
wxString wxCmdLineParser::GetUsageString()
|
||||||
@@ -893,7 +907,7 @@ wxString wxCmdLineParser::GetUsageString()
|
|||||||
wxString usage;
|
wxString usage;
|
||||||
wxArrayString namesOptions, descOptions;
|
wxArrayString namesOptions, descOptions;
|
||||||
|
|
||||||
if ( !!m_data->m_logo )
|
if ( !m_data->m_logo.empty() )
|
||||||
{
|
{
|
||||||
usage << m_data->m_logo << _T('\n');
|
usage << m_data->m_logo << _T('\n');
|
||||||
}
|
}
|
||||||
@@ -1029,9 +1043,17 @@ static wxString GetTypeName(wxCmdLineParamType type)
|
|||||||
wxFAIL_MSG( _T("unknown option type") );
|
wxFAIL_MSG( _T("unknown option type") );
|
||||||
// still fall through
|
// still fall through
|
||||||
|
|
||||||
case wxCMD_LINE_VAL_STRING: s = _("str"); break;
|
case wxCMD_LINE_VAL_STRING:
|
||||||
case wxCMD_LINE_VAL_NUMBER: s = _("num"); break;
|
s = _("str");
|
||||||
case wxCMD_LINE_VAL_DATE: s = _("date"); break;
|
break;
|
||||||
|
|
||||||
|
case wxCMD_LINE_VAL_NUMBER:
|
||||||
|
s = _("num");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case wxCMD_LINE_VAL_DATE:
|
||||||
|
s = _("date");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return s;
|
return s;
|
||||||
@@ -1094,7 +1116,7 @@ static wxString GetLongOptionName(const wxChar *p)
|
|||||||
|
|
||||||
In particular, to pass a single argument containing a space to the program
|
In particular, to pass a single argument containing a space to the program
|
||||||
it should be quoted:
|
it should be quoted:
|
||||||
|
|
||||||
myprog.exe foo bar -> argc = 3, argv[1] = "foo", argv[2] = "bar"
|
myprog.exe foo bar -> argc = 3, argv[1] = "foo", argv[2] = "bar"
|
||||||
myprog.exe "foo bar" -> argc = 2, argv[1] = "foo bar"
|
myprog.exe "foo bar" -> argc = 2, argv[1] = "foo bar"
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user