comparison lisp/international/characters.el @ 88752:1aeb58b4f1e1

Fix the last change.
author Kenichi Handa <handa@m17n.org>
date Wed, 12 Jun 2002 00:16:54 +0000
parents a5f3605a5bb8
children 45b498250bfb
comparison
equal deleted inserted replaced
88751:809b6bfe4dfa 88752:1aeb58b4f1e1
116 (setq charsets (cdr charsets)))) 116 (setq charsets (cdr charsets))))
117 (modify-category-entry '(#x600 . #x6ff) ?b) 117 (modify-category-entry '(#x600 . #x6ff) ?b)
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 ?\《 "(》")
150 (modify-syntax-entry ?\「 "(」") 137 (modify-syntax-entry ?\「 "(」")
151 (modify-syntax-entry ?\『 "(』") 138 (modify-syntax-entry ?\『 "(』")
159 (modify-syntax-entry ?\〗 ")〖") 146 (modify-syntax-entry ?\〗 ")〖")
160 (modify-syntax-entry ?\】 ")【") 147 (modify-syntax-entry ?\】 ")【")
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
173 (map-charset-chars #'modify-category-entry 'chinese-big5-1 ?c) 160 (map-charset-chars #'modify-category-entry 'chinese-big5-1 ?c)
174 (map-charset-chars #'modify-category-entry 'chinese-big5-2 ?c) 161 (map-charset-chars #'modify-category-entry 'chinese-big5-2 ?c)
300 (map-charset-chars #'modify-category-entry 'indian-2-column ?i) 287 (map-charset-chars #'modify-category-entry 'indian-2-column ?i)
301 288
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)) 295
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
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
424 (let ((chars '(?。 ?、 ?・))) 359 (let ((chars '(?。 ?、 ?・)))
425 (while chars 360 (while chars
430 (modify-syntax-entry ?\」 "(「") 365 (modify-syntax-entry ?\」 "(「")
431 366
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
473 (modify-category-entry '(#x80 . #x024F) ?l) 381 (modify-category-entry '(#x80 . #x024F) ?l)
474 382