1 Commits
Author SHA1 Message Date
xiaoqidun 7914cbd743 style(代码风格): 精简内部实现,优化方法组织 2026-08-31 16:50:54 +08:00
+37 -40
View File
@@ -145,42 +145,6 @@ func hasSurroundingQuotes(value string) bool {
return first == last && (first == '"' || first == '\'' || first == '`') 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() { func (ini *GoINI) rebuildIndexes() {
ini.sectionKeys = make(map[string][]string) ini.sectionKeys = make(map[string][]string)
ini.sectionOrder = nil 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) { func (ini *GoINI) findSectionKeyLineIndex(sectionName string, keyName string) (int, bool) {
if ini.sectionKeyLineIndexes[sectionName] == nil {
return 0, false
}
index, ok := ini.sectionKeyLineIndexes[sectionName][keyName] index, ok := ini.sectionKeyLineIndexes[sectionName][keyName]
return index, ok return index, ok
} }
@@ -375,7 +336,7 @@ func commentLines(comment string) []iniLine {
func formatComment(comment string) string { func formatComment(comment string) string {
trimmed := strings.TrimLeftFunc(comment, unicode.IsSpace) trimmed := strings.TrimLeftFunc(comment, unicode.IsSpace)
if strings.HasPrefix(trimmed, "#") || strings.HasPrefix(trimmed, ";") { if isComment(trimmed) {
return comment return comment
} }
if comment == "" { if comment == "" {
@@ -469,6 +430,42 @@ func formatINIComment(comment string) string {
return "# " + comment 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 { func matchStrings(items []string, match string) []string {
if match == "" { if match == "" {
return cloneStrings(items) return cloneStrings(items)