fixed boolean flag not being set with tag ini-override
diff --git a/ini_test.go b/ini_test.go
index 492d10f..39d88be 100644
--- a/ini_test.go
+++ b/ini_test.go
@@ -953,6 +953,7 @@
var tests = []struct {
args []string
expected string
+ toggled bool
}{
{
args: []string{},
@@ -965,14 +966,22 @@
{
args: []string{"--config", "no file name"},
expected: "from INI",
+ toggled: true,
},
{
args: []string{"--value", "from CLI before", "--config", "no file name"},
expected: "from CLI before",
+ toggled: true,
},
{
args: []string{"--config", "no file name", "--value", "from CLI after"},
expected: "from CLI after",
+ toggled: true,
+ },
+ {
+ args: []string{"--toggle"},
+ toggled: true,
+ expected: "from default",
},
}
@@ -980,6 +989,7 @@
var opts struct {
Config string `long:"config" no-ini:"true"`
Value string `long:"value" default:"from default" ini-override:"true"`
+ Toggle bool `long:"toggle" ini-override:"true"`
}
p := NewParser(&opts, Default)
@@ -990,7 +1000,7 @@
}
if opts.Config != "" {
- err = NewIniParser(p).Parse(bytes.NewBufferString("value = from INI"))
+ err = NewIniParser(p).Parse(bytes.NewBufferString("value = from INI\ntoggle = true"))
if err != nil {
t.Fatalf("Unexpected error %s with args %+v", err, test.args)
}
@@ -1000,5 +1010,9 @@
t.Fatalf("Expected Value to be \"%s\" but was \"%s\" with args %+v", test.expected, opts.Value, test.args)
}
+ if opts.Toggle != test.toggled {
+ t.Fatalf("Expected Toggle to be \"%v\" but was \"%v\" with args %+v", test.toggled, opts.Toggle, test.args)
+ }
+
}
}
diff --git a/option.go b/option.go
index 8be7a27..2f41d85 100644
--- a/option.go
+++ b/option.go
@@ -261,9 +261,9 @@
}
}
+ option.isSetDefault = true
if len(usedDefault) > 0 {
option.empty()
- option.isSetDefault = true
for _, d := range usedDefault {
option.set(&d)