editeng/source/editeng/impedit4.cxx |    7 +++++++
 1 file changed, 7 insertions(+)

New commits:
commit a4a865a85cfc922e75ed2ad5188e45a76bca92aa
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Fri Nov 18 11:22:17 2022 +0000
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Fri Nov 18 14:54:53 2022 +0100

    tdf#47679 explicitly don't write fcharset2 for text in OpenSymbol
    
    we don't convert to the charsets we claim the fonts are in when
    we write our text so rtf imports mangle this dubious output.
    
    cheapest thing is to just write default fcharset0 for OpenSymbol
    
    Change-Id: Iea0e0d3a9bda5b5c7bcffba8499195f50e214aa4
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142935
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/editeng/source/editeng/impedit4.cxx 
b/editeng/source/editeng/impedit4.cxx
index bc83fc412c75..85b771bc5a29 100644
--- a/editeng/source/editeng/impedit4.cxx
+++ b/editeng/source/editeng/impedit4.cxx
@@ -357,6 +357,13 @@ ErrCode ImpEditEngine::WriteRTF( SvStream& rOutput, 
EditSelection aSel )
         rOutput.WriteUInt32AsString( nVal );
 
         rtl_TextEncoding eChrSet = pFontItem->GetCharSet();
+        // tdf#47679 OpenSymbol is not encoded in Symbol Encoding
+        // and anyway we always attempt to write as eDestEnc
+        // of RTL_TEXTENCODING_MS_1252 and pay no attention
+        // on export what encoding we claim to use for these
+        // fonts.
+        if (IsStarSymbol(pFontItem->GetFamilyName()))
+            eChrSet = RTL_TEXTENCODING_UTF8;
         DBG_ASSERT( eChrSet != 9, "SystemCharSet?!" );
         if( RTL_TEXTENCODING_DONTKNOW == eChrSet )
             eChrSet = osl_getThreadTextEncoding();

Reply via email to