in src/main/java/org/apache/commons/net/nntp/Article.java [233:286]
private void simplifySubject() {
int start = 0;
final String subject = getSubject();
final int len = subject.length();
boolean done = false;
while (!done) {
done = true;
// skip whitespace
// "Re: " breaks this
while (start < len && subject.charAt(start) == ' ') {
start++;
}
if (start < (len - 2) && (subject.charAt(start) == 'r' || subject.charAt(start) == 'R')
&& (subject.charAt(start + 1) == 'e' || subject.charAt(start + 1) == 'E')) {
if (subject.charAt(start + 2) == ':') {
start += 3; // Skip "Re:"
done = false;
} else if (start < (len - 2) && (subject.charAt(start + 2) == '[' || subject.charAt(start + 2) == '(')) {
int i = start + 3;
while (i < len && subject.charAt(i) >= '0' && subject.charAt(i) <= '9') {
i++;
}
if (i < (len - 1) && (subject.charAt(i) == ']' || subject.charAt(i) == ')') && subject.charAt(i + 1) == ':') {
start = i + 2;
done = false;
}
}
}
if ("(no subject)".equals(simplifiedSubject)) {
simplifiedSubject = "";
}
int end = len;
while (end > start && subject.charAt(end - 1) < ' ') {
end--;
}
if (start == 0 && end == len) {
simplifiedSubject = subject;
} else {
simplifiedSubject = subject.substring(start, end);
}
}
}