@@ -11,7 +11,7 @@ machine for recognizing a Unicode character name and determining its
1111associated code point. The input data is taken from two files. The first
1212is assumed to be in the form of the file
1313
14- https://www.unicode.org/Public/UCD/latest /ucd/UnicodeData.txt
14+ https://www.unicode.org/Public/18.0.0 /ucd/UnicodeData.txt
1515
1616where each line consists of
1717
@@ -28,12 +28,13 @@ category define a range of characters, e.g.,
2828 4E00;<CJK Ideograph, First>;...
2929 9FFF;<CJK Ideograph, Last>;...
3030
31- Characters in the ranges for the CJK and Tangut ideographs, along with the
32- Hangul syllables, are also added to the machine.
31+ Characters in the ranges for the CJK and Tangut ideographs and for the
32+ Jurchen and Small Seal characters, along with the Hangul syllables, are also
33+ added.
3334
3435The second file is assumed to be in the form of the file
3536
36- https://www.unicode.org/Public/UCD/latest /ucd/NameAliases.txt
37+ https://www.unicode.org/Public/18.0.0 /ucd/NameAliases.txt
3738
3839which consists of empty lines, comment lines beginning with '#', and data
3940lines of the form
@@ -352,7 +353,7 @@ semicolon is encountered, report an error and exit.
352353Definitions related to the algorithmic generation of character names for
353354the Hangul Syllable block. The data and algorithm reflect those of the
354355Hangul Character Name Generation pseudocode found in section 3.12 of
355- www.unicode.org/versions/Unicode15.1 .0/ch03.pdf .
356+ www.unicode.org/versions/Unicode18.0 .0/core-spec/chapter-3/ .
356357*/
357358
358359#define Hangul_LCount 19 // Number of leading Jamo consonants
@@ -498,6 +499,18 @@ solely of data lines, no blank lines and no comments.
498499 static const char Tangut_prefix[] = " TANGUT IDEOGRAPH-" ;
499500 add_name_and_code_points (code_point, ending_point, Tangut_prefix,
500501 Tangut_prefix + sizeof (Tangut_prefix));
502+ } else if (p[2 ] == ' J' &&
503+ strncmp (p + 2 , " Jurchen Character" ,
504+ sizeof (" Jurchen Character" ) - 1 ) == 0 ) {
505+ static const char Jurchen_prefix[] = " JURCHEN CHARACTER-" ;
506+ add_name_and_code_points (code_point, ending_point, Jurchen_prefix,
507+ Jurchen_prefix + sizeof (Jurchen_prefix));
508+ } else if (p[2 ] == ' S' &&
509+ strncmp (p + 2 , " Seal Character" ,
510+ sizeof (" Seal Character" ) - 1 ) == 0 ) {
511+ static const char Seal_prefix[] = " SMALL SEAL CHARACTER-" ;
512+ add_name_and_code_points (code_point, ending_point, Seal_prefix,
513+ Seal_prefix + sizeof (Seal_prefix));
501514 } /* if */
502515 } /* if */
503516 } else {
@@ -949,7 +962,7 @@ const char *header_text[] = {
949962" 0x23 /" ,
950963" */" ,
951964" " ,
952- " unsigned char unicode_name_fsm[] = {" ,
965+ " extern const unsigned char unicode_name_fsm[] = {" ,
953966" " ,
954967" /* The following table is created by a tool that processes the Unicode data" ,
955968" files and is not intended to be edited manually. This table reflects"
@@ -959,7 +972,7 @@ const char *header_text[] = {
959972const char *footer_text[] = {
960973" }; /* unicode_name_fsm */" ,
961974" " ,
962- " sizeof_t size_of_unicode_name_fsm = sizeof(unicode_name_fsm);" ,
975+ " extern const sizeof_t size_of_unicode_name_fsm = sizeof(unicode_name_fsm);" ,
963976" " ,
964977" /* Conditionally close the \" edg\" namespace. */" ,
965978" END_EDG_NAMESPACE" ,
0 commit comments