mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 17:34:57 +00:00
encode " and '
svn path=/trunk/; revision=11000
This commit is contained in:
parent
d774499bf8
commit
62c06f1198
2 changed files with 18 additions and 5 deletions
|
@ -256,6 +256,14 @@ std::string EncodeXMLString(const XS_String& str)
|
|||
*o++ = '&'; *o++ = 'g'; *o++ = 't'; *o++ = ';';
|
||||
break;
|
||||
|
||||
case '"':
|
||||
*o++ = '&'; *o++ = 'q'; *o++ = 'u'; *o++ = 'o'; *o++ = 't'; *o++ = ';';
|
||||
break;
|
||||
|
||||
case '\'':
|
||||
*o++ = '&'; *o++ = 'a'; *o++ = 'p'; *o++ = 'o'; *o++ = 's'; *o++ = ';';
|
||||
break;
|
||||
|
||||
default:
|
||||
*o++ = *p;
|
||||
}
|
||||
|
@ -275,15 +283,21 @@ XS_String DecodeXMLString(const XS_String& str)
|
|||
|
||||
for(LPCXSSTR p=s; *p; ++p)
|
||||
if (*p == '&') {
|
||||
if (!XS_nicmp(p+1, XS_TEXT("amp;"), 4)) {
|
||||
*o++ = '&';
|
||||
p += 4;
|
||||
} else if (!XS_nicmp(p+1, XS_TEXT("lt;"), 3)) {
|
||||
if (!XS_nicmp(p+1, XS_TEXT("lt;"), 3)) {
|
||||
*o++ = '<';
|
||||
p += 3;
|
||||
} else if (!XS_nicmp(p+1, XS_TEXT("gt;"), 3)) {
|
||||
*o++ = '>';
|
||||
p += 3;
|
||||
} else if (!XS_nicmp(p+1, XS_TEXT("amp;"), 4)) {
|
||||
*o++ = '&';
|
||||
p += 4;
|
||||
} else if (!XS_nicmp(p+1, XS_TEXT("quot;"), 5)) {
|
||||
*o++ = '"';
|
||||
p += 5;
|
||||
} else if (!XS_nicmp(p+1, XS_TEXT("apos;"), 5)) {
|
||||
*o++ = '\'';
|
||||
p += 5;
|
||||
} else
|
||||
*o++ = *p;
|
||||
} else
|
||||
|
|
|
@ -75,7 +75,6 @@ namespace XMLStorage {
|
|||
#ifdef __GNUC__
|
||||
#define XS_STRING_UTF8 // The W32API std::wstring implementation of stdlibc++ is unusable, so use UTF8 encoded strings with std::string instead
|
||||
#endif
|
||||
#define XS_STRING_UTF8//@@
|
||||
|
||||
#ifdef XS_STRING_UTF8
|
||||
#define XS_CHAR char
|
||||
|
|
Loading…
Reference in a new issue