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

Re: Why `w3m-check-refresh-attribute' decodes entities in url?



御無沙汰してます。青田です。

TSUCHIYA Masatoshi <tsuchiya@xxxxxxxxxx> writes:

> という細部には目をつぶって,とりあえず以下の修正を commit しました.
>
>     2007-09-24  TSUCHIYA Masatoshi  <tsuchiya@xxxxxxxxxx>
>
> 	* w3m.el: Changes to stricten entities decoded by
> 	`w3m-decode-entities'.
> 	(w3m-entity-table, w3m-entity-reverse-table): New constants.
> 	(w3m-entity-regexp): Stricten.
> 	(w3m-entity-alist, w3m-entity-db, w3m-entity-db-size): Abolished.
> 	(w3m-entity-value, w3m-decode-entities, w3m-decode-entities-string,
> 	w3m-encode-specials-string): Rewritten to use the above constants.
>
> これで sb-nytimes.el の問題は解決しているはずですが,いかがでしょう?

おそらく emacs のバグなのでしょうが、以下のようなことが起こります。

(emacs-version)
"GNU Emacs 21.3.1 (i686-pc-linux-gnu, X toolkit, Xaw3d scroll bars, emcws)
 of 2004-07-24 on ***, modified by Vine"

(mapcar (lambda (str)
	  (list (string-match w3m-entity-regexp str)
		(match-string 1 str)
		(match-string 2 str)))
	'("&lt" "&lta" "&lt@" "&lt;"))
((0 "lt" nil) (nil "lt" nil) (0 "lt" nil) (0 "lt" nil))

このため (match-beginning 2) が nil になってしまってます。少なくとも
w3m-entity-regexp で match する限りにおいては、(match-beginning 2) ==
(match-end 1) が成り立ちますから、(match-beginning 2) を (match-end 1) で
置換えてしまいませんか?

--
青田