diff --git a/include/wx/html/winpars.h b/include/wx/html/winpars.h index 6bd5fa2a6b..2d188ace3a 100644 --- a/include/wx/html/winpars.h +++ b/include/wx/html/winpars.h @@ -133,6 +133,8 @@ protected: virtual void AddText(const wxChar* txt); private: + void DoAddText(wxChar *temp, int& templen, wxChar nbsp); + bool m_tmpLastWasSpace; wxChar *m_tmpStrBuf; size_t m_tmpStrBufSize; diff --git a/src/html/winpars.cpp b/src/html/winpars.cpp index 7fc11a1280..52578cc0ee 100644 --- a/src/html/winpars.cpp +++ b/src/html/winpars.cpp @@ -300,7 +300,6 @@ wxFSFile *wxHtmlWinParser::OpenURL(wxHtmlURLType type, void wxHtmlWinParser::AddText(const wxChar* txt) { - wxHtmlCell *c; size_t i = 0, x, lng = wxStrlen(txt); @@ -338,47 +337,42 @@ void wxHtmlWinParser::AddText(const wxChar* txt) if (x) { temp[templen-1] = wxT(' '); - temp[templen] = 0; - templen = 0; -#if !wxUSE_UNICODE - if (m_EncConv) - m_EncConv->Convert(temp); -#endif - size_t len = wxStrlen(temp); - for (size_t j = 0; j < len; j++) - if (temp[j] == nbsp) - temp[j] = wxT(' '); - c = new wxHtmlWordCell(temp, *(GetDC())); - if (m_UseLink) - c->SetLink(m_Link); - m_Container->InsertCell(c); - ((wxHtmlWordCell*)c)->SetPreviousWord(m_lastWordCell); - m_lastWordCell = (wxHtmlWordCell*)c; + DoAddText(temp, templen, nbsp); m_tmpLastWasSpace = true; } } if (templen && (templen > 1 || temp[0] != wxT(' '))) { - temp[templen] = 0; -#if !wxUSE_UNICODE - if (m_EncConv) - m_EncConv->Convert(temp); -#endif - size_t len = wxStrlen(temp); - for (size_t j = 0; j < len; j++) - if (temp[j] == nbsp) - temp[j] = wxT(' '); - c = new wxHtmlWordCell(temp, *(GetDC())); - if (m_UseLink) - c->SetLink(m_Link); - m_Container->InsertCell(c); - ((wxHtmlWordCell*)c)->SetPreviousWord(m_lastWordCell); - m_lastWordCell = (wxHtmlWordCell*)c; + DoAddText(temp, templen, nbsp); m_tmpLastWasSpace = false; } } +void wxHtmlWinParser::DoAddText(wxChar *temp, int& templen, wxChar nbsp) +{ + temp[templen] = 0; + templen = 0; +#if !wxUSE_UNICODE + if (m_EncConv) + m_EncConv->Convert(temp); +#endif + size_t len = wxStrlen(temp); + for (size_t j = 0; j < len; j++) + { + if (temp[j] == nbsp) + temp[j] = wxT(' '); + } + + wxHtmlCell *c = new wxHtmlWordCell(temp, *(GetDC())); + + if (m_UseLink) + c->SetLink(m_Link); + m_Container->InsertCell(c); + ((wxHtmlWordCell*)c)->SetPreviousWord(m_lastWordCell); + m_lastWordCell = (wxHtmlWordCell*)c; +} + wxHtmlContainerCell* wxHtmlWinParser::OpenContainer()