diff --git a/flag.go b/flag.go index e8cecc99..4b77256b 100644 --- a/flag.go +++ b/flag.go @@ -374,7 +374,7 @@ func (f *FlagSet) getUnknownFlagsHandling() UnknownFlagsHandling { // then, check deprecated ParseErrorsWhitelist: // if UnknownFlagsHandling is set, use it if f.ParseErrorsWhitelist.UnknownFlagsHandling != ErrorOnUnknownFlag { - return f.ParseErrorsAllowlist.UnknownFlagsHandling + return f.ParseErrorsWhitelist.UnknownFlagsHandling } if f.ParseErrorsWhitelist.UnknownFlags { diff --git a/flag_test.go b/flag_test.go index 82fcd48a..1e26d190 100644 --- a/flag_test.go +++ b/flag_test.go @@ -542,11 +542,16 @@ func testParseWithUnknownFlags(f *FlagSet, t *testing.T, setUnknownFlags func(f } } -func testParseWithUnknownFlagsAndPassToArgs(f *FlagSet, t *testing.T) { +func testParseWithUnknownFlagsAndPassToArgs(f *FlagSet, t *testing.T, setUp ...func(*FlagSet)) { if f.Parsed() { t.Fatal("f.Parse() = true before Parse") } - f.ParseErrorsAllowlist.UnknownFlagsHandling = PassUnknownFlagToArgs + if len(setUp) == 0 { + f.ParseErrorsAllowlist.UnknownFlagsHandling = PassUnknownFlagToArgs + } + for _, s := range setUp { + s(f) + } f.SetInterspersed(true) f.BoolP("boola", "a", false, "bool value") @@ -822,6 +827,13 @@ func TestIgnoreUnknownFlagsAndPassToArgs(t *testing.T) { ResetForTesting(func() { t.Error("bad parse") }) testParseWithUnknownFlagsAndPassToArgs(GetCommandLine(), t) } + +func TestIgnoreUnknownFlagsAndPassToArgsBackwardsCompat(t *testing.T) { + ResetForTesting(func() { t.Error("bad parse") }) + testParseWithUnknownFlagsAndPassToArgs(GetCommandLine(), t, func(f *FlagSet) { + f.ParseErrorsWhitelist.UnknownFlagsHandling = PassUnknownFlagToArgs + }) +} func TestFlagSetParse(t *testing.T) { testParse(NewFlagSet("test", ContinueOnError), t) }