Commit Graph

156 Commits

Author SHA1 Message Date
Nigel Stewart
cd61c685eb
Ordered vector of group names to preserve order of groups (#416)
Co-authored-by: Nigel Stewart <nigel.stewart@emesent.io>
2024-01-15 20:52:54 +11:00
Alexander Galanin
ddc695ebac
Don't split by list delimiter in positional lists (#398) 2023-06-15 07:34:26 +10:00
Jarryd Beck
90b318105f Fix unannoted fallthrough
Fixes #402.
2023-06-15 07:18:30 +10:00
Maximilian Knespel
a526762eb8
[fix] Avoid std::regex initialization during dlopen (#406) 2023-05-31 07:26:34 +10:00
Nigel Stewart
16cc254919
Output same exception messages for both Linux and Windows (#395)
Co-authored-by: Nigel Stewart <nigel.stewart@emesent.io>
2023-04-03 17:15:01 +10:00
Jarryd Beck
120205ac5a Fix cast warning in Unicode function
Fixes #339. Fixes a sign conversion warning in a function compiled by
-DCXXOPTS_USE_UNICODE_HELP=1.
2023-03-15 07:09:09 +11:00
Demian Hespe
134f60f973
Fix noexcept warning (#391) 2023-02-20 07:25:13 +11:00
Jarryd Beck
eb787304d6 Fix version number 2023-02-16 07:02:16 +11:00
Martijn Courteaux
799ee0e3e8
Add <locale> to be spec-compliant for std::isalnum (didn't work on MSVC). (#385) 2023-02-11 15:47:48 +11:00
Jarryd Beck
e1f8c16702 Fix diagnostics pop error 2023-02-02 07:25:12 +11:00
Jarryd Beck
4a3d4dbfe0 Fixes #362.
Fix comparing iterators from a different container.
2023-02-01 06:56:03 +11:00
Jarryd Beck
32afbc6526 Fix default bool values
Fixes #382. Keep boolean values when parsing into a reference.
2022-12-15 07:08:03 +11:00
jarro2783
e9d20c2c07
Remove deprecated iterator type (#381)
Fixes #379. `iterator` is deprecated in C++17.
2022-12-05 07:40:46 +11:00
Sourabh Mehta
1dcb44e79a
Fix an additional space in help generated (#377) 2022-11-10 07:24:19 +11:00
chrisps
f087dc8fcd
Code size reduction on msvc via selectany (#373) 2022-11-01 18:52:46 +11:00
Ryan Leary
2e3c6991d3
add . as valid char in option names (#358) 2022-09-29 07:11:32 +10:00
Stefan Hillmich
d046fe0ad6
Extend CI and small fixes (#370)
* Extend CI to support Windows and MacOS.
* Minor fixes to types.
2022-09-26 06:57:05 +10:00
Stefan Hillmich
82ac083886
Added missing #include (#368) 2022-09-12 07:02:26 +10:00
66maer
f7cf84bd56
Fix std::isblank assertion error in Visual Studio Chinese Debug (#365) 2022-09-08 07:33:31 +10:00
Jarryd Beck
ab1dc0f684 Update copyright notice
Fixes #361
2022-08-22 07:35:58 +10:00
jarro2783
a10bd5233b
Fix values attached to short options (#360)
Fixes #357.
2022-08-13 07:51:41 +10:00
Jarryd Beck
17b2c91049 Fix iostream for no exceptions
Fixes #356.
2022-08-08 07:07:59 +10:00
Jarryd Beck
96e72f7d15 Fix crash with short only option 2022-08-03 07:00:34 +10:00
Yassir Najmaoui
2abdd4af4d
Add option to display usage (#355)
Make the usage displaying optional
2022-07-28 06:50:13 +10:00
Jarryd Beck
01798ee7a0 GCC 4.8 fixes 2022-07-25 07:21:22 +10:00
Jarryd Beck
a6bfe2d457 Further ifdef fixes.
Related to #339.
2022-07-20 20:57:27 +10:00
Jarryd Beck
83aecd628e Fix pragmas 2022-07-20 17:37:37 +10:00
Jarryd Beck
6c8a41a229 Remove unused header 2022-07-20 07:51:04 +10:00
Jarryd Beck
292750d27a Replace pragmas with macros
Fixes ##339
2022-07-20 07:49:59 +10:00
Jarryd Beck
8849551398 Fix #353.
Move nodiscard before inline.
2022-07-18 21:16:04 +10:00
Eyal Rozenberg
e976f964c3
Fix issue #240: Multiple long option names / aliases (#349)
* Fixes #240: Multiple long option names / aliases

* We now use a vector of long option names instead of a single name
* When specifying an option, you can provide multiple names separated by commas, at most one of which may have a length of 1 (not necessarily the first specified name). The length-1 name is the single-hyphen switch (the "short name").
* Hashing uses the first long name
* Option help currently only uses the first long name.
2022-07-14 16:42:18 +10:00
Eyal Rozenberg
9cd015ac37
Regards #340, #345: Removed unnecessary indentation of exceptions namespace + added end-of-namespace comment (#351) 2022-07-13 06:49:04 +10:00
Eyal Rozenberg
628dc9202b
Fixes #345, fixes #346: Exception code tweaks (#347)
* Fixes #345, fixes #346, regards #340: Put exceptions in a sub-namespace and renamed them accordingly.

* Also fixed some "loose ends" regarding namespace indentation which were missing in PR #350.

* Dropped `required_option_missing` as it is unused.
2022-07-12 19:45:58 +10:00
Jarryd Beck
6bb1e82b61 Add Vim modeline 2022-07-11 07:17:53 +10:00
Eyal Rozenberg
513afbc6dc
Fixes #340: namespace indentation unification (#350)
* Namespace no longer induce indentation
* Namespace opening brace now on same line as namespace name
* Namespace closing brace now has an empty line before it unless the namespace contents were short and with no empty lines
* Namespace closing brace now always followed by a comment with the closed namespace' name
2022-07-11 07:00:50 +10:00
Long Deng
c59e0c132c
Solve arguments() showing empty keys when only short-only option exists (#318)
* Solve `arguments()` showing empty keys when there is only a short option.
2022-05-11 17:44:25 +10:00
Jarryd Beck
8185e6bb3a Remove unused variables
Fixes #324
2022-03-26 12:19:36 +11:00
Jarryd Beck
4e208b95b7 Add a program function
Fixes 323. Adds a function to retrieve the program name.
2022-01-14 16:26:48 +11:00
Long Deng
ad2d1a6b5f
Add iterator (#126) and easily print-out (#223) to ParseResult (#313)
* Add iterator (#126) and easily print-out (#223) to ParseResult
2021-11-09 18:49:58 +11:00
Jarryd Beck
c74846a891 Fix short options adding into unmatched
Fixes #312.
2021-10-21 08:06:53 +11:00
Nick Krichevsky
4a02ad94f4
Include <optional> if possible to check if we can use the feature (#309)
Fixes #303
2021-10-10 13:01:47 +11:00
Jarryd Beck
c641241a87 Fixes to #204. 2021-10-09 17:02:27 +11:00
Baojun Wang
4b7fccb5f2 Allow empty string to be valid positional arguments
Fixes #204.
2021-10-09 17:02:27 +11:00
Jarryd Beck
df229cff0d Fix integer parsing to be more general
Fixes #277. Makes integer parsing to be more general and allow whatever
types the user actually uses instead of hard coding a set of integers.
2021-06-02 17:30:08 +10:00
Jarryd Beck
a20bda6179 Fix GCC version check for null deref
Fixes #288.
2021-06-01 17:38:41 +10:00
RonxBulld
97a4d5511f
Support options like -j5. (#286)
* Support option value being attached after the option without a space in between. e.g. -j5
2021-05-06 08:46:40 +10:00
spmn
056a6281ac
Fix empty option name in OptionException (#256)
Fix bug where option name is missing in error.
2021-05-06 08:45:15 +10:00
RonxBulld
c04f8a5bb9
Fully compatible with GCC4.8 compilation system. (#285)
* -Wsuggest-override is not supported by gcc before 5.0
* GCC prior to 5.0 should ignore not only -Wnon-virtual-dtor but also -Weffc++, otherwise non-virtual destructor problems will still be reported.
* The `#pragma GCC diagnostic push' should be used before setting up the temporary environment.
* When using GCC4.8, use manual lexical analysis instead of regular expressions.
* Add gcc4.8 stuff to travis file.
2021-05-04 17:35:45 +10:00
RonxBulld
174510285a
-Wsuggest-override is not supported by gcc before 5.0 (#283)
* -Wsuggest-override is not supported by gcc before 5.0

* GCC prior to 5.0 should ignore not only -Wnon-virtual-dtor but also -Weffc++, otherwise non-virtual destructor problems will still be reported.

* The `#pragma GCC diagnostic push' should be used before setting up the temporary environment.
2021-04-21 18:17:30 +10:00
Jarryd Beck
aaa5e790b6 Rename variable, add to example 2021-02-15 08:34:46 +11:00