summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/jvm/clojure/lang/RT.java24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/jvm/clojure/lang/RT.java b/src/jvm/clojure/lang/RT.java
index 1b63f7af..e3e6564e 100644
--- a/src/jvm/clojure/lang/RT.java
+++ b/src/jvm/clojure/lang/RT.java
@@ -692,8 +692,30 @@ static public void print(Object x, Writer w) throws Exception{
}
else if(x instanceof String)
{
+ String s = (String) x;
w.write('"');
- w.write(x.toString());
+ //w.write(x.toString());
+ for(int i = 0; i < s.length(); i++)
+ {
+ char c = s.charAt(i);
+ switch(c)
+ {
+ case'\n':
+ w.write("\\n");
+ break;
+ case'\t':
+ w.write("\\t");
+ break;
+ case'"':
+ w.write("\\\"");
+ break;
+ case'\\':
+ w.write("\\\\");
+ break;
+ default:
+ w.write(c);
+ }
+ }
w.write('"');
}
// else if(x instanceof ArgVector)