[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: emacs-w3m underlines everything andmixes up URLs (new w3m-0.5?)



skkの準備ができました。

> に変えてみると、終了点より開始点が大きい overlay が観測されます。
> これが、以前の Emacs では overlay は存在しても表示には影響しない
> 理由なんでしょうか。そういうお話を emacs-devel でなさってました
> よね。
はい。現在markerで実装されているregisterをmarkerで実装すると便利である
ということをemacs-develでやっているうちにoverlayにバグあることに気付
きました。御指摘の通り overlay-startとoverlay-endが逆転する場合があります。
直したつもりですが、まだ完全に直しきっていません。またそれに関連してRMSは
overlay-startとoverlay-endが逆転するような場合、overlay-startとoverlay-endを
入れかえるのではなくて、overlayを空((eq overlay-end overlay-start) => t)に
するよう直せという指示も私に出してます。というのが背景でしょうか。

今のところ私がバグを入れたのか、既存のelispが間違ったemacsのoverlayの実
装に依存していたのか不明です。とにかく、今後overlay-startとoverlay-end
が反転してしまうことがないようにemacs-develにて私は努力します。
従ってoverlay-startとoverlay-endが逆転することを想定して書いたコードは
動かなくなる可能性があります。

前のメールで書きましたevaporateの使いかたです。
(overlay-put (widget-get w :button-overlay) 'evaporate t)
としてやれば、長さ0のoverlayが自動的に消えます。

(let ((buffer (get-buffer-create "*testing*"))
      (widget-button-face 'mode-line)
      (pop-up-windows t)
      pop-up-frames overlay)
  (pop-to-buffer buffer)
  (erase-buffer)
  (mapcar 'delete-overlay (overlays-in (point-min) (point-max)))
  (insert "foo")
  (let ((w (widget-convert-button 'push-button (point-min) (point-max))))
    (overlay-put (widget-get w :button-overlay) 'evaporate t)
    )
  (erase-buffer)
  (setq overlay (car (overlays-in (point-min) (point-max))))
  (prog1
      (and overlay
	   (pp-to-string (overlay-properties overlay)))
    (insert "bar")))

明日、emacs-develとemacs-w3mのアーカイブを読んで、問題を理解したいと思
います。emacs, emacs-w3m、それぞれどっちをどうすべきか、調べたいと思い
ます。

みなさんには御迷惑をおかけしますが、今しばらく時間を下さい。

大和

p.s. 「project管理」は入っているけど、gccもcvsもw3mもないのか...