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

character entity references (was: Re: & -> &)



BUGS.ja の (1) に対応させてみました。

| (1) w3m-fontify で ö が処理されていない。
|         Ex) http://tanaka-www.cs.titech.ac.jp/~euske/doc/openssh/history.html
| 
|     これは簡単に修正できるはず(w3m-entity-alist に要素を追加するだけ)
|     だが、正確な規格表を手にいれて、それに該当する文字をきちんと入力す
|     る手間が面倒(確か100個くらいある)。誰かやりません?

手元の HTML4.0 仕様書邦訳を元にしました。
cf. http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/sgml/entities.html
;; 4.01 でもきっと変わってないでしょう(^^;

>>>>> In [emacs-w3m : No.00160] 
>>>>>	Yoichi NAKAYAMA <yoichi@eken.phys.nagoya-u.ac.jp> wrote:

Yoichi>   !! Symbol's value as variable is void ((w3m-entity-alist))
Yoichi> てなかんじでバイトコンパイル出来なくなりました。emacs-20.7 
Yoichi> でも同様です

これも対処してます。

2001-03-10  Akihiro Arisawa  <ari@mbf.sphere.ne.jp>

	* w3m.el (w3m-entity-alist): Eval at compile time.;
	Add character entity references for ISO 8859-1 characters.
Index: w3m.el
===================================================================
RCS file: /storage/cvsroot/emacs-w3m/w3m.el,v
retrieving revision 1.89
diff -u -r1.89 w3m.el
--- w3m.el	2001/03/09 14:35:13	1.89
+++ w3m.el	2001/03/09 17:13:52
@@ -568,13 +568,50 @@
 (defconst w3m-extended-charcters-table
   '(("\xa0" . " ")))
 
-(defconst w3m-entity-alist		; html character entities and values
-  '(("nbsp" . " ")
-    ("gt" . ">")
-    ("lt" . "<")
-    ("amp" . "&")
-    ("quot" . "\"")
-    ("apos" . "'")))
+(eval-and-compile
+  (defconst w3m-entity-alist	  ; html character entities and values
+    (eval-when-compile
+      (let ((basic-entity-alist
+	     '(("nbsp" . " ")
+	       ("gt" . ">")
+	       ("lt" . "<")
+	       ("amp" . "&")
+	       ("quot" . "\"")
+	       ("apos" . "'")))
+	    (latin1-entity
+	     '(				;("nbsp" . 160)
+	       ("iexcl" . 161) ("cent" . 162) ("pound" . 163)
+	       ("curren" . 164) ("yen" . 165) ("brvbar" . 166) ("sect" . 167)
+	       ("uml" . 168) ("copy" . 169) ("ordf" . 170) ("laquo" . 171)
+	       ("not" . 172)  ("shy" . 173) ("reg" . 174) ("macr" . 175)
+	       ("deg" . 176) ("plusmn" . 177) ("sup2" . 178) ("sup3" . 179)
+	       ("acute" . 180) ("micro" . 181) ("para" . 182) ("middot" . 183)
+	       ("cedil" . 184) ("sup1" . 185) ("ordm" . 186) ("raquo" . 187)
+	       ("frac14" . 188) ("frac12" . 189) ("frac34" . 190) ("iquest" . 191)
+	       ("Agrave" . 192) ("Aacute" . 193) ("Acirc" . 194) ("Atilde" . 195)
+	       ("Auml" . 196) ("Aring" . 197) ("AElig" . 198) ("Ccedil" . 199)
+	       ("Egrave" . 200) ("Eacute" . 201) ("Ecirc" . 202) ("Euml" . 203)
+	       ("Igrave" . 204) ("Iacute" . 205) ("Icirc" . 206) ("Iuml" . 207)
+	       ("ETH"  . 208) ("Ntilde" . 209) ("Ograve" . 210) ("Oacute" . 211)
+	       ("Ocirc" . 212) ("Otilde" . 213) ("Ouml" . 214) ("times" . 215)
+	       ("Oslash" . 216) ("Ugrave" . 217) ("Uacute" . 218) ("Ucirc" . 219)
+	       ("Uuml" . 220) ("Yacute" . 221) ("THORN" . 222) ("szlig" . 223)
+	       ("agrave" . 224) ("aacute" . 225) ("acirc" . 226) ("atilde" . 227)
+	       ("auml" . 228) ("aring" . 229) ("aelig" . 230) ("ccedil" . 231)
+	       ("egrave" . 232) ("eacute" . 233) ("ecirc" . 234) ("euml" . 235)
+	       ("igrave" . 236) ("iacute" . 237) ("icirc" . 238) ("iuml" . 239)
+	       ("eth" . 240) ("ntilde" . 241) ("ograve" . 242) ("oacute" . 243)
+	       ("ocirc" . 244) ("otilde" . 245) ("ouml" . 246) ("divide" . 247)
+	       ("oslash" . 248) ("ugrave" . 249) ("uacute" . 250) ("ucirc" . 251)
+	       ("uuml" . 252) ("yacute" . 253) ("thorn" . 254) ("yuml" . 255))))
+	(append basic-entity-alist
+		(mapcar
+		 (function
+		  (lambda (entity)
+		    (cons (car entity)
+			  (char-to-string
+			   (make-char 'latin-iso8859-1 (cdr entity))))))
+		 latin1-entity))))))
 (defconst w3m-entity-regexp
   (eval-when-compile
     (format "&\\(%s\\|#[0-9]+\\);?"
以下に対応させた実体参照を添付します。

-- 
有沢 明宏
  ¡ ¢ £ ¤ ¥ ¦ §
¨ © ª « ¬ ­ ® ¯
° ± ² ³ ´ µ ¶ ·
¸ ¹ º » ¼ ½ ¾ ¿
À Á Â Ã Ä Å Æ Ç
È É Ê Ë Ì Í Î Ï
Ð Ñ Ò Ó Ô Õ Ö ×
Ø Ù Ú Û Ü Ý Þ ß
à á â ã ä å æ ç
è é ê ë ì í î ï
ð ñ ò ó ô õ ö ÷
ø ù ú û ü ý þ ÿ