Initial Commit
[packages] / mule-packages / mule-ucs / lisp / jisx0213 / x0213-util.el
1 ;; -*- coding: iso-2022-jp-3  -*-
2 ;;; jisx0213-util.el
3 ;;;     --- Some data and utility for JIS X 0213
4
5 ;; Copyright (C) 2000 KAWABATA, Taichi <batta@beige.ocn.ne.jp>
6
7 ;; Keywords: Tamago, egg, multilingual, JIS X 0213
8
9 (require 'x0213-csys)
10
11 ;; \e$(OITK~!'\e(B translate-string\e$(O4X?t$,$"$l$P!"$3$s$J\e(BCCL\e$(O$OITMW$@$C$?!D\e(B
12
13 (define-ccl-program jisx0213-to-jisx0208
14   `(1
15     (loop
16      (read-multibyte-character r0 r1)
17      (translate-character jisx0213-to-jisx0208/0212 r0 r1)
18      (write-multibyte-character r0 r1)
19      (repeat))))
20
21 (define-ccl-program jisx0208-to-jisx0213
22   `(1
23     (loop
24      (read-multibyte-character r0 r1)
25      (translate-character jisx0208-to-jisx0213 r0 r1)
26      (write-multibyte-character r0 r1)
27      (repeat))))
28
29 (defun jisx0213-to-jisx0208-string (string)
30   (ccl-execute-on-string 'jisx0213-to-jisx0208 
31                          (make-vector 9 nil) string))
32
33 (defun jisx0208-to-jisx0213-string (string)
34   (ccl-execute-on-string 'jisx0208-to-jisx0213
35                          (make-vector 9 nil) string))
36
37 (defun make-jisx0213-char-list (from to)
38   (setq from (string-to-char
39               (jisx0208-to-jisx0213-string
40                (char-to-string from))))
41   (setq to   (string-to-char
42               (jisx0208-to-jisx0213-string
43                (char-to-string to))))
44   (mapcar '(lambda (x)
45              (let ((split (split-char x)))
46                (setcar split 'japanese-jisx0213-1)
47                (apply 'make-char split)))
48           (make-chars-list from to)))
49
50 ;; JIS X 0213 \e$(OIUB0=q\e(B 4 \e$(O$K4p$E$/9g@.2DG=$JJ8;z72\e(B
51
52 (defvar jisx0213-combining-chars
53   `(?\e$(O+R\e(B ?\e$(O+W\e(B 
54     ,@(make-jisx0213-char-list ?\e$(O+Y\e(B?\e$(O+_\e(B)
55     ,@(make-jisx0213-char-list ?\e$(O+g\e(B?\e$(O+~\e(B)))
56
57 (provide 'x0213-util)