Commit Graph

87 Commits

Author SHA1 Message Date
Lauri Nurmi
b8192cb8e1 Allow hiding command line arguments from Usage()
Add wxCMD_LINE_HIDDEN wxCmdLineParser flag allowing to hide options and/or
parameters.

A hidden/unlisted argument is processed as usual, but not shown in the output
given by Usage(). A use case for such could be diagnostics switches that
should exist but are not useful to the end user.

Closes https://github.com/wxWidgets/wxWidgets/pull/390
2017-02-20 17:53:04 +01:00
Václav Slavík
4d8d25e8bc Skip Cocoa's options in wxCmdLineParser on OS X
Skip Cocoa-specific flags used by Xcode (such as -AppleLanguages) on OS
X when parsing the command line. They all take a single argument, so
skip both the flag and the following value in the argv list.

Also fix handling of -ApplePersistenceIgnoreState, which didn't skip the
value as it should.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78171 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-24 13:45:02 +00:00
Vadim Zeitlin
1c0c0adaea Fix restoring locale in wxCmdLineParser::SetArguments().
We need to call setlocale(NULL) to query the current locale, setlocale("")
returns the newly set locale and not the original one.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77543 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-09-05 00:37:17 +00:00
Vadim Zeitlin
a84902e665 Allow wxCmdLineParser::Parse() to be called more than once.
Clear the previously collected parameters in the beginning to avoid
accumulating the results from several command lines.

Closes #16503.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77502 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-29 11:56:23 +00:00
Stefan Csomor
f18d7097da adding wxFALLTHROUGH where until now we had comments, allows for code-analysis support
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76399 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-04-26 17:36:32 +00:00
Vadim Zeitlin
33ad33d447 Add wxOVERRIDE and use it in common and wxOSX code.
Make overriding virtual methods more explicit and enable additional checks
provided by C++11 compilers when "override" is used.

Closes #16100.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76173 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-03-20 13:26:28 +00:00
Vadim Zeitlin
41d5ebc86f Fix wxCmdLineParser::Found(name) for options with values.
Calling Found() without providing the second "value" argument started
generating an assert since introduction of the negated options as it reused
FoundSwitch() which can only be used for switches, i.e. options without
values.

Fix this to revert a regression since 2.8 and also add unit tests for the
different Found() overloads.

Closes #15986, #16001.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75943 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-02-20 00:32:47 +00:00
Vadim Zeitlin
3d20f8e534 Reduce code duplication in wxCmdLineParser implementation.
No real changes, just extract the code for finding options from their names
into a separate function instead of repeating it 4 (and 5, after the next
commit changes) times.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75942 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-02-20 00:32:44 +00:00
Vadim Zeitlin
5cfbf0dc4d Allow iterating over wxCmdLineParser arguments in order.
This allows the meaning of the options to depend on their order relatively to
the other options which wasn't possible before.

See http://review.bakefile.org/r/557/

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75723 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-01-28 13:04:55 +00:00
Stefan Csomor
a4ea083bbd skip apple options
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74606 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-27 19:21:14 +00:00
Vadim Zeitlin
3f66f6a5b3 Remove all lines containing cvs/svn "$Id$" keyword.
This keyword is not expanded by Git which means it's not replaced with the
correct revision value in the releases made using git-based scripts and it's
confusing to have lines with unexpanded "$Id$" in the released files. As
expanding them with Git is not that simple (it could be done with git archive
and export-subst attribute) and there are not many benefits in having them in
the first place, just remove all these lines.

If nothing else, this will make an eventual transition to Git simpler.

Closes #14487.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-26 16:02:46 +00:00
Vadim Zeitlin
8dd4c6113d Add a comment with links to proper command line parsing rules.
No real changes, just added a comment with links to the descriptions of the
correct rules that we should use in ConvertStringToArgs().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73747 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-03-31 01:11:47 +00:00
Vadim Zeitlin
daa3509726 No changes, just silence some MSVC 11 static analyzer warnings.
This is an aborted attempt to make wxWidgets code compile without warnings
when using MSVC 11 /analyze option, as it was supposed to have become much
better. Unfortunately it still produces way too many false positives to be
really useful, in particular NULL pointer detection is completely broken as
even the code such as (from object.cpp):

        wxClassInfo *info = sm_first;
        while (info)
        {
            if ( info->m_next == this )
                ...
        }

provokes tons of warnings about "info" being NULL inside the loop which is
clearly impossible.

So this commit just fixes a few obvious warnings, mostly about variable
shadowing but also a couple about possibly passing NULL to memcpy().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72496 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-15 23:20:23 +00:00
Vadim Zeitlin
1a63798c5a Fix parsing of negated long options in wxCmdLineParser.
Negated long options were not recognized in wxCmdLineParser::Parse(), do check
for them now.

Also extend the unit test to check for negated options.

Closes #13335.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68316 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-07-21 13:49:55 +00:00
Vadim Zeitlin
dd18cc6594 Reset negatable switches correctly in wxCmdLineParser::Reset().
The "negated" flag of wxCmdLineOption struct was not reset by Reset() so
parsing a command line with a negatable option once influenced the result of
parsing it the next time because the old value was kept.

Do clear it now to allow calling Parse() several times without side effects.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68315 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-07-21 13:49:51 +00:00
Vadim Zeitlin
a6fd3ed883 Remove duplicate negated option indicator in wxCmdLineParser help.
The indicator of a negatable option (one with wxCMD_LINE_SWITCH_NEGATABLE
flag) appeared twice in the usage message, don't add it the second time.

Closes #13157.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67582 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-23 11:17:36 +00:00
Vadim Zeitlin
a6bf0c9533 Add support for negatable command line switches.
Add wxCMD_LINE_SWITCH_NEGATABLE which allows to use a dash after a command
line switch to inverse its meaning (i.e. use "/X-" form). Also add new
wxCmdLineParser::FoundSwitch() allowing to check for whether the switch was
specified in normal or negated form.

Closes #11643.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66253 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-24 00:42:53 +00:00
Vadim Zeitlin
19f310977a Include locale.h in cmdline.cpp to ensure LC_ALL is defined.
This is needed for at least VC++ 6 and is more correct anyhow.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64521 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-07 17:16:50 +00:00
Vadim Zeitlin
0a4daf3980 Use user locale with Latin-1 as fallback for command line arguments.
Command line arguments can contain characters outside of 7 bit ASCII range.
Assume that they use the default user encoding but fall back to Latin-1 if
conversion failed.

Closes #11754.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63605 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-03-02 20:46:18 +00:00
Vadim Zeitlin
758f356c53 Fix bug with parsing concatenated switches in wxCmdLineParser.
The constructs such as "-abcd" were not parsed correctly, i.e. the same as "-a
-b -c -d" because the code tried to parse a non-existent option "abcd" even if
it was supposed to not do this -- fix this.

Closes #11180.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61851 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-07 23:00:05 +00:00
Vadim Zeitlin
9a83f86094 Globally replace _T() with wxT().
Standardize on using a single macro across all wxWidgets sources and solve the name clash with Sun CC standard headers (see #10660).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-23 20:30:22 +00:00
Vadim Zeitlin
0cb9ba2518 correct bug with using uninitialized end variable (unused variable warnings are not always useless)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60941 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-07 12:19:59 +00:00
Vadim Zeitlin
c398434d92 abandon attempts to make wxAnyStrPtr behave as bool: user-defined logical operators don't short circuit silently breaking existing code so it is better to not provide them at all; instead simply return bool from the new versions taking wxString::const_iterator; advise to use the new versions in the new code and so in our own files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59829 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-25 09:54:10 +00:00
Vadim Zeitlin
4b6a582bef replace more __WXDEBUG__ occurrences with wxDEBUG_LEVEL
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59725 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-22 12:53:48 +00:00
Vadim Zeitlin
28d4f49b78 already escaped backslash shouldn't escape the following quote in ConvertStringToArgs()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54704 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-07-19 01:53:04 +00:00
Vadim Zeitlin
a4761b4c08 implement flag for Unix-like behaviour in wxCmdLineParser::ConverStringToArgs()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54648 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-07-16 00:49:25 +00:00
Vadim Zeitlin
1e678b9b93 don't dereference end iterator
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53571 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-12 11:22:39 +00:00
Vadim Zeitlin
e559d790fb add wxCmdLineParser::AddUsageText() and wxCMD_LINE_USAGE_TEXT (modified patch 1957542)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53567 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-12 00:03:06 +00:00
Vadim Zeitlin
5769cf0f89 fix bugs introduced in wxCmdLineParser::ConvertStringToArgs() during Unicode transition; added a unit test for it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53142 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-04-12 17:03:09 +00:00
Vadim Zeitlin
b1859b1a1b added support for double arguments to wxCmdLineParser (patch 1907289)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52530 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-15 02:33:25 +00:00
Vadim Zeitlin
779288b486 make wxCmdLineParser:Usage() const
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52505 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-14 17:14:55 +00:00
Vadim Zeitlin
71ebd60b06 make wxDateTime::ParseXXX() functions char*-friendly
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51059 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-01-07 00:17:45 +00:00
Vadim Zeitlin
49751a58f0 translate the descriptions in SetDesc(wxCmdLineEntryDesc)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50324 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-29 12:34:39 +00:00
Vadim Zeitlin
541ea80f0e made wxApp::argv an object convertible to either char** or wchar_t** for better compatibility with the existing ANSI code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49877 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-12 22:32:23 +00:00
Vadim Zeitlin
bdee3769af accept "--opt val" and "--opt:val" syntax in addition to "--opt=val" as
documented (patch 1786465)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49275 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-10-20 21:08:38 +00:00
Václav Slavík
8650108199 don't use implicit wxString->char*/wchar_t* conversion, it will not be available in wxUSE_STL build in the future
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46391 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-10 17:42:41 +00:00
Vadim Zeitlin
d3a0a0eeab added wxAppTraits::GetStandardCmdLineOptions() allowing to add the description of the standard toolkit options to the usage message and implement it for wxGTK2 (patch 1703077)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45589 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-22 20:54:07 +00:00
Vadim Zeitlin
b4a980f4f5 don't use obsolete functions (mostly copystring() and Count()), remove their documentation (patch 1697956)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45395 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-11 00:23:19 +00:00
Vadim Zeitlin
abce4ee622 don't allow switches (i.e. options without value) to have values (closes 781373)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42197 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-21 14:04:27 +00:00
Włodzimierz Skiba
ad9835c97c Include wx/dynarray.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38841 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-04-19 14:18:39 +00:00
Włodzimierz Skiba
c0f420c1ac wxTinderbox build fix.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35920 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-10-17 21:49:58 +00:00
Dimitri Schoolwerth
b04ada921f fixed argv[0] out of bounds error (argc can be 0 when wxEntry is manually called in a plugin environment for example)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35888 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-10-11 15:05:03 +00:00
Vadim Zeitlin
fbfb8bcc3f added missing consts and pass objects by const reference instead of by value (patch 1205869)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35665 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-09-24 21:43:15 +00:00
Vadim Zeitlin
4115960d4b remove extraneous semicolons (patch 1299687)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35660 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-09-24 20:29:22 +00:00
Mart Raudsepp
8907154c1a Nuke #pragma implementation/interface's
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35650 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-09-23 12:56:45 +00:00
Vadim Zeitlin
a2ec9439a3 don't use wxApp::GetAppName() in the usage message, we want the real argv[0] here
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35195 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-08-16 10:08:04 +00:00
Vadim Zeitlin
ff1ce99740 added SetCmdLine(int, char **) overload even when building a Unicode app
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31142 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-12-25 01:58:36 +00:00
Włodzimierz Skiba
c9d59ee7e0 Source cleaning: TRUE/true, FALSE/false, whitespaces, tabs.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29060 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-09-09 17:42:36 +00:00
Julian Smart
655719367a Use old licence name
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27408 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-05-23 20:53:33 +00:00
Julian Smart
77ffb5937e Name and version changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27404 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-05-23 14:56:36 +00:00