diff options
author | Burak Emir <emir@epfl.ch> | 2007-07-04 03:50:58 +0000 |
---|---|---|
committer | Burak Emir <emir@epfl.ch> | 2007-07-04 03:50:58 +0000 |
commit | 1287e33524d8e83f7ad7c3974df0ec083f4799f2 (patch) | |
tree | 02b417f89c8c6a9f2037c74ed1d07eab66534521 /src/compiler | |
parent | 9b5d61596c8fe2b438fe05da6b82a50168ca011c (diff) | |
download | scala-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.scala | 20 |
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 } } |