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

Re: URLのエコ ーとtextarea のminor化



>>>>> In [emacs-w3m : No.07748] 山岡 wrote:

> 21.5-b19 だと utf-8 であるべきものを shift_jis でデコードして
> しまう場合があるようですね。

いや、shift_jis ではなくて undecided でデコードしてコード判定に
失敗しているのでした。少なくとも XEmacs 21.5-b19 では、
detect-coding-region は priority-list を無視します。

しかし decode-coding-(region|string) は undecided を指定したとき
に priority-list を参照するようなので、そのセンで対策しました。

有沢さんが [emacs-w3m:07728] で出された w3m.el.patch が当たらな
くなったので、新しいものを添付します。
--- w3m.el~	2005-03-01 11:11:57 +0000
+++ w3m.el	2005-03-01 10:51:05 +0000
@@ -2564,7 +2564,8 @@
 	   (nth 5 attrs)))
     `(nth 5 (w3m-attributes ,url ,no-cache))))
 
-(defmacro w3m-make-help-echo (property)
+(defvar w3m-decode-help-echo t)
+(defmacro w3m-make-help-echo (property &optional url-decode)
   "Make a function returning a string used for the `help-echo' message.
 PROPERTY is a symbol (which doesn't need to be quoted) of a text
 property (in XEmacs, it is an extent) with the value of a string which
@@ -2576,16 +2577,28 @@
 	    (lambda (extent)
 	      (if (and w3m-track-mouse
 		       (eq (extent-object extent) (current-buffer)))
-		  (get-text-property (extent-start-position extent)
-				     ',property)))))
+		  (let ((prop (get-text-property (extent-start-position extent)
+						 ',property)))
+		    (if (and ,url-decode w3m-decode-help-echo)
+			(w3m-url-decode-string
+			 prop
+			 (cons w3m-current-coding-system
+			       w3m-coding-system-priority-list))
+		      prop))))))
     `(if (>= emacs-major-version 21)
 	 (function
 	  (lambda (window object pos)
 	    (if w3m-track-mouse
 		(progn
 		  (w3m-message "")	; Clear the echo area.
-		  (get-text-property pos ',property
-				     (window-buffer window)))))))))
+		  (let ((prop (get-text-property pos ',property
+						 (window-buffer window))))
+		    (if (and ,url-decode w3m-decode-help-echo)
+			(w3m-url-decode-string 
+			 prop 
+			 (cons w3m-current-coding-system
+			       w3m-coding-system-priority-list))
+		      prop)))))))))
 
 (defmacro w3m-make-balloon-help (property)
   "Make a function returning a string used for the `balloon-help' message.
@@ -2938,7 +2951,7 @@
 
 (defun w3m-fontify-anchors ()
   "Fontify anchor tags in the buffer which contains halfdump."
-  (let ((help (w3m-make-help-echo w3m-href-anchor))
+  (let ((help (w3m-make-help-echo w3m-href-anchor t))
 	(balloon (w3m-make-balloon-help w3m-href-anchor))
 	prenames start end)
     (goto-char (point-min))