summaryrefslogtreecommitdiff
path: root/writerfilter
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2013-12-05 11:33:56 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2013-12-05 11:56:40 +0100
commitbf53bea48d5184455841a8d8963eea35293c0b8e (patch)
treeb20568c8bcde32e5f9cd2d5c6581e17a287e1f48 /writerfilter
parent771a00e197b23fe654ffa700773198b551d87c3b (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.cxx5
-rw-r--r--writerfilter/source/dmapper/DomainMapper_Impl.cxx6
-rw-r--r--writerfilter/source/dmapper/DomainMapper_Impl.hxx2
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;