diff options
author | Miklos Vajna <vmiklos@suse.cz> | 2012-10-30 16:41:24 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@suse.cz> | 2012-10-30 17:42:34 +0100 |
commit | b99b91763f96dcd5ff24c2d4cd9233a493b58aa0 (patch) | |
tree | 81d74ca9b55fdf61599dc049446684f75230e40d /writerfilter | |
parent | SvTreeList::GetEntry: detect an out-of-bound and return NULL in that case (diff) | |
download | core-b99b91763f96dcd5ff24c2d4cd9233a493b58aa0.tar.gz core-b99b91763f96dcd5ff24c2d4cd9233a493b58aa0.zip |
fdo#56512 fix RTF import of non-unicode Hebrew text
The trick here is that we can't just fall back to Hebrew encoding for
the whole document, as that would mirror shapes as well. Instead, check
where \rtlch is used, and there fall back to the default encoding.
Change-Id: Iaf155912fab6a559ed165870b8524c23cabcb86d
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/source/rtftok/rtfdocumentimpl.cxx | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index f350a7f06458..2333f5263405 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -2064,8 +2064,11 @@ int RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword) } break; case RTF_LTRCH: + // dmapper does not support this. + break; case RTF_RTLCH: - // dmapper does not support these. + if (m_aDefaultState.nCurrentEncoding == RTL_TEXTENCODING_MS_1255) + m_aStates.top().nCurrentEncoding = m_aDefaultState.nCurrentEncoding; break; case RTF_ULNONE: { @@ -2587,6 +2590,7 @@ int RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) } break; case RTF_ANSICPG: + m_aDefaultState.nCurrentEncoding = rtl_getTextEncodingFromWindowsCodePage(nParam); m_aStates.top().nCurrentEncoding = rtl_getTextEncodingFromWindowsCodePage(nParam); break; case RTF_CPG: |