resolveIniEscapeSequences

Resolves escape sequences and performs line folding.

Feature set depends on the Dialect.

@safe pure nothrow
string
resolveIniEscapeSequences
(
Dialect dialect
)
(
const(char)[] input
)

Examples

enum none = Dialect.lite;
enum escp = Dialect.escapeSequences;
enum fold = Dialect.lineFolding;
enum both = Dialect.escapeSequences | Dialect.lineFolding;

assert(resolveIniEscapeSequences!none("foo\\nbar") == "foo\\nbar");
assert(resolveIniEscapeSequences!escp("foo\\nbar") == "foo\nbar");
assert(resolveIniEscapeSequences!fold("foo\\nbar") == "foo\\nbar");
assert(resolveIniEscapeSequences!both("foo\\nbar") == "foo\nbar");

assert(resolveIniEscapeSequences!none("foo\\\nbar") == "foo\\\nbar");
assert(resolveIniEscapeSequences!escp("foo\\\nbar") == "foo\nbar");
assert(resolveIniEscapeSequences!fold("foo\\\nbar") == "foobar");
assert(resolveIniEscapeSequences!both("foo\\\nbar") == "foobar");

assert(resolveIniEscapeSequences!none("foo\\\n\\nbar") == "foo\\\n\\nbar");
assert(resolveIniEscapeSequences!escp("foo\\\n\\nbar") == "foo\n\nbar");
assert(resolveIniEscapeSequences!fold("foo\\\n\\nbar") == "foo\\nbar");
assert(resolveIniEscapeSequences!both("foo\\\n\\nbar") == "foo\nbar");

assert(resolveIniEscapeSequences!none("foobar\\") == "foobar\\");
assert(resolveIniEscapeSequences!escp("foobar\\") == "foobar\\");
assert(resolveIniEscapeSequences!fold("foobar\\") == "foobar\\");
assert(resolveIniEscapeSequences!both("foobar\\") == "foobar\\");

assert(resolveIniEscapeSequences!none("foo\\\r\nbar") == "foo\\\r\nbar");
assert(resolveIniEscapeSequences!escp("foo\\\r\nbar") == "foo\r\nbar");
assert(resolveIniEscapeSequences!fold("foo\\\r\nbar") == "foobar");
assert(resolveIniEscapeSequences!both("foo\\\r\nbar") == "foobar");

assert(resolveIniEscapeSequences!none(`\nfoobar\n`) == "\\nfoobar\\n");
assert(resolveIniEscapeSequences!escp(`\nfoobar\n`) == "\nfoobar\n");
assert(resolveIniEscapeSequences!fold(`\nfoobar\n`) == "\\nfoobar\\n");
assert(resolveIniEscapeSequences!both(`\nfoobar\n`) == "\nfoobar\n");

assert(resolveIniEscapeSequences!none("\\\nfoo \\\rba\\\r\nr") == "\\\nfoo \\\rba\\\r\nr");
assert(resolveIniEscapeSequences!escp("\\\nfoo \\\rba\\\r\nr") == "\nfoo \rba\r\nr");
assert(resolveIniEscapeSequences!fold("\\\nfoo \\\rba\\\r\nr") == "foo bar");
assert(resolveIniEscapeSequences!both("\\\nfoo \\\rba\\\r\nr") == "foo bar");

Meta