| Index: sdk/lib/convert/line_splitter.dart
|
| diff --git a/sdk/lib/convert/line_splitter.dart b/sdk/lib/convert/line_splitter.dart
|
| index b5ec32bd6ee94bce6e248a2913cbf5c2e970991a..b9023f4c8fb246bfa235ef8c9e20ffa8120ac9c1 100644
|
| --- a/sdk/lib/convert/line_splitter.dart
|
| +++ b/sdk/lib/convert/line_splitter.dart
|
| @@ -49,7 +49,29 @@ class LineSplitter extends Converter<String, List<String>> {
|
| }
|
| }
|
|
|
| - List<String> convert(String data) => split(data).toList();
|
| + List<String> convert(String data) {
|
| + List<String> lines = <String>[];
|
| + int end = data.length;
|
| + int sliceStart = 0;
|
| + int char = 0;
|
| + for (int i = 0; i < end; i++) {
|
| + int previousChar = char;
|
| + char = data.codeUnitAt(i);
|
| + if (char != _CR) {
|
| + if (char != _LF) continue;
|
| + if (previousChar == _CR) {
|
| + sliceStart = i + 1;
|
| + continue;
|
| + }
|
| + }
|
| + lines.add(data.substring(sliceStart, i));
|
| + sliceStart = i + 1;
|
| + }
|
| + if (sliceStart < end) {
|
| + lines.add(data.substring(sliceStart, end));
|
| + }
|
| + return lines;
|
| + }
|
|
|
| StringConversionSink startChunkedConversion(Sink<String> sink) {
|
| if (sink is! StringConversionSink) {
|
|
|