■掲示板に戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 最新50

レス数が950を超えています。1000を超えると表示できなくなるよ。

2ch専用ブラウザ「Navi2ch」

698 :名無しさん@お腹いっぱい。 :01/11/10 16:05
>>667, >>668

read-charして、qだったら「読まなかったことに」して、nilを返す。
それ以外だったらy-or-n-pと同じ動作っていうのでどう?

y-or-n-pってさ、Cで書かれたsubrなんだよね。
だから本当に同じ動作するようにLispだけで書くのは難しそう。

ポップアップウインドウが出なくてよければ(-nwのときの動作だけでよければ)
こんなのでどう? qとQの区別は保存される。

(defun navi2ch-y-or-n-p (prompt)
(let ((myprompt (concat prompt "(y, n, or q)"))
(again nil))
(catch 'exit
(while t
(let ((c (read-char prompt)))
(cond ((memq c '(?q ?Q))
(setq unread-command-char c)
(message (concat prompt "q"))
(throw 'exit nil))
((memq c '(?y ?Y ?\ ))
(message (concat prompt "y"))
(throw 'exit t))
((memq c '(?n ?N ?\177 ))
(message (concat prompt "n"))
(throw 'exit nil))
(t
(ding)
(or again
(setq prompt (concat "Please answer y, n, or q. " prompt)
again t)))))))))

変数unread-command-*のDoc読んでね。

# うげ、unread-*-input-method-eventsなんてあったのか……


新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver5.26+ (01/10/21-)