Sat, 03 Jan 2015 20:18:00 +0100
Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.
1 /*
2 * Copyright 2012 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
8 #ifndef SkOTTable_OS_2_V2_DEFINED
9 #define SkOTTable_OS_2_V2_DEFINED
11 #include "SkEndian.h"
12 #include "SkIBMFamilyClass.h"
13 #include "SkOTTableTypes.h"
14 #include "SkPanose.h"
15 #include "SkTypedEnum.h"
17 #pragma pack(push, 1)
19 struct SkOTTableOS2_V2 {
20 SK_OT_USHORT version;
21 static const SK_OT_USHORT VERSION = SkTEndian_SwapBE16(2);
23 SK_OT_SHORT xAvgCharWidth;
24 struct WeightClass {
25 SK_TYPED_ENUM(Value, SK_OT_USHORT,
26 ((Thin, SkTEndian_SwapBE16(100)))
27 ((ExtraLight, SkTEndian_SwapBE16(200)))
28 ((Light, SkTEndian_SwapBE16(300)))
29 ((Normal, SkTEndian_SwapBE16(400)))
30 ((Medium, SkTEndian_SwapBE16(500)))
31 ((SemiBold, SkTEndian_SwapBE16(600)))
32 ((Bold, SkTEndian_SwapBE16(700)))
33 ((ExtraBold, SkTEndian_SwapBE16(800)))
34 ((Black, SkTEndian_SwapBE16(900)))
35 SK_SEQ_END,
36 SK_SEQ_END)
37 SK_OT_USHORT value;
38 } usWeightClass;
39 struct WidthClass {
40 SK_TYPED_ENUM(Value, SK_OT_USHORT,
41 ((UltraCondensed, SkTEndian_SwapBE16(1)))
42 ((ExtraCondensed, SkTEndian_SwapBE16(2)))
43 ((Condensed, SkTEndian_SwapBE16(3)))
44 ((SemiCondensed, SkTEndian_SwapBE16(4)))
45 ((Medium, SkTEndian_SwapBE16(5)))
46 ((SemiExpanded, SkTEndian_SwapBE16(6)))
47 ((Expanded, SkTEndian_SwapBE16(7)))
48 ((ExtraExpanded, SkTEndian_SwapBE16(8)))
49 ((UltraExpanded, SkTEndian_SwapBE16(9))),
50 (value)SK_SEQ_END)
51 } usWidthClass;
52 union Type {
53 struct Field {
54 //8-15
55 SK_OT_BYTE_BITFIELD(
56 NoSubsetting,
57 Bitmap,
58 Reserved10,
59 Reserved11,
60 Reserved12,
61 Reserved13,
62 Reserved14,
63 Reserved15)
64 //0-7
65 SK_OT_BYTE_BITFIELD(
66 Reserved00,
67 Restricted,
68 PreviewPrint,
69 Editable,
70 Reserved04,
71 Reserved05,
72 Reserved06,
73 Reserved07)
74 } field;
75 struct Raw {
76 static const SK_OT_USHORT Installable = 0;
77 static const SK_OT_USHORT RestrictedMask = SkOTSetUSHORTBit<1>::value;
78 static const SK_OT_USHORT PreviewPrintMask = SkOTSetUSHORTBit<2>::value;
79 static const SK_OT_USHORT EditableMask = SkOTSetUSHORTBit<3>::value;
80 static const SK_OT_USHORT NoSubsettingMask = SkOTSetUSHORTBit<8>::value;
81 static const SK_OT_USHORT BitmapMask = SkOTSetUSHORTBit<9>::value;
82 SK_OT_USHORT value;
83 } raw;
84 } fsType;
85 SK_OT_SHORT ySubscriptXSize;
86 SK_OT_SHORT ySubscriptYSize;
87 SK_OT_SHORT ySubscriptXOffset;
88 SK_OT_SHORT ySubscriptYOffset;
89 SK_OT_SHORT ySuperscriptXSize;
90 SK_OT_SHORT ySuperscriptYSize;
91 SK_OT_SHORT ySuperscriptXOffset;
92 SK_OT_SHORT ySuperscriptYOffset;
93 SK_OT_SHORT yStrikeoutSize;
94 SK_OT_SHORT yStrikeoutPosition;
95 SkIBMFamilyClass sFamilyClass;
96 SkPanose panose;
97 union UnicodeRange {
98 struct Field {
99 //l0 24-31
100 SK_OT_BYTE_BITFIELD(
101 Thai,
102 Lao,
103 Georgian,
104 Reserved027,
105 HangulJamo,
106 LatinExtendedAdditional,
107 GreekExtended,
108 GeneralPunctuation)
109 //l0 16-23
110 SK_OT_BYTE_BITFIELD(
111 Bengali,
112 Gurmukhi,
113 Gujarati,
114 Oriya,
115 Tamil,
116 Telugu,
117 Kannada,
118 Malayalam)
119 //l0 8-15
120 SK_OT_BYTE_BITFIELD(
121 Reserved008,
122 Cyrillic,
123 Armenian,
124 Hebrew,
125 Reserved012,
126 Arabic,
127 Reserved014,
128 Devanagari)
129 //l0 0-7
130 SK_OT_BYTE_BITFIELD(
131 BasicLatin,
132 Latin1Supplement,
133 LatinExtendedA,
134 LatinExtendedB,
135 IPAExtensions,
136 SpacingModifierLetters,
137 CombiningDiacriticalMarks,
138 Greek)
140 //l1 24-31
141 SK_OT_BYTE_BITFIELD(
142 Hangul,
143 Surrogates,
144 Reserved058,
145 CJKUnifiedIdeographs,
146 PrivateUseArea,
147 CJKCompatibilityIdeographs,
148 AlphabeticPresentationForms,
149 ArabicPresentationFormsA)
150 //l1 16-23
151 SK_OT_BYTE_BITFIELD(
152 CJKSymbolsAndPunctuation,
153 Hiragana,
154 Katakana,
155 Bopomofo,
156 HangulCompatibilityJamo,
157 CJKMiscellaneous,
158 EnclosedCJKLettersAndMonths,
159 CJKCompatibility)
160 //l1 8-15
161 SK_OT_BYTE_BITFIELD(
162 ControlPictures,
163 OpticalCharacterRecognition,
164 EnclosedAlphanumerics,
165 BoxDrawing,
166 BlockElements,
167 GeometricShapes,
168 MiscellaneousSymbols,
169 Dingbats)
170 //l1 0-7
171 SK_OT_BYTE_BITFIELD(
172 SuperscriptsAndSubscripts,
173 CurrencySymbols,
174 CombiningDiacriticalMarksForSymbols,
175 LetterlikeSymbols,
176 NumberForms,
177 Arrows,
178 MathematicalOperators,
179 MiscellaneousTechnical)
181 //l2 24-31
182 SK_OT_BYTE_BITFIELD(
183 Reserved088,
184 Reserved089,
185 Reserved090,
186 Reserved091,
187 Reserved092,
188 Reserved093,
189 Reserved094,
190 Reserved095)
191 //l2 16-23
192 SK_OT_BYTE_BITFIELD(
193 Khmer,
194 Mongolian,
195 Braille,
196 Yi,
197 Reserved084,
198 Reserved085,
199 Reserved086,
200 Reserved087)
201 //l2 8-15
202 SK_OT_BYTE_BITFIELD(
203 Thaana,
204 Sinhala,
205 Myanmar,
206 Ethiopic,
207 Cherokee,
208 UnifiedCanadianSyllabics,
209 Ogham,
210 Runic)
211 //l2 0-7
212 SK_OT_BYTE_BITFIELD(
213 CombiningHalfMarks,
214 CJKCompatibilityForms,
215 SmallFormVariants,
216 ArabicPresentationFormsB,
217 HalfwidthAndFullwidthForms,
218 Specials,
219 Tibetan,
220 Syriac)
222 //l3 24-31
223 SK_OT_BYTE_BITFIELD(
224 Reserved120,
225 Reserved121,
226 Reserved122,
227 Reserved123,
228 Reserved124,
229 Reserved125,
230 Reserved126,
231 Reserved127)
232 //l3 16-23
233 SK_OT_BYTE_BITFIELD(
234 Reserved112,
235 Reserved113,
236 Reserved114,
237 Reserved115,
238 Reserved116,
239 Reserved117,
240 Reserved118,
241 Reserved119)
242 //l3 8-15
243 SK_OT_BYTE_BITFIELD(
244 Reserved104,
245 Reserved105,
246 Reserved106,
247 Reserved107,
248 Reserved108,
249 Reserved109,
250 Reserved110,
251 Reserved111)
252 //l3 0-7
253 SK_OT_BYTE_BITFIELD(
254 Reserved096,
255 Reserved097,
256 Reserved098,
257 Reserved099,
258 Reserved100,
259 Reserved101,
260 Reserved102,
261 Reserved103)
262 } field;
263 struct Raw {
264 struct l0 {
265 static const SK_OT_ULONG BasicLatinMask = SkOTSetULONGBit<0>::value;
266 static const SK_OT_ULONG Latin1SupplementMask = SkOTSetULONGBit<1>::value;
267 static const SK_OT_ULONG LatinExtendedAMask = SkOTSetULONGBit<2>::value;
268 static const SK_OT_ULONG LatinExtendedBMask = SkOTSetULONGBit<3>::value;
269 static const SK_OT_ULONG IPAExtensionsMask = SkOTSetULONGBit<4>::value;
270 static const SK_OT_ULONG SpacingModifierLettersMask = SkOTSetULONGBit<5>::value;
271 static const SK_OT_ULONG CombiningDiacriticalMarksMask = SkOTSetULONGBit<6>::value;
272 static const SK_OT_ULONG GreekMask = SkOTSetULONGBit<7>::value;
273 //Reserved
274 static const SK_OT_ULONG CyrillicMask = SkOTSetULONGBit<9>::value;
275 static const SK_OT_ULONG ArmenianMask = SkOTSetULONGBit<10>::value;
276 static const SK_OT_ULONG HebrewMask = SkOTSetULONGBit<11>::value;
277 //Reserved
278 static const SK_OT_ULONG ArabicMask = SkOTSetULONGBit<13>::value;
279 //Reserved
280 static const SK_OT_ULONG DevanagariMask = SkOTSetULONGBit<15>::value;
281 static const SK_OT_ULONG BengaliMask = SkOTSetULONGBit<16>::value;
282 static const SK_OT_ULONG GurmukhiMask = SkOTSetULONGBit<17>::value;
283 static const SK_OT_ULONG GujaratiMask = SkOTSetULONGBit<18>::value;
284 static const SK_OT_ULONG OriyaMask = SkOTSetULONGBit<19>::value;
285 static const SK_OT_ULONG TamilMask = SkOTSetULONGBit<20>::value;
286 static const SK_OT_ULONG TeluguMask = SkOTSetULONGBit<21>::value;
287 static const SK_OT_ULONG KannadaMask = SkOTSetULONGBit<22>::value;
288 static const SK_OT_ULONG MalayalamMask = SkOTSetULONGBit<23>::value;
289 static const SK_OT_ULONG ThaiMask = SkOTSetULONGBit<24>::value;
290 static const SK_OT_ULONG LaoMask = SkOTSetULONGBit<25>::value;
291 static const SK_OT_ULONG GeorgianMask = SkOTSetULONGBit<26>::value;
292 //Reserved
293 static const SK_OT_ULONG HangulJamoMask = SkOTSetULONGBit<28>::value;
294 static const SK_OT_ULONG LatinExtendedAdditionalMask = SkOTSetULONGBit<29>::value;
295 static const SK_OT_ULONG GreekExtendedMask = SkOTSetULONGBit<30>::value;
296 static const SK_OT_ULONG GeneralPunctuationMask = SkOTSetULONGBit<31>::value;
297 };
298 struct l1 {
299 static const SK_OT_ULONG SuperscriptsAndSubscriptsMask = SkOTSetULONGBit<32 - 32>::value;
300 static const SK_OT_ULONG CurrencySymbolsMask = SkOTSetULONGBit<33 - 32>::value;
301 static const SK_OT_ULONG CombiningDiacriticalMarksForSymbolsMask = SkOTSetULONGBit<34 - 32>::value;
302 static const SK_OT_ULONG LetterlikeSymbolsMask = SkOTSetULONGBit<35 - 32>::value;
303 static const SK_OT_ULONG NumberFormsMask = SkOTSetULONGBit<36 - 32>::value;
304 static const SK_OT_ULONG ArrowsMask = SkOTSetULONGBit<37 - 32>::value;
305 static const SK_OT_ULONG MathematicalOperatorsMask = SkOTSetULONGBit<38 - 32>::value;
306 static const SK_OT_ULONG MiscellaneousTechnicalMask = SkOTSetULONGBit<39 - 32>::value;
307 static const SK_OT_ULONG ControlPicturesMask = SkOTSetULONGBit<40 - 32>::value;
308 static const SK_OT_ULONG OpticalCharacterRecognitionMask = SkOTSetULONGBit<41 - 32>::value;
309 static const SK_OT_ULONG EnclosedAlphanumericsMask = SkOTSetULONGBit<42 - 32>::value;
310 static const SK_OT_ULONG BoxDrawingMask = SkOTSetULONGBit<43 - 32>::value;
311 static const SK_OT_ULONG BlockElementsMask = SkOTSetULONGBit<44 - 32>::value;
312 static const SK_OT_ULONG GeometricShapesMask = SkOTSetULONGBit<45 - 32>::value;
313 static const SK_OT_ULONG MiscellaneousSymbolsMask = SkOTSetULONGBit<46 - 32>::value;
314 static const SK_OT_ULONG DingbatsMask = SkOTSetULONGBit<47 - 32>::value;
315 static const SK_OT_ULONG CJKSymbolsAndPunctuationMask = SkOTSetULONGBit<48 - 32>::value;
316 static const SK_OT_ULONG HiraganaMask = SkOTSetULONGBit<49 - 32>::value;
317 static const SK_OT_ULONG KatakanaMask = SkOTSetULONGBit<50 - 32>::value;
318 static const SK_OT_ULONG BopomofoMask = SkOTSetULONGBit<51 - 32>::value;
319 static const SK_OT_ULONG HangulCompatibilityJamoMask = SkOTSetULONGBit<52 - 32>::value;
320 static const SK_OT_ULONG CJKMiscellaneousMask = SkOTSetULONGBit<53 - 32>::value;
321 static const SK_OT_ULONG EnclosedCJKLettersAndMonthsMask = SkOTSetULONGBit<54 - 32>::value;
322 static const SK_OT_ULONG CJKCompatibilityMask = SkOTSetULONGBit<55 - 32>::value;
323 static const SK_OT_ULONG HangulMask = SkOTSetULONGBit<56 - 32>::value;
324 static const SK_OT_ULONG SurrogatesMask = SkOTSetULONGBit<57 - 32>::value;
325 //Reserved
326 static const SK_OT_ULONG CJKUnifiedIdeographsMask = SkOTSetULONGBit<59 - 32>::value;
327 static const SK_OT_ULONG PrivateUseAreaMask = SkOTSetULONGBit<60 - 32>::value;
328 static const SK_OT_ULONG CJKCompatibilityIdeographsMask = SkOTSetULONGBit<61 - 32>::value;
329 static const SK_OT_ULONG AlphabeticPresentationFormsMask = SkOTSetULONGBit<62 - 32>::value;
330 static const SK_OT_ULONG ArabicPresentationFormsAMask = SkOTSetULONGBit<63 - 32>::value;
331 };
332 struct l2 {
333 static const SK_OT_ULONG CombiningHalfMarksMask = SkOTSetULONGBit<64 - 64>::value;
334 static const SK_OT_ULONG CJKCompatibilityFormsMask = SkOTSetULONGBit<65 - 64>::value;
335 static const SK_OT_ULONG SmallFormVariantsMask = SkOTSetULONGBit<66 - 64>::value;
336 static const SK_OT_ULONG ArabicPresentationFormsBMask = SkOTSetULONGBit<67 - 64>::value;
337 static const SK_OT_ULONG HalfwidthAndFullwidthFormsMask = SkOTSetULONGBit<68 - 64>::value;
338 static const SK_OT_ULONG SpecialsMask = SkOTSetULONGBit<69 - 64>::value;
339 static const SK_OT_ULONG TibetanMask = SkOTSetULONGBit<70 - 64>::value;
340 static const SK_OT_ULONG SyriacMask = SkOTSetULONGBit<71 - 64>::value;
341 static const SK_OT_ULONG ThaanaMask = SkOTSetULONGBit<72 - 64>::value;
342 static const SK_OT_ULONG SinhalaMask = SkOTSetULONGBit<73 - 64>::value;
343 static const SK_OT_ULONG MyanmarMask = SkOTSetULONGBit<74 - 64>::value;
344 static const SK_OT_ULONG EthiopicMask = SkOTSetULONGBit<75 - 64>::value;
345 static const SK_OT_ULONG CherokeeMask = SkOTSetULONGBit<76 - 64>::value;
346 static const SK_OT_ULONG UnifiedCanadianSyllabicsMask = SkOTSetULONGBit<77 - 64>::value;
347 static const SK_OT_ULONG OghamMask = SkOTSetULONGBit<78 - 64>::value;
348 static const SK_OT_ULONG RunicMask = SkOTSetULONGBit<79 - 64>::value;
349 static const SK_OT_ULONG KhmerMask = SkOTSetULONGBit<80 - 64>::value;
350 static const SK_OT_ULONG MongolianMask = SkOTSetULONGBit<81 - 64>::value;
351 static const SK_OT_ULONG BrailleMask = SkOTSetULONGBit<82 - 64>::value;
352 static const SK_OT_ULONG YiMask = SkOTSetULONGBit<83 - 64>::value;
353 };
354 SK_OT_ULONG value[4];
355 } raw;
356 } ulUnicodeRange;
357 SK_OT_CHAR achVendID[4];
358 union Selection {
359 struct Field {
360 //8-15
361 SK_OT_BYTE_BITFIELD(
362 Reserved08,
363 Reserved09,
364 Reserved10,
365 Reserved11,
366 Reserved12,
367 Reserved13,
368 Reserved14,
369 Reserved15)
370 //0-7
371 SK_OT_BYTE_BITFIELD(
372 Italic,
373 Underscore,
374 Negative,
375 Outlined,
376 Strikeout,
377 Bold,
378 Regular,
379 Reserved07)
380 } field;
381 struct Raw {
382 static const SK_OT_USHORT ItalicMask = SkOTSetUSHORTBit<0>::value;
383 static const SK_OT_USHORT UnderscoreMask = SkOTSetUSHORTBit<1>::value;
384 static const SK_OT_USHORT NegativeMask = SkOTSetUSHORTBit<2>::value;
385 static const SK_OT_USHORT OutlinedMask = SkOTSetUSHORTBit<3>::value;
386 static const SK_OT_USHORT StrikeoutMask = SkOTSetUSHORTBit<4>::value;
387 static const SK_OT_USHORT BoldMask = SkOTSetUSHORTBit<5>::value;
388 static const SK_OT_USHORT RegularMask = SkOTSetUSHORTBit<6>::value;
389 SK_OT_USHORT value;
390 } raw;
391 } fsSelection;
392 SK_OT_USHORT usFirstCharIndex;
393 SK_OT_USHORT usLastCharIndex;
394 //version0
395 SK_OT_SHORT sTypoAscender;
396 SK_OT_SHORT sTypoDescender;
397 SK_OT_SHORT sTypoLineGap;
398 SK_OT_USHORT usWinAscent;
399 SK_OT_USHORT usWinDescent;
400 //version1
401 union CodePageRange {
402 struct Field {
403 //l0 24-31
404 SK_OT_BYTE_BITFIELD(
405 Reserved24,
406 Reserved25,
407 Reserved26,
408 Reserved27,
409 Reserved28,
410 MacintoshCharacterSet,
411 OEMCharacterSet,
412 SymbolCharacterSet)
413 //l0 16-23
414 SK_OT_BYTE_BITFIELD(
415 Thai_874,
416 JISJapan_932,
417 ChineseSimplified_936,
418 KoreanWansung_949,
419 ChineseTraditional_950,
420 KoreanJohab_1361,
421 Reserved22,
422 Reserved23)
423 //l0 8-15
424 SK_OT_BYTE_BITFIELD(
425 Vietnamese,
426 Reserved09,
427 Reserved10,
428 Reserved11,
429 Reserved12,
430 Reserved13,
431 Reserved14,
432 Reserved15)
433 //l0 0-7
434 SK_OT_BYTE_BITFIELD(
435 Latin1_1252,
436 Latin2EasternEurope_1250,
437 Cyrillic_1251,
438 Greek_1253,
439 Turkish_1254,
440 Hebrew_1255,
441 Arabic_1256,
442 WindowsBaltic_1257)
444 //l1 24-31
445 SK_OT_BYTE_BITFIELD(
446 IBMTurkish_857,
447 IBMCyrillic_855,
448 Latin2_852,
449 MSDOSBaltic_775,
450 Greek_737,
451 Arabic_708,
452 WELatin1_850,
453 US_437)
454 //l1 16-23
455 SK_OT_BYTE_BITFIELD(
456 IBMGreek_869,
457 MSDOSRussian_866,
458 MSDOSNordic_865,
459 Arabic_864,
460 MSDOSCanadianFrench_863,
461 Hebrew_862,
462 MSDOSIcelandic_861,
463 MSDOSPortuguese_860)
464 //l1 8-15
465 SK_OT_BYTE_BITFIELD(
466 Reserved40,
467 Reserved41,
468 Reserved42,
469 Reserved43,
470 Reserved44,
471 Reserved45,
472 Reserved46,
473 Reserved47)
474 //l1 0-7
475 SK_OT_BYTE_BITFIELD(
476 Reserved32,
477 Reserved33,
478 Reserved34,
479 Reserved35,
480 Reserved36,
481 Reserved37,
482 Reserved38,
483 Reserved39)
484 } field;
485 struct Raw {
486 struct l0 {
487 static const SK_OT_ULONG Latin1_1252Mask = SkOTSetULONGBit<0>::value;
488 static const SK_OT_ULONG Latin2EasternEurope_1250Mask = SkOTSetULONGBit<1>::value;
489 static const SK_OT_ULONG Cyrillic_1251Mask = SkOTSetULONGBit<2>::value;
490 static const SK_OT_ULONG Greek_1253Mask = SkOTSetULONGBit<3>::value;
491 static const SK_OT_ULONG Turkish_1254Mask = SkOTSetULONGBit<4>::value;
492 static const SK_OT_ULONG Hebrew_1255Mask = SkOTSetULONGBit<5>::value;
493 static const SK_OT_ULONG Arabic_1256Mask = SkOTSetULONGBit<6>::value;
494 static const SK_OT_ULONG WindowsBaltic_1257Mask = SkOTSetULONGBit<7>::value;
495 static const SK_OT_ULONG Vietnamese_1258Mask = SkOTSetULONGBit<8>::value;
496 static const SK_OT_ULONG Thai_874Mask = SkOTSetULONGBit<16>::value;
497 static const SK_OT_ULONG JISJapan_932Mask = SkOTSetULONGBit<17>::value;
498 static const SK_OT_ULONG ChineseSimplified_936Mask = SkOTSetULONGBit<18>::value;
499 static const SK_OT_ULONG KoreanWansung_949Mask = SkOTSetULONGBit<19>::value;
500 static const SK_OT_ULONG ChineseTraditional_950Mask = SkOTSetULONGBit<20>::value;
501 static const SK_OT_ULONG KoreanJohab_1361Mask = SkOTSetULONGBit<21>::value;
502 static const SK_OT_ULONG MacintoshCharacterSetMask = SkOTSetULONGBit<29>::value;
503 static const SK_OT_ULONG OEMCharacterSetMask = SkOTSetULONGBit<30>::value;
504 static const SK_OT_ULONG SymbolCharacterSetMask = SkOTSetULONGBit<31>::value;
505 };
506 struct l1 {
507 static const SK_OT_ULONG IBMGreek_869Mask = SkOTSetULONGBit<48 - 32>::value;
508 static const SK_OT_ULONG MSDOSRussian_866Mask = SkOTSetULONGBit<49 - 32>::value;
509 static const SK_OT_ULONG MSDOSNordic_865Mask = SkOTSetULONGBit<50 - 32>::value;
510 static const SK_OT_ULONG Arabic_864Mask = SkOTSetULONGBit<51 - 32>::value;
511 static const SK_OT_ULONG MSDOSCanadianFrench_863Mask = SkOTSetULONGBit<52 - 32>::value;
512 static const SK_OT_ULONG Hebrew_862Mask = SkOTSetULONGBit<53 - 32>::value;
513 static const SK_OT_ULONG MSDOSIcelandic_861Mask = SkOTSetULONGBit<54 - 32>::value;
514 static const SK_OT_ULONG MSDOSPortuguese_860Mask = SkOTSetULONGBit<55 - 32>::value;
515 static const SK_OT_ULONG IBMTurkish_857Mask = SkOTSetULONGBit<56 - 32>::value;
516 static const SK_OT_ULONG IBMCyrillic_855Mask = SkOTSetULONGBit<57 - 32>::value;
517 static const SK_OT_ULONG Latin2_852Mask = SkOTSetULONGBit<58 - 32>::value;
518 static const SK_OT_ULONG MSDOSBaltic_775Mask = SkOTSetULONGBit<59 - 32>::value;
519 static const SK_OT_ULONG Greek_737Mask = SkOTSetULONGBit<60 - 32>::value;
520 static const SK_OT_ULONG Arabic_708Mask = SkOTSetULONGBit<61 - 32>::value;
521 static const SK_OT_ULONG WELatin1_850Mask = SkOTSetULONGBit<62 - 32>::value;
522 static const SK_OT_ULONG US_437Mask = SkOTSetULONGBit<63 - 32>::value;
523 };
524 SK_OT_ULONG value[2];
525 } raw;
526 } ulCodePageRange;
527 //version2
528 SK_OT_SHORT sxHeight;
529 SK_OT_SHORT sCapHeight;
530 SK_OT_USHORT usDefaultChar;
531 SK_OT_USHORT usBreakChar;
532 SK_OT_USHORT usMaxContext;
533 };
535 #pragma pack(pop)
538 SK_COMPILE_ASSERT(sizeof(SkOTTableOS2_V2) == 96, sizeof_SkOTTableOS2_V2_not_96);
540 #endif