summaryrefslogtreecommitdiff
path: root/writerfilter/source/dmapper/FontTable.cxx
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@suse.cz>2013-06-06 19:48:03 +0200
committerLuboš Luňák <l.lunak@suse.cz>2013-06-11 16:22:03 +0200
commit47f218fcf4ba9de325e5721d2c4f27794677e87f (patch)
treeae0346160e130b66f5c9779123d06ed20e08baa7 /writerfilter/source/dmapper/FontTable.cxx
parent9e851b69d13935a055ffcf08b9171330bbf5ebbb (diff)
hack for reading properly textencoding for opensymbol from old LO
Which did it because of bullet font not having it correctly (fixed in 44c133ef996e32ebdfc9560bcf14b0cd77196a9e). Change-Id: I6992de03816661cf6970140eb35816e26cf0e612
Diffstat (limited to 'writerfilter/source/dmapper/FontTable.cxx')
-rw-r--r--writerfilter/source/dmapper/FontTable.cxx8
1 files changed, 8 insertions, 0 deletions
diff --git a/writerfilter/source/dmapper/FontTable.cxx b/writerfilter/source/dmapper/FontTable.cxx
index 47fdc012549b..8466147fecfa 100644
--- a/writerfilter/source/dmapper/FontTable.cxx
+++ b/writerfilter/source/dmapper/FontTable.cxx
@@ -25,6 +25,7 @@
#include <stdio.h>
#include <rtl/tencinfo.h>
#include <vcl/embeddedfontshelper.hxx>
+#include <unotools/fontdefs.hxx>
#include "dmapperLoggers.hxx"
@@ -100,13 +101,20 @@ void FontTable::lcl_attribute(Id Name, Value & val)
case NS_ooxml::LN_CT_Charset_val:
// w:characterSet has higher priority, set only if that one is not set
if( m_pImpl->pCurrentEntry->nTextEncoding == RTL_TEXTENCODING_DONTKNOW )
+ {
m_pImpl->pCurrentEntry->nTextEncoding = rtl_getTextEncodingFromWindowsCharset( nIntValue );
+ if( IsStarSymbol( m_pImpl->pCurrentEntry->sFontName ))
+ m_pImpl->pCurrentEntry->nTextEncoding = RTL_TEXTENCODING_SYMBOL;
+ }
break;
case NS_ooxml::LN_CT_Charset_characterSet:
{
OString tmp;
sValue.convertToString( &tmp, RTL_TEXTENCODING_ASCII_US, OUSTRING_TO_OSTRING_CVTFLAGS );
m_pImpl->pCurrentEntry->nTextEncoding = rtl_getTextEncodingFromMimeCharset( tmp.getStr() );
+ // Older LO versions used to write incorrect character set for OpenSymbol, fix.
+ if( IsStarSymbol( m_pImpl->pCurrentEntry->sFontName ))
+ m_pImpl->pCurrentEntry->nTextEncoding = RTL_TEXTENCODING_SYMBOL;
break;
}
default: