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

Anchor ends with whitespace, generated by w3m -halfdump



中川@ OS/2 残党です。一応 OS/2 固有の問題ではないと思われますが、重要
性の低そうなネタで申し訳ありません。

  w3m -halfdump (w3m ver 0.2.1) がスペースで終わる anchor を吐くことが
あるようです。すると w3m-fontify-anchors が anchor の終わりのスペース
(タブ、改行、改頁も)を消してしまうので、カラム数が合わなくなってしま
います。

  具体的には、例えば、
	http://nannjou.vis.ne.jp/D/9810/1023.html
  の table の下端が
----------------------------------------------------------------
┃                                                                        ┃
┃ 前の日へ[go_top]                                             次の日へ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
----------------------------------------------------------------

  のようになってしまいます。「前の日へ」「[go_top]」「次の日へ」がそれ
ぞれ anchor で、本来はイメージが張ってあるのですが何故か「[go_top]」だ
け alt= がないという不思議な HTML ソースです。裸の w3m で見ると「前の
日へ」と「[go_top]」の間にスペースが一個入り、そのスペースは「前の日へ」
アンカーの一部となっています(HTML ソースからはアンカーの一部になるの
はおかしいという説もあります)。

;;   w3m を直すべき、という声もありますが、敷居が高いし、誰も困ってな
;; い、と言うし。w3m 1.0 では直ってるかも、との事ですが(スペースが入
;; るのはおかしいらしい)、最近 OS/2 でコンパイルしたことがないので。

  とりあえず w3m.el 側で whitespace はアンカーの一部とはならないように
直すとするとこんな感じになると思います(改頁後に diff 添付)。スペース
等もアンカーの一部としてしまって良いなら re-search-forward の regex か
ら「[ \t\r\f\n]*」を取ってしまえば済むのですが。

;;   トップページは『南条あやの保護室』
;;	http://www.nanjou.org/
;;   です。「神経に触るモン紹介すな」というご批判は甘受いたします。
;;   HTML ソースを直せ、とこのページに文句を言うのもいかがなものかと。
;;;; 新しい薬が処方される度に検索する癖はやめた方が良いかもしれない。

ではでは。

================================================================
 中川貴之  (株)日立製作所 エンタープライズサーバ事業部 Nセ2G
	     使用上の注意を守っていただけば安全です。
	 (フィリップ・K・ディック『ユービック』より)
================================================================

cd j:/usr/local/emacs-20.x/site-lisp/emacs-w3m.010725/
diff -u -a "j:/usr/local/emacs-20.x/site-lisp/emacs-w3m.010725/w3m.el.ORG" "j:/usr/local/emacs-20.x/site-lisp/emacs-w3m.010725/w3m.el"
--- j:/usr/local/emacs-20.x/site-lisp/emacs-w3m.010725/w3m.el.ORG	Wed Jul 18 14:25:44 2001
+++ j:/usr/local/emacs-20.x/site-lisp/emacs-w3m.010725/w3m.el	Wed Jul 25 12:01:14 2001
@@ -1378,8 +1378,9 @@
 	(delete-region start (point))
 	(cond
 	 (href
-	  (when (re-search-forward "[ \t\r\f\n]*</a>" nil t)
-	    (delete-region (setq end (match-beginning 0)) (match-end 0))
+	  (when (re-search-forward "[ \t\r\f\n]*\\(</a>\\)" nil t)
+	    (setq end (match-beginning 0))
+	    (delete-region (match-beginning 1) (match-end 1))
 	    (setq href (w3m-expand-url (w3m-decode-anchor-string href)
 				       w3m-current-url))
 	    (w3m-add-text-properties start end

Diff finished at Wed Jul 25 12:07:05