From b55ffb6b7ca272b5085317ae58e4631a0f90199d Mon Sep 17 00:00:00 2001 From: Tomas Aschan <1550920+tomasaschan@users.noreply.github.com> Date: Fri, 29 Aug 2025 22:13:14 +0200 Subject: fix: Don't print ErrHelp in ParseAll This is a fixup of #407 to ensure behavior of ExitOnError is consistent. --- flag.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/flag.go b/flag.go index 2b21b6f..181468f 100644 --- a/flag.go +++ b/flag.go @@ -1202,6 +1202,9 @@ func (f *FlagSet) ParseAll(arguments []string, fn func(flag *Flag, value string) case ContinueOnError: return err case ExitOnError: + if err == ErrHelp { + os.Exit(0) + } fmt.Fprintln(f.Output(), err) os.Exit(2) case PanicOnError: -- cgit v1.2.3 From 1bf832c6fec8a35a8c1d61e5fb14f5ce404197ef Mon Sep 17 00:00:00 2001 From: Tomas Aschan <1550920+tomasaschan@users.noreply.github.com> Date: Sat, 30 Aug 2025 08:36:09 +0200 Subject: Use errors.Is instead of equality check --- flag.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/flag.go b/flag.go index 181468f..330bb64 100644 --- a/flag.go +++ b/flag.go @@ -1173,7 +1173,7 @@ func (f *FlagSet) Parse(arguments []string) error { case ContinueOnError: return err case ExitOnError: - if err == ErrHelp { + if errors.Is(err, ErrHelp) { os.Exit(0) } fmt.Fprintln(f.Output(), err) @@ -1202,7 +1202,7 @@ func (f *FlagSet) ParseAll(arguments []string, fn func(flag *Flag, value string) case ContinueOnError: return err case ExitOnError: - if err == ErrHelp { + if errors.Is(err, ErrHelp) { os.Exit(0) } fmt.Fprintln(f.Output(), err) -- cgit v1.2.3