From 47e096026d6a6f93071bf52e5b340730649e3dae Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Tue, 24 Apr 2012 22:40:36 +0400 Subject: [PATCH] Escape XML strings in the compiler output --- .../jetbrains/jet/compiler/messages/MessageRenderer.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/compiler/cli/src/org/jetbrains/jet/compiler/messages/MessageRenderer.java b/compiler/cli/src/org/jetbrains/jet/compiler/messages/MessageRenderer.java index 1324b5f9f47..eca3c404552 100644 --- a/compiler/cli/src/org/jetbrains/jet/compiler/messages/MessageRenderer.java +++ b/compiler/cli/src/org/jetbrains/jet/compiler/messages/MessageRenderer.java @@ -16,6 +16,7 @@ package org.jetbrains.jet.compiler.messages; +import com.intellij.openapi.util.text.StringUtil; import org.jetbrains.annotations.NotNull; import java.io.PrintWriter; @@ -37,18 +38,22 @@ public interface MessageRenderer { StringBuilder out = new StringBuilder(); out.append("<").append(severity.toString()); if (location.getPath() != null) { - out.append(" path=\"").append(location.getPath()).append("\""); + out.append(" path=\"").append(e(location.getPath())).append("\""); out.append(" line=\"").append(location.getLine()).append("\""); out.append(" column=\"").append(location.getColumn()).append("\""); } out.append(">\n"); - out.append(message); + out.append(e(message)); out.append("\n"); return out.toString(); } + private String e(String str) { + return StringUtil.escapeXml(str); + } + @Override public String renderException(@NotNull Throwable e) { return render(CompilerMessageSeverity.EXCEPTION, PLAIN.renderException(e), CompilerMessageLocation.NO_LOCATION);