[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: w3m-message in the echo area
>>>>> In [emacs-w3m : No.08310] 土屋さん wrote:
> 表で動いているプログラムが y-or-n-p() でユーザの意向を問うている時に,
> 非同期に動いている emacs-w3m のメッセージで上書きされて質問が見えなく
> なってしまうのに困ったので,echo area にいる時も w3m-message() の出力
> をしないようにしてみました.
例えばこういう場合ですね。
(progn (call-interactively 'w3m-reload-this-page) (y-or-n-p "What? "))
> が,echo area にいるか否かを current-message() で判定しているのですが,
> これだと
> (defun w3m-message-test ()
> (interactive)
> (w3m-message "A")
> (w3m-message "B"))
> として w3m-message-test() を実行すると B が表示されないままになってし
> まいます.何か他に代替案はないでしょうか?
Elisp マニュアルには minibuffer と echo area の衝突を Emacs がど
う回避しているかが述べられていますね。そして、それは成功していま
せん。たぶんボツですが、
(defun w3m-message (&rest args)
"[...]"
(if w3m-verbose
(apply (function message) args)
(if (window-minibuffer-p (selected-window))
(apply (function format) args)
(when (current-message)
(run-at-time 1 nil 'FUNCTION ARGS))
[...]
minibuffer を redraw することができる FUNCTION が無いかなあ...
;; 私信でお伝えした件は、今では問題ありません。