diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/jvm/clojure/lang/RT.java | 24 |
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) |