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

Re: new release w3m-0.4 -> emacs-w3m doesn'twork properly!



とりあえず、日本語だけ。

From: "clemens fischer" <ino-qc@spotteswoode.de.eu.org> さん曰く
Subject: [emacs-w3m:04683] new release w3m-0.4 -> emacs-w3m doesn't work properly!
Message-ID: <vfz9sc3d.fsf@ID-23066.news.dfncis.de>
Date: 24 Feb 2003 20:38:46 +0100

> please check the following sites:
> 
> http://dsbl.org/     -> returns 0

これ見てみると、

% w3m -o follow_redirection=0 -dump_extra http://dsbl.org/
Number of redirections exceeded 0 at http://dsbl.org/
W3m-current-url: http://dsbl.org/
W3m-document-charset: US-ASCII
HTTP/1.1 302
Server: Apache/1.3.27 (Unix) mod_ssl/2.8.12 OpenSSL/0.9.6g
X-Powered-By: PHP/4.3.1
Location: http://dsbl.org/main
Content-Type: text/html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtmll-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
 <<< snip >>>

となっていて、

HTTP/1.1 302

の行で

rfc2626> Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF

の " SP Reason-Phrase" が無いのが原因でした。

簡単な話、

(defun w3m-w3m-attributes (url no-cache handler)
 <<snip>>
	   ((or (string-match "HTTP/1\\.[0-9] 200 " header)
		(setq moved (and (string-match "HTTP/1\\.[0-9] \\(30[1237]\\) "

を 

(string-match "HTTP/1\\.[0-9] \\(30[1237]\\)[^0-9]"

にしてしまえば良いだけなのですが、調べた限りでは『Reason-Phrase
を省略して良い』と書いてある文献は見つけられませんでした。良くわ
からないので、この辺の文法(?)に詳しい方のフォローをお願いします。(_ _)


P.S.
前に山岡さんが言われた、

From: Katsumi Yamaoka <yamaoka@jpl.org> さん曰く
Subject: [emacs-w3m:04635] Re: serious form submission bug: !CURRENT_URL!
Message-ID: <yotlznpboc45.fsf@jpl.org>
Date: Wed, 05 Feb 2003 08:32:58 +0900

山岡さん> http://ccvs.cvshome.org/servlets/ProjectDownloadList
山岡さん> 
山岡さん> という場所から、例えば cvs-1.11.5.tar.gz を d キーでダウンロード
山岡さん> すると ProjectDownloadList という名前になってしまうのですが、後
山岡さん> で確認するとこれは正真正銘の cvs-1.11.5.tar.gz であることがわか
山岡さん> ります。[*]

は、w3m-w3m-get-header() で w3m-w3m-attributes() のように自前で
redirect を扱えば出来るというのはわかったのですが、まだ全然手を
つけられません。(_ _)

## w3m -dump_head のとき main.c で
##	    else if (!strcmp("-dump_head", argv[i]))
##		w3m_dump = (DUMP_HEAD | DUMP_EXTRA);
## でも良い(というか、とっても簡単)のですが、これは無理ですよね、
## やっぱり。

-- 
白井秀行 (mailto:shirai@rdmg.mgcs.mei.co.jp)