diff options
author | Rich Hickey <richhickey@gmail.com> | 2007-12-18 15:56:24 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2007-12-18 15:56:24 +0000 |
commit | 211b1cf3703b4f935c2079db9b52802a528e135d (patch) | |
tree | 8b3c2f128bd3882859a8c7b0aa676ba22afff66f /src | |
parent | 77308a56800ff85880a5d0338d89282edf8a020c (diff) |
added handling of \ \t \n " in string printing
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) |