[Date Prev][Date Next][Thread Prev][][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)))
--
青田