robfig/config — pull request #15 by mordyovits (2014-12-01 18:06:07+00:00)
Title: Allow "=:" characters in multiline values (breaking change)

Currently, robfig/config does not allow the use of the : and = characters in non-first line of a multiline value. That's because the code logic determines that it's a multiline value by the lack of a ':=' in it. However, it *does* allow '=:' in a single line value. To my kind, this is a bug. It caused a problem for me when storing multiline base64 values which use '='.

This PR changes it so that '=:' are allowed in multiline values. It does so by changing the detection of a continuation from a lack of '=:' to the existence of prefix whitespace. This is a common pattern, but it causes two behavioral changes:
1) Section headers '[' must be at the start of a line. Otherwise that line will be appended to a multiline val.
2) Option definition starts must be at the start of a line.

Note that the prefix whitespace itself is *not* included in the multiline val.

The test have been changed to match these behaviors and to test the ability to have '=;' in a multiline val.