[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: [MD:7426] emacs-22_0_50-20060729 マージ



やまざきです。

Date: Sat, 29 Jul 2006 08:01:13 +0900
From: MIYOSHI Masanori <miyoshi@xxxxxxxxxxx>
Subject: [MD:7426] emacs-22_0_50-20060729 マージ
> 
> r4131で 2006/07/29時点の Emacs CVS HEAD のスナップショット
> http://svn.meadowy.org/Meadow/tags/emacs-22_0_50-20060729/
> をマージしました。
> 
> 問題があったら報告をお願いします。
> 

手元に他の環境がないので、CVS HEADの問題か、Meadow固有の
問題か、わたしの環境の問題か、不明ですが、一応報告します。

sit-forで秒指定した場合、キー入力やWindowsのイベントが発生するまで、
応答が戻ってこないようになっているみたいです。

以下の式をcygwin環境でコンパイルしたMeadowを、
 -qで起動し、*scratch*バッファで評価した場合、

(progn
  (if (sit-for 5)
      (message "time over")
    (message "key input")))

r4128では、5秒間入力がない場合、"time over"と表示されますが、
r4131では5秒たっても、キー入力または、マウスを移動させない限り、
messageが表示されません。

これによって、
(1) Wanderlustの起動時のsplash表示がキー入力されるまで表示されつづける。
(2) MewでPOP over SSL(stunnel)でメールを取得する場合、
    キー入力されるまで、接続が進まないことがある。
(3) -qで起動して、*scratch*で')'を入力した場合、いったんカーソルが
    '('に移動するが、キー入力されるまでもとの位置に戻らない。
といった現象が発生します。

一応以下のようにすれば、上記の式で5秒間入力ない場合、
100%ではありませんが、"time over"するようになります。
また、上記の(1)/(2)の現象は、発生しなくなりますが、
(3)は、少しは改善しますが、まだ発生します。

ただ、この修正は、影響範囲が不明であることと(3の現象の
発生の仕方が少し異なります)、100%改善するわけでもないことから、
他にもブロックする要因があると思うので、十分ではないです。

# sif-forの実装がかわってから、display-timeが更新されなくなるなど、
# なんとなく挙動がおかしかったのですが、いまさらなんで
# 変更されたのですかね?

Index: mw32term.c
===================================================================
--- mw32term.c  (revision 4131)
+++ mw32term.c  (working copy)
@@ -4534,7 +4534,9 @@
   if (expected)
     {
       ResetEvent (keyboard_handle);
+#if 0
       WaitForSingleObject (keyboard_handle, INFINITE);
+#endif
     }
   return 0;
 }


-- 
yamazaki-k(at)mwe.biglobe.ne.jp