in freemarker-docgen-core/src/main/java/org/freemarker/docgen/core/TextUtil.java [296:326]
public static String normalizeEOL(final String s, String eol) {
int ln = s.length();
int i = 0;
while (i < ln) {
char c = s.charAt(i);
if (c == '\r' || c == '\n') {
break;
}
i++;
}
if (i == ln) {
return s;
}
StringBuilder sb = new StringBuilder(ln + ln / 10);
int nextToAppend = 0;
while (i < ln) {
char c = s.charAt(i);
if (c == '\r' || c == '\n') {
sb.append(s, nextToAppend, i);
sb.append(eol);
if (c == '\r' && i + 1 < ln && s.charAt(i + 1) == '\n') {
i++;
}
nextToAppend = i + 1;
}
i++;
}
sb.append(s, nextToAppend, ln);
return sb.toString();
}