diff options
author | Ito Hiroyuki <ZXB01226@nifty.com> | 2010-08-24 10:11:51 +0000 |
---|---|---|
committer | Ito Hiroyuki <ZXB01226@nifty.com> | 2010-08-24 10:11:51 +0000 |
commit | 919adb4b57977d5e375dab0fa943b6e81fa145ab (patch) | |
tree | 426c3d8d7682ff359f73a136ba0942c35a8f9117 /libwc/map/mk_ucs_isdigit_map.pl | |
parent | Introduce option mailto_options (diff) | |
download | w3m-919adb4b57977d5e375dab0fa943b6e81fa145ab.tar.gz w3m-919adb4b57977d5e375dab0fa943b6e81fa145ab.zip |
[w3m-dev 04393] [patch] locale-related character management
Diffstat (limited to 'libwc/map/mk_ucs_isdigit_map.pl')
-rw-r--r-- | libwc/map/mk_ucs_isdigit_map.pl | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/libwc/map/mk_ucs_isdigit_map.pl b/libwc/map/mk_ucs_isdigit_map.pl new file mode 100644 index 0000000..c67f645 --- /dev/null +++ b/libwc/map/mk_ucs_isdigit_map.pl @@ -0,0 +1,56 @@ + +open(MAP, "> ucs_isdigit.map"); +print MAP <<EOF; +/* + File generated from UnicodeData-4.1.0.txt. +*/ + +EOF + +for (<DATA>) { + chop; + ($name, $class) = split; + + @cp = (); + + open(UCD, "< private/UnicodeData-4.1.0.txt"); + while(<UCD>) { + chop; + @entry = split(';'); + last if $entry[0] =~ m/.{5,}/; + if ($entry[2] eq $class) { + push (@cp, $entry[0]); + } + } + close UCD; + + @bs = (); + $last = -1; + $seq = -1; + for my $e (@cp) { + if (++$last != hex $e) { + $seq = $e; + $last = hex $e; + push (@bs, $seq); + } + $end{$seq} = $e; + } + $nobs = @bs; + + print MAP <<EOF; + +#define N_ucs_${name}_map ${nobs} + +static wc_map ucs_${name}_map[ N_ucs_${name}_map ] = { +EOF + + for (@bs) { + print MAP " { 0x$_, 0x$end{$_} },\n"; + } + print MAP <<EOF +}; +EOF +} + +__END__ +isdigit Nd |