diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2013-12-05 11:33:56 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2013-12-05 11:56:40 +0100 |
commit | bf53bea48d5184455841a8d8963eea35293c0b8e (patch) | |
tree | b20568c8bcde32e5f9cd2d5c6581e17a287e1f48 /writerfilter | |
parent | 771a00e197b23fe654ffa700773198b551d87c3b (diff) |
cp#1000017 DOCX/RTF import: avoid fake tab char in footnotes
Word wants this, so it's added by the exporter to the document, but on
import we should ignore it.
Change-Id: Idcb669ba624bf462a50a85eb4aacf397afb6efe6
(cherry picked from commit b38629ae210b204a6d24d6e9c5c62eaaf563d494)
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper.cxx | 5 | ||||
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper_Impl.cxx | 6 | ||||
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper_Impl.hxx | 2 |
3 files changed, 13 insertions, 0 deletions
diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx index ae81ad54ef70..06ea11cf4834 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -3859,6 +3859,11 @@ void DomainMapper::lcl_utext(const sal_uInt8 * data_, size_t len) m_pImpl->m_bHasFtnSep = true; return; } + else if (len == 1 && sText[0] == '\t' && m_pImpl->m_bIgnoreNextTab) + { + m_pImpl->m_bIgnoreNextTab = false; + return; + } try { diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index 3181c9f42657..6b9562b0d6ac 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -177,6 +177,7 @@ DomainMapper_Impl::DomainMapper_Impl( m_nTableDepth(0), m_bHasFtnSep(false), m_bIgnoreNextPara(false), + m_bIgnoreNextTab(false), m_bFrameBtLr(false) { @@ -1531,6 +1532,11 @@ void DomainMapper_Impl::PushFootOrEndnote( bool bIsFootnote ) // Redlines for the footnote anchor CheckRedline( xFootnote->getAnchor( ) ); + + // Word has a leading tab on footnotes, but we don't implement space + // between the footnote number and text using a tab, so just ignore + // that for now. + m_bIgnoreNextTab = true; } catch( const uno::Exception& e ) { diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.hxx b/writerfilter/source/dmapper/DomainMapper_Impl.hxx index 130ee1ab6a28..1ebf0674bc7c 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.hxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.hxx @@ -725,6 +725,8 @@ public: /// If the next newline should be ignored, used by the special footnote separator paragraph. bool m_bIgnoreNextPara; + /// If the next tab should be ignored, used for footnotes. + bool m_bIgnoreNextTab; bool m_bFrameBtLr; ///< Bottom to top, left to right text frame direction is requested for the current text frame. /// Pending floating tables: they may be converted to text frames at the section end. std::vector<FloatingTableInfo> m_aPendingFloatingTables; |