[mew-dist 18892] アドレス補完 + 大文字小文字 + 補完バッファ
Hideyuki SHIRAI ( 白井秀行 )
shirai at example.com
2001年 9月 12日 (水) 19:13:27 JST
draft の To: などで、補完するときに、補完バッファを表示しますが、
そっちのバッファで、マウスやリターンしたときの不具合の話です。
ちなみに mew-complete-address-ignore-case => t なときね。
例えば、shi は shirai, shibata の候補が出る環境で、
To: shi^t
とすると、補完バッファに shirai や shibata が表示され、shirai を
クリックすると、
To: shirai
と補完が完成しますが、ちょっと間違って、
To: Shi^t
~ <= 大文字
と書いたとき、補完バッファの shirai をクリックすると、
To: Shishirai
となってしまいます。う〜〜〜ん、悲しい。
以下の様に、Mew の関数を思いっ切り単純化した
(defun hoge ()
(interactive)
(let ((alist '(("shirai0" "shirai0")
("Shirai1" "Shirai1")))
(completion-ignore-case t))
(with-output-to-temp-buffer "*tmp*"
(display-completion-list
(all-completions "Shi" alist)))))
を定義しておいて、
shi
Shi
の各行の後ろで M-x hoge とやって、いろいろ実験してみればわかると
思います。
で、あきらめ切れずに調べたところ simple.el の
choose-completion-delete-max-match() をみると、ちゃんと
completion-ignore-case を見ています。でなんでかな?と思ったら、
(defun hoge2 ()
(interactive)
(let ((alist '(("shirai0" "shirai0")
("Shirai1" "Shirai1"))))
(setq completion-ignore-case t)
(with-output-to-temp-buffer "*tmp*"
(display-completion-list
(all-completions "Shi" alist)))))
のように completion-ignore-case を global に拘束すると思った通り
に動作しました(良く考えれば当然の結果ですが)。
しかし、実際はどうやって拘束すると素敵かは考え付いていません。
minibuffer で buffer local にすると、Mew 以外で困るような気がす
るし。
## というのを mew-ldap の実験をしていて気付いてしまいました。
## 要求仕様は、大体固まったような気もする > 後藤さん
--
白井秀行@けど、すちゃらかな話をする気分にはなれないなぁ。
Mew-dist メーリングリストの案内