[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
w3mmee vs emacs-w3m problems (was: ...)
From: Hideyuki SHIRAI (白井秀行) <shirai@rdmg.mgcs.mei.co.jp> 曰く
Subject: [emacs-w3m:00733] w3m-dtree, w3mmee support, stop form action, etc...
Message-ID: <20010510.181743.68556239.shirai@rdmg.mgcs.mei.co.jp>
Date: Thu, 10 May 2001 18:17:43 +0900 (JST)
白井> w3mmee と emacs-w3m が仲よしになるには、もう少し擦り合わせが必要
白井> となりそうです。須藤さんにお願いしたいこともあるのですが、今日は
白井> すでに私の余暇の時間がつきたので、また今度ということで。
# やっぱり余暇の時間は無理やり作るものだということで。。。:-)
## 以下、長文失礼します。
ちなみに、Solaris7 + (5/10朝の時点の)最新の w3mmee-dev + 最新の
libmoe-dev での話です。また、以下の環境変数を設定しています。
% echo $W3MLANG
ja_JP.eucJISX0208
(1) まず core dump の話から (これ私だけだったらごめんなさい ^^;;;)
Which language do you prefer?
1 - Japanese (charset ISO-2022-JP, EUC-JP, Shift_JIS)
2 - English (charset US_ASCII, ISO-8859-1, etc.)
3 - Many (ISO 2022, Shift_JIS, Big Five, UTF-8, and so on)
[3]? 3
で作った w3mmee で frame 付きの web を -dump=extra or source or
decode すると、seg fault します。'1 - Japanese' だと大丈夫です。
gdb って全然使い方を知らないのですが、
% gdb /usr/local/bin/w3mmee core
GNU gdb 5.0
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "sparc-sun-solaris2.7"...
Core was generated by `w3mmee -dump=extra,head,source http://www.symbio.jst.go.jp/'.
Program terminated with signal 11, Segmentation Fault.
Reading symbols from /usr/lib/libm.so.1...done.
Loaded symbols for /usr/lib/libm.so.1
Reading symbols from /usr/local/lib/libmoe.so...done.
Loaded symbols for /usr/local/lib/libmoe.so
Reading symbols from /usr/lib/libsocket.so.1...done.
Loaded symbols for /usr/lib/libsocket.so.1
Reading symbols from /usr/lib/libnsl.so.1...done.
Loaded symbols for /usr/lib/libnsl.so.1
Reading symbols from /usr/lib/libc.so.1...done.
Loaded symbols for /usr/lib/libc.so.1
Reading symbols from /usr/lib/libdl.so.1...done.
Loaded symbols for /usr/lib/libdl.so.1
Reading symbols from /usr/lib/libmp.so.2...done.
Loaded symbols for /usr/lib/libmp.so.2
Reading symbols from /usr/platform/SUNW,Ultra-80/lib/libc_psr.so.1...done.
Loaded symbols for /usr/platform/SUNW,Ultra-80/lib/libc_psr.so.1
Reading symbols from /usr/lib/nss_nisplus.so.1...done.
Loaded symbols for /usr/lib/nss_nisplus.so.1
Reading symbols from /usr/lib/libdoor.so.1...done.
Loaded symbols for /usr/lib/libdoor.so.1
#0 0xfef8a89c in fileno () from /usr/lib/libc.so.1
(gdb) where
#0 0xfef8a89c in fileno () from /usr/lib/libc.so.1
#1 0xff13484c in mb_find_info () from /usr/local/lib/libmoe.so
#2 0xff135580 in mb_fflush () from /usr/local/lib/libmoe.so
#3 0x80568 in refresh ()
#4 0x5de88 in displayBuffer ()
#5 0x479a8 in rFrame ()
#6 0x40cf0 in main ()
な感じになっています。
(2) -dump=extra,head,decode で binary data をとってくると、
source 部分にも変換がかかってしまうようです。
% w3mmee -dump=extra,head,source http://namazu.org/~tsuchiya/emacs-w3m/w3m-el.png > z1.txt
% w3mmee -dump=extra,head,decode http://namazu.org/~tsuchiya/emacs-w3m/w3m-el.png > z2.txt
% ls -la
-rw-r--r-- 1 shirai rd3 5250 May 10 18:47 z1.txt
-rw-r--r-- 1 shirai rd3 6065 May 10 18:48 z2.txt
z1.txt から extra,head 部分を消すと正常な画像になりますが、
z2.txt からは × です。
## 前のメールで、-dump=extra,head,source を使っていると書いたの
## は、実は、これが大きな原因でした。
(3) deflate/inflate
http://cvs.m17n.org/~akr/diary にアクセルすると、
% w3mmee -dump=extra,head,source http://cvs.m17n.org/~akr/diary/
W3M-Current-URL: http://cvs.m17n.org/~akr/diary/
W3M-Document-Charset: iso-8859-1
HTTP/1.1 406 Not Acceptable
DeleGate-Ver: 5.9.12 (delay=0)
Date: Thu, 10 May 2001 09:55:50 GMT
Server: Apache/1.3.9 (Unix) Debian/GNU
Alternates: {"index.html" 1 {type text/plain} {charset iso-2022-jp} {encoding deflate} {length 3537}}
Vary: negotiate
TCN: list
Content-Type: text/html; charset=iso-8859-1
Via: 1.0 - (DeleGate/5.9.12)
406
で終わってしまいます。inflate 自体は emacs-w3m から実行している
ので、stdout に deflate がかかったままの binary data を出力する
ことは可能でしょうか?
## この前、inflate.c にも Win32 BINARY 問題があるのに気付いてし
## まったけど ^^;;;
(4) 文字コードの話
白井> なお、w3mmee で文字コードの変換をすると、emacs-w3m 内部の cache
白井> 情報と矛盾が生じるので、その辺りをなんとかしないといけない(と書
白井> きながら、実は良くわかっていない)のですが、今回、その辺を無視し
白井> て導入してしまいました。
これなのですが、例えば、
http://namazu.org/~tsuchiya/emacs-w3m/index.html
は iso-2022-jp で書かれています。
そのため、
% w3mmee -dump=extra,head,source http://namazu.org/~tsuchiya/emacs-w3m/ > zzz1.txt
とすると、zzz1.txt は当然中身が iso-2022-jp で extra, header 部
分 + α は
W3M-Current-URL: http://namazu.org/~tsuchiya/emacs-w3m/
W3M-Document-Charset: iso-2022-jp
HTTP/1.1 200 OK
DeleGate-Ver: 5.9.12 (delay=0)
Date: Thu, 10 May 2001 10:00:20 GMT
Server: Apache/1.3.11 (Unix)
Last-Modified: Wed, 09 May 2001 00:34:44 GMT
ETag: "2ac00b-10bf-3af890a4"
Accept-Ranges: bytes
Content-Length: 4287
Content-Type: text/html; charset=iso-2022-jp
Via: 1.0 - (DeleGate/5.9.12)
<!doctype html public "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>Text browther works on emacs</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-2022-JP">
となります。ここで、
% w3mmee -dump=extra,head,decode http://namazu.org/~tsuchiya/emacs-w3m/ > zzz2.txt
とすると、zzz2.txt は環境変数 W3MLANG にしたがって、euc-jp にな
りますが、header 部分は source を指定した zzz1.txt のままです。
この coding-system の矛盾は実際に decode して表示するときは
w3m-decode-all-to-this-charset 変数があるので、問題が無いのです
が、emacs-w3m が内部で cache するときには
Content-Type: text/html; charset=iso-2022-jp
の iso-2022-jp を使うため cache 内で矛盾が生じてしまいます。
これ、例えば、euc-jp で w3mmee で使うときは、
Content-Type: text/html; charset=euc-jp
または、
W3M-Document-Charset: euc-jp
とできないでしょうか?
そうすると、cache との矛盾がなくなるため幸せになります。:-)
それでもまだ -dump=decode で使うと、本来 iso-2022-jp なものが、
(w3m-download "http://namazu.org/~tsuchiya/emacs-w3m/index.html")
として保存すると、euc-jp(など)に変わってしまうという問題が残るの
ですが、(個人的には)こちらは特に気にしていません。^^;;;
もしかするとこの文字コード関係は emacs-w3m の動作をぼくが勘違い
している可能性があるので、間違っていたら指摘してくださいませ。> みなさま
## たくさん書いてしまってごめんなさい。(_ _)
--
白井秀行 (mailto:shirai@rdmg.mgcs.mei.co.jp)