mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-01-22 14:53:33 -05:00
ITS#8508 - Allow ucgendat.c to recognize title-case characters even if they do not have lower-case equivalents
I, Zebediah Figura, hereby place the following modifications to OpenLDAP Software (and only these modifications) into the public domain. Hence, these modifications may be freely used and/or redistributed for any purpose with or without attribution and/or other notice.
This commit is contained in:
parent
3258bf40eb
commit
cc99da182f
2 changed files with 40 additions and 31 deletions
|
|
@ -536,6 +536,13 @@ add_title(ac_uint4 code)
|
|||
*/
|
||||
cases[2] = code;
|
||||
|
||||
/*
|
||||
* If the upper case character is not present, then make it the same as
|
||||
* the title case.
|
||||
*/
|
||||
if (cases[0] == 0)
|
||||
cases[0] = code;
|
||||
|
||||
if (title_used == title_size) {
|
||||
if (title_size == 0)
|
||||
title = (_case_t *) malloc(sizeof(_case_t) << 3);
|
||||
|
|
@ -818,7 +825,7 @@ read_cdata(FILE *in)
|
|||
{
|
||||
ac_uint4 i, lineno, skip, code, ccl_code;
|
||||
short wnum, neg, number[2], compat;
|
||||
char line[512], *s, *e;
|
||||
char line[512], *s, *e, *first_prop;
|
||||
|
||||
lineno = skip = 0;
|
||||
while (fgets(line, sizeof(line), in)) {
|
||||
|
|
@ -962,6 +969,8 @@ read_cdata(FILE *in)
|
|||
i++;
|
||||
}
|
||||
for (e = s; *e && *e != ';'; e++) ;
|
||||
|
||||
first_prop = s;
|
||||
|
||||
ordered_range_insert(code, s, e - s);
|
||||
|
||||
|
|
@ -1109,7 +1118,7 @@ read_cdata(FILE *in)
|
|||
if (*s == ';')
|
||||
s++;
|
||||
}
|
||||
if (cases[0] && cases[1])
|
||||
if (!strncmp(first_prop,"Lt",2) && (cases[0] || cases[1]))
|
||||
/*
|
||||
* Add the upper and lower mappings for a title case character.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1495,7 +1495,7 @@ static const ac_uint4 _ucprop_ranges[] = {
|
|||
|
||||
static const ac_uint4 _uccase_size = 1504;
|
||||
|
||||
static const ac_uint2 _uccase_len[2] = {745, 755};
|
||||
static const ac_uint2 _uccase_len[2] = {718, 755};
|
||||
|
||||
static const ac_uint4 _uccase_map[] = {
|
||||
0x00000041, 0x00000061, 0x00000041,
|
||||
|
|
@ -2086,40 +2086,14 @@ static const ac_uint4 _uccase_map[] = {
|
|||
0x00001f6d, 0x00001f65, 0x00001f6d,
|
||||
0x00001f6e, 0x00001f66, 0x00001f6e,
|
||||
0x00001f6f, 0x00001f67, 0x00001f6f,
|
||||
0x00001f88, 0x00001f80, 0x00001f88,
|
||||
0x00001f89, 0x00001f81, 0x00001f89,
|
||||
0x00001f8a, 0x00001f82, 0x00001f8a,
|
||||
0x00001f8b, 0x00001f83, 0x00001f8b,
|
||||
0x00001f8c, 0x00001f84, 0x00001f8c,
|
||||
0x00001f8d, 0x00001f85, 0x00001f8d,
|
||||
0x00001f8e, 0x00001f86, 0x00001f8e,
|
||||
0x00001f8f, 0x00001f87, 0x00001f8f,
|
||||
0x00001f98, 0x00001f90, 0x00001f98,
|
||||
0x00001f99, 0x00001f91, 0x00001f99,
|
||||
0x00001f9a, 0x00001f92, 0x00001f9a,
|
||||
0x00001f9b, 0x00001f93, 0x00001f9b,
|
||||
0x00001f9c, 0x00001f94, 0x00001f9c,
|
||||
0x00001f9d, 0x00001f95, 0x00001f9d,
|
||||
0x00001f9e, 0x00001f96, 0x00001f9e,
|
||||
0x00001f9f, 0x00001f97, 0x00001f9f,
|
||||
0x00001fa8, 0x00001fa0, 0x00001fa8,
|
||||
0x00001fa9, 0x00001fa1, 0x00001fa9,
|
||||
0x00001faa, 0x00001fa2, 0x00001faa,
|
||||
0x00001fab, 0x00001fa3, 0x00001fab,
|
||||
0x00001fac, 0x00001fa4, 0x00001fac,
|
||||
0x00001fad, 0x00001fa5, 0x00001fad,
|
||||
0x00001fae, 0x00001fa6, 0x00001fae,
|
||||
0x00001faf, 0x00001fa7, 0x00001faf,
|
||||
0x00001fb8, 0x00001fb0, 0x00001fb8,
|
||||
0x00001fb9, 0x00001fb1, 0x00001fb9,
|
||||
0x00001fba, 0x00001f70, 0x00001fba,
|
||||
0x00001fbb, 0x00001f71, 0x00001fbb,
|
||||
0x00001fbc, 0x00001fb3, 0x00001fbc,
|
||||
0x00001fc8, 0x00001f72, 0x00001fc8,
|
||||
0x00001fc9, 0x00001f73, 0x00001fc9,
|
||||
0x00001fca, 0x00001f74, 0x00001fca,
|
||||
0x00001fcb, 0x00001f75, 0x00001fcb,
|
||||
0x00001fcc, 0x00001fc3, 0x00001fcc,
|
||||
0x00001fd8, 0x00001fd0, 0x00001fd8,
|
||||
0x00001fd9, 0x00001fd1, 0x00001fd9,
|
||||
0x00001fda, 0x00001f76, 0x00001fda,
|
||||
|
|
@ -2133,7 +2107,6 @@ static const ac_uint4 _uccase_map[] = {
|
|||
0x00001ff9, 0x00001f79, 0x00001ff9,
|
||||
0x00001ffa, 0x00001f7c, 0x00001ffa,
|
||||
0x00001ffb, 0x00001f7d, 0x00001ffb,
|
||||
0x00001ffc, 0x00001ff3, 0x00001ffc,
|
||||
0x00002126, 0x000003c9, 0x00002126,
|
||||
0x0000212a, 0x0000006b, 0x0000212a,
|
||||
0x0000212b, 0x000000e5, 0x0000212b,
|
||||
|
|
@ -3001,7 +2974,34 @@ static const ac_uint4 _uccase_map[] = {
|
|||
0x000001c5, 0x000001c4, 0x000001c6,
|
||||
0x000001c8, 0x000001c7, 0x000001c9,
|
||||
0x000001cb, 0x000001ca, 0x000001cc,
|
||||
0x000001f2, 0x000001f1, 0x000001f3
|
||||
0x000001f2, 0x000001f1, 0x000001f3,
|
||||
0x00001f88, 0x00001f88, 0x00001f80,
|
||||
0x00001f89, 0x00001f89, 0x00001f81,
|
||||
0x00001f8a, 0x00001f8a, 0x00001f82,
|
||||
0x00001f8b, 0x00001f8b, 0x00001f83,
|
||||
0x00001f8c, 0x00001f8c, 0x00001f84,
|
||||
0x00001f8d, 0x00001f8d, 0x00001f85,
|
||||
0x00001f8e, 0x00001f8e, 0x00001f86,
|
||||
0x00001f8f, 0x00001f8f, 0x00001f87,
|
||||
0x00001f98, 0x00001f98, 0x00001f90,
|
||||
0x00001f99, 0x00001f99, 0x00001f91,
|
||||
0x00001f9a, 0x00001f9a, 0x00001f92,
|
||||
0x00001f9b, 0x00001f9b, 0x00001f93,
|
||||
0x00001f9c, 0x00001f9c, 0x00001f94,
|
||||
0x00001f9d, 0x00001f9d, 0x00001f95,
|
||||
0x00001f9e, 0x00001f9e, 0x00001f96,
|
||||
0x00001f9f, 0x00001f9f, 0x00001f97,
|
||||
0x00001fa8, 0x00001fa8, 0x00001fa0,
|
||||
0x00001fa9, 0x00001fa9, 0x00001fa1,
|
||||
0x00001faa, 0x00001faa, 0x00001fa2,
|
||||
0x00001fab, 0x00001fab, 0x00001fa3,
|
||||
0x00001fac, 0x00001fac, 0x00001fa4,
|
||||
0x00001fad, 0x00001fad, 0x00001fa5,
|
||||
0x00001fae, 0x00001fae, 0x00001fa6,
|
||||
0x00001faf, 0x00001faf, 0x00001fa7,
|
||||
0x00001fbc, 0x00001fbc, 0x00001fb3,
|
||||
0x00001fcc, 0x00001fcc, 0x00001fc3,
|
||||
0x00001ffc, 0x00001ffc, 0x00001ff3
|
||||
};
|
||||
|
||||
static const ac_uint4 _uccomp_size = 3684;
|
||||
|
|
|
|||
Loading…
Reference in a new issue