- 114 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/26 10:49]
- 時間がかかる処理をしていて、何かキーが押されたら中断する、ということを
考えています。試しに下のようなのを書いてみました。 (defun g () (interactive) (let ((i 0)) (while t (setq i (1+ i)) (when (input-pending-p) (keyboard-quit))))) これはうまくいきました。 今、やりたいのは 上記のwhile部分がブラックボックス扱いのときで、 (defun heavy-proc () (let ((i 0)) (while t (setq i (1+ i))) i)) という関数の中身を変更せずに、呼び出した後でキー入力があれば中断して戻 るということがしたいのです。割り込みのような感じです。 (defun f2 () (interactive) (condition-case nil (heavy-proc) ..... とやればいいのかなと思ったのですが、肝心のキーが押されたらエラーを発生 するやり方がさっぱり見当がつかないのです。 なにか良い方法を知っておられましたら、教えてやってくださいまし。
|

|