diff options
author | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2015-12-28 13:04:03 +0000 |
---|---|---|
committer | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2015-12-28 13:04:03 +0000 |
commit | 74c0c4d1d90ea4f85a3de0304bcd009cb29acf9d (patch) | |
tree | e372a73826b75e2c70c80b6a903e9a9e60f928d4 /Build/source/libs/harfbuzz/harfbuzz-1.0.4/src/hb-ot-shape-complex-arabic-win1256.hh | |
parent | cf483bef74e67ba3d39108df4864121c887f95e6 (diff) |
harfbuzz-1.1.2
git-svn-id: svn://tug.org/texlive/trunk@39213 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/harfbuzz/harfbuzz-1.0.4/src/hb-ot-shape-complex-arabic-win1256.hh')
-rw-r--r-- | Build/source/libs/harfbuzz/harfbuzz-1.0.4/src/hb-ot-shape-complex-arabic-win1256.hh | 323 |
1 files changed, 0 insertions, 323 deletions
diff --git a/Build/source/libs/harfbuzz/harfbuzz-1.0.4/src/hb-ot-shape-complex-arabic-win1256.hh b/Build/source/libs/harfbuzz/harfbuzz-1.0.4/src/hb-ot-shape-complex-arabic-win1256.hh deleted file mode 100644 index e70c48f427c..00000000000 --- a/Build/source/libs/harfbuzz/harfbuzz-1.0.4/src/hb-ot-shape-complex-arabic-win1256.hh +++ /dev/null @@ -1,323 +0,0 @@ -/* - * Copyright © 2014 Google, Inc. - * - * This is part of HarfBuzz, a text shaping library. - * - * Permission is hereby granted, without written agreement and without - * license or royalty fees, to use, copy, modify, and distribute this - * software and its documentation for any purpose, provided that the - * above copyright notice and the following two paragraphs appear in - * all copies of this software. - * - * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR - * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES - * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN - * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, - * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS - * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO - * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. - * - * Google Author(s): Behdad Esfahbod - */ - -#ifndef HB_OT_SHAPE_COMPLEX_ARABIC_WIN1256_HH - - -/* - * The macros in the first part of this file are generic macros that can - * be used to define the bytes for OpenType table data in code in a - * readable manner. We can move the macros to reside with their respective - * struct types, but since we only use these to define one data table, the - * Windows-1256 Arabic shaping table in this file, we keep them here. - */ - - -/* First we measure, then we cut. */ -#ifndef OT_MEASURE -#define OT_MEASURE -#define OT_TABLE_START static const struct TABLE_NAME { -#define OT_TABLE_END } -#define OT_LABEL_START(Name) unsigned char Name[ -#define OT_LABEL_END ]; -#define OT_BYTE(u8) +1/*byte*/ -#define OT_USHORT(u16) +2/*bytes*/ -#else -#undef OT_MEASURE -#define OT_TABLE_START TABLE_NAME = { -#define OT_TABLE_END }; -#define OT_LABEL_START(Name) { -#define OT_LABEL_END }, -#define OT_BYTE(u8) (u8), -#define OT_USHORT(u16) (unsigned char)((u16)>>8), (unsigned char)((u16)&0xFFu), -#define OT_COUNT(Name, ItemSize) ((unsigned int) sizeof(((struct TABLE_NAME*)0)->Name) \ - / (unsigned int)(ItemSize) \ - /* OT_ASSERT it's divisible (and positive). */) -#define OT_DISTANCE(From,To) ((unsigned int) \ - ((char*)(&((struct TABLE_NAME*)0)->To) - \ - (char*)(&((struct TABLE_NAME*)0)->From)) \ - /* OT_ASSERT it's positive. */) -#endif - - -#define OT_LABEL(Name) \ - OT_LABEL_END \ - OT_LABEL_START(Name) - -/* Whenever we receive an argument that is a list, it will expand to - * contain commas. That cannot be passed to another macro because the - * commas will throw off the preprocessor. The solution is to wrap - * the passed-in argument in OT_LIST() before passing to the next macro. - * Unfortunately this trick requires vararg macros. */ -#define OT_LIST(...) __VA_ARGS__ - - -/* - * Basic Types - */ - -#define OT_TAG(a,b,c,d) \ - OT_BYTE(a) OT_BYTE(b) OT_BYTE(c) OT_BYTE(d) - -#define OT_OFFSET(From, To) /* Offset from From to To in bytes */ \ - OT_USHORT(OT_DISTANCE(From, To)) - -#define OT_GLYPHID /* GlyphID */ \ - OT_USHORT - -#define OT_UARRAY(Name, Items) \ - OT_LABEL_START(Name) \ - OT_USHORT(OT_COUNT(Name##Data, 2)) \ - OT_LABEL(Name##Data) \ - Items \ - OT_LABEL_END - -#define OT_UHEADLESSARRAY(Name, Items) \ - OT_LABEL_START(Name) \ - OT_USHORT(OT_COUNT(Name##Data, 2) + 1) \ - OT_LABEL(Name##Data) \ - Items \ - OT_LABEL_END - - -/* - * Common Types - */ - -#define OT_LOOKUP_FLAG_IGNORE_MARKS 0x08u - -#define OT_LOOKUP(Name, LookupType, LookupFlag, SubLookupOffsets) \ - OT_LABEL_START(Name) \ - OT_USHORT(LookupType) \ - OT_USHORT(LookupFlag) \ - OT_LABEL_END \ - OT_UARRAY(Name##SubLookupOffsetsArray, OT_LIST(SubLookupOffsets)) - -#define OT_SUBLOOKUP(Name, SubFormat, Items) \ - OT_LABEL_START(Name) \ - OT_USHORT(SubFormat) \ - Items - -#define OT_COVERAGE1(Name, Items) \ - OT_LABEL_START(Name) \ - OT_USHORT(1) \ - OT_LABEL_END \ - OT_UARRAY(Name##Glyphs, OT_LIST(Items)) - - -/* - * GSUB - */ - -#define OT_LOOKUP_TYPE_SUBST_SINGLE 1u -#define OT_LOOKUP_TYPE_SUBST_LIGATURE 4u - -#define OT_SUBLOOKUP_SINGLE_SUBST_FORMAT2(Name, FromGlyphs, ToGlyphs) \ - OT_SUBLOOKUP(Name, 2, \ - OT_OFFSET(Name, Name##Coverage) \ - OT_LABEL_END \ - OT_UARRAY(Name##Substitute, OT_LIST(ToGlyphs)) \ - ) \ - OT_COVERAGE1(Name##Coverage, OT_LIST(FromGlyphs)) \ - /* ASSERT_STATIC_EXPR_ZERO (len(FromGlyphs) == len(ToGlyphs)) */ - -#define OT_SUBLOOKUP_LIGATURE_SUBST_FORMAT1(Name, FirstGlyphs, LigatureSetOffsets) \ - OT_SUBLOOKUP(Name, 1, \ - OT_OFFSET(Name, Name##Coverage) \ - OT_LABEL_END \ - OT_UARRAY(Name##LigatureSetOffsetsArray, OT_LIST(LigatureSetOffsets)) \ - ) \ - OT_COVERAGE1(Name##Coverage, OT_LIST(FirstGlyphs)) \ - /* ASSERT_STATIC_EXPR_ZERO (len(FirstGlyphs) == len(LigatureSetOffsets)) */ - -#define OT_LIGATURE_SET(Name, LigatureSetOffsets) \ - OT_UARRAY(Name, OT_LIST(LigatureSetOffsets)) - -#define OT_LIGATURE(Name, Components, LigGlyph) \ - OT_LABEL_START(Name) \ - LigGlyph \ - OT_LABEL_END \ - OT_UHEADLESSARRAY(Name##ComponentsArray, OT_LIST(Components)) - -/* - * - * Start of Windows-1256 shaping table. - * - */ - -/* Table name. */ -#define TABLE_NAME arabic_win1256_gsub_lookups - -/* Table manifest. */ -#define MANIFEST(Items) \ - OT_LABEL_START(manifest) \ - OT_USHORT(OT_COUNT(manifestData, 6)) \ - OT_LABEL(manifestData) \ - Items \ - OT_LABEL_END - -#define MANIFEST_LOOKUP(Tag, Name) \ - Tag \ - OT_OFFSET(manifest, Name) - -/* Shorthand. */ -#define G OT_GLYPHID - -/* - * Table Start - */ -OT_TABLE_START - - -/* - * Manifest - */ -MANIFEST( - MANIFEST_LOOKUP(OT_TAG('r','l','i','g'), rligLookup) - MANIFEST_LOOKUP(OT_TAG('i','n','i','t'), initLookup) - MANIFEST_LOOKUP(OT_TAG('m','e','d','i'), mediLookup) - MANIFEST_LOOKUP(OT_TAG('f','i','n','a'), finaLookup) - MANIFEST_LOOKUP(OT_TAG('r','l','i','g'), rligMarksLookup) -) - -/* - * Lookups - */ -OT_LOOKUP(initLookup, OT_LOOKUP_TYPE_SUBST_SINGLE, OT_LOOKUP_FLAG_IGNORE_MARKS, - OT_OFFSET(initLookup, initmediSubLookup) - OT_OFFSET(initLookup, initSubLookup) -) -OT_LOOKUP(mediLookup, OT_LOOKUP_TYPE_SUBST_SINGLE, OT_LOOKUP_FLAG_IGNORE_MARKS, - OT_OFFSET(mediLookup, initmediSubLookup) - OT_OFFSET(mediLookup, mediSubLookup) - OT_OFFSET(mediLookup, medifinaLamAlefSubLookup) -) -OT_LOOKUP(finaLookup, OT_LOOKUP_TYPE_SUBST_SINGLE, OT_LOOKUP_FLAG_IGNORE_MARKS, - OT_OFFSET(finaLookup, finaSubLookup) - /* We don't need this one currently as the sequence inherits masks - * from the first item. Just in case we change that in the future - * to be smart about Arabic masks when ligating... */ - OT_OFFSET(finaLookup, medifinaLamAlefSubLookup) -) -OT_LOOKUP(rligLookup, OT_LOOKUP_TYPE_SUBST_LIGATURE, OT_LOOKUP_FLAG_IGNORE_MARKS, - OT_OFFSET(rligLookup, lamAlefLigaturesSubLookup) -) -OT_LOOKUP(rligMarksLookup, OT_LOOKUP_TYPE_SUBST_LIGATURE, 0, - OT_OFFSET(rligMarksLookup, shaddaLigaturesSubLookup) -) - -/* - * init/medi/fina forms - */ -OT_SUBLOOKUP_SINGLE_SUBST_FORMAT2(initmediSubLookup, - G(198) G(200) G(201) G(202) G(203) G(204) G(205) G(206) G(211) - G(212) G(213) G(214) G(223) G(225) G(227) G(228) G(236) G(237), - G(162) G(4) G(5) G(5) G(6) G(7) G(9) G(11) G(13) - G(14) G(15) G(26) G(140) G(141) G(142) G(143) G(154) G(154) -) -OT_SUBLOOKUP_SINGLE_SUBST_FORMAT2(initSubLookup, - G(218) G(219) G(221) G(222) G(229), - G(27) G(30) G(128) G(131) G(144) -) -OT_SUBLOOKUP_SINGLE_SUBST_FORMAT2(mediSubLookup, - G(218) G(219) G(221) G(222) G(229), - G(28) G(31) G(129) G(138) G(149) -) -OT_SUBLOOKUP_SINGLE_SUBST_FORMAT2(finaSubLookup, - G(194) G(195) G(197) G(198) G(199) G(201) G(204) G(205) G(206) - G(218) G(219) G(229) G(236) G(237), - G(2) G(1) G(3) G(181) G(0) G(159) G(8) G(10) G(12) - G(29) G(127) G(152) G(160) G(156) -) -OT_SUBLOOKUP_SINGLE_SUBST_FORMAT2(medifinaLamAlefSubLookup, - G(165) G(178) G(180) G(252), - G(170) G(179) G(185) G(255) -) - -/* - * Lam+Alef ligatures - */ -OT_SUBLOOKUP_LIGATURE_SUBST_FORMAT1(lamAlefLigaturesSubLookup, - G(225), - OT_OFFSET(lamAlefLigaturesSubLookup, lamLigatureSet) -) -OT_LIGATURE_SET(lamLigatureSet, - OT_OFFSET(lamLigatureSet, lamInitLigature1) - OT_OFFSET(lamLigatureSet, lamInitLigature2) - OT_OFFSET(lamLigatureSet, lamInitLigature3) - OT_OFFSET(lamLigatureSet, lamInitLigature4) -) -OT_LIGATURE(lamInitLigature1, G(199), G(165)) -OT_LIGATURE(lamInitLigature2, G(195), G(178)) -OT_LIGATURE(lamInitLigature3, G(194), G(180)) -OT_LIGATURE(lamInitLigature4, G(197), G(252)) - -/* - * Shadda ligatures - */ -OT_SUBLOOKUP_LIGATURE_SUBST_FORMAT1(shaddaLigaturesSubLookup, - G(248), - OT_OFFSET(shaddaLigaturesSubLookup, shaddaLigatureSet) -) -OT_LIGATURE_SET(shaddaLigatureSet, - OT_OFFSET(shaddaLigatureSet, shaddaLigature1) - OT_OFFSET(shaddaLigatureSet, shaddaLigature2) - OT_OFFSET(shaddaLigatureSet, shaddaLigature3) -) -OT_LIGATURE(shaddaLigature1, G(243), G(172)) -OT_LIGATURE(shaddaLigature2, G(245), G(173)) -OT_LIGATURE(shaddaLigature3, G(246), G(175)) - -/* - * Table end - */ -OT_TABLE_END - - -/* - * Clean up - */ -#undef OT_TABLE_START -#undef OT_TABLE_END -#undef OT_LABEL_START -#undef OT_LABEL_END -#undef OT_BYTE -#undef OT_USHORT -#undef OT_DISTANCE -#undef OT_COUNT - -/* - * Include a second time to get the table data... - */ -#if 0 -#include "hb-private.hh" /* Make check-includes.sh happy. */ -#endif -#ifdef OT_MEASURE -#include "hb-ot-shape-complex-arabic-win1256.hh" -#endif - -#define HB_OT_SHAPE_COMPLEX_ARABIC_WIN1256_HH -#endif /* HB_OT_SHAPE_COMPLEX_ARABIC_WIN1256_HH */ |