diff options
author | Luboš Luňák <l.lunak@suse.cz> | 2013-06-06 19:48:03 +0200 |
---|---|---|
committer | Luboš Luňák <l.lunak@suse.cz> | 2013-06-11 16:22:03 +0200 |
commit | 47f218fcf4ba9de325e5721d2c4f27794677e87f (patch) | |
tree | ae0346160e130b66f5c9779123d06ed20e08baa7 /writerfilter/source/dmapper/FontTable.cxx | |
parent | 9e851b69d13935a055ffcf08b9171330bbf5ebbb (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.cxx | 8 |
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: |