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

Re: TAB not jumping past <embed>



From: Hideyuki SHIRAI (白井秀行) <shirai@xxxxxxxxxxx>
Subject: [emacs-w3m:10525] Re: TAB not jumping past <embed>
Date: Tue, 09 Dec 2008 21:40:49 +0900 (JST)

> ごめん。日本語。
>
> From: Naohiro Aota <nao.aota@xxxxxxxxx> さん曰く
> Subject: [emacs-w3m:10524] Re: TAB not jumping past <embed>
> Message-ID: <20081209.205945.793411489881365082.nao.aota@xxxxxxxxx>
> Date: Tue, 09 Dec 2008 20:59:45 +0900 (JST)
>
>> From: jidanni@xxxxxxxxxxx
>> Subject: [emacs-w3m:10523] TAB not jumping past <embed>
>> Date: Tue, 09 Dec 2008 03:04:54 +0800
>>
>>> In http://derc.pccu.edu.tw/ the TAB key just gets stuck at the fi >>> rst >>> <embed> and won't jump to any of the <a> hyperlinks. Same for rea >>> l w3m too.
>>
>> I'm sorry, but I can't reproduce the problem. :( Could you check y >> our
>> proxy (or something)?
>
> 会社で試したときは大丈夫だったのだけど、今、自宅でやったら
> "stuck at the first <embed>" になりました。
>
>> % md5sum index.html
>> d5aaf1955b689375acc323c20d03af28  index.html
>
> % md5sum index.html
> d5aaf1955b689375acc323c20d03af28 *index.html
>
> ローカルの index.html でも同じでした。

ありゃ、再現できましたか。 ちょっと行き違ったみたいですね…。

> なにが起こっているかというと、その <embed> のところの
> w3m-anchor-sequence がその html の中で一番大きくて、なおかつ、一
> 番 point-min に使いとこんなことが起きちゃうみたいです。

なるほど。 さっと見た感じですが " (unless (w3m-goto-next-anchor)" で移
動に失敗した時、 w3m-anchor-sequence を保持しておいてページ先頭に戻っ
サーチしてみます。その後で、

- w3m-anchor-sequence が変わってない
- w3m-anchor-sequence が w3m-max-anchor-sequence にひとしい
- 1 番の w3m-anchor-sequence がある (ここは loop して最小を探すように
  てもいいかも)

の3条件を満たす時は そのアンカーに移動する、という風にするというのでは
どうでしょうか? 詳しくはパッチをどうぞ。

;; 再現できないのでテストできてないですが

> ちなみに、素の w3m でも同じ挙動になる(というか anchor-sequence
> は w3m がつけるものを使っている )ので、ぼくの会社と手元の w3m が
> 微妙に違うものかもしれません。
>
> 数ヶ月前にも同じ現象の報告があったような記憶があるのですが、その
> 時も手が出なかったのでした。w3m-next-anchor() 見てたらぼーーとし
> ちゃって ^^;;;

むぅ、うちのはそもそも <embed> がどれのことを言っているのかよくわから
いのですよね…。 w3m -halfdump が違うんでしょうか。

ちなみにうちではこんな感じです。

% w3m -halfdump  http://derc.pccu.edu.tw/| md5sum
a3bc33dc14d1da7f2a00bce695abe084  -

--
青田
Index: w3m.el
===================================================================
RCS file: /storage/cvsroot/emacs-w3m/w3m.el,v
retrieving revision 1.1394
diff -u -r1.1394 w3m.el
--- w3m.el	5 Dec 2008 16:42:23 -0000	1.1394
+++ w3m.el	9 Dec 2008 13:12:09 -0000
@@ -6834,9 +6834,16 @@
 	(setq w3m-goto-anchor-hist nil)
 	(if (w3m-imitate-widget-button)
 	    (widget-forward 1)
-	  ;; Make a search from the beginning of the buffer.
-	  (goto-char (point-min))
-	  (w3m-goto-next-anchor)))
+	  (let ((hseq (w3m-anchor-sequence))
+		pos)
+	    ;; Make a search from the beginning of the buffer.
+	    (goto-char (point-min))
+	    (w3m-goto-next-anchor)
+	    (and (= hseq (w3m-anchor-sequence))
+		 (= hseq w3m-max-anchor-sequence)
+		 (setq pos (text-property-any
+			    (point-min) (point-max) 'w3m-anchor-sequence 1))
+		 (goto-char pos)))))
       (setq arg (1- arg))
       (if (member (w3m-anchor-sequence) w3m-goto-anchor-hist)
 	  (setq arg (1+ arg))