mirror of
https://github.com/hneemann/Digital.git
synced 2025-09-15 07:48:29 -04:00
fixes a problem with string escaping
This commit is contained in:
parent
0184e2c43c
commit
006faab1a0
@ -244,15 +244,42 @@ public class ResolveGenerics {
|
||||
|
||||
contentSet.add(key);
|
||||
sb.append(key).append(":=");
|
||||
if (val instanceof String)
|
||||
sb.append("\"").append(val).append("\"");
|
||||
else if (val instanceof Integer)
|
||||
if (val instanceof String) {
|
||||
sb.append("\"");
|
||||
escapeString(sb, (String) val);
|
||||
sb.append("\"");
|
||||
} else if (val instanceof Integer)
|
||||
sb.append("int(").append(val).append(")");
|
||||
else
|
||||
sb.append(val);
|
||||
sb.append(";\n");
|
||||
}
|
||||
|
||||
static void escapeString(StringBuilder sb, String str) {
|
||||
for (int i = 0; i < str.length(); i++) {
|
||||
char c = str.charAt(i);
|
||||
switch (c) {
|
||||
case '\\':
|
||||
sb.append("\\\\");
|
||||
break;
|
||||
case '\n':
|
||||
sb.append("\\n");
|
||||
break;
|
||||
case '\r':
|
||||
sb.append("\\r");
|
||||
break;
|
||||
case '\t':
|
||||
sb.append("\\t");
|
||||
break;
|
||||
case '"':
|
||||
sb.append("\\\"");
|
||||
break;
|
||||
default:
|
||||
sb.append(c);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static final class SetCircuitFunc extends Function {
|
||||
private final VisualElement ve;
|
||||
|
||||
|
@ -0,0 +1,21 @@
|
||||
package de.neemann.digital.draw.library;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
public class ResolveGenericsTest extends TestCase {
|
||||
|
||||
public void testEscapeString() {
|
||||
check("Test", "Test");
|
||||
check("\\\\", "\\");
|
||||
check("\\n", "\n");
|
||||
check("\\r", "\r");
|
||||
check("\\t", "\t");
|
||||
check("\\\"Test\\\"", "\"Test\"");
|
||||
}
|
||||
|
||||
private void check(String expected, String found) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
ResolveGenerics.escapeString(sb, found);
|
||||
assertEquals(expected, sb.toString());
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user