The only time a grapheme can continue after carriage return is when it's followed by a line feed character. Otherwise it must break, even if followed by an extending character: https://www.unicode.org/reports/tr29/tr29-41.html#GB4. Thus --- byGrapheme("\r\u0308").walkLength.writeln; --- ...should print 2, but it currently prints 1.
@dukc created dlang/phobos pull request #8657 "Fixed many issues in grapheme walker" fixing this issue: - Fix issue 23474 - Fixed many issues in grapheme walker https://github.com/dlang/phobos/pull/8657
@rikkimax created dlang/phobos pull request #8665 "[DO NOT MERGE] Grapheme emoji support in std.uni" fixing this issue: - Fix issue 23474 - Fixed many issues in grapheme walker https://github.com/dlang/phobos/pull/8665
dlang/phobos pull request #8657 "Fixed many issues in grapheme walker" was merged into master: - b334d4ddb2181744e9104249d826b5263762c4b2 by Ate Eskola: Fix issue 23474 - Fixed many issues in grapheme walker https://github.com/dlang/phobos/pull/8657