diff options
author | Matthew Woehlke <matthew.woehlke@kitware.com> | 2022-08-17 15:03:51 (GMT) |
---|---|---|
committer | Matthew Woehlke <matthew.woehlke@kitware.com> | 2022-08-17 15:03:51 (GMT) |
commit | f2ef60ca547df10eb7e9b3ecf712ad2246d9c008 (patch) | |
tree | ca87c3bf28904355412f154b27ae4385cc4399fd /Source/cmArgumentParser.h | |
parent | 5b949bbb9114379120c29134b5effd77e39dd134 (diff) | |
download | CMake-f2ef60ca547df10eb7e9b3ecf712ad2246d9c008.zip CMake-f2ef60ca547df10eb7e9b3ecf712ad2246d9c008.tar.gz CMake-f2ef60ca547df10eb7e9b3ecf712ad2246d9c008.tar.bz2 |
cmArgumentParser: Ignore positional after keyword
Tweak cmArgumentParser to ignore positional arguments once a keyword
argument has been seen. This prevents mingling of keyword arguments
being able to effectively skip positional arguments, with later
arguments being picked up again; this seems highly likely to lead to
user confusion. This is also consistent with how other languages (e.g.
Python) handle a mix of "named" and positional arguments.
Diffstat (limited to 'Source/cmArgumentParser.h')
-rw-r--r-- | Source/cmArgumentParser.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/Source/cmArgumentParser.h b/Source/cmArgumentParser.h index ac78872..fdf54fb 100644 --- a/Source/cmArgumentParser.h +++ b/Source/cmArgumentParser.h @@ -206,6 +206,7 @@ private: std::size_t KeywordValuesSeen = 0; std::size_t KeywordValuesExpected = 0; std::function<Continue(cm::string_view)> KeywordValueFunc; + bool DoneWithPositional = false; void Consume(std::size_t pos, cm::string_view arg); void FinishKeyword(); |