Commit Graph

155 Commits

Author SHA1 Message Date
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
Wolfgang Gahr
43ce03fdbd
Improve formatting of help descriptions (#215)
* Improve formatting of help descriptions (#213)

* new function: cxxopts::Option::set_width(size_t width)
  Set the size of a helpline.
* new function: cxxopts::Option::set_tab_expansion()
  Expand the tabs in descriptions.
  The tabsize 8 chars, base is start of description.
  The descriptions are not disturbed by adding additional options.
* Allow newlines \n and tabs \t in descriptions.

Other changes (last commit/new commit):
* 1453/1471: size_t for OPTION_LONGEST and OPTION_DESC_GAP.
  This prevents the static cast in 2086/2140.
* 2088/2142: in case of small width the value of
  "width - longest - OPTION_DEC_GAP" becomes negative.
  Because size_t is unsigned the result is a big number, and
  the width of the column of the descriptions is not shortened.
* new 2143: When the given width is too small, it is set to
  longest + OPTION_DESC_GAP + 10
* new 1570: A long description is broken into multiple lines, and
  the iterator lastSpace remembers the begin of the last word.
  But when the iterator current reaches the end of line, the whole
  string from iterator is printed, which in soome cases is too
  long. Thats why one blank is added to the description to trigger
  the handling of lastSpace.
  Accordingly in 1574/1627 the line is shortened by one char.

* repaired signed/unsigned issue

* changes for unicode
2021-02-12 08:17:55 +11:00