aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2018-05-13 00:14:20 +0700
committerShulhan <ms@kilabit.info>2018-05-13 02:55:39 +0700
commit61fa0cf274d35facdb8d6dd28fe041cd1fdbc99f (patch)
tree388a20e01169d4f53ae3353207b18b9f5e8a94b8 /lib
parentf4b534da9b0206f6fca8c8a3aff07ee8a03aa0dc (diff)
downloadpakakeh.go-61fa0cf274d35facdb8d6dd28fe041cd1fdbc99f.tar.xz
section: add field for line number
Diffstat (limited to 'lib')
-rw-r--r--lib/ini/ini_test.go51
-rw-r--r--lib/ini/reader.go13
-rw-r--r--lib/ini/section.go15
3 files changed, 42 insertions, 37 deletions
diff --git a/lib/ini/ini_test.go b/lib/ini/ini_test.go
index 5d38690e..366a7c6f 100644
--- a/lib/ini/ini_test.go
+++ b/lib/ini/ini_test.go
@@ -611,47 +611,49 @@ func TestGetSections(t *testing.T) {
desc: "With valid name: core",
name: "core",
exp: []*Section{{
- mode: varModeSection,
- format: []byte("[%s]\n"),
- name: []byte("core"),
- _name: []byte("core"),
+ mode: varModeSection,
+ lineNum: 8,
+ format: []byte("[%s]\n"),
+ name: []byte("core"),
+ _name: []byte("core"),
vars: []*Variable{{
mode: varModeComment,
- lineNum: 8,
+ lineNum: 9,
format: []byte(" %s\n"),
others: []byte("; Don't trust file modes"),
}, {
mode: varModeValue,
- lineNum: 9,
+ lineNum: 10,
format: []byte(" %s = false\n"),
key: []byte("filemode"),
_key: []byte("filemode"),
value: []byte("false"),
}, {
mode: varModeEmpty,
- lineNum: 10,
+ lineNum: 11,
format: []byte("\n"),
}, {
mode: varModeComment,
- lineNum: 11,
+ lineNum: 12,
format: []byte("%s\n"),
others: []byte("; Our diff algorithm"),
}},
}, {
- mode: varModeSection,
- format: []byte("[%s]\n"),
- name: []byte("core"),
- _name: []byte("core"),
+ mode: varModeSection,
+ lineNum: 18,
+ format: []byte("[%s]\n"),
+ name: []byte("core"),
+ _name: []byte("core"),
vars: []*Variable{{
mode: varModeValue,
- lineNum: 18,
+ lineNum: 19,
format: []byte(" %s=\"ssh\" for \"kernel.org\"\n"),
key: []byte("gitProxy"),
_key: []byte("gitproxy"),
value: []byte("ssh for kernel.org"),
}, {
mode: varModeValue | varModeComment,
- lineNum: 19,
+ lineNum: 20,
format: []byte(" %s=default-proxy %s\n"),
key: []byte("gitProxy"),
_key: []byte("gitproxy"),
@@ -659,43 +661,44 @@ func TestGetSections(t *testing.T) {
others: []byte("; for the rest"),
}, {
mode: varModeEmpty,
- lineNum: 20,
+ lineNum: 21,
format: []byte("\n"),
}, {
mode: varModeComment,
- lineNum: 21,
+ lineNum: 22,
format: []byte("%s\n"),
others: []byte("; User settings"),
}},
}, {
- mode: varModeSection,
- format: []byte("[%s]\n"),
- name: []byte("core"),
- _name: []byte("core"),
+ mode: varModeSection,
+ lineNum: 63,
+ format: []byte("[%s]\n"),
+ name: []byte("core"),
+ _name: []byte("core"),
vars: []*Variable{{
mode: varModeValue,
- lineNum: 63,
+ lineNum: 64,
format: []byte(" %s = less -R\n"),
key: []byte("pager"),
_key: []byte("pager"),
value: []byte("less -R"),
}, {
mode: varModeValue,
- lineNum: 64,
+ lineNum: 65,
format: []byte(" %s = nvim\n"),
key: []byte("editor"),
_key: []byte("editor"),
value: []byte("nvim"),
}, {
mode: varModeValue,
- lineNum: 65,
+ lineNum: 66,
format: []byte(" %s = false\n"),
key: []byte("autocrlf"),
_key: []byte("autocrlf"),
value: []byte("false"),
}, {
mode: varModeValue,
- lineNum: 66,
+ lineNum: 67,
format: []byte(" %s = true\n"),
key: []byte("filemode"),
_key: []byte("filemode"),
diff --git a/lib/ini/reader.go b/lib/ini/reader.go
index 1fad886c..eacff1a3 100644
--- a/lib/ini/reader.go
+++ b/lib/ini/reader.go
@@ -131,8 +131,8 @@ func (reader *Reader) Parse(src []byte) (in *Ini, err error) {
fmt.Print(reader._var)
}
- reader._var.lineNum = reader.lineNum
reader.lineNum++
+ reader._var.lineNum = reader.lineNum
if reader._var.mode&varModeSingle == varModeSingle ||
reader._var.mode&varModeValue == varModeValue ||
@@ -151,11 +151,12 @@ func (reader *Reader) Parse(src []byte) (in *Ini, err error) {
in.AddSection(reader.sec)
reader.sec = &Section{
- mode: reader._var.mode,
- format: reader._var.format,
- name: reader._var.secName,
- sub: reader._var.subName,
- others: reader._var.others,
+ mode: reader._var.mode,
+ lineNum: reader._var.lineNum,
+ format: reader._var.format,
+ name: reader._var.secName,
+ sub: reader._var.subName,
+ others: reader._var.others,
}
reader._var = &Variable{
diff --git a/lib/ini/section.go b/lib/ini/section.go
index 8eeb75cc..447675df 100644
--- a/lib/ini/section.go
+++ b/lib/ini/section.go
@@ -13,13 +13,14 @@ import (
// Section represent section header in INI file format and their variables.
//
type Section struct {
- mode varMode
- format []byte
- name []byte
- _name []byte
- sub []byte
- others []byte
- vars []*Variable
+ mode varMode
+ lineNum int
+ format []byte
+ name []byte
+ _name []byte
+ sub []byte
+ others []byte
+ vars []*Variable
}
//