Fix for greater than 4-digit CompositionExclusions

This commit is contained in:
Howard Chu 2004-06-02 02:17:04 +00:00
parent b438e6b533
commit 56155b25f1
2 changed files with 9 additions and 18 deletions

View File

@ -140,7 +140,7 @@ static ac_uint4 kdecomps_size;
*/ */
#define COMPEX_SET(c) (compexs[(c) >> 5] |= (1 << ((c) & 31))) #define COMPEX_SET(c) (compexs[(c) >> 5] |= (1 << ((c) & 31)))
#define COMPEX_TEST(c) (compexs[(c) >> 5] & (1 << ((c) & 31))) #define COMPEX_TEST(c) (compexs[(c) >> 5] & (1 << ((c) & 31)))
static ac_uint4 compexs[2048]; static ac_uint4 compexs[8192];
/* /*
* Struct for holding a composition pair, and array of composition pairs * Struct for holding a composition pair, and array of composition pairs
@ -1204,10 +1204,11 @@ cmpcomps(const void *v_comp1, const void *v_comp2)
static void static void
read_compexdata(FILE *in) read_compexdata(FILE *in)
{ {
ac_uint2 i, code; ac_uint2 i;
ac_uint4 code;
char line[512], *s; char line[512], *s;
(void) memset((char *) compexs, 0, sizeof(ac_uint4) << 11); (void) memset((char *) compexs, 0, sizeof(compexs));
while (fgets(line, sizeof(line), in)) { while (fgets(line, sizeof(line), in)) {
if( (s=strchr(line, '\n')) ) *s = '\0'; if( (s=strchr(line, '\n')) ) *s = '\0';
@ -1218,10 +1219,11 @@ read_compexdata(FILE *in)
continue; continue;
/* /*
* Collect the code. Assume max 4 digits * Collect the code. Assume max 6 digits
*/ */
for (s = line, i = code = 0; *s != '#' && i < 4; i++, s++) { for (s = line, i = code = 0; *s != '#' && i < 6; i++, s++) {
if (isspace(*s)) break;
code <<= 4; code <<= 4;
if (*s >= '0' && *s <= '9') if (*s >= '0' && *s <= '9')
code += *s - '0'; code += *s - '0';

View File

@ -3004,7 +3004,7 @@ static const ac_uint4 _uccase_map[] = {
0x000001f2, 0x000001f1, 0x000001f3 0x000001f2, 0x000001f1, 0x000001f3
}; };
static const ac_uint4 _uccomp_size = 3728; static const ac_uint4 _uccomp_size = 3684;
static const ac_uint4 _uccomp_data[] = { static const ac_uint4 _uccomp_data[] = {
0x0000226e, 0x00000002, 0x0000003c, 0x00000338, 0x0000226e, 0x00000002, 0x0000003c, 0x00000338,
@ -3927,18 +3927,7 @@ static const ac_uint4 _uccomp_data[] = {
0x000030f8, 0x00000002, 0x000030f0, 0x00003099, 0x000030f8, 0x00000002, 0x000030f0, 0x00003099,
0x000030f9, 0x00000002, 0x000030f1, 0x00003099, 0x000030f9, 0x00000002, 0x000030f1, 0x00003099,
0x000030fa, 0x00000002, 0x000030f2, 0x00003099, 0x000030fa, 0x00000002, 0x000030f2, 0x00003099,
0x000030fe, 0x00000002, 0x000030fd, 0x00003099, 0x000030fe, 0x00000002, 0x000030fd, 0x00003099
0x0001d15e, 0x00000002, 0x0001d157, 0x0001d165,
0x0001d15f, 0x00000002, 0x0001d158, 0x0001d165,
0x0001d160, 0x00000002, 0x0001d15f, 0x0001d16e,
0x0001d161, 0x00000002, 0x0001d15f, 0x0001d16f,
0x0001d162, 0x00000002, 0x0001d15f, 0x0001d170,
0x0001d163, 0x00000002, 0x0001d15f, 0x0001d171,
0x0001d1bb, 0x00000002, 0x0001d1b9, 0x0001d165,
0x0001d1bc, 0x00000002, 0x0001d1ba, 0x0001d165,
0x0001d1bd, 0x00000002, 0x0001d1bb, 0x0001d16e,
0x0001d1bf, 0x00000002, 0x0001d1bb, 0x0001d16f,
0x0001d1be, 0x00000002, 0x0001d1bc, 0x0001d16e
}; };
static const ac_uint4 _ucdcmp_size = 3848; static const ac_uint4 _ucdcmp_size = 3848;