mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Suppress multiple blanks and control characters from the
node text retrieved by libxml2. Modified: libdoc.cpp
This commit is contained in:
@@ -461,7 +461,27 @@ char *XML2NODE::GetText(char *buf, int len)
|
|||||||
xmlFree(Content);
|
xmlFree(Content);
|
||||||
|
|
||||||
if ((Content = xmlNodeGetContent(Nodep))) {
|
if ((Content = xmlNodeGetContent(Nodep))) {
|
||||||
int rc = ((PXDOC2)Doc)->Decode(Content, buf, len);
|
char *p1, *p2;
|
||||||
|
bool b = false;
|
||||||
|
int rc = ((PXDOC2)Doc)->Decode(Content, buf, len);
|
||||||
|
|
||||||
|
// Eliminate extra characters
|
||||||
|
for (p1 = p2 = buf; *p1; p1++)
|
||||||
|
if (strchr(" \t\r\n", *p1)) {
|
||||||
|
if (b) {
|
||||||
|
*p2++ = ' ';
|
||||||
|
b = false;
|
||||||
|
} // endif b
|
||||||
|
|
||||||
|
} else {
|
||||||
|
*p2++ = *p1;
|
||||||
|
b = true;
|
||||||
|
} // endif p1
|
||||||
|
|
||||||
|
if (*(p2 - 1) == ' ')
|
||||||
|
*(p2 - 1) = 0;
|
||||||
|
else
|
||||||
|
*p2 = 0;
|
||||||
|
|
||||||
if (trace)
|
if (trace)
|
||||||
htrc("GetText buf='%s' len=%d rc=%d\n", buf, len, rc);
|
htrc("GetText buf='%s' len=%d rc=%d\n", buf, len, rc);
|
||||||
|
Reference in New Issue
Block a user