annotate lisp/egg/egg-jisx0201.el @ 114:8619ce7e4c50 r20-1b9

Import from CVS: tag r20-1b9
author cvs
date Mon, 13 Aug 2007 09:21:54 +0200
parents 131b0175ea99
children 6c0ae1f9357f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
1 ;; Utility for HankakuKana (jisx0201)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
2
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
3 ;; This file is part of Egg on Mule (Japanese Environment)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
4
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
5 ;; Egg is distributed in the forms of patches to GNU
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
6 ;; Emacs under the terms of the GNU EMACS GENERAL PUBLIC
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
7 ;; LICENSE which is distributed along with GNU Emacs by the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
8 ;; Free Software Foundation.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
9
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
10 ;; Egg is distributed in the hope that it will be useful,
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
11 ;; but WITHOUT ANY WARRANTY; without even the implied
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
12 ;; warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
13 ;; PURPOSE. See the GNU EMACS GENERAL PUBLIC LICENSE for
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
14 ;; more details.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
15
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
16 ;; You should have received a copy of the GNU EMACS GENERAL
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
17 ;; PUBLIC LICENSE along with Nemacs; see the file COPYING.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
18 ;; If not, write to the Free Software Foundation, 675 Mass
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
19 ;; Ave, Cambridge, MA 02139, USA.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
20
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
21 ;;; 92.9.24 created for Mule Ver.0.9.6 by K.Shibata <shibata@sgi.co.jp>
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
22 ;;; 93.8.3 modified for Mule Ver.1.1 by K.Handa <handa@etl.go.jp>
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
23 ;;; Not to define regexp of Japanese word in this file.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
24
114
8619ce7e4c50 Import from CVS: tag r20-1b9
cvs
parents: 70
diff changeset
25 (require 'egg)
8619ce7e4c50 Import from CVS: tag r20-1b9
cvs
parents: 70
diff changeset
26 (provide 'egg-jisx0201)
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
27
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
28 (defvar *katakana-alist*
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
29 '(( 161 . "(I'(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
30 ( 162 . "(I1(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
31 ( 163 . "(I((B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
32 ( 164 . "(I2(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
33 ( 165 . "(I)(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
34 ( 166 . "(I3(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
35 ( 167 . "(I*(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
36 ( 168 . "(I4(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
37 ( 169 . "(I+(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
38 ( 170 . "(I5(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
39 ( 171 . "(I6(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
40 ( 172 . "(I6^(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
41 ( 173 . "(I7(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
42 ( 174 . "(I7^(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
43 ( 175 . "(I8(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
44 ( 176 . "(I8^(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
45 ( 177 . "(I9(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
46 ( 178 . "(I9^(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
47 ( 179 . "(I:(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
48 ( 180 . "(I:^(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
49 ( 181 . "(I;(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
50 ( 182 . "(I;^(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
51 ( 183 . "(I<(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
52 ( 184 . "(I<^(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
53 ( 185 . "(I=(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
54 ( 186 . "(I=^(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
55 ( 187 . "(I>(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
56 ( 188 . "(I>^(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
57 ( 189 . "(I?(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
58 ( 190 . "(I?^(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
59 ( 191 . "(I@(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
60 ( 192 . "(I@^(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
61 ( 193 . "(IA(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
62 ( 194 . "(IA^(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
63 ( 195 . "(I/(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
64 ( 196 . "(IB(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
65 ( 197 . "(IB^(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
66 ( 198 . "(IC(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
67 ( 199 . "(IC^(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
68 ( 200 . "(ID(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
69 ( 201 . "(ID^(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
70 ( 202 . "(IE(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
71 ( 203 . "(IF(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
72 ( 204 . "(IG(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
73 ( 205 . "(IH(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
74 ( 206 . "(II(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
75 ( 207 . "(IJ(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
76 ( 208 . "(IJ^(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
77 ( 209 . "(IJ_(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
78 ( 210 . "(IK(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
79 ( 211 . "(IK^(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
80 ( 212 . "(IK_(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
81 ( 213 . "(IL(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
82 ( 214 . "(IL^(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
83 ( 215 . "(IL_(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
84 ( 216 . "(IM(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
85 ( 217 . "(IM^(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
86 ( 218 . "(IM_(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
87 ( 219 . "(IN(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
88 ( 220 . "(IN^(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
89 ( 221 . "(IN_(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
90 ( 222 . "(IO(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
91 ( 223 . "(IP(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
92 ( 224 . "(IQ(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
93 ( 225 . "(IR(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
94 ( 226 . "(IS(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
95 ( 227 . "(I,(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
96 ( 228 . "(IT(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
97 ( 229 . "(I-(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
98 ( 230 . "(IU(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
99 ( 231 . "(I.(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
100 ( 232 . "(IV(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
101 ( 233 . "(IW(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
102 ( 234 . "(IX(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
103 ( 235 . "(IY(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
104 ( 236 . "(IZ(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
105 ( 237 . "(I[(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
106 ( 239 . "(I\(B" ) ; (I\(B -> $B%o(B $B$KJQ49$9$k$h$&$K(B
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
107 ( 238 . "(I\(B" ) ; $B%o$H%n$N=gHV$,8r49$7$F$"$k!#(B
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
108 ( 240 . "(I((B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
109 ( 241 . "(I*(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
110 ( 242 . "(I&(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
111 ( 243 . "(I](B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
112 ( 244 . "(I3^(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
113 ( 245 . "(I6(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
114 ( 246 . "(I9(B" )))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
115
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
116 (defvar *katakana-kigou-alist*
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
117 '(( 162 . "(I$(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
118 ( 163 . "(I!(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
119 ( 166 . "(I%(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
120 ( 171 . "(I^(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
121 ( 172 . "(I_(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
122 ( 188 . "(I0(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
123 ( 214 . "(I"(B" )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
124 ( 215 . "(I#(B" )))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
125
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
126 (defvar *dakuon-list*
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
127 '( ?$B%+(B ?$B%-(B ?$B%/(B ?$B%1(B ?$B%3(B
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
128 ?$B%5(B ?$B%7(B ?$B%9(B ?$B%;(B ?$B%=(B
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
129 ?$B%?(B ?$B%A(B ?$B%D(B ?$B%F(B ?$B%H(B
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
130 ?$B%O(B ?$B%R(B ?$B%U(B ?$B%X(B ?$B%[(B))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
131
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
132 (defvar *handakuon-list* (memq ?$B%O(B *dakuon-list*))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
133
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
134 ;;;
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
135 ;;; $BH>3QJQ49(B
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
136 ;;;
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
137
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
138 (defun hankaku-katakana-region (start end &optional arg)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
139 (interactive "r\nP")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
140 (save-restriction
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
141 (narrow-to-region start end)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
142 (goto-char (point-min))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
143 (let ((regexp (if arg "\\cS\\|\\cK\\|\\cH" "\\cS\\|\\cK")))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
144 (while (re-search-forward regexp (point-max) (point-max))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
145 (let* ((ch (preceding-char))
114
8619ce7e4c50 Import from CVS: tag r20-1b9
cvs
parents: 70
diff changeset
146 (ch1 (char-octet ch 0))
8619ce7e4c50 Import from CVS: tag r20-1b9
cvs
parents: 70
diff changeset
147 (ch2 (char-octet ch 1)))
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
148 (cond ((= ?\241 ch1)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
149 (let ((val (cdr (assq ch2 *katakana-kigou-alist*))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
150 (if val (progn
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
151 (delete-char -1)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
152 (insert val)))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
153 ((or (= ?\242 ch1) (= ?\250 ch1))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
154 nil)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
155 (t
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
156 (let ((val (cdr (assq ch2 *katakana-alist*))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
157 (if val (progn
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
158 (delete-char -1)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
159 (insert val)))))))))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
160
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
161 (defun hankaku-katakana-paragraph ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
162 "hankaku-katakana paragraph at or after point."
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
163 (interactive )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
164 (save-excursion
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
165 (forward-paragraph)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
166 (let ((end (point)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
167 (backward-paragraph)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
168 (hankaku-katakana-region (point) end ))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
169
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
170 (defun hankaku-katakana-sentence ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
171 "hankaku-katanaka sentence at or after point."
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
172 (interactive )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
173 (save-excursion
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
174 (forward-sentence)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
175 (let ((end (point)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
176 (backward-sentence)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
177 (hankaku-katakana-region (point) end ))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
178
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
179 (defun hankaku-katakana-word (arg)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
180 (interactive "p")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
181 (let ((start (point)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
182 (forward-word arg)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
183 (hankaku-katakana-region start (point))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
184
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
185 ;;;
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
186 ;;; $BA43QJQ49(B
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
187 ;;;
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
188 (defun search-henkan-alist (ch list)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
189 (let ((ptr list)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
190 (result nil))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
191 (while ptr
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
192 (if (string= ch (cdr (car ptr)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
193 (progn
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
194 (setq result (car (car ptr)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
195 (setq ptr nil))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
196 (setq ptr (cdr ptr))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
197 result))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
198
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
199 (defun zenkaku-katakana-region (start end)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
200 (interactive "r")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
201 (save-restriction
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
202 (narrow-to-region start end)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
203 (goto-char (point-min))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
204 (while (re-search-forward "\\ck" (point-max) (point-max))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
205 (let ((ch (preceding-char))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
206 (wk nil))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
207 (cond
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
208 ((= ch ?(I^(B)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
209 (save-excursion
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
210 (backward-char 1)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
211 (setq wk (preceding-char)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
212 (cond ((= wk ?$B%&(B)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
213 (delete-char -2)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
214 (insert "$B%t(B"))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
215 ((setq wk (memq wk *dakuon-list*))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
216 (delete-char -2)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
217 (insert (1+ (car wk))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
218 (t
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
219 (delete-char -1)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
220 (insert "$B!+(B"))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
221 ((= ch ?(I_(B)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
222 (save-excursion
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
223 (backward-char 1)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
224 (setq wk (preceding-char)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
225 (if (setq wk (memq wk *handakuon-list*))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
226 (progn
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
227 (delete-char -2)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
228 (insert (+ 2 (car wk))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
229 (progn
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
230 (delete-char -1)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
231 (insert "$B!,(B"))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
232 ((setq wk (search-henkan-alist
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
233 (char-to-string ch) *katakana-alist*))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
234 (progn
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
235 (delete-char -1)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
236 (insert (make-char 'japanese-jisx0208 ?\045 wk))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
237 ((setq wk (search-henkan-alist
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
238 (char-to-string ch) *katakana-kigou-alist*))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
239 (progn
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
240 (delete-char -1)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
241 (insert (make-char 'japanese-jisx0208 ?\041 wk)))))))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
242
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
243 (defun zenkaku-katakana-paragraph ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
244 "zenkaku-katakana paragraph at or after point."
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
245 (interactive )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
246 (save-excursion
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
247 (forward-paragraph)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
248 (let ((end (point)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
249 (backward-paragraph)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
250 (zenkaku-katakana-region (point) end ))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
251
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
252 (defun zenkaku-katakana-sentence ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
253 "zenkaku-katakana sentence at or after point."
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
254 (interactive )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
255 (save-excursion
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
256 (forward-sentence)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
257 (let ((end (point)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
258 (backward-sentence)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
259 (zenkaku-katakana-region (point) end ))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
260
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
261 (defun zenkaku-katakana-word (arg)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
262 (interactive "p")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
263 (let ((start (point)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
264 (forward-word arg)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
265 (zenkaku-katakana-region start (point))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
266
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
267 ;;;
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
268 ;;; JISX 0201 fence mode
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
269 ;;;
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
270
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
271 (defun fence-hankaku-katakana ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
272 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
273 (hankaku-katakana-region egg:*region-start* egg:*region-end* t))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
274
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
275 (defun fence-katakana ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
276 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
277 (zenkaku-katakana-region egg:*region-start* egg:*region-end* )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
278 (katakana-region egg:*region-start* egg:*region-end*))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
279
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
280 (defun fence-hiragana ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
281 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
282 (zenkaku-katakana-region egg:*region-start* egg:*region-end*)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
283 (hiragana-region egg:*region-start* egg:*region-end*))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
284
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
285 (define-key fence-mode-map "\ex" 'fence-hankaku-katakana)