summaryrefslogtreecommitdiffstats
path: root/vendor/gopkg.in/ini.v1
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/gopkg.in/ini.v1')
-rw-r--r--vendor/gopkg.in/ini.v1/file.go6
-rw-r--r--vendor/gopkg.in/ini.v1/parser.go26
2 files changed, 10 insertions, 22 deletions
diff --git a/vendor/gopkg.in/ini.v1/file.go b/vendor/gopkg.in/ini.v1/file.go
index 13459181..7b4e560d 100644
--- a/vendor/gopkg.in/ini.v1/file.go
+++ b/vendor/gopkg.in/ini.v1/file.go
@@ -142,6 +142,12 @@ func (f *File) GetSection(name string) (*Section, error) {
return secs[0], err
}
+// HasSection returns true if the file contains a section with given name.
+func (f *File) HasSection(name string) bool {
+ section, _ := f.GetSection(name)
+ return section != nil
+}
+
// SectionsByName returns all sections with given name.
func (f *File) SectionsByName(name string) ([]*Section, error) {
if len(name) == 0 {
diff --git a/vendor/gopkg.in/ini.v1/parser.go b/vendor/gopkg.in/ini.v1/parser.go
index b8b5aa86..ac1c980a 100644
--- a/vendor/gopkg.in/ini.v1/parser.go
+++ b/vendor/gopkg.in/ini.v1/parser.go
@@ -302,15 +302,9 @@ func (p *parser) readPythonMultilines(line string, bufferSize int) (string, erro
parserBufferPeekResult, _ := p.buf.Peek(bufferSize)
peekBuffer := bytes.NewBuffer(parserBufferPeekResult)
- indentSize := 0
for {
peekData, peekErr := peekBuffer.ReadBytes('\n')
- if peekErr != nil {
- if peekErr == io.EOF {
- p.debug("readPythonMultilines: io.EOF, peekData: %q, line: %q", string(peekData), line)
- return line, nil
- }
-
+ if peekErr != nil && peekErr != io.EOF {
p.debug("readPythonMultilines: failed to peek with error: %v", peekErr)
return "", peekErr
}
@@ -329,19 +323,6 @@ func (p *parser) readPythonMultilines(line string, bufferSize int) (string, erro
return line, nil
}
- // Determine indent size and line prefix.
- currentIndentSize := len(peekMatches[1])
- if indentSize < 1 {
- indentSize = currentIndentSize
- p.debug("readPythonMultilines: indent size is %d", indentSize)
- }
-
- // Make sure each line is indented at least as far as first line.
- if currentIndentSize < indentSize {
- p.debug("readPythonMultilines: end of value, current indent: %d, expected indent: %d, line: %q", currentIndentSize, indentSize, line)
- return line, nil
- }
-
// Advance the parser reader (buffer) in-sync with the peek buffer.
_, err := p.buf.Discard(len(peekData))
if err != nil {
@@ -349,8 +330,7 @@ func (p *parser) readPythonMultilines(line string, bufferSize int) (string, erro
return "", err
}
- // Handle indented empty line.
- line += "\n" + peekMatches[1][indentSize:] + peekMatches[2]
+ line += "\n" + peekMatches[0]
}
}
@@ -461,6 +441,8 @@ func (f *File) parse(reader io.Reader) (err error) {
// Reset auto-counter and comments
p.comment.Reset()
p.count = 1
+ // Nested values can't span sections
+ isLastValueEmpty = false
inUnparseableSection = false
for i := range f.options.UnparseableSections {