Daniel Lemire
12e496da3d
Making sure that the library can compile without warnings even when crazy pedantic flags are set ( #238 )
...
Makes some fixes to satisfy various strict warnings.
2020-10-06 17:06:33 +11:00
jarro2783
3ef9fddc7b
Fix passing a const array to parse ( #258 )
...
Fixes #257 . The input array is not modified, so we can declare this as
`char const* const*`.
2020-10-03 20:54:06 +10:00
Jarryd Beck
748ac35277
small cleanup
2020-10-01 17:26:32 +10:00
Jarryd Beck
703eeef906
Update version for 3
2020-10-01 17:14:39 +10:00
Jarryd Beck
fedf9d7b57
Refactor parser
...
Major refactor of the parsing code organisation to improve encapsulation
and not modify the input arguments. The returned result no longer has
pointers into the original option specification.
2020-10-01 17:12:03 +10:00
Daniel Gomez Antonio
fd5cdfd547
Fix compiler warning C4702 for MSVC-14 ( #225 )
...
* Fix compiler warning C4702 for MSVC-14
2020-09-15 10:07:53 +10:00
Kjetil Andresen
15e8a74e95
Support 'const char**' arguments in Options::parse ( #250 )
...
`cxxopts` doesn't modify the contents of the argv strings. This changes
the parse function to take a reference to a `const char**`.
2020-08-11 08:01:29 +10:00
Rosen Penev
07f5cb24f1
[clang-tidy] use nodiscard ( #234 )
...
Found with modernize-use-nodiscard
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-07-28 15:40:16 +10:00
Eyal Rozenberg
5f43f4cbfe
Fixes #245 : Mention the option name when throwing on "no value" ( #246 )
...
* Fixes #245 :
* Added a new exception type: `option_has_no_value_exception`; throwing it when an option has no value we can cast with `as()`, instead of an `std::domain_error`.
* The `OptionValue` type now holds a pointer to the long option name (in its corresponding key within ParseResults's `m_results` field.
2020-07-23 17:27:04 +10:00
Akos Kiss
9a454c8e4e
Improve help of short-only options (remove dangling comma) ( #235 )
2020-06-04 13:21:51 +10:00
Daniel Lemire
794c975287
Exit instead of abort ( #233 )
...
Uses std::exit instead of abort to terminate when exceptions are disabled.
2020-05-29 08:30:35 +10:00
Rosen Penev
12bc8d78e7
clang-tidy fixes ( #231 )
2020-05-12 14:59:47 +10:00
Felix Esch
943cdcfbba
Fix assertion failure (issue #217 ) ( #218 )
2020-01-08 17:14:46 +11:00
Florin Iucha
9457b3de3a
Fix -Wconversion warnings with GCC9 ( #214 )
2019-11-28 08:30:23 +11:00
Abhay Raj Singh
073dd3e645
Fixed empty default showing nothing in help ( #205 )
2019-10-14 18:08:11 +11:00
Jarryd Beck
4a0af0e950
Fix parsing char type
...
Fixes #201 . Parse char type correctly and check for length.
2019-08-23 08:26:16 +10:00
charlydelta
34784b01f7
Fix: Make CXXOPTS_NO_EXCEPTIONS compilable and print messages ( #196 )
...
Fix CXXOPTS_NO_EXCEPTIONS so that it doesn't warn about unused parameters, and print out error messages.
2019-08-08 08:25:34 +10:00
Jarryd Beck
fce82fb035
Fix duplicate default option
...
Fixes #197 . Don't parse default options twice when there is a short and
long option.
2019-08-08 08:21:52 +10:00
charlydelta
37e7220fb4
Allow disabling exceptions and use std::abort instead ( #190 )
2019-08-01 08:19:59 +10:00
Bartek
3c73d91c0b
add_options variant with initializer list ( #189 )
...
Allow adding options with a single initializer list.
2019-06-28 08:39:37 +10:00
linus-sherrill
9910095719
Remove check for container when generating help message. ( #170 )
...
Some positional parameters would be listed in the help text and others
would not, when what is desired is that no positional parameters are
listed with the other command options. This change suppresses the help
listing for all positional parameters.
2019-06-18 18:16:31 +10:00
Jean-Baptiste Bayle
6b6af4f561
Add a method to remove the implicit value of an option ( #178 )
2019-06-18 17:49:15 +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
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
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
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
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
cc4914f065
Revert "Added const to argv type for better interoperability. ( #99 )"
...
This reverts commit 0f819a5cab
.
2018-04-10 08:48:08 +10: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