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

w3m-decode-buffer



昨日に引続きおさわがせします、青田です。

もしかすると、私の環境依存かもしれないのですが
<html lang="ja">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
  </head>
  <body>
    てすと
  </body>
</html>
というHTMLをeuc-jpで保存し、emacs-w3mでソースを見るとSJISに判定されてしまいました。

今のソースでは、content-typeがtext/htmlの時にだけ
metaタグから文字コードを取得していますが、about://source/の時にも
metaタグを使用しても問題はないと思いますが、いかがでしょうか。

また、以下はパッチとは関係ないのですがw3m-decode-bufferで気になった所がいくつかあります。
1.about://source/時も&#nnn;、src・hrefの中の非ASCII文字をdecodeしていること
2.""でくくったものはdecodeされるが、''ではされないこと
3.日本語を含むURIで、#アンカーが使えなさそうなこと
4.3等の理由で日本語アンカーが使えないこと
(3・4はサイトがHTML4.01に準拠していれば問題はないのですが…)
よろしければ検討おねがいします。

;; ソース読んでたらいつのまにか朝…

Index: w3m.el
===================================================================
RCS file: /storage/cvsroot/emacs-w3m/w3m.el,v
retrieving revision 1.1268
diff -u -r1.1268 w3m.el
--- w3m.el	24 Apr 2007 07:35:13 -0000	1.1268
+++ w3m.el	24 Apr 2007 19:17:10 -0000
@@ -4317,7 +4317,8 @@
     (unless content-charset
       (setq content-charset
 	    (or (w3m-content-charset url)
-		(when (string= "text/html" content-type)
+		(when (or (string= "text/html" content-type)
+			  (string-match "\\`about://source/" url))
 		  (w3m-detect-meta-charset))
 		(w3m-detect-xml-charset))))
     (cond