diff --git a/mozilla/suite/browser/src/nsBookmarksService.cpp b/mozilla/suite/browser/src/nsBookmarksService.cpp index ce3c067a751..5799f6f5938 100644 --- a/mozilla/suite/browser/src/nsBookmarksService.cpp +++ b/mozilla/suite/browser/src/nsBookmarksService.cpp @@ -934,22 +934,27 @@ BookmarkParser::Unescape(nsString &text) while((offset = text.FindChar((PRUnichar('&')), offset)) >= 0) { - if (Substring(text, offset, 4).Equals(NS_LITERAL_STRING("<"), nsCaseInsensitiveStringComparator())) + // XXX get max of 6 chars; change the value below if + // we ever start looking for longer HTML-escaped values + nsAutoString temp; + text.Mid(temp, offset, 6); + + if (Compare(Substring(temp, 0, 4), NS_LITERAL_STRING("<"), nsCaseInsensitiveStringComparator()) == 0) { text.Cut(offset, 4); text.Insert(PRUnichar('<'), offset); } - else if (Substring(text, offset, 4).Equals(NS_LITERAL_STRING(">"), nsCaseInsensitiveStringComparator())) + if (Compare(Substring(temp, 0, 4), NS_LITERAL_STRING(">"), nsCaseInsensitiveStringComparator()) == 0) { text.Cut(offset, 4); text.Insert(PRUnichar('>'), offset); } - else if (Substring(text, offset, 5).Equals(NS_LITERAL_STRING("&"), nsCaseInsensitiveStringComparator())) + if (Compare(Substring(temp, 0, 5), NS_LITERAL_STRING("&"), nsCaseInsensitiveStringComparator()) == 0) { text.Cut(offset, 5); text.Insert(PRUnichar('&'), offset); } - else if (Substring(text, offset, 6).Equals(NS_LITERAL_STRING("""), nsCaseInsensitiveStringComparator())) + if (Compare(Substring(temp, 0, 6), NS_LITERAL_STRING("""), nsCaseInsensitiveStringComparator()) == 0) { text.Cut(offset, 6); text.Insert(PRUnichar('\"'), offset);