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

Re: w3m.el with backend patch



Citation (with leading "> " of each line) from article:
  <mpaitl5hq53.fsf@azalea.kuee.kyoto-u.ac.jp>
    by TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp> :
> ただ、現在の w3m の開発状況を見ていると、明らかなバグフィックス以外の
> パッチはなかなか受理されそうにないので、もう少し受理されやすい形式に改

本当に有用なパッチだという確信があるのであれば、オリジナルに取り入れら
れることを放棄してしまって(多少時間を余分に取られても)ローカルパッチを
保守し続けるほうが、精神衛生上よいこともあると思いますけどね。

# 私は最近w3mへのパッチに関してはかなりお気楽な気分でいます。

> めることが必要だと考えました。そこで、本体にパッチを適用するのではなく、
> 既存のコードはそのまま利用して必要な関数を呼び出す外部コマンドを実装し
> てみました。作り方は次の通りです。

# 以下の文章は、まだ↓のコードは見ていないで書いています。見てから違う
# ことを書くかも知れませんが、その時は何卒ご容赦。

坂本氏がbackend patchを問題にしているのは、内部表現をそのまま使おうと
している点です。内部表現はその時々の実装の都合で大きく変り得るから、変
更の制限となり得るパッチは取り込みたくない、ということだと私は理解して
います。

例えば最近彼が出したhsaka24というパッチを当てると、internal useの空白
のコードが0x80と0x81から0x90と0x91に変わります。0x80〜0x8Fの領域を
tableの枠用の内部コードに使うためですが、こういうことが気軽にできなく
なる(やろうとする場合の作業量が増える)backend patchのようなものは取り
込まれない、ということです。

変更じゃなくて追加にしたから取り込まれる、ということはないだろうと思い
ます。

ただしデメリットと相殺する以上のメリットがあれば、かなり大きな変更でも
取り込まれる可能性は十分にあると思います。backend.cを見ながら何となく
考えている段階ですが、backend protocolをもっと充実させていけば、文書の
getとレンダリング、ユーザインターフェースを別プロセスにして、それらが
通信するためのprotocolに使えるのじゃないかと思います。こういう並列化に
使えるとなればオリジナルでも取り込まないわけには行かないでしょう。

> なお、この外部コマンドは [emacs-w3m:00218] で指摘した要件を満たしてい
> ません。要件を満たすためには、file.c で定義されている loadGeeralFile 
> に相当する関数を再実装する必要がありそうなのですが、私は w3m のソース
> を理解できていないので、ちょっと無理だと思います。須藤さんさえ宜しけれ
> ば、この外部コマンドの改良を手伝って頂けるとありがたいのですが、いかが
> でしょうか。

私に手伝えることがあれば、もちろん喜んで。

取り敢えずの情報として、[emacs-w3m:00218]の(1)〜(3)に対処するためには、
loadGeneralFileだけじゃなくて複数個所を書き換える必要があります。

(1) redirectに追随しないだけなら、loadGeneralFileのifブロックを1個削除
    すればよい、

(2) そういう変換はしていない筈(CRLF→LF変換をしている場所はある)、

(3) 大体はlinein.cのinputLineHist()という関数とdisplay.cの
    disp_message_nsec()という関数にhookを付ければよい筈。ただし一部
    disp_message_nsec()を呼ぶ前にfmInitializedをチェックしてstderrに出
    力している個所があるので、それも全部書き換える必要がある。

最後にお願いですが、w3mmeeとの組み合わせで使っている身としては、文字の
encodingの処理はできるだけw3mmee側に任せるようにして欲しいです。いずれ
本体に取り込まれると思われる坂本氏のw3m-m17nでも同様でしょう。

# 実は現在作業中のw3mmeeの開発版にbackend patchを当てて色々と改造中で
# す。改造版backend patchを前提とするw3m-backend.elというのも書きかけ
# ています。

-- 
須藤 清一 <suto@ks-and-ks.ne.jp>
http://pub.ks-and-ks.ne.jp/pgp-public-key.html