home *** CD-ROM | disk | FTP | other *** search
- package sun.net.www;
-
- public class ParseUtil {
- public static String decode(String var0) {
- StringBuffer var1 = new StringBuffer();
-
- for(int var2 = 0; var2 < var0.length(); ++var2) {
- char var3 = var0.charAt(var2);
- switch (var3) {
- case '%':
- try {
- var1.append((char)Integer.parseInt(var0.substring(var2 + 1, var2 + 3), 16));
- } catch (NumberFormatException var5) {
- throw new IllegalArgumentException();
- }
-
- var2 += 2;
- break;
- default:
- var1.append(var3);
- }
- }
-
- return var1.toString();
- }
-
- public String canonizeString(String var1) {
- int var2 = 0;
- int var3 = var1.length();
-
- while((var2 = var1.indexOf("/../")) >= 0) {
- if ((var3 = var1.lastIndexOf(47, var2 - 1)) >= 0) {
- var1 = var1.substring(0, var3) + var1.substring(var2 + 3);
- } else {
- var1 = var1.substring(var2 + 3);
- }
- }
-
- while((var2 = var1.indexOf("/./")) >= 0) {
- var1 = var1.substring(0, var2) + var1.substring(var2 + 2);
- }
-
- while(var1.endsWith("/..")) {
- var2 = var1.indexOf("/..");
- if ((var3 = var1.lastIndexOf(47, var2 - 1)) >= 0) {
- var1 = var1.substring(0, var3 + 1);
- } else {
- var1 = var1.substring(0, var2);
- }
- }
-
- if (var1.endsWith("/.")) {
- var1 = var1.substring(0, var1.length() - 1);
- }
-
- return var1;
- }
- }
-