diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-03-01 09:19:41 +0100 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2016-04-04 23:56:26 +0200 |
commit | f2fda745d6f11ea599bcb36eb33fef305e07110e (patch) | |
tree | 89046a6d537120d9f6f779827bea469c7ee87834 /writerfilter | |
parent | 6fdbedf117ed1929adb52e566174cdeaf44616db (diff) |
tdf#96326 RTF import: handle checkbox form field undefined result
The RTF spec is quite terse on how the form filed result should be
interpreted, but the binary equivalent documents properly that
checkboxes have 3 valid states: 0, 1 and 25, the later meaning
undefined. Use the default value in that case.
(cherry picked from commit 829596eb36de32bd87b426d9ad11901eabeae7be)
Change-Id: I672bf8d1f63d7880227b7fa7b5c81f91e1877b2a
Reviewed-on: https://gerrit.libreoffice.org/23511
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
(cherry picked from commit 8de829c25511add434373e58e69df997d25e1e5c)
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/source/rtftok/rtfdocumentimpl.cxx | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index f9cf14618b63..db18c5b513e6 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -4438,7 +4438,8 @@ RTFError RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) m_aFormfieldSprms.set(NS_ooxml::LN_CT_FFDDList_default, pIntValue); break; case RTF_FFRES: - if (m_nFormFieldType == RTFFormFieldType::CHECKBOX) + // 25 means undefined, see [MS-DOC] 2.9.79, FFDataBits. + if (m_nFormFieldType == RTFFormFieldType::CHECKBOX && nParam != 25) m_aFormfieldSprms.set(NS_ooxml::LN_CT_FFCheckBox_checked, pIntValue); else if (m_nFormFieldType == RTFFormFieldType::LIST) m_aFormfieldSprms.set(NS_ooxml::LN_CT_FFDDList_result, pIntValue); |