Replace the section component from entries in favor of parser state

This commit is contained in:
kayomn 2022-12-24 21:55:07 +00:00
parent d68ddf1164
commit 01e7b4f450
1 changed files with 12 additions and 9 deletions

9
ini.go
View File

@ -14,7 +14,6 @@ type Builder struct {
// Singular key-value pair under the given section within an INI file. // Singular key-value pair under the given section within an INI file.
type Entry struct { type Entry struct {
Section string
Key string Key string
Value string Value string
} }
@ -87,7 +86,6 @@ func (parser *Parser) Parse() Entry {
if assignmentIndex := strings.Index(line, "="); assignmentIndex > -1 { if assignmentIndex := strings.Index(line, "="); assignmentIndex > -1 {
// Key with value. // Key with value.
return Entry{ return Entry{
Section: parser.section,
Key: unquote(strings.TrimSpace(line[0:assignmentIndex])), Key: unquote(strings.TrimSpace(line[0:assignmentIndex])),
Value: unquote(strings.TrimSpace(line[assignmentIndex+1:])), Value: unquote(strings.TrimSpace(line[assignmentIndex+1:])),
} }
@ -97,7 +95,6 @@ func (parser *Parser) Parse() Entry {
var keyValue = unquote(line[1:lineTail]) var keyValue = unquote(line[1:lineTail])
return Entry{ return Entry{
Section: parser.section,
Key: keyValue, Key: keyValue,
Value: keyValue, Value: keyValue,
} }
@ -117,6 +114,12 @@ type Parser struct {
isEnd bool isEnd bool
} }
// Returns the name of the section last parsed, which will an empty string if currently in the
// default section.
func (parser *Parser) Section() string {
return parser.section
}
// Appends a new section titled `name` in the `builder`. // Appends a new section titled `name` in the `builder`.
func (builder *Builder) Section(name string) error { func (builder *Builder) Section(name string) error {
var _, printError = fmt.Fprintf(builder.writer, "[%s]\n", name) var _, printError = fmt.Fprintf(builder.writer, "[%s]\n", name)