[Mew-dist 12597] Re: password 入力に失敗すると imget が終了しません

Hideyuki SHIRAI ( 白井秀行 ) shirai at example.com
2000年 3月 3日 (金) 20:13:54 JST


From: Mori Kouji <mori at example.com> さん曰く
Subject: [Mew-dist 12596] password 入力に失敗すると imget が終了しません
Message-ID: <80putcx18u.fsf at example.com>
Date: Fri, 3 Mar 2000 10:59:17 +0900

mori> mew-1.95b28 で password を入力するときに、間違えて
mori> 変なキー (カーソルキーなど) を押してしまうと、

mori>  error in process filter: Non-character input-even

mori> と表示され、imget が動いたままになって、imget を直接 kill しないと
mori> いけないはめになります。emacs-20.5 でのことですが、他のとこでは
mori> 問題ないのでしょうか?

# C-cC-k で imget は kill されますよね?

Emacs-20.6 なのですが、同様になりました。XEmacs をためしたら、相
当変なことをしない限り大丈夫みたいです。

mori> Signaling: (error "Non-character input-event")
mori>   read-char(nil t)
mori>   read-passwd("Enter password (yashoda) : ")
mori>   mew-read-passwd("Enter password (yashoda) : ")

subr.el の read-passwd でキー入力を待っている read-char が

If the user generates an event which is not a character (i.e. a mouse
click or function key event), `read-char' signals an error.  As an
exception, switch-frame events are put off until non-ASCII events can
be read.
If you want to read non-character events, or ignore them, call
`read-event' or `read-char-exclusive' instead.

とのことで、error になってしまいます。というわけで、こういう現象
を退避するなら、

1. Mew の自前の read-passwd を使うように元に戻す。
 read-char-exclusive を使っているから大丈夫。

2. 以下のパッチで imget を error にして救う。passwd が "" なんて
 人はいませんよね?

かなぁ。

-- 
白井秀行 (mailto:shirai at example.com)

--- mew-minibuf.el.orig	Wed Jan 26 22:34:55 2000
+++ mew-minibuf.el	Fri Mar  3 19:47:29 2000
@@ -432,7 +432,9 @@
 (defun mew-read-passwd (prompt)
   (let ((inhibit-input-event-recording t))
     (if (fboundp 'read-passwd)
-	(read-passwd prompt)
+	(condition-case err
+	    (read-passwd prompt)
+	  (error ""))
       (let ((pass "")
 	    (c 0)
 	    (echo-keystrokes 0)




Mew-dist メーリングリストの案内