Skip to content

Commit 20626b9

Browse files
properly handle CaseInsensitiveEnumValues flag.
1 parent 451be76 commit 20626b9

File tree

3 files changed

+6
-2
lines changed

3 files changed

+6
-2
lines changed

src/CommandLine/Core/InstanceChooser.cs

+4-2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public static ParserResult<object> Choose(
1717
IEnumerable<Type> types,
1818
IEnumerable<string> arguments,
1919
StringComparer nameComparer,
20+
bool ignoreValueCase,
2021
CultureInfo parsingCulture,
2122
IEnumerable<ErrorType> nonFatalErrors)
2223
{
@@ -36,7 +37,7 @@ public static ParserResult<object> Choose(
3637
arguments.Skip(1).FirstOrDefault() ?? string.Empty, nameComparer))
3738
: preprocCompare("version")
3839
? MakeNotParsed(types, new VersionRequestedError())
39-
: MatchVerb(tokenizer, verbs, arguments, nameComparer, parsingCulture, nonFatalErrors);
40+
: MatchVerb(tokenizer, verbs, arguments, nameComparer, ignoreValueCase, parsingCulture, nonFatalErrors);
4041
};
4142

4243
return arguments.Any()
@@ -49,6 +50,7 @@ private static ParserResult<object> MatchVerb(
4950
IEnumerable<Tuple<Verb, Type>> verbs,
5051
IEnumerable<string> arguments,
5152
StringComparer nameComparer,
53+
bool ignoreValueCase,
5254
CultureInfo parsingCulture,
5355
IEnumerable<ErrorType> nonFatalErrors)
5456
{
@@ -60,7 +62,7 @@ private static ParserResult<object> MatchVerb(
6062
tokenizer,
6163
arguments.Skip(1),
6264
nameComparer,
63-
false,
65+
ignoreValueCase,
6466
parsingCulture,
6567
nonFatalErrors)
6668
: MakeNotParsed(verbs.Select(v => v.Item2), new BadVerbSelectedError(arguments.First()));

src/CommandLine/Parser.cs

+1
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ public ParserResult<object> ParseArguments(IEnumerable<string> args, params Type
156156
types,
157157
args,
158158
settings.NameComparer,
159+
settings.CaseInsensitiveEnumValues,
159160
settings.ParsingCulture,
160161
HandleUnknownArguments(settings.IgnoreUnknownArguments)),
161162
settings);

tests/CommandLine.Tests/Unit/Core/InstanceChooserTests.cs

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ private static ParserResult<object> InvokeChoose(
2222
types,
2323
arguments,
2424
StringComparer.Ordinal,
25+
false,
2526
CultureInfo.InvariantCulture,
2627
Enumerable.Empty<ErrorType>());
2728
}

0 commit comments

Comments
 (0)