A CR+LF pair forms a single Swift extended grapheme cluster, so quote()'s Character-level switch matched neither '\\r' nor '\\n' and emitted the line break unescaped. The folding parser then read the dumped value back differently, breaking parse/dump/parse stability for any string containing CRLF (surfaced as a round-trip failure on the Zoom OpenAPI corpus seed under PUREYAML_RUN_FULL_CORPUS). Iterating over unicode scalars escapes CR and LF independently. Adds a dumper regression test. |
||
|---|---|---|
| .. | ||
| Dumper.Mapping.swift | ||
| Dumper.Stream.swift | ||
| Dumper.swift | ||
| Emitting.CollectionStyle.swift | ||
| Emitting.ScalarStyle.swift | ||
| Options.swift | ||