X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ff1ce99740964bffda6e8ee630ddf799d639cf69..3ae00f5b5756cb67631400628acc94dd23fe03d7:/src/common/cmdline.cpp diff --git a/src/common/cmdline.cpp b/src/common/cmdline.cpp index c1c1f2a530..12012e6807 100644 --- a/src/common/cmdline.cpp +++ b/src/common/cmdline.cpp @@ -17,10 +17,6 @@ // headers // ---------------------------------------------------------------------------- -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "cmdline.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -38,13 +34,13 @@ #include "wx/intl.h" #include "wx/app.h" #include "wx/dynarray.h" - #include "wx/filefn.h" #endif //WX_PRECOMP #include #include "wx/datetime.h" #include "wx/msgout.h" +#include "wx/filename.h" // ---------------------------------------------------------------------------- // private functions @@ -124,7 +120,7 @@ struct wxCmdLineOption void SetStrVal(const wxString& val) { Check(wxCMD_LINE_VAL_STRING); m_strVal = val; m_hasVal = true; } #if wxUSE_DATETIME - void SetDateVal(const wxDateTime val) + void SetDateVal(const wxDateTime& val) { Check(wxCMD_LINE_VAL_DATE); m_dateVal = val; m_hasVal = true; } #endif // wxUSE_DATETIME @@ -170,8 +166,8 @@ WX_DECLARE_OBJARRAY(wxCmdLineParam, wxArrayParams); #include "wx/arrimpl.cpp" -WX_DEFINE_OBJARRAY(wxArrayOptions); -WX_DEFINE_OBJARRAY(wxArrayParams); +WX_DEFINE_OBJARRAY(wxArrayOptions) +WX_DEFINE_OBJARRAY(wxArrayParams) // the parser internal state struct wxCmdLineParserData @@ -245,7 +241,10 @@ void wxCmdLineParserData::SetArguments(const wxString& cmdLine) { m_arguments.clear(); - m_arguments.push_back(wxTheApp->GetAppName()); + if(wxTheApp && wxTheApp->argc > 0) + m_arguments.push_back(wxTheApp->argv[0]); + else + m_arguments.push_back(wxEmptyString); wxArrayString args = wxCmdLineParser::ConvertStringToArgs(cmdLine); @@ -929,14 +928,15 @@ void wxCmdLineParser::Usage() wxString wxCmdLineParser::GetUsageString() { - wxString appname = wxTheApp->GetAppName(); - if ( !appname ) + wxString appname; + if ( m_data->m_arguments.empty() ) { - wxCHECK_MSG( m_data->m_arguments.size() != 0, wxEmptyString, - _T("no program name") ); - - appname = wxFileNameFromPath(m_data->m_arguments[0]); - wxStripExtension(appname); + if ( wxTheApp ) + appname = wxTheApp->GetAppName(); + } + else // use argv[0] + { + appname = wxFileName(m_data->m_arguments[0]).GetName(); } // we construct the brief cmd line desc on the fly, but not the detailed @@ -1223,4 +1223,3 @@ wxArrayString wxCmdLineParser::ConvertStringToArgs(const wxChar *p) return args; } -