1 def mcs_hex() sprintf("%x", @char_id) end
3 def char_feature_alist() check_all_database(); @features; end
4 def char_feature_list() check_all_database(); @features.keys; end
5 alias alist char_feature_alist
6 alias list char_feature_list
8 def has_feature?() #
\88Ó
\96¡
\82Ì
\82 \82éfeature
\82ð
\8e\9d\82Á
\82Ä
\82Ü
\82·
\82©?
13 return (keys.length != 0)
19 v = db.get(a, u8) # u8
\82Å
\95\
\82³
\82ê
\82é
\95¶
\8e\9a\82Ìa
\83A
\83g
\83\8a\83r
\83\85\81[
\83g
\82ð
\92²
\82×
\82é
\81B
23 def check_all_database() #
\8c»
\8dÝ
\82Ì@char_id
\82©
\82ç
\81A
\95¶
\8e\9a\83f
\81[
\83^
\83x
\81[
\83X
\82ð
\8eQ
\8fÆ
\82·
\82é
24 return if @check_all_database
25 return if @char_id.nil?
28 atrs = db.get_all(u8) #u8
\82Å
\95\
\82³
\82ê
\82é
\95¶
\8e\9a\82Ì
\83A
\83g
\83\8a\83r
\83\85\81[
\83g
\82ð
\91S
\95\94\8e\9d\82Á
\82Ä
\82±
\82¢
30 @features[a] = v #
\82Æ
\82©
\82¢
\82¤
\8a´
\82¶
\82Å
\91ã
\93ü
\82·
\82é
\82Ì
\82Å
\82¦
\82¦
\82©
\82È?
32 @check_all_database = true #
\8fd
\82¢
\8f\88\97\9d\82È
\82Ì
\82Å
\88ê
\89\9echeck
\82·
\82é
37 #ar=%w{ucs ucs-big5 ucs-cdp ucs-cns ucs-jis ucs-ks =>ucs =>ucs* =>ucs-jis}
38 #ar=%w{ucs ucs-jis ucs-big5 ucs-cdp ucs-cns ucs-ks =>ucs =>ucs* =>ucs-jis}
39 ar = %w{ucs-jis ucs =>ucs-jis}
40 #
\95À
\82Ñ
\8f\87\82Í
\9c\93\88Ó
\93I
\82Å
\81Aucs-jis
\82ð
\90æ
\82É
\8fo
\82µ
\82Ä
\82¢
\82é
\81B
\96{
\97\88\82Í
\82±
\82ê
\82à
\8ew
\92è
\82Å
\82«
\82é
\82æ
\82¤
\82É
\82·
\82é
\82×
\82«
\81B
42 u = get_char_feature(a)
48 #-------------------------------------------------------------------CCS
\8aÖ
\8cW
49 def to_utf8() Uconv.u4tou8(Character.u4itou4(ucs())) end #UTF8
\95¶
\8e\9a\97ñ
\82ð
\95Ô
\82·
55 if u.nil? || 0xffff < u
61 alias map_ucs map_utf8
65 if u.nil? || 0xffff < u
68 return Character.get(u).to_er()
74 return "" if u.nil? || 0xffff < u
75 Uconv.u16toeuc(Uconv.u4tou16(Character.u4itou4(ucs())))
86 return "" if u.nil? || 0xffff < u
87 Uconv.u16tosjis(Uconv.u4tou16(Character.u4itou4(ucs())))
98 EntityReference.each_codesys {|codesys, er_prefix, keta, numtype|
105 def inspect_all_codesys() #
\96¢
\8a®
\90¬
106 #to_er
\82ð
\91S
\82Ä
\82Ìcodesys
\82É
\82¨
\82¢
\82Ä
\8eÀ
\8ds
\82·
\82é
\81B
\82»
\82Ì
\8c\8b\89Ê
\82ð
\83R
\83\93\83p
\83N
\83g
\82É
\82Ü
\82Æ
\82ß
\82é
111 alist.to_a.sort.each {|a, v| ar << "#{a}:#{v}" }
112 return ar.join(",")+">"
117 alist.to_a.sort.each {|a, v| ar << "#{a}:#{v}" }
118 return ar.join('\n')+'\n'
123 alist.to_a.sort.each {|a, v|
124 str += "#{a}: #{v}\n"
129 def inspect_ids(hex_flag=false)
132 ar << (hex_flag ? "x"+mcs_hex : to_utf8)
133 if to_s != ids #ids
\82ª
\95\94\95i
\82»
\82Ì
\82à
\82Ì
\82¾
\82Á
\82½
\82ç
\95\94\95i
\92Ç
\89Á
\82Í
\82µ
\82È
\82¢
138 ar << "x"+char.mcs_hex
149 return "("+ar.join("\t")+")"
152 #--------------------------------------------------------------------IDS
\8aÖ
\8cW
153 def glyph_decompose() do_decompose(false) end
154 def decompose() do_decompose(true) end
155 def do_decompose(check_meaning = true)
158 # return idss if idss
159 # return k if self.is_basic_kanji? #
\8aî
\96{
\8a¿
\8e\9a\82Ístop kanji
\82Æ
\82·
\82é
\82¼
\82Æ
\81B
161 return self["ids-represent"] if self["ids-represent"] #ids_represent
\82ð
\8e\9d\82Á
\82Ä
\82¢
\82é
\8fê
\8d\87\82Í
\82»
\82Ì
\92l
\82Æ
\82·
\82é
\81B
162 return self["ids-element"] if self["ids-element"] #ids_element
\82ð
\8e\9d\82Á
\82Ä
\82¢
\82é
\8fê
\8d\87\82Í
\82»
\82Ì
\92l
\82Æ
\82·
\82é
\81B
163 idss = self["ids-meaning"]
164 return idss if idss && 0 < idss.length && k != idss
166 idss = self["ids-aggregated"]
167 return idss if idss && 0 < idss.length && k != idss
169 return idss if idss && 0 < idss.length && k != idss
171 # return k if idss.nil? || idss.length == 0 || k == idss
172 # if idss.char_length == 2
173 # p ["What???", k, idss, k.inspect_all]
174 # #return idssx[1] #
\93ñ
\8cÂ
\96Ú
\82¾
\82¯
\95Ô
\82·
\82Æ
\82©?
175 # return k #IDS
\82É
\93W
\8aJ
\82·
\82é
\95û
\96@
\82ª
\96³
\82¢
\82Æ
\81B
177 # return k if k == idss
178 # if idss.include?(k) #<C5-4C4D><C6-4A37>
\82±
\82Ì
\93ñ
\95¶
\8e\9a\82ÌBUG
\91Î
\8dô
179 # #return idss.sub(k, "")
180 # return k #IDS
\82É
\93W
\8aJ
\82·
\82é
\95û
\96@
\82ª
\96³
\82¢
\82Æ
\81B
187 de = self.decompose #
\8fo
\94
\93_
191 de = pde.decompose #
\82à
\82¤
\88ê
\93x
\95ª
\89ð
\82ð
\82µ
\82Ä
\82Ý
\82é
\81B
192 break if pde == de #
\83\8b\81[
\83v
\82ð
\94²
\82¯
\82¾
\82·
193 exit if 10 < level #p ["too many recursive", self]
199 def decompose_all_nu(level=nil)
200 level = 0 if level.nil?
202 p ["too many recursive", self]
206 return de.decompose_all(level+1) if de != self #
\82È
\82É
\82©
\95Ï
\89»
\82ª
\82 \82Á
\82½
\82©
\82ç
\8dÄ
\8bA
207 return de #
\82à
\82¤
\82±
\82ê
\88È
\8fã
\95Ï
\89»
\82Í
\96³
\82³
\82»
\82¤
\82¾
\82¼
\82Æ
\81B
210 def is_ids?() 0x2ff0 <= @char_id && @char_id <= 0x2fff end
212 def ids_operator_argc()
213 return 0 unless is_ids?
214 return 3 if @char_id == 0x2ff2 || @char_id == 0x2ff3