summaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
authorBurak Emir <emir@epfl.ch>2007-07-04 03:50:58 +0000
committerBurak Emir <emir@epfl.ch>2007-07-04 03:50:58 +0000
commit1287e33524d8e83f7ad7c3974df0ec083f4799f2 (patch)
tree02b417f89c8c6a9f2037c74ed1d07eab66534521 /src/compiler
parent9b5d61596c8fe2b438fe05da6b82a50168ca011c (diff)
downloadscala-1287e33524d8e83f7ad7c3974df0ec083f4799f2.tar.gz
scala-1287e33524d8e83f7ad7c3974df0ec083f4799f2.tar.bz2
scala-1287e33524d8e83f7ad7c3974df0ec083f4799f2.zip
replaced "string.replace(string,string)" calls,...
replaced "string.replace(string,string)" calls, java1.4 does not have them
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/scala/tools/nsc/io/AladdinReader.scala20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/io/AladdinReader.scala b/src/compiler/scala/tools/nsc/io/AladdinReader.scala
index e5f56525d6..33c7b0d844 100644
--- a/src/compiler/scala/tools/nsc/io/AladdinReader.scala
+++ b/src/compiler/scala/tools/nsc/io/AladdinReader.scala
@@ -35,12 +35,26 @@ class AladdinReader(decoder: CharsetDecoder) extends SourceReader(decoder) {
}
while(src.next != ':') {}
while(src.next != '\"') {}
- val sb = new StringBuilder()
+ val sb = new collection.mutable.ArrayBuffer[Char]()
var c = ' '
- while(c != '\"' && src.hasNext) { /*Console.print("["+c+"]"); */sb.append(c); c = src.next;}
+ state = 0
+ while(c != '\"' && src.hasNext) { (state,c) match {
+ case (0,'\\') => state = 1; case (0, _) => sb+=(c);
+ case (1, 'u') => state = 2; case (1, c) => sb+='\\'; sb+=c; state = 0
+ case (2, '0') => state = 3; case (2, c) => sb+='\\'; sb+='u'; sb+=c; state = 0
+ case (3, '0') => state = 4; case (3, c) => sb+='\\'; sb+='u'; sb+='0'; sb+=(c); state = 0
+ case (4, '2') => state = 5;
+ case (5, '2') => sb+='"'; state = 0
+ case (4, '5') => state = 6;
+ case (6, 'c') => sb+='\\'; state = 0
+ case (4, c) => sb+='\\'; sb+='u'; sb+='0'; sb+='0'; sb+=(c); state = 0
+ case (5, c) => sb+='\\'; sb+='u'; sb+='0'; sb+='0'; sb+='2'; sb+=(c); state = 0
+ case (6, c) => sb+='\\'; sb+='u'; sb+='0'; sb+='0'; sb+='5'; sb+=(c); state = 0
+ /*Console.print("["+c+"]"); */
+ }; c = src.next; }
is.close
//Console.println("!!"+sb.toString+"!!") // DEBUG if you want to see what you are downloading
- sb.toString.replace("\\u0022","\"").replace("\\uu005c","\\").toCharArray
+ sb.toArray
}
}