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

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



>>>>> In [emacs-w3m : No.07825] 白井秀行さん wrote:

> で、default 設定の w3m-show-decoded-url が有効、になっていると、
> エラーするページがあるようです。Emacs-22.0.50 と 20.7 ではエラー
> になりました。

> 例えば須藤さんち <URL:http://pub.ks-and-ks.ne.jp/> とかで、
> w3m-next-anchor()しただけで、添付のエラーになります。

大丈夫なのは Mule 2.3 くらいですね。

> こちらは w3m-current-coding-system が undecided-unix になるので
> すが、めぐりめぐって、

> (w3m-detect-coding-region 1 4 '(undecided japanese-shift-jis))
> のように呼ばれて、

> (coding-system-category 'undecided) => nil

> なので、エラーになっちゃうみたいです。

> (defun w3m-detect-coding-region (start end &optional priority-list)
>   (let (category categories)
>     (dolist (codesys priority-list)
>       (setq category (coding-system-category codesys))
>       (unless (or (null category) (assq category categories))
> 	(push (cons category codesys) categories)))
>     (car (detect-coding-with-priority start end (nreverse categories)))))

> ぐらいならすぐ考え付くのですが、categories が nil になっちゃったらど
> うするの?とかわからないので、どなたかお願いします (_ _)

その場合は detect-coding-with-priority はデフォルトの priority
で detect して、結果が undecided になるわけですが、
w3m-url-decode-string() を見ると、w3m-detect-coding-region() は
むしろ nil を返すようにして、w3m-default-coding-system などに華
を持たせるのが正解かもしれない...

と思ったのも束の間、

そうするとこのエラーのおおもとの原因であった
w3m-current-coding-system の値を nil にしてしまうので、それはち
とまずかろう、と思い直しました。白井さんの対処で良いのではないか
と思いますけれど。

w3m-xmas.el でも対策が必要ですが、こちらは XEmacs の機能の不備を
補うために少し変なことをやっているので、決め打ちで undecided を
無視するようにするしかなさそうです。↓

--- w3m-xmas.el~	2005-03-01 11:46:10 +0000
+++ w3m-xmas.el	2005-03-09 11:49:39 +0000
@@ -187,7 +187,8 @@
 			coding (cdr coding)
 			category (or (coding-system-category codesys)
 				     (coding-system-name codesys)))
-		  (unless (assq category priority-list)
+		  (unless (or (eq (coding-system-type codesys) 'undecided)
+			      (assq category priority-list))
 		    (set-coding-category-system category codesys)
 		    (push category priority-list)))
 		(set-coding-priority-list (nreverse priority-list))