Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

gnus-current-select-method

1 view
Skip to first unread message

TSUCHIYA Masatoshi

unread,
Sep 9, 2001, 9:23:00 AM9/9/01
to
gnus-current-select-method の値の挙動について、疑問があります。


最近、Gnus と Namazu を連携して利用できるように、 gnus-namazu.el とい
うプログラムを作りました。このプログラムの特長として、「あるサマリーバッ
ファ中で、更に検索を行うことができる」という点があります。

例えば、C-c C-n CCL RET として、「CCL」を検索キーとして全グループを対
象に検索を実行すると、CCL という語を含む全記事を含む仮想グループが作成
されます。このサマリーバッファ内では gnus-current-select-method の値は、
以下のようになります。

(nnvirtual
"nnvirtual:namazu-search?query=CCL&groups=ALL&id=152591936483473-ephemeral"
(nnvirtual-address "nnvirtual:namazu-search?query=CCL&groups=ALL&id=152591936483473")
(nnvirtual-component-groups
("comp.emacs.apel-ja" "comp.emacs.elisp" "comp.emacs.mime-ja" "comp.emacs.tm"))
(namazu-gnus-target-groups nil)
(namazu-gnus-current-query "CCL"))

この記事群を閲覧中に、Mule-UCS というキーワードが重要であることに気が
付いたので、今度はそのキーワードで検索すると、そのサマリーバッファ内で
は gnus-current-select-method の値は、次のようになります。

(nnvirtual
"nnvirtual:namazu-search?query=Mule-UCS&groups=ALL&id=1525919548496119-ephemeral"
(nnvirtual-address "nnvirtual:namazu-search?query=Mule-UCS&groups=ALL&id=1525919548496119")
(nnvirtual-component-groups ("comp.emacs.elisp"))
(namazu-gnus-target-groups nil)
(namazu-gnus-current-query "Mule-UCS"))

ここまでは、ごく妥当な動作だと思うのですが、この記事群の閲覧を終わった
あと、q (gnus-summary-exit) で、「CCL」をキーとするサマリーバッファに
戻ると、gnus-current-select-method の値は、次のように変化し、実情と合
わないようになります。

(nnml "")

そのため、このサマリーバッファ内では、幾つかの動作がおかしくなります。

実は、上記の値は、私の環境の gnus-select-method の値と等しいのですが、
gnus-summary-exit() 内部に
(setq gnus-current-select-method gnus-select-method) という命令が含ま
れていますから、観察結果とコードは一致します。


ですが、このコードは妥当なのでしょうか? この記述は、「Gnus は複数のサ
マリーバッファを同時に開くことを想定していない」ということを意味するこ
とになると思うのですが。gnus-namazu.el を利用する時以外でも、複数のフ
レームを同時に開き、個々のフレームで別のメーリングリストのサマリーを相
互に閲覧する、などの使い方を私はしているのですが、こういう使い方も想定
外ということになるのでしょうか。

さて、そういうことを考えていると、gnus-current-select-method はサマリー
バッファ毎に異なる値をとるべきなのではないか、という気がしてくるのです
が、どうでしょうか。

gnus-current-select-method が参照されている個所は、grep で確認したとこ
ろ、以下の6個所でした。

・gnus-request-article-this-buffer()
(eq gnus-override-method 'current) の場合に参照される。

・gnus-start-news-server()
Gnus が起動済か否かを検査するのに使っている。non-nil であれば、
特に問題なし。

・gnus-clear-system()
nil を代入しているだけ

・gnus-select-newsgroup()
グループに入ったときに、そのグループの method を設定している

・gnus-summary-exit()
グループから抜けるときに、gnus-select-method の値を代入している

・gnus-refer-article-methods()
記事が所属している可能性のある method のリストを返す?

バッファローカル変数に変更することによって問題になりそうなのは、
gnus-request-article-this-buffer() と gnus-refer-article-methods() で
すが、後者は gnus-sum.el で定義され、サマリーバッファのコマンドとして
動作する関数からのみ呼び出されているので、問題にはならないと思います。
よって、前者の gnus-request-article-this-buffer() のみ対策しておけば良
いはずだと考え、以下のようなパッチを作成しました。

Katsumi Yamaoka

unread,
Sep 9, 2001, 7:39:01 PM9/9/01
to
>>>>> In [semi-gnus-ja : No.6268]
>>>>> TSUCHIYA Masatoshi <tsuc...@pine.kuee.kyoto-u.ac.jp> wrote:

土屋さん> そういうわけで、ご意見と動作確認をお願いします。

動作確認するまでも無いような気もしましたが、ちょっと試した限りで
は何も問題無いのではないかと思いますよ。

土屋さん> 私の環境ではこれでうまく動いているのですが、ちょっと微妙な部
土屋さん> 分の変更であること、gnus の動作自体の変更になること、を考え
土屋さん> ると commit は少し躊躇っています。

この微妙さは、Oort Gnus と T-gnus 仕様に違いを作ってしまうことで
しょう。順序はどっちが先でも構いませんが、ぼくは Gnus にも同じ変
更を加えて下さることを *強く* お願いします。

;; Oort Gnus で行なわれた変更は、ぼくが逐次 T-gnus に取り込んで
;; いるので、土屋さんは Gnus tower にパッチを提出するだけで十分
;; です。:-)

土屋さん> ですが、このコードは妥当なのでしょうか? この記述は、「Gnus
土屋さん> は複数のサマリーバッファを同時に開くことを想定していない」と
土屋さん> いうことを意味することになると思うのですが。gnus-namazu.el
土屋さん> を利用する時以外でも、複数のフレームを同時に開き、個々のフレー
土屋さん> ムで別のメーリングリストのサマリーを相互に閲覧する、などの使
土屋さん> い方を私はしているのですが、こういう使い方も想定外ということ
土屋さん> になるのでしょうか。

Gnus は、ユーザによるカスタマイズを強力にバックアップする姿勢を
info の随所で表明しています。もしカスタマイズ手段が無ければ、そ
れは Gnus が提供しなければなりません。ユーザオプションによるカス
タマイズだけにとどまらず、できることはできるようにしなければなら
ない、というのが Gnus の思想の一つであるとぼくは信じています。
実際に ding リストや bu...@gnus.org にパッチなどを出すと、あっと
言う間に本編に採用されてしまうのが最近の傾向です。

ですから、変更案を提出する側としてはある程度の責任を持つ必要があ
ります。その責任とは、技術的な面ではもちろんですが、

間、髪を入れずに変更案を採用してくれるメインテイナ
間、髪を入れずに試用してくれるテスタ

から

間、髪を入れずに質問や反対意見が来た

場合に

間、髪を入れずに応答する

ことも含んでいるとぼくは思います。

;; ShengHuo さんらから、間、髪を入れずに返ってきた返事が
;; "Thanks" の一言だけだと、心底ほっとします。^^;;

それからもう一点、もし土屋さんがそう思うなら、Emacs 21 に同梱さ
れる Gnus v5.9 への変更も行なって下さい。たいてい Gerd さんから
も、間、髪を入れずに返事が返ってくると思います。今でこそユーザは
多くありませんが、Gnus v5.9 は Emacs が初めて提供する各国語対応
の MUA で Emacs 21 の目玉の一つですから、release された暁には、
そのユーザは無視できない勢力になるでしょう。

以上は、最近のぼくが行なっている活動そのものでもあります。なお、
以前に T-gnus を元にしたパッチを ding に出したら無視されたことが
あったので、ぼくは必ず最新の Gnus (emacs-pr...@gnu.org
出すときは最新の Emacs 21 pretest) を元に作って、行ずれが無いよ
うにしています。

では、ご健闘を祈ります。
--
Katsumi Yamaoka <yam...@jpl.org>

Katsumi Yamaoka

unread,
Sep 9, 2001, 7:53:35 PM9/9/01
to
>>>>> In [semi-gnus-ja : No.6271]
>>>>> Katsumi Yamaoka <yam...@jpl.org> wrote:

山岡> 順序はどっちが先でも構いませんが、ぼくは Gnus にも同じ変更を加え
山岡> て下さることを *強く* お願いします。

書き忘れました。最近の Gnus のメンテの傾向として、提出するパッチ
は無審査に近い状態で採用されるような気がするので、

Dear Gnus developers,

I am trying to use the search engine namazu with latest Gnus.
I noticed that the variable `gnus-current-select-method' shoud
be buffer-local for each summary buffer.

ChangeLog ...

Patch ...

といった程度のものを送れば十分かもしれません。

;; ぼくの英語はこの程度でしかありません。できればもっとマシなも
;; のに書き換えて下さい。^^;;
--
Katsumi Yamaoka <yam...@jpl.org>

TSUCHIYA Masatoshi

unread,
Sep 9, 2001, 9:48:27 PM9/9/01
to
>> On Mon, 10 Sep 2001 08:28:59 +0900
>> 「山」== yam...@jpl.org (Katsumi Yamaoka) said as follows:

山> この微妙さは、Oort Gnus と T-gnus 仕様に違いを作ってしまうことで
山> しょう。順序はどっちが先でも構いませんが、ぼくは Gnus にも同じ変
山> 更を加えて下さることを *強く* お願いします。

との、山岡さんの意見にしたがい、パッチを bu...@gnus.org に投稿しました。

--
土屋 雅稔 ( TSUCHIYA Masatoshi )
http://www-nagao.kuee.kyoto-u.ac.jp/member/tsuchiya/

Katsumi Yamaoka

unread,
Sep 10, 2001, 3:54:07 AM9/10/01
to
>>>>> In [semi-gnus-ja : No.6276]
>>>>> TSUCHIYA Masatoshi <tsuc...@pine.kuee.kyoto-u.ac.jp> wrote:

土屋さん> との、山岡さんの意見にしたがい、パッチを bu...@gnus.org に投
土屋さん> 稿しました。

遅くなりましたが、どうもありがとうございます。
ところで、わざわざ出て来たのは、土屋さんの記事などが Google で読
めること↓をお知らせするためでした。:-p

;; ここに SPAMMER の人はいないだろね。

0 new messages