Fixes#890
Add parsing of environmental variables when supplied for the config file
option.
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
to handle `std::filesystem::path` better widestring operations should be
preferred over regular strings.
Fix Issue #875
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Add the beginnings of a fuzzing system for CLI11. This commit adds the fuzzing code, a simple test, and two fixes to issues(seg faults) found by the initial round of fuzzing. It also adds a few tests and coverage issues uncovered in the process of developing the fuzz tests. As a side effect adjusts some of the azure tests to specify the vmImage which was being changed on azure.
* update license to match rest of code base
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
CUDA 11.5 deprecated (and CUDA 12.0 removed) diagnostic pragmas such as diag_suppress and diag_default.
Replacement pragmas were previxed with nv_, i.e. nv_diag_suppress
__NVCC_DIAG_PRAGMA_SUPPORT__ is defined if the prefixed versions are available.
* update the storage of remaining argument for config files, so that they work through the `remaining_for_passthrough` with values when parsed a second time.
* style: pre-commit.ci fixes
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* remove the windows.h includes so it doesn't conflict with other windows applications. Or at least minimizes the potential conflicts
* style: pre-commit.ci fixes
* fix ordering of windows includes
* style: pre-commit.ci fixes
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Add unicode support tests
* Add unicode parse tests
* Implement #14
* Slim down Windows.h
* Fix documentation comments
* Fix clang-tidy and cpplint
* Update README
* Fix clang-tidy
* Fix to_path not being available on linux
* Add roundtrip encoding tests
* style: pre-commit.ci fixes
* Fix pre-commit.ci
* Fix codacy
* Exclude parse_unicode which should not contain a newline from pre-commit
* Remove a test which breaks CI
* Fix build in CI
* Replace broken execute_with tests
* Fix wide string conversions on all systems
* Fix system args on apple
* style: pre-commit.ci fixes
* Fix some includes
* Fix wrong size calculation and comments
* Add guards around codecvt
* Fix _Pragma not recognized on MSVC
* Fix bad macro check
* Fix include
* Fix narrow and widen when codecvt is missing
* Fix some weird bug in old MSVC
* Add dependent applications to meson-build
* Fix precompilation
* Fix lint
* Fix coverage
* Update README
* style: pre-commit.ci fixes
* Fix lint
* Fix coverage
* Fix optional braces offending clang
* Remove copied comments from Windows.h
* Suppress flawfinder detects
* Fix cmake config tests failing because of a missing lib
* chore: update copyright on new files to 2023
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
* style: pre-commit.ci fixes
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Henry Schreiner <henryschreineriii@gmail.com>
* Allow using dot notation for subcommand arguments such as --sub1.field
* add tests for dot notation for subcommands
* style: pre-commit.ci fixes
* add test for short form arguments in dot notation
* style: pre-commit.ci fixes
* add _pre_parse_callback_ support using dot notation
* style: pre-commit.ci fixes
* update cmake tests to include 3.24
* change line endings
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* fix: show newline before footer only if footer is set and not empty
* feat: added usage message replacement feature
* fix: tests corrected for new help message formatting
* chore: prepare for 2.3.2
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
* chore: bump versions for 2.3.2
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
* Using ADL everywhere for lexical_cast
* Fixes in docs
* Add a test for old extension mechanism
* style: pre-commit.ci fixes
* Make gcc happy
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Philip Top <phlptp@gmail.com>
* add some warning for GCC output
* fix some warnings
* style: pre-commit.ci fixes
* update ubuntu image used for cmake tests so it doesn't auto transition to 22.04
* try a few more warning flags
* install the correct files
* style: pre-commit.ci fixes
* fix install files
* add a few more things to pre-commit
* try a fix for codacy
* another try at codecov
* more coverage tweaks
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* tweak the parsing of files for flags with disable_flag_override, basically allow true as a valid value to be interpreted as the default in that case
* style: pre-commit.ci fixes
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* test for out of bounds long long
* style: pre-commit.ci fixes
* change to use std types
* style: pre-commit.ci fixes
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* the get_option_group definition was missing from the splitting of the calls.
* style: pre-commit.ci fixes
* the get_option_group definition was missing from the splitting of the calls.
* style: pre-commit.ci fixes
* add test for missing function
* style: pre-commit.ci fixes
* add test for get_option_group
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* add a few more coverage tests
* style: pre-commit.ci fixes
* try to fix pre-commit issues
* update mdlint style as a test
* style: pre-commit.ci fixes
* fix test
* switch test to not generate warning
* add a few more tests
* tweak the conanfile and appveyor to debug issue
* update tests
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* add some more tests for coverage and fix some confusing error situations with config files.
* style: pre-commit.ci fixes
* fix warning
* ci: fix coverage
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
* add some coverage tests, and fix the issue with negated flags and config files
* style: pre-commit.ci fixes
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* ci: include windows 2022
* fix visual studio 2022 issue with std::array and type detection
* style: pre-commit.ci fixes
* warning fixes
Co-authored-by: Philip Top <top1@llnl.gov>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Philip Top <phlptp@gmail.com>
- Add C11_COMPILE cmake option that creates a static lib instead of header-only
- Add C11_INLINE macro that depends on C11_COMPILE
- Split App.hpp into App.hpp and impl/App_inl.hpp
- Add App.cpp that compiles App_inl.hpp into an object file
- CMake modifications to handle impl headers differently for sinlge-header, headers-only, and compiled versions
* Add missing Macros.hpp include to Error.hpp
To address:
```
In file included from /ITKWebAssemblyInterface/include/itkPipeline.h:21:
In file included from /ITKWebAssemblyInterface-build/_deps/cli11-src/include/CLI/App.hpp:25:
In file included from /ITKWebAssemblyInterface-build/_deps/cli11-src/include/CLI/ConfigFwd.hpp:17:
/ITKWebAssemblyInterface-build/_deps/cli11-src/include/CLI/Error.hpp:75:5: error: unknown type name 'CLI11_NODISCARD'
CLI11_NODISCARD int get_exit_code() const { return actual_exit_code; }
^
```
* style: pre-commit.ci fixes
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* wrap min and max in parenthesis for Visual studio 2017 and earlier compatibility
* try pre-commit to detect min/max issues
* actually fix the identified issues from the new check
* more min/max fixes
* fix the issue where subcommand callbacks would be triggered multiple times if specified as configurable.
* style: pre-commit.ci fixes
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Update readme and changelog and version number
* style: pre-commit.ci fixes
* fix missing references
* style: pre-commit.ci fixes
* merge in changes from non existent 2.1.3 patch release
* Update CHANGELOG.md
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
Co-authored-by: Henry Schreiner <henry.fredrick.schreiner@cern.ch>
* add a counting flag to address and issue with optional<bool> and make the flags more consistent
* move the add_flag to a single operation and add a Sum multi option policy
* style: pre-commit.ci fixes
* remove sum_flag_vector overloads
* style: pre-commit.ci fixes
* add limits include
* style: pre-commit.ci fixes
* fix some other warnings
* update docs describing the multi_option_policy
* Apply suggestions from code review
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>