YamaKen
yamak****@bp*****
2004年 9月 27日 (月) 21:38:46 JST
ヤマケンです。 At Mon, 27 Sep 2004 05:03:33 -0700, komat****@taiya***** wrote: > At Sun, 26 Sep 2004 13:22:28 +0900, > Kazuki Ohta wrote: > > > > > 2) uim-primeで文字を確定させると、同じ文字が再度表示される > > > > > あきのやま と入力してスペース→Enter > > > > > このように表示されます: > > > > > http://www.geocities.co.jp/SiliconValley-Cupertino/5207/snapshot/uim-pr > > > > >ime-svn1292.png (prime-0.8.4) > > > > > > > > r1295で修正しました。 > > > > > > 最近define-recordを導入した時に書き換えをミスったようです。すい > > > ません。 > > > > > > これで不具合は解消したでしょうか? >kzkさん > > 解消されました。修正どうもですm(_ _)m > > 最近メールを追い切れていないので、見落としてしまっているのかもしれませんが、 > define-record とはどういったものなのでしょうか。また uim-prime としては > どのような変更が加えられたのでしょうか? define-recordは各IMのcontextで使われているようなaccessor付きの listを安全かつ簡単に定義するためのものです。r1228でprimeを含む全 てのIMのcontext定義をこれで置き換えました。 次のような式を評価すると、 (define-record 'foo '((member1 ()) (member2 "2") (member3 3))) 以下のprocedureが定義されます。 foo-new foo-member1 foo-set-member1! foo-member2 foo-set-member2! foo-member3 foo-set-member3! これを導入する前のuimではanthy-context-newなどで各メンバのデフォ ルト値を設定するためにindexを数えたりする必要がありましたが、こ れは面倒なだけでなくバグの温床なので(実際anthy-contextでは要素数 が食い違っていました)define-recordでは各メンバ名のすぐ横に書ける ようにしました。 以下のように動作します。 uim> (foo-new) (() "2" 3) uim> (foo-new 'one 'two 'three) (one two three) uim> (foo-new 1) (1 "2" 3) uim> (foo-member2 (foo-new)) "2" まだドキュメント化が不十分ですが、とりあえずdefine-recordの動作 を知りたい場合はtest/test-util.scmを見てください。 また、define-record化の他にr1304で'context object integration'と いう作業を全IMに対して行っています。こちらも単純化のための作業で すが、Scheme APIの変更を含むので影響が大きくなっています。 API/ABIの変更はIMやbridgeの開発者に対する影響が大きいので doc/COMPATIBILITYというドキュメントを作ってその変更を記録する事 にしました。context object integrationについてはそちらに記述した ので参照してください。define-recordについても記録しようと思いま す。 ------------------------------- ヤマケン yamak****@bp*****