[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: w3m-view-previous-page and #name anchor
TSUCHIYA Masatoshi <tsuchiya@xxxxxxxxxx> writes:
>>> On Sat, 01 Dec 2007 14:15:03 +0900 (JST)
>>> nao.aota@xxxxxxxxx (Naohiro Aota) said as follows:
>
>>以前にも一度MLででていたようですが、某所[1] でけっこう要望があったり、
>>ぼく自身も不便に思っていたので #name アンカーをたどった後に、
>>w3m-view-previous-page (B) で元のリンクの場所に戻れるようにしてみました。
>>戻ってから w3m-view-next-page (N) で 再度 #name アンカー位置に移動する
>>ことも可能です。
>
> この改善以後,ちょっと奇妙な挙動をすることがあることに気付きました.例と
> して,
こちらは添付のパッチのように、 同一ページ内でのアンカージャンプの時だけ
記録するようにすれば直りそうです。
> それと,コードを斜め読みしただけの感想ですが,w3m-name-anchor-from-hist
> を使うのは今一なんじゃないかなあと思います.できれば,w3m-hist.el の中で
> きちんと処理されている方が綺麗なのではないかと.
w3m-hist.el にまとめる方法も考えてみました。 例えば "foo.html" と
"foo.html#bar" は :window-start と :position は別の値を持つべきですが、
form の入力値などのその他の property に関しては共有するべきですよね。これ
をうまく実装するのは難しいのではないかと思います。
--- w3m.el.~1.1339.~ Thu Jan 10 00:08:22 2008
+++ w3m.el Fri Jan 11 15:18:28 2008
@@ -5786,7 +5786,7 @@
(match-string 1)))
url))))
-(defun w3m-search-name-anchor (name &optional quiet)
+(defun w3m-search-name-anchor (name &optional quiet no-record)
(interactive "sName: ")
(let ((pos (point-min))
(cur-pos (point)))
@@ -5808,11 +5808,12 @@
(message "No such anchor: %s" name)))
(if (= (point) cur-pos)
nil
- (setq w3m-name-anchor-from-hist
- (append (list 1 nil (point) cur-pos)
- (and (integerp (car w3m-name-anchor-from-hist))
- (nthcdr (1+ (car w3m-name-anchor-from-hist))
- w3m-name-anchor-from-hist))))
+ (unless no-record
+ (setq w3m-name-anchor-from-hist
+ (append (list 1 nil (point) cur-pos)
+ (and (integerp (car w3m-name-anchor-from-hist))
+ (nthcdr (1+ (car w3m-name-anchor-from-hist))
+ w3m-name-anchor-from-hist)))))
t)))
@@ -8320,7 +8321,9 @@
(progn
;; Redisplay to search an anchor sure.
(sit-for 0)
- (w3m-search-name-anchor name)))
+ (w3m-search-name-anchor name
+ nil
+ (not (eq action 'cursor-moved)))))
(setf (w3m-arrived-time (w3m-url-strip-authinfo orig))
(w3m-arrived-time url))
(goto-char (point-min)))
--
青田