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

Re: Referer (Re: buffer local variables)



とりあえず雑感をば。

>> On Tue, 11 Sep 2001 20:40:49 +0900
>> 「山」== yamaoka@jpl.org (Katsumi Yamaoka) said as follows:

山> とりあえず、post-data と referer をヒストリーに登録し、ページを
山> 再 visit するときに使うようにしてみました。

実装を調べていたのですが、

(1) 再現条件がまだよく分かっていないのですが、時々、post-data /
    referer が変になりませんか?

(2) about://history/ を一旦経由すると、referer が about://history/ に
    なってしまうのが、ちょっと不便。

(3) 利用者のプライバシを考えると、about:... や file:... などのローカル
    なコンテンツと判断される場所を referer として相手に渡してしまうの
    は避けるべきではないでしょうか。

    ;; 私は (setq w3m-add-referer nil) して使っているので関係ありませ
    ;; んけれども。

(4) post-data / referer は、バッファローカル変数で管理するのをやめて、
    全面的にヒストリだけに依存することができるかもしれませんね。

(5) colon keywords の扱いが気になったので、添付したようなパッチを作成
    したのですが、良く考えると T-gnus 用に、山岡さんが作ってくださった
    対処が正解のような気がしてきました。お願いできないでしょうか?
Index: w3m-hist.el
===================================================================
RCS file: /home/tsuchiya/cvsroot/emacs-w3m/w3m-hist.el,v
retrieving revision 1.37
diff -u -r1.37 w3m-hist.el
--- w3m-hist.el	11 Sep 2001 06:39:19 -0000	1.37
+++ w3m-hist.el	11 Sep 2001 13:17:07 -0000
@@ -737,8 +737,8 @@
   "Store the current position point in the history structure."
   (interactive)
   (when (cadar w3m-history)
-    (w3m-history-add-properties (list ':window-start (window-start)
-				      ':position (point))
+    (w3m-history-add-properties (list :window-start (window-start)
+				      :position (point))
 				nil nil t)
     (when (interactive-p)
       (message "The position point has registered"))))
@@ -747,10 +747,10 @@
   "Restore the last position point for the current url."
   (interactive)
   (when (cadar w3m-history)
-    (let ((start (w3m-history-plist-get ':window-start nil nil t))
+    (let ((start (w3m-history-plist-get :window-start nil nil t))
 	  position)
       (cond ((and start
-		  (setq position (w3m-history-plist-get ':position
+		  (setq position (w3m-history-plist-get :position
 							nil nil t)))
 	     (set-window-start nil start)
 	     (goto-char position))
@@ -782,7 +782,7 @@
 		   (when symbol
 		     (if (setq title (get symbol 'title))
 			 (push (list (symbol-name symbol)
-				     (list ':title title))
+				     (list :title title))
 			       url-title)
 		       (push (list (symbol-name symbol)) url-title)))))
 		w3m-arrived-db)
Index: w3m-om.el
===================================================================
RCS file: /home/tsuchiya/cvsroot/emacs-w3m/w3m-om.el,v
retrieving revision 1.18
diff -u -r1.18 w3m-om.el
--- w3m-om.el	11 Jul 2001 09:36:33 -0000	1.18
+++ w3m-om.el	11 Sep 2001 13:17:52 -0000
@@ -48,6 +48,20 @@
   (defvar w3m-mode-map)
   (defvar w3m-menubar))
 
+;; Colon Keywords.
+(eval-and-compile
+  (condition-case nil
+      :symbol-for-testing-whether-colon-keyword-is-available-or-not
+    (void-variable
+     (eval '(defconst :bool ':bool))
+     (eval '(defconst :case-ignore ':case-ignore))
+     (eval '(defconst :integer ':integer))
+     (eval '(defconst :title ':title))
+     (eval '(defconst :referer ':referer))
+     (eval '(defconst :post-data ':post-data))
+     (eval '(defconst :window-start ':window-start))
+     (eval '(defconst :position ':position)))))
+
 ;; Dummy functions.
 (defalias 'w3m-create-image 'ignore)
 (defalias 'w3m-insert-image 'ignore)
Index: w3m.el
===================================================================
RCS file: /home/tsuchiya/cvsroot/emacs-w3m/w3m.el,v
retrieving revision 1.375
diff -u -r1.375 w3m.el
--- w3m.el	11 Sep 2001 11:41:05 -0000	1.375
+++ w3m.el	11 Sep 2001 13:14:40 -0000
@@ -867,14 +867,6 @@
 (defvar w3m-cid-retrieve-function-alist nil)
 (defvar w3m-force-redisplay t)
 
-(eval-and-compile
-  (condition-case nil
-      :symbol-for-testing-whether-colon-keyword-is-available-or-not
-    (void-variable
-     (eval '(defconst :bool ':bool))
-     (eval '(defconst :case-ignore ':case-ignore))
-     (eval '(defconst :integer ':integer)))))
-
 (defvar w3m-work-buffer-list nil)
 (defconst w3m-work-buffer-name " *w3m-work*")
 
@@ -2865,8 +2857,8 @@
 	       (w3m-history-backward))))
     (when url
       (w3m-goto-url url nil nil
-		    (w3m-history-plist-get ':post-data)
-		    (w3m-history-plist-get ':referer))
+		    (w3m-history-plist-get :post-data)
+		    (w3m-history-plist-get :referer))
       ;; restore last position
       (w3m-history-restore-position))))
 
@@ -3628,16 +3620,16 @@
 			   (if w3m-add-referer referer nil)))
 	    (progn
 	      (w3m-history-push (w3m-real-url url)
-				(list ':title (file-name-nondirectory url)))
+				(list :title (file-name-nondirectory url)))
 	      (w3m-history-push w3m-current-url)
 	      (w3m-refontify-anchor))
 	  (setq w3m-current-post-data post-data
 		w3m-current-referer referer)
 	  (w3m-history-push w3m-current-url
 			    (w3m-cleanup-plist
-			     (list ':title w3m-current-title
-				   ':referer w3m-current-referer
-				   ':post-data w3m-current-post-data)))
+			     (list :title w3m-current-title
+				   :referer w3m-current-referer
+				   :post-data w3m-current-post-data)))
 	  (or (and name (w3m-search-name-anchor name))
 	      (goto-char (point-min)))
 	  (setq w3m-display-inline-image-status 'off)
@@ -3913,7 +3905,7 @@
 	  (setq element (pop history)
 		url (car element)
 		about (string-match w3m-history-ignored-regexp url)
-		title (plist-get (cadr element) ':title)
+		title (plist-get (cadr element) :title)
 		position (caddr element))
 	  (insert (format "h%s %d <a href=\"%s\">%s%s%s</a>\n"
 			  (mapconcat (function (lambda (d) (format form d)))
-- 
土屋 雅稔  ( TSUCHIYA Masatoshi )