Skip to content

Commit d3f5847

Browse files
johnmayegonw
authored andcommitted
Replace the XmlEscape from Guava, this was a unstable API anyways. We really just need >/< to be replaced but have handled the control characters anyways.
1 parent 9ba8a83 commit d3f5847

File tree

1 file changed

+24
-2
lines changed

1 file changed

+24
-2
lines changed

app/depict/src/main/java/org/openscience/cdk/depict/SvgDrawVisitor.java

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323

2424
package org.openscience.cdk.depict;
2525

26-
import com.google.common.xml.XmlEscapers;
2726
import org.openscience.cdk.renderer.RendererModel;
2827
import org.openscience.cdk.renderer.elements.Bounds;
2928
import org.openscience.cdk.renderer.elements.ElementGroup;
@@ -432,6 +431,29 @@ private void visit(OvalElement elem) {
432431
sb.append("/>\n");
433432
}
434433

434+
private void appendEscaped(StringBuilder sb, String text)
435+
{
436+
for (int i=0; i<text.length(); i++) {
437+
char ch = text.charAt(i);
438+
switch (ch) {
439+
case '\n':
440+
case '\r':
441+
case '\t': sb.append(ch); break;
442+
case '<': sb.append("&lt;"); break;
443+
case '>': sb.append("&gt;"); break;
444+
case '&': sb.append("&amp;"); break;
445+
default:
446+
if (ch < 0x1f)
447+
sb.append("\uFFFD"); // control chars
448+
else if (ch > 0xFFFD)
449+
sb.append("\uFFFD");
450+
else
451+
sb.append(ch);
452+
break;
453+
}
454+
}
455+
}
456+
435457
private void visit(TextElement elem) {
436458
appendIdent();
437459
double[] points = new double[]{elem.xCoord, elem.yCoord};
@@ -443,7 +465,7 @@ private void visit(TextElement elem) {
443465
sb.append(" text-anchor='middle'");
444466
// todo need font manager for scaling...
445467
sb.append(">");
446-
sb.append(XmlEscapers.xmlContentEscaper().escape(elem.text));
468+
appendEscaped(sb, elem.text);
447469
sb.append("</text>\n");
448470
}
449471

0 commit comments

Comments
 (0)