Skip to content

Commit 2240690

Browse files
authored
Merge pull request #2224 from dearchap/issue_2223
Fix:(issue_2223) Fix incorrect processing of empty value after =
2 parents 41334d4 + 2c77d6e commit 2240690

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

command_parse.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,10 +136,12 @@ func (cmd *Command) parseFlags(args Args) (Args, error) {
136136

137137
flagName := firstArg[numMinuses:]
138138
flagVal := ""
139+
valFromEqual := false
139140
tracef("flagName:1 (fName=%[1]q)", flagName)
140141
if index := strings.Index(flagName, "="); index != -1 {
141142
flagVal = flagName[index+1:]
142143
flagName = flagName[:index]
144+
valFromEqual = true
143145
}
144146

145147
tracef("flagName:2 (fName=%[1]q) (fVal=%[2]q)", flagName, flagVal)
@@ -162,7 +164,7 @@ func (cmd *Command) parseFlags(args Args) (Args, error) {
162164
tracef("processing non bool flag (fName=%[1]q)", flagName)
163165
// not a bool flag so need to get the next arg
164166
if flagVal == "" {
165-
if len(rargs) == 1 {
167+
if len(rargs) == 1 || valFromEqual {
166168
return &stringSliceArgs{posArgs}, fmt.Errorf("%s%s", argumentNotProvidedErrMsg, firstArg)
167169
}
168170
flagVal = rargs[1]

command_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2727,6 +2727,11 @@ func TestFlagAction(t *testing.T) {
27272727
args: []string{"app", "--f_string="},
27282728
err: "flag needs an argument: --f_string=",
27292729
},
2730+
{
2731+
name: "flag_string_error2",
2732+
args: []string{"app", "--f_string=", "--f_bool"},
2733+
err: "flag needs an argument: --f_string=",
2734+
},
27302735
{
27312736
name: "flag_string_slice",
27322737
args: []string{"app", "--f_string_slice=s1,s2,s3"},

0 commit comments

Comments
 (0)