@@ -6948,6 +6948,48 @@ func TestFlagEqualsEmptyValue(t *testing.T) {
69486948 assert .Equal (t , "" , val )
69496949 assert .Equal (t , []string {"positional" }, args )
69506950 })
6951+
6952+ t .Run ("-vn= in a short option group sets empty string" , func (t * testing.T ) {
6953+ var val string
6954+ var verbose bool
6955+ var args []string
6956+
6957+ cmd := & Command {
6958+ UseShortOptionHandling : true ,
6959+ Flags : []Flag {
6960+ & BoolFlag {Name : "v" , Destination : & verbose },
6961+ & StringFlag {Name : "n" , Destination : & val , Value : "default" },
6962+ },
6963+ Action : func (_ context.Context , cmd * Command ) error {
6964+ args = cmd .Args ().Slice ()
6965+ return nil
6966+ },
6967+ }
6968+
6969+ err := cmd .Run (buildTestContext (t ), []string {"app" , "-vn=" , "positional" })
6970+ assert .NoError (t , err )
6971+ assert .True (t , verbose )
6972+ assert .Equal (t , "" , val )
6973+ assert .Equal (t , []string {"positional" }, args )
6974+ })
6975+
6976+ t .Run ("-vn= at the end of a short option group sets empty string" , func (t * testing.T ) {
6977+ var val string
6978+ var verbose bool
6979+
6980+ cmd := & Command {
6981+ UseShortOptionHandling : true ,
6982+ Flags : []Flag {
6983+ & BoolFlag {Name : "v" , Destination : & verbose },
6984+ & StringFlag {Name : "n" , Destination : & val , Value : "default" },
6985+ },
6986+ }
6987+
6988+ err := cmd .Run (buildTestContext (t ), []string {"app" , "-vn=" })
6989+ assert .NoError (t , err )
6990+ assert .True (t , verbose )
6991+ assert .Equal (t , "" , val )
6992+ })
69516993}
69526994
69536995// TestCommand_NoDefaultCmdArgMatchingFlag tests the argument set
0 commit comments