Author: ruschein
Date: 2010-06-25 15:58:22 -0700 (Fri, 25 Jun 2010)
New Revision: 20671
Modified:
corelibs/trunk/equations/src/org/cytoscape/equations/Equation.java
Log:
Fixed a yet another bug in getErrorEquation().
Modified: corelibs/trunk/equations/src/org/cytoscape/equations/Equation.java
===================================================================
--- corelibs/trunk/equations/src/org/cytoscape/equations/Equation.java
2010-06-25 22:42:24 UTC (rev 20670)
+++ corelibs/trunk/equations/src/org/cytoscape/equations/Equation.java
2010-06-25 22:58:22 UTC (rev 20671)
@@ -82,7 +82,7 @@
public static Equation getErrorEquation(final String equation, final
String errorMessage) {
final EqnCompiler compiler = new EqnCompiler();
final Map<String, Class> attribNameToTypeMap = new
HashMap<String, Class>();
- if (!compiler.compile("=ERROR(\"" + errorMessage + "\")",
attribNameToTypeMap))
+ if (!compiler.compile("=ERROR(\"" + escapeQuotes(errorMessage)
+ "\")", attribNameToTypeMap))
throw new IllegalStateException("internal error in
Equation.getErrorEquation(). This should *never* happen!");
final Equation errorEquation = compiler.getEquation();
@@ -90,4 +90,16 @@
return new Equation(equation, errorEquation.attribReferences,
errorEquation.code,
errorEquation.sourceLocations,
errorEquation.type);
}
+
+ private static String escapeQuotes(final String s) {
+ final StringBuilder builder = new StringBuilder();
+ for (int i = 0; i < s.length(); ++i) {
+ final char ch = s.charAt(i);
+ if (ch == '"')
+ builder.append('\\');
+ builder.append(ch);
+ }
+
+ return builder.toString();
+ }
}
--
You received this message because you are subscribed to the Google Groups
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/cytoscape-cvs?hl=en.