diff options
| author | Shulhan <ms@kilabit.info> | 2018-05-13 00:14:20 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2018-05-13 02:55:39 +0700 |
| commit | 61fa0cf274d35facdb8d6dd28fe041cd1fdbc99f (patch) | |
| tree | 388a20e01169d4f53ae3353207b18b9f5e8a94b8 | |
| parent | f4b534da9b0206f6fca8c8a3aff07ee8a03aa0dc (diff) | |
| download | pakakeh.go-61fa0cf274d35facdb8d6dd28fe041cd1fdbc99f.tar.xz | |
section: add field for line number
| -rw-r--r-- | lib/ini/ini_test.go | 51 | ||||
| -rw-r--r-- | lib/ini/reader.go | 13 | ||||
| -rw-r--r-- | lib/ini/section.go | 15 |
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 } // |
