It's been a rather long time since a release. But hopefully releases will be more frequent from now on because.. Instead of waiting for a "large enough" accumulation of changes in a release the plan going forward is to have at least one release a year.
In this release there are a variety of bug fixes and adjustments. Although most are small they do add up to a good chunk of new stability. There are also some enhancements as requested that make for more flexibility in output and parsing modes.
Changes:
- New: Make printing help text configurable to make it possible to avoid using iostreams for output.
-- René Ferdinand Rivera Morell - New: Implements a new
brief_help
mode for acommand
that only prints out the command name and description.
-- René Ferdinand Rivera Morell - New: Adds printing default/initial value for options in help output.
-- René Ferdinand Rivera Morell - New: Add
relaxed
parsing to support "bag of options" style command lines.
-- René Ferdinand Rivera Morell - New: Add ordering/sorting of printed option details specified in the
option_style::options_print_order
value.
-- René Ferdinand Rivera Morell - New: Improve output readability by indenting sub-commands.
-- René Ferdinand Rivera Morell - New: Add
lyra::arguments::require
to specify limits on how many successful sub-parsers are required for parsing.
-- René Ferdinand Rivera Morell - Fix
operator|
loosing group subtype causing invalid parsing.
-- René Ferdinand Rivera Morell - Fix crash when no arguments are given to the parsing.
-- René Ferdinand Rivera Morell - Fix crash when changing settings of a command and adding subsequent arguments.
-- René Ferdinand Rivera Morell - Fix short option values being ignored in the case where the value separator is past the short option and in the value itself.
-- René Ferdinand Rivera Morell - Fix choice limited args from erroring early.
-- René Ferdinand Rivera Morell - Refactored the way help is printed to allow individual parsers to customize their output through the
printer
object.
-- René Ferdinand Rivera Morell - Fix zero-as-null pointer conversion warnings.
-- Hermann von Kleist - Fix some unclear error messages when parsing optional arguments.
-- René Ferdinand Rivera Morell - Fix parsing with mix of required and optional arguments.
-- René Ferdinand Rivera Morell - Fix passing move-only lambdas to
opt
andarg
parsers.
-- René Ferdinand Rivera Morell - Fix incorrect interpretation of single character literal strings to the
choice(..)
function.
-- René Ferdinand Rivera Morell - Fix ignored short circuit error results returned from user callbacks. This now, correctly, allows for custom error messages from user callbacks when parsing or checking arguments.
-- René Ferdinand Rivera Morell - Tested with Visual Studio 2022, MinGW-64 (gcc 8.1.0), Linux (clang 3.9, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21; gcc 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16), Xcode (14.3.1, 15.4, 16.4), on Azure Pipelines; and with VS 2015, VS 2017, VS 2019, VS 2022, MinGW-64 (gcc 6.3, 7.3, 8.1) on AppVeyor.