in freemarker-docgen-core/src/main/java/org/freemarker/docgen/core/PrintTextWithDocgenSubstitutionsDirective.java [863:909]
public static String removeFTLCopyrightComment(String ftl) {
int copyrightPartIdx = ftl.indexOf("Licensed to the Apache Software Foundation");
if (copyrightPartIdx == -1) {
return ftl;
}
final int commentFirstIdx;
final boolean squareBracketTagSyntax;
{
String ftlBeforeCopyright = ftl.substring(0, copyrightPartIdx);
int abCommentStart = ftlBeforeCopyright.lastIndexOf("<#--");
int sbCommentStart = ftlBeforeCopyright.lastIndexOf("[#--");
squareBracketTagSyntax = sbCommentStart > abCommentStart;
commentFirstIdx = squareBracketTagSyntax ? sbCommentStart : abCommentStart;
if (commentFirstIdx == -1) {
throw new AssertionError("Can't find copyright comment start");
}
}
final int commentLastIdx;
{
int commentEndStart = ftl.indexOf(squareBracketTagSyntax ? "--]" : "-->", copyrightPartIdx);
if (commentEndStart == -1) {
throw new AssertionError("Can't find copyright comment end");
}
commentLastIdx = commentEndStart + 2;
}
final int afterCommentNLChars;
if (commentLastIdx + 1 < ftl.length()) {
char afterCommentChar = ftl.charAt(commentLastIdx + 1);
if (afterCommentChar == '\n' || afterCommentChar == '\r') {
if (afterCommentChar == '\r' && commentLastIdx + 2 < ftl.length()
&& ftl.charAt(commentLastIdx + 2) == '\n') {
afterCommentNLChars = 2;
} else {
afterCommentNLChars = 1;
}
} else {
afterCommentNLChars = 0;
}
} else {
afterCommentNLChars = 0;
}
return ftl.substring(0, commentFirstIdx) + ftl.substring(commentLastIdx + afterCommentNLChars + 1);
}