From c3d922c8516a15538552865bb95c2ff8156a39dd Mon Sep 17 00:00:00 2001 From: Tania Bento Date: Wed, 29 Nov 2006 20:48:29 +0000 Subject: 2006-11-29 Tania Bento * tools/gnu/classpath/tools/appletviewer/TagParser.java: (parseParams): Unescape 'val' before putting it into the Map. (unescapeString): New private method. --- ChangeLog | 6 +++ .../classpath/tools/appletviewer/TagParser.java | 56 +++++++++++++++++++++- 2 files changed, 61 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 3a44e898b..30f4950ed 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-11-29 Tania Bento + + * tools/gnu/classpath/tools/appletviewer/TagParser.java: + (parseParams): Unescape 'val' before putting it into the Map. + (unescapeString): New private method. + 2006-11-29 Tom Tromey * tools/gnu/classpath/tools/getopt/package.html: New file. diff --git a/tools/gnu/classpath/tools/appletviewer/TagParser.java b/tools/gnu/classpath/tools/appletviewer/TagParser.java index 68dce97e0..b5bdca70f 100644 --- a/tools/gnu/classpath/tools/appletviewer/TagParser.java +++ b/tools/gnu/classpath/tools/appletviewer/TagParser.java @@ -230,11 +230,65 @@ public class TagParser t.archives = parseArchives(val, t); val = t.archives.toString(); } - + val = unescapeString(val); t.parameters.put(key.toLowerCase(), val); } } + /** + * This method does the same thing as the g_strcompress function in glib. + * + * @param value + * @return value in its original one-byte equivalence. + */ + private static String unescapeString(String value) + { + String unescVal = ""; + for (int i = 0; i < value.length(); i++) + { + if (i == value.length() - 1) + { + unescVal = unescVal.concat(value.substring(i)); + break; + } + if (value.charAt(i) == '\\') + { + switch (value.charAt(i + 1)) + { + case 'b': + unescVal = unescVal.concat("\b"); + break; + case 'f': + unescVal = unescVal.concat("\f"); + break; + case 'n': + unescVal = unescVal.concat("\n"); + break; + case 'r': + unescVal = unescVal.concat("\r"); + break; + case 't': + unescVal = unescVal.concat("\t"); + break; + case '\\': + unescVal = unescVal.concat("\\"); + break; + case '\"': + unescVal = unescVal.concat("\""); + break; + default: + unescVal = unescVal.concat("\\"); + unescVal = unescVal.concat(value.substring(i + 1, i + 2)); + break; + } + i++; + } + else + unescVal = unescVal.concat(value.substring(i, i + 1)); + } + return unescVal; + } + /** * Parses the archive string and returns a list. * -- cgit v1.2.1