X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6a603a10e77f719458939d117e46f7d8ed0b372b..3201a1046ba71ba8e5ef2ed694fde34d12f743f3:/src/html/winpars.cpp diff --git a/src/html/winpars.cpp b/src/html/winpars.cpp index 9b5adbdfb1..ac32fb27bf 100644 --- a/src/html/winpars.cpp +++ b/src/html/winpars.cpp @@ -345,15 +345,18 @@ wxFSFile *wxHtmlWinParser::OpenURL(wxHtmlURLType type, return GetFS()->OpenFile(myurl, flags); } +#define NBSP_UNICODE_VALUE (wxChar(160)) +#if !wxUSE_UNICODE + #define CUR_NBSP_VALUE m_nbsp +#else + #define CUR_NBSP_VALUE NBSP_UNICODE_VALUE +#endif + void wxHtmlWinParser::AddText(const wxString& txt) { - #define NBSP_UNICODE_VALUE (wxChar(160)) #if !wxUSE_UNICODE if ( m_nbsp == 0 ) m_nbsp = GetEntitiesParser()->GetCharForCode(NBSP_UNICODE_VALUE); - #define CUR_NBSP_VALUE m_nbsp -#else - #define CUR_NBSP_VALUE NBSP_UNICODE_VALUE #endif if ( m_whitespaceMode == Whitespace_Normal ) @@ -385,7 +388,7 @@ void wxHtmlWinParser::AddText(const wxString& txt) while (i < end) { size_t x = 0; - wxChar d = *i; + const wxChar d = temp[templen++] = *i; if ((d == wxT('\n')) || (d == wxT('\r')) || (d == wxT(' ')) || (d == wxT('\t'))) { ++i, ++x; @@ -402,11 +405,6 @@ void wxHtmlWinParser::AddText(const wxString& txt) ++i; } - if (d == CUR_NBSP_VALUE) - d = ' '; - - temp[templen++] = d; - if (x) { temp[templen-1] = wxT(' '); @@ -445,6 +443,12 @@ void wxHtmlWinParser::FlushWordBuf(wxChar *buf, int& len) { buf[len] = 0; + for ( int i = 0; i < len; i++ ) + { + if ( buf[i] == CUR_NBSP_VALUE ) + buf[i] = ' '; + } + #if !wxUSE_UNICODE if (m_EncConv) m_EncConv->Convert(buf); @@ -473,7 +477,6 @@ void wxHtmlWinParser::AddPreBlock(const wxString& text) const wxString::const_iterator end = text.end(); wxString::const_iterator copyFrom = text.begin(); - size_t posFrom = 0; size_t pos = 0; int posColumn = m_posColumn; for ( wxString::const_iterator i = copyFrom; i != end; ++i, ++pos ) @@ -489,7 +492,6 @@ void wxHtmlWinParser::AddPreBlock(const wxString& text) posColumn += expandTo; copyFrom = i + 1; - posFrom = pos + 1; } else {