From 4b1dae3acd81da58e967442fef0bc41398495b97 Mon Sep 17 00:00:00 2001
From: Jonathan Conder <jonathan.conder@canonical.com>
Date: Wed, 12 Mar 2025 18:36:24 +1300
Subject: [PATCH] fix: Preserve ArgsLenAtDash during shell completion

---
 completions.go | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/completions.go b/completions.go
index a1752f76..0ce0ce8b 100644
--- a/completions.go
+++ b/completions.go
@@ -360,6 +360,8 @@ func (c *Command) getCompletions(args []string) (*Command, []Completion, ShellCo
 	// the extra added -- is counted as arg.
 	flagCompletion := true
 	_ = finalCmd.ParseFlags(append(finalArgs, "--"))
+	// Reset ArgsLenAtDash.
+	finalCmd.Flags().Init(finalCmd.Flags().Name(), pflag.ContinueOnError)
 	newArgCount := finalCmd.Flags().NArg()
 
 	// Parse the flags early so we can check if required flags are set