sw/qa/extras/rtfimport/data/fdo54473.rtf | 10 ++++++++++ sw/qa/extras/rtfimport/rtfimport.cxx | 9 +++++++++ writerfilter/source/rtftok/rtfdocumentimpl.cxx | 2 +- 3 files changed, 20 insertions(+), 1 deletion(-)
New commits: commit 41890bf714803969515578b47e63fa9730ea7090 Author: Miklos Vajna <vmik...@suse.cz> Date: Tue Dec 4 10:38:53 2012 +0100 fdo#54473 fdo#57133 fix RTF import of character styles Regression from commit d2d77fd86e6cb7341e113557e2cfe3d7948759bd Change-Id: I7accc5c383de3fa53c12527766c3fc155bfa9863 diff --git a/sw/qa/extras/rtfimport/data/fdo54473.rtf b/sw/qa/extras/rtfimport/data/fdo54473.rtf new file mode 100644 index 0000000..7bb6208 --- /dev/null +++ b/sw/qa/extras/rtfimport/data/fdo54473.rtf @@ -0,0 +1,10 @@ +{\rtf1\ansi +{\stylesheet +{\*\cs16\ul Anot;} +{\*\cs15\i ForeignTxt;} +} +{\cs16\ul Text } +with +{\cs15\i character } +formatting +\par } diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx index 7853fc3..826ca96 100644 --- a/sw/qa/extras/rtfimport/rtfimport.cxx +++ b/sw/qa/extras/rtfimport/rtfimport.cxx @@ -127,6 +127,7 @@ public: void testFdo48442(); void testFdo55525(); void testFdo57708(); + void testFdo54473(); CPPUNIT_TEST_SUITE(Test); #if !defined(MACOSX) && !defined(WNT) @@ -204,6 +205,7 @@ void Test::run() {"fdo48442.rtf", &Test::testFdo48442}, {"fdo55525.rtf", &Test::testFdo55525}, {"fdo57708.rtf", &Test::testFdo57708}, + {"fdo54473.rtf", &Test::testFdo54473}, }; for (unsigned int i = 0; i < SAL_N_ELEMENTS(aMethods); ++i) { @@ -941,6 +943,13 @@ void Test::testFdo57708() CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xDraws->getCount()); } +void Test::testFdo54473() +{ + // The problem was that character styles were not imported due to a typo. + CPPUNIT_ASSERT_EQUAL(OUString("Anot"), getProperty<OUString>(getRun(getParagraph(1), 1, "Text "), "CharStyleName")); + CPPUNIT_ASSERT_EQUAL(OUString("ForeignTxt"), getProperty<OUString>(getRun(getParagraph(1), 3, "character "), "CharStyleName")); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Test); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index 9c988d7..aa90d3b 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -2673,7 +2673,7 @@ int RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) m_aStates.top().aParagraphAttributes.set(NS_rtf::LN_ISTD, pIntValue); break; case RTF_CS: - if (m_aStates.top().nDestinationState == DESTINATION_STYLESHEET) + if (m_aStates.top().nDestinationState == DESTINATION_STYLESHEET || m_aStates.top().nDestinationState == DESTINATION_STYLEENTRY) { m_nCurrentStyleIndex = nParam; m_aStates.top().aTableAttributes.set(NS_rtf::LN_ISTD, pIntValue); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits