in lib/src/characters_impl.dart [1015:1035]
String _explodeReplace(String string, int start, int end,
String internalReplacement, String outerReplacement) {
if (start == end) {
return string.replaceRange(start, start, outerReplacement);
}
var buffer = StringBuffer(string.substring(0, start));
var breaks = Breaks(string, start, end, stateSoTNoBreak);
var index = 0;
var replacement = outerReplacement;
while ((index = breaks.nextBreak()) >= 0) {
buffer
..write(replacement)
..write(string.substring(start, index));
start = index;
replacement = internalReplacement;
}
buffer
..write(outerReplacement)
..write(string.substring(end));
return buffer.toString();
}