void SetArguments(int argc, char **argv);
#if wxUSE_UNICODE
void SetArguments(int argc, wxChar **argv);
+ void SetArguments(int argc, const wxCmdLineArgsArray& argv);
#endif // wxUSE_UNICODE
void SetArguments(const wxString& cmdline);
}
}
+void wxCmdLineParserData::SetArguments(int WXUNUSED(argc),
+ const wxCmdLineArgsArray& argv)
+{
+ m_arguments = argv.GetArguments();
+}
+
#endif // wxUSE_UNICODE
void wxCmdLineParserData::SetArguments(const wxString& cmdLine)
m_data->SetArguments(argc, argv);
}
+void wxCmdLineParser::SetCmdLine(int argc, const wxCmdLineArgsArray& argv)
+{
+ m_data->SetArguments(argc, argv);
+}
+
#endif // wxUSE_UNICODE
void wxCmdLineParser::SetCmdLine(const wxString& cmdline)
switch ( desc->kind )
{
case wxCMD_LINE_SWITCH:
- AddSwitch(desc->shortName, desc->longName, desc->description,
+ AddSwitch(desc->shortName, desc->longName,
+ wxGetTranslation(desc->description),
desc->flags);
break;
case wxCMD_LINE_OPTION:
- AddOption(desc->shortName, desc->longName, desc->description,
+ AddOption(desc->shortName, desc->longName,
+ wxGetTranslation(desc->description),
desc->type, desc->flags);
break;
case wxCMD_LINE_PARAM:
- AddParam(desc->description, desc->type, desc->flags);
+ AddParam(wxGetTranslation(desc->description),
+ desc->type, desc->flags);
break;
default:
}
else // it's an option. not a switch
{
- // get the value
- if ( isLong )
+ switch ( (*p).GetValue() )
{
- if ( *p++ != _T('=') )
- {
- errorMsg << wxString::Format(_("Option '%s' requires a value, '=' expected."), name.c_str())
- << _T('\n');
-
- ok = false;
- }
- }
- else // short option
- {
- switch ( (*p).GetValue() )
- {
- case _T('='):
- case _T(':'):
- // the value follows
- ++p;
- break;
-
- case 0:
- // the value is in the next argument
- if ( ++n == count )
- {
- // ... but there is none
- errorMsg << wxString::Format(_("Option '%s' requires a value."),
- name.c_str())
- << _T('\n');
-
- ok = false;
- }
- else
- {
- // ... take it from there
- p = m_data->m_arguments[n].begin();
- end = m_data->m_arguments[n].end();
- }
- break;
+ case _T('='):
+ case _T(':'):
+ // the value follows
+ ++p;
+ break;
- default:
- // the value is right here: this may be legal or
- // not depending on the option style
- if ( opt.flags & wxCMD_LINE_NEEDS_SEPARATOR )
- {
- errorMsg << wxString::Format(_("Separator expected after the option '%s'."),
- name.c_str())
- << _T('\n');
+ case 0:
+ // the value is in the next argument
+ if ( ++n == count )
+ {
+ // ... but there is none
+ errorMsg << wxString::Format(_("Option '%s' requires a value."),
+ name.c_str())
+ << _T('\n');
+
+ ok = false;
+ }
+ else
+ {
+ // ... take it from there
+ p = m_data->m_arguments[n].begin();
+ end = m_data->m_arguments[n].end();
+ }
+ break;
- ok = false;
- }
- }
+ default:
+ // the value is right here: this may be legal or
+ // not depending on the option style
+ if ( opt.flags & wxCMD_LINE_NEEDS_SEPARATOR )
+ {
+ errorMsg << wxString::Format(_("Separator expected after the option '%s'."),
+ name.c_str())
+ << _T('\n');
+
+ ok = false;
+ }
}
if ( ok )