Fix CString::Escape_n() and add some tests for it

This bug was originally reported by someone on irc, but sadly I forgot who it
was. Sorry!

Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit is contained in:
Uli Schlachter
2011-08-05 16:05:05 +02:00
parent cb6798d36f
commit da0ba75549
4 changed files with 66 additions and 6 deletions

View File

@@ -212,10 +212,10 @@ CString CString::Escape_n(EEscape eFrom, EEscape eTo) const {
}
if (ch == 0) {
if (!strncasecmp((const char*) &pTmp, "lt", 2)) ch = '<';
else if (!strncasecmp((const char*) &pTmp, "gt", 2)) ch = '>';
else if (!strncasecmp((const char*) &pTmp, "quot", 4)) ch = '"';
else if (!strncasecmp((const char*) &pTmp, "amp", 3)) ch = '&';
if (!strncasecmp((const char*) &pTmp, "&lt;", 2)) ch = '<';
else if (!strncasecmp((const char*) &pTmp, "&gt;", 2)) ch = '>';
else if (!strncasecmp((const char*) &pTmp, "&quot;", 4)) ch = '"';
else if (!strncasecmp((const char*) &pTmp, "&amp;", 3)) ch = '&';
}
if (ch > 0) {