annotate leim/quail/hangul.el @ 95500:ad9123bca9ed

Completely re-written.
author Kenichi Handa <handa@m17n.org>
date Tue, 03 Jun 2008 05:00:53 +0000
parents 4f1fd208c354
children ad40a2d6712f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
95500
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
1 ;;; hangul.el --- Korean Hangul input method
18673
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
2
95500
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
3 ;; Author: Jihyun Cho <jihyun.jo@gmail.com>
18673
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
4 ;; Keywords: multilingual, input method, Korean, Hangul
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
5
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
6 ;; This file is part of GNU Emacs.
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
7
94710
4f1fd208c354 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 79727
diff changeset
8 ;; GNU Emacs is free software: you can redistribute it and/or modify
18673
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
9 ;; it under the terms of the GNU General Public License as published by
94710
4f1fd208c354 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 79727
diff changeset
10 ;; the Free Software Foundation, either version 3 of the License, or
4f1fd208c354 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 79727
diff changeset
11 ;; (at your option) any later version.
18673
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
12
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
13 ;; GNU Emacs is distributed in the hope that it will be useful,
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
14 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
15 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
16 ;; GNU General Public License for more details.
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
17
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
18 ;; You should have received a copy of the GNU General Public License
94710
4f1fd208c354 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 79727
diff changeset
19 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
18673
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
20
38453
519983161a46 Some fixes to follow lisp coding conventions and typo fixes.
Pavel Janík <Pavel@Janik.cz>
parents: 37396
diff changeset
21 ;;; Commentary:
519983161a46 Some fixes to follow lisp coding conventions and typo fixes.
Pavel Janík <Pavel@Janik.cz>
parents: 37396
diff changeset
22
95500
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
23 ;; This file is to implement the following hangul automata:
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
24 ;; - Hangul 2-Bulsik input method
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
25 ;; - Hangul 3-Bulsik final input method
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
26 ;; - Hangul 3-Bulsik 390 input method
44421
84b09c068bb9 added comment
Jaeyoun Chung <jay@kldp.org>
parents: 42596
diff changeset
27
18673
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
28 ;;; Code:
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
29
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
30 (require 'quail)
95500
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
31 (require 'cl)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
32 (require 'hanja-util)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
33
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
34 ;; Hangul double jamo table.
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
35 ;; NEED COMMENT. What is the car and cdr part?
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
36 (defconst hangul-djamo-table
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
37 '((cho . ((1 . [1])
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
38 (7 . [7])
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
39 (18 . [18])
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
40 (21 . [21])
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
41 (24 . [24])))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
42 (jung . ((39 . [31 32 51])
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
43 (44 . [35 36 51])
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
44 (49 . [51])))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
45 (jong . ((1 . [1 21])
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
46 (4 . [24 30])
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
47 (9 . [1 17 18 21 28 29 30])
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
48 (18 . [18 21])
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
49 (21 . [21])))))
18673
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
50
95500
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
51 ;; Hangul 2-Bulsik keymap.
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
52 ;; This table has Hangul Jamo index.
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
53 ;; NEED COMMENT. What is "Hangul Jamo index"?
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
54 (defconst hangul2-keymap
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
55 [17 48 26 23 7 9 30 39 33 35 31 51 49 44 32 36 18 1 4 21 37 29 24 28 43 27])
18673
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
56
95500
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
57 ;; Hangul 3-Bulsik final keymap. 3-Bulsik use full keyboard layout.
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
58 ;; Therefore, We must assign all ASCII codes except control codes
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
59 ;; to Hangul 3-Bulsik codes.
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
60 ;; NEED COMMENT. What are these numbers?
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
61 (defconst hangul3-keymap
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
62 [2 183 24 15 14 8220 120 39 126 8221 43 44 41 46 74 119 30 22 18 78 83
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
63 68 73 85 79 52 110 44 62 46 33 10 7 63 27 12 5 11 69 48 55 49 50 51
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
64 34 45 56 57 29 16 6 13 54 3 28 20 53 26 40 58 60 61 59 42 23 79 71
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
65 86 72 66 84 96 109 115 93 116 122 113 118 121 21 67 4 70 99 74 9 1
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
66 101 17 37 92 47 8251])
18673
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
67
95500
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
68 ;; Hangul 3-Bulsik 390 keymap.
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
69 ;; NEED COMMENT. What are these numbers?
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
70 (defconst hangul390-keymap
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
71 [24 34 35 36 37 38 120 40 41 42 43 44 45 46 73 119 30 22 18 77 82 67 72
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
72 84 78 58 110 50 61 51 63 64 7 33 11 10 27 2 47 39 56 52 53 54 49 48
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
73 57 62 29 68 6 59 55 16 28 20 60 26 91 92 93 94 95 96 23 78 70 85 71
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
74 65 83 90 109 115 87 116 122 113 118 121 21 66 4 69 99 73 9 1 101 17
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
75 123 124 125 126])
18673
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
76
95500
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
77 (defvar hangul-im-keymap
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
78 (let ((map (make-sparse-keymap)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
79 (define-key map "\d" 'hangul-delete-backward-char)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
80 (define-key map [f9] 'hangul-to-hanja-conversion)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
81 map)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
82 "Keymap for Hangul method. It is using all Hangul input method.")
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
83
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
84 ;; Current input character buffer. Store separated hangul character.
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
85 ;; First and second index of vector stored "Choseong".
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
86 ;; Third and forth index of vector stored "Jungseong".
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
87 ;; Fifth and sixth index of vector stored "Jongseong".
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
88 (defvar hangul-queue
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
89 (make-vector 6 0))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
90
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
91 (defsubst notzerop (number)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
92 (not (zerop number)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
93
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
94 (defsubst alphabetp (char)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
95 (or (and (>= char ?A) (<= char ?Z))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
96 (and (>= char ?a) (<= char ?z))))
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 44421
diff changeset
97
95500
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
98 (defun hangul-character (cho jung jong)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
99 "Choseong, Jungseong, and Jongseong which are contained Hangul Compatibility Jamo area
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
100 are transformed hangul character in Hangul Syllables area."
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
101 ;; NEED ADJUSTMENT. Please read the section "Documentation Basics"
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
102 ;; of elisp info.
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
103 (or
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
104 (decode-char
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
105 'ucs
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
106 (if (and (/= cho 0) (/= jung 0))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
107 (+ #xac00
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
108 (* 588
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
109 (- cho
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
110 (cond ((< cho 3) 1)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
111 ((< cho 5) 2)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
112 ((< cho 10) 4)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
113 ((< cho 20) 11)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
114 (t 12))))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
115 (* 28 (- jung 31))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
116 (- jong
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
117 (cond ((< jong 8) 0)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
118 ((< jong 19) 1)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
119 ((< jong 25) 2)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
120 (t 3))))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
121 (+ #x3130
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
122 (cond ((/= cho 0) cho)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
123 ((/= jung 0) jung)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
124 ((/= jong 0) jong)))))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
125 ""))
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 44421
diff changeset
126
95500
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
127 (defun hangul-insert-character (&rest queues)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
128 "Insert each QUEUES. Then setup overlay last inserted character."
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
129 (if (and mark-active transient-mark-mode)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
130 (progn
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
131 (delete-region (region-beginning) (region-end))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
132 (deactivate-mark)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
133 (quail-delete-region)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
134 (let ((first (car queues)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
135 (insert
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
136 (hangul-character
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
137 (+ (aref first 0) (hangul-djamo 'cho (aref first 0) (aref first 1)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
138 (+ (aref first 2) (hangul-djamo 'jung (aref first 2) (aref first 3)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
139 (+ (aref first 4) (hangul-djamo 'jong (aref first 4) (aref first 5))))))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
140 (move-overlay quail-overlay (overlay-start quail-overlay) (point))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
141 (dolist (queue (cdr queues))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
142 (insert
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
143 (hangul-character
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
144 (+ (aref queue 0) (hangul-djamo 'cho (aref queue 0) (aref queue 1)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
145 (+ (aref queue 2) (hangul-djamo 'jung (aref queue 2) (aref queue 3)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
146 (+ (aref queue 4) (hangul-djamo 'jong (aref queue 4) (aref queue 5)))))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
147 (move-overlay quail-overlay (1+ (overlay-start quail-overlay)) (point))))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
148
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
149 (defun hangul-djamo (jamo char1 char2)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
150 "If CHAR1 and CHAR2 are able to combine,
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
151 this function returns double jamo index."
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
152 ;; NEED ADJUSTMENT. Please read the section "Documentation Basics"
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
153 ;; of elisp info.
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
154 (let* ((jamo (cdr (assoc jamo hangul-djamo-table)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
155 (char1 (cdr (assoc char1 jamo))))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
156 (if char1
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
157 (let ((i (length char1)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
158 (or (catch 'found
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
159 (while (> i 0)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
160 (if (= char2 (aref char1 (1- i)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
161 (throw 'found i))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
162 (setf i (1- i))))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
163 0))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
164 0)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
165
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
166 ;; NEED ADJUSTMENT. The following 5 have exactly the same docstring.
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
167 ;; How are they different?
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 44421
diff changeset
168
95500
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
169 (defsubst hangul2-input-method-jaum (char)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
170 "CHAR is putted in hangul-queue.
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
171 Unless the function insert CHAR to current input queue,
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
172 commit current character and then start next character."
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
173 (if (cond ((zerop (aref hangul-queue 0))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
174 (aset hangul-queue 0 char))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
175 ((and (zerop (aref hangul-queue 1))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
176 (zerop (aref hangul-queue 2))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
177 (notzerop (hangul-djamo 'cho (aref hangul-queue 0) char)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
178 (aset hangul-queue 1 char))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
179 ((and (zerop (aref hangul-queue 4))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
180 (notzerop (aref hangul-queue 2))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
181 (/= char 8)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
182 (/= char 19)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
183 (/= char 25)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
184 (numberp
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
185 (hangul-character
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
186 (+ (aref hangul-queue 0)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
187 (hangul-djamo
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
188 'cho
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
189 (aref hangul-queue 0)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
190 (aref hangul-queue 1)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
191 (+ (aref hangul-queue 2)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
192 (hangul-djamo
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
193 'jung
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
194 (aref hangul-queue 2)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
195 (aref hangul-queue 3)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
196 char)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
197 (aset hangul-queue 4 char))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
198 ((and (zerop (aref hangul-queue 5))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
199 (notzerop (hangul-djamo 'jong (aref hangul-queue 4) char))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
200 (numberp
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
201 (hangul-character
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
202 (+ (aref hangul-queue 0)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
203 (hangul-djamo
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
204 'cho
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
205 (aref hangul-queue 0)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
206 (aref hangul-queue 1)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
207 (+ (aref hangul-queue 2)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
208 (hangul-djamo
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
209 'jung
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
210 (aref hangul-queue 2)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
211 (aref hangul-queue 3)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
212 (+ (aref hangul-queue 4)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
213 (hangul-djamo
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
214 'jong
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
215 (aref hangul-queue 4)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
216 char)))))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
217 (aset hangul-queue 5 char)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
218 (hangul-insert-character hangul-queue)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
219 (hangul-insert-character hangul-queue
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
220 (setq hangul-queue (vector char 0 0 0 0 0)))))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
221
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
222 (defsubst hangul2-input-method-moum (char)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
223 "CHAR is putted in hangul-queue.
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
224 Unless the function insert CHAR to current input queue,
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
225 commit current character and then start next character."
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
226 (if (cond ((zerop (aref hangul-queue 2))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
227 (aset hangul-queue 2 char))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
228 ((and (zerop (aref hangul-queue 3))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
229 (zerop (aref hangul-queue 4))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
230 (notzerop (hangul-djamo 'jung (aref hangul-queue 2) char)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
231 (aset hangul-queue 3 char)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
232 (hangul-insert-character hangul-queue)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
233 (let ((next-char (vector 0 0 char 0 0 0)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
234 (cond ((notzerop (aref hangul-queue 5))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
235 (aset next-char 0 (aref hangul-queue 5))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
236 (aset hangul-queue 5 0))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
237 ((notzerop (aref hangul-queue 4))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
238 (aset next-char 0 (aref hangul-queue 4))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
239 (aset hangul-queue 4 0)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
240 (hangul-insert-character hangul-queue
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
241 (setq hangul-queue next-char)))))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
242
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
243 (defsubst hangul3-input-method-cho (char)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
244 "CHAR is putted in hangul-queue.
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
245 Unless the function insert CHAR to current input queue,
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
246 commit current character and then start next character."
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
247 (if (cond ((and (zerop (aref hangul-queue 0))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
248 (zerop (aref hangul-queue 4)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
249 (aset hangul-queue 0 char))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
250 ((and (zerop (aref hangul-queue 1))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
251 (zerop (aref hangul-queue 2))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
252 (notzerop (hangul-djamo 'cho (aref hangul-queue 0) char)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
253 (aset hangul-queue 1 char)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
254 (hangul-insert-character hangul-queue)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
255 (hangul-insert-character hangul-queue
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
256 (setq hangul-queue (vector char 0 0 0 0 0)))))
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 44421
diff changeset
257
95500
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
258 (defsubst hangul3-input-method-jung (char)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
259 "CHAR is putted in hangul-queue.
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
260 Unless the function insert CHAR to current input queue,
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
261 commit current character and then start next character."
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
262 (if (cond ((and (zerop (aref hangul-queue 2))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
263 (zerop (aref hangul-queue 4)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
264 (aset hangul-queue 2 char))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
265 ((and (zerop (aref hangul-queue 3))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
266 (notzerop (hangul-djamo 'jung (aref hangul-queue 2) char)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
267 (aset hangul-queue 3 char)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
268 (hangul-insert-character hangul-queue)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
269 (hangul-insert-character hangul-queue
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
270 (setq hangul-queue (vector 0 0 char 0 0 0)))))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
271
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
272 (defsubst hangul3-input-method-jong (char)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
273 "CHAR is putted in hangul-queue.
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
274 Unless the function insert CHAR to current input queue,
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
275 commit current character and then start next character."
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
276 (if (cond ((and (zerop (aref hangul-queue 4))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
277 (notzerop (aref hangul-queue 0))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
278 (notzerop (aref hangul-queue 2))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
279 (numberp
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
280 (hangul-character
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
281 (+ (aref hangul-queue 0)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
282 (hangul-djamo
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
283 'cho
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
284 (aref hangul-queue 0)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
285 (aref hangul-queue 1)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
286 (+ (aref hangul-queue 2)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
287 (hangul-djamo
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
288 'jung
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
289 (aref hangul-queue 2)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
290 (aref hangul-queue 3)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
291 char)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
292 (aset hangul-queue 4 char))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
293 ((and (zerop (aref hangul-queue 5))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
294 (notzerop (hangul-djamo 'jong (aref hangul-queue 4) char))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
295 (numberp
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
296 (hangul-character
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
297 (+ (aref hangul-queue 0)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
298 (hangul-djamo
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
299 'cho
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
300 (aref hangul-queue 0)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
301 (aref hangul-queue 1)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
302 (+ (aref hangul-queue 2)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
303 (hangul-djamo
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
304 'jung
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
305 (aref hangul-queue 2)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
306 (aref hangul-queue 3)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
307 (+ (aref hangul-queue 4)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
308 (hangul-djamo
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
309 'jong
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
310 (aref hangul-queue 4)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
311 char)))))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
312 (aset hangul-queue 6 char)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
313 (hangul-insert-character hangul-queue)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
314 (if (zerop (apply '+ (append hangul-queue nil)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
315 (hangul-insert-character (setq hangul-queue (vector 0 0 0 0 char 0)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
316 (hangul-insert-character hangul-queue
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
317 (setq hangul-queue (vector 0 0 0 0 char 0))))))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
318
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
319 (defun hangul-delete-backward-char ()
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
320 "Backward delete command for hangul. It deletes a hangul character by jaso units."
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
321 (interactive)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
322 (let ((i 5))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
323 (while (and (> i 0) (zerop (aref hangul-queue i)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
324 (setq i (1- i)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
325 (aset hangul-queue i 0))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
326 (if (notzerop (apply '+ (append hangul-queue nil)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
327 (hangul-insert-character hangul-queue)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
328 (delete-backward-char 1)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
329
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
330 (defun hangul-to-hanja-conversion ()
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
331 "This function converts a hangul character to a hanja character."
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
332 (interactive)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
333 (let ((echo-keystrokes 0)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
334 delete-func
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
335 hanja-character)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
336 (setq hanja-character (hangul-to-hanja-char (preceding-char)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
337 (when hanja-character
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
338 (delete-backward-char 1)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
339 (insert hanja-character)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
340 (setq hangul-queue (make-vector 6 0))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
341 (move-overlay quail-overlay (point) (point)))))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
342
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
343 ;; NEED COMMENT. What is KEY?
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
344 (defun hangul2-input-method-internal (key)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
345 (let ((char (+ (aref hangul2-keymap (1- (% key 32)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
346 (cond ((or (= key ?O) (= key ?P)) 2)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
347 ((or (= key ?E) (= key ?Q) (= key ?R)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
348 (= key ?T) (= key ?W)) 1)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
349 (t 0)))))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
350 (if (< char 31)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
351 (hangul2-input-method-jaum char)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
352 (hangul2-input-method-moum char))))
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 44421
diff changeset
353
95500
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
354 (defun hangul2-input-method (key)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
355 "2-Bulsik input method"
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
356 (if (or buffer-read-only (not (alphabetp key)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
357 (list key)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
358 (quail-setup-overlays nil)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
359 (let ((input-method-function nil)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
360 (echo-keystrokes 0)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
361 (help-char nil))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
362 (setq hangul-queue (make-vector 6 0))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
363 (hangul2-input-method-internal key)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
364 (unwind-protect
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
365 (catch 'exit-input-loop
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
366 (while t
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
367 (let* ((seq (read-key-sequence nil))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
368 (cmd (lookup-key hangul-im-keymap seq))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
369 key)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
370 (cond ((and (stringp seq)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
371 (= 1 (length seq))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
372 (setq key (aref seq 0))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
373 (alphabetp key))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
374 (hangul2-input-method-internal key))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
375 ((commandp cmd)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
376 (call-interactively cmd))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
377 (t
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
378 (setq unread-command-events (listify-key-sequence seq))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
379 (throw 'exit-input-loop nil))))))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
380 (quail-delete-overlays)))))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
381
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
382 ;; NEED COMMENT. What is KEY?
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
383 (defun hangul3-input-method-internal (key)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
384 (let ((char (aref hangul3-keymap (- key 33))))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
385 (cond ((and (> char 92) (< char 123))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
386 (hangul3-input-method-cho (- char 92)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
387 ((and (> char 65) (< char 87))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
388 (hangul3-input-method-jung (- char 35)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
389 ((< char 31)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
390 (hangul3-input-method-jong char))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
391 (t
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
392 (setq hangul-queue (make-vector 6 0))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
393 (insert (decode-char 'ucs char))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
394 (move-overlay quail-overlay (point) (point))))))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
395
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
396 (defun hangul3-input-method (key)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
397 "3-Bulsik final input method"
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
398 (if (or buffer-read-only (< key 33) (>= key 127))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
399 (list key)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
400 (quail-setup-overlays nil)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
401 (let ((input-method-function nil)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
402 (echo-keystrokes 0)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
403 (help-char nil))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
404 (setq hangul-queue (make-vector 6 0))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
405 (hangul3-input-method-internal key)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
406 (unwind-protect
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
407 (catch 'exit-input-loop
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
408 (while t
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
409 (let* ((seq (read-key-sequence nil))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
410 (cmd (lookup-key hangul-im-keymap seq))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
411 key)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
412 (cond ((and (stringp seq)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
413 (= 1 (length seq))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
414 (setq key (aref seq 0))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
415 (and (>= key 33) (< key 127)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
416 (hangul3-input-method-internal key))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
417 ((commandp cmd)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
418 (call-interactively cmd))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
419 (t
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
420 (setq unread-command-events (listify-key-sequence seq))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
421 (throw 'exit-input-loop nil))))))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
422 (quail-delete-overlays)))))
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 44421
diff changeset
423
95500
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
424 ;; NEED COMMENT. What is KEY?
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
425 (defun hangul390-input-method-internal (key)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
426 (let ((char (aref hangul390-keymap (- key 33))))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
427 (cond ((or (and (> char 86) (< char 91))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
428 (and (> char 96) (< char 123)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
429 (hangul3-input-method-cho (- char (if (< char 97) 86 92))))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
430 ((and (> char 64) (< char 86))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
431 (hangul3-input-method-jung (- char 34)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
432 ((< char 31)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
433 (hangul3-input-method-jong char))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
434 (t
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
435 (setq hangul-queue (make-vector 6 0))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
436 (insert (decode-char 'ucs char))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
437 (move-overlay quail-overlay (point) (point))))))
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 44421
diff changeset
438
95500
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
439 (defun hangul390-input-method (key)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
440 "3-Bulsik 390 input method"
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
441 (if (or buffer-read-only (< key 33) (>= key 127))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
442 (list key)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
443 (quail-setup-overlays nil)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
444 (let ((input-method-function nil)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
445 (echo-keystrokes 0)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
446 (help-char nil))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
447 (setq hangul-queue (make-vector 6 0))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
448 (hangul390-input-method-internal key)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
449 (unwind-protect
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
450 (catch 'exit-input-loop
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
451 (while t
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
452 (let* ((seq (read-key-sequence nil))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
453 (cmd (lookup-key hangul-im-keymap seq))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
454 key)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
455 (cond ((and (stringp seq)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
456 (= 1 (length seq))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
457 (setq key (aref seq 0))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
458 (and (>= key 33) (< key 127)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
459 (hangul390-input-method-internal key))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
460 ((commandp cmd)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
461 (call-interactively cmd))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
462 (t
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
463 (setq unread-command-events (listify-key-sequence seq))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
464 (throw 'exit-input-loop nil))))))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
465 (quail-delete-overlays)))))
38453
519983161a46 Some fixes to follow lisp coding conventions and typo fixes.
Pavel Janík <Pavel@Janik.cz>
parents: 37396
diff changeset
466
95500
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
467 ;; Text shown by describe-input-method. Set to a proper text by
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
468 ;; hangul-input-method-activate.
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
469 (defvar hangul-input-method-help-text nil)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
470 (make-variable-buffer-local 'hangul-input-method-help-text)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
471
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
472 (defun hangul-input-method-activate (input-method func help-text &rest args)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
473 "Activate Hangul input method INPUT-METHOD.
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
474 FUNC is a function to handle input key.
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
475 HELP-TEXT is a text set in `hangul-input-method-help-text'."
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
476 (setq inactivate-current-input-method-function 'hangul-input-method-inactivate
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
477 describe-current-input-method-function 'hangul-input-method-help
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
478 hangul-input-method-help-text help-text)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
479 (quail-delete-overlays)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
480 (if (eq (selected-window) (minibuffer-window))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
481 (add-hook 'minibuffer-exit-hook 'quail-exit-from-minibuffer))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
482 (set (make-local-variable 'input-method-function) func))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
483
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
484 (defun hangul-input-method-inactivate ()
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
485 "Inactivate the current Hangul input method."
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
486 (interactive)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
487 (unwind-protect
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
488 (progn
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
489 (quail-hide-guidance)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
490 (quail-delete-overlays)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
491 (setq describe-current-input-method-function nil))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
492 (kill-local-variable 'input-method-function)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
493
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
494 (defun hangul-input-method-help ()
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
495 "Describe the current Hangul input method."
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
496 (interactive)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
497 (with-output-to-temp-buffer "*Help*"
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
498 (princ hangul-input-method-help-text)))
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
499
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
500 (provide 'hangul)
ad9123bca9ed Completely re-written.
Kenichi Handa <handa@m17n.org>
parents: 94710
diff changeset
501
38453
519983161a46 Some fixes to follow lisp coding conventions and typo fixes.
Pavel Janík <Pavel@Janik.cz>
parents: 37396
diff changeset
502 ;;; hangul.el ends here