unfoldStandardCompliantLines static method
Unfolds the given input
lines, originally separated by \r\n
Implementation
static List<String> unfoldStandardCompliantLines(
List<String> input,
) {
final output = <String>[];
StringBuffer? buffer;
for (var i = 0; i < input.length; i++) {
final current = input[i];
if (buffer != null) {
if (current.startsWithWhiteSpace()) {
buffer.write(current.trimLeft());
if (i == input.length - 1) {
output.add(buffer.toString());
}
continue;
} else {
// this is then end of the current fold:
output.add(buffer.toString());
buffer = null;
}
}
if (i < input.length - 1) {
final next = input[i + 1];
if (next.startsWithWhiteSpace()) {
buffer = StringBuffer();
buffer.write(current);
} else if (current.isNotEmpty) {
output.add(current);
}
} else if (current.isNotEmpty) {
output.add(current);
}
}
return output;
}