1
0
Fork 0
mirror of https://github.com/Luzifer/sii.git synced 2024-10-18 05:14:19 +00:00

Fix weird races, add support for line-trailing comments

Signed-off-by: Knut Ahlers <knut@ahlers.me>
This commit is contained in:
Knut Ahlers 2019-12-26 03:51:13 +01:00
parent 126a4cc006
commit 4231f1d922
Signed by: luzifer
GPG key ID: DC2729FDD34BE99E

View file

@ -13,8 +13,8 @@ import (
) )
var ( var (
singleLineValue = `^\s*%s\s?:\s?(.+)$` singleLineValue = `^\s*%s\s?:\s?([^#]+)(?:$|#)`
arrayLineValue = `^\s*%s(\[([0-9]*)\])?\s?:\s?(.+)$` arrayLineValue = `^\s*%s(\[([0-9]*)\])?\s?:\s?([^#]+)(?:$|#)`
) )
func genericUnmarshal(in []byte, out interface{}, unit *Unit) error { func genericUnmarshal(in []byte, out interface{}, unit *Unit) error {
@ -376,7 +376,11 @@ func getArrayValues(in []byte, name string) ([][]byte, error) {
} }
if len(grp[2]) == 0 { if len(grp[2]) == 0 {
out = append(out, grp[3]) tb := make([]byte, len(grp[3]))
for i, b := range grp[3] {
tb[i] = b
}
out = append(out, bytes.TrimSpace(tb))
continue continue
} }
@ -386,9 +390,11 @@ func getArrayValues(in []byte, name string) ([][]byte, error) {
} }
out[idx] = make([]byte, len(grp[3])) out[idx] = make([]byte, len(grp[3]))
tb := make([]byte, len(grp[3]))
for i, b := range grp[3] { for i, b := range grp[3] {
out[idx][i] = b tb[i] = b
} }
out[idx] = bytes.TrimSpace(tb)
} }
} }