マイ文字オブジェクト
守岡知彦 / MORIOKA Tomohiko
tomo @ kanji.zinbun.kyoto-u.ac.jp
2003年 2月 3日 (月) 18:40:25 JST
>>>>> In [chise-ja : No.00153]
>>>>> "藤原さん" = Yoshi Fujiwara <yfujiwar @ atr.co.jp> wrote:
藤原さん> さて,私がやりたい「マイ部品」作成なのですが,今日江渡さんと
藤原さん> 話していて疑問に上がったことを質問させて下さい.例がよくない
藤原さん> かも知れませんが,例えば「験」「倹」「検」などの形声文字の右
藤原さん> 側にあらわれる部品を「マイ部品」として新しく定義したいと仮に
藤原さん> します.
藤原さん> ruby/chise では define-char に相当することが
藤原さん> char = Character.new( 0xe0000000 )
藤原さん> char.my-attribute = "Ken"
藤原さん> という形でできるらしいです.この番号0xe0000000ですが,諸橋第
藤原さん> 0巻の,つまり空いている番号を使うということでとりあえず使え
藤原さん> るようなのです.でももっとたくさん「マイ文字」を定義したい人
藤原さん> は,どの番号を使えばよいのでしょうか.もちろんそんなには造り
藤原さん> ません.
主な空き地としては、
U+E000 〜 U+F8FF (でも呪われるかも)
00群0F面
63群〜7F群
です。
先日の『2次会』で江渡さん、上地さんと話して、使用済文字オブジェクト回
収機構を実装する前でもとりあえずワイルドに system-char-id 自動割り当て
領域を設定してはどうかということになりました。どのぐらいの個数を用意す
れば良いのかは判らないのですが、とりあえず、7F群 (2^24 個) をそのため
の領域とするのはいかがでしょうか?
藤原さん> またXEmacs/chise では,define-char はユーザがどんどん使える
藤原さん> のでしょうか.使えるとすると超簡単な例を教えていただけません
藤原さん> か.
はい。但し、現状では CCS 属性も =>ucs 属性もない場合には define-char
は nil を返すというひどい実装になっているので、現状では
(define-char
`((ucs . ,(+ (lsh #x7F 24)
1))
(foo . hoge)
(bar . geho)))
みたいに嘘の ucs 属性を付けるか
(let ((char-obj (int-char (+ (lsh #x7F 24) 1))))
(put-char-attribute char-obj 'foo 'hoge)
(put-char-attribute char-obj 'var 'geho)
char-obj)
みたいに put-char-attribute を使って自前で作るかになります。
とはいえ、近日中に system-char-id 自動割り当て機構(但し、ゴミ回収無し)
を入れます。その場合は、
(define-char
`((foo . hoge)
(bar . geho)))
でいけるようになる予定です。
--
===『幾千億の分子に分かれても ========================================
決して忘れない。
この宇宙が終るまで』 守岡 知彦 (MORIOKA Tomohiko)
====================== Email: <tomo @ kanji.zinbun.kyoto-u.ac.jp> ======
More information about the CHISE-ja
mailing list