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

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



Naohiro Aota <nao.aota@xxxxxxxxx> writes:

> 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) で
> 置換えてしまいませんか?

特に反応がないようなので、とりあえず commit してみますね。

--
青田