/////////////////////////////////////////////////////////////////////////////// // ReplaceCharEntities void CXHtmlDraw::ReplaceCharEntities(TCHAR * buf, size_t buflen) { _ASSERTE(buf); if (buf) { if (_tcschr(buf, _T('\001'))) { TCHAR *cp1 = buf; TCHAR *cp2 = buf; while (cp1 < (buf + buflen)) { TCHAR c = *cp1++; if (c == _T('\0')) break; if (c == _T('\001')) // is this a char entity? { // get next char - it is table index c = *cp1++; if (c == _T('\0')) break; c = GetCharEntity(c); } *cp2++ = c; } *cp2 = _T('\0'); } } }
/////////////////////////////////////////////////////////////////////////////// // GetNextWord CString CXHTMLStatic::GetNextWord(TCHAR **ppText, BOOL * pbReturnSeen) { CString strWord; strWord = _T(""); TCHAR *pText = *ppText; *pbReturnSeen = FALSE; // skip to next word for(;;) { if (*pText == _T('\0')) break; // skip \r if (*pText == _T('\r')) pText++; // \n = new line if (*pText == _T('\n')) { strWord += _T(' '); pText++; *pbReturnSeen = TRUE; break; } TCHAR c = *pText; // process character entities if (c == _T('\001')) { c = *++pText; c = GetCharEntity(c); } strWord += c; if (*pText++ == _T(' ')) break; } *ppText = pText; return strWord; }