annotate lisp/skk/skk-kcode.el @ 219:262b8bb4a523 r20-4b8

Import from CVS: tag r20-4b8
author cvs
date Mon, 13 Aug 2007 10:09:35 +0200
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
219
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
1 ;;; skk-kcode.el --- $B4A;z%3!<%I$r;H$C$?JQ49$N$?$a$N%W%m%0%i%`(B
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
2 ;; Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
3 ;; Masahiko Sato <masahiko@kuis.kyoto-u.ac.jp>
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
4
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
5 ;; Author: Masahiko Sato <masahiko@kuis.kyoto-u.ac.jp>
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
6 ;; Maintainer: Mikio Nakajima <minakaji@osaka.email.ne.jp>
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
7 ;; Version: $Id: skk-kcode.el,v 1.1 1997/12/02 08:48:38 steve Exp $
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
8 ;; Keywords: japanese
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
9 ;; Last Modified: $Date: 1997/12/02 08:48:38 $
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
10
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
11 ;; This program is free software; you can redistribute it and/or modify
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
12 ;; it under the terms of the GNU General Public License as published by
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
13 ;; the Free Software Foundation; either versions 2, or (at your option)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
14 ;; any later version.
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
15
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
16 ;; This program is distributed in the hope that it will be useful
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
19 ;; GNU General Public License for more details.
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
20
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
21 ;; You should have received a copy of the GNU General Public License
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
22 ;; along with SKK, see the file COPYING. If not, write to the Free
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
23 ;; Software Foundation Inc., 59 Temple Place - Suite 330, Boston,
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
24 ;; MA 02111-1307, USA.
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
25
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
26 ;;; Commentary:
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
27
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
28 ;; Following people contributed modifications to skk.el (Alphabetical order):
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
29 ;; Shuhei KOBAYASHI <shuhei-k@jaist.ac.jp>
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
30
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
31 ;;; Code:
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
32 (require 'skk-foreword)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
33 (require 'skk-vars)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
34
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
35 (defvar skk-input-by-code-menu-keys1 '(?a ?s ?d ?f ?g ?h ?q ?w ?e ?r ?t ?y)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
36 "*$B%a%K%e!<7A<0$G(B JIS $BJ8;z$rF~NO$9$k$H$-$K;HMQ$9$kA*Br%-!<$N%j%9%H!#(B
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
37 $BBh(B 1 $BCJ3,$N%a%K%e!<$G;HMQ$9$k!#(B
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
38 12 $B8D$N%-!<(B (char type) $B$r4^$`I,MW$,$"$k!#(B")
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
39
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
40 (defvar skk-input-by-code-menu-keys2
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
41 '(?a ?s ?d ?f ?g ?h ?j ?k ?l ?q ?w ?e ?r ?t ?y ?u)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
42 "*$B%a%K%e!<7A<0$G(B JIS $BJ8;z$rF~NO$9$k$H$-$K;HMQ$9$kA*Br%-!<$N%j%9%H!#(B
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
43 $BBh(B 2 $BCJ3,$N%a%K%e!<$G;HMQ$9$k!#(B
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
44 16 $B8D$N%-!<(B (char type) $B$r4^$`I,MW$,$"$k!#(B")
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
45
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
46 (defvar skk-kcode-load-hook nil
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
47 "*skk-kcode.el $B$r%m!<%I$7$?8e$K%3!<%k$5$l$k%U%C%/!#(B" )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
48
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
49 ;; variables for the function skk-input-by-code-or-menu
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
50 (defconst skk-code-n1-min 161)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
51 (defconst skk-code-n1-max 244)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
52 (defconst skk-code-n2-min 161)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
53 (defconst skk-code-n2-max 254)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
54 (defconst skk-code-null 128)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
55 (defvar skk-input-by-code-or-menu-jump-default skk-code-n1-min)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
56 (skk-deflocalvar skk-kcode-charset
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
57 (if (or skk-mule3 skk-xemacs)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
58 'japanese-jisx0208
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
59 lc-jp)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
60 "skk-input-by-code-or-menu $B$G;H$o$l$kJ8;z%;%C%H!#(B" )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
61 (defconst skk-kcode-definded-charsets
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
62 (if (or skk-mule3 skk-xemacs)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
63 (mapcar '(lambda (x) (list (symbol-name x))) (charset-list))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
64 nil ))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
65
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
66 ;;;###skk-autoload
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
67 (defun skk-input-by-code-or-menu (&optional arg)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
68 "7bit $B$b$7$/$O(B 8bit $B$b$7$/$O(B $B6hE@%3!<%I$KBP1~$9$k(B 2byte $BJ8;z$rA^F~$9$k!#(B"
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
69 ;; The function skk-input-by-code-or-menu, which was used until version
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
70 ;; 4.20, is now replaced by this new function.
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
71 (interactive "*P")
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
72 (if arg
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
73 (let ((charset
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
74 (intern (completing-read (format "CHARSET(%s): " skk-kcode-charset)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
75 skk-kcode-definded-charsets nil t ))))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
76 (cond ((null charset))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
77 ((not (skk-charsetp charset))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
78 (error "invalid charset"))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
79 (t (setq skk-kcode-charset charset)) )))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
80 (let ((str
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
81 (read-string
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
82 (format
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
83 "7/8 bits or KUTEN code for %s (00nn or CR for Jump Menu): "
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
84 skk-kcode-charset )))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
85 (enable-recursive-mini-buffer t)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
86 n1 n2 )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
87 (if (string-match "\\(.+\\)-\\(.+\\)" str)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
88 (setq n1 (+ (string-to-number (match-string 1 str)) 32 128)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
89 n2 (+ (string-to-number (match-string 2 str)) 32 128) )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
90 (setq n1 (if (string= str "") 128
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
91 (+ (* 16 (skk-jis-char-to-hex (aref str 0)))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
92 (skk-char-to-hex (aref str 1)) ))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
93 n2 (if (string= str "") 128
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
94 (+ (* 16 (skk-jis-char-to-hex (aref str 2)))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
95 (skk-char-to-hex (aref str 3)) ))))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
96 (insert (if (> n1 160)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
97 (skk-make-string n1 n2)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
98 (skk-input-by-code-or-menu-0 n1 n2) ))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
99 (if skk-henkan-active (skk-kakutei)) ))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
100
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
101 (defun skk-char-to-hex (char)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
102 (cond ((> char 96) (- char 87)) ; a-f
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
103 ((> char 64) (- char 55)) ; A-F
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
104 ((> char 47) (- char 48)) ; 0-9
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
105 (t
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
106 ;; $BJ*8@$o$L%(%i!<$ONI$/$J$$$,(B...$B!#(B
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
107 (error "") )))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
108
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
109 (defun skk-jis-char-to-hex (char)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
110 (cond ((> char 96) (- char 87)) ; a-f
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
111 ((> char 64) (- char 55)) ; A-F
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
112 ((> char 47) (- char 40)) ; 0-9
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
113 (t
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
114 ;; $BJ*8@$o$L%(%i!<$ONI$/$J$$$,(B...$B!#(B
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
115 (error "") )))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
116
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
117 (defun skk-make-string (n1 n2)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
118 (char-to-string (skk-make-char skk-kcode-charset n1 n2)) )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
119
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
120 (defun skk-next-n2-code (n)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
121 (if (<= (setq n (1+ n)) skk-code-n2-max) n skk-code-n2-min))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
122
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
123 (defun skk-previous-n2-code (n)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
124 (if (<= skk-code-n2-min (setq n (1- n))) n skk-code-n2-max))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
125
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
126 (defun skk-next-n1-code (n)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
127 (if (<= (setq n (1+ n)) skk-code-n1-max) n skk-code-n1-min))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
128
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
129 (defun skk-previous-n1-code (n)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
130 (if (<= skk-code-n1-min (setq n (1- n))) n skk-code-n1-max))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
131
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
132 (defun skk-input-by-code-or-menu-0 (n1 n2)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
133 (if (= n1 skk-code-null)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
134 (skk-input-by-code-or-menu-jump n2)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
135 (skk-input-by-code-or-menu-1 n1 n2)))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
136
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
137 (defun skk-input-by-code-or-menu-jump (n)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
138 (let ((menu-keys1 ; $BI=<(MQ$N%-!<%j%9%H$rAH$_N)$F$k!#(B
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
139 (mapcar (function (lambda (char) (char-to-string (upcase char))))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
140 skk-input-by-code-menu-keys1 ))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
141 kanji-char )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
142 (if (< n skk-code-n1-min) (setq n skk-input-by-code-or-menu-jump-default))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
143 (while (not kanji-char)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
144 (let ((n-org n)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
145 (chars
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
146 (list
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
147 (list (skk-make-string n skk-code-n1-min) n skk-code-n1-min)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
148 (list (skk-make-string n 177) n 177)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
149 (list (skk-make-string n 193) n 193)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
150 (list (skk-make-string n 209) n 209)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
151 (list (skk-make-string n 225) n 225)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
152 (list (skk-make-string n 241) n 241)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
153 (progn
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
154 (setq n (skk-next-n1-code n))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
155 (list (skk-make-string n skk-code-n1-min) n
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
156 skk-code-n1-min ))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
157 (list (skk-make-string n 177) n 177)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
158 (list (skk-make-string n 193) n 193)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
159 (list (skk-make-string n 209) n 209)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
160 (list (skk-make-string n 225) n 225)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
161 (list (skk-make-string n 241) n 241))))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
162 (skk-save-point
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
163 (let ((i 0) message-log-max str )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
164 (while (< i 12)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
165 (setq str (concat str (nth i menu-keys1) ":" (car (nth i chars))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
166 " " ))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
167 (setq i (1+ i)) )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
168 (message str) )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
169 (let ((char (skk-read-event))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
170 rest ch )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
171 (if (not (integerp char))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
172 (progn
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
173 (skk-message "\"%s\" $B$OM-8z$J%-!<$G$O$"$j$^$;$s!*(B"
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
174 "\"%s\" is not valid here!" (prin1 char) )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
175 (sit-for 1)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
176 (message "")
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
177 (setq n n-org) )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
178 (setq rest (or (memq char skk-input-by-code-menu-keys1)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
179 (if (skk-lower-case-p char)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
180 (memq (upcase char) skk-input-by-code-menu-keys1)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
181 (memq (downcase char) skk-input-by-code-menu-keys1) ))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
182 ch (if rest
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
183 ;; 12 == (length skk-input-by-code-menu-keys1)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
184 (nth (- 12 (length rest)) chars)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
185 nil )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
186 kanji-char
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
187 (cond
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
188 (ch)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
189 ((eq char 120) ; x
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
190 (if (< (setq n (- n-org 2)) skk-code-n1-min)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
191 (setq n skk-code-n1-max))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
192 nil)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
193 ((eq char 32) ; space
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
194 (setq n (skk-next-n1-code n))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
195 nil)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
196 ((eq char 63) ; ?
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
197 (skk-message
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
198 (concat "$B!X(B%s$B!Y(B EUC: %2x%2x (%3d, %3d), JIS: %2x%2x (%3d, %3d) "
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
199 "[$B2?$+%-!<$r2!$7$F$/$@$5$$(B]" )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
200 (concat "$B!X(B%s$B!Y(B EUC: %2x%2x (%3d, %3d), JIS: %2x%2x (%3d, %3d) "
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
201 "[Hit any key to continue]" )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
202 (car (car chars))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
203 n-org skk-code-n1-min n-org skk-code-n1-min
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
204 (- n-org 128) (- skk-code-n1-min 128)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
205 (- n-org 128) (- skk-code-n1-min 128) )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
206 (skk-read-event)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
207 (setq n n-org)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
208 nil)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
209 (t
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
210 (skk-message "\"%c\" $B$OM-8z$J%-!<$G$O$"$j$^$;$s!*(B"
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
211 "\"%c\" is not valid here!" char )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
212 (sit-for 1)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
213 (message "")
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
214 (setq n n-org)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
215 nil ))))))))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
216 (setq skk-input-by-code-or-menu-jump-default (car (cdr kanji-char)))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
217 (skk-input-by-code-or-menu-1
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
218 (car (cdr kanji-char)) (car (cdr (cdr kanji-char))) )))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
219
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
220 (defun skk-input-by-code-or-menu-1 (n1 n2)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
221 (let ((menu-keys2 ; $BI=<(MQ$N%-!<%j%9%H$rAH$_N)$F$k!#(B
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
222 (mapcar (function (lambda (char) (char-to-string (upcase char))))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
223 skk-input-by-code-menu-keys2 ))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
224 kanji-char )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
225 (while (not kanji-char)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
226 (let ((n1-org n1) (n2-org n2) (i 0)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
227 (chars (list (skk-make-string n1 n2))))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
228 ;; 16 == (length skk-input-by-code-menu-keys2)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
229 (while (< i 16)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
230 (nconc chars (list
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
231 (progn (setq n2 (skk-next-n2-code n2))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
232 (if (= n2 skk-code-n2-min)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
233 (setq n1 (skk-next-n1-code n1)))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
234 (skk-make-string n1 n2))))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
235 (setq i (1+ i)))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
236 (skk-save-point
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
237 (let ((i 0) message-log-max str )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
238 (while (< i 16)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
239 (setq str (concat str (nth i menu-keys2) ":" (nth i chars) " "))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
240 (setq i (1+ i)) )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
241 (message str) )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
242 (let ((char (skk-read-event)))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
243 (if (not (integerp char))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
244 (progn
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
245 (skk-message "\"%s\" $B$OM-8z$J%-!<$G$O$"$j$^$;$s!*(B"
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
246 "\"%s\" is not valid here!" (prin1 char) )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
247 (sit-for 1)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
248 (message "")
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
249 (setq n1 n1-org n2 n2-org) )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
250 (setq rest
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
251 (or (memq char skk-input-by-code-menu-keys2)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
252 (if (skk-lower-case-p char)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
253 (memq (upcase char) skk-input-by-code-menu-keys2)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
254 (memq (downcase char) skk-input-by-code-menu-keys2) ))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
255 ch (if rest
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
256 ;; 16 == (length skk-input-by-code-menu-keys2)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
257 (nth (- 16 (length rest)) chars) )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
258 kanji-char
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
259 (cond
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
260 (ch)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
261 ((eq char 120) ; x
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
262 (if (< (setq n2 (- n2 31)) skk-code-n2-min)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
263 (setq n2 (+ n2 94)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
264 n1 (skk-previous-n1-code n1)))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
265 nil )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
266 ((eq char 32) ; space
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
267 (if (= (setq n2 (skk-next-n2-code n2))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
268 skk-code-n2-min)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
269 (setq n1 (skk-next-n1-code n1)))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
270 nil )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
271 ((eq char 63) ; ?
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
272 (skk-message
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
273 (concat "$B!X(B%s$B!Y(B EUC: %2x%2x (%3d, %3d), JIS: %2x%2x (%3d, %3d) "
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
274 "[$B2?$+%-!<$r2!$7$F$/$@$5$$(B]" )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
275 (concat "$B!X(B%s$B!Y(B EUC: %2x%2x (%3d, %3d), JIS: %2x%2x (%3d, %3d) "
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
276 "[Hit any key to continue]" )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
277 (car chars) n1-org n2-org n1-org n2-org
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
278 (- n1-org 128) (- n2-org 128)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
279 (- n1-org 128) (- n2-org 128) )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
280 (skk-read-event)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
281 (setq n1 n1-org n2 n2-org)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
282 nil )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
283 ((eq char 62) ; >
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
284 (if (= (setq n2 (skk-next-n2-code n2-org))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
285 skk-code-n2-min)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
286 (setq n1 (skk-next-n1-code n1-org))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
287 (setq n1 n1-org))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
288 nil )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
289 ((eq char 60) ; <
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
290 (if (= (setq n2 (skk-previous-n2-code n2-org))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
291 skk-code-n2-max)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
292 (setq n1 (skk-previous-n1-code n1-org))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
293 (setq n1 n1-org))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
294 nil )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
295 (t
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
296 (skk-message "\"%c\" $B$OM-8z$J%-!<$G$O$"$j$^$;$s!*(B"
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
297 "\"%c\" is not valid here!" char )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
298 (sit-for 1)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
299 (message "")
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
300 (setq n1 n1-org n2 n2-org)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
301 nil ))))))))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
302 kanji-char ))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
303
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
304 ;;;###skk-autoload
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
305 (defun skk-display-code-for-char-at-point ()
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
306 "$B%]%$%s%H$K$"$kJ8;z$N(B EUC $B%3!<%I$H(B JIS $B%3!<%I$rI=<($9$k!#(B"
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
307 (interactive)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
308 (if (eobp)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
309 (skk-error "$B%+!<%=%k$,%P%C%U%!$N=*C<$K$"$j$^$9(B"
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
310 "Cursor is at the end of the buffer" )
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
311 (let ((str
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
312 (skk-buffer-substring
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
313 (point)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
314 (skk-save-point (forward-char 1) (point)))))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
315 (cond
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
316 (skk-xemacs
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
317 (let* ((char (string-to-char str))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
318 (charset (char-charset char)))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
319 (cond
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
320 ((memq charset '(japanese-jisx0208 japanese-jisx0208-1978))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
321 (let* ((char1-j (char-octet char 0))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
322 (char1-k (- char1-j 32))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
323 (char1-e (+ char1-j 128))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
324 (char2-j (char-octet char 1))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
325 (char2-k (- char2-j 32))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
326 (char2-e (+ char2-j 128)))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
327 (message
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
328 "$B!X(B%s$B!Y(B EUC: %2x%2x (%3d, %3d), JIS: %2x%2x (%3d, %3d), KUTEN: (%2d, %2d)"
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
329 str char1-e char2-e char1-e char2-e
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
330 char1-j char2-j char1-j char2-j char1-k char2-k)))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
331 ((memq charset '(ascii latin-jisx0201))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
332 (message "\"%s\" %2x (%3d)"
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
333 str (char-octet char 0) (char-octet char 0)))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
334 (t
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
335 (skk-error "$BH=JL$G$-$J$$J8;z$G$9(B"
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
336 "Cannot understand this character")))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
337 ))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
338 (skk-mule3
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
339 (let* ((char (string-to-char str))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
340 (charset (char-charset char)))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
341 (cond
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
342 ((memq charset '(japanese-jisx0208 japanese-jisx0208-1978))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
343 (let* ((char-list (mapcar (function +) str))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
344 (char1-e (car (cdr char-list)))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
345 (char1-j (- char1-e 128))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
346 (char1-k (- char1-j 32))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
347 (char2-e (car (cdr (cdr char-list))))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
348 (char2-j (- char2-e 128))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
349 (char2-k (- char2-j 32)))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
350 (message
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
351 "$B!X(B%s$B!Y(B EUC: %2x%2x (%3d, %3d), JIS: %2x%2x (%3d, %3d), KUTEN: (%2d, %2d)"
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
352 str char1-e char2-e char1-e char2-e
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
353 char1-j char2-j char1-j char2-j char1-k char2-k)))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
354 ((memq charset '(ascii latin-jisx0201))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
355 (message "\"%s\" %2x (%3d)" char char char))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
356 (t
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
357 (skk-error "$BH=JL$G$-$J$$J8;z$G$9(B"
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
358 "Cannot understand this character")))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
359 ))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
360 (t ; skk-mule
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
361 (let (;; $BJ8;zNs$r(B char $B$KJ,2r!#(B
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
362 ;; (mapcar '+ str) == (append str nil)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
363 (char-list (mapcar (function +) str)))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
364 (cond
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
365 ((and (= (length char-list) 3)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
366 (memq (car char-list) (list lc-jp lc-jpold)))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
367 (let* ((char1-e (car (cdr char-list)))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
368 (char1-j (- char1-e 128))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
369 (char1-k (- char1-j 32))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
370 (char2-e (car (cdr (cdr char-list))))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
371 (char2-j (- char2-e 128))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
372 (char2-k (- char2-j 32)))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
373 (message
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
374 "$B!X(B%s$B!Y(B EUC: %2x%2x (%3d, %3d), JIS: %2x%2x (%3d, %3d), KUTEN: (%2d, %2d)"
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
375 str char1-e char2-e char1-e char2-e
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
376 char1-j char2-j char1-j char2-j char1-k char2-k)))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
377 ((or (= (length char-list) 1) ; ascii character
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
378 (memq (car char-list) (list lc-ascii lc-roman)))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
379 (let ((char (car char-list)))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
380 (message "\"%c\" %2x (%3d)" char char char)))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
381 (t
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
382 (skk-error "$BH=JL$G$-$J$$J8;z$G$9(B"
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
383 "Cannot understand this character" ))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
384 )))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
385 ))))
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
386
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
387 (run-hooks 'skk-kcode-load-hook)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
388
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
389 (provide 'skk-kcode)
262b8bb4a523 Import from CVS: tag r20-4b8
cvs
parents:
diff changeset
390 ;;; skk-kcode.el ends here