X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/77ffb5937e89927b621128789401db8921fe580f..b388e8cdec4f45124f31525e651a5e335965e4be:/src/xml/xml.cpp diff --git a/src/xml/xml.cpp b/src/xml/xml.cpp index c8c41cda0e..6d7f33c7ff 100644 --- a/src/xml/xml.cpp +++ b/src/xml/xml.cpp @@ -5,7 +5,7 @@ // Created: 2000/03/05 // RCS-ID: $Id$ // Copyright: (c) 2000 Vaclav Slavik -// Licence: wxWidgets licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) @@ -287,7 +287,7 @@ wxXmlDocument::wxXmlDocument() } wxXmlDocument::wxXmlDocument(const wxString& filename, const wxString& encoding) - : wxObject(), m_root(NULL) + :wxObject(), m_root(NULL) { if ( !Load(filename, encoding) ) { @@ -296,7 +296,7 @@ wxXmlDocument::wxXmlDocument(const wxString& filename, const wxString& encoding) } wxXmlDocument::wxXmlDocument(wxInputStream& stream, const wxString& encoding) - : wxObject(), m_root(NULL) + :wxObject(), m_root(NULL) { if ( !Load(stream, encoding) ) { @@ -305,6 +305,7 @@ wxXmlDocument::wxXmlDocument(wxInputStream& stream, const wxString& encoding) } wxXmlDocument::wxXmlDocument(const wxXmlDocument& doc) + :wxObject() { DoCopy(doc); } @@ -384,6 +385,7 @@ struct wxXmlParsingContext wxString version; }; +extern "C" { static void StartElementHnd(void *userData, const char *name, const char **atts) { wxXmlParsingContext *ctx = (wxXmlParsingContext*)userData; @@ -401,7 +403,9 @@ static void StartElementHnd(void *userData, const char *name, const char **atts) ctx->node = node; ctx->lastAsText = NULL; } +} +extern "C" { static void EndElementHnd(void *userData, const char* WXUNUSED(name)) { wxXmlParsingContext *ctx = (wxXmlParsingContext*)userData; @@ -409,7 +413,9 @@ static void EndElementHnd(void *userData, const char* WXUNUSED(name)) ctx->node = ctx->node->GetParent(); ctx->lastAsText = NULL; } +} +extern "C" { static void TextHnd(void *userData, const char *s, int len) { wxXmlParsingContext *ctx = (wxXmlParsingContext*)userData; @@ -442,7 +448,9 @@ static void TextHnd(void *userData, const char *s, int len) delete[] buf; } +} +extern "C" { static void CommentHnd(void *userData, const char *data) { wxXmlParsingContext *ctx = (wxXmlParsingContext*)userData; @@ -457,7 +465,9 @@ static void CommentHnd(void *userData, const char *data) } ctx->lastAsText = NULL; } +} +extern "C" { static void DefaultHnd(void *userData, const char *s, int len) { // XML header: @@ -475,14 +485,17 @@ static void DefaultHnd(void *userData, const char *s, int len) ctx->version = buf.Mid(pos + 9).BeforeFirst(buf[(size_t)pos+8]); } } +} +extern "C" { static int UnknownEncodingHnd(void * WXUNUSED(encodingHandlerData), const XML_Char *name, XML_Encoding *info) { // We must build conversion table for expat. The easiest way to do so // is to let wxCSConv convert as string containing all characters to // wide character representation: - wxCSConv conv(wxString(name, wxConvLibc)); + wxString str(name, wxConvLibc); + wxCSConv conv(str); char mbBuf[2]; wchar_t wcBuf[10]; size_t i; @@ -499,13 +512,14 @@ static int UnknownEncodingHnd(void * WXUNUSED(encodingHandlerData), } info->map[i+1] = (int)wcBuf[0]; } - + info->data = NULL; info->convert = NULL; info->release = NULL; return 1; } +} bool wxXmlDocument::Load(wxInputStream& stream, const wxString& encoding) {