sw/qa/extras/rtfexport/data/tdf129578_lostBI.rtf |   31 +++++++++++++++++++++++
 sw/qa/extras/rtfexport/rtfexport4.cxx            |    9 ++++++
 writerfilter/source/rtftok/rtfdocumentimpl.cxx   |    4 +-
 3 files changed, 42 insertions(+), 2 deletions(-)

New commits:
commit 9d50307b2e1fd26d415539d3ed8624c7a449e45b
Author:     Justin Luth <justin_l...@sil.org>
AuthorDate: Fri Jan 7 14:08:52 2022 +0200
Commit:     Justin Luth <jl...@mail.com>
CommitDate: Wed Feb 2 05:03:05 2022 +0100

    tdf#129578 rtfimport: CJK char properties are not CS
    
    This fixes a LO 6.4/6.3.0.1 regression caused by
    commit fd95fb975b754d71d3750e85431a4e596a40e659
    which was focused on export, and not import.
    
    The code originally didn't have any
    mention of DBCH, so it used the default.
    However, in the 6.4 change, it was wrongly tied together
    with the Complex Script indicator.
    
    So revert that part of the change.
    Mark fixed the same problem in 7.1 for font size.
    
    Change-Id: I1c87ae856de93ebc693135585574f2eb144b214b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128113
    Tested-by: Jenkins
    Reviewed-by: Justin Luth <jl...@mail.com>

diff --git a/sw/qa/extras/rtfexport/data/tdf129578_lostBI.rtf 
b/sw/qa/extras/rtfexport/data/tdf129578_lostBI.rtf
new file mode 100644
index 000000000000..8a0e96218bca
--- /dev/null
+++ b/sw/qa/extras/rtfexport/data/tdf129578_lostBI.rtf
@@ -0,0 +1,31 @@
+{\rtf1\ansi\deff4\adeflang1025
+{\fonttbl{\f0\froman\fprq2\fcharset0 Times New 
Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 
Arial;}{\f3\froman\fprq2\fcharset0 Liberation Serif{\*\falt Times New 
Roman};}{\f4\froman\fprq0\fcharset128 Calibri;}{\f5\froman\fprq0\fcharset128 
Times New Roman;}{\f6\froman\fprq0\fcharset128 
Cambria;}{\f7\froman\fprq0\fcharset128 Tahoma;}{\f8\fnil\fprq2\fcharset0 MS 
Mincho;}{\f9\fnil\fprq2\fcharset128 
\'91\'76\'91\'cc;}{\f10\fnil\fprq2\fcharset0 DejaVu 
Sans;}{\f11\froman\fprq0\fcharset128 Arial;}}
+{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red82\green125\blue85;}
+{\stylesheet{\s0\snext0\rtlch\af11\afs22\alang1037 
\ltrch\lang1033\langfe2052\hich\af4\loch\sl276\slmult1\ql\widctlpar\hyphpar0\sb0\sa200\ltrpar\cf0\f4\fs22\lang1033\kerning0\dbch\af9\langfe2052
 Normal;}
+{\s1\sbasedon0\snext0\rtlch\af5\afs28\alang1037\ab 
\ltrch\lang1033\langfe2052\hich\af6\loch\sl276\slmult1\ql\keep\widctlpar\hyphpar0\sb480\sa0\keepn\ltrpar\cf17\f6\fs28\lang1033\b\kerning0\dbch\af9\langfe2052
 Heading 1;}
+{\*\cs15\snext15 Default Paragraph Font;}
+{\*\cs16\sbasedon15\snext16 Header Char;}
+{\*\cs17\sbasedon15\snext17 Footer Char;}
+{\*\cs18\sbasedon15\snext18\rtlch\af5\afs28\ab 
\ltrch\hich\af6\loch\cf17\f6\fs28\b\dbch\af9 Heading 1 Char;}
+{\*\cs19\sbasedon15\snext19\rtlch\af7\afs16 \ltrch\hich\af7\loch\f7\fs16 
Balloon Text Char;}
+{\s20\sbasedon0\snext21\rtlch\af5\afs28\alang1037 
\ltrch\lang1033\langfe2052\hich\af5\loch\sl276\slmult1\ql\widctlpar\hyphpar0\sb240\sa120\keepn\ltrpar\cf0\f5\fs28\lang1033\kerning0\dbch\af10\langfe2052
 Heading;}
+{\s21\sbasedon0\snext21\rtlch\af11\afs22\alang1037 
\ltrch\lang1033\langfe2052\hich\af4\loch\sl276\slmult1\ql\widctlpar\hyphpar0\sb0\sa140\ltrpar\cf0\f4\fs22\lang1033\kerning0\dbch\af9\langfe2052
 Text Body;}
+{\s22\sbasedon21\snext22\rtlch\af5\afs22\alang1037 
\ltrch\lang1033\langfe2052\hich\af5\loch\sl276\slmult1\ql\widctlpar\hyphpar0\sb0\sa140\ltrpar\cf0\f5\fs22\lang1033\kerning0\dbch\af9\langfe2052
 List;}
+{\s23\sbasedon0\snext23\rtlch\af5\afs24\alang1037\ai 
\ltrch\lang1033\langfe2052\hich\af5\loch\sl276\slmult1\ql\widctlpar\hyphpar0\sb120\sa120\noline\ltrpar\cf0\f5\fs24\lang1033\i\kerning0\dbch\af9\langfe2052
 Caption;}
+{\s24\sbasedon0\snext24\rtlch\af5\afs22\alang1037 
\ltrch\lang1033\langfe2052\hich\af5\loch\sl276\slmult1\ql\widctlpar\hyphpar0\sb0\sa200\noline\ltrpar\cf0\f5\fs22\lang1033\kerning0\dbch\af9\langfe2052
 Index;}
+{\s25\sbasedon0\snext25\rtlch\af11\afs22\alang1037 
\ltrch\lang1033\langfe2052\hich\af4\loch\sl276\slmult1\ql\widctlpar\hyphpar0\sb0\sa200\ltrpar\cf0\f4\fs22\lang1033\kerning0\dbch\af9\langfe2052
 Header and Footer;}
+{\s26\sbasedon0\snext26\rtlch\af11\afs22\alang1037 
\ltrch\lang1033\langfe2052\hich\af4\loch\sl240\slmult1\ql\widctlpar\tqc\tx4680\tqr\tx9360\hyphpar0\sb0\sa0\ltrpar\cf0\f4\fs22\lang1033\kerning0\dbch\af9\langfe2052
 Header;}
+{\s27\sbasedon0\snext27\rtlch\af11\afs22\alang1037 
\ltrch\lang1033\langfe2052\hich\af4\loch\sl240\slmult1\ql\widctlpar\tqc\tx4680\tqr\tx9360\hyphpar0\sb0\sa0\ltrpar\cf0\f4\fs22\lang1033\kerning0\dbch\af9\langfe2052
 Footer;}
+{\s28\sbasedon1\snext0\rtlch\af5\afs28\alang1025\ab 
\ltrch\lang1033\langfe1041\hich\af6\loch\sl276\slmult1\ql\keep\widctlpar\hyphpar0\sb480\sa0\keepn\ltrpar\cf17\f6\fs28\lang1033\b\kerning0\dbch\af9\langfe1041
 TOC Heading;}
+{\s29\sbasedon0\snext29\rtlch\af7\afs16\alang1037 
\ltrch\lang1033\langfe2052\hich\af7\loch\sl240\slmult1\ql\widctlpar\hyphpar0\sb0\sa0\ltrpar\cf0\f7\fs16\lang1033\kerning0\dbch\af9\langfe2052
 Balloon Text;}
+{\s30\snext30\rtlch\af11\afs22\alang1037 
\ltrch\lang1033\langfe2052\hich\af4\loch\sl240\slmult1\ql\widctlpar\hyphpar0\sb0\sa0\ltrpar\cf0\f4\fs22\lang1033\kerning0\dbch\af9\langfe2052
 Revision;}
+}{\*\generator LibreOffice/7.1.7.2$Linux_X86_64 
LibreOffice_project/10$Build-2}{\info{\*\company Amazon.com}{\author 
EC2}{\creatim\yr2013\mo1\dy21\hr9\min3}{\revtim\yr2022\mo1\dy7\hr11\min5}{\printim\yr0\mo0\dy0\hr0\min0}}{\*\userprops{\propname
 AppVersion}\proptype30{\staticval 15.0000}}\deftab720\deftab720
+\hyphauto1\viewscale50
+{\*\pgdsctbl
+{\pgdsc0\pgdscuse451\pgwsxn12240\pghsxn15840\marglsxn1440\margrsxn1440\margtsxn1440\margbsxn1440\pgdscnxt0
 Default Page Style;}}
+\formshade\paperh15840\paperw12240\margl1440\margr1440\margt1440\margb1440\sectd\sbknone\pgndec\sftnnar\saftnnrlc\sectunlocked1\pgwsxn12240\pghsxn15840\marglsxn1440\margrsxn1440\margtsxn1440\margbsxn1440\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc\htmautsp
+{\*\ftnsep\chftnsep}\pgndec\pard\plain \s0\rtlch\af11\afs22\alang1037 
\ltrch\lang1033\langfe2052\hich\af4\loch\sl276\slmult1\ql\widctlpar\hyphpar0\sb0\sa200\ltrpar\cf0\f4\fs22\lang1033\kerning0\dbch\af9\langfe2052{\rtlch\afs48\ab
 \ltrch\langfe1041\dbch\afs48\langfe1041\ab\af8\dbch
+\uc2 
\u36020\'8b\'4d\u31038\'8e\'d0\u12414\'82\'dc\u12377\'82\'b7\u12414\'82\'dc\u12377\'82\'b7\u24481\'8c\'e4\u38534\'97\'b2\u26124\'8f\'b9\u12395\'82\'c9\u12390\'82\'c4\u12362\'82\'a8\u24950\'8c\'63\u12403\'82\'d1\u30003\'90\'5c\u12375\'82\'b5\u19978\'8f\'e3\u12370\'82\'b0\u12414\'82\'dc\u12377\'82\'b7\uc1
 }
+\par \pard\plain \s0\rtlch\af11\afs22\alang1037 
\ltrch\lang1033\langfe2052\hich\af4\loch\sl276\slmult1\ql\widctlpar\hyphpar0\sb0\sa200\ltrpar\cf0\f4\fs22\lang1033\kerning0\dbch\af9\langfe2052\loch\sb0\sa200{\rtlch\afs48\ai\ab
 \ltrch\langfe1041\dbch\afs48\langfe1041\i\ab\af8\dbch
+\uc2 
\u24179\'95\'bd\u32032\'91\'66\u12399\'82\'cd\u26684\'8a\'69\u21029\'95\'ca\u12398\'82\'cc\u12372\'82\'b2\u39640\'8d\'82\u37197\'94\'7a\u12434\'82\'f0\u36060\'8e\'92\u12426\'82\'e8\u12289\'81\'41\u21402\'8c\'fa\u12367\'82\'ad\u24481\'8c\'e4\u31036\'97\'e7\u30003\'90\'5c\u12375\'82\'b5\u19978\'8f\'e3\u12370\'82\'b0\u12414\'82\'dc\u12377\'82\'b7\u12290\'81\'42\uc1
 }
+\par }
\ No newline at end of file
diff --git a/sw/qa/extras/rtfexport/rtfexport4.cxx 
b/sw/qa/extras/rtfexport/rtfexport4.cxx
index fdd8af3ec7d0..26426654d54a 100644
--- a/sw/qa/extras/rtfexport/rtfexport4.cxx
+++ b/sw/qa/extras/rtfexport/rtfexport4.cxx
@@ -9,6 +9,7 @@
 
 #include <swmodeltestbase.hxx>
 
+#include <com/sun/star/awt/FontSlant.hpp>
 #include <com/sun/star/table/ShadowFormat.hpp>
 #include <com/sun/star/text/WritingMode2.hpp>
 #include <com/sun/star/text/XDocumentIndex.hpp>
@@ -272,6 +273,14 @@ DECLARE_RTFEXPORT_TEST(testBtlrFrame, "btlr-frame.odt")
     CPPUNIT_ASSERT_EQUAL(text::WritingMode2::BT_LR, nActual);
 }
 
+DECLARE_RTFEXPORT_TEST(testTdf129578_lostBI, "tdf129578_lostBI.rtf")
+{
+    CPPUNIT_ASSERT_EQUAL(150.f, getProperty<float>(getRun(getParagraph(1), 1), 
"CharWeightAsian"));
+    CPPUNIT_ASSERT_EQUAL(
+        awt::FontSlant_ITALIC,
+        getProperty<awt::FontSlant>(getRun(getParagraph(2), 1), 
"CharPostureAsian"));
+}
+
 DECLARE_RTFEXPORT_TEST(testTdf129631_lostBorders, "tdf129631_lostBorders.rtf")
 {
     uno::Reference<container::XNameAccess> paragraphStyles = 
getStyles("ParagraphStyles");
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx 
b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index 663ac935047d..fb331f4b265a 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -1862,13 +1862,13 @@ RTFError RTFDocumentImpl::dispatchToggle(RTFKeyword 
nKeyword, bool bParam, int n
                 case RTFParserState::RunType::HICH:
                 case RTFParserState::RunType::RTLCH_LTRCH_1:
                 case RTFParserState::RunType::LTRCH_RTLCH_2:
-                case RTFParserState::RunType::DBCH:
                     nSprm = NS_ooxml::LN_EG_RPrBase_bCs;
                     break;
                 case RTFParserState::RunType::NONE:
                 case RTFParserState::RunType::LOCH:
                 case RTFParserState::RunType::LTRCH_RTLCH_1:
                 case RTFParserState::RunType::RTLCH_LTRCH_2:
+                case RTFParserState::RunType::DBCH:
                 default:
                     nSprm = NS_ooxml::LN_EG_RPrBase_b;
                     break;
@@ -1881,13 +1881,13 @@ RTFError RTFDocumentImpl::dispatchToggle(RTFKeyword 
nKeyword, bool bParam, int n
                 case RTFParserState::RunType::HICH:
                 case RTFParserState::RunType::RTLCH_LTRCH_1:
                 case RTFParserState::RunType::LTRCH_RTLCH_2:
-                case RTFParserState::RunType::DBCH:
                     nSprm = NS_ooxml::LN_EG_RPrBase_iCs;
                     break;
                 case RTFParserState::RunType::NONE:
                 case RTFParserState::RunType::LOCH:
                 case RTFParserState::RunType::LTRCH_RTLCH_1:
                 case RTFParserState::RunType::RTLCH_LTRCH_2:
+                case RTFParserState::RunType::DBCH:
                 default:
                     nSprm = NS_ooxml::LN_EG_RPrBase_i;
                     break;

Reply via email to