version 0.1.14
[fms.git] / src / freenet / messagexml.cpp
index 90bcca7..4b3252a 100644 (file)
@@ -25,7 +25,9 @@ std::string MessageXML::GetXML()
        tid->LinkEndChild(XMLCreateCDATAElement("Subject",m_subject));\r
        tid->LinkEndChild(XMLCreateCDATAElement("MessageID",m_messageid));\r
        tid->LinkEndChild(XMLCreateCDATAElement("ReplyBoard",m_replyboard));\r
-       tid->LinkEndChild(XMLCreateCDATAElement("Body",m_body));\r
+       // a little hack because TinyXML doesn't handle ]]> inside a CDATA section - manually separate into multiple CDATA sections\r
+       // TinyXML still won't be able to parse past the 1st CDATA section, but other implementations might\r
+       tid->LinkEndChild(XMLCreateCDATAElement("Body",StringFunctions::Replace(m_body,"]]>","]]]]><![CDATA[>")));\r
 \r
        TiXmlElement *brds=new TiXmlElement("Boards");\r
        tid->LinkEndChild(brds);\r
@@ -70,7 +72,6 @@ const bool MessageXML::ParseXML(const std::string &xml)
        if(!td.Error())\r
        {\r
                TiXmlHandle hnd(&td);\r
-               TiXmlNode *node1;\r
                TiXmlNode *node2;\r
                TiXmlText *txt;\r
 \r
@@ -112,7 +113,9 @@ const bool MessageXML::ParseXML(const std::string &xml)
                {\r
                        if(node2->FirstChild())\r
                        {\r
-                               m_boards.push_back(node2->FirstChild()->ValueStr());\r
+                               std::string boardname=node2->FirstChild()->ValueStr();\r
+                               StringFunctions::LowerCase(boardname,boardname);\r
+                               m_boards.push_back(boardname);\r
                        }\r
                        node2=node2->NextSibling("Board");\r
                }\r