mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
unicode_norm_gen.tmpl: expand kompatible_table
* template/unicode_norm_gen.tmpl: expand kompatible_table so that recursive expansion is not needed at runtime. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48311 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
4fa166e301
commit
d436c05163
3 changed files with 13 additions and 16 deletions
|
@ -1,3 +1,8 @@
|
|||
Fri Nov 7 00:00:12 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* template/unicode_norm_gen.tmpl: expand kompatible_table so that
|
||||
recursive expansion is not needed at runtime.
|
||||
|
||||
Thu Nov 6 23:58:40 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* pack.c (pack_pack): escape unprintable characters and preserve
|
||||
|
|
|
@ -84,26 +84,12 @@ module UnicodeNormalize
|
|||
|
||||
## Normalization Forms for Patterns (not whole Strings)
|
||||
def self.nfd_one(string)
|
||||
string = string.dup
|
||||
(0...string.length).each do |position|
|
||||
if decomposition = DECOMPOSITION_TABLE[string[position]]
|
||||
string[position] = decomposition
|
||||
end
|
||||
end
|
||||
string = string.chars.map! {|c| DECOMPOSITION_TABLE[c] || c}.join('')
|
||||
canonical_ordering_one(hangul_decomp_one(string))
|
||||
end
|
||||
|
||||
def self.nfkd_one(string)
|
||||
string = string.dup
|
||||
position = 0
|
||||
while position < string.length
|
||||
if decomposition = KOMPATIBLE_TABLE[string[position]]
|
||||
string[position] = decomposition
|
||||
else
|
||||
position += 1
|
||||
end
|
||||
end
|
||||
string
|
||||
string.chars.map! {|c| KOMPATIBLE_TABLE[c] || c}.join('')
|
||||
end
|
||||
|
||||
def self.nfc_one(string)
|
||||
|
|
|
@ -138,6 +138,12 @@ decomposition_table.each do |key, value|
|
|||
kompatible_table[key] = value if expanded
|
||||
end
|
||||
|
||||
while kompatible_table.any? {|key, value|
|
||||
expanded = value.map {|v| kompatible_table[v] || v}.flatten
|
||||
kompatible_table[key] = expanded unless value == expanded
|
||||
}
|
||||
end
|
||||
|
||||
# generate normalization tables file
|
||||
%># coding: us-ascii
|
||||
%# >
|
||||
|
|
Loading…
Reference in a new issue