diff --git a/viper.go b/viper.go index f61f4ed..25f2a04 100644 --- a/viper.go +++ b/viper.go @@ -1644,9 +1644,12 @@ func (v *Viper) marshalWriter(f afero.File, configType string) error { for i := 0; i < len(keys); i++ { key := keys[i] lastSep := strings.LastIndex(key, ".") - sectionName := key[:(lastSep)] + sectionName := "" + if lastSep > 0 { + sectionName = key[:(lastSep)] + } keyName := key[(lastSep + 1):] - if sectionName == "default" { + if sectionName == ini.DefaultSection { sectionName = "" } cfg.Section(sectionName).Key(keyName).SetValue(v.Get(key).(string))