summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2007-12-18 15:56:24 +0000
committerRich Hickey <richhickey@gmail.com>2007-12-18 15:56:24 +0000
commit211b1cf3703b4f935c2079db9b52802a528e135d (patch)
tree8b3c2f128bd3882859a8c7b0aa676ba22afff66f /src
parent77308a56800ff85880a5d0338d89282edf8a020c (diff)
added handling of \ \t \n " in string printing
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)