Commit Graph

372 Commits

Author SHA1 Message Date
Jarryd Beck
4f3fda4bf9 Add to changelog for #182 2019-06-18 08:17:26 +10:00
Christian Lang
7b14d5f60b Fix parsing of std::vector and add test, example and documentation (#182)
Improve parsing into std::vector so that a single argument can take a list.
2019-06-18 08:14:18 +10:00
Jarryd Beck
1eca210edc Remove unused variable 2019-06-14 18:28:04 +10:00
Jarryd Beck
e17c6b0827 Fix integer parsing again 2019-06-14 18:20:22 +10:00
Jarryd Beck
3e5ecf1d2a Fix a couple of out of range errors
These were detected using -fsanitize=undefined parsing values equal to
INT_MAX and INT_MIN.
2019-06-14 08:12:29 +10:00
Jean-Baptiste Bayle
bd20573829 Parse 0 and 1 into booleans (#177)
* Parse 1 as "true" and 0 as "false" for boolean options.
2019-05-28 17:25:54 +10:00
Jarryd Beck
d58271c5fd Allow invalid short option syntax
Fixes #171. Allows invalid syntax for short options to be ignored.
2019-05-28 08:21:36 +10:00
Jarryd Beck
cef280fad3 Remove some unreachable code.
Fixes #175. This was broken when throwing an exception on missing
positional parameters in #169.
2019-05-28 08:21:36 +10:00
Jack Clarke
e34676f73e fix sign conversion warnings (#174) 2019-05-13 08:33:15 +10:00
Jarryd Beck
d31492e2cd Catch exception using reference 2019-05-02 17:32:48 +10:00
Jarryd Beck
5da5d67111 Throw exception on invalid positional argument
Fixes #169. It seems reasonable to throw an exception when an attempt is
made to parse into positional parameters that don't exist.
2019-05-01 18:34:29 +10:00
le-migou
48e265dc4b Remove u8 prefix in string literals. (#172)
String literals with the prefix `u8` now have the type `const char8_t[N]` in
C++20. As a consequence the library does not compile in c++2a mode with GCC
(you can't concatenate `std::basic_string<char>` and `const char8_t[]` as
`char` and `char8_t` are different types).
2019-04-15 18:26:43 +10:00
Jarryd Beck
3876c09072 Use reference instead of value
Fixes #166.
2019-02-19 18:14:36 +11:00
linus-sherrill
9990f73845 Remove empty string initializer. (#159)
The empty string caused the vector to have one element which caused
the test at line 2041 to always fail.
2019-01-14 08:46:41 +11:00
Jarryd Beck
3d405ef163 Improve boolean readme
Fixes #157. Fix the wording in the README about booleans.
2019-01-02 08:47:17 +11:00
Michael Tesch
0edf37b6cc accept single '-' as argument, such as in cat - (#153) 2018-12-20 07:58:37 +11:00
舒俊杰
5950d78558 fix min/max defined macros (#152)
Windows is broken and defines `min` and `max` as a macro, adding parentheses stops them from being expanded.
2018-12-20 07:57:22 +11:00
Jarryd Beck
287d1e39e0 Add to changelog for exception fix 2018-11-20 08:25:24 +11:00
Jean Guyomarc'h
51f9a94c91 Fix invalid exception type in catch (#149)
g++ 8.2.0 refuses to compile the test suite because of polymorphic types
that are caught by value. They shall be caught by reference instead.
2018-11-20 08:06:18 +11:00
Jarryd Beck
84feb4bd87 Throw in ParseResult::as when option isn't present
Fixes #124.
2018-11-19 17:45:51 +11:00
Jarryd Beck
c713b44d92 Use a shared pointer for the options map
Fixes #132. Since the map of options is shared between Options and
ParseResult, they should use a shared pointer instead of a reference so
that ParseResult can be returned without referencing destroyed memory.
2018-11-08 18:22:42 +11:00
Jarryd Beck
b528324107 Fix option matching 2018-11-08 08:18:54 +11:00
Jarryd Beck
cd65c459ec Build the tests by default.
Fixes #143. There is no reason to make the tests optional.
2018-11-07 18:52:40 +11:00
Jarryd Beck
963c5d0494 Add instructions for running the tests 2018-10-30 08:02:32 +11:00
Mario Werner
320d7a3d1a fixed version parsing in the CMake code (#128) 2018-10-29 18:51:26 +11:00
Jarryd Beck
299750a35d Make INSTALL a bit more clearer 2018-10-29 18:13:14 +11:00
Jarryd Beck
3f2d705302 Improve build and test instructions 2018-10-29 08:47:49 +11:00
parkertomatoes
f75feab968 Handle newlines in description (#138) 2018-10-08 11:57:33 +11:00
Jan Koßmann
1f7ac82495 Fix std::forward return in toLocalString (#134) 2018-09-27 11:28:07 +10:00
Jarryd Beck
7c468aaf68 Allow iterator inputs to parse_positional 2018-08-07 08:00:41 +10:00
Jarryd Beck
95a48de820 Remove unused get_option
Fixes #121. Removes the unused `ParseResult::get_option`.
2018-08-03 08:46:48 +10:00
Jarryd Beck
cde83be99b Fix version numbering in CMakeLists.txt
Fixes #115. Read the version number out of `cxxopts.hpp` instead of
having to duplicate it in CMakeLists.txt.
2018-07-05 17:55:51 +10:00
Jarryd Beck
e725ea3084 Use unsigned type for integer digit
Fixes #109. Although we always used numbers in the ASCII range, it was
in a `size_t`, leading to a warning about possible loss of data on some
compilers.
2018-05-08 07:59:17 +10:00
Jarryd Beck
d47101a101 Allow leading zeroes in integers
Fixes #101. Allows leading zeroes in the integer parser.
2018-05-07 18:46:26 +10:00
Frank Schoenmann
ca6e9f70eb Allow unrecognised options. (#105)
Allows unrecognised options to be left alone by the parser without throwing an exception.
2018-04-12 08:15:07 +10:00
Jarryd Beck
00e8ecc482 Add a readme comment about versions 2018-04-12 08:14:07 +10:00
Jarryd Beck
a3ccf3e1f7 Add revert to changelog 2018-04-10 08:50:17 +10:00
Jarryd Beck
cc4914f065 Revert "Added const to argv type for better interoperability. (#99)"
This reverts commit 0f819a5cab.
2018-04-10 08:48:08 +10:00
Jarryd Beck
0fe1dc892b Prepare changelog for release 2018-04-09 08:17:56 +10:00
Jarryd Beck
16e3968e1a update readme 2018-03-21 18:14:09 +11:00
Jesús González
0f819a5cab Added const to argv type for better interoperability. (#99)
* Added const to argv type for better interoperability.
2018-03-09 08:07:29 +11:00
Jarryd Beck
e40645e084 Don't show default when boolean false
Fixes #102. Don't show the default value when it is a boolean and the
value is false. Note that this is a bit of a hack and the
implementation should probably be reevaluated in the future.
2018-03-08 08:53:26 +11:00
Jarryd Beck
76bd60dc17 Add support for std::optional
Fixes #93. This adds C++17 only support for `std::optional` values for
command line parameters.
2018-01-31 18:25:52 +11:00
Jarryd Beck
e792760ab9 Changes default values so that they aren't counted
Fixes #96. Default values of options not specified on the command line
had a `count` of 1. It would be better if they had a count of 0 because
they were not actually specified, so that count is only for options
given by the user.
2018-01-30 18:55:49 +11:00
Jesús González
76717cb3dd Add default "default" value to boolean options (#94)
* Add default "default" value of "false" to boolean options, therefore allowing to call result["boolOpt"].as<bool>() without throwing an exception.
2018-01-17 07:55:45 +11:00
Jarryd Beck
24162899c9 fix some types 2017-12-15 17:43:31 +11:00
Addy
ec7db35ac6 fixed “possible loss of data” warning on Visual Studio (#89) 2017-12-15 08:02:02 +11:00
Jarryd Beck
c69ca9166d version bump 2017-12-06 18:28:32 +11:00
Jarryd Beck
9c2e41a4e2 add clang back to travis 2017-12-04 18:14:40 +11:00
Masashi Fujita
ec9e62c2c8 | should be inside of (…) (#87)
* `|` should be inside of `(…)`

It's possible to use `(t|true|T|True)` as `truthy_pattern` but still failing `true` as a truthy under my environment :-(

```
Apple LLVM version 8.0.0 (clang-800.0.42.1)
Target: x86_64-apple-darwin15.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
```
2017-12-04 18:15:20 +11:00