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

Re: w3m-view-this-url-new-session



すみません、遅くなりました。

;; 寺西さんのメールが届く前に書いたものをそのまま送ります。変な
;; ところは、そういう理由だということでご理解を。:)

>>>>> In [emacs-w3m : No.05356] 土屋さん wrote:

山> http://www2u.biglobe.ne.jp/%7Ehsaka/w3m/index-ja.html
山> で「マルチリンガル化(M17N) w3m」などのリンクを SHIFT-RET
山> (w3m-view-this-url-new-session) で辿ることができません。対策してあっ
山> たような記憶があるんですが、こんなものでしたっけ?

> 理由が分かったと思います.w3m-goto-url() は実際に retrieve する前に,

[...]

> と w3m-current-url の値を調べて,同一ならば,同一ページ内の移動と見な
> して retrieve を行わずに手抜きするようになっています.

はい、理解しました。

> それに対して,w3m-view-this-url-1() は何故か w3m-current-url を元の
> ページと同一になるように代入を行っているので,

これですね:

2002-11-12  Katsumi Yamaoka  <yamaoka@jpl.org>

	* w3.el (w3m-view-this-url-1): Copy `w3m-current-url' into a
	copied buffer.

うーん、何の目的でこういうことを行なったのか、わからなくなってし
まいました。ChangeLog でもコメントでも、もっと書いておくべきでし
たね。もう少し調べます。

> 実際には empty なのに同一ページと判定されて失敗する,ということのよ
> うです.ですから,添付のパッチで一応は動くようになります.

はい、動きました。ただ、前記のぼくの変更に意味があるのなら、弊害
がでるかもしれないので、、、調べます。

> しかし,問題の本質は別の個所にありそうな気がして調べてみたのですが,こ
> れらの session 管理周辺の処理は非常に謎が多くて,よく理解できませんで
> した.まず,

> ;; When new URL has `name' portion, we have to goto the base url
> ;; because generated buffer has no content at this moment.

> このコメントはどういう意味なんでしょうか?

  URL 文字列の末尾に #name があったら、そのベース URL を持ってこ
  なければならない。このときバッファが空だから。

goto じゃなくて visit ですね。いや、そんなことより、ともかくバッ
ファは空なんだから、書く意味がありません。と今は言えるんですが、
当時はたまたま edebug か何かで行き着いた先のバッファが空だったの
で、前後の見境無しにそう書いたのかもしれません。(その 2ヶ月前に
も見てるのに何も理解してなかったのか、って言わないで ^^;;)

> w3m-view-this-url-new-session() は,煎じ詰めれば,

> (defun simple-w3m-view-this-url-new-session ()

[...]

> という処理(生成元になったバッファでの refontify が抜けてますが)だと
> 思うのですが,実際にはわざと empty な複製ページを作成したりしていま
> す.w3m-goto-url-new-session() も同じように empty な複製ページを作っ
> ています.

うーん、普通 new-session では違うページに行くので、元のページの
内容をコピーするのは無駄、でも #name がある場合は例外処理として
中身を空にしない方が合理的かもしれません。

> どうしてこういうコードになっているのか,少し説明をお願いできないでしょ
> うか.

ちゃんと説明できなかったかもしれません。ともかくもう少し追いかけ
ます。
-- 
Katsumi Yamaoka <yamaoka@jpl.org>