[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: [MD:7139] w3m ming binary



白井です。

From: NOKUBI Takatsugu <knok@xxxxxxxxxxxxx> さん曰く
Subject: [MD:7139] w3m ming binary
Message-ID: <87lkxtykyk.wl@xxxxxxxxxxxxxxxxxx>
Date: Fri, 06 Jan 2006 14:38:43 +0900

>   なんとか、dumpのみ動作するw3mがmingwでコンパイルできました。

すっげー。

>   しかし、これを使ってmeadowのemacs-w3mでウェブをみることはまだできて
> いません。例えばgoogleをみにいくと、次のような表示になります。
> 
> Location: http://www.google.co.jp/                                             
> Cannot retrieve URL: http://www.google.co.jp (exit status: 0)
> 
> www.google.co.jp could not be found. Please check the name, and try again.
> 
>   exit statusが0なのは問題ないと思うんですが、なぜこういわれるのかよく
> わかっていません。

ざぁぁと試したところ、dump (-dump_extra) したデータの CRLF が全
部 CRCRLF に変わっちゃっているのが原因のようです。

例えば、

(defun w3m-w3m-dump-extra (url handler)
   ....
      (when success
	(goto-char (point-min))
	(when (search-forward "\r\n\r\n" nil t)
	  (let ((pos (point)))
	    (goto-char (point-min))
	    (while (search-forward "\r" pos t)
	      (delete-region (match-beginning 0) (match-end 0)))))
	(goto-char (point-min))
	(let ((case-fold-search t))
  .... 

な風にして、ヘッダー部分の CRCRLF を CRLF に変えると、普通のペー
ジは見ることが出来ました。なにもしないと、ヘッダーとボディの区切
りがわからないために、その判定でエラーになります。

ただし、そこを乗り越えても、いまどきのページはみんな gzip したり
しているので、body の該当部分でデコードエラーしちゃっています。

なので、~/.w3m/config で

accept_encoding deflate

とかしておくと、deflate 以外は plain text でくるので、とりあえず
のデバッグにはなるかと思います。

# accept_encoding って w3m.el から制御出来ないのね。

というわけで、w3m のどこだかわかりませんが、binary でオープンす
れば OK なんじゃないでしょうか。

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