in codeanalyzer/src/main/java/nl/obren/sokrates/sourcecode/cleaners/CodeBlockParser.java [30:60]
public int getStringEndIndex(String content, int fromIndex) {
int endIndex = content.indexOf(endMarker, fromIndex);
if (StringUtils.isNotBlank(escapeMarker)) {
String escapedEndMarker = escapeMarker + endMarker;
String escapedEscapeMarker = escapeMarker + escapeMarker;
boolean ignoreEscapedEscapeMarker = escapedEndMarker.equals(escapedEscapeMarker);
int index1 = content.indexOf(escapedEndMarker, fromIndex);
int index2 = ignoreEscapedEscapeMarker ? -1 : content.indexOf(escapedEscapeMarker, fromIndex);
while (true) {
while (index2 >= 0 && index1 >= 0 && index1 <= endIndex && index2 <= index1) {
index1 = content.indexOf(escapedEndMarker, index2 + escapedEscapeMarker.length() * 2);
index2 = ignoreEscapedEscapeMarker
? -1
: content.indexOf(escapedEscapeMarker, index2 + escapedEscapeMarker.length() * 2);
}
if (endIndex > 0 && index1 >= 0 && index1 <= endIndex) {
int continueSearchFrom = index1 + escapedEndMarker.length();
endIndex = content.indexOf(endMarker, continueSearchFrom);
index1 = content.indexOf(escapedEndMarker, continueSearchFrom);
index2 = ignoreEscapedEscapeMarker ? -1 : content.indexOf(escapedEscapeMarker, continueSearchFrom);
} else {
break;
}
}
}
return endIndex;
}