aboutsummaryrefslogtreecommitdiff
path: root/lib/ini/reader.go
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2026-01-08 14:16:27 +0700
committerShulhan <ms@kilabit.info>2026-01-08 14:16:27 +0700
commit0fde383e8f30a0d7504e7987f6a3ebe6a082d69a (patch)
treef2e01fd4ebe26db08899a6ffc969ad4cbbf3970a /lib/ini/reader.go
parente91954b5a65847970903e0d8294e54d918c8bc0b (diff)
downloadpakakeh.go-0fde383e8f30a0d7504e7987f6a3ebe6a082d69a.tar.xz
lib/ini: improve error message when parsing variable name
Display the invalid character in the error message with quote, so space can detected. Also, export the error variable so external caller can detect it using the variable.
Diffstat (limited to 'lib/ini/reader.go')
-rw-r--r--lib/ini/reader.go22
1 files changed, 12 insertions, 10 deletions
diff --git a/lib/ini/reader.go b/lib/ini/reader.go
index 39ed6d6e..642aeee2 100644
--- a/lib/ini/reader.go
+++ b/lib/ini/reader.go
@@ -1,6 +1,5 @@
-// SPDX-FileCopyrightText: 2018 M. Shulhan <ms@kilabit.info>
-//
// SPDX-License-Identifier: BSD-3-Clause
+// SPDX-FileCopyrightText: 2018 M. Shulhan <ms@kilabit.info>
package ini
@@ -30,11 +29,14 @@ const (
tokUnderscore = '_'
)
+// ErrVarNameChar define an error when variable name is using invalid
+// character.
+var ErrVarNameChar = errors.New(`invalid character in variable name`)
+
var (
- errBadConfig = errors.New("bad config line %d at %s")
- errVarNoSection = "variable without section, line %d at %s"
- errVarNameInvalid = errors.New("invalid variable name, line %d at %s")
- errValueInvalid = errors.New("invalid value, line %d at %s")
+ errBadConfig = errors.New("bad config line %d at %s")
+ errVarNoSection = "variable without section, line %d at %s"
+ errValueInvalid = errors.New("invalid value, line %d at %s")
)
// reader define the INI file reader.
@@ -333,11 +335,11 @@ func (reader *reader) parseVariable() (err error) {
reader.r, _, err = reader.br.ReadRune()
if err != nil {
- return errVarNameInvalid
+ return fmt.Errorf(`error when parsing variable name: %w`, err)
}
if !unicode.IsLetter(reader.r) {
- return errVarNameInvalid
+ return fmt.Errorf(`%w %q`, ErrVarNameChar, reader.r)
}
var isNewline bool
@@ -384,7 +386,7 @@ func (reader *reader) parseVariable() (err error) {
return reader.parsePossibleValue()
default:
- return errVarNameInvalid
+ return fmt.Errorf(`%w %q`, ErrVarNameChar, reader.r)
}
}
@@ -421,7 +423,7 @@ func (reader *reader) parsePossibleValue() (err error) {
reader.bufFormat.WriteByte(reader.b)
return reader.parseVarValue()
default:
- return errVarNameInvalid
+ return fmt.Errorf(`%w %q`, ErrVarNameChar, reader.b)
}
}