1 /* 2 Copyright: 2012 Barry Schwartz, create is_Ligature.c to test for vulgar fracs 3 Copyright: 2016 Joe Da Silva, re-write is_Ligature.c for ligs, vulg, and frac 4 Copyright: 2016 Gioele Barabucci, Simplify code and create is_Ligature_data.h 5 License: BSD-3-clause 6 Contributions: 7 */ 8 9 #ifndef FONTFORGE_IS_LIGATURE_DATA_H 10 #define FONTFORGE_IS_LIGATURE_DATA_H 11 12 /* This file was generated using the program 'makeutype' for Unicode_version 12.1 */ 13 14 /* unicode.org codepoints for ligatures, vulgar fractions, other fractions */ 15 16 static const uint16 ligature16[] = { 17 0x0132, 0x0133, 0x0152, 0x0153, 0x04a4, 0x04a5, 0x04b4, 0x04b5, 18 0x04d4, 0x04d5, 0x0587, 0x05f0, 0x05f1, 0x05f2, 0x0616, 0x06d6, 19 0x06d7, 0xa7f9, 0xfb00, 0xfb01, 0xfb02, 0xfb03, 0xfb04, 0xfb05, 20 0xfb06, 0xfb13, 0xfb14, 0xfb15, 0xfb16, 0xfb17, 0xfb1f, 0xfb4f, 21 0xfbea, 0xfbeb, 0xfbec, 0xfbed, 0xfbee, 0xfbef, 0xfbf0, 0xfbf1, 22 0xfbf2, 0xfbf3, 0xfbf4, 0xfbf5, 0xfbf6, 0xfbf7, 0xfbf8, 0xfbf9, 23 0xfbfa, 0xfbfb, 0xfc00, 0xfc01, 0xfc02, 0xfc03, 0xfc04, 0xfc05, 24 0xfc06, 0xfc07, 0xfc08, 0xfc09, 0xfc0a, 0xfc0b, 0xfc0c, 0xfc0d, 25 0xfc0e, 0xfc0f, 0xfc10, 0xfc11, 0xfc12, 0xfc13, 0xfc14, 0xfc15, 26 0xfc16, 0xfc17, 0xfc18, 0xfc19, 0xfc1a, 0xfc1b, 0xfc1c, 0xfc1d, 27 0xfc1e, 0xfc1f, 0xfc20, 0xfc21, 0xfc22, 0xfc23, 0xfc24, 0xfc25, 28 0xfc26, 0xfc27, 0xfc28, 0xfc29, 0xfc2a, 0xfc2b, 0xfc2c, 0xfc2d, 29 0xfc2e, 0xfc2f, 0xfc30, 0xfc31, 0xfc32, 0xfc33, 0xfc34, 0xfc35, 30 0xfc36, 0xfc37, 0xfc38, 0xfc39, 0xfc3a, 0xfc3b, 0xfc3c, 0xfc3d, 31 0xfc3e, 0xfc3f, 0xfc40, 0xfc41, 0xfc42, 0xfc43, 0xfc44, 0xfc45, 32 0xfc46, 0xfc47, 0xfc48, 0xfc49, 0xfc4a, 0xfc4b, 0xfc4c, 0xfc4d, 33 0xfc4e, 0xfc4f, 0xfc50, 0xfc51, 0xfc52, 0xfc53, 0xfc54, 0xfc55, 34 0xfc56, 0xfc57, 0xfc58, 0xfc59, 0xfc5a, 0xfc5b, 0xfc5c, 0xfc5d, 35 0xfc5e, 0xfc5f, 0xfc60, 0xfc61, 0xfc62, 0xfc63, 0xfc64, 0xfc65, 36 0xfc66, 0xfc67, 0xfc68, 0xfc69, 0xfc6a, 0xfc6b, 0xfc6c, 0xfc6d, 37 0xfc6e, 0xfc6f, 0xfc70, 0xfc71, 0xfc72, 0xfc73, 0xfc74, 0xfc75, 38 0xfc76, 0xfc77, 0xfc78, 0xfc79, 0xfc7a, 0xfc7b, 0xfc7c, 0xfc7d, 39 0xfc7e, 0xfc7f, 0xfc80, 0xfc81, 0xfc82, 0xfc83, 0xfc84, 0xfc85, 40 0xfc86, 0xfc87, 0xfc88, 0xfc89, 0xfc8a, 0xfc8b, 0xfc8c, 0xfc8d, 41 0xfc8e, 0xfc8f, 0xfc90, 0xfc91, 0xfc92, 0xfc93, 0xfc94, 0xfc95, 42 0xfc96, 0xfc97, 0xfc98, 0xfc99, 0xfc9a, 0xfc9b, 0xfc9c, 0xfc9d, 43 0xfc9e, 0xfc9f, 0xfca0, 0xfca1, 0xfca2, 0xfca3, 0xfca4, 0xfca5, 44 0xfca6, 0xfca7, 0xfca8, 0xfca9, 0xfcaa, 0xfcab, 0xfcac, 0xfcad, 45 0xfcae, 0xfcaf, 0xfcb0, 0xfcb1, 0xfcb2, 0xfcb3, 0xfcb4, 0xfcb5, 46 0xfcb6, 0xfcb7, 0xfcb8, 0xfcb9, 0xfcba, 0xfcbb, 0xfcbc, 0xfcbd, 47 0xfcbe, 0xfcbf, 0xfcc0, 0xfcc1, 0xfcc2, 0xfcc3, 0xfcc4, 0xfcc5, 48 0xfcc6, 0xfcc7, 0xfcc8, 0xfcc9, 0xfcca, 0xfccb, 0xfccc, 0xfccd, 49 0xfcce, 0xfccf, 0xfcd0, 0xfcd1, 0xfcd2, 0xfcd3, 0xfcd4, 0xfcd5, 50 0xfcd6, 0xfcd7, 0xfcd8, 0xfcd9, 0xfcda, 0xfcdb, 0xfcdc, 0xfcdd, 51 0xfcde, 0xfcdf, 0xfce0, 0xfce1, 0xfce2, 0xfce3, 0xfce4, 0xfce5, 52 0xfce6, 0xfce7, 0xfce8, 0xfce9, 0xfcea, 0xfceb, 0xfcec, 0xfced, 53 0xfcee, 0xfcef, 0xfcf0, 0xfcf1, 0xfcf2, 0xfcf3, 0xfcf4, 0xfcf5, 54 0xfcf6, 0xfcf7, 0xfcf8, 0xfcf9, 0xfcfa, 0xfcfb, 0xfcfc, 0xfcfd, 55 0xfcfe, 0xfcff, 0xfd00, 0xfd01, 0xfd02, 0xfd03, 0xfd04, 0xfd05, 56 0xfd06, 0xfd07, 0xfd08, 0xfd09, 0xfd0a, 0xfd0b, 0xfd0c, 0xfd0d, 57 0xfd0e, 0xfd0f, 0xfd10, 0xfd11, 0xfd12, 0xfd13, 0xfd14, 0xfd15, 58 0xfd16, 0xfd17, 0xfd18, 0xfd19, 0xfd1a, 0xfd1b, 0xfd1c, 0xfd1d, 59 0xfd1e, 0xfd1f, 0xfd20, 0xfd21, 0xfd22, 0xfd23, 0xfd24, 0xfd25, 60 0xfd26, 0xfd27, 0xfd28, 0xfd29, 0xfd2a, 0xfd2b, 0xfd2c, 0xfd2d, 61 0xfd2e, 0xfd2f, 0xfd30, 0xfd31, 0xfd32, 0xfd33, 0xfd34, 0xfd35, 62 0xfd36, 0xfd37, 0xfd38, 0xfd39, 0xfd3a, 0xfd3b, 0xfd3c, 0xfd3d, 63 0xfd50, 0xfd51, 0xfd52, 0xfd53, 0xfd54, 0xfd55, 0xfd56, 0xfd57, 64 0xfd58, 0xfd59, 0xfd5a, 0xfd5b, 0xfd5c, 0xfd5d, 0xfd5e, 0xfd5f, 65 0xfd60, 0xfd61, 0xfd62, 0xfd63, 0xfd64, 0xfd65, 0xfd66, 0xfd67, 66 0xfd68, 0xfd69, 0xfd6a, 0xfd6b, 0xfd6c, 0xfd6d, 0xfd6e, 0xfd6f, 67 0xfd70, 0xfd71, 0xfd72, 0xfd73, 0xfd74, 0xfd75, 0xfd76, 0xfd77, 68 0xfd78, 0xfd79, 0xfd7a, 0xfd7b, 0xfd7c, 0xfd7d, 0xfd7e, 0xfd7f, 69 0xfd80, 0xfd81, 0xfd82, 0xfd83, 0xfd84, 0xfd85, 0xfd86, 0xfd87, 70 0xfd88, 0xfd89, 0xfd8a, 0xfd8b, 0xfd8c, 0xfd8d, 0xfd8e, 0xfd8f, 71 0xfd92, 0xfd93, 0xfd94, 0xfd95, 0xfd96, 0xfd97, 0xfd98, 0xfd99, 72 0xfd9a, 0xfd9b, 0xfd9c, 0xfd9d, 0xfd9e, 0xfd9f, 0xfda0, 0xfda1, 73 0xfda2, 0xfda3, 0xfda4, 0xfda5, 0xfda6, 0xfda7, 0xfda8, 0xfda9, 74 0xfdaa, 0xfdab, 0xfdac, 0xfdad, 0xfdae, 0xfdaf, 0xfdb0, 0xfdb1, 75 0xfdb2, 0xfdb3, 0xfdb4, 0xfdb5, 0xfdb6, 0xfdb7, 0xfdb8, 0xfdb9, 76 0xfdba, 0xfdbb, 0xfdbc, 0xfdbd, 0xfdbe, 0xfdbf, 0xfdc0, 0xfdc1, 77 0xfdc2, 0xfdc3, 0xfdc4, 0xfdc5, 0xfdc6, 0xfdc7, 0xfdf0, 0xfdf1, 78 0xfdf2, 0xfdf3, 0xfdf4, 0xfdf5, 0xfdf6, 0xfdf7, 0xfdf8, 0xfdf9, 79 0xfdfa, 0xfdfb, 0xfdfd, 0xfe20, 0xfe21, 0xfe27, 0xfe28, 0xfef5, 80 0xfef6, 0xfef7, 0xfef8, 0xfef9, 0xfefa, 0xfefb, 0xfefc 81 }; 82 83 static const uint32 ligature32[] = { 84 0x00010f27, 0x00010ff6, 0x00011176 85 }; 86 87 #define FF_ligatureTOTAL16 511 88 #define FF_ligatureTOTAL32 3 89 #define FF_ligatureTOTAL 514 90 #define FF_ligature16FIRST 0x0132 91 #define FF_ligature16LAST 0xfefc 92 #define FF_ligature32FIRST 0x00010f27 93 #define FF_ligature32LAST 0x00011176 94 95 static const uint16 vulgfrac16[] = { 96 0x00bc, 0x00bd, 0x00be, 0x2150, 0x2151, 0x2152, 0x2153, 0x2154, 97 0x2155, 0x2156, 0x2157, 0x2158, 0x2159, 0x215a, 0x215b, 0x215c, 98 0x215d, 0x215e, 0x2189 99 }; 100 101 static const uint32 vulgfrac32[] = { 102 }; 103 104 #define FF_vulgfracTOTAL16 19 105 #define FF_vulgfracTOTAL32 0 106 #define FF_vulgfracTOTAL 19 107 #define FF_vulgfrac16FIRST 0x00bc 108 #define FF_vulgfrac16LAST 0x2189 109 #define FF_vulgfrac32FIRST 0x0000218a 110 #define FF_vulgfrac32LAST 0x00002189 111 112 static const uint16 fraction16[] = { 113 0x0b72, 0x0b73, 0x0b74, 0x0b75, 0x0b76, 0x0b77, 0x0c78, 0x0c79, 114 0x0c7a, 0x0c7b, 0x0c7c, 0x0c7d, 0x0c7e, 0x0d58, 0x0d59, 0x0d5a, 115 0x0d5b, 0x0d5c, 0x0d5d, 0x0d5e, 0x0d73, 0x0d74, 0x0d75, 0x0d76, 116 0x0d77, 0x0d78, 0x215f, 0x2cfd, 0xa830, 0xa831, 0xa832, 0xa833, 117 0xa834, 0xa835 118 }; 119 120 static const uint32 fraction32[] = { 121 0x000109bc, 0x000109bd, 0x000109f6, 0x000109f7, 122 0x000109f8, 0x000109f9, 0x000109fa, 0x000109fb, 123 0x000109fc, 0x000109fd, 0x000109fe, 0x000109ff, 124 0x00010a48, 0x00010e7b, 0x00010e7c, 0x00010e7d, 125 0x00010e7e, 0x00010f26, 0x00011fc0, 0x00011fc1, 126 0x00011fc2, 0x00011fc3, 0x00011fc4, 0x00011fc5, 127 0x00011fc6, 0x00011fc7, 0x00011fc8, 0x00011fc9, 128 0x00011fca, 0x00011fcb, 0x00011fcc, 0x00011fcd, 129 0x00011fce, 0x00011fcf, 0x00011fd0, 0x00011fd1, 130 0x00011fd2, 0x00011fd3, 0x00011fd4, 0x0001ecad, 131 0x0001ecae, 0x0001ecaf, 0x0001ed3c, 0x0001ed3d 132 }; 133 134 #define FF_fractionTOTAL16 34 135 #define FF_fractionTOTAL32 44 136 #define FF_fractionTOTAL 78 137 #define FF_fraction16FIRST 0x0b72 138 #define FF_fraction16LAST 0xa835 139 #define FF_fraction32FIRST 0x000109bc 140 #define FF_fraction32LAST 0x0001ed3d 141 142 static const uint8 ligatureAltI[] = { 143 0x83, 0x83, 0x83, 0x83, 0x00, 0x01, 0x02, 0x03, 144 0x04, 0x05, 0x83, 0x83, 0x83, 0x83, 0x06, 0x07, 145 0x08, 0x81, 0x83, 0x83, 0x83, 0x87, 0x87, 0x83, 146 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 147 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 148 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 149 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 150 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 151 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 152 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 153 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 154 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 155 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 156 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 157 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 158 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 159 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 160 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 161 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x83, 0x83, 162 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 163 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 164 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 165 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 166 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 167 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 168 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 169 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 170 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 171 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 172 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 173 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 174 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 175 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 176 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 177 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 178 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 179 0x83, 0x83, 0x83, 0x83, 0x87, 0x87, 0x87, 0x83, 180 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 181 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 182 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 183 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 184 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 185 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 186 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 187 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 188 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 189 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 190 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 191 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 192 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 193 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 194 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 195 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 196 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 197 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 198 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 199 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 200 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 201 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 202 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 203 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 204 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x87, 205 0x09, 0xff, 0x80, 0x80, 0x80, 0x80, 0x80, 0x83, 206 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x80, 207 0x0a, 0x80 208 }; 209 210 static const uint16 ligatureAlt16[] = { 211 /* U04a4 */ 0x041d, 0x0413, 212 /* U04a5 */ 0x043d, 0x0433, 213 /* U04b4 */ 0x0422, 0x0426, 214 /* U04b5 */ 0x0442, 0x0446, 215 /* U04d4 */ 0x0410, 0x0415, 216 /* U04d5 */ 0x0430, 0x0435, 217 /* U0616 */ 0x0627, 0x0644, 0x064a, 218 /* U06d6 */ 0x0635, 0x0644, 0x0649, 219 /* U06d7 */ 0x0642, 0x0644, 0x0649, 220 /* Ufdfa */ 0x0635, 0x0644, 0x0649, 0x0020, 0x0627, 0x0644, 0x0644, 0x0647, 0x0020, 0x0639, 0x0644, 0x064a, 0x0647, 0x0020, 0x0648, 0x0633, 0x0644, 0x0645 221 }; 222 223 static const uint8 ligatureAltIs[] = { 224 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0f, 225 0x12, 0x15, 0x27 226 }; 227 228 static const int32 ligatureAlt32[] = { 229 }; 230 231 static const uint8 ligatureAltIl[] = { 232 0x00, 0x02 233 }; 234 235 #define FF_ligatureTIS 10 236 #define FF_ligatureTIL 1 237 238 static const uint8 vulgfracAltI[] = { 239 0x87, 0x87, 0x87, 0x87, 0x87, 0x8f, 0x87, 0x87, 240 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 241 0x87, 0x87, 0x87 242 }; 243 244 static const uint16 vulgfracAlt16[] = { 245 }; 246 247 static const uint8 vulgfracAltIs[] = { 248 }; 249 250 static const int32 vulgfracAlt32[] = { 251 }; 252 253 static const uint8 vulgfracAltIl[] = { 254 }; 255 256 #define FF_vulgfracTIS 0 257 #define FF_vulgfracTIL 0 258 259 static const uint8 fractionAltI[] = { 260 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 261 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 262 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 263 0x80, 0x80, 0x83, 0x80, 0x80, 0x80, 0x80, 0x80, 264 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 265 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 266 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 267 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 268 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 269 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 270 }; 271 272 static const uint16 fractionAlt16[] = { 273 }; 274 275 static const uint8 fractionAltIs[] = { 276 }; 277 278 static const int32 fractionAlt32[] = { 279 }; 280 281 static const uint8 fractionAltIl[] = { 282 }; 283 284 #define FF_fractionTIS 0 285 #define FF_fractionTIL 0 286 287 #endif /* FONTFORGE_IS_LIGATURE_DATA_H */ 288