More complete quoted

git-svn-id: https://svn.code.sf.net/p/jode/code/trunk@135 379699f6-c40d-0410-875b-85095c16579e
stable
jochen 26 years ago
parent 284dfa7582
commit 9911f5be93
  1. 21
      jode/jode/decompiler/ClassAnalyzer.java

@ -174,13 +174,20 @@ public class ClassAnalyzer implements Analyzer {
private static String quoted(String str) {
StringBuffer result = new StringBuffer("\"");
for (int i=0; i< str.length(); i++) {
switch (str.charAt(i)) {
char c;
switch (c = str.charAt(i)) {
case '\0':
result.append("\\0");
break;
case '\t':
result.append("\\t");
break;
case '\n':
result.append("\\n");
break;
case '\r':
result.append("\\r");
break;
case '\\':
result.append("\\\\");
break;
@ -188,7 +195,17 @@ public class ClassAnalyzer implements Analyzer {
result.append("\\\"");
break;
default:
result.append(str.charAt(i));
if (c < 32) {
String oct = Integer.toOctalString(c);
result.append("\\000".substring(0, 4-oct.length()))
.append(oct);
} else if (c >= 32 && c < 127)
result.append(str.charAt(i));
else {
String hex = Integer.toHexString(c);
result.append("\\u0000".substring(0, 6-hex.length()))
.append(hex);
}
}
}
return result.append("\"").toString();

Loading…
Cancel
Save