uimその後
http://slashdot.jp/~YamaKenZ/journal/387552 にて捕捉。
タレコんだのだれだ?私じゃないよ。
ipv6対応について
1.5.0へ取り込まれるとのこと。
ところで、getaddrinfoの無い古いシステム向けの代替関数実装ってありますでしょうか? 現状のuimは移植性に関してかなりいい加減なんですが、SigSchemeの導入を起点として非POSIXな組み込み環境等にも対応できるようなまっとうなコードにしていきたいと思っています。なので、伝統的socket APIへの汎用のwrapperが存在しない場合はHAVE_GETADDRINFOで実装を切り換えられるようなコードへの書き変えをお願いできないでしょうか?
skk.c以外でもネットワークを利用する可能性があることを勘案すると、
下手に#ifdefを加えるよりもgetaddrinfoをuimに追加した方がいいと思います。
openssh-portable
の
openbsd-compat/fake-rfc2553.{h,c}
をコードツリーに追加し、両コード上のHAVE_*をuim/config.h.inに追加すれば、
opensshの動く処理系上での動作が保証されることになるでしょう。
一応パッチを更新しておきました:files:patch-uim_skk_c
今回のパッチは無駄な空白の削除と、接続にipv4, ipv6のどちらかを強制させるかどうかをuim-prefで設定できるようにする変更を含みます。
インジケータについて
あ、すいません。既にbridgeのインジケータをいじるという前提の話でしたね。 context-propagate-prop-list-updateの中でcontext-current-modeの結果に応じてbridge-show-input-state?をいじれば動きそうな感じです。
こうですか!?わかりません><
$ cat ~/.uim
;; -*- scheme -*-
(define bridge-show-input-state? #f)
(define bridge-show-input-state-time-length 0)
(define context-propagate-prop-list-update
(lambda (context)
(let* ((widgets (context-widgets context))
(branches (map widget-compose-live-branch
widgets))
(widget-config-tree (apply string-append branches)))
(if (eq? (context-current-mode context) 0)
(set! bridge-show-input-state? #f)
(set! bridge-show-input-state? #t))
(im-update-prop-list context widget-config-tree))))
うまく動作するように見えるのですが、 直接入力へ戻るときに、インジケータが消えてくれません(しかも内容が|あ|のまま)。 たいていのソフトではフォーカスを移してやると消えますが、 firefoxに至ってはアクティブウインドウを切り替えないと消えません。
wmはfvwm, pwm, twm, mwmでこの現象が再現されました。
blog comments powered by Disqus