[mew-dist 27903] Re: incでカーソルがeobに移動しないことがある

Hideyuki SHIRAI ( 白井秀行 ) shirai at example.com
2007年 11月 29日 (木) 10:40:30 JST


白井です。

From: KOIE Hidetaka (鯉江英隆) <hide at example.com> さん曰く
Subject: [mew-dist 27891] Re: incでカーソルがeobに移動しないことがある
Message-ID: <20071120.185129.134456685306635125.koie at example.com>
Date: Tue, 20 Nov 2007 18:51:29 +0900 (JST)

> | Emacs のバグを回避する方法を思いつきました。試してみて下さい。
> 
> 不思議とこのパッチでうまくいっています。

ぼくの環境では元ネタの

>> - メッセージを表示 (現在のメールに下線が付く)
>> - C-x 1  (現在のメールに下線は付いたまま)
>> - i

で EOB に動かない、という現象自体の確認ができなかったのですが、

> |   (defun mew-unhighlight-cursor-line ()
> | !   (if (overlayp (mew-sinfo-get-cursor-line))
> | !       (move-overlay (mew-sinfo-get-cursor-line) 1 1)))
> |   
> |   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> |   ;;;
> | --- 38,48 ----
> |   		(save-excursion (beginning-of-line) (point)))))
> |   
> |   (defun mew-unhighlight-cursor-line ()
> | !   (when (overlayp (mew-sinfo-get-cursor-line))
> | !     (move-overlay (mew-sinfo-get-cursor-line) 1 1)
> | !     ;; (goto-char (point-max)) works wrong if underline exists.
> | !     ;; Redisplays it so that it works well.
> | !     (sit-for 0)))

の変更以降、例えば以下の現象が発生します。

『summary の一番上のメッセージが上方に隠れている状態で、任意のメッ
セージに delete mark をつけて exec すると一瞬 summary が
(goto-char 1) した状態で表示されてしまう』

です。もちろんパッチの sit-for() を外せば問題無しです。

ぼくの環境だと、Solaris も Zaurus も Meadow もみんなそうなります。
全部、ほとんど同じ Emacs 23.0.50(Meadow 含む)だからかしら?

手元で mew-unhighlight-cursor-line() をいろいろといじってみまし
たが、この現象は収まりませんでしたので、

(defun mew-unhighlight-cursor-line ()
  (when (overlayp (mew-sinfo-get-cursor-line))
    (move-overlay (mew-sinfo-get-cursor-line) 1 1)
    (when 「なにかの判定」
      (sit-for 0))))

と「なにかの判定」を入れて sit-for() を実行するかどうか決められ
れば良いと考えたのですが、元ネタの「i で EOB に動かない」が再現
出来ないのでさっぱりわかりせん。

# 最悪 オプションかしら?

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



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