X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e7274ba2122099bcca6332d36733fa32ef21eaa6..7ea1c917764fb2588fe1aadc75c49ba300f8cb2f:/src/html/htmlpars.cpp diff --git a/src/html/htmlpars.cpp b/src/html/htmlpars.cpp index 296138bb67..b1da8c92df 100644 --- a/src/html/htmlpars.cpp +++ b/src/html/htmlpars.cpp @@ -7,11 +7,6 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// - -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma implementation "htmlpars.h" -#endif - #include "wx/wxprec.h" #include "wx/defs.h" @@ -57,7 +52,7 @@ public: }; WX_DECLARE_OBJARRAY(wxHtmlTextPiece, wxHtmlTextPieces); -WX_DEFINE_OBJARRAY(wxHtmlTextPieces); +WX_DEFINE_OBJARRAY(wxHtmlTextPieces) class wxHtmlParserState { @@ -309,14 +304,10 @@ void wxHtmlParser::DoParsing(int begin_pos, int end_pos) } else if (m_CurTag) { - // Add tag: - if (m_CurTag) - { - if (m_CurTag->HasEnding()) - begin_pos = m_CurTag->GetEndPos2(); - else - begin_pos = m_CurTag->GetBeginPos(); - } + if (m_CurTag->HasEnding()) + begin_pos = m_CurTag->GetEndPos2(); + else + begin_pos = m_CurTag->GetBeginPos(); wxHtmlTag *t = m_CurTag; m_CurTag = m_CurTag->GetNextTag(); AddTag(*t); @@ -360,7 +351,7 @@ void wxHtmlParser::AddTagHandler(wxHtmlTagHandler *handler) handler->SetParser(this); } -void wxHtmlParser::PushTagHandler(wxHtmlTagHandler *handler, wxString tags) +void wxHtmlParser::PushTagHandler(wxHtmlTagHandler *handler, const wxString& tags) { wxStringTokenizer tokenizer(tags, wxT(", ")); wxString key; @@ -500,7 +491,8 @@ wxString wxHtmlEntitiesParser::Parse(const wxString& input) { if (c - last > 0) output.append(last, c - last); - if (++c == wxT('\0')) break; + if ( *++c == wxT('\0') ) + break; wxString entity; const wxChar *ent_s = c; @@ -842,11 +834,24 @@ wxChar wxHtmlEntitiesParser::GetEntityChar(const wxString& entity) while (substitutions[substitutions_cnt].code != 0) substitutions_cnt++; - wxHtmlEntityInfo *info; + wxHtmlEntityInfo *info = NULL; +#ifdef __WXWINCE__ + // bsearch crashes under WinCE for some reason + size_t i; + for (i = 0; i < substitutions_cnt; i++) + { + if (entity == substitutions[i].name) + { + info = & substitutions[i]; + break; + } + } +#else info = (wxHtmlEntityInfo*) bsearch(entity.c_str(), substitutions, substitutions_cnt, sizeof(wxHtmlEntityInfo), wxHtmlEntityCompare); +#endif if (info) code = info->code; }