This gets the code base up to date with **Unicode 16**.
I intend to follow this up with additional changes to update to **Unicode 17**.
I discovered that I accidentally had the unit tests disabled for the **Unicode** is_* functions.
Re-enable the tests and get things working.
Also add a "is_control_picture" unit tests.
I added additional logic that prints out useful information for when many of the **Unicode** related unit tests fail.
I intend to slowly add more such logic to all of me units tests over time.
I discovered that the combining characters might have marks in them that do not belong as punctuation.
I will have to follow this up with a bug fix to address all of these cases.
This will take some time.
I did not correct the unit tests within this commit to avoid doing a lot of that work right now.
I believe I also need to add is_mark functions to properly handle this and test for this.
This is will be a new feature to fix a bug.
I should also back port these changes to the 0.6.x series.
I also made some structural changes by adding some more if conditionals in situations where it seemed like there were too many checks in a given block set.
return F_false;
}
- if (private_f_utf_character_is_control_picture(sequence)) {
- return F_false;
- }
+ // Skipping control pictures check because they are already represented in the is symbols check.
if (private_f_utf_character_is_combining(sequence)) {
return F_false;
return F_false;
}
- if (private_f_utf_character_is_control_picture(sequence)) {
- return F_false;
- }
+ // Skipping control pictures check because they are already represented in the is symbols check.
if (private_f_utf_character_is_whitespace(sequence, F_true)) {
return F_false;
return F_false;
}
- if (private_f_utf_character_is_control_picture(sequence)) {
- return F_false;
- }
+ // Skipping control pictures check because they are already represented in the is symbols check.
if (private_f_utf_character_is_whitespace(sequence, F_true)) {
return F_false;
if (macro_f_utf_char_t_width_is(sequence) == 2) {
- // Diacritical Marks: U+0300 to U+036F.
- if (sequence >= 0xcc800000 && sequence <= 0xcdaf0000) {
- return F_true;
- }
+ if (macro_f_utf_char_t_to_char_1(sequence) >= 0xcc && macro_f_utf_char_t_to_char_1(sequence) <= 0xd8) {
- // Cyrillic: U+0483 to U+0489.
- if (sequence >= 0xd2830000 && sequence <= 0xd2890000) {
- return F_true;
- }
+ // Diacritical Marks: U+0300 to U+036F.
+ if (sequence >= 0xcc800000 && sequence <= 0xcdaf0000) {
+ return F_true;
+ }
- // Hebrew: U+0591 to U+05BD.
- if (sequence >= 0xd6910000 && sequence <= 0xd6bd0000) {
- return F_true;
- }
+ // Cyrillic: U+0483 to U+0489.
+ if (sequence >= 0xd2830000 && sequence <= 0xd2890000) {
+ return F_true;
+ }
- // Hebrew: U+05C1 to U+05C7.
- if (sequence >= 0xd7810000 && sequence <= 0xd7870000) {
- return F_true;
- }
+ // Hebrew: U+0591 to U+05BD.
+ if (sequence >= 0xd6910000 && sequence <= 0xd6bd0000) {
+ return F_true;
+ }
- // Arabic: U+0610 to U+061A.
- if (sequence >= 0xd8900000 && sequence <= 0xd89a0000) {
- return F_true;
- }
+ // Hebrew: U+05C1 to U+05C7.
+ if (sequence >= 0xd7810000 && sequence <= 0xd7870000) {
+ return F_true;
+ }
- if (macro_f_utf_char_t_to_char_1(sequence) == 0xd9) {
+ // Arabic: U+0610 to U+061A.
+ if (sequence >= 0xd8900000 && sequence <= 0xd89a0000) {
+ return F_true;
+ }
+ }
+ else if (macro_f_utf_char_t_to_char_1(sequence) == 0xd9) {
// Arabic: U+064B to U+065F.
if (sequence >= 0xd98b0000 && sequence <= 0xd99f0000) {
if (macro_f_utf_char_t_to_char_1(sequence) == 0xe0) {
- // Samaritan: U+0816 to U+0819.
- if (sequence >= 0xe0a09600 && sequence <= 0xe0a09900) {
- return F_true;
- }
+ if (macro_f_utf_char_t_to_char_2(sequence) == 0xa0) {
- // Samaritan: U+081B to U+0823.
- if (sequence >= 0xe0a09b00 && sequence <= 0xe0a0a300) {
- return F_true;
- }
+ // Samaritan: U+0816 to U+0819.
+ if (sequence >= 0xe0a09600 && sequence <= 0xe0a09900) {
+ return F_true;
+ }
- // Samaritan: U+0825 to U+0827.
- if (sequence >= 0xe0a0a500 && sequence <= 0xe0a0a700) {
- return F_true;
- }
+ // Samaritan: U+081B to U+0823.
+ if (sequence >= 0xe0a09b00 && sequence <= 0xe0a0a300) {
+ return F_true;
+ }
- // Samaritan: U+0829.
- if (sequence == 0xe0a0a900) {
- return F_true;
- }
+ // Samaritan: U+0825 to U+0827.
+ if (sequence >= 0xe0a0a500 && sequence <= 0xe0a0a700) {
+ return F_true;
+ }
- // Samaritan: U+082A to U+082D.
- if (sequence >= 0xe0a0aa00 && sequence <= 0xe0a0ad00) {
- return F_true;
- }
+ // Samaritan: U+0829.
+ if (sequence == 0xe0a0a900) {
+ return F_true;
+ }
- // Mandaic: U+0859 to U+085B.
- if (sequence >= 0xe0a19900 && sequence <= 0xe0a19b00) {
- return F_true;
- }
+ // Samaritan: U+082A to U+082D.
+ if (sequence >= 0xe0a0aa00 && sequence <= 0xe0a0ad00) {
+ return F_true;
+ }
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xa1) {
- // Arabic Extended-B: U+0898 to U+089F.
- if (sequence >= 0xe0a29800 && sequence <= 0xe0a29f00) {
- return F_true;
+ // Mandaic: U+0859 to U+085B.
+ if (sequence >= 0xe0a19900 && sequence <= 0xe0a19b00) {
+ return F_true;
+ }
}
-
- // Arabic Extended-A: U+08CA to U+08FF.
- if (sequence >= 0xe0a38a00 && sequence <= 0xe0a3bf00) {
- return F_true;
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xa2) {
+
+ // Arabic Extended-B: U+0897 to U+089F.
+ if (sequence >= 0xe0a29700 && sequence <= 0xe0a29f00) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xa3) {
+
+ // Arabic Extended-A: U+08CA to U+08FF.
+ if (sequence >= 0xe0a38a00 && sequence <= 0xe0a3bf00) {
+ return F_true;
+ }
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xa4) {
- // Devanagari: U+0900 to U+0903.
- if (sequence >= 0xe0a48000 && sequence <= 0xe0a48300) {
- return F_true;
+ // Devanagari: U+0900 to U+0903.
+ if (sequence >= 0xe0a48000 && sequence <= 0xe0a48300) {
+ return F_true;
+ }
+
+ // Devanagari: U+093A to U+093C.
+ if (sequence >= 0xe0a4ba00 && sequence <= 0xe0a4bc00) {
+ return F_true;
+ }
+
+ // Devanagari: U+093E to U+093F.
+ if (sequence >= 0xe0a4be00 && sequence <= 0xe0a4bf00) {
+ return F_true;
+ }
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xa5) {
+
+ // Devanagari: U+0940 to U+094F.
+ if (sequence >= 0xe0a58000 && sequence <= 0xe0a58f00) {
+ return F_true;
+ }
+
+ // Devanagari: U+0951 to U+0957.
+ if (sequence >= 0xe0a59100 && sequence <= 0xe0a59700) {
+ return F_true;
+ }
+
+ // Devanagari: U+0962 to U+0963.
+ if (sequence >= 0xe0a5a200 && sequence <= 0xe0a5a300) {
+ return F_true;
+ }
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xa6) {
+
+ // Bengali: U+0981 to U+0983.
+ if (sequence >= 0xe0a68100 && sequence <= 0xe0a68300) {
+ return F_true;
+ }
+
+ // Bengali: U+09BC.
+ if (sequence == 0xe0a6bc00) {
+ return F_true;
+ }
+
+ // Bengali: U+09BE to U+09BF.
+ if (sequence >= 0xe0a6be00 && sequence <= 0xe0a6bf00) {
+ return F_true;
+ }
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xa7) {
+
+ // Bengali: U+09C0 to U+09C4.
+ if (sequence >= 0xe0a78000 && sequence <= 0xe0a78400) {
+ return F_true;
+ }
+
+ // Bengali: U+09C7, U+09C8.
+ if (sequence == 0xe0a78700 || sequence == 0xe0a78800) {
+ return F_true;
+ }
+
+ // Bengali: U+09CB to U+09CD.
+ if (sequence >= 0xe0a78b00 && sequence <= 0xe0a78d00) {
+ return F_true;
+ }
+
+ // Bengali: U+09E2, U+09E3, U+09FE.
+ if (sequence == 0xe0a7a200 || sequence == 0xe0a7a300 || sequence == 0xe0a7be00) {
+ return F_true;
+ }
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xa8) {
+
+ // Gurmukhi: U+0A01 to U+0A03.
+ if (sequence >= 0xe0a88100 && sequence <= 0xe0a88300) {
+ return F_true;
+ }
+
+ // Gurmukhi: U+0A3C.
+ if (sequence == 0xe0a8bc00) {
+ return F_true;
+ }
+
+ // Gurmukhi: U+0A3E to U+0A3F.
+ if (sequence >= 0xe0a8be00 && sequence <= 0xe0a8bf00) {
+ return F_true;
+ }
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xa9) {
+
+ // Gurmukhi: U+0A40 to U+0A42.
+ if (sequence >= 0xe0a98000 && sequence <= 0xe0a98200) {
+ return F_true;
+ }
+
+ // Gurmukhi: U+0A47 to U+0A48.
+ if (sequence >= 0xe0a98700 && sequence <= 0xe0a98800) {
+ return F_true;
+ }
+
+ // Gurmukhi: U+0A4B to U+0A4D.
+ if (sequence >= 0xe0a98b00 && sequence <= 0xe0a98d00) {
+ return F_true;
+ }
+
+ // Gurmukhi: U+0A51.
+ if (sequence == 0xe0a99100) {
+ return F_true;
+ }
+
+ // Gurmukhi: U+0A70, U+0A71, U+0A75.
+ if (sequence == 0xe0a9b000 || sequence == 0xe0a9b100 || sequence == 0xe0a9b500) {
+ return F_true;
+ }
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xaa) {
+
+ // Gujarati: U+0A81 to U+0A82.
+ if (sequence >= 0xe0aa8100 && sequence <= 0xe0aa8200) {
+ return F_true;
+ }
+
+ // Gujarati: U+0ABC.
+ if (sequence == 0xe0aabc00) {
+ return F_true;
+ }
+
+ // Gujarati: U+0ABE to U+0ABF.
+ if (sequence >= 0xe0aabe00 && sequence <= 0xe0aabf00) {
+ return F_true;
+ }
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xab) {
+
+ // Gujarati: U+0AC0 to U+0AC5.
+ if (sequence >= 0xe0ab8000 && sequence <= 0xe0ab8500) {
+ return F_true;
+ }
+
+ // Gujarati: U+0AC7 to U+0AC9.
+ if (sequence >= 0xe0ab8700 && sequence <= 0xe0ab8900) {
+ return F_true;
+ }
+
+ // Gujarati: U+0ACB to U+0ACD.
+ if (sequence >= 0xe0ab8b00 && sequence <= 0xe0ab8d00) {
+ return F_true;
+ }
+
+ // Gujarati: U+0AE2 to U+0AE3.
+ if (sequence >= 0xe0aba200 && sequence <= 0xe0aba300) {
+ return F_true;
+ }
+
+ // Gujarati: U+0AFA to U+0AFF.
+ if (sequence >= 0xe0abba00 && sequence <= 0xe0abbf00) {
+ return F_true;
+ }
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xac) {
+
+ // Oriya: U+0B01, U+0B3C, U+0B3F.
+ if (sequence == 0xe0ac8100 || sequence == 0xe0acbc00 || sequence == 0xe0acbf00) {
+ return F_true;
+ }
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xad) {
+
+ // Oriya: U+0B41 to U+0B44.
+ if (sequence >= 0xe0ad8100 && sequence <= 0xe0ad8400) {
+ return F_true;
+ }
+
+ // Oriya: U+0B4D, U+0B56, U+0B62, U+0B63.
+ if (sequence == 0xe0ad8d00 || sequence == 0xe0ad9600 || sequence == 0xe0ada200 || sequence == 0xe0ada300) {
+ return F_true;
+ }
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xae) {
+ // There are none here.
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xaf) {
+
+ // Tamil: U+0BC0, U+0BCD.
+ if (sequence == 0xe0af8000 || sequence == 0xe0af8d00) {
+ return F_true;
+ }
}
-
- // Devanagari: U+093A to U+093C.
- if (sequence >= 0xe0a4ba00 && sequence <= 0xe0a4bc00) {
- return F_true;
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xb0) {
+
+ // Telugu: U+0C00.
+ if (sequence == 0xe0b08000) {
+ return F_true;
+ }
+
+ // Telugu: U+0C3E to U+0C3F.
+ if (sequence >= 0xe0b0be00 && sequence <= 0xe0b0bf00) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xb1) {
+
+ // Telugu: U+0C40.
+ if (sequence == 0xe0b18000) {
+ return F_true;
+ }
- // Devanagari: U+093E to U+094F.
- if (sequence >= 0xe0a4be00 && sequence <= 0xe0a58f00) {
- return F_true;
- }
+ // Telugu: U+0C46 to U+0C48.
+ if (sequence >= 0xe0b18600 && sequence <= 0xe0b18800) {
+ return F_true;
+ }
- // Devanagari: U+0951 to U+0957.
- if (sequence >= 0xe0a59100 && sequence <= 0xe0a59700) {
- return F_true;
- }
+ // Telugu: U+0C4A to U+0C4D.
+ if (sequence >= 0xe0b18a00 && sequence <= 0xe0b18d00) {
+ return F_true;
+ }
- // Devanagari: U+0962 to U+0963.
- if (sequence >= 0xe0a5a200 && sequence <= 0xe0a5a300) {
- return F_true;
+ // Telugu: U+0C55, U+0C56, U+0C62, U+0C63.
+ if (sequence == 0xe0b19500 || sequence == 0xe0b19600 || sequence == 0xe0b1a200 || sequence == 0xe0b1a300) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xb2) {
- // Bengali: U+0981 to U+0983.
- if (sequence >= 0xe0a68100 && sequence <= 0xe0a68300) {
- return F_true;
- }
+ // Kannada: U+0C81.
+ if (sequence == 0xe0b28100) {
+ return F_true;
+ }
- // Bengali: U+09BC.
- if (sequence == 0xe0a6bc00) {
- return F_true;
+ // Kannada: U+0CBC to U+0CBF.
+ if (sequence >= 0xe0b2bc00 && sequence <= 0xe0b2bf00) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xb3) {
- // Bengali: U+09BE to U+09C4.
- if (sequence >= 0xe0a6be00 && sequence <= 0xe0a78400) {
- return F_true;
- }
+ // Kannada: U+0CC0 to U+0CCD.
+ if (sequence >= 0xe0b38000 && sequence <= 0xe0b38d00) {
+ return F_true;
+ }
- // Bengali: U+09C7, U+09C8.
- if (sequence == 0xe0a78700 || sequence == 0xe0a78800) {
- return F_true;
+ // Kannada: U+0CE2, U+0CE3, U+0CF3.
+ if (sequence == 0xe0b3a200 || sequence == 0xe0b3a300 || sequence == 0xe0b3b300) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xb4) {
- // Bengali: U+09CB to U+09CD.
- if (sequence >= 0xe0a78b00 && sequence <= 0xe0a78d00) {
- return F_true;
+ // Malayalam: U+0D01.
+ if (sequence == 0xe0b48100) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xb5) {
- // Bengali: U+09E2, U+09E3, U+09FE.
- if (sequence == 0xe0a7a200 || sequence == 0xe0a7a300 || sequence == 0xe0a7be00) {
- return F_true;
- }
+ // Malayalam: U+0D41 to U+0D44.
+ if (sequence >= 0xe0b58100 && sequence <= 0xe0b58400) {
+ return F_true;
+ }
- // Gurmukhi: U+0A01 to U+0A03.
- if (sequence >= 0xe0a88100 && sequence <= 0xe0a88300) {
- return F_true;
+ // Malayalam: U+0D4D, U+0D62, U+0D63.
+ if (sequence == 0xe0b58d00 || sequence == 0xe0b5a200 || sequence == 0xe0b5a300) {
+ return F_true;
+ }
}
-
- // Gurmukhi: U+0A3C.
- if (sequence == 0xe0a8bc00) {
- return F_true;
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xb6) {
+ // There are none here.
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xb7) {
- // Gurmukhi: U+0A3E to U+0A42.
- if (sequence >= 0xe0a8be00 && sequence <= 0xe0a98200) {
- return F_true;
- }
+ // Sinhala: U+0DCA.
+ if (sequence == 0xe0b78a00) {
+ return F_true;
+ }
- // Gurmukhi: U+0A47 to U+0A48.
- if (sequence >= 0xe0a98700 && sequence <= 0xe0a98800) {
- return F_true;
- }
+ // Sinhala: U+0DD2 to U+0DD4.
+ if (sequence >= 0xe0b79200 && sequence <= 0xe0b79400) {
+ return F_true;
+ }
- // Gurmukhi: U+0A4B to U+0A4D.
- if (sequence >= 0xe0a98b00 && sequence <= 0xe0a98d00) {
- return F_true;
+ // Sinhala: U+0DD6.
+ if (sequence == 0xe0b79600) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xb8) {
- // Gurmukhi: U+0A51.
- if (sequence == 0xe0a99100) {
- return F_true;
- }
+ // Thai: U+0E31.
+ if (sequence == 0xe0b8b100) {
+ return F_true;
+ }
- // Gurmukhi: U+0A70, U+0A71, U+0A75.
- if (sequence == 0xe0a9b000 || sequence == 0xe0a9b100 || sequence == 0xe0a9b500) {
- return F_true;
+ // Thai: U+0E34 to U+0E3A.
+ if (sequence >= 0xe0b8b400 && sequence <= 0xe0b8ba00) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xb9) {
- // Gujarati: U+0A81 to U+0A82.
- if (sequence >= 0xe0aa8100 && sequence <= 0xe0aa8200) {
- return F_true;
+ // Thai: U+0E47 to U+0E4E.
+ if (sequence >= 0xe0b98700 && sequence <= 0xe0b98e00) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xba) {
- // Gujarati: U+0ABC.
- if (sequence == 0xe0aabc00) {
- return F_true;
- }
+ // Lao: U+0EB1.
+ if (sequence == 0xe0bab100) {
+ return F_true;
+ }
- // Gujarati: U+0ABE to U+0AC5.
- if (sequence >= 0xe0aabe00 && sequence <= 0xe0ab8500) {
- return F_true;
- }
+ // Lao: U+0EB4 to U+0EB9.
+ if (sequence >= 0xe0bab400 && sequence <= 0xe0bab900) {
+ return F_true;
+ }
- // Gujarati: U+0AC7 to U+0AC9.
- if (sequence >= 0xe0ab8700 && sequence <= 0xe0ab8900) {
- return F_true;
+ // Lao: U+0EBB, U+0EBC.
+ if (sequence == 0xe0babb00 || sequence == 0xe0babc00) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xbb) {
- // Gujarati: U+0ACB to U+0ACD.
- if (sequence >= 0xe0ab8b00 && sequence <= 0xe0ab8d00) {
- return F_true;
+ // Lao: U+0ECE.
+ if (sequence == 0xe0bb8e00) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xbc) {
- // Gujarati: U+0AE2 to U+0AE3.
- if (sequence >= 0xe0aba200 && sequence <= 0xe0aba300) {
- return F_true;
- }
+ // Tibetan: U+0F18 to U+0F19.
+ if (sequence >= 0xe0bc9800 && sequence <= 0xe0bc9900) {
+ return F_true;
+ }
- // Gujarati: U+0AFA to U+0AFF.
- if (sequence >= 0xe0abba00 && sequence <= 0xe0abbf00) {
- return F_true;
+ // Tibetan: U+0F35, U+0F37, U+0F39.
+ if (sequence == 0xe0bcb500 || sequence == 0xe0bcb700 || sequence == 0xe0bcb900) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xbd) {
- // Oriya: U+0B01, U+0B3C, U+0B3F.
- if (sequence == 0xe0ac8100 || sequence == 0xe0acbc00 || sequence == 0xe0acbf00) {
- return F_true;
+ // Tibetan: U+0F71 to U+0F7E.
+ if (sequence >= 0xe0bdb100 && sequence <= 0xe0bdbe00) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xbe) {
- // Oriya: U+0B41 to U+0B44.
- if (sequence >= 0xe0ad8100 && sequence <= 0xe0ad8400) {
- return F_true;
- }
+ // Tibetan: U+0F80 to U+0F84.
+ if (sequence >= 0xe0be8000 && sequence <= 0xe0be8400) {
+ return F_true;
+ }
- // Oriya: U+0B4D, U+0B56, U+0B62, U+0B63.
- if (sequence == 0xe0ad8d00 || sequence == 0xe0ad9600 || sequence == 0xe0ada200 || sequence == 0xe0ada300) {
- return F_true;
- }
+ // Tibetan: U+0F86 to U+0F87.
+ if (sequence >= 0xe0be8600 && sequence <= 0xe0be8700) {
+ return F_true;
+ }
- // Tamil: U+0BC0, U+0BCD.
- if (sequence == 0xe0af8000 || sequence == 0xe0af8d00) {
- return F_true;
- }
+ // Tibetan: U+0F8D to U+0F97.
+ if (sequence >= 0xe0be8d00 && sequence <= 0xe0be9700) {
+ return F_true;
+ }
- // Telugu: U+0C00.
- if (sequence == 0xe0b08000) {
- return F_true;
+ // Tibetan: U+0F99 to U+0FBC.
+ if (sequence >= 0xe0be9900 && sequence <= 0xe0bebc00) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xbf) {
- // Telugu: U+0C3E to U+0C40.
- if (sequence >= 0xe0b0be00 && sequence <= 0xe0b18000) {
- return F_true;
+ // Tibetan: U+0FC6.
+ if (sequence == 0xe0bf8600) {
+ return F_true;
+ }
}
+ }
+ else if (macro_f_utf_char_t_to_char_1(sequence) == 0xe1) {
- // Telugu: U+0C46 to U+0C48.
- if (sequence >= 0xe0b18600 && sequence <= 0xe0b18800) {
- return F_true;
+ if (macro_f_utf_char_t_to_char_2(sequence) == 0x80) {
+ // Myanmar: U+102D to U+1030.
+ if (sequence >= 0xe180ad00 && sequence <= 0xe180b000) {
+ return F_true;
+ }
+
+ // Myanmar: U+1039 to U+103A.
+ if (sequence >= 0xe180b900 && sequence <= 0xe180ba00) {
+ return F_true;
+ }
+
+ // Myanmar: U+103D to U+103E.
+ if (sequence >= 0xe180bd00 && sequence <= 0xe180be00) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0x81) {
- // Telugu: U+0C4A to U+0C4D.
- if (sequence >= 0xe0b18a00 && sequence <= 0xe0b18d00) {
- return F_true;
+ // Myanmar: U+1058 to U+1059.
+ if (sequence >= 0xe1819800 && sequence <= 0xe1819900) {
+ return F_true;
+ }
+
+ // Myanmar: U+105E to U+1060.
+ if (sequence >= 0xe1819e00 && sequence <= 0xe181a000) {
+ return F_true;
+ }
+
+ // Myanmar: U+1071 to U+1074.
+ if (sequence >= 0xe181b100 && sequence <= 0xe181b400) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0x82) {
- // Telugu: U+0C55, U+0C56, U+0C62, U+0C63.
- if (sequence == 0xe0b19500 || sequence == 0xe0b19600 || sequence == 0xe0b1a200 || sequence == 0xe0b1a300) {
- return F_true;
+ // Myanmar: U+1082, U+1085, U+1086, U+108D.
+ if (sequence == 0xe1828200 || sequence == 0xe1828500 || sequence == 0xe1828600 || sequence == 0xe1828d00) {
+ return F_true;
+ }
+
+ // Myanmar: U+109D.
+ if (sequence == 0xe1829d00) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) < 0x8d) {
+ // There are none here.
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0x8d) {
- // Kannada: U+0C81.
- if (sequence == 0xe0b28100) {
- return F_true;
+ // Ethiopic: U+135D to U+135F.
+ if (sequence >= 0xe18d9d00 && sequence <= 0xe18d9f00) {
+ return F_true;
+ }
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) < 0x9c) {
+ // There are none here.
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0x9c) {
- // Kannada: U+0CBC to U+0CCD.
- if (sequence >= 0xe0b2bc00 && sequence <= 0xe0b38d00) {
- return F_true;
+ // Tagalog: U+1712 to U+1714.
+ if (sequence >= 0xe19c9200 && sequence <= 0xe19c9400) {
+ return F_true;
+ }
+
+ // Hanunoo: U+1732 to U+1734.
+ if (sequence >= 0xe19cb200 && sequence <= 0xe19cb400) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0x9d) {
- // Kannada: U+0CE2, U+0CE3, U+0CF3.
- if (sequence == 0xe0b3a200 || sequence == 0xe0b3a300 || sequence == 0xe0b3b300) {
- return F_true;
+ // Buhid: U+1752 to U+1753.
+ if (sequence >= 0xe19d9200 && sequence <= 0xe19d9300) {
+ return F_true;
+ }
+
+ // Tagbanwa: U+1772 to U+1773.
+ if (sequence >= 0xe19db200 && sequence <= 0xe19db300) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0x9e) {
- // Malayalam: U+0D01.
- if (sequence == 0xe0b48100) {
- return F_true;
+ // Khmer: U+17B4 to U+17B5.
+ if (sequence >= 0xe19eb400 && sequence <= 0xe19eb500) {
+ return F_true;
+ }
+
+ // Khmer: U+17B7 to U+17BD.
+ if (sequence >= 0xe19eb700 && sequence <= 0xe19ebd00) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0x9f) {
- // Malayalam: U+0D41 to U+0D44.
- if (sequence >= 0xe0b58100 && sequence <= 0xe0b58400) {
- return F_true;
+ // Khmer: U+17C6, U+17C9.
+ if (sequence == 0xe19f8600 || sequence == 0xe19f8900) {
+ return F_true;
+ }
+
+ // Khmer: U+17CA to U+17D3.
+ if (sequence >= 0xe19f8a00 && sequence <= 0xe19f9300) {
+ return F_true;
+ }
+
+ // Khmer: U+17DD.
+ if (sequence == 0xe19f9d00) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xa0) {
- // Malayalam: U+0D4D, U+0D62, U+0D63.
- if (sequence == 0xe0b58d00 || sequence == 0xe0b5a200 || sequence == 0xe0b5a300) {
- return F_true;
+ // Mongolian: U+180B to U+180D.
+ if (sequence >= 0xe1a08b00 && sequence <= 0xe1a08d00) {
+ return F_true;
+ }
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xa1) {
+ // There are none here.
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xa2) {
- // Sinhala: U+0DCA.
- if (sequence == 0xe0b78a00) {
- return F_true;
+ // Mongolian: U+18A9.
+ if (sequence == 0xe1a2a900) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xa3) {
+ // There are none here.
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xa4) {
- // Sinhala: U+0DD2 to U+0DD4.
- if (sequence >= 0xe0b79200 && sequence <= 0xe0b79400) {
- return F_true;
+ // Mongolian: U+1920 to U+1922.
+ if (sequence >= 0xe1a4a000 && sequence <= 0xe1a4a200) {
+ return F_true;
+ }
+
+ // Limbu: U+1927, U+1928, U+1932.
+ if (sequence == 0xe1a4a700 || sequence == 0xe1a4a800 || sequence == 0xe1a4b200) {
+ return F_true;
+ }
+
+ // Limbu: U+1939 to U+193B.
+ if (sequence >= 0xe1a4b900 && sequence <= 0xe1a4bb00) {
+ return F_true;
+ }
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) < 0xa8) {
+ // There are none here.
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xa8) {
- // Sinhala: U+0DD6.
- if (sequence == 0xe0b79600) {
- return F_true;
+ // Buginese: U+1A17 to U+1A18.
+ if (sequence >= 0xe1a89700 && sequence <= 0xe1a89800) {
+ return F_true;
+ }
+
+ // Buginese: U+1A1B.
+ if (sequence == 0xe1a89b00) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xa9) {
- // Thai: U+0E31.
- if (sequence == 0xe0b8b100) {
- return F_true;
+ // Tai Tham: U+1A56.
+ if (sequence == 0xe1a99600) {
+ return F_true;
+ }
+
+ // Tai Tham: U+1A58 to U+1A5E.
+ if (sequence >= 0xe1a99800 && sequence <= 0xe1a99e00) {
+ return F_true;
+ }
+
+ // Tai Tham: U+1A60, U+1A62.
+ if (sequence == 0xe1a9a000 || sequence == 0xe1a9a200) {
+ return F_true;
+ }
+
+ // Tai Tham: U+1A65 to U+1A6C.
+ if (sequence >= 0xe1a9a500 && sequence <= 0xe1a9ac00) {
+ return F_true;
+ }
+
+ // Tai Tham: U+1A73 to U+1A7C.
+ if (sequence >= 0xe1a9b300 && sequence <= 0xe1a9bc00) {
+ return F_true;
+ }
+
+ // Tai Tham: U+1A7F.
+ if (sequence == 0xe1a9bf00) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xaa) {
+
+ // Diacritical Marks Extended: U+1AB0 to U+1ABF.
+ if (sequence >= 0xe1aab000 && sequence <= 0xe1aabf00) {
+ return F_true;
+ }
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xab) {
- // Thai: U+0E34 to U+0E3A.
- if (sequence >= 0xe0b8b400 && sequence <= 0xe0b8ba00) {
- return F_true;
+ // Diacritical Marks Extended: U+1AC0 to U+1ACE.
+ if (sequence >= 0xe1ab8000 && sequence <= 0xe1ab8e00) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xac) {
- // Thai: U+0E47 to U+0E4E.
- if (sequence >= 0xe0b98700 && sequence <= 0xe0b98e00) {
- return F_true;
+ // Balinese: U+1B00 to U+1B04.
+ if (sequence >= 0xe1ac8000 && sequence <= 0xe1ac8400) {
+ return F_true;
+ }
+
+ // Balinese: U+1B34 to U+1B3F.
+ if (sequence >= 0xe1acb400 && sequence <= 0xe1acbf00) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xad) {
- // Lao: U+0EB1.
- if (sequence == 0xe0bab100) {
- return F_true;
+ // Balinese: U+1B40 to U+1B44.
+ if (sequence >= 0xe1ad8000 && sequence <= 0xe1ad8400) {
+ return F_true;
+ }
+
+ // Balinese: U+1B6B to U+1B73.
+ if (sequence >= 0xe1adab00 && sequence <= 0xe1adb300) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xae) {
+
+ // Sundanese: U+1B80 to U+1B81.
+ if (sequence >= 0xe1ae8000 && sequence <= 0xe1ae8100) {
+ return F_true;
+ }
+
+ // Sundanese: U+1BA2 to U+1BA5.
+ if (sequence >= 0xe1aea200 && sequence <= 0xe1aea500) {
+ return F_true;
+ }
- // Lao: U+0EB4 to U+0EB9.
- if (sequence >= 0xe0bab400 && sequence <= 0xe0bab900) {
- return F_true;
+ // Sundanese: U+1BA8 to U+1BA9.
+ if (sequence >= 0xe1aea800 && sequence <= 0xe1aea900) {
+ return F_true;
+ }
+
+ // Sundanese: U+1BAB to U+1BAD.
+ if (sequence >= 0xe1aeab00 && sequence <= 0xe1aead00) {
+ return F_true;
+ }
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xaf) {
+
+ // Batak: U+1BE6, U+1BE8, U+1BE9, U+1BED.
+ if (sequence == 0xe1afa600 || sequence == 0xe1afa800 || sequence == 0xe1afa900 || sequence == 0xe1afad00) {
+ return F_true;
+ }
+
+ // Batak: U+1BEF, U+1BF0, U+1BF1.
+ if (sequence == 0xe1afaf00 || sequence == 0xe1afb000 || sequence == 0xe1afb100) {
+ return F_true;
+ }
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xb0) {
+
+ // Lepcha: U+1C2C to U+1C33.
+ if (sequence >= 0xe1b0ac00 && sequence <= 0xe1b0b300) {
+ return F_true;
+ }
+
+ // Lepcha: U+1C36 to U+1C37.
+ if (sequence >= 0xe1b0b600 && sequence <= 0xe1b0b700) {
+ return F_true;
+ }
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) < 0xb3) {
+ // There are none here.
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xb3) {
- // Lao: U+0EBB, U+0EBC, U+0ECE.
- if (sequence == 0xe0babb00 || sequence == 0xe0babc00 || sequence == 0xe0bb8e00) {
- return F_true;
+ // Vedic Extensions: U+1CD0 to U+1CD2.
+ if (sequence >= 0xe1b39000 && sequence <= 0xe1b39200) {
+ return F_true;
+ }
+
+ // Vedic Extensions: U+1CD4 to U+1CE8.
+ if (sequence >= 0xe1b39400 && sequence <= 0xe1b3a800) {
+ return F_true;
+ }
+
+ // Vedic Extensions: U+1CED, U+1CF4, U+1CF8, U+1CF9.
+ if (sequence == 0xe1b3ad00 || sequence == 0xe1b3b400 || sequence == 0xe1b3b800 || sequence == 0xe1b3b900) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xb7) {
- // Tibetan: U+0F18 to U+0F19.
- if (sequence >= 0xe0bc9800 && sequence <= 0xe0bc9900) {
- return F_true;
+ // Diacritical Marks Supplement: U+1DC0 to U+1DFF.
+ if (sequence >= 0xe1b78000 && sequence <= 0xe1b7bf00) {
+ return F_true;
+ }
+
+ // Diacritical Marks Supplement: U+1DFB to U+1DFF.
+ if (sequence >= 0xe1b7bb00 && sequence <= 0xe1b7bf00) {
+ return F_true;
+ }
}
+ }
+ else if (macro_f_utf_char_t_to_char_1(sequence) == 0xe2) {
- // Tibetan: U+0F35, U+0F37, U+0F39.
- if (sequence == 0xe0bcb500 || sequence == 0xe0bcb700 || sequence == 0xe0bcb900) {
+ // Diacritical Marks For Symbols: U+20D0 to U+20F0.
+ if (sequence >= 0xe2839000 && sequence <= 0xe283b000) {
return F_true;
}
+ }
+ else if (macro_f_utf_char_t_to_char_1(sequence) == 0xe3) {
- // Tibetan: U+0F71 to U+0F7E.
- if (sequence >= 0xe0bdb100 && sequence <= 0xe0bdbe00) {
+ // CJK Symbols and Punctuation: U+302A to U+302D.
+ if (sequence >= 0xe380aa00 && sequence <= 0xe380ad00) {
return F_true;
}
- // Tibetan: U+0F80 to U+0F84.
- if (sequence >= 0xe0be8000 && sequence <= 0xe0be8400) {
+ // Hiragana: U+3099, U+309A.
+ if (sequence == 0xe3829900 || sequence == 0xe3829a00) {
return F_true;
}
+ }
+ else if (macro_f_utf_char_t_to_char_1(sequence) == 0xea) {
- // Tibetan: U+0F86 to U+0F87.
- if (sequence >= 0xe0be8600 && sequence <= 0xe0be8700) {
- return F_true;
+ if (macro_f_utf_char_t_to_char_2(sequence) == 0x99) {
+ // Cyrillic Extended-B: U+3099.
+ if (sequence == 0xea99af00) {
+ return F_true;
+ }
+
+ // Cyrillic Extended-B: U+A66F to U+A672.
+ if (sequence >= 0xea99af00 && sequence <= 0xea99b200) {
+ return F_true;
+ }
+
+ // Cyrillic Extended-B: U+A674 to U+A67F.
+ if (sequence >= 0xea99b400 && sequence <= 0xea99bf00) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0x9a) {
- // Tibetan: U+0F8D to U+0F97.
- if (sequence >= 0xe0be8d00 && sequence <= 0xe0be9700) {
- return F_true;
+ // Cyrillic Extended-B: U+A680 to U+A69F.
+ if (sequence >= 0xea9a8000 && sequence <= 0xea9a9f00) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0x9b) {
- // Tibetan: U+0F99 to U+0FBC.
- if (sequence >= 0xe0be9900 && sequence <= 0xe0bebc00) {
- return F_true;
+ // Bamum: U+A6F0 to U+A6F1.
+ if (sequence >= 0xea9bb000 && sequence <= 0xea9bb100) {
+ return F_true;
+ }
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) < 0xa0) {
+ // There are none here.
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xa0) {
- // Tibetan: U+0FC6.
- if (sequence == 0xe0bf8600) {
- return F_true;
+ // Syloti Nagri: U+A802, U+A806, U+A80B, U+A825.
+ if (sequence == 0xeaa08200 || sequence == 0xeaa08600 || sequence == 0xeaa08b00 || sequence == 0xeaa0a500) {
+ return F_true;
+ }
+
+ // Syloti Nagri: U+A826.
+ if (sequence == 0xeaa0a600) {
+ return F_true;
+ }
}
- }
- else if (macro_f_utf_char_t_to_char_1(sequence) == 0xe1) {
+ else if (macro_f_utf_char_t_to_char_2(sequence) < 0xa3) {
+ //There are none here.
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xa3) {
- // Myanmar: U+102D to U+1030.
- if (sequence >= 0xe180ad00 && sequence <= 0xe180b000) {
- return F_true;
+ // Saurashtra: U+A8C4, U+A8C5.
+ if (sequence == 0xeaa38400 || sequence == 0xeaa38500) {
+ return F_true;
+ }
+
+ // Devanagari Extended: U+A8E0 to U+A8F1.
+ if (sequence >= 0xeaa3a000 && sequence <= 0xeaa3b100) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xa4) {
- // Myanmar: U+1039 to U+103A.
- if (sequence >= 0xe180b900 && sequence <= 0xe180ba00) {
- return F_true;
+ // Kayah Li: U+A926 to U+A92D.
+ if (sequence >= 0xeaa4a600 && sequence <= 0xeaa4ad00) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xa5) {
- // Myanmar: U+103D to U+103E.
- if (sequence >= 0xe180bd00 && sequence <= 0xe180be00) {
- return F_true;
+ // Rejang: U+A947 to U+A951.
+ if (sequence >= 0xeaa58700 && sequence <= 0xeaa59100) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xa6) {
- // Myanmar: U+1058 to U+1059.
- if (sequence >= 0xe1819800 && sequence <= 0xe1819900) {
- return F_true;
+ // Javanese: U+A980 to U+A982.
+ if (sequence >= 0xeaa68000 && sequence <= 0xeaa68200) {
+ return F_true;
+ }
+
+ // Javanese: U+A9B3.
+ if (sequence == 0xeaa6b300) {
+ return F_true;
+ }
+
+ // Javanese: U+A9B6 to U+A9B9.
+ if (sequence >= 0xeaa6b600 && sequence <= 0xeaa6b900) {
+ return F_true;
+ }
+
+ // Javanese: U+A9BC.
+ if (sequence == 0xeaa6bc00) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xa7) {
- // Myanmar: U+105E to U+1060.
- if (sequence >= 0xe1819e00 && sequence <= 0xe181a000) {
- return F_true;
+ // Myanmar Extended-B: U+A9E5.
+ if (sequence == 0xeaa7a500) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xa8) {
- // Myanmar: U+1071 to U+1074.
- if (sequence >= 0xe181b100 && sequence <= 0xe181b400) {
- return F_true;
+ // Cham: U+AA29 to U+AA2E.
+ if (sequence >= 0xeaa8a900 && sequence <= 0xeaa8ae00) {
+ return F_true;
+ }
+
+ // Cham: U+AA31 to U+AA32.
+ if (sequence >= 0xeaa8b100 && sequence <= 0xeaa8b200) {
+ return F_true;
+ }
+
+ // Cham: U+AA35 to U+AA36.
+ if (sequence >= 0xeaa8b500 && sequence <= 0xeaa8b600) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xa9) {
- // Myanmar: U+1082, U+1085, U+1086, U+108D.
- if (sequence == 0xe1828200 || sequence == 0xe1828500 || sequence == 0xe1828600 || sequence == 0xe1828d00) {
- return F_true;
+ // Cham: U+AA43, U+AA4C.
+ if (sequence == 0xeaa98300 || sequence == 0xeaa98c00) {
+ return F_true;
+ }
+
+ // Tai Viet: U+AA7C.
+ if (sequence == 0xeaa9bc00) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xaa) {
- // Myanmar: U+109D.
- if (sequence == 0xe1829d00) {
- return F_true;
+ // Tai Viet: U+AAB0.
+ if (sequence == 0xeaaab000) {
+ return F_true;
+ }
+
+ // Tai Viet: U+AAB2 to U+AAB4.
+ if (sequence >= 0xeaaab200 && sequence <= 0xeaaab400) {
+ return F_true;
+ }
+
+ // Tai Viet: U+AAB7 to U+AAB8.
+ if (sequence >= 0xeaaab700 && sequence <= 0xeaaab800) {
+ return F_true;
+ }
+
+ // Tai Viet: U+AABE to U+AABF.
+ if (sequence >= 0xeaaabe00 && sequence <= 0xeaaabf00) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xab) {
- // Ethiopic: U+135D to U+135F.
- if (sequence >= 0xe18d9d00 && sequence <= 0xe18d9f00) {
- return F_true;
+ // Tai Viet: U+AAC1.
+ if (sequence == 0xeaab8100) {
+ return F_true;
+ }
+
+ // Meetei Mayek Extensions: U+AAEC, U+AAED, U+AAF6.
+ if (sequence == 0xeaabac00 || sequence == 0xeaabad00 || sequence == 0xeaabb600) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xaf) {
- // Tagalog: U+1712 to U+1714.
- if (sequence >= 0xe19c9200 && sequence <= 0xe19c9400) {
- return F_true;
+ // Meetei Mayek: U+ABE5, U+ABE8, U+ABED.
+ if (sequence == 0xeaafa500 || sequence == 0xeaafa800 || sequence == 0xeaafad00) {
+ return F_true;
+ }
}
+ }
+ else if (macro_f_utf_char_t_to_char_1(sequence) == 0xef) {
- // Hanunoo: U+1732 to U+1734.
- if (sequence >= 0xe19cb200 && sequence <= 0xe19cb400) {
- return F_true;
+ if (macro_f_utf_char_t_to_char_2(sequence) == 0xac) {
+
+ // Alphabetic Presentation Forms: U+FB1E.
+ if (sequence == 0xefac9e00) {
+ return F_true;
+ }
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0xb8) {
- // Buhid: U+1752 to U+1753.
- if (sequence >= 0xe19d9200 && sequence <= 0xe19d9300) {
- return F_true;
+ // Variation Selectors: U+FE00 to U+FE0F.
+ if (sequence >= 0xefb88000 && sequence <= 0xefb88f00) {
+ return F_true;
+ }
+
+ // Variation Selectors: U+FE20 to U+FE0F.
+ if (sequence >= 0xefb88000 && sequence <= 0xefb88f00) {
+ return F_true;
+ }
+
+ // Combining Half Marks: U+FE20 to U+FE2F.
+ if (sequence >= 0xefb8a000 && sequence <= 0xefb8af00) {
+ return F_true;
+ }
}
+ }
- // Tagbanwa: U+1772 to U+1773.
- if (sequence >= 0xe19db200 && sequence <= 0xe19db300) {
+ return F_false;
+ }
+
+ if (macro_f_utf_char_t_to_char_1(sequence) == 0xf0) {
+
+ if (macro_f_utf_char_t_to_char_2(sequence) == 0x90) {
+
+ // Phaistos Disc: U+101FD.
+ if (sequence == 0xf09087bd) {
return F_true;
}
- // Khmer: U+17B4 to U+17B5.
- if (sequence >= 0xe19eb400 && sequence <= 0xe19eb500) {
+ // Coptic Epact Numbers: U+102E0.
+ if (sequence == 0xf0908ba0) {
return F_true;
}
- // Khmer: U+17B7 to U+17BD.
- if (sequence >= 0xe19eb700 && sequence <= 0xe19ebd00) {
+ // Old Permic: U+10376 to U+1037A.
+ if (sequence >= 0xf0908db6 && sequence <= 0xf0908dba) {
return F_true;
}
- // Khmer: U+17C6, U+17C9.
- if (sequence == 0xe19f8600 || sequence == 0xe19f8900) {
+ // Kharoshthi: U+10A01 to U+10A03.
+ if (sequence >= 0xf090a881 && sequence <= 0xf090a883) {
return F_true;
}
- // Khmer: U+17CA to U+17D3.
- if (sequence >= 0xe19f8a00 && sequence <= 0xe19f9300) {
+ // Kharoshthi: U+10A01, U+10A03, U+10A05, U+10A06.
+ if (sequence == 0xf090a881 || sequence == 0xf090a883 || sequence == 0xf090a885 || sequence == 0xf090a886) {
return F_true;
}
- // Khmer: U+17DD.
- if (sequence == 0xe19f9d00) {
+ // Kharoshthi: U+10A0C to U+10A0F.
+ if (sequence >= 0xf090a88c && sequence <= 0xf090a88f) {
return F_true;
}
- // Mongolian: U+180B to U+180D.
- if (sequence >= 0xe1a08b00 && sequence <= 0xe1a08d00) {
+ // Kharoshthi: U+10A38 to U+10A3A.
+ if (sequence >= 0xf090a8b8 && sequence <= 0xf090a8ba) {
return F_true;
}
- // Mongolian: U+18A9.
- if (sequence == 0xe1a2a900) {
+ // Kharoshthi: U+10A3F.
+ if (sequence == 0xf090a8bf) {
return F_true;
}
- // Mongolian: U+1920 to U+1922.
- if (sequence >= 0xe1a4a000 && sequence <= 0xe1a4a200) {
+ // Manichaean: U+10AE5, U+10AE6.
+ if (sequence == 0xf090aba5 || sequence == 0xf090aba6) {
return F_true;
}
- // Limbu: U+1927, U+1928, U+1932.
- if (sequence == 0xe1a4a700 || sequence == 0xe1a4a800 || sequence == 0xe1a4b200) {
+ // Hanifi Rohingya: U+10D24 to U+10D27.
+ if (sequence >= 0xf090b4a3 && sequence <= 0xf090b4a7) {
return F_true;
}
- // Limbu: U+1939 to U+193B.
- if (sequence >= 0xe1a4b900 && sequence <= 0xe1a4bb00) {
+ // Garay: U+10D69 to U+10D6A.
+ if (sequence >= 0xf090b5a9 && sequence <= 0xf090b5aa) {
return F_true;
}
- // Buginese: U+1A17 to U+1A18.
- if (sequence >= 0xe1a89700 && sequence <= 0xe1a89800) {
+ // Yezidi: U+10EAB to U+10EAD.
+ if (sequence >= 0xf090baab && sequence <= 0xf090baad) {
return F_true;
}
- // Buginese: U+1A1B.
- if (sequence == 0xe1a89b00) {
+ // Arabic Extended-C: U+10EFC to U+10EFF.
+ if (sequence >= 0xf090bbbc && sequence <= 0xf090bbbf) {
return F_true;
}
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0x91) {
- // Tai Tham: U+1A56.
- if (sequence == 0xe1a99600) {
+ // Brahmi: U+11001.
+ if (sequence == 0xf0918081) {
return F_true;
}
- // Tai Tham: U+1A58 to U+1A5E.
- if (sequence >= 0xe1a99800 && sequence <= 0xe1a99e00) {
+ // Brahmi: U+11038 to U+11046.
+ if (sequence >= 0xf09180b8 && sequence <= 0xf0918186) {
return F_true;
}
- // Tai Tham: U+1A60, U+1A62.
- if (sequence == 0xe1a9a000 || sequence == 0xe1a9a200) {
+ // Brahmi .. Kaithi: U+1107F to U+11081.
+ if (sequence >= 0xf09181bf && sequence <= 0xf0918281) {
return F_true;
}
- // Tai Tham: U+1A65 to U+1A6C.
- if (sequence >= 0xe1a9a500 && sequence <= 0xe1a9ac00) {
+ // Kaithi: U+110B3 to U+110B6.
+ if (sequence >= 0xf09182b3 && sequence <= 0xf09182b6) {
return F_true;
}
- // Tai Tham: U+1A73 to U+1A7C.
- if (sequence >= 0xe1a9b300 && sequence <= 0xe1a9bc00) {
+ // Kaithi: U+110B9, U+110BA.
+ if (sequence == 0xf09182b9 || sequence == 0xf09182ba) {
return F_true;
}
- // Tai Tham: U+1A7F.
- if (sequence == 0xe1a9bf00) {
+ // Chakma: U+11100 to U+11102.
+ if (sequence >= 0xf0918480 && sequence <= 0xf0918482) {
return F_true;
}
- // Diacritical Marks Extended: U+1AB0 to U+1ACE.
- if (sequence >= 0xe1aab000 && sequence <= 0xe1ab8e00) {
+ // Chakma: U+11127 to U+1112B.
+ if (sequence >= 0xf09184a7 && sequence <= 0xf09184ab) {
return F_true;
}
- // Balinese: U+1B00 to U+1B03.
- if (sequence >= 0xe1ac8000 && sequence <= 0xe1ac8300) {
+ // Chakma: U+1112D to U+11134.
+ if (sequence >= 0xf09184ad && sequence <= 0xf09184b4) {
return F_true;
}
- // Balinese: U+1B34.
- if (sequence == 0xe1acb400) {
+ // Mahajani: U+11173.
+ if (sequence == 0xf09185b3) {
return F_true;
}
- // Balinese: U+1B36 to U+1B3A.
- if (sequence >= 0xe1acb600 && sequence <= 0xe1acba00) {
+ // Sharada: U+11180 to U+11181.
+ if (sequence >= 0xf0918680 && sequence <= 0xf0918681) {
return F_true;
}
- // Balinese: U+1B3C, U+1B42.
- if (sequence == 0xe1acbc00 || sequence == 0xe1ad8200) {
+ // Sharada: U+111B6 to U+111BE.
+ if (sequence >= 0xf09186b6 && sequence <= 0xf09186be) {
return F_true;
}
- // Balinese: U+1B6B to U+1B73.
- if (sequence >= 0xe1adab00 && sequence <= 0xe1adb300) {
+ // Sharada: U+111CA to U+111CC.
+ if (sequence >= 0xf091878a && sequence <= 0xf091878c) {
return F_true;
}
- // Sundanese: U+1B80 to U+1B81.
- if (sequence >= 0xe1ae8000 && sequence <= 0xe1ae8100) {
+ // Sharada: U+111CA to U+111CC.
+ if (sequence >= 0xf091878a && sequence <= 0xf091878c) {
return F_true;
}
- // Sundanese: U+1BA2 to U+1BA5.
- if (sequence >= 0xe1aea200 && sequence <= 0xe1aea500) {
+ // Khojki: U+1122F to U+11231.
+ if (sequence >= 0xf09188af && sequence <= 0xf09188b1) {
return F_true;
}
- // Sundanese: U+1BA8 to U+1BA9.
- if (sequence >= 0xe1aea800 && sequence <= 0xe1aea900) {
+ // Khojki: U+11234, U+11236, U+11237.
+ if (sequence == 0xf09188b4 || sequence == 0xf09188b6 || sequence == 0xf09188b7) {
return F_true;
}
- // Sundanese: U+1BAB to U+1BAD.
- if (sequence >= 0xe1aeab00 && sequence <= 0xe1aead00) {
+ // Khudawadi: U+112DF, U+112DF.
+ if (sequence == 0xf0918b9f || sequence == 0xf0918b9f) {
return F_true;
}
- // Batak: U+1BE6, U+1BE8, U+1BE9, U+1BED.
- if (sequence == 0xe1afa600 || sequence == 0xe1afa800 || sequence == 0xe1afa900 || sequence == 0xe1afad00) {
+ // Khojki: U+112E3 to U+112EA.
+ if (sequence >= 0xf0918ba3 && sequence <= 0xf0918baa) {
return F_true;
}
- // Batak: U+1BEF, U+1BF0, U+1BF1.
- if (sequence == 0xe1afaf00 || sequence == 0xe1afb000 || sequence == 0xe1afb100) {
+ // Grantha: U+11300, U+11301, U+1133C, U+11340.
+ if (sequence == 0xf0918c80 || sequence == 0xf0918c81 || sequence == 0xf0918cbc || sequence == 0xf0918d80) {
return F_true;
}
- // Lepcha: U+1C2C to U+1C33.
- if (sequence >= 0xe1b0ac00 && sequence <= 0xe1b0b300) {
+ // Grantha: U+11366 to U+1136C.
+ if (sequence >= 0xf0918da6 && sequence <= 0xf0918dac) {
return F_true;
}
- // Lepcha: U+1C36 to U+1C37.
- if (sequence >= 0xe1b0b600 && sequence <= 0xe1b0b700) {
+ // Grantha: U+11370 to U+11374.
+ if (sequence >= 0xf0918db0 && sequence <= 0xf0918db4) {
return F_true;
}
- // Vedic Extensions: U+1CD2 to U+1CD4.
- if (sequence >= 0xe1b39200 && sequence <= 0xe1b39400) {
+ // Tirhuta: U+114B3 to U+114B8.
+ if (sequence >= 0xf09192b3 && sequence <= 0xf09192b8) {
return F_true;
}
- // Vedic Extensions: U+1CD0 to U+1CE0.
- if (sequence >= 0xe1b39000 && sequence <= 0xe1b3a000) {
+ // Tirhuta: U+114BA, U+114BF, U+114C0, U+114C2.
+ if (sequence == 0xf09192ba || sequence == 0xf09192bf || sequence == 0xf0919380 || sequence == 0xf0919382) {
return F_true;
}
- // Vedic Extensions: U+1CE2 to U+1CE8.
- if (sequence >= 0xe1b3a200 && sequence <= 0xe1b3a800) {
+ // Tirhuta: U+114C3.
+ if (sequence == 0xf0919383) {
return F_true;
}
- // Vedic Extensions: U+1CED, U+1CF4, U+1CF8, U+1CF9.
- if (sequence == 0xe1b3ad00 || sequence == 0xe1b3b400 || sequence == 0xe1b3b800 || sequence == 0xe1b3b900) {
+ // Siddham: U+115B2 to U+115B5.
+ if (sequence >= 0xf09196b2 && sequence <= 0xf09196b5) {
return F_true;
}
- // Vedic Extensions: U+1CE8 to U+1DC0.
- if (sequence >= 0xe1b3a800 && sequence <= 0xe1b78000) {
+ // Siddham: U+115BC to U+115BD.
+ if (sequence >= 0xf09196bc && sequence <= 0xf09196bd) {
return F_true;
}
- // Diacritical Marks Supplement: U+1DC0 to U+1DFF.
- if (sequence >= 0xe1b78000 && sequence <= 0xe1b7bf00) {
+ // Siddham: U+115BF, U+115C0, U+115DC, U+115DD.
+ if (sequence == 0xf09196bf || sequence == 0xf0919780 || sequence == 0xf091979c || sequence == 0xf091979d) {
return F_true;
}
- // Diacritical Marks Supplement: U+1DFB to U+1DFF.
- if (sequence >= 0xe1b7bb00 && sequence <= 0xe1b7bf00) {
+ // Tulu-Tigalari: U+113B8 to U+113C0.
+ if (sequence >= 0xf0918eb8 && sequence <= 0xf0918f80) {
return F_true;
}
- }
- else if (macro_f_utf_char_t_to_char_1(sequence) == 0xe2) {
- // Diacritical Marks For Symbols: U+20D0 to U+20F0.
- if (sequence >= 0xe2839000 && sequence <= 0xe283b000) {
+ // Tulu-Tigalari: U+113C2, U+113C5.
+ if (sequence == 0xf0918f82 || sequence == 0xf0918f85) {
return F_true;
}
- }
- else if (macro_f_utf_char_t_to_char_1(sequence) == 0xe3) {
- // CJK Symbols and Punctuation: U+302A to U+302D.
- if (sequence >= 0xe380aa00 && sequence <= 0xe380ad00) {
+ // Tulu-Tigalari: U+113C7 to U+113CA.
+ if (sequence >= 0xf0918f87 && sequence <= 0xf0918f8a) {
return F_true;
}
- // Hiragana: U+3099, U+309A.
- if (sequence == 0xe3829900 || sequence == 0xe3829a00) {
+ // Tulu-Tigalari: U+113CC to U+113D2.
+ if (sequence >= 0xf0918f8C && sequence <= 0xf0918f92) {
return F_true;
}
- }
- else if (macro_f_utf_char_t_to_char_1(sequence) == 0xea) {
- // Cyrillic Extended-B: U+3099.
- if (sequence == 0xea99af00) {
+ // Tulu-Tigalari: U+113E1 to U+113E2.
+ if (sequence >= 0xf0918fa1 && sequence <= 0xf0918fa2) {
return F_true;
}
- // Cyrillic Extended-B: U+A66F to U+A672.
- if (sequence >= 0xea99af00 && sequence <= 0xea99b200) {
+ // Modi: U+11633 to U+1163A.
+ if (sequence >= 0xf09198b3 && sequence <= 0xf09198ba) {
return F_true;
}
- // Cyrillic Extended-B: U+A674 to U+A69F.
- if (sequence >= 0xea99b400 && sequence <= 0xea9a9f00) {
+ // Modi: U+1163D to U+11640.
+ if (sequence >= 0xf09198bd && sequence <= 0xf0919980) {
return F_true;
}
- // Bamum: U+A6F0 to U+A6F1.
- if (sequence >= 0xea9bb000 && sequence <= 0xea9bb100) {
+ // Takri: U+116AB, U+116AD.
+ if (sequence == 0xf0919aab || sequence == 0xf0919aad) {
return F_true;
}
- // Syloti Nagri: U+A802, U+A806, U+A80B, U+A825.
- if (sequence == 0xeaa08200 || sequence == 0xeaa08600 || sequence == 0xeaa08b00 || sequence == 0xeaa0a500) {
+ // Takri: U+116B0 to U+116B5.
+ if (sequence >= 0xf0919ab0 && sequence <= 0xf0919ab5) {
return F_true;
}
- // Syloti Nagri: U+A826.
- if (sequence == 0xeaa0a600) {
+ // Takri: U+116B7.
+ if (sequence == 0xf0919ab7) {
return F_true;
}
- // Saurashtra: U+A8C4, U+A8C5.
- if (sequence == 0xeaa38400 || sequence == 0xeaa38500) {
+ // Ahom: U+1171D to U+1171F.
+ if (sequence >= 0xf0919c9d && sequence <= 0xf0919c9f) {
return F_true;
}
- // Devanagari Extended: U+A8E0 to U+A8F1.
- if (sequence >= 0xeaa3a000 && sequence <= 0xeaa3b100) {
+ // Ahom: U+11722 to U+11725.
+ if (sequence >= 0xf0919ca2 && sequence <= 0xf0919ca5) {
return F_true;
}
- // Kayah Li: U+A926 to U+A92D.
- if (sequence >= 0xeaa4a600 && sequence <= 0xeaa4ad00) {
+ // Ahom: U+11727 to U+1172B.
+ if (sequence >= 0xf0919ca7 && sequence <= 0xf0919cab) {
return F_true;
}
- // Rejang: U+A947 to U+A951.
- if (sequence >= 0xeaa58700 && sequence <= 0xeaa59100) {
+ // Kawi: U+11F00 to U+11F03.
+ if (sequence >= 0xf091bc80 && sequence <= 0xf091bc83) {
return F_true;
}
- // Javanese: U+A980 to U+A982.
- if (sequence >= 0xeaa68000 && sequence <= 0xeaa68200) {
+ // Kawi: U+11F34 to U+11F3A.
+ if (sequence >= 0xf091bcb4 && sequence <= 0xf091bcba) {
return F_true;
}
- // Javanese: U+A9B3.
- if (sequence == 0xeaa6b300) {
+ // Kawi: U+11F3E to U+11F42.
+ if (sequence >= 0xf091bcbe && sequence <= 0xf091bd82) {
return F_true;
}
- // Javanese: U+A9B6 to U+A9B9.
- if (sequence >= 0xeaa6b600 && sequence <= 0xeaa6b900) {
+ // Kawi: U+11F5A.
+ if (sequence == 0xf091bd9a) {
return F_true;
}
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0x96) {
- // Javanese: U+A9BC.
- if (sequence == 0xeaa6bc00) {
+ // Gurung Khema: U+1611E to U+1612F.
+ if (sequence >= 0xf096849e && sequence <= 0xf09684af) {
return F_true;
}
- // Myanmar Extended-B: U+A9E5.
- if (sequence == 0xeaa7a500) {
+ // Bassa Vah: U+16AF0 to U+16AF4.
+ if (sequence >= 0xf096abb0 && sequence <= 0xf096abb4) {
return F_true;
}
- // Cham: U+AA29 to U+AA2E.
- if (sequence >= 0xeaa8a900 && sequence <= 0xeaa8ae00) {
+ // Pahawh Hmong: U+16B30 to U+16B36.
+ if (sequence >= 0xf096acb0 && sequence <= 0xf096acb6) {
return F_true;
}
- // Cham: U+AA31 to U+AA32.
- if (sequence >= 0xeaa8b100 && sequence <= 0xeaa8b200) {
+ // Miao: U+16F8F to U+16F92.
+ if (sequence >= 0xf096be8f && sequence <= 0xf096be92) {
return F_true;
}
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0x9b) {
- // Cham: U+AA35 to U+AA36.
- if (sequence >= 0xeaa8b500 && sequence <= 0xeaa8b600) {
+ // Duployan: U+1BC9D to U+1BC9E.
+ if (sequence >= 0xf09bb29d && sequence <= 0xf09bb29e) {
return F_true;
}
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0x9d) {
- // Cham: U+AA43, U+AA4C.
- if (sequence == 0xeaa98300 || sequence == 0xeaa98c00) {
+ // Musical Symbols: U+1D167 to U+1D169.
+ if (sequence >= 0xf09d85a7 && sequence <= 0xf09d85a9) {
return F_true;
}
- // Tai Viet: U+AA7C.
- if (sequence == 0xeaa9bc00) {
+ // Musical Symbols: U+1D17B to U+1D182.
+ if (sequence >= 0xf09d85bb && sequence <= 0xf09d8682) {
return F_true;
}
- // Tai Viet: U+AAB0.
- if (sequence == 0xeaaab000) {
+ // Musical Symbols: U+1D185 to U+1D18B.
+ if (sequence >= 0xf09d8685 && sequence <= 0xf09d868b) {
return F_true;
}
- // Tai Viet: U+AAB2 to U+AAB4.
- if (sequence >= 0xeaaab200 && sequence <= 0xeaaab400) {
+ // Musical Symbols: U+1D1AA to U+1D1AD.
+ if (sequence >= 0xf09d86aa && sequence <= 0xf09d86ad) {
return F_true;
}
- // Tai Viet: U+AAB7 to U+AAB8.
- if (sequence >= 0xeaaab700 && sequence <= 0xeaaab800) {
+ // Ancient Greek Musical Notation: U+1D242 to U+1D244.
+ if (sequence >= 0xf09d8982 && sequence <= 0xf09d8984) {
return F_true;
}
- // Tai Viet: U+AABE to U+AABF.
- if (sequence >= 0xeaaabe00 && sequence <= 0xeaaabf00) {
+ // Sutton SignWriting: U+1DA00 to U+1DA36.
+ if (sequence >= 0xf09da880 && sequence <= 0xf09da8b6) {
return F_true;
}
- // Tai Viet: U+AAC1.
- if (sequence == 0xeaab8100) {
+ // Sutton SignWriting: U+1DA3B to U+1DA6C.
+ if (sequence >= 0xf09da8bb && sequence <= 0xf09da9ac) {
return F_true;
}
- // Meetei Mayek Extensions: U+AAEC, U+AAED, U+AAF6.
- if (sequence == 0xeaabac00 || sequence == 0xeaabad00 || sequence == 0xeaabb600) {
+ // Sutton SignWriting: U+1DA75, U+1DA84.
+ if (sequence == 0xf09da9b5 || sequence == 0xf09daa84) {
return F_true;
}
- // Meetei Mayek: U+ABE5, U+ABE8, U+ABED.
- if (sequence == 0xeaafa500 || sequence == 0xeaafa800 || sequence == 0xeaafad00) {
+ // Sutton SignWriting: U+1DA9B to U+1DA9F.
+ if (sequence >= 0xf09daa9b && sequence <= 0xf09daa9f) {
return F_true;
}
- }
- else if (macro_f_utf_char_t_to_char_1(sequence) == 0xef) {
- // Alphabetic Presentation Forms: U+FB1E.
- if (sequence == 0xefac9e00) {
+ // Sutton SignWriting: U+1DAA1 to U+1DAAF.
+ if (sequence >= 0xf09daaa1 && sequence <= 0xf09daaaf) {
return F_true;
}
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0x9e) {
- // Variation Selectors: U+FE00 to U+FE0F.
- if (sequence >= 0xefb88000 && sequence <= 0xefb88f00) {
+ // Cyrillic Extended-D: U+1E08F.
+ if (sequence == 0xf09e828f) {
return F_true;
}
- // Variation Selectors: U+FE20 to U+FE0F.
- if (sequence >= 0xefb88000 && sequence <= 0xefb88f00) {
+ // Nag Mundari: U+1E4EC to U+1E4EF.
+ if (sequence >= 0xf09e93ac && sequence <= 0xf09e93af) {
return F_true;
}
- // Combining Half Marks: U+FE20 to U+FE2F.
- if (sequence >= 0xefb8a000 && sequence <= 0xefb8af00) {
+ // Mende Kikakui: U+1E8D0 to U+1E8D6.
+ if (sequence >= 0xf09ea390 && sequence <= 0xf09ea396) {
return F_true;
}
}
- return F_false;
+ return false;
}
- // Phaistos Disc: U+101FD.
- if (sequence == 0xf09087bd) {
- return F_true;
- }
-
- // Coptic Epact Numbers: U+102E0.
- if (sequence == 0xf0908ba0) {
- return F_true;
- }
+ if (macro_f_utf_char_t_to_char_1(sequence) == 0xf3) {
- // Old Permic: U+10376 to U+1037A.
- if (sequence >= 0xf0908db6 && sequence <= 0xf0908dba) {
- return F_true;
- }
-
- // Kharoshthi: U+10A01 to U+10A03.
- if (sequence >= 0xf090a881 && sequence <= 0xf090a883) {
- return F_true;
- }
-
- // Kharoshthi: U+10A01, U+10A03, U+10A05, U+10A06.
- if (sequence == 0xf090a881 || sequence == 0xf090a883 || sequence == 0xf090a885 || sequence == 0xf090a886) {
- return F_true;
- }
-
- // Kharoshthi: U+10A0C to U+10A0F.
- if (sequence >= 0xf090a88c && sequence <= 0xf090a88f) {
- return F_true;
- }
-
- // Kharoshthi: U+10A38 to U+10A3A.
- if (sequence >= 0xf090a8b8 && sequence <= 0xf090a8ba) {
- return F_true;
- }
-
- // Kharoshthi: U+10A3F.
- if (sequence == 0xf090a8bf) {
- return F_true;
- }
-
- // Manichaean: U+10AE5, U+10AE6.
- if (sequence == 0xf090aba5 || sequence == 0xf090aba6) {
- return F_true;
- }
-
- // Hanifi Rohingya: U+10D24 to U+10D27.
- if (sequence >= 0xf090b4a3 && sequence <= 0xf090b4a7) {
- return F_true;
- }
-
- // Yezidi: U+10EAB to U+10EAD.
- if (sequence >= 0xf090baab && sequence <= 0xf090baad) {
- return F_true;
- }
-
- // Arabic Extended-C: U+10EFD to U+10EFF.
- if (sequence >= 0xf090bbbd && sequence <= 0xf090bbbf) {
- return F_true;
- }
-
- // Brahmi: U+11001.
- if (sequence == 0xf0918081) {
- return F_true;
- }
-
- // Brahmi: U+11038 to U+11046.
- if (sequence >= 0xf09180b8 && sequence <= 0xf0918186) {
- return F_true;
- }
-
- // Brahmi .. Kaithi: U+1107F to U+11081.
- if (sequence >= 0xf09181bf && sequence <= 0xf0918281) {
- return F_true;
- }
-
- // Kaithi: U+110B3 to U+110B6.
- if (sequence >= 0xf09182b3 && sequence <= 0xf09182b6) {
- return F_true;
- }
-
- // Kaithi: U+110B9, U+110BA.
- if (sequence == 0xf09182b9 || sequence == 0xf09182ba) {
- return F_true;
- }
-
- // Chakma: U+11100 to U+11102.
- if (sequence >= 0xf0918480 && sequence <= 0xf0918482) {
- return F_true;
- }
-
- // Chakma: U+11127 to U+1112B.
- if (sequence >= 0xf09184a7 && sequence <= 0xf09184ab) {
- return F_true;
- }
-
- // Chakma: U+1112D to U+11134.
- if (sequence >= 0xf09184ad && sequence <= 0xf09184b4) {
- return F_true;
- }
-
- // Mahajani: U+11173.
- if (sequence == 0xf09185b3) {
- return F_true;
- }
-
- // Sharada: U+11180 to U+11181.
- if (sequence >= 0xf0918680 && sequence <= 0xf0918681) {
- return F_true;
- }
-
- // Sharada: U+111B6 to U+111BE.
- if (sequence >= 0xf09186b6 && sequence <= 0xf09186be) {
- return F_true;
- }
-
- // Sharada: U+111CA to U+111CC.
- if (sequence >= 0xf091878a && sequence <= 0xf091878c) {
- return F_true;
- }
-
- // Sharada: U+111CA to U+111CC.
- if (sequence >= 0xf091878a && sequence <= 0xf091878c) {
- return F_true;
- }
-
- // Kawi: U+11F00 to U+11F03.
- if (sequence >= 0xf091bc80 && sequence <= 0xf091bc83) {
- return F_true;
- }
-
- // Kawi: U+11F34 to U+11F3A.
- if (sequence >= 0xf091bcb4 && sequence <= 0xf091bcba) {
- return F_true;
- }
-
- // Kawi: U+11F3E to U+11F42.
- if (sequence >= 0xf091bcbe && sequence <= 0xf091bd82) {
- return F_true;
- }
-
- // Khojki: U+1122F to U+11231.
- if (sequence >= 0xf09188af && sequence <= 0xf09188b1) {
- return F_true;
- }
-
- // Khojki: U+11234, U+11236, U+11237.
- if (sequence == 0xf09188b4 || sequence == 0xf09188b6 || sequence == 0xf09188b7) {
- return F_true;
- }
-
- // Khudawadi: U+112DF, U+112DF.
- if (sequence == 0xf0918b9f || sequence == 0xf0918b9f) {
- return F_true;
- }
-
- // Khojki: U+112E3 to U+112EA.
- if (sequence >= 0xf0918ba3 && sequence <= 0xf0918baa) {
- return F_true;
- }
-
- // Grantha: U+11300, U+11301, U+1133C, U+11340.
- if (sequence == 0xf0918c80 || sequence == 0xf0918c81 || sequence == 0xf0918cbc || sequence == 0xf0918d80) {
- return F_true;
- }
-
- // Grantha: U+11366 to U+1136C.
- if (sequence >= 0xf0918da6 && sequence <= 0xf0918dac) {
- return F_true;
- }
-
- // Grantha: U+11370 to U+11374.
- if (sequence >= 0xf0918db0 && sequence <= 0xf0918db4) {
- return F_true;
- }
-
- // Tirhuta: U+114B3 to U+114B8.
- if (sequence >= 0xf09192b3 && sequence <= 0xf09192b8) {
- return F_true;
- }
-
- // Tirhuta: U+114BA, U+114BF, U+114C0, U+114C2.
- if (sequence == 0xf09192ba || sequence == 0xf09192bf || sequence == 0xf0919380 || sequence == 0xf0919382) {
- return F_true;
- }
-
- // Tirhuta: U+114C3.
- if (sequence == 0xf0919383) {
- return F_true;
- }
-
- // Siddham: U+115B2 to U+115B5.
- if (sequence >= 0xf09196b2 && sequence <= 0xf09196b5) {
- return F_true;
- }
-
- // Siddham: U+115BC to U+115BD.
- if (sequence >= 0xf09196bc && sequence <= 0xf09196bd) {
- return F_true;
- }
-
- // Siddham: U+115BF, U+115C0, U+115DC, U+115DD.
- if (sequence == 0xf09196bf || sequence == 0xf0919780 || sequence == 0xf091979c || sequence == 0xf091979d) {
- return F_true;
- }
-
- // Modi: U+11633 to U+1163A.
- if (sequence >= 0xf09198b3 && sequence <= 0xf09198ba) {
- return F_true;
- }
-
- // Modi: U+1163D to U+11640.
- if (sequence >= 0xf09198bd && sequence <= 0xf0919980) {
- return F_true;
- }
-
- // Takri: U+116AB, U+116AD.
- if (sequence == 0xf0919aab || sequence == 0xf0919aad) {
- return F_true;
- }
-
- // Takri: U+116B0 to U+116B5.
- if (sequence >= 0xf0919ab0 && sequence <= 0xf0919ab5) {
- return F_true;
- }
-
- // Takri: U+116B7.
- if (sequence == 0xf0919ab7) {
- return F_true;
- }
-
- // Ahom: U+1171D to U+1171F.
- if (sequence >= 0xf0919c9d && sequence <= 0xf0919c9f) {
- return F_true;
- }
-
- // Ahom: U+11722 to U+11725.
- if (sequence >= 0xf0919ca2 && sequence <= 0xf0919ca5) {
- return F_true;
- }
-
- // Ahom: U+11727 to U+1172B.
- if (sequence >= 0xf0919ca7 && sequence <= 0xf0919cab) {
- return F_true;
- }
-
- // Bassa Vah: U+16AF0 to U+16AF4.
- if (sequence >= 0xf096abb0 && sequence <= 0xf096abb4) {
- return F_true;
- }
-
- // Pahawh Hmong: U+16B30 to U+16B36.
- if (sequence >= 0xf096acb0 && sequence <= 0xf096acb6) {
- return F_true;
- }
-
- // Miao: U+16F8F to U+16F92.
- if (sequence >= 0xf096be8f && sequence <= 0xf096be92) {
- return F_true;
- }
-
- // Duployan: U+1BC9D to U+1BC9E.
- if (sequence >= 0xf09bb29d && sequence <= 0xf09bb29e) {
- return F_true;
- }
-
- // Musical Symbols: U+1D167 to U+1D169.
- if (sequence >= 0xf09d85a7 && sequence <= 0xf09d85a9) {
- return F_true;
- }
-
- // Musical Symbols: U+1D17B to U+1D182.
- if (sequence >= 0xf09d85bb && sequence <= 0xf09d8682) {
- return F_true;
- }
-
- // Musical Symbols: U+1D185 to U+1D18B.
- if (sequence >= 0xf09d8685 && sequence <= 0xf09d868b) {
- return F_true;
- }
-
- // Musical Symbols: U+1D1AA to U+1D1AD.
- if (sequence >= 0xf09d86aa && sequence <= 0xf09d86ad) {
- return F_true;
- }
-
- // Ancient Greek Musical Notation: U+1D242 to U+1D244.
- if (sequence >= 0xf09d8982 && sequence <= 0xf09d8984) {
- return F_true;
- }
-
- // Sutton SignWriting: U+1DA00 to U+1DA36.
- if (sequence >= 0xf09da880 && sequence <= 0xf09da8b6) {
- return F_true;
- }
-
- // Sutton SignWriting: U+1DA3B to U+1DA6C.
- if (sequence >= 0xf09da8bb && sequence <= 0xf09da9ac) {
- return F_true;
- }
-
- // Sutton SignWriting: U+1DA75, U+1DA84.
- if (sequence == 0xf09da9b5 || sequence == 0xf09daa84) {
- return F_true;
- }
-
- // Sutton SignWriting: U+1DA9B to U+1DA9F.
- if (sequence >= 0xf09daa9b && sequence <= 0xf09daa9f) {
- return F_true;
- }
-
- // Sutton SignWriting: U+1DAA1 to U+1DAAF.
- if (sequence >= 0xf09daaa1 && sequence <= 0xf09daaaf) {
- return F_true;
- }
-
- // Cyrillic Extended-D: U+1E08F.
- if (sequence == 0xf09e828f) {
- return F_true;
- }
-
- // Nag Mundari: U+1E4EC to U+1E4EF.
- if (sequence >= 0xf09e93ac && sequence <= 0xf09e93af) {
- return F_true;
- }
-
- // Mende Kikakui: U+1E8D0 to U+1E8D6.
- if (sequence >= 0xf09ea390 && sequence <= 0xf09ea396) {
- return F_true;
- }
+ // Variation Selectors Supplement: U+E0100 to U+E01EF.
+ if (sequence >= 0xf3a08480 && sequence <= 0xf3a087af) {
+ return F_true;
+ }
- // Variation Selectors Supplement: U+E0100 to U+E01EF.
- if (sequence >= 0xf3a08480 && sequence <= 0xf3a087af) {
- return F_true;
+ return false;
}
return F_false;
}
#endif // !defined(_di_f_utf_character_is_control_format_) || !defined(_di_f_utf_is_control_format_)
-#if !defined(_di_f_utf_character_is_alphabetic_digit_) || !defined(_di_f_utf_character_is_alphabetic_numeric_) || !defined(_di_f_utf_character_is_control_picture_) || !defined(_di_f_utf_character_is_word_) || !defined(_di_f_utf_character_is_word_dash_) || !defined(_di_f_utf_character_is_word_dash_plus_) || !defined(_di_f_utf_is_alphabetic_digit_) || !defined(_di_f_utf_is_alphabetic_numeric_) || !defined(_di_f_utf_is_control_picture_) || !defined(_di_f_utf_is_word_) || !defined(_di_f_utf_is_word_dash_) || !defined(_di_f_utf_is_word_dash_plus_)
+#if !defined(_di_f_utf_character_is_control_picture_) || !defined(_di_f_utf_is_control_picture_)
f_status_t private_f_utf_character_is_control_picture(const f_utf_char_t sequence) {
if (macro_f_utf_char_t_width_is(sequence) == 3) {
- // Control Pictures: U+2400 to U+2426.
- if (sequence >= 0xe2908000 && sequence <= 0xe290a600) {
+ // Control Pictures: U+2400 to U+2429.
+ if (sequence >= 0xe2908000 && sequence <= 0xe290a900) {
return F_true;
}
return F_false;
}
-#endif // !defined(_di_f_utf_character_is_alphabetic_digit_) || !defined(_di_f_utf_character_is_alphabetic_numeric_) || !defined(_di_f_utf_character_is_control_picture_) || !defined(_di_f_utf_character_is_word_) || !defined(_di_f_utf_character_is_word_dash_) || !defined(_di_f_utf_character_is_word_dash_plus_) || !defined(_di_f_utf_is_alphabetic_digit_) || !defined(_di_f_utf_is_alphabetic_numeric_) || !defined(_di_f_utf_is_control_picture_) || !defined(_di_f_utf_is_word_) || !defined(_di_f_utf_is_word_dash_) || !defined(_di_f_utf_is_word_dash_plus_)
+#endif // !defined(_di_f_utf_character_is_control_picture_) || !defined(_di_f_utf_is_control_picture_)
#ifdef __cplusplus
} // extern "C"
* F_utf_fragment (with error bit) if character is a UTF-8 fragment.
* F_utf_not (with error bit) if unicode is an invalid Unicode character.
*
- * @see f_utf_character_is_alphabetic_digit()
- * @see f_utf_character_is_alphabetic_numeric()
* @see f_utf_character_is_control_picture()
- * @see f_utf_character_is_word()
- * @see f_utf_character_is_word_dash()
- * @see f_utf_character_is_word_dash_plus()
- * @see f_utf_is_alphabetic_digit()
- * @see f_utf_is_alphabetic_numeric()
* @see f_utf_is_control_picture()
- * @see f_utf_is_word()
- * @see f_utf_is_word_dash()
- * @see f_utf_is_word_dash_plus)
*/
-#if !defined(_di_f_utf_character_is_alphabetic_digit_) || !defined(_di_f_utf_character_is_alphabetic_numeric_) || !defined(_di_f_utf_character_is_control_picture_) || !defined(_di_f_utf_character_is_word_) || !defined(_di_f_utf_character_is_word_dash_) || !defined(_di_f_utf_character_is_word_dash_plus_) || !defined(_di_f_utf_is_alphabetic_digit_) || !defined(_di_f_utf_is_alphabetic_numeric_) || !defined(_di_f_utf_is_control_picture_) || !defined(_di_f_utf_is_word_) || !defined(_di_f_utf_is_word_dash_) || !defined(_di_f_utf_is_word_dash_plus_)
+#if !defined(_di_f_utf_character_is_control_picture_) || !defined(_di_f_utf_is_control_picture_)
extern f_status_t private_f_utf_character_is_control_picture(const f_utf_char_t sequence) F_attribute_visibility_internal_d;
-#endif // !defined(_di_f_utf_character_is_alphabetic_digit_) || !defined(_di_f_utf_character_is_alphabetic_numeric_) || !defined(_di_f_utf_character_is_control_picture_) || !defined(_di_f_utf_character_is_word_) || !defined(_di_f_utf_character_is_word_dash_) || !defined(_di_f_utf_character_is_word_dash_plus_) || !defined(_di_f_utf_is_alphabetic_digit_) || !defined(_di_f_utf_is_alphabetic_numeric_) || !defined(_di_f_utf_is_control_picture_) || !defined(_di_f_utf_is_word_) || !defined(_di_f_utf_is_word_dash_) || !defined(_di_f_utf_is_word_dash_plus_)
+#endif // !defined(_di_f_utf_character_is_control_picture_) || !defined(_di_f_utf_is_control_picture_)
#ifdef __cplusplus
} // extern "C"
return F_true;
}
+ // Garay: U+10D40 to U+10D49.
+ if (sequence >= 0xf090b5a9 && sequence <= 0xf090b5aa) {
+ return private_inline_f_utf_character_handle_digit(sequence, 0xf090b5a9, value);
+ }
+
// Rumi Numeral Symbols: U+10E60 to U+10E7A.
if (sequence >= 0xf090b9a0 && sequence <= 0xf090b9ba) {
return private_inline_f_utf_character_handle_digit(sequence, 0xf0919b80, value);
}
+ // Myanmar Extended-C: U+116D0 to U+116E3.
+ if (sequence >= 0xf0919b90 && sequence <= 0xf0919ba3) {
+
+ // Myanmar Extended-C: U+116D0 to U+116D9.
+ if (sequence >= 0xf0919b90 && sequence <= 0xf0919b99) {
+ return private_inline_f_utf_character_handle_digit(sequence, 0xf0919b90, value);
+ }
+
+ // Myanmar Extended-C: U+116DA to U+116E3.
+ if (sequence >= 0xf0919b9a && sequence <= 0xf0919ba3) {
+ return private_inline_f_utf_character_handle_digit(sequence, 0xf0919b9a, value);
+ }
+ }
+
// Ahom: U+11730 to U+11739.
if (sequence >= 0xf0919cb0 && sequence <= 0xf0919cb9) {
return private_inline_f_utf_character_handle_digit(sequence, 0xf0919cb0, value);
return private_inline_f_utf_character_handle_digit(sequence, 0xf091a590, value);
}
+ // Sunuwar: U+11BF0 to U+11BF9.
+ if (sequence >= 0xf091afb0 && sequence <= 0xf091afb9) {
+ return private_inline_f_utf_character_handle_digit(sequence, 0xf091afb0, value);
+ }
+
// Bhaiksuki: U+11C50 to U+11C59.
if (sequence >= 0xf091b190 && sequence <= 0xf091b199) {
return private_inline_f_utf_character_handle_digit(sequence, 0xf091b190, value);
}
}
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) < 0x96) {
+ // There are none here.
+ }
else if (macro_f_utf_char_t_to_char_2(sequence) == 0x96) {
+ // Gurung Khema: U+16130 to U+16139.
+ if (sequence >= 0xf09684b0 && sequence <= 0xf09684b9) {
+ return private_inline_f_utf_character_handle_digit(sequence, 0xf09684b0, value);
+ }
+
// Mro: U+16A60 to U+16A69.
if (sequence >= 0xf096a9a0 && sequence <= 0xf096a9a9) {
return private_inline_f_utf_character_handle_digit(sequence, 0xf096a9a0, value);
return F_true;
}
+ // Kirat Rai: U+16D70 to U+16D79.
+ if (sequence >= 0xf096b5b0 && sequence <= 0xf096b5b9) {
+ return private_inline_f_utf_character_handle_digit(sequence, 0xf096b5b0, value);
+ }
+
// Medefaidrin: U+16E80 to U+16E96.
if (sequence >= 0xf096ba80 && sequence <= 0xf096ba96) {
return private_inline_f_utf_character_handle_digit_from_one(sequence, 0xf096ba94, value);
}
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0x9c) {
+
+ // Symbols for Legacy Computing Supplement: U+1CCF0 to U+1CCF9.
+ if (sequence >= 0xf09cb3b0 && sequence <= 0xf09cb3b9) {
+ return private_inline_f_utf_character_handle_digit(sequence, 0xf09cb3b0, value);
+ }
+ }
else if (macro_f_utf_char_t_to_char_2(sequence) == 0x9d) {
// Kaktovik Numerals: U+1D2C0 to U+1D2D3.
return private_inline_f_utf_character_handle_digit(sequence, 0xf09e93b0, value);
}
+ // Ol Onal: U+1E5F1 to U+1E5FA.
+ if (sequence >= 0xf09e97b1 && sequence <= 0xf09e97ba) {
+ return private_inline_f_utf_character_handle_digit(sequence, 0xf09e97b1, value);
+ }
+
// Mende Kikakui: U+1E8C7 to U+1E8CF.
if (sequence >= 0xf09ea387 && sequence <= 0xf09ea38f) {
return private_inline_f_utf_character_handle_digit_from_one(sequence, 0xf09ea387, value);
return F_true;
}
- // Symbols for Legacy Computing (Segmented): U+1FBF0 to U+1FBF9.
+ // Symbols for Legacy Computing: U+1FBF0 to U+1FBF9.
if (sequence >= 0xf09fafb0 && sequence <= 0xf09fafb9) {
return private_inline_f_utf_character_handle_digit(sequence, 0xf09fafb0, value);
}
if (macro_f_utf_char_t_to_char_2(sequence) == 0x9f) {
- // Mahjong Tiles: U+1F004.
- if (sequence == 0xf09f8084) {
- return F_true;
- }
-
- // Playing Cards: U+1F0CF to U+1F171.
- if (sequence >= 0xf09f8084 && sequence <= 0xf09f85b1) {
- return F_true;
- }
-
- // Enclosed Alphanumeric Supplement: U+1F17E, U+1F17F, U+1F18E.
- if (sequence == 0xf09f85be || sequence == 0xf09f85bf || sequence == 0xf09f868e) {
- return F_true;
- }
-
- // Enclosed Alphanumeric Supplement: U+1F191 to U+1F19A.
- if (sequence >= 0xf09f8691 && sequence <= 0xf09f869a) {
- return F_true;
- }
-
- // Enclosed Alphanumeric Supplement: U+1F1E6.
- if (sequence == 0xf09f87a6) {
- return F_true;
- }
-
- // Enclosed Ideographic Supplement: U+1F201, U+1F202, U+1F21A, U+1F22F.
- if (sequence == 0xf09f8881 || sequence == 0xf09f8882 || sequence == 0xf09f889a || sequence == 0xf09f88af) {
- return F_true;
- }
-
- // Enclosed Ideographic Supplement: U+1F232 to U+1F23A.
- if (sequence >= 0xf09f88b2 && sequence <= 0xf09f88ba) {
- return F_true;
- }
-
- // Enclosed Ideographic Supplement: U+1F250, U+1F251.
- if (sequence == 0xf09f8990 || sequence == 0xf09f8991) {
- return F_true;
- }
-
- // Miscellaneous Symbols and Pictographs: U+1F300 to U+1F321.
- if (sequence >= 0xf09f8c80 && sequence <= 0xf09f8ca1) {
- return F_true;
- }
-
- // Miscellaneous Symbols and Pictographs: U+1F324 to U+1F393.
- if (sequence >= 0xf09f8ca4 && sequence <= 0xf09f8e93) {
- return F_true;
- }
-
- // Miscellaneous Symbols and Pictographs: U+1F396, U+1F397.
- if (sequence == 0xf09f8e96 || sequence == 0xf09f8e97) {
- return F_true;
- }
-
- // Miscellaneous Symbols and Pictographs: U+1F399 to U+1F39B.
- if (sequence >= 0xf09f8e99 && sequence <= 0xf09f8e9b) {
- return F_true;
- }
-
- // Miscellaneous Symbols and Pictographs: U+1F39E to U+1F3F0.
- if (sequence >= 0xf09f8e9e && sequence <= 0xf09f8fb0) {
- return F_true;
- }
-
- // Miscellaneous Symbols and Pictographs: U+1F3F3 to U+1F3F5.
- if (sequence >= 0xf09f8fb3 && sequence <= 0xf09f8fb5) {
- return F_true;
- }
-
- // Miscellaneous Symbols and Pictographs: U+1F3F7 to U+1F4FD.
- if (sequence >= 0xf09f8fb7 && sequence <= 0xf09f93bd) {
- return F_true;
- }
-
- // Miscellaneous Symbols and Pictographs: U+1F4FF to U+1F53D.
- if (sequence >= 0xf09f93bf && sequence <= 0xf09f94bd) {
- return F_true;
- }
-
- // Miscellaneous Symbols and Pictographs: U+1F549 to U+1F54E.
- if (sequence >= 0xf09f9589 && sequence <= 0xf09f958e) {
- return F_true;
- }
-
- // Miscellaneous Symbols and Pictographs: U+1F550 to U+1F567.
- if (sequence >= 0xf09f9590 && sequence <= 0xf09f95a7) {
- return F_true;
- }
-
- // Miscellaneous Symbols and Pictographs: U+1F56F, U+1F570.
- if (sequence == 0xf09f95af || sequence == 0xf09f95b0) {
- return F_true;
- }
-
- // Miscellaneous Symbols and Pictographs: U+1F573 to U+1F57A.
- if (sequence >= 0xf09f95b3 && sequence <= 0xf09f95ba) {
- return F_true;
- }
-
- // Miscellaneous Symbols and Pictographs: U+1F587.
- if (sequence == 0xf09f9687) {
- return F_true;
- }
-
- // Miscellaneous Symbols and Pictographs: U+1F58A to U+1F58D.
- if (sequence >= 0xf09f968a && sequence <= 0xf09f968d) {
- return F_true;
- }
-
- // Miscellaneous Symbols and Pictographs: U+1F590, U+1F595, U+1F596, U+1F5A4.
- if (sequence == 0xf09f9690 || sequence == 0xf09f9695 || sequence == 0xf09f9696 || sequence == 0xf09f96a4) {
- return F_true;
- }
-
- // Miscellaneous Symbols and Pictographs: U+1F5A5, U+1F5A8, U+1F5B1, U+1F5B2.
- if (sequence == 0xf09f96a5 || sequence == 0xf09f96a8 || sequence == 0xf09f96b1 || sequence == 0xf09f96b2) {
- return F_true;
- }
-
- // Miscellaneous Symbols and Pictographs: U+1F5BC.
- if (sequence == 0xf09f96bc) {
- return F_true;
- }
-
- // Miscellaneous Symbols and Pictographs: U+1F5C2 to U+1F5C4.
- if (sequence >= 0xf09f9782 && sequence <= 0xf09f9784) {
- return F_true;
- }
-
- // Miscellaneous Symbols and Pictographs: U+1F5D1 to U+1F5D3.
- if (sequence >= 0xf09f9791 && sequence <= 0xf09f9793) {
- return F_true;
- }
-
- // Miscellaneous Symbols and Pictographs: U+1F5DC to U+1F5DE.
- if (sequence >= 0xf09f979c && sequence <= 0xf09f979e) {
- return F_true;
- }
-
- // Miscellaneous Symbols and Pictographs: U+1F5E1, U+1F5E3, U+1F5E8, U+1F5EF.
- if (sequence == 0xf09f97a1 || sequence == 0xf09f97a3 || sequence == 0xf09f97a8 || sequence == 0xf09f97af) {
- return F_true;
- }
-
- // Miscellaneous Symbols and Pictographs: U+1F5F3.
- if (sequence == 0xf09f97b3) {
- return F_true;
- }
-
- // Miscellaneous Symbols and Pictographs: U+1F5FA to U+1F6C5.
- if (sequence >= 0xf09f97ba && sequence <= 0xf09f9b85) {
- return F_true;
- }
-
- // Transport and Map Symbols: U+1F6CB to U+1F6D2.
- if (sequence >= 0xf09f9b8b && sequence <= 0xf09f9b92) {
- return F_true;
- }
-
- // Transport and Map Symbols: U+1F6D5 to U+1F6D7.
- if (sequence >= 0xf09f9b95 && sequence <= 0xf09f9b97) {
- return F_true;
- }
-
- // Transport and Map Symbols: U+1F6DC to U+1F6DF.
- if (sequence >= 0xf09f9b9c && sequence <= 0xf09f9b9f) {
- return F_true;
- }
-
- // Transport and Map Symbols: U+1F6E0 to U+1F6E5.
- if (sequence >= 0xf09f9ba0 && sequence <= 0xf09f9ba5) {
- return F_true;
- }
-
- // Transport and Map Symbols: U+1F6E9, U+1F6EB, U+1F6EC, U+1F6F0.
- if (sequence == 0xf09f9ba9 || sequence == 0xf09f9bab || sequence == 0xf09f9bac || sequence == 0xf09f9bb0) {
- return F_true;
- }
-
- // Transport and Map Symbols: U+1F6F3 to U+1F6FC.
- if (sequence >= 0xf09f9bb3 && sequence <= 0xf09f9bbc) {
- return F_true;
- }
-
- // Geometric Shapes Extended: U+1F7E0 to U+1F7EB.
- if (sequence >= 0xf09f9fa0 && sequence <= 0xf09f9fab) {
- return F_true;
- }
-
- // Geometric Shapes Extended: U+1F7F0.
- if (sequence == 0xf09f9fb0) {
- return F_true;
- }
-
- // Supplemental Symbols and Pictographs: U+1F90C to U+1F93A.
- if (sequence >= 0xf09fa48c && sequence <= 0xf09fa4ba) {
- return F_true;
- }
-
- // Supplemental Symbols and Pictographs: U+1F93C to U+1F945.
- if (sequence >= 0xf09fa4bc && sequence <= 0xf09fa585) {
- return F_true;
- }
-
- // Supplemental Symbols and Pictographs to Symbols and Pictographs Extended-A: U+1F947 to U+U+1FA74.
- if (sequence >= 0xf09fa587 && sequence <= 0xf09fa9b4) {
- return F_true;
- }
-
- // Symbols and Pictographs Extended-A: U+1FA70 to U+1FA7C.
- if (sequence >= 0xf09fa9b0 && sequence <= 0xf09fa9bc) {
- return F_true;
- }
-
- // Symbols and Pictographs Extended-A: U+1FA80 to U+1FA88.
- if (sequence >= 0xf09faa80 && sequence <= 0xf09faa88) {
- return F_true;
- }
-
- // Symbols and Pictographs Extended-A: U+1FA90 to U+1FABD.
- if (sequence >= 0xf09faa90 && sequence <= 0xf09faabd) {
- return F_true;
- }
-
- // Symbols and Pictographs Extended-A: U+1FABF to U+1FAC5.
- if (sequence >= 0xf09faabf && sequence <= 0xf09fab85) {
- return F_true;
- }
-
- // Symbols and Pictographs Extended-A: U+1FACE to U+1FADB.
- if (sequence >= 0xf09fab8e && sequence <= 0xf09fab9b) {
- return F_true;
- }
-
- // Symbols and Pictographs Extended-A: U+1FAE0 to U+1FAE8.
- if (sequence >= 0xf09faba0 && sequence <= 0xf09faba8) {
- return F_true;
- }
-
- // Symbols and Pictographs Extended-A: U+1FAF0 to U+1FAF8.
- if (sequence >= 0xf09fabb0 && sequence <= 0xf09fabb8) {
- return F_true;
+ if (macro_f_utf_char_t_to_char_3(sequence) <= 0x8f) {
+
+ // Mahjong Tiles: U+1F004.
+ if (sequence == 0xf09f8084) {
+ return F_true;
+ }
+
+ // Playing Cards: U+1F0CF to U+1F171.
+ if (sequence >= 0xf09f8084 && sequence <= 0xf09f85b1) {
+ return F_true;
+ }
+
+ // Enclosed Alphanumeric Supplement: U+1F17E, U+1F17F, U+1F18E.
+ if (sequence == 0xf09f85be || sequence == 0xf09f85bf || sequence == 0xf09f868e) {
+ return F_true;
+ }
+
+ // Enclosed Alphanumeric Supplement: U+1F191 to U+1F19A.
+ if (sequence >= 0xf09f8691 && sequence <= 0xf09f869a) {
+ return F_true;
+ }
+
+ // Enclosed Alphanumeric Supplement: U+1F1E6.
+ if (sequence == 0xf09f87a6) {
+ return F_true;
+ }
+
+ // Enclosed Ideographic Supplement: U+1F201, U+1F202, U+1F21A, U+1F22F.
+ if (sequence == 0xf09f8881 || sequence == 0xf09f8882 || sequence == 0xf09f889a || sequence == 0xf09f88af) {
+ return F_true;
+ }
+
+ // Enclosed Ideographic Supplement: U+1F232 to U+1F23A.
+ if (sequence >= 0xf09f88b2 && sequence <= 0xf09f88ba) {
+ return F_true;
+ }
+
+ // Enclosed Ideographic Supplement: U+1F250, U+1F251.
+ if (sequence == 0xf09f8990 || sequence == 0xf09f8991) {
+ return F_true;
+ }
+
+ // Miscellaneous Symbols and Pictographs: U+1F300 to U+1F321.
+ if (sequence >= 0xf09f8c80 && sequence <= 0xf09f8ca1) {
+ return F_true;
+ }
+
+ // Miscellaneous Symbols and Pictographs: U+1F324 to U+1F393.
+ if (sequence >= 0xf09f8ca4 && sequence <= 0xf09f8e93) {
+ return F_true;
+ }
+
+ // Miscellaneous Symbols and Pictographs: U+1F396, U+1F397.
+ if (sequence == 0xf09f8e96 || sequence == 0xf09f8e97) {
+ return F_true;
+ }
+
+ // Miscellaneous Symbols and Pictographs: U+1F399 to U+1F39B.
+ if (sequence >= 0xf09f8e99 && sequence <= 0xf09f8e9b) {
+ return F_true;
+ }
+
+ // Miscellaneous Symbols and Pictographs: U+1F39E to U+1F3F0.
+ if (sequence >= 0xf09f8e9e && sequence <= 0xf09f8fb0) {
+ return F_true;
+ }
+
+ // Miscellaneous Symbols and Pictographs: U+1F3F3 to U+1F3F5.
+ if (sequence >= 0xf09f8fb3 && sequence <= 0xf09f8fb5) {
+ return F_true;
+ }
+
+ // Miscellaneous Symbols and Pictographs: U+1F3F7 to U+1F3FF.
+ if (sequence >= 0xf09f8fb7 && sequence <= 0xf09f8fbf) {
+ return F_true;
+ }
+ }
+ else if (macro_f_utf_char_t_to_char_3(sequence) <= 0x9f) {
+
+ // Miscellaneous Symbols and Pictographs: U+1F400 to U+1F4FD.
+ if (sequence >= 0xf09f9080 && sequence <= 0xf09f93bd) {
+ return F_true;
+ }
+
+ // Miscellaneous Symbols and Pictographs: U+1F4FF to U+1F53D.
+ if (sequence >= 0xf09f93bf && sequence <= 0xf09f94bd) {
+ return F_true;
+ }
+
+ // Miscellaneous Symbols and Pictographs: U+1F549 to U+1F54E.
+ if (sequence >= 0xf09f9589 && sequence <= 0xf09f958e) {
+ return F_true;
+ }
+
+ // Miscellaneous Symbols and Pictographs: U+1F550 to U+1F567.
+ if (sequence >= 0xf09f9590 && sequence <= 0xf09f95a7) {
+ return F_true;
+ }
+
+ // Miscellaneous Symbols and Pictographs: U+1F56F, U+1F570.
+ if (sequence == 0xf09f95af || sequence == 0xf09f95b0) {
+ return F_true;
+ }
+
+ // Miscellaneous Symbols and Pictographs: U+1F573 to U+1F57A.
+ if (sequence >= 0xf09f95b3 && sequence <= 0xf09f95ba) {
+ return F_true;
+ }
+
+ // Miscellaneous Symbols and Pictographs: U+1F587.
+ if (sequence == 0xf09f9687) {
+ return F_true;
+ }
+
+ // Miscellaneous Symbols and Pictographs: U+1F58A to U+1F58D.
+ if (sequence >= 0xf09f968a && sequence <= 0xf09f968d) {
+ return F_true;
+ }
+
+ // Miscellaneous Symbols and Pictographs: U+1F590, U+1F595, U+1F596, U+1F5A4.
+ if (sequence == 0xf09f9690 || sequence == 0xf09f9695 || sequence == 0xf09f9696 || sequence == 0xf09f96a4) {
+ return F_true;
+ }
+
+ // Miscellaneous Symbols and Pictographs: U+1F5A5, U+1F5A8, U+1F5B1, U+1F5B2.
+ if (sequence == 0xf09f96a5 || sequence == 0xf09f96a8 || sequence == 0xf09f96b1 || sequence == 0xf09f96b2) {
+ return F_true;
+ }
+
+ // Miscellaneous Symbols and Pictographs: U+1F5BC.
+ if (sequence == 0xf09f96bc) {
+ return F_true;
+ }
+
+ // Miscellaneous Symbols and Pictographs: U+1F5C2 to U+1F5C4.
+ if (sequence >= 0xf09f9782 && sequence <= 0xf09f9784) {
+ return F_true;
+ }
+
+ // Miscellaneous Symbols and Pictographs: U+1F5D1 to U+1F5D3.
+ if (sequence >= 0xf09f9791 && sequence <= 0xf09f9793) {
+ return F_true;
+ }
+
+ // Miscellaneous Symbols and Pictographs: U+1F5DC to U+1F5DE.
+ if (sequence >= 0xf09f979c && sequence <= 0xf09f979e) {
+ return F_true;
+ }
+
+ // Miscellaneous Symbols and Pictographs: U+1F5E1, U+1F5E3, U+1F5E8, U+1F5EF.
+ if (sequence == 0xf09f97a1 || sequence == 0xf09f97a3 || sequence == 0xf09f97a8 || sequence == 0xf09f97af) {
+ return F_true;
+ }
+
+ // Miscellaneous Symbols and Pictographs: U+1F5F3.
+ if (sequence == 0xf09f97b3) {
+ return F_true;
+ }
+
+ // Miscellaneous Symbols and Pictographs: U+1F5FA to U+1F6C5.
+ if (sequence >= 0xf09f97ba && sequence <= 0xf09f9b85) {
+ return F_true;
+ }
+
+ // Transport and Map Symbols: U+1F6CB to U+1F6D2.
+ if (sequence >= 0xf09f9b8b && sequence <= 0xf09f9b92) {
+ return F_true;
+ }
+
+ // Transport and Map Symbols: U+1F6D5 to U+1F6D7.
+ if (sequence >= 0xf09f9b95 && sequence <= 0xf09f9b97) {
+ return F_true;
+ }
+
+ // Transport and Map Symbols: U+1F6DC to U+1F6DF.
+ if (sequence >= 0xf09f9b9c && sequence <= 0xf09f9b9f) {
+ return F_true;
+ }
+
+ // Transport and Map Symbols: U+1F6E0 to U+1F6E5.
+ if (sequence >= 0xf09f9ba0 && sequence <= 0xf09f9ba5) {
+ return F_true;
+ }
+
+ // Transport and Map Symbols: U+1F6E9, U+1F6EB, U+1F6EC, U+1F6F0.
+ if (sequence == 0xf09f9ba9 || sequence == 0xf09f9bab || sequence == 0xf09f9bac || sequence == 0xf09f9bb0) {
+ return F_true;
+ }
+
+ // Transport and Map Symbols: U+1F6F3 to U+1F6FC.
+ if (sequence >= 0xf09f9bb3 && sequence <= 0xf09f9bbc) {
+ return F_true;
+ }
+
+ // Geometric Shapes Extended: U+1F7E0 to U+1F7EB.
+ if (sequence >= 0xf09f9fa0 && sequence <= 0xf09f9fab) {
+ return F_true;
+ }
+
+ // Geometric Shapes Extended: U+1F7F0.
+ if (sequence == 0xf09f9fb0) {
+ return F_true;
+ }
+ }
+ else {
+
+ // Supplemental Symbols and Pictographs: U+1F90C to U+1F9FF.
+ if (sequence >= 0xf09fa48c && sequence <= 0xf09fa7bf) {
+ return F_true;
+ }
+
+ // Symbols and Pictographs Extended-A: U+1FA70 to U+1FA7C.
+ if (sequence >= 0xf09fa9b0 && sequence <= 0xf09fa9bc) {
+ return F_true;
+ }
+
+ // Symbols and Pictographs Extended-A: U+1FA80 to U+1FA89.
+ if (sequence >= 0xf09faa80 && sequence <= 0xf09faa89) {
+ return F_true;
+ }
+
+ // Symbols and Pictographs Extended-A: U+1FA8F to U+1FAC6.
+ if (sequence >= 0xf09faa8f && sequence <= 0xf09fab86) {
+ return F_true;
+ }
+
+ // Symbols and Pictographs Extended-A: U+1FACE to U+1FADC.
+ if (sequence >= 0xf09fab8e && sequence <= 0xf09fab9c) {
+ return F_true;
+ }
+
+ // Symbols and Pictographs Extended-A: U+1FADF to U+1FAE9.
+ if (sequence >= 0xf09fab9f && sequence <= 0xf09faba9) {
+ return F_true;
+ }
+
+ // Symbols and Pictographs Extended-A: U+1FAF0 to U+1FAF8.
+ if (sequence >= 0xf09fabb0 && sequence <= 0xf09fabb8) {
+ return F_true;
+ }
}
}
}
return F_true;
}
+ // Garay: U+10D40 to U+10D49.
+ if (sequence >= 0xf090b580 && sequence <= 0xf090b589) {
+ return F_true;
+ }
+
// Rumi Numeral Symbols: U+10E60 to U+10E7E.
if (sequence >= 0xf090b9a0 && sequence <= 0xf090b9be) {
return F_true;
return F_true;
}
+ // Myanmar Extended-C: U+116D0 to U+116E3.
+ if (sequence >= 0xf0919b90 && sequence <= 0xf0919ba3) {
+ return F_true;
+ }
+
// Ahom: U+11730 to U+1173B.
if (sequence >= 0xf0919cb0 && sequence <= 0xf0919cbb) {
return F_true;
return F_true;
}
+ // Sunuwar: U+11BF0 to U+11BF9.
+ if (sequence >= 0xf091afb0 && sequence <= 0xf091afb9) {
+ return F_true;
+ }
+
// Bhaiksuki: U+11C50 to U+11C6C.
if (sequence >= 0xf091b190 && sequence <= 0xf091b1ac) {
return F_true;
return F_true;
}
}
- else if (macro_f_utf_char_t_to_char_2(sequence) == 0x92) {
+ else if (macro_f_utf_char_t_to_char_2(sequence) < 0x96) {
// Cuneiform Numbers and Punctuation: U+12400 to U+1246E.
if (sequence >= 0xf0929080 && sequence <= 0xf09291ae) {
}
else if (macro_f_utf_char_t_to_char_2(sequence) == 0x96) {
+ // Gurung Khema: U+16130 to U+16139.
+ if (sequence >= 0xf09684b0 && sequence <= 0xf09684b9) {
+ return F_true;
+ }
+
// Mro: U+16A60 to U+16A69.
if (sequence >= 0xf096a9a0 && sequence <= 0xf096a9a9) {
return F_true;
return F_true;
}
+ // Kirat Rai: U+16D70 to U+16D79.
+ if (sequence >= 0xf096b5b0 && sequence <= 0xf096b5b9) {
+ return F_true;
+ }
+
// Medefaidrin: U+16E80 to U+16E96.
if (sequence >= 0xf096ba80 && sequence <= 0xf096ba96) {
return F_true;
}
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0x9c) {
+
+ // Symbols for Legacy Computing Supplement: U+1CCF0 to U+1CCF9.
+ if (sequence >= 0xf09cb3b0 && sequence <= 0xf09cb3b9) {
+ return F_true;
+ }
+ }
else if (macro_f_utf_char_t_to_char_2(sequence) == 0x9d) {
// Kaktovik Numerals: U+1D2C0 to U+1D2D3.
return F_true;
}
+ // Ol Onal: U+1E5F1 to U+1E5FA.
+ if (sequence >= 0xf09e97b1 && sequence <= 0xf09e97ba) {
+ return F_true;
+ }
+
// Mende Kikakui: U+1E8C7 to U+1E8CF.
if (sequence >= 0xf09ea387 && sequence <= 0xf09ea38f) {
return F_true;
return F_true;
}
- // Symbols for Legacy Computing (Segmented): U+1FBF0 to U+1FBF9.
+ // Symbols for Legacy Computing: U+1FBF0 to U+1FBF9.
if (sequence >= 0xf09fafb0 && sequence <= 0xf09fafb9) {
return F_true;
}
}
}
-
+// FIXME: all added digits probably need to appear in numeric as well. It seems like the is_digit function should be called and then this should check anything else.
return F_false;
}
#endif // !defined(_di_f_utf_character_is_alphabetic_) || !defined(_di_f_utf_character_is_alphabetic_digit_) || !defined(_di_f_utf_character_is_alphabetic_numeric_) || !defined(_di_f_utf_character_is_word_) || !defined(_di_f_utf_character_is_word_dash_) || !defined(_di_f_utf_character_is_word_dash_plus_) || !defined(_di_f_utf_is_alphabetic_) || !defined(_di_f_utf_is_alphabetic_digit_) || !defined(_di_f_utf_is_alphabetic_numeric_) || !defined(_di_f_utf_is_word_) || !defined(_di_f_utf_is_word_dash_) || !defined(_di_f_utf_is_word_dash_plus_)
if (sequence >= 0xe1b48000 && sequence <= 0xe1b6bf00) {
return F_true;
}
+
+ // Latin Extended-D: U+A78E.
+ if (sequence == 0xea9e8e00) {
+ return F_true;
+ }
}
return F_false;
return F_true;
}
+ // Balinese: U+1B4E to U+1B4F.
+ if (sequence >= 0xe1ad8e00 && sequence <= 0xe1ad8f00) {
+ return F_true;
+ }
+
// Balinese: U+1B5A to U+1B60.
if (sequence >= 0xe1ad9a00 && sequence <= 0xe1ada000) {
return F_true;
}
- // Balinese: U+1B7D to U+1B7E.
- if (sequence == 0xe1adbd00 || sequence == 0xe1adbe00) {
+ // Balinese: U+1B7D to U+1B7F.
+ if (sequence >= 0xe1adbd00 && sequence <= 0xe1adbf00) {
return F_true;
}
}
if (macro_f_utf_char_t_to_char_1(sequence) == 0xf0) {
+
if (macro_f_utf_char_t_to_char_2(sequence) == 0x90) {
// Aegean Numbers: U+10100 to U+10102.
return F_true;
}
+ // Todhri: U+105F4 to U+105FF.
+ if (sequence >= 0xf09097b4 && sequence <= 0xf09097bf) {
+ return F_true;
+ }
+
// Caucasian Albanian: U+1056F.
if (sequence == 0xf09095af) {
return F_true;
return F_true;
}
+ // Garay: U+10D6E to U+10D6F.
+ if (sequence >= 0xf090b5ae && sequence <= 0xf090b5af) {
+ return F_true;
+ }
+
// Yezidi: U+10EAD.
if (sequence == 0xf090baad) {
return F_true;
return F_true;
}
+ // Tulu-Tigalari: U+113D4 to U+113D5.
+ if (sequence >= 0xf0918f94 && sequence <= 0xf0918f95) {
+ return F_true;
+ }
+
+ // Tulu-Tigalari: U+113D7 to U+113D8.
+ if (sequence >= 0xf0918f97 && sequence <= 0xf0918f98) {
+ return F_true;
+ }
+
// Newa: U+1144B to U+1144F.
if (sequence >= 0xf091918b && sequence <= 0xf091918f) {
return F_true;
return F_true;
}
+ // Sunuwar: U+11BE1.
+ if (sequence == 0xf091afa1) {
+ return F_true;
+ }
+
// Bhaiksuki: U+11C41 to U+11C45.
if (sequence >= 0xf091b181 && sequence <= 0xf091b185) {
return F_true;
return F_true;
}
+ // Kirat Rai: U+16D6E to U+16D6F.
+ if (sequence >= 0xf096b5ae && sequence <= 0xf096b5af) {
+ return F_true;
+ }
+
// Duployan: U+1BC9F.
if (sequence == 0xf09bb29f) {
return F_true;
if (macro_f_utf_char_t_to_char_1(sequence) == 0xe1) {
- // Georgian: U+10FC.
- if (sequence == 0xe183bc00) {
- return F_true;
- }
+ if (macro_f_utf_char_t_to_char_2(sequence) <= 0xa0) {
- if (macro_f_utf_char_t_to_char_2(sequence) >= 0x90 && macro_f_utf_char_t_to_char_2(sequence) <= 0x99) {
+ // Georgian: U+10FC.
+ if (sequence == 0xe183bc00) {
+ return F_true;
+ }
// Unified Canadian Aboriginal Syllabics: U+141C to U+142A.
if (sequence >= 0xe1909c00 && sequence <= 0xe190aa00) {
return F_true;
}
+ // Control Pictures: U+2400 to U+2429.
+ if (sequence >= 0xe2908000 && sequence <= 0xe290a900) {
+ return F_true;
+ }
+
// Optical Character Recognition: U+2440 to U+244A.
if (sequence >= 0xe2918000 && sequence <= 0xe2918a00) {
return F_true;
return F_true;
}
- // Kanbun to CJK Strokes: U+3196 to U+31E3.
- if (sequence >= 0xe3869600 && sequence <= 0xe387a300) {
+ // Kanbun to CJK Strokes: U+3196 to U+31E5.
+ if (sequence >= 0xe3869600 && sequence <= 0xe387a500) {
+ return F_true;
+ }
+
+ // CJK Strokes: U+31EF.
+ if (sequence == 0xe387ae00) {
return F_true;
}
return F_true;
}
+ // Garay: U+10D4A to U+10D4D.
+ if (sequence >= 0xf090b58a && sequence <= 0xf090b58f) {
+ return F_true;
+ }
+
+ // Garay: U+10D8E to U+10D8F.
+ if (sequence >= 0xf090b68e && sequence <= 0xf090b68f) {
+ return F_true;
+ }
+
// Manichaean: U+10AC8.
if (sequence == 0xf090ab88) {
return F_true;
}
else if (macro_f_utf_char_t_to_char_2(sequence) == 0x91) {
+ // Tulu-Tigalari: U+113B7
+ if (sequence == 0xf0918eb7) {
+ return F_true;
+ }
+
+ // Tulu-Tigalari: U+113D3
+ if (sequence == 0xdf0918f93) {
+ return F_true;
+ }
+
// Ahom: U+1173F.
if (sequence == 0xf0919cbf) {
return F_true;
return F_true;
}
}
+ else if (macro_f_utf_char_t_to_char_2(sequence) < 0x96) {
+
+ // Egyptian Hieroglyphs Extended-A: U+13460 to U+143FA.
+ if (sequence >= 0xf09391a0 && sequence <= 0xf0948fba) {
+ return F_true;
+ }
+ }
else if (macro_f_utf_char_t_to_char_2(sequence) == 0x96) {
// Pahawh Hmong: U+16B3C to U+16B3F.
if (sequence == 0xf096ad85) {
return F_true;
}
+
+ // Kirat Rai: U+16D40 to U+16D42.
+ if (sequence >= 0xf096b580 && sequence <= 0xf096b582) {
+ return F_true;
+ }
+
+ // Kirat Rai: U+16D63 to U+16D6D.
+ if (sequence >= 0xf096b5a3 && sequence <= 0xf096b5ad) {
+ return F_true;
+ }
+ }
+ else if (macro_f_utf_char_t_to_char_2(sequence) < 0x9b) {
+
+ // Khitan Small Script: U+18CFF.
+ if (sequence == 0xf098b3bf) {
+ return F_true;
+ }
}
else if (macro_f_utf_char_t_to_char_2(sequence) == 0x9b) {
}
else if (macro_f_utf_char_t_to_char_2(sequence) == 0x9c) {
+ // Symbols for Legacy Computing Supplement: U+1CC00 to U+1CCD5.
+ if (sequence >= 0xf09cb080 && sequence <= 0xf09cb395) {
+ return F_true;
+ }
+
+ // Symbols for Legacy Computing Supplement: U+1CD00 to U+1CEB3.
+ if (sequence >= 0xf09cb480 && sequence <= 0xf09cbab3) {
+ return F_true;
+ }
+
// Znamenny Musical Notation: U+1CF50 to U+1CFC3.
if (sequence >= 0xf09cbd90 && sequence <= 0xf09cbf83) {
return F_true;
return F_true;
}
+ // Ol Onal: U+1E5F0, U+1E5FF.
+ if (sequence == 0xf09e97b0 || sequence == 0xf09e97bf) {
+ return F_true;
+ }
+
// Indic Siyaq Numbers: U+1ECAC, U+ECB0.
if (sequence == 0xf09eb2ac || sequence == 0xf09eb2b0) {
return F_true;
return F_true;
}
+ // Supplemental Symbols and Pictographs: U+1F900 to U+1F9FF.
+ if (sequence >= 0xf09fa480 && sequence <= 0xf09fa7bf) {
+ return F_true;
+ }
+
// Miscellaneous Symbols and Pictographs: U+1F300 to U+1F6EC.
if (sequence >= 0xf09f8c80 && sequence <= 0xf09f9bac) {
return F_true;
return F_true;
}
- // Supplemental Arrows-C: U+1F850 to U+1F887.
- if (sequence >= 0xf09fa190 && sequence <= 0xf09fa287) {
+ // Supplemental Arrows-C: U+1F850 to U+1F859.
+ if (sequence >= 0xf09fa190 && sequence <= 0xf09fa199) {
+ return F_true;
+ }
+
+ // Supplemental Arrows-C: U+1F860 to U+1F887.
+ if (sequence >= 0xf09fa1a0 && sequence <= 0xf09fa287) {
return F_true;
}
return F_true;
}
- // Supplemental Arrows-C: U+1F8B0, U+1F8B1.
- if (sequence == 0xf09fa2b0 || sequence == 0xf09fa2b1) {
+ // Supplemental Arrows-C: U+1F8B0 to U+1F8BB.
+ if (sequence >= 0xf09fa2b0 && sequence <= 0xf09fa2bb) {
+ return F_true;
+ }
+
+ // Supplemental Arrows-C: U+1F8C0 to U+1F8C1.
+ if (sequence >= 0xf09fa380 && sequence <= 0xf09fa381) {
return F_true;
}
return F_true;
}
- // Symbols for Legacy Computing: U+1FB00 to U+1FBCA.
- if (sequence >= 0xf09fac80 && sequence <= 0xf09faf8a) {
+ // Symbols for Legacy Computing: U+1FB00 to U+1FBEF.
+ if (sequence >= 0xf09fac80 && sequence <= 0xf09fafaf) {
return F_true;
}
}
return F_true;
}
- // Arabic Extended B: U+0892 to U+0897.
- if (sequence >= 0xe0a29200 && sequence <= 0xe0a29700) {
+ // Arabic Extended B: U+0892 to U+0896.
+ if (sequence >= 0xe0a29200 && sequence <= 0xe0a29600) {
return F_true;
}
return F_true;
}
- // Balinese: U+1B4C to U+1B4F.
- if (sequence >= 0xe1ad8c00 && sequence <= 0xe1ad8f00) {
- return F_true;
- }
-
- // Balinese: U+1B7D to U+1B7F.
- if (sequence >= 0xe1adbd00 && sequence <= 0xe1adbf00) {
+ // Balinese: U+1B4D.
+ if (sequence == 0xe1ad8d00) {
return F_true;
}
return F_true;
}
+ // Cyrillic Extended-C: U+1C8B to U+1C8F.
+ if (sequence >= 0xe1b28b00 && sequence <= 0xe1b28f00) {
+ return F_true;
+ }
+
// Sundanese Supplement: U+1CC8 to U+1CCF.
if (sequence >= 0xe1b38800 && sequence <= 0xe1b38f00) {
return F_true;
return F_true;
}
- // Control Pictures: U+2427 to U+243F.
- if (sequence >= 0xe290a700 && sequence <= 0xe290bf00) {
+ // Control Pictures: U+242A to U+243F.
+ if (sequence >= 0xe290aa00 && sequence <= 0xe290bf00) {
return F_true;
}
return F_true;
}
- // CJK Strokes: U+31E4 to U+31EF.
- if (sequence >= 0xe387a400 && sequence <= 0xe387af00) {
+ // CJK Strokes: U+31E6 to U+31EE.
+ if (sequence >= 0xe387a600 && sequence <= 0xe387ae00) {
return F_true;
}
return F_true;
}
- // Latin Extended-D: U+A7CB to U+A7CF.
- if (sequence >= 0xea9f8b00 && sequence <= 0xea9f8f00) {
+ // Latin Extended-D: U+A7CE to U+A7CF.
+ if (sequence >= 0xea9f8e00 && sequence <= 0xea9f8f00) {
return F_true;
}
return F_true;
}
- // Latin Extended-D: U+A7DA to U+A7F1.
- if (sequence >= 0xea9f9a00 && sequence <= 0xea9fb100) {
+ // Latin Extended-D: U+A7DD to U+A7F1.
+ if (sequence >= 0xea9f9d00 && sequence <= 0xea9fb100) {
return F_true;
}
else if (macro_f_utf_char_t_to_char_1(sequence) == 0xf0) {
if (macro_f_utf_char_t_to_char_2(sequence) < 0x90) {
- // Do nothing.
+ // There are none here.
}
else if (macro_f_utf_char_t_to_char_2(sequence) == 0x90) {
return F_true;
}
- // Arabic Extended-C: U+10EC0 to U+10EFC.
- if (sequence >= 0xf090bb80 && sequence <= 0xf090bbbc) {
+ // Arabic Extended-C: U+10EC0 to U+10EC1.
+ if (sequence >= 0xf090bb80 && sequence <= 0xf090bb81) {
+ return F_true;
+ }
+
+ // Arabic Extended-C: U+10EC5 to U+10EFB.
+ if (sequence >= 0xf090bb85 && sequence <= 0xf090bbbb) {
+ return F_true;
+ }
+
+ // Garay: U+10D66 to U+10D68.
+ if (sequence >= 0xf090b5a6 && sequence <= 0xf090b5a8) {
+ return F_true;
+ }
+
+ // Garay: U+10D86 to U+10D8d.
+ if (sequence >= 0xf090b686 && sequence <= 0xf090b68d) {
return F_true;
}
}
return F_true;
}
+ // Sunuwar: U+11BC0 to U+11BFF.
+ if (sequence >= 0xf091af80 && sequence <= 0xf091afbf) {
+ return F_true;
+ }
+
// Kawi: U+11F11.
if (sequence == 0xf091bc91) {
return F_true;
return F_true;
}
- // Kawi: U+11F5A to U+11F5F.
- if (sequence >= 0xf091bd9a && sequence <= 0xf091bd9f) {
+ // Kawi: U+11F5B to U+11F5F.
+ if (sequence >= 0xf091bd9b && sequence <= 0xf091bd9f) {
return F_true;
}
return F_true;
}
+ // Tulu-Tigalari: U+1138A, U+1138C, U+1138D, U+1138F.
+ if (sequence == 0xf0918e8a || sequence == 0xf0918e8c || sequence == 0xf0918e8d || sequence == 0xf0918e8f) {
+ return F_true;
+ }
+
+ // Tulu-Tigalari: U+113B6, U+113C1, U+113C3, U+113C4.
+ if (sequence == 0xf0918eb6 || sequence == 0xf0918f81 || sequence == 0xf0918f83 || sequence == 0xf0918f84) {
+ return F_true;
+ }
+
+ // Tulu-Tigalari: U+113C6, U+113CB, U+113D6.
+ if (sequence == 0xf0918f86 || sequence == 0xf0918f8b || sequence == 0xf0918f96) {
+ return F_true;
+ }
+
+ // Tulu-Tigalari: U+113D9 to U+113E1.
+ if (sequence >= 0xf0918f99 && sequence <= 0xf0918fa1) {
+ return F_true;
+ }
+
+ // Tulu-Tigalari: U+113E3 to U+113FF.
+ if (sequence >= 0xf0918fa3 && sequence <= 0xf0918fbf) {
+ return F_true;
+ }
+
// Tirhuta: U+114C8 to U+114CF.
if (sequence >= 0xf0919388 && sequence <= 0xf091938f) {
return F_true;
return F_true;
}
+ // Myanmar Extended-C: U+116E4 to U+116FF.
+ if (sequence >= 0xf0919ba4 && sequence <= 0xf0919bbf) {
+ return F_true;
+ }
+
// Ahom: U+1171A to U+1171C.
if (sequence >= 0xf0919c9a && sequence <= 0xf0919c9c) {
return F_true;
return F_true;
}
}
- else if (macro_f_utf_char_t_to_char_2(sequence) == 0x91) {
+ else if (macro_f_utf_char_t_to_char_2(sequence) == 0x92) {
// Cuneiform: U+1239A to U+123FF.
if (sequence >= 0xf0928e9a && sequence <= 0xf0928fbf) {
if (sequence >= 0xf0939196 && sequence <= 0xf093919f) {
return F_true;
}
+
+ // Ol Onal: U+1E5FB to U+1E5FE.
+ if (sequence >= 0xf09e97bb && sequence <= 0xf09e97be) {
+ return F_true;
+ }
}
else if (macro_f_utf_char_t_to_char_2(sequence) == 0x94) {
+ // Egyptian Hieroglyphs Extended-A: U+143FB to U+143FF.
+ if (sequence >= 0xf0948fbb && sequence <= 0xf0948fbf) {
+ return F_true;
+ }
+
// Anatolian Hieroglyphs: U+14647 to U+1467F.
if (sequence >= 0xf0949987 && sequence <= 0xf09499bf) {
return F_true;
}
else if (macro_f_utf_char_t_to_char_2(sequence) == 0x96) {
+ // Gurung Khema: U+1613A to U+1613A.
+ if (sequence >= 0xf09684ba && sequence <= 0xf09684bf) {
+ return F_true;
+ }
+
// Bamum Supplement: U+16A39 to U+16A3F.
if (sequence >= 0xf096a8b9 && sequence <= 0xf096a8bf) {
return F_true;
return F_true;
}
+ // Kirat Rai: U+16D7A to U+16D7F.
+ if (sequence >= 0xf096b5ba && sequence <= 0xf096b5bf) {
+ return F_true;
+ }
+
// Miao: U+16F45 to U+16F4F.
if (sequence >= 0xf096bd85 && sequence <= 0xf096bd8f) {
return F_true;
}
}
else if (macro_f_utf_char_t_to_char_2(sequence) < 0x9b) {
- // Do nothing.
+
+ // Khitan Small Script: U+18CD6 to U+18CFE.
+ if (sequence >= 0xf098b396 && sequence <= 0xf098b3be) {
+ return F_true;
+ }
}
else if (macro_f_utf_char_t_to_char_2(sequence) == 0x9b) {
}
}
else if (macro_f_utf_char_t_to_char_2(sequence) < 0x9d) {
- // Do nothing.
+
+ // Khitan Small Script: U+18CD6 to U+18CFE.
+ if (sequence >= 0xf098b396 && sequence <= 0xf098b3be) {
+ return F_true;
+ }
+
+ // Symbols for Legacy Computing Supplement: U+1CEB4 to U+1CEBF.
+ if (sequence >= 0xf09cbab4 && sequence <= 0xf09cbabf) {
+ return F_true;
+ }
+
+ // Symbols for Legacy Computing Supplement: U+1CCFA to U+1CCFF.
+ if (sequence >= 0xf09cb3ba && sequence <= 0xf09cb3bf) {
+ return F_true;
+ }
}
else if (macro_f_utf_char_t_to_char_2(sequence) == 0x9d) {
return F_true;
}
- // Supplemental Arrows C: U+1F80C to U+1F80F.
+ // Supplemental Arrows-C: U+1F80C to U+1F80F.
if (sequence >= 0xf09fa08c && sequence <= 0xf09fa08f) {
return F_true;
}
- // Supplemental Arrows C: U+1F848 to U+1F84F.
+ // Supplemental Arrows-C: U+1F848 to U+1F84F.
if (sequence >= 0xf09fa188 && sequence <= 0xf09fa18f) {
return F_true;
}
- // Supplemental Arrows C: U+1F85A to U+1F85F.
+ // Supplemental Arrows-C: U+1F85A to U+1F85F.
if (sequence >= 0xf09fa19a && sequence <= 0xf09fa19f) {
return F_true;
}
- // Supplemental Arrows C: U+1F888 to U+1F88F.
+ // Supplemental Arrows-C: U+1F888 to U+1F88F.
if (sequence >= 0xf09fa288 && sequence <= 0xf09fa28f) {
return F_true;
}
- // Supplemental Arrows C: U+1F8AE to U+1F8FF.
- if (sequence >= 0xf09fa2ae && sequence <= 0xf09fa3bf) {
+ // Supplemental Arrows-C: U+1F8AE to U+1F8AF.
+ if (sequence >= 0xf09fa2ae && sequence <= 0xf09fa2af) {
return F_true;
}
- // Supplemental Symbols and Pictographs: U+1F900 to U+1F90F.
- if (sequence >= 0xf09fa480 && sequence <= 0xf09fa48f) {
- return F_true;
- }
-
- // Supplemental Symbols and Pictographs: U+1F919 to U+1F97F.
- if (sequence >= 0xf09fa499 && sequence <= 0xf09fa5bf) {
- return F_true;
- }
-
- // Supplemental Symbols and Pictographs: U+1F985 to U+1F9BF.
- if (sequence >= 0xf09fa685 && sequence <= 0xf09fa6bf) {
- return F_true;
- }
-
- // Supplemental Symbols and Pictographs: U+1F9C1 to U+1F9FF.
- if (sequence >= 0xf09fa781 && sequence <= 0xf09fa7bf) {
+ // Supplemental Arrows-C: U+1F8B2 to U+1F8FF.
+ if (sequence >= 0xf09fa2b2 && sequence <= 0xf09fa3bf) {
return F_true;
}
return F_true;
}
- // Symbols and Pictographs Extended-A: U+1FABE.
- if (sequence == 0xf09faabe) {
+ // Symbols and Pictographs Extended-A: U+1FA8A to U+1FA8E.
+ if (sequence >= 0xf09faa8a && sequence <= 0xf09faa8e) {
return F_true;
}
- // Symbols and Pictographs Extended-A: U+1FAC6 to U+1FACD.
- if (sequence >= 0xf09fab86 && sequence <= 0xf09fab8d) {
+ // Symbols and Pictographs Extended-A: U+1FAC7 to U+1FACD.
+ if (sequence >= 0xf09fab87 && sequence <= 0xf09fab8d) {
return F_true;
}
- // Symbols and Pictographs Extended-A: U+1FADC to U+1FADF.
- if (sequence >= 0xf09fab9c && sequence <= 0xf09fab9f) {
+ // Symbols and Pictographs Extended-A: U+1FADD to U+1FADE.
+ if (sequence >= 0xf09fab9d && sequence <= 0xf09fab9e) {
return F_true;
}
- // Symbols and Pictographs Extended-A: U+1FAE9 to U+1FAEF.
- if (sequence >= 0xf09faba9 && sequence <= 0xf09fabaf) {
+ // Symbols and Pictographs Extended-A: U+1FAEA to U+1FAEF.
+ if (sequence >= 0xf09fabaa && sequence <= 0xf09fabaf) {
return F_true;
}
return F_true;
}
- // Not Assigned: U+1FB00 to U+1FFFF.
- if (sequence >= 0xf09fac80 && sequence <= 0xf09fbfbf) {
+ // Symbols for Legacy Computing: U+1FBFA to U+1CEBF.
+ if (sequence >= 0xf09fafba && sequence <= 0xf09cbabf) {
+ return F_true;
+ }
+
+ // Symbols for Legacy Computing and others not assigned: U+1FBFA to U+1FFFF.
+ if (sequence >= 0xf09fafba && sequence <= 0xf09fbfbf) {
return F_true;
}
}
else if (macro_f_utf_char_t_to_char_2(sequence) < 0xaa) {
- // Do nothing.
+ // There are none here.
}
else if (macro_f_utf_char_t_to_char_2(sequence) < 0xb0) {
// For first byte 0xe0, only second byte ranges 0xa0 to 0xbf are valid.
if (macro_f_utf_char_t_to_char_1(sequence) == 0xe0) {
+
if (macro_f_utf_char_t_to_char_2(sequence) < 0xa0 || macro_f_utf_char_t_to_char_2(sequence) > 0xbf) {
return F_false;
}
// For first byte 0xed, only second byte ranges 0x80 to 0x9f are valid.
else if (macro_f_utf_char_t_to_char_1(sequence) == 0xed) {
+
if (macro_f_utf_char_t_to_char_2(sequence) < 0x80 || macro_f_utf_char_t_to_char_2(sequence) > 0x9f) {
return F_false;
}
/**
* Check to see if the entire byte block of the character is an ASCII or UTF-8 symbol character.
*
+ * This function considers a symbol character a non-alphabetic, non-digit, non-combining, non-whitespace character that is a graph character.
+ *
* @param sequence
* The byte sequence to validate as a character.
*
build_sources_program test-utf-character_is_alphabetic_numeric.c test-utf-is_alphabetic_numeric.c
build_sources_program test-utf-character_is_combining.c test-utf-is_combining.c
build_sources_program test-utf-character_is_control.c test-utf-is_control.c
+build_sources_program test-utf-character_is_control_picture.c test-utf-is_control_picture.c
build_sources_program test-utf-character_is_digit.c test-utf-is_digit.c
build_sources_program test-utf-character_is_emoji.c test-utf-is_emoji.c
build_sources_program test-utf-character_is_numeric.c test-utf-is_numeric.c
.PP
Check to see if the entire byte block of the character is an ASCII or UTF-8 symbol character.
.PP
+.PP
+This function considers a symbol character a non-alphabetic, non-digit, non-combining, non-whitespace character that is a graph character.
+.PP
F_utf_fragment (with error bit) if character is a UTF-8 fragment. F_utf_not (with error bit) if unicode is an invalid Unicode character.
.SH PARAMETERS
.TP
14721433
14721434
14721435
+14721687
14721688
14721689
14721690
4036012223
4036012965
4036012966
+4036015529
+4036015530
+4036017084
4036017085
4036017086
4036017087
4036069258
4036069259
4036069260
-4036082816
-4036082817
-4036082818
-4036082819
-4036082868
-4036082869
-4036082870
-4036082871
-4036082872
-4036082873
-4036082874
-4036082878
-4036082879
-4036083072
-4036083073
-4036083074
-4036919951
-4036924332
-4036924333
-4036924334
-4036924335
4036069551
4036069552
4036069553
4036070834
4036070835
4036070836
+4036071096
+4036071097
+4036071098
+4036071099
+4036071100
+4036071101
+4036071102
+4036071103
+4036071296
+4036071298
+4036071301
+4036071303
+4036071304
+4036071305
+4036071306
+4036071308
+4036071309
+4036071310
+4036071311
+4036071312
+4036071313
+4036071314
+4036071329
+4036071330
4036072115
4036072116
4036072117
4036074665
4036074666
4036074667
+4036082816
+4036082817
+4036082818
+4036082819
+4036082868
+4036082869
+4036082870
+4036082871
+4036082872
+4036082873
+4036082874
+4036082878
+4036082879
+4036083072
+4036083073
+4036083074
+4036083098
14781853
14781854
14781855
+4036396190
+4036396191
+4036396192
+4036396202
+4036396203
+4036396204
+4036396205
+4036396206
+4036396207
4036406192
4036406193
4036406194
14789761
14789762
14789763
+14789764
14789812
+14789813
14789814
14789815
14789816
14789817
14789818
+14789819
14789820
+14789821
+14789822
+14789823
14790018
14790059
14790060
14791568
14791569
14791570
-14791571
14791572
14791573
14791574
14791582
14791583
14791584
+14791585
14791586
14791587
14791588
14792637
14792638
14792639
+4036919951
+4036924332
+4036924333
+4036924334
+4036924335
4036928400
4036928401
4036928402
15374986
15374987
15374988
+15374988
15374989
15374990
15374991
--- /dev/null
+14848128
+14848129
+14848130
+14848131
+14848132
+14848133
+14848134
+14848135
+14848136
+14848137
+14848138
+14848139
+14848140
+14848141
+14848142
+14848143
+14848144
+14848145
+14848146
+14848147
+14848148
+14848149
+14848150
+14848151
+14848152
+14848153
+14848154
+14848155
+14848156
+14848157
+14848158
+14848159
+14848160
+14848161
+14848162
+14848163
+14848164
+14848165
+14848166
+14848167
+14848168
+14848169
4036924343
4036924344
4036924345
+4036015488
+4036015489
+4036015490
+4036015491
+4036015492
+4036015493
+4036015494
+4036015495
+4036015496
+4036015497
+4036074384
+4036074385
+4036074386
+4036074387
+4036074388
+4036074389
+4036074390
+4036074391
+4036074392
+4036074393
+4036074394
+4036074395
+4036074396
+4036074397
+4036074398
+4036074399
+4036074400
+4036074401
+4036074402
+4036074403
+4036079536
+4036079537
+4036079538
+4036079539
+4036079540
+4036079541
+4036079542
+4036079543
+4036079544
+4036079545
+4036396208
+4036396209
+4036396210
+4036396211
+4036396212
+4036396213
+4036396214
+4036396215
+4036396216
+4036396217
+4036408752
+4036408753
+4036408754
+4036408755
+4036408756
+4036408757
+4036408758
+4036408759
+4036408760
+4036408761
+4036925361
+4036925362
+4036925363
+4036925364
+4036925365
+4036925366
+4036925367
+4036925368
+4036925369
+4036925370
4036995718
4036995719
4036995720
+4036995721
+4036995727
4036995728
4036995729
4036995730
4036995771
4036995772
4036995773
+4036995774
4036995775
4036995968
4036995969
4036995971
4036995972
4036995973
+4036995974
4036995982
4036995983
4036995984
4036995991
4036995992
4036995993
-4036995994
-4036995995
4036996000
4036996001
4036996002
55
56
57
+49842
+49843
+49849
+49852
+49853
+49854
55712
55713
55714
14722989
14722990
14722991
+14722996
+14722997
+14722998
+14722999
+14723000
+14723001
14723494
14723495
14723496
14724525
14724526
14724527
+14724530
+14724531
+14724532
+14724533
+14724534
+14724535
14725030
14725031
14725032
14725037
14725038
14725039
+14725040
+14725041
+14725042
14725542
14725543
14725544
14725549
14725550
14725551
+14725560
+14725561
+14725562
+14725563
+14725564
+14725565
+14725566
14726054
14726055
14726056
14726061
14726062
14726063
+14726552
+14726553
+14726554
+14726555
+14726556
+14726557
+14726558
14726566
14726567
14726568
14726573
14726574
14726575
+14726576
+14726577
+14726578
+14726579
+14726580
+14726581
+14726582
+14726583
+14726584
14727078
14727079
14727080
14728359
14728360
14728361
+14728362
+14728363
+14728364
+14728365
+14728366
+14728367
+14728368
+14728369
+14728370
+14728371
+4036002951
+4036002952
+4036002953
+4036002954
+4036002955
+4036002956
+4036002957
+4036002958
+4036002959
+4036002960
+4036002961
+4036002962
+4036002963
+4036002964
+4036002965
+4036002966
+4036002967
+4036002968
+4036002969
+4036002970
+4036002971
+4036002972
+4036002973
+4036002974
+4036002975
+4036002976
+4036002977
+4036002978
+4036002979
+4036002980
+4036002981
+4036002982
+4036002983
+4036002984
+4036002985
+4036002986
+4036002987
+4036002988
+4036002989
+4036002990
+4036002991
+4036002992
+4036002993
+4036002994
+4036002995
+4036003200
+4036003201
+4036003202
+4036003203
+4036003204
+4036003205
+4036003206
+4036003207
+4036003208
+4036003209
+4036003210
+4036003211
+4036003212
+4036003213
+4036003214
+4036003215
+4036003216
+4036003217
+4036003218
+4036003219
+4036003220
+4036003221
+4036003222
+4036003223
+4036003224
+4036003225
+4036003226
+4036003227
+4036003228
+4036003229
+4036003230
+4036003231
+4036003232
+4036003233
+4036003234
+4036003235
+4036003236
+4036003237
+4036003238
+4036003239
+4036003240
+4036003241
+4036003242
+4036003243
+4036003244
+4036003245
+4036003246
+4036003247
+4036003248
+4036003249
+4036003250
+4036003251
+4036003252
+4036003253
+4036003254
+4036003255
+4036003256
+4036003466
+4036003467
+4036004769
+4036004770
+4036004771
+4036004772
+4036004773
+4036004774
+4036004775
+4036004776
+4036004777
+4036004778
+4036004779
+4036004780
+4036004781
+4036004782
+4036004783
+4036004784
+4036004785
+4036004786
+4036004787
+4036004788
+4036004789
+4036004790
+4036004791
+4036004792
+4036004793
+4036004794
+4036004795
+4036005024
+4036005025
+4036005026
+4036005027
+4036005249
+4036005258
+4036005777
+4036005778
+4036005779
+4036005780
+4036005781
14778752
14778753
14778754
14778759
14778760
14778761
+4036006560
+4036006561
+4036006562
+4036006563
+4036006564
+4036006565
+4036006566
+4036006567
+4036006568
+4036006569
+4036010392
+4036010393
+4036010394
+4036010395
+4036010396
+4036010397
+4036010398
+4036010399
+4036010425
+4036010426
+4036010427
+4036010428
+4036010429
+4036010430
+4036010431
+4036010663
+4036010664
+4036010665
+4036010666
+4036010667
+4036010668
+4036010669
+4036010670
+4036010671
+4036010939
+4036010940
+4036010941
+4036010942
+4036010943
14779024
14779025
+4036011158
+4036011159
+4036011160
+4036011161
+4036011162
+4036011163
14779026
14779027
14779028
14779031
14779032
14779033
-14786464
-14786465
-14786466
-14786467
-14786468
-14786469
-14786470
-14786471
-14786472
-14786473
-14786704
-14786705
-14786706
-14786707
-14786708
-14786709
-14786710
-14786711
-14786712
-14786713
-14787974
-14787975
-14787976
-14787977
-14787978
-14787979
-14787980
-14787981
-14787982
-14787983
-14788496
-14788497
-14788498
-14788499
-14788500
-14788501
-14788502
-14788503
-14788504
-14788505
-14789248
-14789249
-14789250
-14789251
-14789252
-14789253
-14789254
-14789255
-14789256
-14789257
-14789264
-14789265
-14789266
-14789267
-14789268
-14789269
-14789270
-14789271
-14789272
-14789273
-14790032
-14790033
-14790034
-14790035
-14790036
-14790037
-14790038
-14790039
-14790040
-14790041
-14790320
-14790321
-14790322
-14790323
-14790324
-14790325
-14790326
-14790327
-14790328
-14790329
-14791040
-14791041
-14791042
-14791043
-14791044
-14791045
-14791046
-14791047
-14791048
-14791049
-14791056
-14791057
-14791058
-14791059
-14791060
-14791061
-14791062
-14791063
-14791064
-14791065
-14845344
-14845345
-14845346
-14845347
-14845348
-14845349
-14845350
-14845351
-14845352
-14845353
-14845354
-14845355
-14845356
-14845357
-14845358
-14845359
-14845360
-14845361
-14845362
-14845363
-14845364
-14845365
-14845366
-14845367
-14845368
-14845369
-14845370
-14845371
-14845372
-14845373
-14845374
-14845375
-14845568
-14845569
-14845570
-14845571
-14845572
-14845573
-14845574
-14845575
-14845576
-15374496
-15374497
-15374498
-15374499
-15374500
-15374501
-15374502
-15374503
-15374504
-15374505
-15377296
-15377297
-15377298
-15377299
-15377300
-15377301
-15377302
-15377303
-15377304
-15377305
-15377536
-15377537
-15377538
-15377539
-15377540
-15377541
-15377542
-15377543
-15377544
-15377545
-15378320
-15378321
-15378322
-15378323
-15378324
-15378325
-15378326
-15378327
-15378328
-15378329
-15378352
-15378353
-15378354
-15378355
-15378356
-15378357
-15378358
-15378359
-15378360
-15378361
-15378832
-15378833
-15378834
-15378835
-15378836
-15378837
-15378838
-15378839
-15378840
-15378841
-15380400
-15380401
-15380402
-15380403
-15380404
-15380405
-15380406
-15380407
-15380408
-15380409
-15711376
-15711377
-15711378
-15711379
-15711380
-15711381
-15711382
-15711383
-15711384
-15711385
-4036006560
-4036006561
-4036006562
-4036006563
-4036006564
-4036006565
-4036006566
-4036006567
-4036006568
-4036006569
-4036015280
-4036015281
-4036015282
-4036015283
-4036015284
-4036015285
-4036015286
-4036015287
-4036015288
-4036015289
-4036067750
-4036067751
-4036067752
-4036067753
-4036067754
-4036067755
-4036067756
-4036067757
-4036067758
-4036067759
-4036068272
-4036068273
-4036068274
-4036068275
-4036068276
-4036068277
-4036068278
-4036068279
-4036068280
-4036068281
-4036068534
-4036068535
-4036068536
-4036068537
-4036068538
-4036068539
-4036068540
-4036068541
-4036068542
-4036068543
-4036069264
-4036069265
-4036069266
-4036069267
-4036069268
-4036069269
-4036069270
-4036069271
-4036069272
-4036069273
-4036070320
-4036070321
-4036070322
-4036070323
-4036070324
-4036070325
-4036070326
-4036070327
-4036070328
-4036070329
-4036071824
-4036071825
-4036071826
-4036071827
-4036071828
-4036071829
-4036071830
-4036071831
-4036071832
-4036071833
-4036072336
-4036072337
-4036072338
-4036072339
-4036072340
-4036072341
-4036072342
-4036072343
-4036072344
-4036072345
-4036073872
-4036073873
-4036073874
-4036073875
-4036073876
-4036073877
-4036073878
-4036073879
-4036073880
-4036073881
-4036074368
-4036074369
-4036074370
-4036074371
-4036074372
-4036074373
-4036074374
-4036074375
-4036074376
-4036074377
-4036074672
-4036074673
-4036074674
-4036074675
-4036074676
-4036074677
-4036074678
-4036074679
-4036074680
-4036074681
-4036076448
-4036076449
-4036076450
-4036076451
-4036076452
-4036076453
-4036076454
-4036076455
-4036076456
-4036076457
-4036076944
-4036076945
-4036076946
-4036076947
-4036076948
-4036076949
-4036076950
-4036076951
-4036076952
-4036076953
-4036080016
-4036080017
-4036080018
-4036080019
-4036080020
-4036080021
-4036080022
-4036080023
-4036080024
-4036080025
-4036081040
-4036081041
-4036081042
-4036081043
-4036081044
-4036081045
-4036081046
-4036081047
-4036081048
-4036081049
-4036081312
-4036081313
-4036081314
-4036081315
-4036081316
-4036081317
-4036081318
-4036081319
-4036081320
-4036081321
-4036405664
-4036405665
-4036405666
-4036405667
-4036405668
-4036405669
-4036405670
-4036405671
-4036405672
-4036405673
-4036406144
-4036406145
-4036406146
-4036406147
-4036406148
-4036406149
-4036406150
-4036406151
-4036406152
-4036406153
-4036406672
-4036406673
-4036406674
-4036406675
-4036406676
-4036406677
-4036406678
-4036406679
-4036406680
-4036406681
-4036861838
-4036861839
-4036861840
-4036861841
-4036861842
-4036861843
-4036861844
-4036861845
-4036861846
-4036861847
-4036861848
-4036861849
-4036861850
-4036861851
-4036861852
-4036861853
-4036861854
-4036861855
-4036861856
-4036861857
-4036861858
-4036861859
-4036861860
-4036861861
-4036861862
-4036861863
-4036861864
-4036861865
-4036861866
-4036861867
-4036861868
-4036861869
-4036861870
-4036861871
-4036861872
-4036861873
-4036861874
-4036861875
-4036861876
-4036861877
-4036861878
-4036861879
-4036861880
-4036861881
-4036861882
-4036861883
-4036861884
-4036861885
-4036861886
-4036861887
-4036920704
-4036920705
-4036920706
-4036920707
-4036920708
-4036920709
-4036920710
-4036920711
-4036920712
-4036920713
-4036922288
-4036922289
-4036922290
-4036922291
-4036922292
-4036922293
-4036922294
-4036922295
-4036922296
-4036922297
-4036928912
-4036928913
-4036928914
-4036928915
-4036928916
-4036928917
-4036928918
-4036928919
-4036928920
-4036928921
-4036997040
-4036997041
-4036997042
-4036997043
-4036997044
-4036997045
-4036997046
-4036997047
-4036997048
-4036997049
-14785454
-14785455
-14785456
-14845344
-14845345
-14845346
-14845347
-14845348
-14845349
-14845350
-14845351
-14845352
-14845353
-14845354
-14845355
-14845356
-14845357
-14845358
-14845359
-14845360
-14845361
-14845362
-14845363
-14845364
-14845365
-14845366
-14845367
-14845368
-14845369
-14845370
-14845371
-14845372
-14845373
-14845374
-14845375
-14845568
-14845569
-14845570
-14845573
-14845574
-14845575
-14845576
-14909575
-14909601
-14909602
-14909603
-14909604
-14909605
-14909606
-14909607
-14909608
-14909609
-14909624
-14909625
-14909626
-15375270
-15375271
-15375272
-15375273
-15375274
-15375275
-15375276
-15375277
-15375278
-15375279
-4036003200
-4036003201
-4036003202
-4036003203
-4036003204
-4036003205
-4036003206
-4036003207
-4036003208
-4036003209
-4036003210
-4036003211
-4036003212
-4036003213
-4036003214
-4036003215
-4036003216
-4036003217
-4036003218
-4036003219
-4036003220
-4036003221
-4036003222
-4036003223
-4036003224
-4036003225
-4036003226
-4036003227
-4036003228
-4036003229
-4036003230
-4036003231
-4036003232
-4036003233
-4036003234
-4036003235
-4036003236
-4036003237
-4036003238
-4036003239
-4036003240
-4036003241
-4036003242
-4036003243
-4036003244
-4036003245
-4036003246
-4036003247
-4036003248
-4036003249
-4036003250
-4036003251
-4036003252
-4036005249
-4036005258
-4036005777
-4036005778
-4036005779
-4036005780
-4036005781
-4036137088
-4036137089
-4036137090
-4036137091
-4036137092
-4036137093
-4036137094
-4036137095
-4036137096
-4036137097
-4036137098
-4036137099
-4036137100
-4036137101
-4036137102
-4036137103
-4036137104
-4036137105
-4036137106
-4036137107
-4036137108
-4036137109
-4036137110
-4036137111
-4036137112
-4036137113
-4036137114
-4036137115
-4036137116
-4036137117
-4036137118
-4036137119
-4036137120
-4036137121
-4036137122
-4036137123
-4036137124
-4036137125
-4036137126
-4036137127
-4036137128
-4036137129
-4036137130
-4036137131
-4036137132
-4036137133
-4036137134
-4036137135
-4036137136
-4036137137
-4036137138
-4036137139
-4036137140
-4036137141
-4036137142
-4036137143
-4036137144
-4036137145
-4036137146
-4036137147
-4036137148
-4036137149
-4036137150
-4036137151
-4036137344
-4036137345
-4036137346
-4036137347
-4036137348
-4036137349
-4036137350
-4036137351
-4036137352
-4036137353
-4036137354
-4036137355
-4036137356
-4036137357
-4036137358
-4036137359
-4036137360
-4036137361
-4036137362
-4036137363
-4036137364
-4036137365
-4036137366
-4036137367
-4036137368
-4036137369
-4036137370
-4036137371
-4036137372
-4036137373
-4036137374
-4036137375
-4036137376
-4036137377
-4036137378
-4036137379
-4036137380
-4036137381
-4036137382
-4036137383
-4036137384
-4036137385
-4036137386
-4036137387
-4036137388
-4036137389
-4036137390
-49842
-49843
-49849
-49852
-49853
-49854
-14722996
-14722997
-14722998
-14722999
-14723000
-14723001
-14724530
-14724531
-14724532
-14724533
-14724534
-14724535
-14725040
-14725041
-14725042
-14725560
-14725561
-14725562
-14725563
-14725564
-14725565
-14725566
-14726552
-14726553
-14726554
-14726555
-14726556
-14726557
-14726558
-14726576
-14726577
-14726578
-14726579
-14726580
-14726581
-14726582
-14726583
-14726584
-14728362
-14728363
-14728364
-14728365
-14728366
-14728367
-14728368
-14728369
-14728370
-14728371
-14781865
-14781866
-14781867
-14781868
-14781869
-14781870
-14781871
-14781872
-14781873
-14781874
-14781875
-14781876
-14781877
-14781878
-14781879
-14781880
-14781881
-14781882
-14781883
-14781884
-14786480
-14786481
-14786482
-14786483
-14786484
-14786485
-14786486
-14786487
-14786488
-14786489
-14788506
-14844336
-14844340
-14844341
-14844342
-14844343
-14844344
-14844345
-14844544
-14844545
-14844546
-14844547
-14844548
-14844549
-14844550
-14844551
-14844552
-14844553
-14845328
-14845329
-14845330
-14845331
-14845332
-14845333
-14845334
-14845335
-14845336
-14845337
-14845338
-14845339
-14845340
-14845341
-14845342
-14845343
-14845577
-14848416
-14848417
-14848418
-14848419
-14848420
-14848421
-14848422
-14848423
-14848424
-14848425
-14848426
-14848427
-14848428
-14848429
-14848430
-14848431
-14848432
-14848433
-14848434
-14848435
-14848436
-14848437
-14848438
-14848439
-14848440
-14848441
-14848442
-14848443
-14848444
-14848445
-14848446
-14848447
-14848640
-14848641
-14848642
-14848643
-14848644
-14848645
-14848646
-14848647
-14848648
-14848649
-14848650
-14848651
-14848652
-14848653
-14848654
-14848655
-14848656
-14848657
-14848658
-14848659
-14848660
-14848661
-14848662
-14848663
-14848664
-14848665
-14848666
-14848667
-14848938
-14848939
-14848940
-14848941
-14848942
-14848943
-14848944
-14848945
-14848946
-14848947
-14848948
-14848949
-14848950
-14848951
-14848952
-14848953
-14848954
-14848955
-14848956
-14848957
-14848958
-14848959
-14851510
-14851511
-14851512
-14851513
-14851514
-14851515
-14851516
-14851517
-14851518
-14851519
-14851712
-14851713
-14851714
-14851715
-14851716
-14851717
-14851718
-14851719
-14851720
-14851721
-14851722
-14851723
-14851724
-14851725
-14851726
-14851727
-14851728
-14851729
-14851730
-14851731
-14857149
-14911122
-14911123
-14911124
-14911125
-14911648
-14911649
-14911650
-14911651
-14911652
-14911653
-14911654
-14911655
-14911656
-14911657
-14911880
-14911881
-14911882
-14911883
-14911884
-14911885
-14911886
-14911887
-14911889
-14911890
-14911891
-14911892
-14911893
-14911894
-14911895
-14911896
-14911897
-14911898
-14911899
-14911900
-14911901
-14911902
-14911903
-14912128
-14912129
-14912130
-14912131
-14912132
-14912133
-14912134
-14912135
-14912136
-14912137
-14912177
-14912178
-14912179
-14912180
-14912181
-14912182
-14912183
-14912184
-14912185
-14912186
-14912187
-14912188
-14912189
-14912190
-14912191
-15376560
-15376561
-15376562
-15376563
-15376564
-15376565
-4036002951
-4036002952
-4036002953
-4036002954
-4036002955
-4036002956
-4036002957
-4036002958
-4036002959
-4036002960
-4036002961
-4036002962
-4036002963
-4036002964
-4036002965
-4036002966
-4036002967
-4036002968
-4036002969
-4036002970
-4036002971
-4036002972
-4036002973
-4036002974
-4036002975
-4036002976
-4036002977
-4036002978
-4036002979
-4036002980
-4036002981
-4036002982
-4036002983
-4036002984
-4036002985
-4036002986
-4036002987
-4036002988
-4036002989
-4036002990
-4036002991
-4036002992
-4036002993
-4036002994
-4036002995
-4036003253
-4036003254
-4036003255
-4036003256
-4036003466
-4036003467
-4036004769
-4036004770
-4036004771
-4036004772
-4036004773
-4036004774
-4036004775
-4036004776
-4036004777
-4036004778
-4036004779
-4036004780
-4036004781
-4036004782
-4036004783
-4036004784
-4036004785
-4036004786
-4036004787
-4036004788
-4036004789
-4036004790
-4036004791
-4036004792
-4036004793
-4036004794
-4036004795
-4036005024
-4036005025
-4036005026
-4036005027
-4036010392
-4036010393
-4036010394
-4036010395
-4036010396
-4036010397
-4036010398
-4036010399
-4036010425
-4036010426
-4036010427
-4036010428
-4036010429
-4036010430
-4036010431
-4036010663
-4036010664
-4036010665
-4036010666
-4036010667
-4036010668
-4036010669
-4036010670
-4036010671
-4036010939
-4036010940
-4036010941
-4036010942
-4036010943
-4036011158
-4036011159
-4036011160
-4036011161
-4036011162
-4036011163
4036011708
4036011709
4036011904
4036015037
4036015038
4036015039
+4036015280
+4036015281
+4036015282
+4036015283
+4036015284
+4036015285
+4036015286
+4036015287
+4036015288
+4036015289
+4036015488
+4036015489
+4036015490
+4036015491
+4036015492
+4036015493
+4036015494
+4036015495
+4036015496
+4036015497
4036016544
4036016545
4036016546
4036067747
4036067748
4036067749
+4036067750
+4036067751
+4036067752
+4036067753
+4036067754
+4036067755
+4036067756
+4036067757
+4036067758
+4036067759
+4036068272
+4036068273
+4036068274
+4036068275
+4036068276
+4036068277
+4036068278
+4036068279
+4036068280
+4036068281
+4036068534
+4036068535
+4036068536
+4036068537
+4036068538
+4036068539
+4036068540
+4036068541
+4036068542
+4036068543
+4036069264
+4036069265
+4036069266
+4036069267
+4036069268
+4036069269
+4036069270
+4036069271
+4036069272
+4036069273
4036069281
4036069282
4036069283
4036069298
4036069299
4036069300
+4036070320
+4036070321
+4036070322
+4036070323
+4036070324
+4036070325
+4036070326
+4036070327
+4036070328
+4036070329
+4036071824
+4036071825
+4036071826
+4036071827
+4036071828
+4036071829
+4036071830
+4036071831
+4036071832
+4036071833
+4036072336
+4036072337
+4036072338
+4036072339
+4036072340
+4036072341
+4036072342
+4036072343
+4036072344
+4036072345
+4036073872
+4036073873
+4036073874
+4036073875
+4036073876
+4036073877
+4036073878
+4036073879
+4036073880
+4036073881
+4036074368
+4036074369
+4036074370
+4036074371
+4036074372
+4036074373
+4036074374
+4036074375
+4036074376
+4036074377
+4036074384
+4036074385
+4036074386
+4036074387
+4036074388
+4036074389
+4036074390
+4036074391
+4036074392
+4036074393
+4036074394
+4036074395
+4036074396
+4036074397
+4036074398
+4036074399
+4036074400
+4036074401
+4036074402
+4036074403
+4036074672
+4036074673
+4036074674
+4036074675
+4036074676
+4036074677
+4036074678
+4036074679
+4036074680
+4036074681
4036074682
4036074683
+4036076448
+4036076449
+4036076450
+4036076451
+4036076452
+4036076453
+4036076454
+4036076455
+4036076456
+4036076457
4036076458
4036076459
4036076460
4036076464
4036076465
4036076466
+4036076944
+4036076945
+4036076946
+4036076947
+4036076948
+4036076949
+4036076950
+4036076951
+4036076952
+4036076953
+4036079536
+4036079537
+4036079538
+4036079539
+4036079540
+4036079541
+4036079542
+4036079543
+4036079544
+4036079545
+4036080016
+4036080017
+4036080018
+4036080019
+4036080020
+4036080021
+4036080022
+4036080023
+4036080024
+4036080025
4036080026
4036080027
4036080028
4036080042
4036080043
4036080044
+4036081040
+4036081041
+4036081042
+4036081043
+4036081044
+4036081045
+4036081046
+4036081047
+4036081048
+4036081049
+4036081312
+4036081313
+4036081314
+4036081315
+4036081316
+4036081317
+4036081318
+4036081319
+4036081320
+4036081321
4036083584
4036083585
4036083586
4036083602
4036083603
4036083604
+4036137088
+4036137089
+4036137090
+4036137091
+4036137092
+4036137093
+4036137094
+4036137095
+4036137096
+4036137097
+4036137098
+4036137099
+4036137100
+4036137101
+4036137102
+4036137103
+4036137104
+4036137105
+4036137106
+4036137107
+4036137108
+4036137109
+4036137110
+4036137111
+4036137112
+4036137113
+4036137114
+4036137115
+4036137116
+4036137117
+4036137118
+4036137119
+4036137120
+4036137121
+4036137122
+4036137123
+4036137124
+4036137125
+4036137126
+4036137127
+4036137128
+4036137129
+4036137130
+4036137131
+4036137132
+4036137133
+4036137134
+4036137135
+4036137136
+4036137137
+4036137138
+4036137139
+4036137140
+4036137141
+4036137142
+4036137143
+4036137144
+4036137145
+4036137146
+4036137147
+4036137148
+4036137149
+4036137150
+4036137151
+4036137344
+4036137345
+4036137346
+4036137347
+4036137348
+4036137349
+4036137350
+4036137351
+4036137352
+4036137353
+4036137354
+4036137355
+4036137356
+4036137357
+4036137358
+4036137359
+4036137360
+4036137361
+4036137362
+4036137363
+4036137364
+4036137365
+4036137366
+4036137367
+4036137368
+4036137369
+4036137370
+4036137371
+4036137372
+4036137373
+4036137374
+4036137375
+4036137376
+4036137377
+4036137378
+4036137379
+4036137380
+4036137381
+4036137382
+4036137383
+4036137384
+4036137385
+4036137386
+4036137387
+4036137388
+4036137389
+4036137390
+14781865
+14781866
+14781867
+14781868
+14781869
+14781870
+14781871
+14781872
+14781873
+14781874
+14781875
+14781876
+14781877
+14781878
+14781879
+14781880
+14781881
+14781882
+14781883
+14781884
+4036396208
+4036396209
+4036396210
+4036396211
+4036396212
+4036396213
+4036396214
+4036396215
+4036396216
+4036396217
+4036405664
+4036405665
+4036405666
+4036405667
+4036405668
+4036405669
+4036405670
+4036405671
+4036405672
+4036405673
+4036406144
+4036406145
+4036406146
+4036406147
+4036406148
+4036406149
+4036406150
+4036406151
+4036406152
+4036406153
+4036406672
+4036406673
+4036406674
+4036406675
+4036406676
+4036406677
+4036406678
+4036406679
+4036406680
+4036406681
4036406683
4036406684
4036406685
4036406687
4036406688
4036406689
+4036408752
+4036408753
+4036408754
+4036408755
+4036408756
+4036408757
+4036408758
+4036408759
+4036408760
+4036408761
4036409984
4036409985
4036409986
4036410004
4036410005
4036410006
+14785454
+14785455
+14785456
+14786464
+14786465
+14786466
+14786467
+14786468
+14786469
+14786470
+14786471
+14786472
+14786473
+14786480
+14786481
+14786482
+14786483
+14786484
+14786485
+14786486
+14786487
+14786488
+14786489
+14786704
+14786705
+14786706
+14786707
+14786708
+14786709
+14786710
+14786711
+14786712
+14786713
+14787974
+14787975
+14787976
+14787977
+14787978
+14787979
+14787980
+14787981
+14787982
+14787983
+14788496
+14788497
+14788498
+14788499
+14788500
+14788501
+14788502
+14788503
+14788504
+14788505
+14788506
+14789248
+14789249
+14789250
+14789251
+14789252
+14789253
+14789254
+14789255
+14789256
+14789257
+14789264
+14789265
+14789266
+14789267
+14789268
+14789269
+14789270
+14789271
+14789272
+14789273
+14790032
+14790033
+14790034
+14790035
+14790036
+14790037
+14790038
+14790039
+14790040
+14790041
+14790320
+14790321
+14790322
+14790323
+14790324
+14790325
+14790326
+14790327
+14790328
+14790329
+14791040
+14791041
+14791042
+14791043
+14791044
+14791045
+14791046
+14791047
+14791048
+14791049
+14791056
+14791057
+14791058
+14791059
+14791060
+14791061
+14791062
+14791063
+14791064
+14791065
4036856736
4036856737
4036856738
4036857270
4036857271
4036857272
+4036861838
+4036861839
+4036861840
+4036861841
+4036861842
+4036861843
+4036861844
+4036861845
+4036861846
+4036861847
+4036861848
+4036861849
+4036861850
+4036861851
+4036861852
+4036861853
+4036861854
+4036861855
+4036861856
+4036861857
+4036861858
+4036861859
+4036861860
+4036861861
+4036861862
+4036861863
+4036861864
+4036861865
+4036861866
+4036861867
+4036861868
+4036861869
+4036861870
+4036861871
+4036861872
+4036861873
+4036861874
+4036861875
+4036861876
+4036861877
+4036861878
+4036861879
+4036861880
+4036861881
+4036861882
+4036861883
+4036861884
+4036861885
+4036861886
+4036861887
+4036920704
+4036920705
+4036920706
+4036920707
+4036920708
+4036920709
+4036920710
+4036920711
+4036920712
+4036920713
+4036922288
+4036922289
+4036922290
+4036922291
+4036922292
+4036922293
+4036922294
+4036922295
+4036922296
+4036922297
+4036925361
+4036925362
+4036925363
+4036925364
+4036925365
+4036925366
+4036925367
+4036925368
+4036925369
4036928391
4036928392
4036928393
4036928397
4036928398
4036928399
+4036928912
+4036928913
+4036928914
+4036928915
+4036928916
+4036928917
+4036928918
+4036928919
+4036928920
+4036928921
4036932017
4036932018
4036932019
4036985994
4036985995
4036985996
+4036997040
+4036997041
+4036997042
+4036997043
+4036997044
+4036997045
+4036997046
+4036997047
+4036997048
+4036997049
+14844336
+14844340
+14844341
+14844342
+14844343
+14844344
+14844345
+14844544
+14844545
+14844546
+14844547
+14844548
+14844549
+14844550
+14844551
+14844552
+14844553
+14845328
+14845329
+14845330
+14845331
+14845332
+14845333
+14845334
+14845335
+14845336
+14845337
+14845338
+14845339
+14845340
+14845341
+14845342
+14845343
+14845344
+14845345
+14845346
+14845347
+14845348
+14845349
+14845350
+14845351
+14845352
+14845353
+14845354
+14845355
+14845356
+14845357
+14845358
+14845359
+14845360
+14845361
+14845362
+14845363
+14845364
+14845365
+14845366
+14845367
+14845368
+14845369
+14845370
+14845371
+14845372
+14845373
+14845374
+14845375
+14845568
+14845569
+14845570
+14845571
+14845572
+14845573
+14845574
+14845575
+14845576
+14845577
+14848416
+14848417
+14848418
+14848419
+14848420
+14848421
+14848422
+14848423
+14848424
+14848425
+14848426
+14848427
+14848428
+14848429
+14848430
+14848431
+14848432
+14848433
+14848434
+14848435
+14848436
+14848437
+14848438
+14848439
+14848440
+14848441
+14848442
+14848443
+14848444
+14848445
+14848446
+14848447
+14848640
+14848641
+14848642
+14848643
+14848644
+14848645
+14848646
+14848647
+14848648
+14848649
+14848650
+14848651
+14848652
+14848653
+14848654
+14848655
+14848656
+14848657
+14848658
+14848659
+14848660
+14848661
+14848662
+14848663
+14848664
+14848665
+14848666
+14848667
+14848938
+14848939
+14848940
+14848941
+14848942
+14848943
+14848944
+14848945
+14848946
+14848947
+14848948
+14848949
+14848950
+14848951
+14848952
+14848953
+14848954
+14848955
+14848956
+14848957
+14848958
+14848959
+14851510
+14851511
+14851512
+14851513
+14851514
+14851515
+14851516
+14851517
+14851518
+14851519
+14851712
+14851713
+14851714
+14851715
+14851716
+14851717
+14851718
+14851719
+14851720
+14851721
+14851722
+14851723
+14851724
+14851725
+14851726
+14851727
+14851728
+14851729
+14851730
+14851731
+14857149
+14909575
+14909601
+14909602
+14909603
+14909604
+14909605
+14909606
+14909607
+14909608
+14909609
+14909624
+14909625
+14909626
+14911122
+14911123
+14911124
+14911125
+14911648
+14911649
+14911650
+14911651
+14911652
+14911653
+14911654
+14911655
+14911656
+14911657
+14911880
+14911881
+14911882
+14911883
+14911884
+14911885
+14911886
+14911887
+14911889
+14911890
+14911891
+14911892
+14911893
+14911894
+14911895
+14911896
+14911897
+14911898
+14911899
+14911900
+14911901
+14911902
+14911903
+14912128
+14912129
+14912130
+14912131
+14912132
+14912133
+14912134
+14912135
+14912136
+14912137
+14912177
+14912178
+14912179
+14912180
+14912181
+14912182
+14912183
+14912184
+14912185
+14912186
+14912187
+14912188
+14912189
+14912190
+14912191
+15374496
+15374497
+15374498
+15374499
+15374500
+15374501
+15374502
+15374503
+15374504
+15374505
+15375270
+15375271
+15375272
+15375273
+15375274
+15375275
+15375276
+15375277
+15375278
+15375279
+15376560
+15376561
+15376562
+15376563
+15376564
+15376565
+15377296
+15377297
+15377298
+15377299
+15377300
+15377301
+15377302
+15377303
+15377304
+15377305
+15377536
+15377537
+15377538
+15377539
+15377540
+15377541
+15377542
+15377543
+15377544
+15377545
+15378320
+15378321
+15378322
+15378323
+15378324
+15378325
+15378326
+15378327
+15378328
+15378329
+15378352
+15378353
+15378354
+15378355
+15378356
+15378357
+15378358
+15378359
+15378360
+15378361
+15378832
+15378833
+15378834
+15378835
+15378836
+15378837
+15378838
+15378839
+15378840
+15378841
+15380400
+15380401
+15380402
+15380403
+15380404
+15380405
+15380406
+15380407
+15380408
+15380409
+15711376
+15711377
+15711378
+15711379
+15711380
+15711381
+15711382
+15711383
+15711384
+15711385
14792381
14792382
14792383
+15376014
U+0859
U+085A
U+085B
+U+0896
+U+0897
U+0898
U+0899
U+089A
U+10A3F
U+10AE5
U+10AE6
+U+10D69
+U+10D6A
+U+10EFC
U+10EFD
U+10EFE
U+10EFF
U+111CA
U+111CB
U+111CC
-U+11F00
-U+11F01
-U+11F02
-U+11F03
-U+11F34
-U+11F35
-U+11F36
-U+11F37
-U+11F38
-U+11F39
-U+11F3A
-U+11F3E
-U+11F3F
-U+11F40
-U+11F41
-U+11F42
-U+1E08F
-U+1E4EC
-U+1E4ED
-U+1E4EE
-U+1E4EF
U+1122F
U+11230
U+11231
U+11372
U+11373
U+11374
+U+113B8
+U+113B9
+U+113BA
+U+113BB
+U+113BC
+U+113BD
+U+113BE
+U+113BF
+U+113C0
+U+113C2
+U+113C5
+U+113C7
+U+113C8
+U+113C9
+U+113CA
+U+113CC
+U+113CD
+U+113CE
+U+113CF
+U+113D0
+U+113D1
+U+113D2
+U+113E1
+U+113E2
U+114B3
U+114B4
U+114B5
U+11729
U+1172A
U+1172B
+U+11F00
+U+11F01
+U+11F02
+U+11F03
+U+11F34
+U+11F35
+U+11F36
+U+11F37
+U+11F38
+U+11F39
+U+11F3A
+U+11F3E
+U+11F3F
+U+11F40
+U+11F41
+U+11F42
+U+11F5A
U+135D
U+135E
U+135F
+U+1611E
+U+1611F
+U+16120
+U+1612A
+U+1612B
+U+1612C
+U+1612D
+U+1612E
+U+1612F
U+16AF0
U+16AF1
U+16AF2
U+1B01
U+1B02
U+1B03
+U+1B04
U+1B34
+U+1B35
U+1B36
U+1B37
U+1B38
U+1B39
U+1B3A
+U+1B3B
U+1B3C
+U+1B3D
+U+1B3E
+U+1B3F
U+1B42
U+1B6B
U+1B6C
U+1CD0
U+1CD1
U+1CD2
-U+1CD3
U+1CD4
U+1CD5
U+1CD6
U+1CDE
U+1CDF
U+1CE0
+U+1CE1
U+1CE2
U+1CE3
U+1CE4
U+1DFD
U+1DFE
U+1DFF
+U+1E08F
+U+1E4EC
+U+1E4ED
+U+1E4EE
+U+1E4EF
U+1E8D0
U+1E8D1
U+1E8D2
U+A68A
U+A68B
U+A68C
+U+A68C
U+A68D
U+A68E
U+A68F
--- /dev/null
+
+U+2400
+U+2401
+U+2402
+U+2403
+U+2404
+U+2405
+U+2406
+U+2407
+U+2408
+U+2409
+U+240A
+U+240B
+U+240C
+U+240D
+U+240E
+U+240F
+U+2410
+U+2411
+U+2412
+U+2413
+U+2414
+U+2415
+U+2416
+U+2417
+U+2418
+U+2419
+U+241A
+U+241B
+U+241C
+U+241D
+U+241E
+U+241F
+U+2420
+U+2421
+U+2422
+U+2423
+U+2424
+U+2425
+U+2426
+U+2427
+U+2428
+U+2429
-U+0030
-U+0031
-U+0032
-U+0033
-U+0034
-U+0035
-U+0036
-U+0037
-U+0038
-U+0039
-U+0660
-U+0661
-U+0662
-U+0663
-U+0664
-U+0665
-U+0666
-U+0667
-U+0668
-U+0669
-U+06F0
-U+06F1
-U+06F2
-U+06F3
-U+06F4
-U+06F5
-U+06F6
-U+06F7
-U+06F8
-U+06F9
-U+07C0
-U+07C1
-U+07C2
-U+07C3
-U+07C4
-U+07C5
-U+07C6
-U+07C7
-U+07C8
-U+07C9
-U+0966
-U+0967
-U+0968
-U+0969
-U+096A
-U+096B
-U+096C
-U+096D
-U+096E
-U+096F
-U+09E6
-U+09E7
-U+09E8
-U+09E9
-U+09EA
-U+09EB
-U+09EC
-U+09ED
-U+09EE
-U+09EF
-U+0A66
-U+0A67
-U+0A68
-U+0A69
-U+0A6A
-U+0A6B
-U+0A6C
-U+0A6D
-U+0A6E
-U+0A6F
-U+0AE6
-U+0AE7
-U+0AE8
-U+0AE9
-U+0AEA
-U+0AEB
-U+0AEC
-U+0AED
-U+0AEE
-U+0AEF
-U+0B66
-U+0B67
-U+0B68
-U+0B69
-U+0B6A
-U+0B6B
-U+0B6C
-U+0B6D
-U+0B6E
-U+0B6F
-U+0BE6
-U+0BE7
-U+0BE8
-U+0BE9
-U+0BEA
-U+0BEB
-U+0BEC
-U+0BED
-U+0BEE
-U+0BEF
-U+0C66
-U+0C67
-U+0C68
-U+0C69
-U+0C6A
-U+0C6B
-U+0C6C
-U+0C6D
-U+0C6E
-U+0C6F
-U+0CE6
-U+0CE7
-U+0CE8
-U+0CE9
-U+0CEA
-U+0CEB
-U+0CEC
-U+0CED
-U+0CEE
-U+0CEF
-U+0D66
-U+0D67
-U+0D68
-U+0D69
-U+0D6A
-U+0D6B
-U+0D6C
-U+0D6D
-U+0D6E
-U+0D6F
-U+0DE6
-U+0DE7
-U+0DE8
-U+0DE9
-U+0DEA
-U+0DEB
-U+0DEC
-U+0DED
-U+0DEE
-U+0DEF
-U+0E50
-U+0E51
-U+0E52
-U+0E53
-U+0E54
-U+0E55
-U+0E56
-U+0E57
-U+0E58
-U+0E59
-U+0ED0
-U+0ED1
-U+0ED2
-U+0ED3
-U+0ED4
-U+0ED5
-U+0ED6
-U+0ED7
-U+0ED8
-U+0ED9
-U+0F20
-U+0F21
-U+0F22
-U+0F23
-U+0F24
-U+0F25
-U+0F26
-U+0F27
-U+0F28
-U+0F29
-U+1040
-U+1041
-U+1042
-U+1043
-U+1044
-U+1045
-U+1046
-U+1047
-U+1048
-U+1049
-U+1090
-U+1091
-U+1092
-U+1093
-U+1094
-U+1095
-U+1096
-U+1097
-U+1098
-U+1099
-U+17E0
-U+17E1
-U+17E2
-U+17E3
-U+17E4
-U+17E5
-U+17E6
-U+17E7
-U+17E8
-U+17E9
-U+1810
-U+1811
-U+1812
-U+1813
-U+1814
-U+1815
-U+1816
-U+1817
-U+1818
-U+1819
-U+1946
-U+1947
-U+1948
-U+1949
-U+194A
-U+194B
-U+194C
-U+194D
-U+194E
-U+194F
-U+19D0
-U+19D1
-U+19D2
-U+19D3
-U+19D4
-U+19D5
-U+19D6
-U+19D7
-U+19D8
-U+19D9
-U+1A80
-U+1A81
-U+1A82
-U+1A83
-U+1A84
-U+1A85
-U+1A86
-U+1A87
-U+1A88
-U+1A89
-U+1A90
-U+1A91
-U+1A92
-U+1A93
-U+1A94
-U+1A95
-U+1A96
-U+1A97
-U+1A98
-U+1A99
-U+1B50
-U+1B51
-U+1B52
-U+1B53
-U+1B54
-U+1B55
-U+1B56
-U+1B57
-U+1B58
-U+1B59
-U+1BB0
-U+1BB1
-U+1BB2
-U+1BB3
-U+1BB4
-U+1BB5
-U+1BB6
-U+1BB7
-U+1BB8
-U+1BB9
-U+1C40
-U+1C41
-U+1C42
-U+1C43
-U+1C44
-U+1C45
-U+1C46
-U+1C47
-U+1C48
-U+1C49
-U+1C50
-U+1C51
-U+1C52
-U+1C53
-U+1C54
-U+1C55
-U+1C56
-U+1C57
-U+1C58
-U+1C59
+U+0030
+U+0031
+U+0032
+U+0033
+U+0034
+U+0035
+U+0036
+U+0037
+U+0038
+U+0039
+U+0660
+U+0661
+U+0662
+U+0663
+U+0664
+U+0665
+U+0666
+U+0667
+U+0668
+U+0669
+U+06F0
+U+06F1
+U+06F2
+U+06F3
+U+06F4
+U+06F5
+U+06F6
+U+06F7
+U+06F8
+U+06F9
+U+07C0
+U+07C1
+U+07C2
+U+07C3
+U+07C4
+U+07C5
+U+07C6
+U+07C7
+U+07C8
+U+07C9
+U+0966
+U+0967
+U+0968
+U+0969
+U+096A
+U+096B
+U+096C
+U+096D
+U+096E
+U+096F
+U+09E6
+U+09E7
+U+09E8
+U+09E9
+U+09EA
+U+09EB
+U+09EC
+U+09ED
+U+09EE
+U+09EF
+U+0A66
+U+0A67
+U+0A68
+U+0A69
+U+0A6A
+U+0A6B
+U+0A6C
+U+0A6D
+U+0A6E
+U+0A6F
+U+0AE6
+U+0AE7
+U+0AE8
+U+0AE9
+U+0AEA
+U+0AEB
+U+0AEC
+U+0AED
+U+0AEE
+U+0AEF
+U+0B66
+U+0B67
+U+0B68
+U+0B69
+U+0B6A
+U+0B6B
+U+0B6C
+U+0B6D
+U+0B6E
+U+0B6F
+U+0BE6
+U+0BE7
+U+0BE8
+U+0BE9
+U+0BEA
+U+0BEB
+U+0BEC
+U+0BED
+U+0BEE
+U+0BEF
+U+0C66
+U+0C67
+U+0C68
+U+0C69
+U+0C6A
+U+0C6B
+U+0C6C
+U+0C6D
+U+0C6E
+U+0C6F
+U+0CE6
+U+0CE7
+U+0CE8
+U+0CE9
+U+0CEA
+U+0CEB
+U+0CEC
+U+0CED
+U+0CEE
+U+0CEF
+U+0D66
+U+0D67
+U+0D68
+U+0D69
+U+0D6A
+U+0D6B
+U+0D6C
+U+0D6D
+U+0D6E
+U+0D6F
+U+0DE6
+U+0DE7
+U+0DE8
+U+0DE9
+U+0DEA
+U+0DEB
+U+0DEC
+U+0DED
+U+0DEE
+U+0DEF
+U+0E50
+U+0E51
+U+0E52
+U+0E53
+U+0E54
+U+0E55
+U+0E56
+U+0E57
+U+0E58
+U+0E59
+U+0ED0
+U+0ED1
+U+0ED2
+U+0ED3
+U+0ED4
+U+0ED5
+U+0ED6
+U+0ED7
+U+0ED8
+U+0ED9
+U+0F20
+U+0F21
+U+0F22
+U+0F23
+U+0F24
+U+0F25
+U+0F26
+U+0F27
+U+0F28
+U+0F29
+U+1040
+U+1041
+U+1042
+U+1043
+U+1044
+U+1045
+U+1046
+U+1047
+U+1048
+U+1049
+U+1090
+U+1091
+U+1092
+U+1093
+U+1094
+U+1095
+U+1096
+U+1097
+U+1098
+U+1099
+U+17E0
+U+17E1
+U+17E2
+U+17E3
+U+17E4
+U+17E5
+U+17E6
+U+17E7
+U+17E8
+U+17E9
+U+1810
+U+1811
+U+1812
+U+1813
+U+1814
+U+1815
+U+1816
+U+1817
+U+1818
+U+1819
+U+1946
+U+1947
+U+1948
+U+1949
+U+194A
+U+194B
+U+194C
+U+194D
+U+194E
+U+194F
+U+19D0
+U+19D1
+U+19D2
+U+19D3
+U+19D4
+U+19D5
+U+19D6
+U+19D7
+U+19D8
+U+19D9
+U+1A80
+U+1A81
+U+1A82
+U+1A83
+U+1A84
+U+1A85
+U+1A86
+U+1A87
+U+1A88
+U+1A89
+U+1A90
+U+1A91
+U+1A92
+U+1A93
+U+1A94
+U+1A95
+U+1A96
+U+1A97
+U+1A98
+U+1A99
+U+1B50
+U+1B51
+U+1B52
+U+1B53
+U+1B54
+U+1B55
+U+1B56
+U+1B57
+U+1B58
+U+1B59
+U+1BB0
+U+1BB1
+U+1BB2
+U+1BB3
+U+1BB4
+U+1BB5
+U+1BB6
+U+1BB7
+U+1BB8
+U+1BB9
+U+1C40
+U+1C41
+U+1C42
+U+1C43
+U+1C44
+U+1C45
+U+1C46
+U+1C47
+U+1C48
+U+1C49
+U+1C50
+U+1C51
+U+1C52
+U+1C53
+U+1C54
+U+1C55
+U+1C56
+U+1C57
+U+1C58
+U+1C59
U+2160
U+2161
U+2162
U+2186
U+2187
U+2188
-U+A620
-U+A621
-U+A622
-U+A623
-U+A624
-U+A625
-U+A626
-U+A627
-U+A628
-U+A629
-U+A8D0
-U+A8D1
-U+A8D2
-U+A8D3
-U+A8D4
-U+A8D5
-U+A8D6
-U+A8D7
-U+A8D8
-U+A8D9
-U+A900
-U+A901
-U+A902
-U+A903
-U+A904
-U+A905
-U+A906
-U+A907
-U+A908
-U+A909
-U+A9D0
-U+A9D1
-U+A9D2
-U+A9D3
-U+A9D4
-U+A9D5
-U+A9D6
-U+A9D7
-U+A9D8
-U+A9D9
-U+A9F0
-U+A9F1
-U+A9F2
-U+A9F3
-U+A9F4
-U+A9F5
-U+A9F6
-U+A9F7
-U+A9F8
-U+A9F9
-U+AA50
-U+AA51
-U+AA52
-U+AA53
-U+AA54
-U+AA55
-U+AA56
-U+AA57
-U+AA58
-U+AA59
-U+ABF0
-U+ABF1
-U+ABF2
-U+ABF3
-U+ABF4
-U+ABF5
-U+ABF6
-U+ABF7
-U+ABF8
-U+ABF9
-U+FF10
-U+FF11
-U+FF12
-U+FF13
-U+FF14
-U+FF15
-U+FF16
-U+FF17
-U+FF18
-U+FF19
+U+A620
+U+A621
+U+A622
+U+A623
+U+A624
+U+A625
+U+A626
+U+A627
+U+A628
+U+A629
+U+A8D0
+U+A8D1
+U+A8D2
+U+A8D3
+U+A8D4
+U+A8D5
+U+A8D6
+U+A8D7
+U+A8D8
+U+A8D9
+U+A900
+U+A901
+U+A902
+U+A903
+U+A904
+U+A905
+U+A906
+U+A907
+U+A908
+U+A909
+U+A9D0
+U+A9D1
+U+A9D2
+U+A9D3
+U+A9D4
+U+A9D5
+U+A9D6
+U+A9D7
+U+A9D8
+U+A9D9
+U+A9F0
+U+A9F1
+U+A9F2
+U+A9F3
+U+A9F4
+U+A9F5
+U+A9F6
+U+A9F7
+U+A9F8
+U+A9F9
+U+AA50
+U+AA51
+U+AA52
+U+AA53
+U+AA54
+U+AA55
+U+AA56
+U+AA57
+U+AA58
+U+AA59
+U+ABF0
+U+ABF1
+U+ABF2
+U+ABF3
+U+ABF4
+U+ABF5
+U+ABF6
+U+ABF7
+U+ABF8
+U+ABF9
+U+FF10
+U+FF11
+U+FF12
+U+FF13
+U+FF14
+U+FF15
+U+FF16
+U+FF17
+U+FF18
+U+FF19
U+104A0
U+104A1
U+104A2
U+1E4F7
U+1E4F8
U+1E4F9
+U+10D40
+U+10D41
+U+10D42
+U+10D43
+U+10D44
+U+10D45
+U+10D46
+U+10D47
+U+10D48
+U+10D49
+U+116D0
+U+116D1
+U+116D2
+U+116D3
+U+116D4
+U+116D5
+U+116D6
+U+116D7
+U+116D8
+U+116D9
+U+116DA
+U+116DB
+U+116DC
+U+116DD
+U+116DE
+U+116DF
+U+116E0
+U+116E1
+U+116E2
+U+116E3
+U+11BF0
+U+11BF1
+U+11BF2
+U+11BF3
+U+11BF4
+U+11BF5
+U+11BF6
+U+11BF7
+U+11BF8
+U+11BF9
+U+16130
+U+16131
+U+16132
+U+16133
+U+16134
+U+16135
+U+16136
+U+16137
+U+16138
+U+16139
+U+16D70
+U+16D71
+U+16D72
+U+16D73
+U+16D74
+U+16D75
+U+16D76
+U+16D77
+U+16D78
+U+16D79
+U+1E5F1
+U+1E5F2
+U+1E5F3
+U+1E5F4
+U+1E5F5
+U+1E5F6
+U+1E5F7
+U+1E5F8
+U+1E5F9
+U+1E5FA
U+00A9
U+00AE
U+1F004
-U+1F0CF
+U+1F0CF
U+1F170
U+1F171
U+1F17F
U+1FA86
U+1FA87
U+1FA88
+U+1FA89
+U+1FA8F
U+1FA90
U+1FA91
U+1FA92
U+1FABB
U+1FABC
U+1FABD
+U+1FABE
U+1FABF
U+1FAC0
U+1FAC1
U+1FAC3
U+1FAC4
U+1FAC5
+U+1FAC6
U+1FACE
U+1FACF
U+1FAD0
U+0037
U+0038
U+0039
+U+00B2
+U+00B3
+U+00B9
+U+00BC
+U+00BD
+U+00BE
U+0660
U+0661
U+0662
U+09ED
U+09EE
U+09EF
+U+09F4
+U+09F5
+U+09F6
+U+09F7
+U+09F8
+U+09F9
U+0A66
U+0A67
U+0A68
U+0B6D
U+0B6E
U+0B6F
+U+0B72
+U+0B73
+U+0B74
+U+0B75
+U+0B76
+U+0B77
U+0BE6
U+0BE7
U+0BE8
U+0BED
U+0BEE
U+0BEF
+U+0BF0
+U+0BF1
+U+0BF2
U+0C66
U+0C67
U+0C68
U+0C6D
U+0C6E
U+0C6F
+U+0C78
+U+0C79
+U+0C7A
+U+0C7B
+U+0C7C
+U+0C7D
+U+0C7E
U+0CE6
U+0CE7
U+0CE8
U+0CED
U+0CEE
U+0CEF
+U+0D58
+U+0D59
+U+0D5A
+U+0D5B
+U+0D5C
+U+0D5D
+U+0D5E
U+0D66
U+0D67
U+0D68
U+0D6D
U+0D6E
U+0D6F
+U+0D70
+U+0D71
+U+0D72
+U+0D73
+U+0D74
+U+0D75
+U+0D76
+U+0D77
+U+0D78
U+0DE6
U+0DE7
U+0DE8
U+0F27
U+0F28
U+0F29
+U+0F2A
+U+0F2B
+U+0F2C
+U+0F2D
+U+0F2E
+U+0F2F
+U+0F30
+U+0F31
+U+0F32
+U+0F33
+U+10107
+U+10108
+U+10109
+U+1010A
+U+1010B
+U+1010C
+U+1010D
+U+1010E
+U+1010F
+U+10110
+U+10111
+U+10112
+U+10113
+U+10114
+U+10115
+U+10116
+U+10117
+U+10118
+U+10119
+U+1011A
+U+1011B
+U+1011C
+U+1011D
+U+1011E
+U+1011F
+U+10120
+U+10121
+U+10122
+U+10123
+U+10124
+U+10125
+U+10126
+U+10127
+U+10128
+U+10129
+U+1012A
+U+1012B
+U+1012C
+U+1012D
+U+1012E
+U+1012F
+U+10130
+U+10131
+U+10132
+U+10133
+U+10140
+U+10141
+U+10142
+U+10143
+U+10144
+U+10145
+U+10146
+U+10147
+U+10148
+U+10149
+U+1014A
+U+1014B
+U+1014C
+U+1014D
+U+1014E
+U+1014F
+U+10150
+U+10151
+U+10152
+U+10153
+U+10154
+U+10155
+U+10156
+U+10157
+U+10158
+U+10159
+U+1015A
+U+1015B
+U+1015C
+U+1015D
+U+1015E
+U+1015F
+U+10160
+U+10161
+U+10162
+U+10163
+U+10164
+U+10165
+U+10166
+U+10167
+U+10168
+U+10169
+U+1016A
+U+1016B
+U+1016C
+U+1016D
+U+1016E
+U+1016F
+U+10170
+U+10171
+U+10172
+U+10173
+U+10174
+U+10175
+U+10176
+U+10177
+U+10178
+U+1018A
+U+1018B
+U+102E1
+U+102E2
+U+102E3
+U+102E4
+U+102E5
+U+102E6
+U+102E7
+U+102E8
+U+102E9
+U+102EA
+U+102EB
+U+102EC
+U+102ED
+U+102EE
+U+102EF
+U+102F0
+U+102F1
+U+102F2
+U+102F3
+U+102F4
+U+102F5
+U+102F6
+U+102F7
+U+102F8
+U+102F9
+U+102FA
+U+102FB
+U+10320
+U+10321
+U+10322
+U+10323
+U+10341
+U+1034A
+U+103D1
+U+103D2
+U+103D3
+U+103D4
+U+103D5
U+1040
U+1041
U+1042
U+1047
U+1048
U+1049
+U+104A0
+U+104A1
+U+104A2
+U+104A3
+U+104A4
+U+104A5
+U+104A6
+U+104A7
+U+104A8
+U+104A9
+U+10858
+U+10859
+U+1085A
+U+1085B
+U+1085C
+U+1085D
+U+1085E
+U+1085F
+U+10879
+U+1087A
+U+1087B
+U+1087C
+U+1087D
+U+1087E
+U+1087F
+U+108A7
+U+108A8
+U+108A9
+U+108AA
+U+108AB
+U+108AC
+U+108AD
+U+108AE
+U+108AF
+U+108FB
+U+108FC
+U+108FD
+U+108FE
+U+108FF
U+1090
U+1091
+U+10916
+U+10917
+U+10918
+U+10919
+U+1091A
+U+1091B
U+1092
U+1093
U+1094
U+1097
U+1098
U+1099
-U+17E0
-U+17E1
-U+17E2
-U+17E3
-U+17E4
-U+17E5
-U+17E6
-U+17E7
-U+17E8
-U+17E9
-U+1810
-U+1811
-U+1812
-U+1813
-U+1814
-U+1815
-U+1816
-U+1817
-U+1818
-U+1819
-U+1946
-U+1947
-U+1948
-U+1949
-U+194A
-U+194B
-U+194C
-U+194D
-U+194E
-U+194F
-U+19D0
-U+19D1
-U+19D2
-U+19D3
-U+19D4
-U+19D5
-U+19D6
-U+19D7
-U+19D8
-U+19D9
-U+1A80
-U+1A81
-U+1A82
-U+1A83
-U+1A84
-U+1A85
-U+1A86
-U+1A87
-U+1A88
-U+1A89
-U+1A90
-U+1A91
-U+1A92
-U+1A93
-U+1A94
-U+1A95
-U+1A96
-U+1A97
-U+1A98
-U+1A99
-U+1B50
-U+1B51
-U+1B52
-U+1B53
-U+1B54
-U+1B55
-U+1B56
-U+1B57
-U+1B58
-U+1B59
-U+1BB0
-U+1BB1
-U+1BB2
-U+1BB3
-U+1BB4
-U+1BB5
-U+1BB6
-U+1BB7
-U+1BB8
-U+1BB9
-U+1C40
-U+1C41
-U+1C42
-U+1C43
-U+1C44
-U+1C45
-U+1C46
-U+1C47
-U+1C48
-U+1C49
-U+1C50
-U+1C51
-U+1C52
-U+1C53
-U+1C54
-U+1C55
-U+1C56
-U+1C57
-U+1C58
-U+1C59
-U+2160
-U+2161
-U+2162
-U+2163
-U+2164
-U+2165
-U+2166
-U+2167
-U+2168
-U+2169
-U+216A
-U+216B
-U+216C
-U+216D
-U+216E
-U+216F
-U+2170
-U+2171
-U+2172
-U+2173
-U+2174
-U+2175
-U+2176
-U+2177
-U+2178
-U+2179
-U+217A
-U+217B
-U+217C
-U+217D
-U+217E
-U+217F
-U+2180
-U+2181
-U+2182
-U+2183
-U+2184
-U+2185
-U+2186
-U+2187
-U+2188
-U+A620
-U+A621
-U+A622
-U+A623
-U+A624
-U+A625
-U+A626
-U+A627
-U+A628
-U+A629
-U+A8D0
-U+A8D1
-U+A8D2
-U+A8D3
-U+A8D4
-U+A8D5
-U+A8D6
-U+A8D7
-U+A8D8
-U+A8D9
-U+A900
-U+A901
-U+A902
-U+A903
-U+A904
-U+A905
-U+A906
-U+A907
-U+A908
-U+A909
-U+A9D0
-U+A9D1
-U+A9D2
-U+A9D3
-U+A9D4
-U+A9D5
-U+A9D6
-U+A9D7
-U+A9D8
-U+A9D9
-U+A9F0
-U+A9F1
-U+A9F2
-U+A9F3
-U+A9F4
-U+A9F5
-U+A9F6
-U+A9F7
-U+A9F8
-U+A9F9
-U+AA50
-U+AA51
-U+AA52
-U+AA53
-U+AA54
-U+AA55
-U+AA56
-U+AA57
-U+AA58
-U+AA59
-U+ABF0
-U+ABF1
-U+ABF2
-U+ABF3
-U+ABF4
-U+ABF5
-U+ABF6
-U+ABF7
-U+ABF8
-U+ABF9
-U+FF10
-U+FF11
-U+FF12
-U+FF13
-U+FF14
-U+FF15
-U+FF16
-U+FF17
-U+FF18
-U+FF19
-U+104A0
-U+104A1
-U+104A2
-U+104A3
-U+104A4
-U+104A5
-U+104A6
-U+104A7
-U+104A8
-U+104A9
-U+10D30
-U+10D31
-U+10D32
-U+10D33
-U+10D34
-U+10D35
-U+10D36
-U+10D37
-U+10D38
-U+10D39
-U+11066
-U+11067
-U+11068
-U+11069
-U+1106A
-U+1106B
-U+1106C
-U+1106D
-U+1106E
-U+1106F
-U+110F0
-U+110F1
-U+110F2
-U+110F3
-U+110F4
-U+110F5
-U+110F6
-U+110F7
-U+110F8
-U+110F9
-U+11136
-U+11137
-U+11138
-U+11139
-U+1113A
-U+1113B
-U+1113C
-U+1113D
-U+1113E
-U+1113F
-U+111D0
-U+111D1
-U+111D2
-U+111D3
-U+111D4
-U+111D5
-U+111D6
-U+111D7
-U+111D8
-U+111D9
-U+112F0
-U+112F1
-U+112F2
-U+112F3
-U+112F4
-U+112F5
-U+112F6
-U+112F7
-U+112F8
-U+112F9
-U+11450
-U+11451
-U+11452
-U+11453
-U+11454
-U+11455
-U+11456
-U+11457
-U+11458
-U+11459
-U+114D0
-U+114D1
-U+114D2
-U+114D3
-U+114D4
-U+114D5
-U+114D6
-U+114D7
-U+114D8
-U+114D9
-U+11650
-U+11651
-U+11652
-U+11653
-U+11654
-U+11655
-U+11656
-U+11657
-U+11658
-U+11659
-U+116C0
-U+116C1
-U+116C2
-U+116C3
-U+116C4
-U+116C5
-U+116C6
-U+116C7
-U+116C8
-U+116C9
-U+11730
-U+11731
-U+11732
-U+11733
-U+11734
-U+11735
-U+11736
-U+11737
-U+11738
-U+11739
-U+118E0
-U+118E1
-U+118E2
-U+118E3
-U+118E4
-U+118E5
-U+118E6
-U+118E7
-U+118E8
-U+118E9
-U+11950
-U+11951
-U+11952
-U+11953
-U+11954
-U+11955
-U+11956
-U+11957
-U+11958
-U+11959
-U+11C50
-U+11C51
-U+11C52
-U+11C53
-U+11C54
-U+11C55
-U+11C56
-U+11C57
-U+11C58
-U+11C59
-U+11D50
-U+11D51
-U+11D52
-U+11D53
-U+11D54
-U+11D55
-U+11D56
-U+11D57
-U+11D58
-U+11D59
-U+11DA0
-U+11DA1
-U+11DA2
-U+11DA3
-U+11DA4
-U+11DA5
-U+11DA6
-U+11DA7
-U+11DA8
-U+11DA9
-U+16A60
-U+16A61
-U+16A62
-U+16A63
-U+16A64
-U+16A65
-U+16A66
-U+16A67
-U+16A68
-U+16A69
-U+16AC0
-U+16AC1
-U+16AC2
-U+16AC3
-U+16AC4
-U+16AC5
-U+16AC6
-U+16AC7
-U+16AC8
-U+16AC9
-U+16B50
-U+16B51
-U+16B52
-U+16B53
-U+16B54
-U+16B55
-U+16B56
-U+16B57
-U+16B58
-U+16B59
-U+1D7CE
-U+1D7CF
-U+1D7D0
-U+1D7D1
-U+1D7D2
-U+1D7D3
-U+1D7D4
-U+1D7D5
-U+1D7D6
-U+1D7D7
-U+1D7D8
-U+1D7D9
-U+1D7DA
-U+1D7DB
-U+1D7DC
-U+1D7DD
-U+1D7DE
-U+1D7DF
-U+1D7E0
-U+1D7E1
-U+1D7E2
-U+1D7E3
-U+1D7E4
-U+1D7E5
-U+1D7E6
-U+1D7E7
-U+1D7E8
-U+1D7E9
-U+1D7EA
-U+1D7EB
-U+1D7EC
-U+1D7ED
-U+1D7EE
-U+1D7EF
-U+1D7F0
-U+1D7F1
-U+1D7F2
-U+1D7F3
-U+1D7F4
-U+1D7F5
-U+1D7F6
-U+1D7F7
-U+1D7F8
-U+1D7F9
-U+1D7FA
-U+1D7FB
-U+1D7FC
-U+1D7FD
-U+1D7FE
-U+1D7FF
-U+1E140
-U+1E141
-U+1E142
-U+1E143
-U+1E144
-U+1E145
-U+1E146
-U+1E147
-U+1E148
-U+1E149
-U+1E2F0
-U+1E2F1
-U+1E2F2
-U+1E2F3
-U+1E2F4
-U+1E2F5
-U+1E2F6
-U+1E2F7
-U+1E2F8
-U+1E2F9
-U+1E950
-U+1E951
-U+1E952
-U+1E953
-U+1E954
-U+1E955
-U+1E956
-U+1E957
-U+1E958
-U+1E959
-U+1FBF0
-U+1FBF1
-U+1FBF2
-U+1FBF3
-U+1FBF4
-U+1FBF5
-U+1FBF6
-U+1FBF7
-U+1FBF8
-U+1FBF9
-U+16EE
-U+16EF
-U+16F0
-U+2160
-U+2161
-U+2162
-U+2163
-U+2164
-U+2165
-U+2166
-U+2167
-U+2168
-U+2169
-U+216A
-U+216B
-U+216C
-U+216D
-U+216E
-U+216F
-U+2170
-U+2171
-U+2172
-U+2173
-U+2174
-U+2175
-U+2176
-U+2177
-U+2178
-U+2179
-U+217A
-U+217B
-U+217C
-U+217D
-U+217E
-U+217F
-U+2180
-U+2181
-U+2182
-U+2185
-U+2186
-U+2187
-U+2188
-U+3007
-U+3021
-U+3022
-U+3023
-U+3024
-U+3025
-U+3026
-U+3027
-U+3028
-U+3029
-U+3038
-U+3039
-U+303A
-U+A6E6
-U+A6E7
-U+A6E8
-U+A6E9
-U+A6EA
-U+A6EB
-U+A6EC
-U+A6ED
-U+A6EE
-U+A6EF
-U+10140
-U+10141
-U+10142
-U+10143
-U+10144
-U+10145
-U+10146
-U+10147
-U+10148
-U+10149
-U+1014A
-U+1014B
-U+1014C
-U+1014D
-U+1014E
-U+1014F
-U+10150
-U+10151
-U+10152
-U+10153
-U+10154
-U+10155
-U+10156
-U+10157
-U+10158
-U+10159
-U+1015A
-U+1015B
-U+1015C
-U+1015D
-U+1015E
-U+1015F
-U+10160
-U+10161
-U+10162
-U+10163
-U+10164
-U+10165
-U+10166
-U+10167
-U+10168
-U+10169
-U+1016A
-U+1016B
-U+1016C
-U+1016D
-U+1016E
-U+1016F
-U+10170
-U+10171
-U+10172
-U+10173
-U+10174
-U+10341
-U+1034A
-U+103D1
-U+103D2
-U+103D3
-U+103D4
-U+103D5
-U+12400
-U+12401
-U+12402
-U+12403
-U+12404
-U+12405
-U+12406
-U+12407
-U+12408
-U+12409
-U+1240A
-U+1240B
-U+1240C
-U+1240D
-U+1240E
-U+1240F
-U+12410
-U+12411
-U+12412
-U+12413
-U+12414
-U+12415
-U+12416
-U+12417
-U+12418
-U+12419
-U+1241A
-U+1241B
-U+1241C
-U+1241D
-U+1241E
-U+1241F
-U+12420
-U+12421
-U+12422
-U+12423
-U+12424
-U+12425
-U+12426
-U+12427
-U+12428
-U+12429
-U+1242A
-U+1242B
-U+1242C
-U+1242D
-U+1242E
-U+1242F
-U+12430
-U+12431
-U+12432
-U+12433
-U+12434
-U+12435
-U+12436
-U+12437
-U+12438
-U+12439
-U+1243A
-U+1243B
-U+1243C
-U+1243D
-U+1243E
-U+1243F
-U+12440
-U+12441
-U+12442
-U+12443
-U+12444
-U+12445
-U+12446
-U+12447
-U+12448
-U+12449
-U+1244A
-U+1244B
-U+1244C
-U+1244D
-U+1244E
-U+1244F
-U+12450
-U+12451
-U+12452
-U+12453
-U+12454
-U+12455
-U+12456
-U+12457
-U+12458
-U+12459
-U+1245A
-U+1245B
-U+1245C
-U+1245D
-U+1245E
-U+1245F
-U+12460
-U+12461
-U+12462
-U+12463
-U+12464
-U+12465
-U+12466
-U+12467
-U+12468
-U+12469
-U+1246A
-U+1246B
-U+1246C
-U+1246D
-U+1246E
-U+00B2
-U+00B3
-U+00B9
-U+00BC
-U+00BD
-U+00BE
-U+09F4
-U+09F5
-U+09F6
-U+09F7
-U+09F8
-U+09F9
-U+0B72
-U+0B73
-U+0B74
-U+0B75
-U+0B76
-U+0B77
-U+0BF0
-U+0BF1
-U+0BF2
-U+0C78
-U+0C79
-U+0C7A
-U+0C7B
-U+0C7C
-U+0C7D
-U+0C7E
-U+0D58
-U+0D59
-U+0D5A
-U+0D5B
-U+0D5C
-U+0D5D
-U+0D5E
-U+0D70
-U+0D71
-U+0D72
-U+0D73
-U+0D74
-U+0D75
-U+0D76
-U+0D77
-U+0D78
-U+0F2A
-U+0F2B
-U+0F2C
-U+0F2D
-U+0F2E
-U+0F2F
-U+0F30
-U+0F31
-U+0F32
-U+0F33
-U+1369
-U+136A
-U+136B
-U+136C
-U+136D
-U+136E
-U+136F
-U+1370
-U+1371
-U+1372
-U+1373
-U+1374
-U+1375
-U+1376
-U+1377
-U+1378
-U+1379
-U+137A
-U+137B
-U+137C
-U+17F0
-U+17F1
-U+17F2
-U+17F3
-U+17F4
-U+17F5
-U+17F6
-U+17F7
-U+17F8
-U+17F9
-U+19DA
-U+2070
-U+2074
-U+2075
-U+2076
-U+2077
-U+2078
-U+2079
-U+2080
-U+2081
-U+2082
-U+2083
-U+2084
-U+2085
-U+2086
-U+2087
-U+2088
-U+2089
-U+2150
-U+2151
-U+2152
-U+2153
-U+2154
-U+2155
-U+2156
-U+2157
-U+2158
-U+2159
-U+215A
-U+215B
-U+215C
-U+215D
-U+215E
-U+215F
-U+2189
-U+2460
-U+2461
-U+2462
-U+2463
-U+2464
-U+2465
-U+2466
-U+2467
-U+2468
-U+2469
-U+246A
-U+246B
-U+246C
-U+246D
-U+246E
-U+246F
-U+2470
-U+2471
-U+2472
-U+2473
-U+2474
-U+2475
-U+2476
-U+2477
-U+2478
-U+2479
-U+247A
-U+247B
-U+247C
-U+247D
-U+247E
-U+247F
-U+2480
-U+2481
-U+2482
-U+2483
-U+2484
-U+2485
-U+2486
-U+2487
-U+2488
-U+2489
-U+248A
-U+248B
-U+248C
-U+248D
-U+248E
-U+248F
-U+2490
-U+2491
-U+2492
-U+2493
-U+2494
-U+2495
-U+2496
-U+2497
-U+2498
-U+2499
-U+249A
-U+249B
-U+24EA
-U+24EB
-U+24EC
-U+24ED
-U+24EE
-U+24EF
-U+24F0
-U+24F1
-U+24F2
-U+24F3
-U+24F4
-U+24F5
-U+24F6
-U+24F7
-U+24F8
-U+24F9
-U+24FA
-U+24FB
-U+24FC
-U+24FD
-U+24FE
-U+24FF
-U+2776
-U+2777
-U+2778
-U+2779
-U+277A
-U+277B
-U+277C
-U+277D
-U+277E
-U+277F
-U+2780
-U+2781
-U+2782
-U+2783
-U+2784
-U+2785
-U+2786
-U+2787
-U+2788
-U+2789
-U+278A
-U+278B
-U+278C
-U+278D
-U+278E
-U+278F
-U+2790
-U+2791
-U+2792
-U+2793
-U+2CFD
-U+3192
-U+3193
-U+3194
-U+3195
-U+3220
-U+3221
-U+3222
-U+3223
-U+3224
-U+3225
-U+3226
-U+3227
-U+3228
-U+3229
-U+3248
-U+3249
-U+324A
-U+324B
-U+324C
-U+324D
-U+324E
-U+324F
-U+3251
-U+3252
-U+3253
-U+3254
-U+3255
-U+3256
-U+3257
-U+3258
-U+3259
-U+325A
-U+325B
-U+325C
-U+325D
-U+325E
-U+325F
-U+3280
-U+3281
-U+3282
-U+3283
-U+3284
-U+3285
-U+3286
-U+3287
-U+3288
-U+3289
-U+32B1
-U+32B2
-U+32B3
-U+32B4
-U+32B5
-U+32B6
-U+32B7
-U+32B8
-U+32B9
-U+32BA
-U+32BB
-U+32BC
-U+32BD
-U+32BE
-U+32BF
-U+A830
-U+A831
-U+A832
-U+A833
-U+A834
-U+A835
-U+10107
-U+10108
-U+10109
-U+1010A
-U+1010B
-U+1010C
-U+1010D
-U+1010E
-U+1010F
-U+10110
-U+10111
-U+10112
-U+10113
-U+10114
-U+10115
-U+10116
-U+10117
-U+10118
-U+10119
-U+1011A
-U+1011B
-U+1011C
-U+1011D
-U+1011E
-U+1011F
-U+10120
-U+10121
-U+10122
-U+10123
-U+10124
-U+10125
-U+10126
-U+10127
-U+10128
-U+10129
-U+1012A
-U+1012B
-U+1012C
-U+1012D
-U+1012E
-U+1012F
-U+10130
-U+10131
-U+10132
-U+10133
-U+10175
-U+10176
-U+10177
-U+10178
-U+1018A
-U+1018B
-U+102E1
-U+102E2
-U+102E3
-U+102E4
-U+102E5
-U+102E6
-U+102E7
-U+102E8
-U+102E9
-U+102EA
-U+102EB
-U+102EC
-U+102ED
-U+102EE
-U+102EF
-U+102F0
-U+102F1
-U+102F2
-U+102F3
-U+102F4
-U+102F5
-U+102F6
-U+102F7
-U+102F8
-U+102F9
-U+102FA
-U+102FB
-U+10320
-U+10321
-U+10322
-U+10323
-U+10858
-U+10859
-U+1085A
-U+1085B
-U+1085C
-U+1085D
-U+1085E
-U+1085F
-U+10879
-U+1087A
-U+1087B
-U+1087C
-U+1087D
-U+1087E
-U+1087F
-U+108A7
-U+108A8
-U+108A9
-U+108AA
-U+108AB
-U+108AC
-U+108AD
-U+108AE
-U+108AF
-U+108FB
-U+108FC
-U+108FD
-U+108FE
-U+108FF
-U+10916
-U+10917
-U+10918
-U+10919
-U+1091A
-U+1091B
U+109BC
U+109BD
U+109C0
U+10CFD
U+10CFE
U+10CFF
+U+10D30
+U+10D31
+U+10D32
+U+10D33
+U+10D34
+U+10D35
+U+10D36
+U+10D37
+U+10D38
+U+10D39
+U+10D40
+U+10D41
+U+10D42
+U+10D43
+U+10D44
+U+10D45
+U+10D46
+U+10D47
+U+10D48
+U+10D49
U+10E60
U+10E61
U+10E62
U+11063
U+11064
U+11065
+U+11066
+U+11067
+U+11068
+U+11069
+U+1106A
+U+1106B
+U+1106C
+U+1106D
+U+1106E
+U+1106F
+U+110F0
+U+110F1
+U+110F2
+U+110F3
+U+110F4
+U+110F5
+U+110F6
+U+110F7
+U+110F8
+U+110F9
+U+11136
+U+11137
+U+11138
+U+11139
+U+1113A
+U+1113B
+U+1113C
+U+1113D
+U+1113E
+U+1113F
+U+111D0
+U+111D1
+U+111D2
+U+111D3
+U+111D4
+U+111D5
+U+111D6
+U+111D7
+U+111D8
+U+111D9
U+111E1
U+111E2
U+111E3
U+111F2
U+111F3
U+111F4
+U+112F0
+U+112F1
+U+112F2
+U+112F3
+U+112F4
+U+112F5
+U+112F6
+U+112F7
+U+112F8
+U+112F9
+U+11450
+U+11451
+U+11452
+U+11453
+U+11454
+U+11455
+U+11456
+U+11457
+U+11458
+U+11459
+U+114D0
+U+114D1
+U+114D2
+U+114D3
+U+114D4
+U+114D5
+U+114D6
+U+114D7
+U+114D8
+U+114D9
+U+11650
+U+11651
+U+11652
+U+11653
+U+11654
+U+11655
+U+11656
+U+11657
+U+11658
+U+11659
+U+116C0
+U+116C1
+U+116C2
+U+116C3
+U+116C4
+U+116C5
+U+116C6
+U+116C7
+U+116C8
+U+116C9
+U+116D0
+U+116D1
+U+116D2
+U+116D3
+U+116D4
+U+116D5
+U+116D6
+U+116D7
+U+116D8
+U+116D9
+U+116DA
+U+116DB
+U+116DC
+U+116DD
+U+116DE
+U+116DF
+U+116E0
+U+116E1
+U+116E2
+U+116E3
+U+11730
+U+11731
+U+11732
+U+11733
+U+11734
+U+11735
+U+11736
+U+11737
+U+11738
+U+11739
U+1173A
U+1173B
+U+118E0
+U+118E1
+U+118E2
+U+118E3
+U+118E4
+U+118E5
+U+118E6
+U+118E7
+U+118E8
+U+118E9
U+118EA
U+118EB
U+118EC
U+118F0
U+118F1
U+118F2
+U+11950
+U+11951
+U+11952
+U+11953
+U+11954
+U+11955
+U+11956
+U+11957
+U+11958
+U+11959
+U+11BF0
+U+11BF1
+U+11BF2
+U+11BF3
+U+11BF4
+U+11BF5
+U+11BF6
+U+11BF7
+U+11BF8
+U+11BF9
+U+11C50
+U+11C51
+U+11C52
+U+11C53
+U+11C54
+U+11C55
+U+11C56
+U+11C57
+U+11C58
+U+11C59
U+11C5A
U+11C5B
U+11C5C
U+11C6A
U+11C6B
U+11C6C
+U+11D50
+U+11D51
+U+11D52
+U+11D53
+U+11D54
+U+11D55
+U+11D56
+U+11D57
+U+11D58
+U+11D59
+U+11DA0
+U+11DA1
+U+11DA2
+U+11DA3
+U+11DA4
+U+11DA5
+U+11DA6
+U+11DA7
+U+11DA8
+U+11DA9
U+11FC0
U+11FC1
U+11FC2
U+11FD2
U+11FD3
U+11FD4
+U+12400
+U+12401
+U+12402
+U+12403
+U+12404
+U+12405
+U+12406
+U+12407
+U+12408
+U+12409
+U+1240A
+U+1240B
+U+1240C
+U+1240D
+U+1240E
+U+1240F
+U+12410
+U+12411
+U+12412
+U+12413
+U+12414
+U+12415
+U+12416
+U+12417
+U+12418
+U+12419
+U+1241A
+U+1241B
+U+1241C
+U+1241D
+U+1241E
+U+1241F
+U+12420
+U+12421
+U+12422
+U+12423
+U+12424
+U+12425
+U+12426
+U+12427
+U+12428
+U+12429
+U+1242A
+U+1242B
+U+1242C
+U+1242D
+U+1242E
+U+1242F
+U+12430
+U+12431
+U+12432
+U+12433
+U+12434
+U+12435
+U+12436
+U+12437
+U+12438
+U+12439
+U+1243A
+U+1243B
+U+1243C
+U+1243D
+U+1243E
+U+1243F
+U+12440
+U+12441
+U+12442
+U+12443
+U+12444
+U+12445
+U+12446
+U+12447
+U+12448
+U+12449
+U+1244A
+U+1244B
+U+1244C
+U+1244D
+U+1244E
+U+1244F
+U+12450
+U+12451
+U+12452
+U+12453
+U+12454
+U+12455
+U+12456
+U+12457
+U+12458
+U+12459
+U+1245A
+U+1245B
+U+1245C
+U+1245D
+U+1245E
+U+1245F
+U+12460
+U+12461
+U+12462
+U+12463
+U+12464
+U+12465
+U+12466
+U+12467
+U+12468
+U+12469
+U+1246A
+U+1246B
+U+1246C
+U+1246D
+U+1246E
+U+1369
+U+136A
+U+136B
+U+136C
+U+136D
+U+136E
+U+136F
+U+1370
+U+1371
+U+1372
+U+1373
+U+1374
+U+1375
+U+1376
+U+1377
+U+1378
+U+1379
+U+137A
+U+137B
+U+137C
+U+16130
+U+16131
+U+16132
+U+16133
+U+16134
+U+16135
+U+16136
+U+16137
+U+16138
+U+16139
+U+16A60
+U+16A61
+U+16A62
+U+16A63
+U+16A64
+U+16A65
+U+16A66
+U+16A67
+U+16A68
+U+16A69
+U+16AC0
+U+16AC1
+U+16AC2
+U+16AC3
+U+16AC4
+U+16AC5
+U+16AC6
+U+16AC7
+U+16AC8
+U+16AC9
+U+16B50
+U+16B51
+U+16B52
+U+16B53
+U+16B54
+U+16B55
+U+16B56
+U+16B57
+U+16B58
+U+16B59
U+16B5B
U+16B5C
U+16B5D
U+16B5F
U+16B60
U+16B61
+U+16D70
+U+16D71
+U+16D72
+U+16D73
+U+16D74
+U+16D75
+U+16D76
+U+16D77
+U+16D78
+U+16D79
U+16E80
U+16E81
U+16E82
U+16E94
U+16E95
U+16E96
+U+16EE
+U+16EF
+U+16F0
+U+17E0
+U+17E1
+U+17E2
+U+17E3
+U+17E4
+U+17E5
+U+17E6
+U+17E7
+U+17E8
+U+17E9
+U+17F0
+U+17F1
+U+17F2
+U+17F3
+U+17F4
+U+17F5
+U+17F6
+U+17F7
+U+17F8
+U+17F9
+U+1810
+U+1811
+U+1812
+U+1813
+U+1814
+U+1815
+U+1816
+U+1817
+U+1818
+U+1819
+U+1946
+U+1947
+U+1948
+U+1949
+U+194A
+U+194B
+U+194C
+U+194D
+U+194E
+U+194F
+U+19D0
+U+19D1
+U+19D2
+U+19D3
+U+19D4
+U+19D5
+U+19D6
+U+19D7
+U+19D8
+U+19D9
+U+19DA
+U+1A80
+U+1A81
+U+1A82
+U+1A83
+U+1A84
+U+1A85
+U+1A86
+U+1A87
+U+1A88
+U+1A89
+U+1A90
+U+1A91
+U+1A92
+U+1A93
+U+1A94
+U+1A95
+U+1A96
+U+1A97
+U+1A98
+U+1A99
+U+1B50
+U+1B51
+U+1B52
+U+1B53
+U+1B54
+U+1B55
+U+1B56
+U+1B57
+U+1B58
+U+1B59
+U+1BB0
+U+1BB1
+U+1BB2
+U+1BB3
+U+1BB4
+U+1BB5
+U+1BB6
+U+1BB7
+U+1BB8
+U+1BB9
+U+1C40
+U+1C41
+U+1C42
+U+1C43
+U+1C44
+U+1C45
+U+1C46
+U+1C47
+U+1C48
+U+1C49
+U+1C50
+U+1C51
+U+1C52
+U+1C53
+U+1C54
+U+1C55
+U+1C56
+U+1C57
+U+1C58
+U+1C59
U+1D2E0
U+1D2E1
U+1D2E2
U+1D376
U+1D377
U+1D378
+U+1D7CE
+U+1D7CF
+U+1D7D0
+U+1D7D1
+U+1D7D2
+U+1D7D3
+U+1D7D4
+U+1D7D5
+U+1D7D6
+U+1D7D7
+U+1D7D8
+U+1D7D9
+U+1D7DA
+U+1D7DB
+U+1D7DC
+U+1D7DD
+U+1D7DE
+U+1D7DF
+U+1D7E0
+U+1D7E1
+U+1D7E2
+U+1D7E3
+U+1D7E4
+U+1D7E5
+U+1D7E6
+U+1D7E7
+U+1D7E8
+U+1D7E9
+U+1D7EA
+U+1D7EB
+U+1D7EC
+U+1D7ED
+U+1D7EE
+U+1D7EF
+U+1D7F0
+U+1D7F1
+U+1D7F2
+U+1D7F3
+U+1D7F4
+U+1D7F5
+U+1D7F6
+U+1D7F7
+U+1D7F8
+U+1D7F9
+U+1D7FA
+U+1D7FB
+U+1D7FC
+U+1D7FD
+U+1D7FE
+U+1D7FF
+U+1E140
+U+1E141
+U+1E142
+U+1E143
+U+1E144
+U+1E145
+U+1E146
+U+1E147
+U+1E148
+U+1E149
+U+1E2F0
+U+1E2F1
+U+1E2F2
+U+1E2F3
+U+1E2F4
+U+1E2F5
+U+1E2F6
+U+1E2F7
+U+1E2F8
+U+1E2F9
+U+1E5F1
+U+1E5F2
+U+1E5F3
+U+1E5F4
+U+1E5F5
+U+1E5F6
+U+1E5F7
+U+1E5F8
+U+1E5F9
+U+1E5FAU+0030
U+1E8C7
U+1E8C8
U+1E8C9
U+1E8CD
U+1E8CE
U+1E8CF
+U+1E950
+U+1E951
+U+1E952
+U+1E953
+U+1E954
+U+1E955
+U+1E956
+U+1E957
+U+1E958
+U+1E959
U+1EC71
U+1EC72
U+1EC73
U+1F10A
U+1F10B
U+1F10C
+U+1FBF0
+U+1FBF1
+U+1FBF2
+U+1FBF3
+U+1FBF4
+U+1FBF5
+U+1FBF6
+U+1FBF7
+U+1FBF8
+U+1FBF9
+U+2070
+U+2074
+U+2075
+U+2076
+U+2077
+U+2078
+U+2079
+U+2080
+U+2081
+U+2082
+U+2083
+U+2084
+U+2085
+U+2086
+U+2087
+U+2088
+U+2089
+U+2150
+U+2151
+U+2152
+U+2153
+U+2154
+U+2155
+U+2156
+U+2157
+U+2158
+U+2159
+U+215A
+U+215B
+U+215C
+U+215D
+U+215E
+U+215F
+U+2160
+U+2161
+U+2162
+U+2163
+U+2164
+U+2165
+U+2166
+U+2167
+U+2168
+U+2169
+U+216A
+U+216B
+U+216C
+U+216D
+U+216E
+U+216F
+U+2170
+U+2171
+U+2172
+U+2173
+U+2174
+U+2175
+U+2176
+U+2177
+U+2178
+U+2179
+U+217A
+U+217B
+U+217C
+U+217D
+U+217E
+U+217F
+U+2180
+U+2181
+U+2182
+U+2183
+U+2184
+U+2185
+U+2186
+U+2187
+U+2188
+U+2189
+U+2460
+U+2461
+U+2462
+U+2463
+U+2464
+U+2465
+U+2466
+U+2467
+U+2468
+U+2469
+U+246A
+U+246B
+U+246C
+U+246D
+U+246E
+U+246F
+U+2470
+U+2471
+U+2472
+U+2473
+U+2474
+U+2475
+U+2476
+U+2477
+U+2478
+U+2479
+U+247A
+U+247B
+U+247C
+U+247D
+U+247E
+U+247F
+U+2480
+U+2481
+U+2482
+U+2483
+U+2484
+U+2485
+U+2486
+U+2487
+U+2488
+U+2489
+U+248A
+U+248B
+U+248C
+U+248D
+U+248E
+U+248F
+U+2490
+U+2491
+U+2492
+U+2493
+U+2494
+U+2495
+U+2496
+U+2497
+U+2498
+U+2499
+U+249A
+U+249B
+U+24EA
+U+24EB
+U+24EC
+U+24ED
+U+24EE
+U+24EF
+U+24F0
+U+24F1
+U+24F2
+U+24F3
+U+24F4
+U+24F5
+U+24F6
+U+24F7
+U+24F8
+U+24F9
+U+24FA
+U+24FB
+U+24FC
+U+24FD
+U+24FE
+U+24FF
+U+2776
+U+2777
+U+2778
+U+2779
+U+277A
+U+277B
+U+277C
+U+277D
+U+277E
+U+277F
+U+2780
+U+2781
+U+2782
+U+2783
+U+2784
+U+2785
+U+2786
+U+2787
+U+2788
+U+2789
+U+278A
+U+278B
+U+278C
+U+278D
+U+278E
+U+278F
+U+2790
+U+2791
+U+2792
+U+2793
+U+2CFD
+U+3007
+U+3021
+U+3022
+U+3023
+U+3024
+U+3025
+U+3026
+U+3027
+U+3028
+U+3029
+U+3038
+U+3039
+U+303A
+U+3192
+U+3193
+U+3194
+U+3195
+U+3220
+U+3221
+U+3222
+U+3223
+U+3224
+U+3225
+U+3226
+U+3227
+U+3228
+U+3229
+U+3248
+U+3249
+U+324A
+U+324B
+U+324C
+U+324D
+U+324E
+U+324F
+U+3251
+U+3252
+U+3253
+U+3254
+U+3255
+U+3256
+U+3257
+U+3258
+U+3259
+U+325A
+U+325B
+U+325C
+U+325D
+U+325E
+U+325F
+U+3280
+U+3281
+U+3282
+U+3283
+U+3284
+U+3285
+U+3286
+U+3287
+U+3288
+U+3289
+U+32B1
+U+32B2
+U+32B3
+U+32B4
+U+32B5
+U+32B6
+U+32B7
+U+32B8
+U+32B9
+U+32BA
+U+32BB
+U+32BC
+U+32BD
+U+32BE
+U+32BF
+U+A620
+U+A621
+U+A622
+U+A623
+U+A624
+U+A625
+U+A626
+U+A627
+U+A628
+U+A629
+U+A6E6
+U+A6E7
+U+A6E8
+U+A6E9
+U+A6EA
+U+A6EB
+U+A6EC
+U+A6ED
+U+A6EE
+U+A6EF
+U+A830
+U+A831
+U+A832
+U+A833
+U+A834
+U+A835
+U+A8D0
+U+A8D1
+U+A8D2
+U+A8D3
+U+A8D4
+U+A8D5
+U+A8D6
+U+A8D7
+U+A8D8
+U+A8D9
+U+A900
+U+A901
+U+A902
+U+A903
+U+A904
+U+A905
+U+A906
+U+A907
+U+A908
+U+A909
+U+A9D0
+U+A9D1
+U+A9D2
+U+A9D3
+U+A9D4
+U+A9D5
+U+A9D6
+U+A9D7
+U+A9D8
+U+A9D9
+U+A9F0
+U+A9F1
+U+A9F2
+U+A9F3
+U+A9F4
+U+A9F5
+U+A9F6
+U+A9F7
+U+A9F8
+U+A9F9
+U+AA50
+U+AA51
+U+AA52
+U+AA53
+U+AA54
+U+AA55
+U+AA56
+U+AA57
+U+AA58
+U+AA59
+U+ABF0
+U+ABF1
+U+ABF2
+U+ABF3
+U+ABF4
+U+ABF5
+U+ABF6
+U+ABF7
+U+ABF8
+U+ABF9
+U+FF10
+U+FF11
+U+FF12
+U+FF13
+U+FF14
+U+FF15
+U+FF16
+U+FF17
+U+FF18
+U+FF19
U+1DBD
U+1DBE
U+1DBF
+U+A78E
U+1B60
U+1B7D
U+1B7E
+U+1B7F
U+1BC9F
U+1BFC
U+1BFD
U+1FA84
U+1FA85
U+1FA86
+U+1FA87
+U+1FA88
+U+1FA89
+U+1FA8F
+U+1FA90
+U+1FA91
+U+1FA92
+U+1FA93
+U+1FA94
+U+1FA95
+U+1FA96
+U+1FA97
+U+1FA98
+U+1FA99
+U+1FA9A
+U+1FA9B
+U+1FA9C
+U+1FA9D
+U+1FA9E
+U+1FA9F
+U+1FAA0
+U+1FAA1
+U+1FAA2
+U+1FAA3
+U+1FAA4
+U+1FAA5
+U+1FAA6
+U+1FAA7
+U+1FAA8
+U+1FAA9
+U+1FAAA
+U+1FAAB
+U+1FAAC
+U+1FAAD
+U+1FAAE
+U+1FAAF
+U+1FAB0
+U+1FAB1
+U+1FAB2
+U+1FAB3
+U+1FAB4
+U+1FAB5
+U+1FAB6
+U+1FAB7
+U+1FAB8
+U+1FAB9
+U+1FABA
+U+1FABB
+U+1FABC
+U+1FABD
+U+1FABE
+U+1FABF
+U+1FAC0
+U+1FAC1
+U+1FAC2
+U+1FAC3
+U+1FAC4
+U+1FAC5
+U+1FAC6
U+1FA90
U+1FA91
U+1FA92
return fopen("./data/tests/bytesequences/control-all.txt", "r");
}
+FILE *data__bytesequence_file_open__control_picture(void) {
+
+ return fopen("./data/tests/bytesequences/control_picture-all.txt", "r");
+}
+
FILE *data__bytesequence_file_open__digit(void) {
return fopen("./data/tests/bytesequences/digit-all.txt", "r");
return fopen("./data/tests/bytesequences/zero_width-all.txt", "r");
}
-ssize_t data__bytesequence_get_line(FILE * const file, f_utf_char_t * const character) {
+ssize_t data__bytesequence_get_line(FILE * const file, f_utf_char_t * const character, long long * const number) {
+
+ if (!file || !character || !number) return -1;
size_t length = 0;
char *line = 0;
return bytes;
}
- const long long number = atoll(line);
+ *number = atoll(line);
if (line) {
free(line);
}
- if (!number && bytes != 2 && line[0] != '0') return -1;
+ if (!*number && bytes != 2 && line[0] != '0') return -1;
+
+ memset(character, 0, sizeof(f_utf_char_t));
#ifdef _is_F_endian_little
- if ((F_utf_char_mask_byte_1_le_d & number) == number) {
- *character = (f_utf_char_t) ((F_utf_char_mask_byte_1_le_d & number) << 24);
+ if ((F_utf_char_mask_byte_1_le_d & (*number)) == (*number)) {
+ *character = (f_utf_char_t) ((F_utf_char_mask_byte_1_le_d & (*number)) << 24);
}
- else if ((F_utf_char_mask_byte_2_le_d & number) == number) {
- *character = (f_utf_char_t) ((F_utf_char_mask_byte_2_le_d & number) << 16);
+ else if ((F_utf_char_mask_byte_2_le_d & (*number)) == (*number)) {
+ *character = (f_utf_char_t) ((F_utf_char_mask_byte_2_le_d & (*number)) << 16);
}
- else if ((F_utf_char_mask_byte_3_le_d & number) == number) {
- *character = (f_utf_char_t) ((F_utf_char_mask_byte_3_le_d & number) << 8);
+ else if ((F_utf_char_mask_byte_3_le_d & (*number)) == (*number)) {
+ *character = (f_utf_char_t) ((F_utf_char_mask_byte_3_le_d & (*number)) << 8);
}
- else if ((F_utf_char_mask_byte_4_le_d & number) == number) {
- *character = (f_utf_char_t) ((F_utf_char_mask_byte_4_le_d & number));
+ else if ((F_utf_char_mask_byte_4_le_d & (*number)) == (*number)) {
+ *character = (f_utf_char_t) ((F_utf_char_mask_byte_4_le_d & (*number)));
}
#else
- *character = (f_utf_char_t) number;
+ *character = (f_utf_char_t) (*number);
#endif // _is_F_endian_little
return bytes;
*/
extern FILE *data__bytesequence_file_open__control(void);
+/**
+ * Open the "control_picture" bytesequence file.
+ *
+ * This assumes the following:
+ * - The file path is relative to the current working directory (tests are run from project root).
+ * - The file path is "data/tests/bytesequences/control_picture-all.txt".
+ *
+ * @return
+ * Non-zero on success.
+ * 0 on failure.
+ *
+ * @see fopen()
+ */
+extern FILE *data__bytesequence_file_open__control_picture(void);
+
/**
* Open the "digit" bytesequence file.
*
* The file stream.
* @param character
* The character read from the file at the current line in the stream.
+ * @param number
+ * The number retrieved from the file for the current line.
*
* @return
* positive number on success where number represents bytes read.
* @see atoll()
* @see getline()
*/
-extern ssize_t data__bytesequence_get_line(FILE * const file, f_utf_char_t * const character);
+extern ssize_t data__bytesequence_get_line(FILE * const file, f_utf_char_t * const character, long long * const number);
/**
* Open the "decimal_number" values file.
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const f_status_t status = f_utf_character_is_combining(sequence);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const f_status_t status = f_utf_character_is_control(sequence);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
--- /dev/null
+#include "test-utf.h"
+#include "test-utf-character_is_control_picture.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void test__f_utf_character_is_control_picture__works(void **state) {
+
+ {
+ FILE *file = data__bytesequence_file_open__control_picture();
+
+ assert_non_null(file);
+
+ f_utf_char_t sequence = 0;
+ ssize_t bytes = 0;
+ long long code = 0;
+
+ f_number_unsigned_t line = 0;
+
+ do {
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
+
+ if (bytes > 0) {
+ const f_status_t status = f_utf_character_is_control_picture(sequence);
+
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
+ assert_int_equal(status, F_true);
+ }
+
+ ++line;
+
+ } while (bytes > 0);
+
+ fclose(file);
+ }
+}
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
--- /dev/null
+/**
+ * FLL - Level 0
+ *
+ * Project: UTF
+ * API Version: 0.8
+ * Licenses: lgpl-2.1-or-later
+ *
+ * Test the function in the utf project.
+ */
+#ifndef _TEST__F_utf_character_is_control_picture_h
+#define _TEST__F_utf_character_is_control_picture_h
+
+/**
+ * Test that the function works.
+ *
+ * @see f_utf_character_is_control_picture()
+ */
+extern void test__f_utf_character_is_control_picture__works(void **state);
+
+#endif // _TEST__F_utf_character_is_control_picture_h
ssize_t bytes_number = 0;
uint64_t number = 0;
f_number_unsigned_t line = 0;
+ long long code = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
bytes_number = data__value_get_line_long_long(file_number, &number);
if (bytes > 0 && bytes_number > 0) {
const f_status_t status = f_utf_character_is_digit(sequence, &value);
+ if (status != F_true || value != number) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
assert_int_equal(value, number);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const f_status_t status = f_utf_character_is_emoji(sequence);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const f_status_t status = f_utf_character_is_numeric(sequence);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const f_status_t status = f_utf_character_is_phonetic(sequence);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const f_status_t status = f_utf_character_is_private(sequence);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const f_status_t status = f_utf_character_is_punctuation(sequence);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const f_status_t status = f_utf_character_is_subscript(sequence);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const f_status_t status = f_utf_character_is_superscript(sequence);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const f_status_t status = f_utf_character_is_symbol(sequence);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
// All remaining bytes after width must be zero for valid sequence.
if (width == 0 && (second || third || fourth)) {
+ if (status != F_false) {
+ printf("[ -------> ] --- Failure [00], width == 0 test, at sequence='%0x'.\n", sequence);
+ }
+
assert_int_equal(status, F_false);
continue;
}
if (width == 1) {
+ if (status != F_status_set_error(F_utf_fragment)) {
+ printf("[ -------> ] --- Failure [01], width == 1 test, at sequence='%0x'.\n", sequence);
+ }
+
assert_int_equal(status, F_status_set_error(F_utf_fragment));
continue;
}
if (width == 2 && (third || fourth)) {
+ if (status != F_false) {
+ printf("[ -------> ] --- Failure [02], width == 2 test, at sequence='%0x'.\n", sequence);
+ }
+
assert_int_equal(status, F_false);
continue;
}
if (width == 3 && fourth) {
+ if (status != F_false) {
+ printf("[ -------> ] --- Failure [03], width == 3 test, at sequence='%0x'.\n", sequence);
+ }
+
assert_int_equal(status, F_false);
continue;
// Invalid: 11111xxx xxxxxxxx xxxxxxxx xxxxxxxx.
if ((first & 0b11111000) == 0b11111000) {
+ if (status != F_false) {
+ printf("[ -------> ] --- Failure [04], first byte 0b11111000 test, at sequence='%0x'.\n", sequence);
+ }
+
assert_int_equal(status, F_false);
continue;
// For first byte 0xf0, only second byte ranges 0x90 to 0xbf are valid.
if (first == 0xf0) {
if (second < 0x90 || second > 0xbf) {
+ if (status != F_false) {
+ printf("[ -------> ] --- Failure [05], first byte 0b11110000: 0xf0 test, at sequence='%0x'.\n", sequence);
+ }
+
assert_int_equal(status, F_false);
continue;
// For first byte 0xf4, only second byte ranges 0x80 to 0x8f are valid.
else if (first == 0xf4) {
if (second < 0x80 || second > 0x8f) {
+ if (status != F_false) {
+ printf("[ -------> ] --- Failure [06], first byte 0b11110000: 0xf4 test, at sequence='%0x'.\n", sequence);
+ }
+
assert_int_equal(status, F_false);
continue;
// For first byte greater than 0xf4 are all invalid.
else if (first > 0xf4) {
+ if (status != F_false) {
+ printf("[ -------> ] --- Failure [07], first byte 0b11110000: > 0xf4 test, at sequence='%0x'.\n", sequence);
+ }
+
assert_int_equal(status, F_false);
continue;
}
if ((second & 0b11000000) == 0b10000000 && (third & 0b11000000) == 0b10000000 && (fourth & 0b11000000) == 0b10000000) {
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure [08], first byte 0b11110000: match test, at sequence='%0x'.\n", sequence);
+ }
+
assert_int_equal(status, F_true);
continue;
}
+ if (status != F_false) {
+ printf("[ -------> ] --- Failure [09], first byte 0b11110000: all else test, at sequence='%0x'.\n", sequence);
+ }
+
assert_int_equal(status, F_false);
continue;
// For first byte 0xe0, only second byte ranges 0xa0 to 0xbf are valid.
if (first == 0xe0) {
if (second < 0xa0 || second > 0xbf) {
+ if (status != F_false) {
+ printf("[ -------> ] --- Failure [10], first byte 0b11100000: 0xe0 test, at sequence='%0x'.\n", sequence);
+ }
+
assert_int_equal(status, F_false);
continue;
// For first byte 0xed, only second byte ranges 0x80 to 0x9f are valid.
else if (first == 0xed) {
if (second < 0x80 || second > 0x9f) {
+ if (status != F_false) {
+ printf("[ -------> ] --- Failure [11], first byte 0b11100000: 0xed test, at sequence='%0x'.\n", sequence);
+ }
+
assert_int_equal(status, F_false);
continue;
}
if ((second & 0b11000000) == 0b10000000 && (third & 0b11000000) == 0b10000000) {
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure [12], first byte 0b11100000: match test, at sequence='%0x'.\n", sequence);
+ }
+
assert_int_equal(status, F_true);
continue;
}
+ if (status != F_false) {
+ printf("[ -------> ] --- Failure [13], first byte 0b11100000: all else test, at sequence='%0x'.\n", sequence);
+ }
+
assert_int_equal(status, F_false);
continue;
// Only first byte ranges 0xc2 or greater are valid.
if (first < 0xc2) {
+ if (status != F_false) {
+ printf("[ -------> ] --- Failure [14], first byte 0b11000000: < 0xc2 test, at sequence='%0x'.\n", sequence);
+ }
+
assert_int_equal(status, F_false);
continue;
}
if ((second & 0b11000000) == 0b10000000) {
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure [15], first byte 0b11000000: match test, at sequence='%0x'.\n", sequence);
+ }
+
assert_int_equal(status, F_true);
continue;
}
+ if (status != F_false) {
+ printf("[ -------> ] --- Failure [16], first byte 0b11000000: all else test, at sequence='%0x'.\n", sequence);
+ }
+
assert_int_equal(status, F_false);
continue;
// Invalid (UTF Fragment): 10xxxxxx ???????? ???????? ????????.
if ((first & 0b11000000) == 0b10000000) {
+ if (status != F_status_set_error(F_utf_fragment)) {
+ printf("[ -------> ] --- Failure [17], invalid fragment test, at sequence='%0x'.\n", sequence);
+ }
+
assert_int_equal(status, F_status_set_error(F_utf_fragment));
continue;
// Valid: 0xxxxxxx ???????? ???????? ????????.
if (first < 0x80) {
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure [18], < 0x80 test, at sequence='%0x'.\n", sequence);
+ }
+
assert_int_equal(status, F_true);
continue;
}
+ if (status != F_false) {
+ printf("[ -------> ] --- Failure [19], all others test, at sequence='%0x'.\n", sequence);
+ }
+
// All other values > 0x7f are invalid.
assert_int_equal(status, F_false);
} // for
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const f_status_t status = f_utf_character_is_whitespace(sequence, F_true);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const f_status_t status = f_utf_character_is_whitespace_modifier(sequence);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const f_status_t status = f_utf_character_is_whitespace_other(sequence);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const f_status_t status = f_utf_character_is_whitespace_zero_width(sequence);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const f_status_t status = f_utf_character_is_wide(sequence);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const f_status_t status = f_utf_character_is_word(sequence, F_false);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const f_status_t status = f_utf_character_is_word(sequence, F_true);
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const f_status_t status = f_utf_character_is_word_dash(sequence, F_false);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const f_status_t status = f_utf_character_is_word_dash(sequence, F_true);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const f_status_t status = f_utf_character_is_word_dash_plus(sequence, F_false);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const f_status_t status = f_utf_character_is_word_dash_plus(sequence, F_true);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const f_status_t status = f_utf_character_is_zero_width(sequence);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const uint8_t width = macro_f_utf_char_t_width(sequence);
const f_status_t status = f_utf_is_combining(buffer, 5);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const uint8_t width = macro_f_utf_char_t_width(sequence);
const f_status_t status = f_utf_is_control(buffer, 5);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
--- /dev/null
+#include "test-utf.h"
+#include "test-utf-is_control_picture.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void test__f_utf_is_control_picture__works(void **state) {
+
+ {
+ FILE *file = data__bytesequence_file_open__control_picture();
+
+ assert_non_null(file);
+
+ f_utf_char_t sequence = 0;
+ ssize_t bytes = 0;
+ long long code = 0;
+
+ f_number_unsigned_t line = 0;
+
+ do {
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
+
+ if (bytes > 0) {
+ const uint8_t width = macro_f_utf_char_t_width(sequence);
+ char buffer[5] = { 0, 0, 0, 0, 0 };
+
+ buffer[0] = macro_f_utf_char_t_to_char_1(sequence);
+
+ if (width > 1) {
+ buffer[1] = macro_f_utf_char_t_to_char_2(sequence);
+
+ if (width > 2) {
+ buffer[2] = macro_f_utf_char_t_to_char_3(sequence);
+
+ if (width > 3) {
+ buffer[3] = macro_f_utf_char_t_to_char_4(sequence);
+ }
+ }
+ }
+
+ const f_status_t status = f_utf_is_control_picture(buffer, 5);
+
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
+ assert_int_equal(status, F_true);
+ }
+
+ ++line;
+
+ } while (bytes > 0);
+
+ fclose(file);
+ }
+}
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
--- /dev/null
+/**
+ * FLL - Level 0
+ *
+ * Project: UTF
+ * API Version: 0.8
+ * Licenses: lgpl-2.1-or-later
+ *
+ * Test the function in the utf project.
+ */
+#ifndef _TEST__F_utf_is_control_picture_h
+#define _TEST__F_utf_is_control_picture_h
+
+/**
+ * Test that the function works.
+ *
+ * @see f_utf_is_control_picture()
+ */
+extern void test__f_utf_is_control_picture__works(void **state);
+
+#endif // _TEST__F_utf_is_control_picture_h
ssize_t bytes = 0;
ssize_t bytes_number = 0;
uint64_t number = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
bytes_number = data__value_get_line_long_long(file_number, &number);
if (bytes > 0 && bytes_number > 0) {
const f_status_t status = f_utf_is_digit(buffer, 5, &value);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
assert_int_equal(value, number);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const uint8_t width = macro_f_utf_char_t_width(sequence);
const f_status_t status = f_utf_is_emoji(buffer, 5);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const uint8_t width = macro_f_utf_char_t_width(sequence);
const f_status_t status = f_utf_is_numeric(buffer, 5);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const uint8_t width = macro_f_utf_char_t_width(sequence);
const f_status_t status = f_utf_is_phonetic(buffer, 5);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const uint8_t width = macro_f_utf_char_t_width(sequence);
const f_status_t status = f_utf_is_private(buffer, 5);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const uint8_t width = macro_f_utf_char_t_width(sequence);
const f_status_t status = f_utf_is_punctuation(buffer, 5);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const uint8_t width = macro_f_utf_char_t_width(sequence);
const f_status_t status = f_utf_is_subscript(buffer, 5);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const uint8_t width = macro_f_utf_char_t_width(sequence);
const f_status_t status = f_utf_is_superscript(buffer, 5);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const uint8_t width = macro_f_utf_char_t_width(sequence);
const f_status_t status = f_utf_is_symbol(buffer, 5);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const uint8_t width = macro_f_utf_char_t_width(sequence);
const f_status_t status = f_utf_is_whitespace(buffer, 5, F_true);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const uint8_t width = macro_f_utf_char_t_width(sequence);
const f_status_t status = f_utf_is_whitespace_modifier(buffer, 5);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const uint8_t width = macro_f_utf_char_t_width(sequence);
const f_status_t status = f_utf_is_whitespace_other(buffer, 5);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const uint8_t width = macro_f_utf_char_t_width(sequence);
const f_status_t status = f_utf_is_whitespace_zero_width(buffer, 5);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const uint8_t width = macro_f_utf_char_t_width(sequence);
const f_status_t status = f_utf_is_wide(buffer, 5);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const uint8_t width = macro_f_utf_char_t_width(sequence);
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const uint8_t width = macro_f_utf_char_t_width(sequence);
const f_status_t status = f_utf_is_word(buffer, 5, F_true);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const uint8_t width = macro_f_utf_char_t_width(sequence);
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const uint8_t width = macro_f_utf_char_t_width(sequence);
const f_status_t status = f_utf_is_word_dash(buffer, 5, F_true);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const uint8_t width = macro_f_utf_char_t_width(sequence);
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const uint8_t width = macro_f_utf_char_t_width(sequence);
const f_status_t status = f_utf_is_word_dash_plus(buffer, 5, F_true);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
f_utf_char_t sequence = 0;
ssize_t bytes = 0;
+ long long code = 0;
f_number_unsigned_t line = 0;
do {
- bytes = data__bytesequence_get_line(file, &sequence);
+ bytes = data__bytesequence_get_line(file, &sequence, &code);
if (bytes > 0) {
const uint8_t width = macro_f_utf_char_t_width(sequence);
const f_status_t status = f_utf_is_zero_width(buffer, 5);
+ if (status != F_true) {
+ printf("[ -------> ] --- Failure at line=%lu sequence='%0x' (%llu).\n", line + 1, sequence, code);
+ }
+
assert_int_equal(status, F_true);
}
cmocka_unit_test(test__f_utf_append_assure__works),
cmocka_unit_test(test__f_utf_append_assure_nulless__works),
cmocka_unit_test(test__f_utf_append_nulless__works),
-/*
+
cmocka_unit_test(test__f_utf_character_is_alphabetic__works),
cmocka_unit_test(test__f_utf_character_is_alphabetic_digit__works),
cmocka_unit_test(test__f_utf_character_is_alphabetic_numeric__works),
cmocka_unit_test(test__f_utf_character_is_combining__works),
cmocka_unit_test(test__f_utf_character_is_control__works),
+ cmocka_unit_test(test__f_utf_character_is_control_picture__works),
cmocka_unit_test(test__f_utf_character_is_digit__works),
cmocka_unit_test(test__f_utf_character_is_emoji__works),
cmocka_unit_test(test__f_utf_character_is_numeric__works),
cmocka_unit_test(test__f_utf_character_is_word_dash_plus__strict_is_false),
cmocka_unit_test(test__f_utf_character_is_word_dash_plus__strict_is_true),
-*/
+
cmocka_unit_test(test__f_utf_string_dynamic_append__works),
cmocka_unit_test(test__f_utf_string_dynamic_append_assure__works),
cmocka_unit_test(test__f_utf_string_dynamic_append_assure_nulless__works),
cmocka_unit_test(test__f_utf_string_dynamicss_append__returns_data_not),
cmocka_unit_test(test__f_utf_string_dynamicss_append_all__works),
cmocka_unit_test(test__f_utf_string_dynamicss_append_all__returns_data_not),
-/*
+
cmocka_unit_test(test__f_utf_is_alphabetic__works),
cmocka_unit_test(test__f_utf_is_alphabetic_digit__works),
cmocka_unit_test(test__f_utf_is_alphabetic_numeric__works),
cmocka_unit_test(test__f_utf_is_combining__works),
cmocka_unit_test(test__f_utf_is_control__works),
+ cmocka_unit_test(test__f_utf_is_control_picture__works),
cmocka_unit_test(test__f_utf_is_digit__works),
cmocka_unit_test(test__f_utf_is_emoji__works),
cmocka_unit_test(test__f_utf_is_numeric__works),
cmocka_unit_test(test__f_utf_is_word_dash_plus__strict_is_false),
cmocka_unit_test(test__f_utf_is_word_dash_plus__strict_is_true),
-*/
+
cmocka_unit_test(test__f_utf_string_map_multis_append__works),
cmocka_unit_test(test__f_utf_string_map_multis_append_all__works),
cmocka_unit_test(test__f_utf_string_map_multis_append_all__returns_data_not),
#include "test-utf-character_is_alphabetic_numeric.h"
#include "test-utf-character_is_combining.h"
#include "test-utf-character_is_control.h"
+#include "test-utf-character_is_control_picture.h"
#include "test-utf-character_is_digit.h"
#include "test-utf-character_is_digit.h"
#include "test-utf-character_is_emoji.h"
#include "test-utf-is_alphabetic_numeric.h"
#include "test-utf-is_combining.h"
#include "test-utf-is_control.h"
+#include "test-utf-is_control_picture.h"
#include "test-utf-is_digit.h"
#include "test-utf-is_digit.h"
#include "test-utf-is_emoji.h"