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

Re: some Google links not linked?



白井です。

最近、Mew で HTML メールを読むと、なんだか壊れているなと思ってい
たのですが、

From: Katsumi Yamaoka <yamaoka@xxxxxxx> さん曰く
Subject: [emacs-w3m:11452] Re: some Google links not linked?
Message-ID: <b4mlj3lcjqq.fsf@xxxxxxx>
Date: Mon, 20 Dec 2010 10:31:57 +0900

> | w3m-fix-illegal-blocks is a compiled Lisp function in `w3m.el'.

で、

(defun w3m-fix-illegal-blocks ()
...
  (let ((case-fold-search t))
    (goto-char (point-min))
    (while (re-search-forward "<a[\t\n ]" nil t)
      (narrow-to-region (match-beginning 0)
			(or (w3m-end-of-tag "a") (point-max)))
      ...
      (widen))))

としているのだけど、Mew からは w3m-region() を star end を設定し
て呼んでいるので、

(defun w3m-region (start end &optional url charset)
  ...
  (save-restriction
    (w3m-process-stop (current-buffer))
    (narrow-to-region start end)
    ...
	      (w3m-rendering-buffer charset)))
      (w3m-fontify)
    ...

ここで、一回 narrowing しています。で、w3m-fix-illegal-blocks()
の widen() で w3m-region の narrow-to-region() も一気にもとに戻
しているからおかしくなって、w3m-fontify() がメールのヘッダー領域
の表示を壊してしまっています。

これは Emacs 22.3 での挙動ですが、これって(最近使っている暇が無
い ;_;) 最新の Emacs だと大丈夫なのでしたっけ?

遅くなるけど、とりあえずは

(defun w3m-fix-illegal-blocks ()
  (let ((case-fold-search t))
    (goto-char (point-min))
    (while (re-search-forward "<a[\t\n ]" nil t)
      (save-restriction
	(narrow-to-region (match-beginning 0)
			  (or (w3m-end-of-tag "a") (point-max)))
	...))))

としていただくとうれしいです。

-- 
白井秀行 (mailto:shirai@xxxxxxxxxxx)