Fix some (harmless) warnings from Visual Studio.
clang-format on unittest files. No functional change.
Added docs to install targets.
Explicitly initiailze member variables in init-list.
Include generated docs in release tarball.
Remove instructions to use cmake --install . --prefix=..., it appears flaky.
Script for creating a release.
More fixes to make distcheck work (with parallel builds).
ChangeLog for 1.2.4 updated.
Fix an issue where `make dist` would fail if building outside of srcdir.
Fix manual build-rule so it works from build directory.
Modernize automake config.
Force tests to run sequentially.
Allow running tests from any directory.
Bump patch version number
typos on http://tclap.sourceforge.net/
Thank! Fixed in [7973293a297ee31f056a0c508c454d0f1a308bb2] and [4d125c14d6965ddf1340121be1e4b5cfabc27573]
Fixed typos.
Fixed typos.
typos on http://tclap.sourceforge.net/
Fixed in [57a98f] (with a follow up fix for Windows in [f73351])
Parsing error: erroneous '.exe' stripping throws std::out_of_range
Fix compilation issue on Windows.
Fix a bug where help output would crash if the program name was 3 chars.
Thank, I can confirm this. A fix should be forthcoming (but by all means, do apply your patch locally for now - or just check if the length is < 4 and return even before the call to rfind)
Parsing error: erroneous '.exe' stripping throws std::out_of_range
Edit: sorry for the badly formatted message, I'm not used to sourceforge. Here's another go: Exception message: terminate called after throwing an instance of 'std::out_of_range' what(): basic_string::erase: __pos (which is 18446744073709551615) > this->size() (which is 3) Offending code: // CmdLineOutput.h, lines 101-102 p = s.rfind(".exe"); if (p == s.length() - 4) { Fix: // CmdLineOutput.h, lines 101-102 p = s.rfind(".exe"); if (p != std::string::npos and p == s.length() - 4) {
Parsing error: erroneous '.exe' stripping throws std::out_of_range
Add sourceforge download badge.
Bump version number for "final" release of 1.2 as 1.4 is now live.
Clear NEWS file, it's not been updated since forever.
Update changelog for v1.2.3 release
Include simple-test in release tarball.
Mention current maintainer instead of contributor.
Make a note about 1.4 and add build status
Fix compilation error on Mac OS.
Start putting docs under "v1.2".
Upload docs for 1.4 to both 1.4 and root.
Include build status on landing page.
Make a note that CMake < 3.15 needs plaform specific installer.
Drop the "invaluable contributions", it sounds silly now
Script to copy files for release.
Clarify that --prefix flag goes on the --install command.
Run clang-format on all files in prep. for 1.4 release.
Update ChangeLog for 1.4 release.
Clean the news file for 1.4 release.
Note current maintainer in authors file.
Cleaup manual.xml for 1.4 release candidate.
Update Google copyright stansa.
Fix compilation error on MacOS
Update copyright notices and version info.
Note that this is for v1.4 and where to find 1.2 docs
Remove unused arguments from test (fix warnings).
Add example for how to use a pair as a custom type.
Add example for how to use a pair as a custom type.
HTML manual is now built by cmake, no need to maintain it manually.
Argument dependencies
User other type like pair
Updated documentation and provided examples: http://tclap.sourceforge.net/manual.html#USING_ARGTRAITS
Update generated documentation for 1.4.
User other type like pair
Document how to use ExitException to avoid program termination
Documentation has been updated for both 1.2 and 1.4.
Add documentation for ExitException.
Echo commands from upload script.
Add documentation for ExitException.
Echo commands from upload script.
Clarify that ArgException doesn't catch *any* exception.
Fixed in [9a8967d6f32b4a4b805899026ace355a2ef8177b] for 1.2 and [96fd5eae03553ed380ad66bcabc5219e534ef13d] for 1.4.
Check arguments vector is not empty before accessing first element
Add some generated file types to gitignore (and sort it).
Add missing expected test output from [96fd5ea].
Check arguments vector is not empty before accessing first element.
Check arguments vector is not empty before accessing first element.
Add some generated file types to gitignore (and sort it).
(Request) Adding multiple optional unlabeled arguments
Closing as won't fix due to lack of details/agreement on the problem. If your patch solves your problem, you can always implement it locally. However, I don't think the behaviour you want (if I understand correctly) is suitable for the general purpose library. Feel free to re-open if you have additional details or thoughts.
Document how to use ExitException to avoid program termination
Potential bug in MultiSwitchArg
You can use either string or value semantics, but if you want the latter you need to have operator>> and operator<< defined in global scope for your new type. However, I think the problem you are facing is different. In your example you have –p 210 0.005 which will be split into three separate arguments in argv (because of the spaces). There is no way for TCLAP to know that you want both the "210" and "0.005" to belong to the -p flag. Each flag expects exactly one argument following it, so you would...
You can use either string or value semantics, but if you want the latter you need to have operator>> and operator<< defined in global scope for your new type. However, I think the problem you are facing is different. In your example you have –p 210 0.005 which will be split into three separate arguments in argv (because of the spaces). There is no way for TCLAP to know that you want both the "210" and "0.005" to belong to the -p flag. Each flag expects exactly one argument following it, so you would...
User other type like pair
I'm using v1.2.2. I just went back and looked at my code, and I realized that the errors I was getting was due to my own implementation of TCLAP. The "fix" I made in MultiSwitchArg.h wasn't the thing that fixed my issue, it was the rework of my own implementation. Sorry about this, I'm now certain that it wasn't an issue with TCLAP that caused the issues.
Potential bug in MultiSwitchArg
Do you have an example? Also what version are you using? The following works as expected for me #include <tclap/CmdLine.h> #include <iostream> int main(int argc, char *argv[]) { TCLAP::CmdLine cmd("Command description message", ' ', "0.9"); TCLAP::MultiSwitchArg quiet("q","quiet","Reduce the volume of output"); cmd.add( quiet ); cmd.parse(argc, argv); std::cout << quiet.getValue() << std::endl; } ./a.out -q -q 2
Potential bug in MultiSwitchArg
Please don't exit(), throw an exception a user may catch.
Yeah, this was initially added as an internal implementation detail to allow resources to be cleaned up before exiting, but it can actually be useful in cases such as you described. I think we should document it properly.
That works nicely for me, thank you. I think the manual should be updated, in the example it says "catch (TCLAP::ArgException &e) // catch any exceptions" so I got confused when my program terminated and gdb wouldn't show me any reason for that.
Would it work to call setExceptionHandling(false) to allow the exception to propagate?
Check arguments vector is not empty before accessing first element
Sounds reasonable. This will never happen when argv/c comes from the command line, but I don't see why we could not add this check.
I messed up the title, I wanted "Check arguments vector is not empty before accessing first element" but it seems I can't edit titles
Check
Please don't exit(), throw an exception a user may catch.
(Request) Adding multiple optional unlabeled arguments
So, I think the idea here was that you "can't" really have multiple optional positional arguments. As an example, in this case how would the user specify the websocket port if they did not specify the transport port? Of course it would be possible to allow this and create an implicit dependency between the optional args, but it may be error prone for the programmer and confusing for the end user. For 1.4 we have introduced something called ArgGroups, it may be possible (would have to think about...