46 static uint32_t nzcc[] = {
603 static const uint32_t pr29_1_1[] = {
607 static const uint32_t pr29_1_2[] = {
617 static const uint32_t pr29_2_1[] = {
621 static const uint32_t pr29_2_2[] = {
622 0x0B3E, 0x0B56, 0x0B57, 0
630 static const uint32_t pr29_3_1[] = {
634 static const uint32_t pr29_3_2[] = {
642 static const uint32_t pr29_4_1[] = {
646 static const uint32_t pr29_4_2[] = {
654 static const uint32_t pr29_5_1[] = {
658 static const uint32_t pr29_5_2[] = {
668 static const uint32_t pr29_6_1[] = {
672 static const uint32_t pr29_6_2[] = {
673 0x0CC2, 0xCD5, 0xCD6, 0
681 static const uint32_t pr29_7_1[] = {
685 static const uint32_t pr29_7_2[] = {
693 static const uint32_t pr29_8_1[] = {
697 static const uint32_t pr29_8_2[] = {
706 static const uint32_t pr29_9_1[] = {
710 static const uint32_t pr29_9_2[] = {
718 static const uint32_t pr29_10_1[] = {
722 static const uint32_t pr29_10_2[] = {
731 static const uint32_t pr29_11_1[] = {
735 static const uint32_t pr29_11_2[] = {
744 static const uint32_t pr29_12_1[] = {
745 0x1100, 0x1101, 0x1102, 0x1103, 0x1104, 0x1105, 0x1106, 0x1107,
746 0x1108, 0x1109, 0x110A, 0x110B, 0x110C, 0x110D, 0x110E, 0x110F,
747 0x1110, 0x1111, 0x1112, 0
750 static const uint32_t pr29_12_2[] = {
751 0x1161, 0x1162, 0x1163, 0x1164, 0x1165, 0x1166, 0x1167, 0x1168,
752 0x1169, 0x116A, 0x116B, 0x116C, 0x116D, 0x116E, 0x116F, 0x1170,
753 0x1171, 0x1172, 0x1173, 0x1174, 0x1175, 0
762 static const uint32_t pr29_13_1[] = {
1165 static const uint32_t pr29_13_2[] = {
1166 0x11A8, 0x11A9, 0x11AA, 0x11AB, 0x11AC, 0x11AD, 0x11AE, 0x11AF,
1167 0x11B0, 0x11B1, 0x11B2, 0x11B3, 0x11B4, 0x11B5, 0x11B6, 0x11B7,
1168 0x11B8, 0x11B9, 0x11BA, 0x11BB, 0x11BC, 0x11BD, 0x11BE, 0x11BF,
1169 0x11C0, 0x11C1, 0x11C2, 0
1178 static const Pr29 pr29[] = {
1179 {&pr29_1_1[0], &pr29_1_2[0]},
1180 {&pr29_2_1[0], &pr29_2_2[0]},
1181 {&pr29_3_1[0], &pr29_3_2[0]},
1182 {&pr29_4_1[0], &pr29_4_2[0]},
1183 {&pr29_5_1[0], &pr29_5_2[0]},
1184 {&pr29_6_1[0], &pr29_6_2[0]},
1185 {&pr29_7_1[0], &pr29_7_2[0]},
1186 {&pr29_8_1[0], &pr29_8_2[0]},
1187 {&pr29_9_1[0], &pr29_9_2[0]},
1188 {&pr29_10_1[0], &pr29_10_2[0]},
1189 {&pr29_11_1[0], &pr29_11_2[0]},
1190 {&pr29_12_1[0], &pr29_12_2[0]},
1191 {&pr29_13_1[0], &pr29_13_2[0]},
1196 first_column (uint32_t c)
1200 for (i = 0; pr29[i].
first; i++)
1201 for (j = 0; pr29[i].
first[j]; j++)
1202 if (c == pr29[i].first[j])
1209 in_last_column_row (uint32_t c,
size_t row)
1213 for (i = 0; pr29[row - 1].
last[i]; i++)
1214 if (c == pr29[row - 1].last[i])
1221 combinationclass (uint32_t c)
1225 for (i = 0; nzcc[i]; i++)
1249 size_t i, j, k, row;
1263 for (i = 0; i < len; i++)
1264 if ((row = first_column (in[i])) > 0)
1265 for (j = i + 1; j < len; j++)
1266 if (combinationclass (in[j]))
1267 for (k = j + 1; k < len; k++)
1268 if (in_last_column_row (in[k], row))
1292 for (len = 0; in[len]; len++)
uint32_t * stringprep_utf8_to_ucs4(const char *str, ssize_t len, size_t *items_written)
int pr29_8z(const char *in)
int pr29_4z(const uint32_t *in)
int pr29_4(const uint32_t *in, size_t len)