w3m


w3m 0.3.2.1-1k1 てのをちょい前に build した、その known bugs:

  1. form からの入力は Ng とかだと出来るんだが、TextEdit からだとできなかった。
  2. タッチパネルに対応せず。
  3. UTF-8 非対応。
  4. 罫線が '+', '-' とかだった。
  5. アンダーラインがゴミとなって残る。
  6. イメージでーへん (... これ、そもそも konsole 側無修正で実装可能なのか?)
このうちの 1, 2 について fix.

libgc 側の ZERO_PAGE バグ対策

バグ持ち A300 カーネルで w3m を動かすための修正。中身はこんなの:
--- w3m-0.3.2.1.org/gc/misc.c   Tue Dec  3 21:25:17 2002
+++ w3m-0.3.2.1-k1/gc/misc.c    Tue Dec  3 21:25:32 2002
@@ -77,4 +77,4 @@
 #undef STACKBASE
 #endif
 
-GC_FAR struct _GC_arrays GC_arrays /* = { 0 } */;
+GC_FAR struct _GC_arrays GC_arrays = { 0 };
元ソース、中途半端に親切だな ... バグを予測してるあたりがなんともいえず。

タッチパネル対応

Embedded-konsole は xterm な mouse event をやりとりできる。 w3m のマウス関連コードは xterm 用を入れようとすると ついでに libgpm を要求するので、libgpm 関連を外す
... 必要があるのは、 実は ./configure として流す時にホスト環境の libgpm に反応してるからだろーが、 configure を直接クロスで流すのよりこっちのほうが楽。

なお、Embedded-konsole は TERM=vt100 になる。 一方、素の w3m では xterm なマウスを使うには、TERM が xterm, kterm, rxvt ... のたぐいでなければならないことになっていたので、TERM=vt100 でも使えるようにした。 リモートで本物の vt100 系のターミナルを使った時に xterm なイベントが入って来るはずはないから、 これによる副作用はないはずだ。

TextEdit 対応

TextEdit のおバカなところだが、 ".txt" がついてないファイルには保存時には勝手に ".txt" をつける。 しょうがないから w3m 側でエディタに渡すファイル名に ".txt" をつけるようにしただけ ...

ただ、現状ではあいかわらず 1 行エディットなやつは キーボードから日本語が入らへん。

ついで

News と Migemo を追加した。

仮名漢字変換を殺してキーボード使ってるケースでも検索できるように。 使わないなら migemo を入れなければすむ話で、そーしても誤動作はしない。 対応してもバイナリを大きくする訳ではないので、いれておく。 ターミナルは手書きからだと日本語入力できるけど、キーボードからだと(まだ)できないからねぇ ... ってことだったんだが、シャープさん家にライブラリヘッダファイル登場で、 早晩キーボードから konsole への日本語入力ができるようになるだろう。

よーやく 仮名漢字変換の候補文字列を変換途中で拾うことができるようになったところなんだけどなぁ ... って、おいおい、仮名漢字変換 I/F の実装クラス出てないじゃんっ!

宿題として残ってるもの

いや、解決してからだそーかと思ってたんだが ... ま、いいや、ってことで。
UTF-8
ノーマルの w3m は unicode ファイルを読めない。m17n パッチ当てたら読めた。 w3m-mee も試したが、たかが unicode 対応のためには大きすぎた。 とはいえ、m17n もデカいんだが ...

ただ、このコードは今回は入ってない。m17n 化すると罫線がでーへん。 JIS 罫線使おうとしてトーフになる。うーむ、なんでやねん。

アンダーライン
アンダーライン付きの文字は、スクロールなどで空白になった時に アンダーラインが消えない。

実はすっごく見覚えのあるバグなんだが ... すまん、対処の仕方きれいさっぱり忘れたので 一からデバッグやりなおし。てわけで、今回は略。

スクリーンショット

... を撮ってみても前回から何が違うとゆーわけでもないので略。つか、眠い。

タップ 1 回でカーソルが移動、もいっかいタップするとジャンプ、 といったタップ操作のたぐいはてきとーにたたいてみればわかると思う。

パッケージ

w3m 使うのには w3m 本体以外に libssl, libcripto が必要。 Migemo 使う場合は、さらに ruby 本体が要る。

追記

C700 などでは quickexec の関係で /home/QtPalmtop/lib に libgc を置いてはまずいらしい ... てことで、/usr/lib に置いたパッケージ: 当然だが、/usr/lib 下にファイルがあるため、こちらは SD 等に入れることはできない。

追記、その2

アンダーラインが残るという問題について。
embedded-konsole-ja の修正版が 公開された。
... が、まだカラーちょっとヘンかも。

追記、その3

罫線バグ解決。.... embedded-konsole 側のバグっつーか、lcfont との相性問題だった。 以下のパッチembeddedkonsole/TEWidget.cpp にあてると embedded-konsole + lcfont で罫線が正常になる:
--- TEWidget.cpp.org	Fri Jan 24 00:38:09 2003
+++ TEWidget.cpp	Fri Jan 24 00:38:46 2003
@@ -262,7 +262,7 @@
   identicalMap;
 */
   QString encoding = QFont::encodingName(font().charSet());
-  if (encoding == "iso10646" || encoding == "Set_Ja") {
+  if (encoding == "iso10646" || encoding == "Set_Ja"  || encoding == "AnyCharSet") {
       fontMap = identicalMap;
   } else {
       fontMap = vt100extended;

追記、その4

これ以後の話はkonsole と w3m にて。

なお追記 (Feb. 27, 2003)

こっちにも書いとく。w3m サマリを分離したので w3m 0.4 以後は w3m のページ にて。
[日記へ] [目次へ]