From 247dabcb0b92a62b233ec0237deac84e6675325c Mon Sep 17 00:00:00 2001 From: Mike Kaganski Date: Thu, 3 May 2018 15:09:40 +0300 Subject: tdf#117268: treat erroneous \itap0 the same way as Word does ... so that if we are inside a table, it would not convert table paragraphs into top-level paragraphs. (The in-the-wild documents with this invalid input are, e.g., generated by Consultant+ legal reference database). Change-Id: I45eb9073a0651bc963badb84229ce5ae437f1a8c Reviewed-on: https://gerrit.libreoffice.org/53790 Tested-by: Jenkins Reviewed-by: Mike Kaganski --- writerfilter/source/rtftok/rtfdispatchvalue.cxx | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'writerfilter') diff --git a/writerfilter/source/rtftok/rtfdispatchvalue.cxx b/writerfilter/source/rtftok/rtfdispatchvalue.cxx index 27f3d9ae9de9..11fe8e6237bd 100644 --- a/writerfilter/source/rtftok/rtfdispatchvalue.cxx +++ b/writerfilter/source/rtftok/rtfdispatchvalue.cxx @@ -227,6 +227,13 @@ RTFError RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) { case RTF_ITAP: nSprm = NS_ooxml::LN_tblDepth; + // tdf#117268: If \itap0 is encountered inside tables (between \cellxN and \cell), then + // use the default value (1), as Word apparently does + if (nParam == 0 && (m_nTopLevelCells != 0 || m_nNestedCells != 0)) + { + nParam = 1; + pIntValue = std::make_shared(nParam); + } break; default: break; -- cgit