printf (CSOURCE "http\:\/\/www.unicode.org\/Public\/UNIDATA\/UnicodeData.txt\n");
printf (CSOURCE "\*\/\n");
printf (CSOURCE "\n");
-printf (CSOURCE "\#include \<netatalk\/endian.h\>\n");
+printf (CSOURCE "\#include \<stdint.h\>\n");
printf (CSOURCE "\#include \<atalk\/unicode.h\>\n");
printf (CSOURCE "\#include \"%s\"\n", $ARGV[1]);
printf (CSOURCE "\n");
$block_enable[$block] = 0;
}
+ $block_enable[1] = 1; # ASCII block is forcibly included
+ $block_enable[2] = 1; # in the array for Speed-Up.
+
for ($block = 1024 ; $block <= 17409 ; $block++) {
$block_enable_sp[$block] = 0;
}
while (<UNICODEDATA>) {
chop;
(
- $code0,
- $Name1,
- $General_Category2,
- $Canonical_Combining_Class3,
- $Bidi_Class4,
- $Decomposition_Mapping5,
- $Numeric_Value6,
- $Numeric_Value7,
- $Numeric_Value8,
- $Bidi_Mirrored9,
- $Unicode_1_Name10,
- $ISO_Comment11,
- $Simple_Uppercase_Mapping12,
- $Simple_Lowercase_Mapping13,
- $Simple_Titlecase_Mapping14
+ $code0,
+ $Name1,
+ $General_Category2,
+ $Canonical_Combining_Class3,
+ $Bidi_Class4,
+ $Decomposition_Mapping5,
+ $Numeric_Value6,
+ $Numeric_Value7,
+ $Numeric_Value8,
+ $Bidi_Mirrored9,
+ $Unicode_1_Name10,
+ $ISO_Comment11,
+ $Simple_Uppercase_Mapping12,
+ $Simple_Lowercase_Mapping13,
+ $Simple_Titlecase_Mapping14
) = split(/\;/);
if ($_[0] eq "upper") {
$char_start = ($block_start -1)* 64;
$char_end = ($block_end * 64) -1;
- printf(CHEADER "static const u\_int16\_t %s\_table\_%d\[%d\] \= \{\n",
+ printf(CHEADER "static const uint16\_t %s\_table\_%d\[%d\] \= \{\n",
$_[0], $table_no, $char_end - $char_start +1);
for ($char = $char_start ; $char <= $char_end ; $char++) {
$table[$char][0],
$table[$char][1],
$table[$char][2]
- );
+ );
}
printf(CHEADER "\}\;\n");
printf(CHEADER "\n");
- printf(CSOURCE " if \( val \>\= 0x%04X \&\& val \<\= 0x%04X)\n",
- $char_start, $char_end);
- printf(CSOURCE " return %s\_table\_%d\[val-0x%04X\]\;\n",
- $_[0], $table_no, $char_start);
+ if ($char_start == 0x0000) {
+ printf(CSOURCE " if \( val \<\= 0x%04X)\n",
+ $char_end);
+ printf(CSOURCE " return %s\_table\_%d\[val]\;\n",
+ $_[0], $table_no);
+ } else {
+ printf(CSOURCE " if \( val \>\= 0x%04X \&\& val \<\= 0x%04X)\n",
+ $char_start, $char_end);
+ printf(CSOURCE " return %s\_table\_%d\[val-0x%04X\]\;\n",
+ $_[0], $table_no, $char_start);
+ }
printf(CSOURCE "\n");
$table_no++;
printf(CSOURCE "\/*******************************************************************\n");
printf(CSOURCE " Convert a surrogate pair to %s case.\n", $_[0]);
printf(CSOURCE "*******************************************************************\/\n");
- printf(CSOURCE "u\_int32\_t to%s\_sp\(u\_int32\_t val\)\n", $_[0]);
+ printf(CSOURCE "uint32\_t to%s\_sp\(uint32\_t val\)\n", $_[0]);
printf(CSOURCE "{\n");
$table_no = 1;
# rising edge detection
if ((($block_enable_sp[$block - 1] == 0) || ((($block - 1) & 0xF) == 0))
- && ($block_enable_sp[$block] == 1)) {
+ && ($block_enable_sp[$block] == 1)) {
$block_start = $block;
}
# falling edge detection
if (($block_enable_sp[$block] == 1) &&
- ((($block - 1) & 0xF == 0xF) || ($block_enable_sp[$block + 1] == 0))) {
+ ((($block - 1) & 0xF == 0xF) || ($block_enable_sp[$block + 1] == 0))) {
$block_end = $block;
$char_start = ($block_start -1)* 64;
$char_end = ($block_end * 64) -1;
- printf(CHEADER "static const u\_int32\_t %s\_table\_sp\_%d\[%d\] \= \{\n",
+ printf(CHEADER "static const uint32\_t %s\_table\_sp\_%d\[%d\] \= \{\n",
$_[0], $table_no, $char_end - $char_start +1);
for ($char = $char_start ; $char <= $char_end ; $char++) {
$table_sp[$char][2],
$table_sp[$char][3],
$table_sp[$char][4]
- );
+ );
}
printf(CHEADER "\}\;\n");
printf(CHEADER "\n");