From 7914cbd743b866bfc68b0f0566dcb17afecafc55 Mon Sep 17 00:00:00 2001 From: xiaoqidun Date: Mon, 31 Aug 2026 16:50:54 +0800 Subject: [PATCH] =?UTF-8?q?style(=E4=BB=A3=E7=A0=81=E9=A3=8E=E6=A0=BC):=20?= =?UTF-8?q?=E7=B2=BE=E7=AE=80=E5=86=85=E9=83=A8=E5=AE=9E=E7=8E=B0=EF=BC=8C?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=96=B9=E6=B3=95=E7=BB=84=E7=BB=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal.go | 77 +++++++++++++++++++++++++---------------------------- 1 file changed, 37 insertions(+), 40 deletions(-) diff --git a/internal.go b/internal.go index d5a7c71..95b2a62 100644 --- a/internal.go +++ b/internal.go @@ -145,42 +145,6 @@ func hasSurroundingQuotes(value string) bool { return first == last && (first == '"' || first == '\'' || first == '`') } -func (ini *GoINI) save(data string) error { - if ini.filename == "" { - return errFilenameRequired - } - info, err := os.Stat(ini.filename) - if err != nil { - return err - } - return ini.saveFile(ini.filename, data, info.Mode().Perm()) -} - -func (ini *GoINI) saveFile(filename string, data string, perm os.FileMode) error { - if filename == "" { - return errFilenameRequired - } - perm = perm.Perm() - writePerm := perm | 0o200 - if info, err := os.Stat(filename); err == nil { - if info.Mode().IsRegular() { - if err := os.Chmod(filename, writePerm); err != nil { - return err - } - } - } else if !errors.Is(err, os.ErrNotExist) { - return err - } - if err := os.WriteFile(filename, []byte(data), writePerm); err != nil { - return err - } - if err := os.Chmod(filename, perm); err != nil { - return err - } - ini.filename = filename - return nil -} - func (ini *GoINI) rebuildIndexes() { ini.sectionKeys = make(map[string][]string) ini.sectionOrder = nil @@ -245,9 +209,6 @@ func (ini *GoINI) findSectionLineIndex(sectionName string) (int, bool) { } func (ini *GoINI) findSectionKeyLineIndex(sectionName string, keyName string) (int, bool) { - if ini.sectionKeyLineIndexes[sectionName] == nil { - return 0, false - } index, ok := ini.sectionKeyLineIndexes[sectionName][keyName] return index, ok } @@ -375,7 +336,7 @@ func commentLines(comment string) []iniLine { func formatComment(comment string) string { trimmed := strings.TrimLeftFunc(comment, unicode.IsSpace) - if strings.HasPrefix(trimmed, "#") || strings.HasPrefix(trimmed, ";") { + if isComment(trimmed) { return comment } if comment == "" { @@ -469,6 +430,42 @@ func formatINIComment(comment string) string { return "# " + comment } +func (ini *GoINI) save(data string) error { + if ini.filename == "" { + return errFilenameRequired + } + info, err := os.Stat(ini.filename) + if err != nil { + return err + } + return ini.saveFile(ini.filename, data, info.Mode().Perm()) +} + +func (ini *GoINI) saveFile(filename string, data string, perm os.FileMode) error { + if filename == "" { + return errFilenameRequired + } + perm = perm.Perm() + writePerm := perm | 0o200 + if info, err := os.Stat(filename); err == nil { + if info.Mode().IsRegular() { + if err := os.Chmod(filename, writePerm); err != nil { + return err + } + } + } else if !errors.Is(err, os.ErrNotExist) { + return err + } + if err := os.WriteFile(filename, []byte(data), writePerm); err != nil { + return err + } + if err := os.Chmod(filename, perm); err != nil { + return err + } + ini.filename = filename + return nil +} + func matchStrings(items []string, match string) []string { if match == "" { return cloneStrings(items)