aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenichi Handa2002-06-12 00:16:54 +0000
committerKenichi Handa2002-06-12 00:16:54 +0000
commit66bff5ed10d3301121d129f27ee05e9ee1177045 (patch)
tree4a9d544a7178583856657988911d75237533dc9b
parentfd6c8fc1ab0eff71323f1233d114de37d368286e (diff)
downloademacs-66bff5ed10d3301121d129f27ee05e9ee1177045.tar.gz
emacs-66bff5ed10d3301121d129f27ee05e9ee1177045.zip
Fix the last change.
-rw-r--r--lisp/international/characters.el226
1 files changed, 67 insertions, 159 deletions
diff --git a/lisp/international/characters.el b/lisp/international/characters.el
index 7cc0d0ce29a..bc2ed406486 100644
--- a/lisp/international/characters.el
+++ b/lisp/international/characters.el
@@ -118,32 +118,19 @@
118(modify-category-entry '(#xfb50 . #xfdff) ?b) 118(modify-category-entry '(#xfb50 . #xfdff) ?b)
119(modify-category-entry '(#xfe70 . #xfefe) ?b) 119(modify-category-entry '(#xfe70 . #xfefe) ?b)
120 120
121;; Chinese characters (Unicode)
122(modify-category-entry '(#x3400 . #x9FAF) ?C)
123(modify-category-entry '(#x3400 . #x9FAF) ?c)
124(modify-category-entry '(#x3400 . #x9FAF) ?|)
125(modify-category-entry '(#xF900 . #xFAFF) ?C)
126(modify-category-entry '(#xF900 . #xFAFF) ?c)
127(modify-category-entry '(#xF900 . #xFAFF) ?|)
128
121;; Chinese character set (GB2312) 129;; Chinese character set (GB2312)
122 130
123(modify-syntax-entry (cons (make-char 'chinese-gb2312 33 33) 131(map-charset-chars #'modify-syntax-entry 'chinese-gb2312 "_" #x2121 #x217E)
124 (make-char 'chinese-gb2312 33 126)) 132(map-charset-chars #'modify-syntax-entry 'chinese-gb2312 "_" #x2221 #x227E)
125 "_") 133(map-charset-chars #'modify-syntax-entry 'chinese-gb2312 "_" #x2921 #x297E)
126(modify-syntax-entry (cons (make-char 'chinese-gb2312 34 33)
127 (make-char 'chinese-gb2312 34 126))
128 "_")
129(modify-syntax-entry (cons (make-char 'chinese-gb2312 41 33)
130 (make-char 'chinese-gb2312 41 126))
131 "_")
132(modify-category-entry (cons (make-char 'chinese-gb2312 35 33)
133 (make-char 'chinese-gb2312 35 126))
134 ?A)
135(modify-category-entry (cons (make-char 'chinese-gb2312 36 33)
136 (make-char 'chinese-gb2312 36 126))
137 ?H)
138(modify-category-entry (cons (make-char 'chinese-gb2312 37 33)
139 (make-char 'chinese-gb2312 37 126))
140 ?K)
141(modify-category-entry (cons (make-char 'chinese-gb2312 38 33)
142 (make-char 'chinese-gb2312 38 126))
143 ?G)
144(modify-category-entry (cons (make-char 'chinese-gb2312 39 33)
145 (make-char 'chinese-gb2312 39 126))
146 ?Y)
147(modify-syntax-entry ?\〔 "(〕") 134(modify-syntax-entry ?\〔 "(〕")
148(modify-syntax-entry ?\〈 "(〉") 135(modify-syntax-entry ?\〈 "(〉")
149(modify-syntax-entry ?\《 "(》") 136(modify-syntax-entry ?\《 "(》")
@@ -161,12 +148,12 @@
161 148
162(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?c) 149(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?c)
163(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?|) 150(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?|)
164(let ((row 48)) 151(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?A #x2321 #x237E)
165 (while (< row 127) 152(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?H #x2421 #x247E)
166 (modify-category-entry (cons (make-char 'chinese-gb2312 row 33) 153(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?K #x2521 #x257E)
167 (make-char 'chinese-gb2312 row 126)) 154(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?G #x2621 #x267E)
168 ?C) 155(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?Y #x2721 #x277E)
169 (setq row (1+ row)))) 156(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?C #x3021 #x7E7E)
170 157
171;; Chinese character set (BIG5) 158;; Chinese character set (BIG5)
172 159
@@ -302,122 +289,70 @@
302 289
303;; Japanese character set (JISX0201-kana, JISX0201-roman, JISX0208, JISX0212) 290;; Japanese character set (JISX0201-kana, JISX0201-roman, JISX0208, JISX0212)
304 291
305(map-charset-chars 292(map-charset-chars #'modify-category-entry 'katakana-jisx0201 ?k)
306 #'(lambda (char ignore) 293
307 (if (consp char) 294(map-charset-chars #'modify-category-entry 'latin-jisx0201 ?r)
308 (let ((from (car char))
309 (to (car char)))
310 (while (<= from to)
311 (modify-category-entry from ?k)
312 (setq from (1+ from))))
313 (modify-category-entry char ?k)))
314 'katakana-jisx0201)
315 295
316(map-charset-chars
317 #'(lambda (char ignore)
318 (if (consp char)
319 (let ((from (car char))
320 (to (cdr char)))
321 (while (<= from to)
322 (modify-category-entry from ?r)
323 (setq from (1+ from))))
324 (modify-category-entry char ?r)))
325 'latin-jisx0201)
326(dolist (l '(katakana-jisx0201 japanese-jisx0208 japanese-jisx0212)) 296(dolist (l '(katakana-jisx0201 japanese-jisx0208 japanese-jisx0212))
327 (map-charset-chars 297 (map-charset-chars #'modify-category-entry l ?j)
328 #'(lambda (char ignore) 298 (map-charset-chars #'modify-category-entry l ?\|))
329 (if (consp char)
330 (let ((from (car char))
331 (to (cdr char)))
332 (while (<= from to)
333 (modify-category-entry from ?j)
334 (modify-category-entry from ?\|)
335 (setq from (1+ from))))
336 (modify-category-entry char ?j)
337 (modify-category-entry char ?\|)))
338 l))
339 299
340;; Unicode equivalents of JISX0201-kana 300;; Unicode equivalents of JISX0201-kana
341(let ((c #xff61)) 301(let ((range '(#xff61 . #xff9f)))
342 (while (<= c #xff9f) 302 (modify-category-entry range ?k)
343 (modify-category-entry c ?k) 303 (modify-category-entry range ?j)
344 (modify-category-entry c ?j) 304 (modify-category-entry range ?\|))
345 (modify-category-entry c ?\|)
346 (setq c (1+ c))))
347 305
348;; Katakana block 306;; Katakana block
349(let ((c #x30a0)) 307(let ((range '(#x30a0 . #x30ff)))
350 (while (<= c #x30ff) 308 ;; ?K is double width, ?k isn't specified
351 ;; ?K is double width, ?k isn't specified 309 (modify-category-entry range ?K)
352 (modify-category-entry c ?K) 310 (modify-category-entry range ?\|))
353 (modify-category-entry c ?\|)
354 (setq c (1+ c))))
355 311
356;; Hiragana block 312;; Hiragana block
357(let ((c #x3040)) 313(let ((range '(#x3040 . #x309f)))
358 (while (<= c #x309f) 314 ;; ?H is actually defined to be double width
359 ;; ?H is actually defined to be double width 315 ;;(modify-category-entry range ?H)
360 (modify-category-entry c ?H) 316 ;;(modify-category-entry range ?\|)
361 (modify-category-entry c ?\|) 317 )
362 (setq c (1+ c))))
363 318
364;; JISX0208 319;; JISX0208
365(modify-syntax-entry (cons (decode-char 'japanese-jisx0208 #x2121) 320(map-charset-chars #'modify-syntax-entry 'japanese-jisx0208 "_" #x2121 #x227E)
366 (decode-char 'japanese-jisx0208 #x227E)) "_") 321(map-charset-chars #'modify-syntax-entry 'japanese-jisx0208 "_" #x2821 #x287E)
367(modify-syntax-entry (cons (decode-char 'japanese-jisx0208 #x2821) 322(let ((chars '(?ー ?゛ ?゜ ?ヽ ?ヾ ?ゝ ?ゞ ?〃 ?仝 ?々 ?〆 ?〇)))
368 (decode-char 'japanese-jisx0208 #x287E)) "_")
369(let ((chars '(? ? ? ? ? ? ? ? ? ? ? ?)))
370 (dolist (elt chars) 323 (dolist (elt chars)
371 (modify-syntax-entry (car chars) "w"))) 324 (modify-syntax-entry (car chars) "w")))
372(modify-syntax-entry ?\ "(") 325(modify-syntax-entry ?\( "()")
373(modify-syntax-entry ?\ "(") 326(modify-syntax-entry ?\[ "(]")
374(modify-syntax-entry ?\ "(") 327(modify-syntax-entry ?\{ "(}")
375(modify-syntax-entry ?\ "(") 328(modify-syntax-entry ?\「 "(」")
376(modify-syntax-entry ?\ "(") 329(modify-syntax-entry ?\『 "(』")
377(modify-syntax-entry ?\ ")") 330(modify-syntax-entry ?\) ")(")
378(modify-syntax-entry ?\ ")") 331(modify-syntax-entry ?\] ")[")
379(modify-syntax-entry ?\ ")") 332(modify-syntax-entry ?\} "){")
380(modify-syntax-entry ?\ ")") 333(modify-syntax-entry ?\」 ")「")
381(modify-syntax-entry ?\ ")") 334(modify-syntax-entry ?\』 ")『")
382 335
383(modify-category-entry (cons (decode-char 'japanese-jisx0208 #x2321) 336(map-charset-chars #'modify-category-entry 'japanese-jisx0208 ?A #x2321 #x237E)
384 (decode-char 'japanese-jisx0208 #x237E)) ?A) 337(map-charset-chars #'modify-category-entry 'japanese-jisx0208 ?H #x2421 #x247E)
385(modify-category-entry (cons (decode-char 'japanese-jisx0208 #x2421) 338(map-charset-chars #'modify-category-entry 'japanese-jisx0208 ?K #x2521 #x257E)
386 (decode-char 'japanese-jisx0208 #x247E)) ?H) 339(map-charset-chars #'modify-category-entry 'japanese-jisx0208 ?G #x2621 #x267E)
387(modify-category-entry (cons (decode-char 'japanese-jisx0208 #x2521) 340(map-charset-chars #'modify-category-entry 'japanese-jisx0208 ?Y #x2721 #x277E)
388 (decode-char 'japanese-jisx0208 #x257E)) ?K) 341(map-charset-chars #'modify-category-entry 'japanese-jisx0208 ?C #x3021 #x7E7E)
389(modify-category-entry (cons (decode-char 'japanese-jisx0208 #x2621) 342(modify-category-entry ?ー ?K)
390 (decode-char 'japanese-jisx0208 #x267E)) ?G) 343(let ((chars '(?゛ ?゜)))
391(modify-category-entry (cons (decode-char 'japanese-jisx0208 #x2721)
392 (decode-char 'japanese-jisx0208 #x277E)) ?Y)
393(modify-category-entry (cons (decode-char 'japanese-jisx0208 #x3021)
394 (decode-char 'japanese-jisx0208 #x7E7E)) ?C)
395(modify-category-entry ? ?K)
396(let ((chars '(? ?)))
397 (while chars 344 (while chars
398 (modify-category-entry (car chars) ?K) 345 (modify-category-entry (car chars) ?K)
399 (modify-category-entry (car chars) ?H) 346 (modify-category-entry (car chars) ?H)
400 (setq chars (cdr chars)))) 347 (setq chars (cdr chars))))
401(let ((chars '(? ? ? ? ? ? ? ? ?))) 348(let ((chars '(? ? ? ? ? ? ? ? ?)))
402 (while chars 349 (while chars
403 (modify-category-entry (car chars) ?C) 350 (modify-category-entry (car chars) ?C)
404 (setq chars (cdr chars)))) 351 (setq chars (cdr chars))))
405 352
406;; JISX0212 353;; JISX0212
407 354
408(modify-syntax-entry (cons (make-char 'japanese-jisx0212 33 33) 355(map-charset-chars #'modify-syntax-entry 'japanese-jisx0212 "_" #x2121 #x237E)
409 (make-char 'japanese-jisx0212 33 126))
410 "_")
411(modify-syntax-entry (cons (make-char 'japanese-jisx0212 34 33)
412 (make-char 'japanese-jisx0212 34 126))
413 "_")
414(modify-syntax-entry (cons (make-char 'japanese-jisx0212 35 33)
415 (make-char 'japanese-jisx0212 35 126))
416 "_")
417
418(modify-syntax-entry (cons (decode-char 'japanese-jisx0212 #x2121)
419 (decode-char 'japanese-jisx0212 #x237E))
420 "_")
421 356
422;; JISX0201-Kana 357;; JISX0201-Kana
423 358
@@ -432,41 +367,14 @@
432;; Korean character set (KSC5601) 367;; Korean character set (KSC5601)
433 368
434(map-charset-chars #'modify-category-entry 'korean-ksc5601 ?h) 369(map-charset-chars #'modify-category-entry 'korean-ksc5601 ?h)
435(modify-syntax-entry (cons (make-char 'korean-ksc5601 33 33) 370
436 (make-char 'korean-ksc5601 33 126)) 371(map-charset-chars #'modify-syntax-entry 'korean-ksc5601 "_" #x2121 #x227E)
437 "_") 372(map-charset-chars #'modify-syntax-entry 'korean-ksc5601 "_" #x2621 #x297E)
438;; Fixme: Giving `invalid code' because the charset has holes -- 373(map-charset-chars #'modify-category-entry 'korean-ksc5601 ?A #x2321 #x237E)
439;; presumably map should be used just for unification. 374(map-charset-chars #'modify-category-entry 'korean-ksc5601 ?G #x2521 #x257E)
440;; (modify-syntax-entry (cons (make-char 'korean-ksc5601 34 33) 375(map-charset-chars #'modify-category-entry 'korean-ksc5601 ?H #x2A21 #x2A7E)
441;; (make-char 'korean-ksc5601 34 126)) 376(map-charset-chars #'modify-category-entry 'korean-ksc5601 ?K #x2B21 #x2B7E)
442;; "_") 377(map-charset-chars #'modify-category-entry 'korean-ksc5601 ?Y #x2C21 #x2C7E)
443;; (modify-syntax-entry (cons (make-char 'korean-ksc5601 38 33)
444;; (make-char 'korean-ksc5601 38 126))
445;; "_")
446;; (modify-syntax-entry (cons (make-char 'korean-ksc5601 39 33)
447;; (make-char 'korean-ksc5601 39 126))
448;; "_")
449(modify-syntax-entry (cons (make-char 'korean-ksc5601 40 33)
450 (make-char 'korean-ksc5601 40 126))
451 "_")
452(modify-syntax-entry (cons (make-char 'korean-ksc5601 41 33)
453 (make-char 'korean-ksc5601 41 126))
454 "_")
455(modify-category-entry (cons (make-char 'korean-ksc5601 35 33)
456 (make-char 'korean-ksc5601 35 126))
457 ?A)
458;; (modify-category-entry (cons (make-char 'korean-ksc5601 37 33)
459;; (make-char 'korean-ksc5601 37 126))
460;; ?G)
461;; (modify-category-entry (cons (make-char 'korean-ksc5601 42 33)
462;; (make-char 'korean-ksc5601 42 126))
463;; ?H)
464;; (modify-category-entry (cons (make-char 'korean-ksc5601 43 33)
465;; (make-char 'korean-ksc5601 43 126))
466;; ?K)
467;; (modify-category-entry (cons (make-char 'korean-ksc5601 44 33)
468;; (make-char 'korean-ksc5601 44 126))
469;; ?Y)
470 378
471;; Latin 379;; Latin
472 380