1 19 20 25 26 27 package soot.util; 28 import soot.*; 29 30 import java.io.*; 31 32 34 public class EscapedReader extends FilterReader 35 { 36 37 public EscapedReader(Reader fos) 38 { 39 super(fos); 40 } 41 42 private StringBuffer mini = new StringBuffer (); 43 44 boolean nextF; 45 int nextch = 0; 46 47 48 public int read() throws IOException 49 { 50 51 if (nextF) 52 { 53 nextF = false; 54 return nextch; 55 } 56 57 int ch = super.read(); 58 59 if (ch != '\\') 60 return ch; 61 62 63 mini = new StringBuffer (); 64 65 ch = super.read(); 66 if (ch != 'u') 67 { 68 nextF = true; nextch = ch; 69 return '\\'; 70 } 71 72 mini.append("\\u"); 73 while (mini.length() < 6) 74 { 75 ch = super.read(); 76 mini.append((char)ch); 77 } 78 79 ch = Integer.parseInt(mini.substring(2).toString(), 16); 81 82 return ch; 83 } 84 } 85 | Popular Tags |