diff --git a/core/src/com/google/zxing/client/result/AbstractDoCoMoParsedResult.java b/core/src/com/google/zxing/client/result/AbstractDoCoMoParsedResult.java index 6f182c545..acb5e0cd4 100644 --- a/core/src/com/google/zxing/client/result/AbstractDoCoMoParsedResult.java +++ b/core/src/com/google/zxing/client/result/AbstractDoCoMoParsedResult.java @@ -67,7 +67,7 @@ abstract class AbstractDoCoMoParsedResult extends ParsedReaderResult { if (matches == null) { matches = new Vector(3); // lazy init } - matches.addElement(unescape(rawText.substring(start, i))); + matches.addElement(unescapeBackslash(rawText.substring(start, i))); i++; done = true; } @@ -93,29 +93,6 @@ abstract class AbstractDoCoMoParsedResult extends ParsedReaderResult { return matches == null ? null : matches[0]; } - private static String unescape(String escaped) { - if (escaped != null) { - int backslash = escaped.indexOf((int) '\\'); - if (backslash >= 0) { - int max = escaped.length(); - StringBuffer unescaped = new StringBuffer(max - 1); - unescaped.append(escaped.toCharArray(), 0, backslash); - boolean nextIsEscaped = false; - for (int i = backslash; i < max; i++) { - char c = escaped.charAt(i); - if (nextIsEscaped || c != '\\') { - unescaped.append(c); - nextIsEscaped = false; - } else { - nextIsEscaped = true; - } - } - return unescaped.toString(); - } - } - return escaped; - } - static void maybeAppend(String value, StringBuffer result) { if (value != null) { result.append('\n'); diff --git a/core/src/com/google/zxing/client/result/ParsedReaderResult.java b/core/src/com/google/zxing/client/result/ParsedReaderResult.java index 471f83d8b..44a6c6bdf 100644 --- a/core/src/com/google/zxing/client/result/ParsedReaderResult.java +++ b/core/src/com/google/zxing/client/result/ParsedReaderResult.java @@ -76,4 +76,27 @@ public abstract class ParsedReaderResult { return getDisplayResult(); } + static String unescapeBackslash(String escaped) { + if (escaped != null) { + int backslash = escaped.indexOf((int) '\\'); + if (backslash >= 0) { + int max = escaped.length(); + StringBuffer unescaped = new StringBuffer(max - 1); + unescaped.append(escaped.toCharArray(), 0, backslash); + boolean nextIsEscaped = false; + for (int i = backslash; i < max; i++) { + char c = escaped.charAt(i); + if (nextIsEscaped || c != '\\') { + unescaped.append(c); + nextIsEscaped = false; + } else { + nextIsEscaped = true; + } + } + return unescaped.toString(); + } + } + return escaped; + } + }