Skip to content

Commit

Permalink
Ticket summaries are now html-encoded (#14579)
Browse files Browse the repository at this point in the history
Change-Id: Ia6a4342f6488da27310afe14421ef5af68e436bc
  • Loading branch information
Sara Seppola authored and Saulis committed Jan 21, 2015
1 parent 1867787 commit f2b0086
Showing 1 changed file with 49 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -99,12 +99,9 @@ private static void printMilestone(String milestone)
continue;
}
String summary = fields[1];
if (summary.startsWith("\"") && summary.endsWith("\"")) {
// If a summary starts with " and ends with " then all quotes in
// the summary are encoded as double quotes
summary = summary.substring(1, summary.length() - 1);
summary = summary.replace("\"\"", "\"");
}

summary = modifySummaryString(summary);

String badge = "<td></td>";
if (fields.length >= 8 && !fields[7].equals("")) {
badge = "<td class=\"bfp\"><span class=\"bfp\">Priority</span></td>";
Expand All @@ -119,6 +116,52 @@ private static void printMilestone(String milestone)
urlStream.close();
}

private static String modifySummaryString(String summary) {

if (summary.startsWith("\"") && summary.endsWith("\"")) {
// If a summary starts with " and ends with " then all quotes in
// the summary are encoded as double quotes
summary = summary.substring(1, summary.length() - 1);
summary = summary.replace("\"\"", "\"");
}

// this is needed for escaping html
summary = escapeHtml(summary);

return summary;
}

/**
* @since
* @param string
* the string to be html-escaped
* @return string in html-escape format
*/
private static String escapeHtml(String string) {

StringBuffer buf = new StringBuffer(string.length() * 2);

// we check the string character by character and escape only special
// characters
for (int i = 0; i < string.length(); ++i) {

char ch = string.charAt(i);
String charString = ch + "";

if ((charString).matches("[a-zA-Z0-9., ]")) {
// character is letter, digit, dot, comma or whitespace
buf.append(ch);
} else {
int charInt = ch;
buf.append("&");
buf.append("#");
buf.append(charInt);
buf.append(";");
}
}
return buf.toString();
}

private static void usage() {
System.err.println("Usage: "
+ FetchReleaseNotesTickets.class.getSimpleName()
Expand Down

0 comments on commit f2b0086

Please sign in to comment.