diff options
-rw-r--r-- | sw/qa/extras/rtfimport/data/fdo85812.rtf | 8 | ||||
-rw-r--r-- | sw/qa/extras/rtfimport/rtfimport.cxx | 10 | ||||
-rw-r--r-- | writerfilter/source/rtftok/rtfdocumentimpl.cxx | 2 |
3 files changed, 20 insertions, 0 deletions
diff --git a/sw/qa/extras/rtfimport/data/fdo85812.rtf b/sw/qa/extras/rtfimport/data/fdo85812.rtf new file mode 100644 index 000000000000..2f3e10c96a34 --- /dev/null +++ b/sw/qa/extras/rtfimport/data/fdo85812.rtf @@ -0,0 +1,8 @@ +{\rtf1\ansi\deflang1049\deflangfe2052 +{\*\generator Microsoft Word 11.0.5604;} + +\pard\plain +\lang1049\langfe2052\loch\hich\dbch\langnp1049\langfenp2052 +{\lang1033\langfe2052\dbch\langnp1033 \hich\dbch\loch This } +{\lang1036\langfe2052\langnp1036 \par } +} diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx index 6639948ce305..a4dd898c0236 100644 --- a/sw/qa/extras/rtfimport/rtfimport.cxx +++ b/sw/qa/extras/rtfimport/rtfimport.cxx @@ -474,6 +474,16 @@ DECLARE_RTFIMPORT_TEST(testFdo48037, "fdo48037.rtf") CPPUNIT_ASSERT_EQUAL(nExpected, nActual); } +DECLARE_RTFIMPORT_TEST(testFdo85812, "fdo85812.rtf") +{ + lang::Locale locale(getProperty<lang::Locale>( + getRun(getParagraph(1), 1, "This "), "CharLocale")); + // the \lang inside the group was applied to CJK not Western + CPPUNIT_ASSERT_EQUAL(OUString("en"), locale.Language); + CPPUNIT_ASSERT_EQUAL(OUString("US"), locale.Country); + +} + DECLARE_RTFIMPORT_TEST(testFdo47764, "fdo47764.rtf") { // \cbpat with zero argument should mean the auto (-1) color, not a default color (black) diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index 53460e599188..99693f3fe564 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -4828,6 +4828,8 @@ int RTFDocumentImpl::pushState() m_aStates.push(m_aStates.top()); } m_aStates.top().aDestinationText.setLength(0); // was copied: always reset! + m_aStates.top().isRightToLeft = false; // fdo#85812 group resets run type + m_aStates.top().eRunType = RTFParserState::LOCH; m_pTokenizer->pushGroup(); |