/[packages]/cauldron/libreoffice/releases/3.3.1.2/1.mga1/SOURCES/openoffice.org-3.1.1.ooo105784.vcl.sniffscriptforsubs.patch
ViewVC logotype

Contents of /cauldron/libreoffice/releases/3.3.1.2/1.mga1/SOURCES/openoffice.org-3.1.1.ooo105784.vcl.sniffscriptforsubs.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 389214 - (show annotations) (download)
Thu Jan 17 21:30:27 2013 UTC (11 years, 2 months ago) by pterjan
File size: 8627 byte(s)
oops
1 diff -ru vcl.orig/unx/source/fontmanager/fontconfig.cxx vcl/unx/source/fontmanager/fontconfig.cxx
2 --- vcl.orig/unx/source/fontmanager/fontconfig.cxx 2009-10-08 13:25:00.000000000 +0100
3 +++ vcl/unx/source/fontmanager/fontconfig.cxx 2009-10-08 13:51:51.000000000 +0100
4 @@ -80,6 +80,9 @@
5
6 #include "sal/alloca.h"
7
8 +#include <i18nutil/unicode.hxx> //unicode::getUnicodeScriptType
9 +#include <com/sun/star/i18n/ScriptType.hdl> //ScriptType
10 +
11 #include <utility>
12 #include <algorithm>
13
14 @@ -907,6 +910,138 @@
15 }
16 }
17
18 +static const char* pick_sample_language(const sal_uInt32 cCode)
19 +{
20 + using namespace ::com::sun::star::i18n;
21 +
22 + static ScriptTypeList aScripts[] =
23 + {
24 + { UnicodeScript_kBasicLatin, UnicodeScript_kBasicLatin, UnicodeScript_kBasicLatin },
25 + { UnicodeScript_kLatin1Supplement, UnicodeScript_kLatin1Supplement, UnicodeScript_kLatin1Supplement },
26 + { UnicodeScript_kLatinExtendedA, UnicodeScript_kLatinExtendedA, UnicodeScript_kLatinExtendedA },
27 + { UnicodeScript_kLatinExtendedB, UnicodeScript_kLatinExtendedB, UnicodeScript_kLatinExtendedB },
28 + { UnicodeScript_kGreek, UnicodeScript_kGreek, UnicodeScript_kGreek },
29 + { UnicodeScript_kCyrillic, UnicodeScript_kCyrillic, UnicodeScript_kCyrillic },
30 + { UnicodeScript_kArmenian, UnicodeScript_kArmenian, UnicodeScript_kArmenian },
31 + { UnicodeScript_kHebrew, UnicodeScript_kHebrew, UnicodeScript_kHebrew },
32 + { UnicodeScript_kArabic, UnicodeScript_kArabic, UnicodeScript_kArabic },
33 + { UnicodeScript_kSyriac, UnicodeScript_kSyriac, UnicodeScript_kSyriac },
34 + { UnicodeScript_kThaana, UnicodeScript_kThaana, UnicodeScript_kThaana },
35 + { UnicodeScript_kDevanagari, UnicodeScript_kDevanagari, UnicodeScript_kDevanagari },
36 + { UnicodeScript_kBengali, UnicodeScript_kBengali, UnicodeScript_kBengali },
37 + { UnicodeScript_kGurmukhi, UnicodeScript_kGurmukhi, UnicodeScript_kGurmukhi },
38 + { UnicodeScript_kGujarati, UnicodeScript_kGujarati, UnicodeScript_kGujarati },
39 + { UnicodeScript_kOriya, UnicodeScript_kOriya, UnicodeScript_kOriya },
40 + { UnicodeScript_kTamil, UnicodeScript_kTamil, UnicodeScript_kTamil },
41 + { UnicodeScript_kTelugu, UnicodeScript_kTelugu, UnicodeScript_kTelugu },
42 + { UnicodeScript_kKannada, UnicodeScript_kKannada, UnicodeScript_kKannada },
43 + { UnicodeScript_kMalayalam, UnicodeScript_kMalayalam, UnicodeScript_kMalayalam },
44 + { UnicodeScript_kSinhala, UnicodeScript_kSinhala, UnicodeScript_kSinhala },
45 + { UnicodeScript_kThai, UnicodeScript_kThai, UnicodeScript_kThai },
46 + { UnicodeScript_kLao, UnicodeScript_kLao, UnicodeScript_kLao },
47 + { UnicodeScript_kTibetan, UnicodeScript_kTibetan, UnicodeScript_kTibetan },
48 + { UnicodeScript_kMyanmar, UnicodeScript_kMyanmar, UnicodeScript_kMyanmar },
49 + { UnicodeScript_kGeorgian, UnicodeScript_kGeorgian, UnicodeScript_kGeorgian },
50 + { UnicodeScript_kHangulJamo, UnicodeScript_kHangulJamo, UnicodeScript_kHangulJamo },
51 + { UnicodeScript_kEthiopic, UnicodeScript_kEthiopic, UnicodeScript_kEthiopic },
52 + { UnicodeScript_kCherokee, UnicodeScript_kCherokee, UnicodeScript_kCherokee },
53 + { UnicodeScript_kUnifiedCanadianAboriginalSyllabics,
54 + UnicodeScript_kUnifiedCanadianAboriginalSyllabics,
55 + UnicodeScript_kUnifiedCanadianAboriginalSyllabics },
56 + { UnicodeScript_kKhmer, UnicodeScript_kKhmer, UnicodeScript_kKhmer },
57 + { UnicodeScript_kMongolian, UnicodeScript_kMongolian, UnicodeScript_kMongolian },
58 + { UnicodeScript_kLatinExtendedAdditional, UnicodeScript_kLatinExtendedAdditional,
59 + UnicodeScript_kLatinExtendedAdditional },
60 + { UnicodeScript_kGreekExtended, UnicodeScript_kGreekExtended, UnicodeScript_kGreekExtended },
61 + { UnicodeScript_kHiragana, UnicodeScript_kHiragana, UnicodeScript_kHiragana },
62 + { UnicodeScript_kKatakana, UnicodeScript_kKatakana, UnicodeScript_kKatakana },
63 + { UnicodeScript_kHangulCompatibilityJamo, UnicodeScript_kHangulCompatibilityJamo,
64 + UnicodeScript_kHangulCompatibilityJamo },
65 + { UnicodeScript_kHangulSyllable, UnicodeScript_kHangulSyllable,
66 + UnicodeScript_kHangulSyllable },
67 + { UnicodeScript_kArabicPresentationB, UnicodeScript_kArabicPresentationB,
68 + UnicodeScript_kArabicPresentationB },
69 + { UnicodeScript_kScriptCount, UnicodeScript_kScriptCount, UnicodeScript_kScriptCount }
70 + };
71 +
72 + switch (unicode::getUnicodeScriptType(cCode, aScripts, UnicodeScript_kScriptCount))
73 + {
74 + case UnicodeScript_kBasicLatin:
75 + case UnicodeScript_kLatin1Supplement:
76 + case UnicodeScript_kLatinExtendedA:
77 + case UnicodeScript_kLatinExtendedB:
78 + case UnicodeScript_kLatinExtendedAdditional:
79 + return "en";
80 + case UnicodeScript_kGreek:
81 + case UnicodeScript_kGreekExtended:
82 + return "el";
83 + case UnicodeScript_kCyrillic:
84 + return "ru";
85 + case UnicodeScript_kArmenian:
86 + return "hy";
87 + case UnicodeScript_kHebrew:
88 + return "he";
89 + case UnicodeScript_kArabic:
90 + case UnicodeScript_kArabicPresentationB:
91 + return "ar";
92 + case UnicodeScript_kSyriac:
93 + return "syr";
94 + case UnicodeScript_kThaana:
95 + return "dv";
96 + case UnicodeScript_kDevanagari:
97 + return "hi";
98 + case UnicodeScript_kBengali:
99 + return "bn";
100 + case UnicodeScript_kGurmukhi:
101 + return "pa";
102 + case UnicodeScript_kGujarati:
103 + return "gu";
104 + case UnicodeScript_kOriya:
105 + return "or";
106 + case UnicodeScript_kTamil:
107 + return "ta";
108 + case UnicodeScript_kTelugu:
109 + return "te";
110 + case UnicodeScript_kKannada:
111 + return "ka";
112 + case UnicodeScript_kMalayalam:
113 + return "ml";
114 + case UnicodeScript_kSinhala:
115 + return "si";
116 + case UnicodeScript_kThai:
117 + return "th";
118 + case UnicodeScript_kLao:
119 + return "lo";
120 + case UnicodeScript_kTibetan:
121 + return "bo";
122 + case UnicodeScript_kMyanmar:
123 + return "my";
124 + case UnicodeScript_kGeorgian:
125 + return "ka";
126 + case UnicodeScript_kHangulJamo:
127 + case UnicodeScript_kHangulCompatibilityJamo:
128 + case UnicodeScript_kHangulSyllable:
129 + return "ko";
130 + case UnicodeScript_kEthiopic:
131 + return "am";
132 + case UnicodeScript_kCherokee:
133 + return "chr";
134 + case UnicodeScript_kUnifiedCanadianAboriginalSyllabics:
135 + return "ui";
136 + case UnicodeScript_kKhmer:
137 + return "km";
138 + case UnicodeScript_kMongolian:
139 + return "mn";
140 + case UnicodeScript_kHiragana:
141 + case UnicodeScript_kKatakana:
142 + return "ja";
143 + default:
144 + break;
145 + }
146 +
147 + return NULL;
148 +}
149 +
150 rtl::OUString PrintFontManager::Substitute(const rtl::OUString& rFontName,
151 rtl::OUString& rMissingCodes, const rtl::OString &rLangAttrib,
152 italic::type &rItalic, weight::type &rWeight,
153 @@ -928,8 +1063,6 @@
154 rWrapper.FcPatternAddString( pPattern, FC_FAMILY, pTargetNameUtf8 );
155
156 const FcChar8* pLangAttribUtf8 = (FcChar8*)rLangAttrib.getStr();
157 - if( rLangAttrib.getLength() )
158 - rWrapper.FcPatternAddString( pPattern, FC_LANG, pLangAttribUtf8 );
159
160 // Add required Unicode characters, if any
161 if ( rMissingCodes.getLength() )
162 @@ -940,11 +1073,16 @@
163 // also handle unicode surrogates
164 const sal_uInt32 nCode = rMissingCodes.iterateCodePoints( &nStrIndex );
165 rWrapper.FcCharSetAddChar( unicodes, nCode );
166 + if (!pLangAttribUtf8)
167 + pLangAttribUtf8 = (const FcChar8*)pick_sample_language(nCode);
168 }
169 rWrapper.FcPatternAddCharSet( pPattern, FC_CHARSET, unicodes);
170 rWrapper.FcCharSetDestroy( unicodes );
171 }
172
173 + if( pLangAttribUtf8 )
174 + rWrapper.FcPatternAddString( pPattern, FC_LANG, pLangAttribUtf8 );
175 +
176 addtopattern(rWrapper, pPattern, rItalic, rWeight, rWidth, rPitch);
177
178 // query fontconfig for a substitute
179 --- vcl/util/makefile.mk~ 2010-11-11 16:22:48.000000000 +0100
180 +++ vcl/util/makefile.mk 2011-01-28 00:52:18.699565391 +0100
181 @@ -297,6 +297,7 @@
182 # libs for generic plugin
183 SHL2STDLIBS=\
184 $(VCLLIB)\
185 + $(I18NUTILLIB) \
186 $(I18NPAPERLIB) \
187 $(I18NISOLANGLIB) \
188 $(TOOLSLIB) \

  ViewVC Help
Powered by ViewVC 1.1.30