Blob Blame History Raw
From a771f5e490bb14d81378b57fa096c4a30b29fc28 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Mon, 26 Jan 2015 15:00:29 +0000
Subject: [PATCH] don't strip font names of apparent script suffixes anymore

e.g. "CM Roman CE" should be left alone.

bump font cache id to invalidate old cached lists

I think this practice stems from Window 3.1/Word 95 where the encoding was
included in the font name
http://www.webcenter.ru/~kazarn/eng/fonts_ttf.htm#charsettbl Microsoft Office
still generates RTF files with weird-ass Win 3.1 style fontnames but any actual
existing fonts that happen to have names that fall into that pattern should be
left alone now.

Change-Id: Ibb704048d63b33ce510d6b1076700c6e94a0af2a
---
 unotools/source/misc/fontdefs.cxx | 29 +----------------------------
 1 file changed, 1 insertion(+), 28 deletions(-)

diff --git a/unotools/source/misc/fontdefs.cxx b/unotools/source/misc/fontdefs.cxx
index 61f6a07..006ab90 100644
--- a/unotools/source/misc/fontdefs.cxx
+++ b/unotools/source/misc/fontdefs.cxx
@@ -332,34 +332,7 @@ void GetEnglishSearchFontName( OUString& rName )
     if ( i != nLen )
         rName = rName.copy( 0, i );
 
-    // Remove Script at the end
-    // Scriptname must be the last part of the fontname and
-    // looks like "fontname (scriptname)". So there can only be a
-    // script name at the and of the fontname, when the last char is ')'
-    if ( (nLen >= 3) && rName[ nLen-1 ] == ')' )
-    {
-        int nOpen = 1;
-        sal_Int32 nTempLen = nLen-2;
-        while ( nTempLen )
-        {
-            if ( rName[ nTempLen ] == '(' )
-            {
-                nOpen--;
-                if ( !nOpen )
-                {
-                    // Remove Space at the end
-                    if ( nTempLen && (rName[ nTempLen-1 ] == ' ') )
-                        nTempLen--;
-                    rName = rName.copy( 0, nTempLen );
-                    nLen = nTempLen;
-                    break;
-                }
-            }
-            if ( rName[ nTempLen ] == ')' )
-                nOpen++;
-            nTempLen--;
-        }
-    }
+    nLen = rName.getLength();
 
     // remove all whitespaces and converts to lower case ASCII
     // TODO: better transliteration to ASCII e.g. all digits
-- 
1.9.3