mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 21:53:06 +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++ = ';';
|
*o++ = '&'; *o++ = 'g'; *o++ = 't'; *o++ = ';';
|
||||||
break;
|
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:
|
default:
|
||||||
*o++ = *p;
|
*o++ = *p;
|
||||||
}
|
}
|
||||||
|
@ -275,15 +283,21 @@ XS_String DecodeXMLString(const XS_String& str)
|
||||||
|
|
||||||
for(LPCXSSTR p=s; *p; ++p)
|
for(LPCXSSTR p=s; *p; ++p)
|
||||||
if (*p == '&') {
|
if (*p == '&') {
|
||||||
if (!XS_nicmp(p+1, XS_TEXT("amp;"), 4)) {
|
if (!XS_nicmp(p+1, XS_TEXT("lt;"), 3)) {
|
||||||
*o++ = '&';
|
|
||||||
p += 4;
|
|
||||||
} else if (!XS_nicmp(p+1, XS_TEXT("lt;"), 3)) {
|
|
||||||
*o++ = '<';
|
*o++ = '<';
|
||||||
p += 3;
|
p += 3;
|
||||||
} else if (!XS_nicmp(p+1, XS_TEXT("gt;"), 3)) {
|
} else if (!XS_nicmp(p+1, XS_TEXT("gt;"), 3)) {
|
||||||
*o++ = '>';
|
*o++ = '>';
|
||||||
p += 3;
|
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
|
} else
|
||||||
*o++ = *p;
|
*o++ = *p;
|
||||||
} else
|
} else
|
||||||
|
|
|
@ -75,7 +75,6 @@ namespace XMLStorage {
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
#define XS_STRING_UTF8 // The W32API std::wstring implementation of stdlibc++ is unusable, so use UTF8 encoded strings with std::string instead
|
#define XS_STRING_UTF8 // The W32API std::wstring implementation of stdlibc++ is unusable, so use UTF8 encoded strings with std::string instead
|
||||||
#endif
|
#endif
|
||||||
#define XS_STRING_UTF8//@@
|
|
||||||
|
|
||||||
#ifdef XS_STRING_UTF8
|
#ifdef XS_STRING_UTF8
|
||||||
#define XS_CHAR char
|
#define XS_CHAR char
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue