Doc fix and SetArguments implementation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8152 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -196,7 +196,7 @@ application-specific text before the explanation given by
|
||||
|
||||
\membersection{Parsing command line}\label{wxcmdlineparserparsing}
|
||||
|
||||
After the command line description was constructed and the desiredoptions were
|
||||
After the command line description was constructed and the desired options were
|
||||
set, you can finally call \helpref{Parse}{wxcmdlineparserparse} method.
|
||||
It returns $0$ if the command line was correct and was parsed, $-1$ if the help
|
||||
option was specified (this is a separate case as, normally, the program will
|
||||
@@ -231,8 +231,7 @@ command line or FALSE if they were not specified.
|
||||
\func{}{wxCmdLineParser}{\void}
|
||||
|
||||
Default constructor. You must use
|
||||
\helpref{SetCmdLine}{wxcmdlineparsersetcmdlineargc} or
|
||||
\helpref{SetCmdLinelater.}{wxcmdlineparsersetcmdlinestr} later.
|
||||
\helpref{SetCmdLine}{wxcmdlineparsersetcmdlineargc} later.
|
||||
|
||||
\membersection{wxCmdLineParser::wxCmdLineParser}\label{wxcmdlineparserwxcmdlineparserargc}
|
||||
|
||||
|
@@ -190,12 +190,50 @@ void wxCmdLineParserData::SetArguments(int argc, char **argv)
|
||||
}
|
||||
}
|
||||
|
||||
void wxCmdLineParserData::SetArguments(const wxString& WXUNUSED(cmdline))
|
||||
void wxCmdLineParserData::SetArguments(const wxString& cmdLine)
|
||||
{
|
||||
// either use wxMSW wxApp::ConvertToStandardCommandArgs() or move its logic
|
||||
// here and use this method from it - but don't duplicate the code
|
||||
m_arguments.Empty();
|
||||
|
||||
wxFAIL_MSG(_T("TODO"));
|
||||
m_arguments.Add(wxTheApp->GetAppName());
|
||||
|
||||
// Break up string
|
||||
// Treat strings enclosed in double-quotes as single arguments
|
||||
int i = 0;
|
||||
int len = cmdLine.Length();
|
||||
while (i < len)
|
||||
{
|
||||
// Skip whitespace
|
||||
while ((i < len) && wxIsspace(cmdLine.GetChar(i)))
|
||||
i ++;
|
||||
|
||||
if (i < len)
|
||||
{
|
||||
if (cmdLine.GetChar(i) == wxT('"')) // We found the start of a string
|
||||
{
|
||||
i ++;
|
||||
int first = i;
|
||||
while ((i < len) && (cmdLine.GetChar(i) != wxT('"')))
|
||||
i ++;
|
||||
|
||||
wxString arg(cmdLine.Mid(first, (i - first)));
|
||||
|
||||
m_arguments.Add(arg);
|
||||
|
||||
if (i < len)
|
||||
i ++; // Skip past 2nd quote
|
||||
}
|
||||
else // Unquoted argument
|
||||
{
|
||||
int first = i;
|
||||
while ((i < len) && !wxIsspace(cmdLine.GetChar(i)))
|
||||
i ++;
|
||||
|
||||
wxString arg(cmdLine.Mid(first, (i - first)));
|
||||
|
||||
m_arguments.Add(arg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int wxCmdLineParserData::FindOption(const wxString& name)
|
||||
|
Reference in New Issue
Block a user