svtools/source/svhtml/parhtml.cxx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
New commits: commit 06588308fb3f3760fd9dce2a0ad0c8859c0b41a3 Author: Michael Stahl <[email protected]> AuthorDate: Tue Nov 16 14:28:15 2021 +0100 Commit: Michael Stahl <[email protected]> CommitDate: Wed Nov 17 10:32:31 2021 +0100 ofz#40766 svtools, sw: HTMLParser: really stop inserting control chars 35d248cab1f0d4800f72abb5cb6afb56f40d9083 forgot to fix one place where control characters were in a presumed XML declaration. Another place looks missing where comments are handled, but it's not clear if these can be passed on to Writer. Revert the previous fix from commit b3325ef8cdfc2c82eec34e747106f75a9fccb7e4. Change-Id: I11ad13de9122533626e512ce0384051e3e5bd97f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125306 Tested-by: Jenkins Reviewed-by: Michael Stahl <[email protected]> (cherry picked from commit a7116b890ccd6dd1721413b4de6591a8057668ef) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125333 Tested-by: Michael Stahl <[email protected]> diff --git a/svtools/source/svhtml/parhtml.cxx b/svtools/source/svhtml/parhtml.cxx index 67f5a87862ad..563ef0f76755 100644 --- a/svtools/source/svhtml/parhtml.cxx +++ b/svtools/source/svhtml/parhtml.cxx @@ -1058,6 +1058,7 @@ HtmlTokenId HTMLParser::GetNextToken_() sTmpBuffer.appendUtf32( nNextCh ); nNextCh = GetNextChar(); } while( '>' != nNextCh && '/' != nNextCh && !rtl::isAsciiWhiteSpace( nNextCh ) && + !linguistic::IsControlChar(nNextCh) && IsParserWorking() && !rInput.eof() ); if( !sTmpBuffer.isEmpty() ) @@ -1135,8 +1136,11 @@ HtmlTokenId HTMLParser::GetNextToken_() if( !bDone ) sTmpBuffer.appendUtf32(nNextCh); } - else + else if (!linguistic::IsControlChar(nNextCh) + || nNextCh == '\r' || nNextCh == '\n' || nNextCh == '\t') + { sTmpBuffer.appendUtf32(nNextCh); + } if( !bDone ) nNextCh = GetNextChar(); }
