Add support for multi-line values.
diff --git a/lex.go b/lex.go index c5b9942..0694e2b 100644 --- a/lex.go +++ b/lex.go
@@ -228,9 +228,15 @@ for { switch r := l.next(); { case isEscape(r): - err := l.scanEscapeSequence() - if err != nil { - return l.errorf(err.Error()) + r := l.peek() + if isEOL(r) { + l.next() + l.acceptRun(" \t") + } else { + err := l.scanEscapeSequence() + if err != nil { + return l.errorf(err.Error()) + } } case isEOL(r):
diff --git a/properties_test.go b/properties_test.go index 6446c98..dca0e42 100644 --- a/properties_test.go +++ b/properties_test.go
@@ -39,10 +39,10 @@ testKeyValue(c, "key = v\\ a\\:lu\\=e\\n\\r\\t", "key", "v a:lu=e\n\r\t") } -// func (l *LoadSuite) TestMultilineValue(c *C) { -// input := "key = valueA,\\\n valueB" -// testKeyValue(c, input, "key", "valueA,valueB") -// } +func (l *LoadSuite) TestMultilineValue(c *C) { + input := "key = valueA,\\\n valueB" + testKeyValue(c, input, "key", "valueA,valueB") +} func (l *LoadSuite) TestFailWithPrematureEOF(c *C) { _, err := NewPropertiesFromString("key")