Mercurial > hg > xemacs-beta
comparison lisp/egg/egg-wnn.el @ 114:8619ce7e4c50 r20-1b9
Import from CVS: tag r20-1b9
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:21:54 +0200 |
parents | 0d2f883870bc |
children | 585fb297b004 |
comparison
equal
deleted
inserted
replaced
113:2ec2fe4a4c89 | 114:8619ce7e4c50 |
---|---|
1 ;;; wnn-egg.el --- a inputting method communicating with [jck]server | 1 ;;; egg-wnn.el --- a inputting method communicating with [jck]server |
2 | 2 |
3 ;; Author: Satoru Tomura (tomura@etl.go.jp), and | 3 ;; Author: Satoru Tomura (tomura@etl.go.jp), and |
4 ;; Toshiaki Shingu (shingu@cpr.canon.co.jp) | 4 ;; Toshiaki Shingu (shingu@cpr.canon.co.jp) |
5 ;; Keywords: inputting method | 5 ;; Keywords: inputting method |
6 | 6 |
87 ;;; 92/5/19 version 0 | 87 ;;; 92/5/19 version 0 |
88 ;;; ---------------------------------------------------------------- | 88 ;;; ---------------------------------------------------------------- |
89 | 89 |
90 ;;; Code: | 90 ;;; Code: |
91 | 91 |
92 (require 'egg) | |
92 (make-variable-buffer-local 'wnn-server-type) | 93 (make-variable-buffer-local 'wnn-server-type) |
93 (make-variable-buffer-local 'cwnn-zhuyin) | 94 (make-variable-buffer-local 'cwnn-zhuyin) |
94 | 95 |
95 (defvar egg:*sho-bunsetu-face* nil "*$B>.J8@aI=<($KMQ$$$k(B face $B$^$?$O(B nil") | 96 (defvar egg:*sho-bunsetu-face* nil "*$B>.J8@aI=<($KMQ$$$k(B face $B$^$?$O(B nil") |
96 (make-variable-buffer-local | 97 (make-variable-buffer-local |
115 | 116 |
116 ;;; ---------------------------------------------------------------- | 117 ;;; ---------------------------------------------------------------- |
117 ;;; $B0J2<$N(B its mode $B4X78$N4X?t$O!"(Begg.el $B$GDj5A$5$l$F$$$k$,!"(B | 118 ;;; $B0J2<$N(B its mode $B4X78$N4X?t$O!"(Begg.el $B$GDj5A$5$l$F$$$k$,!"(B |
118 ;;; $B$?$+$J$G$O(B its mode $B$N@ZBX$($KF14|$7$F!"(Bjserver/cserver, | 119 ;;; $B$?$+$J$G$O(B its mode $B$N@ZBX$($KF14|$7$F!"(Bjserver/cserver, |
119 ;;; pinyin/zhuyin $B$N@ZBX$($b9T$J$$$?$$$N$G!":FDj5A$7$F$$$k!#(B | 120 ;;; pinyin/zhuyin $B$N@ZBX$($b9T$J$$$?$$$N$G!":FDj5A$7$F$$$k!#(B |
120 ;;; $B=>$C$F!"(Begg.el, wnn-egg.el $B$N=g$K%m!<%I$7$J$1$l$P$J$i$J$$!#(B | 121 ;;; $B=>$C$F!"(Begg.el, egg-wnn.el $B$N=g$K%m!<%I$7$J$1$l$P$J$i$J$$!#(B |
121 | 122 |
122 | 123 |
123 (defun its:select-mode (name) | 124 (defun its:select-mode (name) |
125 "Switch ITS mode to NAME or prompt for it if called interactivly. | |
126 After changing, its:select-mode-hook is called." | |
124 (interactive (list (completing-read "ITS mode: " its:*mode-alist*))) | 127 (interactive (list (completing-read "ITS mode: " its:*mode-alist*))) |
125 (if (its:get-mode-map name) | 128 (if (its:get-mode-map name) |
126 (progn | 129 (progn |
127 (setq its:*current-map* (its:get-mode-map name)) | 130 (setq its:*current-map* (its:get-mode-map name)) |
128 (egg:mode-line-display) | 131 (egg:mode-line-display) |
129 (run-hooks 'its:select-mode-hook)) | 132 (run-hooks 'its:select-mode-hook)) |
130 (beep)) | 133 (beep)) |
131 ) | 134 ) |
132 | 135 |
133 (defun its:select-mode-from-menu () | 136 (defun its:select-mode-from-menu () |
137 "Select ITS mode from menu. | |
138 After changing, its:select-mode-hook is called." | |
134 (interactive) | 139 (interactive) |
135 (setcar (nthcdr 2 its:*select-mode-menu*) its:*mode-alist*) | 140 (setcar (nthcdr 2 its:*select-mode-menu*) its:*mode-alist*) |
136 (setq its:*current-map* (menu:select-from-menu its:*select-mode-menu*)) | 141 (setq its:*current-map* (menu:select-from-menu its:*select-mode-menu*)) |
137 (egg:mode-line-display) | 142 (egg:mode-line-display) |
138 (run-hooks 'its:select-mode-hook)) | 143 (run-hooks 'its:select-mode-hook)) |
151 ((eq its:*current-map* (its:get-mode-map "hangul")) | 156 ((eq its:*current-map* (its:get-mode-map "hangul")) |
152 (setq wnn-server-type 'kserver)) | 157 (setq wnn-server-type 'kserver)) |
153 )))) | 158 )))) |
154 | 159 |
155 (defun its:next-mode () | 160 (defun its:next-mode () |
161 "Switch to next mode in list its:*standard-modes* | |
162 After changing, its:select-mode-hook is called." | |
156 (interactive) | 163 (interactive) |
157 (let ((pos (its:find its:*current-map* its:*standard-modes*))) | 164 (let ((pos (its:find its:*current-map* its:*standard-modes*))) |
158 (setq its:*current-map* | 165 (setq its:*current-map* |
159 (nth (% (1+ pos) (length its:*standard-modes*)) | 166 (nth (% (1+ pos) (length its:*standard-modes*)) |
160 its:*standard-modes*)) | 167 its:*standard-modes*)) |
161 (egg:mode-line-display) | 168 (egg:mode-line-display) |
162 (run-hooks 'its:select-mode-hook))) | 169 (run-hooks 'its:select-mode-hook))) |
163 | 170 |
164 (defun its:previous-mode () | 171 (defun its:previous-mode () |
172 "Switch to previous mode in list its:*standard-modes* | |
173 After changing, its:select-mode-hook is called." | |
165 (interactive) | 174 (interactive) |
166 (let ((pos (its:find its:*current-map* its:*standard-modes*))) | 175 (let ((pos (its:find its:*current-map* its:*standard-modes*))) |
167 (setq its:*current-map* | 176 (setq its:*current-map* |
168 (nth (1- (if (= pos 0) (length its:*standard-modes*) pos)) | 177 (nth (1- (if (= pos 0) (length its:*standard-modes*) pos)) |
169 its:*standard-modes*)) | 178 its:*standard-modes*)) |
199 | 208 |
200 (defvar egg:*sai-henkan-start* nil) | 209 (defvar egg:*sai-henkan-start* nil) |
201 (defvar egg:*sai-henkan-end* nil) | 210 (defvar egg:*sai-henkan-end* nil) |
202 (defvar egg:*old-bunsetu-suu* nil) | 211 (defvar egg:*old-bunsetu-suu* nil) |
203 | 212 |
204 (defun wnn-egg:kill-emacs-function () | 213 (defun egg-wnn:kill-emacs-function () |
205 (let ((wnn-server-type)) | 214 (let ((wnn-server-type)) |
206 (setq wnn-server-type 'jserver) | 215 (setq wnn-server-type 'jserver) |
207 (close-wnn) | 216 (close-wnn) |
208 (setq wnn-server-type 'cserver) | 217 (setq wnn-server-type 'cserver) |
209 (close-wnn) | 218 (close-wnn) |
210 (setq wnn-server-type 'kserver) | 219 (setq wnn-server-type 'kserver) |
211 (close-wnn))) | 220 (close-wnn))) |
212 | 221 |
213 (add-hook 'kill-emacs-hook 'wnn-egg:kill-emacs-function) | 222 (add-hook 'kill-emacs-hook 'egg-wnn:kill-emacs-function) |
214 | 223 |
215 (defun egg:error (form &rest mesg) | 224 (defun egg:error (form &rest mesg) |
216 (apply 'notify (or form "%s") mesg) | 225 (apply 'notify (or form "%s") mesg) |
217 (apply 'error (or form "%s") mesg)) | 226 (apply 'error (or form "%s") mesg)) |
218 | 227 |
228 (defun wnn-toggle-english-messages () | |
229 "Toggle whether wnn reports info in english or the native language of the server." | |
230 (interactive) | |
231 (setq wnn-english-messages (not wnn-english-messages))) | |
232 | |
233 (defvar wnn-english-messages nil "*If non-nil, display messages from the [jck]server in English") | |
234 | |
235 (make-symbol "english-mess") | |
236 | |
219 (defun egg:msg-get (message) | 237 (defun egg:msg-get (message) |
220 (or | 238 (or |
221 (nth 1 (assoc message (nth 1 (assoc wnn-server-type *egg-message-alist*)))) | 239 (nth 1 (assoc message (nth 1 (assoc (if wnn-english-messages 'english-mess wnn-server-type) |
240 *egg-message-alist*)))) | |
222 (format "No message. Check *egg-message-alist* %s %s" | 241 (format "No message. Check *egg-message-alist* %s %s" |
223 wnn-server-type message))) | 242 wnn-server-type message))) |
224 | 243 |
225 (defvar *egg-message-alist* | 244 (defvar *egg-message-alist* |
226 '((jserver | 245 '((english-mess |
246 ((open-wnn "Connected with Wnn on host %s") | |
247 (no-rcfile "No egg-startup-file on %s") | |
248 (file-saved "Wnn dictionary and frequency data recorded.") | |
249 (henkan-mode-indicator "$B4A(B") | |
250 (begin-henkan "$BJQ493+;OJ8;zNs(B: ") | |
251 (end-henkan "$BJQ49=*N;J8;zNs(B: ") | |
252 (kugiri-dai "$BBgJ8@a6h@Z$jJ8;zNs(B: ") | |
253 (kugiri-sho "$B>.J8@a6h@Z$jJ8;zNs(B: ") | |
254 (face-henkan "$BJQ496h4VI=<(B0@-(B: ") | |
255 (face-dai "$BBgJ8@a6h4VI=<(B0@-(B: ") | |
256 (face-sho "$B>.J8@a6h4VI=<(B0@-(B: ") | |
257 (jikouho "$B<!8uJd(B:") | |
258 (off-msg "%s %s(%s:%s) turned off.") | |
259 (henkan-help "Kanji conversion mode: | |
260 $BJ8@a0\F0(B | |
261 \\[henkan-first-bunsetu]\t$B@hF,J8@a(B\t\\[henkan-last-bunsetu]\t$B8eHxJ8@a(B | |
262 \\[henkan-backward-bunsetu]\t$BD>A0J8@a(B\t\\[henkan-forward-bunsetu]\t$BD>8eJ8@a(B | |
263 $BJQ49JQ99(B | |
264 $BBgJ8@a<!8uJd(B \\[henkan-next-kouho-dai]\t$B>.J8@a<!8uJd(B \\[henkan-next-kouho-sho] | |
265 $BA08uJd(B \\[henkan-previous-kouho] \t$B<!8uJd(B \\[henkan-next-kouho] | |
266 $BBgJ8@a?-$7(B \\[henkan-bunsetu-nobasi-dai] \t$BBgJ8@a=L$a(B \\[henkan-bunsetu-chijime-dai] | |
267 $B>.J8@a?-$7(B \\[henkan-bunsetu-nobasi-sho] \t$B>.J8@a=L$a(B \\[henkan-bunsetu-chijime-sho] | |
268 $BBgJ8@aJQ498uJdA*Br(B \\[henkan-select-kouho-dai] \t$B>.J8@aJQ498uJdA*Br(B \\[henkan-select-kouho-sho] | |
269 $BJQ493NDj(B | |
270 $BA4J8@a3NDj(B \\[henkan-kakutei] \t$BD>A0J8@a$^$G3NDj(B \\[henkan-kakutei-before-point] | |
271 $BJQ49Cf;_(B \\[henkan-quit] | |
272 ") | |
273 (hinsimei "Hinshi (product/noun) name:") | |
274 (jishotouroku-yomi "Dictionary entry for$B!X(B%s$B!Y(B reading:") | |
275 (touroku-jishomei "Name of dictionary:" ) | |
276 (registerd "Dictonary entry$B!X(B%s$B!Y(B(%s: %s) registered in %s.") | |
277 (yomi "Reading$B!'(B") | |
278 (no-yomi "No dictionary entry for $B!X(B%s$B!Y(B.") | |
279 (jisho "Dictionary:") | |
280 (hindo "Frequency:") | |
281 (kanji "Kanji:") | |
282 (register-notify "Dictonary entry$B!X(B%s$B!Y(B(%s: %s) registered in %s.") | |
283 (cannot-remove "Cannot delete entry from system dictionary.") | |
284 (enter-hindo "Enter frequency:") | |
285 (remove-notify "Dictonary entry$B!X(B%s$B!Y(B(%s) removed from %s.") | |
286 (removed "Dictonary entry$B!X(B%s$B!Y(B(%s) removed from %s.") | |
287 (jishomei "Dictionary name:" ) | |
288 (comment "Comment:") | |
289 (jisho-comment "Dictionary:%s: comment:%s") | |
290 (param ("$B#N(B ( $BBg(B ) $BJ8@a2r@O$N#N(B" | |
291 "$BBgJ8@aCf$N>.J8@a$N:GBg?t(B" | |
292 "$B448l$NIQEY$N%Q%i%a!<%?(B" | |
293 "$B>.J8@aD9$N%Q%i%a!<%?(B" | |
294 "$B448lD9$N%Q%i%a!<%?(B" | |
295 "$B:#;H$C$?$h%S%C%H$N%Q%i%a!<%?(B" | |
296 "$B<-=q$N%Q%i%a!<%?(B" | |
297 "$B>.J8@a$NI>2ACM$N%Q%i%a!<%?(B" | |
298 "$BBgJ8@aD9$N%Q%i%a!<%?(B" | |
299 "$B>.J8@a?t$N%Q%i%a!<%?(B" | |
300 "$B5?;wIJ;l(B $B?t;z$NIQEY(B" | |
301 "$B5?;wIJ;l(B $B%+%J$NIQEY(B" | |
302 "$B5?;wIJ;l(B $B1Q?t$NIQEY(B" | |
303 "$B5?;wIJ;l(B $B5-9f$NIQEY(B" | |
304 "$B5?;wIJ;l(B $BJD3g8L$NIQEY(B" | |
305 "$B5?;wIJ;l(B $BIUB08l$NIQEY(B" | |
306 "$B5?;wIJ;l(B $B3+3g8L$NIQEY(B")) | |
307 )) | |
308 (jserver | |
227 ((open-wnn "$B%[%9%H(B %s $B$N(B Wnn $B$r5/F0$7$^$7$?(B") | 309 ((open-wnn "$B%[%9%H(B %s $B$N(B Wnn $B$r5/F0$7$^$7$?(B") |
228 (no-rcfile "%s $B>e$K(B egg-startup-file $B$,$"$j$^$;$s!#(B") | 310 (no-rcfile "%s $B>e$K(B egg-startup-file $B$,$"$j$^$;$s!#(B") |
229 (file-saved "Wnn$B$NIQEY>pJs!&<-=q>pJs$rB`Hr$7$^$7$?!#(B") | 311 (file-saved "Wnn$B$NIQEY>pJs!&<-=q>pJs$rB`Hr$7$^$7$?!#(B") |
230 (henkan-mode-indicator "$B4A(B") | 312 (henkan-mode-indicator "$B4A(B") |
231 (begin-henkan "$BJQ493+;OJ8;zNs(B: ") | 313 (begin-henkan "$BJQ493+;OJ8;zNs(B: ") |
456 (egg:error (wnn-server-get-msg)))) | 538 (egg:error (wnn-server-get-msg)))) |
457 | 539 |
458 ;; ###jhod Currently very broken. Needs to be rewritten for the new | 540 ;; ###jhod Currently very broken. Needs to be rewritten for the new |
459 ;; wnn-server-set-param | 541 ;; wnn-server-set-param |
460 (defun set-wnn-param (&rest param) | 542 (defun set-wnn-param (&rest param) |
543 "Set parameters for the current wnn session. | |
544 Uses property list PARAM, or prompts if called interactivly. | |
545 | |
546 Currently very broken." | |
461 (interactive) | 547 (interactive) |
462 ; (open-wnn-if-disconnected) | 548 ; (open-wnn-if-disconnected) |
463 (let ((current-param (wnn-server-get-param)) | 549 (let ((current-param (wnn-server-get-param)) |
464 (new-param) | 550 (new-param) |
465 (message (egg:msg-get 'param))) | 551 (message (egg:msg-get 'param))) |
599 | 685 |
600 (defun make-host-list (name list) | 686 (defun make-host-list (name list) |
601 (cons name (delete name list))) | 687 (cons name (delete name list))) |
602 | 688 |
603 (defun set-wnn-host-name (name) | 689 (defun set-wnn-host-name (name) |
690 "Set egg/wnn to connect to jserver on host NAME, or prompt for it." | |
604 (interactive "sHost name: ") | 691 (interactive "sHost name: ") |
605 (let ((wnn-server-type 'jserver)) (close-wnn)) | 692 (let ((wnn-server-type 'jserver)) (close-wnn)) |
606 (setq jserver-list | 693 (setq jserver-list |
607 (make-host-list | 694 (make-host-list |
608 name (or jserver-list (list (or wnn-host-name (getenv "JSERVER"))))))) | 695 name (or jserver-list (list (or wnn-host-name (getenv "JSERVER"))))))) |
609 | 696 |
610 (fset 'set-jserver-host-name (symbol-function 'set-wnn-host-name)) | 697 (fset 'set-jserver-host-name (symbol-function 'set-wnn-host-name)) |
611 | 698 |
612 (defun set-cwnn-host-name (name) | 699 (defun set-cwnn-host-name (name) |
700 "Set egg/wnn to connect to cserver on host NAME, or prompt for it." | |
613 (interactive "sHost name: ") | 701 (interactive "sHost name: ") |
614 (let ((wnn-server-type 'cserver)) (close-wnn)) | 702 (let ((wnn-server-type 'cserver)) (close-wnn)) |
615 (setq cserver-list | 703 (setq cserver-list |
616 (make-host-list | 704 (make-host-list |
617 name (or cserver-list (list (or cwnn-host-name (getenv "CSERVER"))))))) | 705 name (or cserver-list (list (or cwnn-host-name (getenv "CSERVER"))))))) |
618 | 706 |
619 (fset 'set-cserver-host-name (symbol-function 'set-cwnn-host-name)) | 707 (fset 'set-cserver-host-name (symbol-function 'set-cwnn-host-name)) |
620 | 708 |
621 (defun set-kwnn-host-name (name) | 709 (defun set-kwnn-host-name (name) |
710 "Set egg/wnn to connect to kserver on host NAME, or prompt for it." | |
622 (interactive "sHost name: ") | 711 (interactive "sHost name: ") |
623 (let ((wnn-server-type 'kserver)) (close-wnn)) | 712 (let ((wnn-server-type 'kserver)) (close-wnn)) |
624 (setq kserver-list | 713 (setq kserver-list |
625 (make-host-list | 714 (make-host-list |
626 name (or kserver-list (list (or kwnn-host-name (getenv "KSERVER"))))))) | 715 name (or kserver-list (list (or kwnn-host-name (getenv "KSERVER"))))))) |
693 (let ((wnnenv-sticky nil)) (wnn-server-close)) | 782 (let ((wnnenv-sticky nil)) (wnn-server-close)) |
694 (egg:error (egg:msg-get 'no-rcfile) path))) | 783 (egg:error (egg:msg-get 'no-rcfile) path))) |
695 (run-hooks 'egg:open-wnn-hook)))) | 784 (run-hooks 'egg:open-wnn-hook)))) |
696 | 785 |
697 (defun disconnect-wnn () | 786 (defun disconnect-wnn () |
787 "Dump connection to Wnn servers, discarding dictionary and frequency changes." | |
698 (interactive) | 788 (interactive) |
699 (if (wnn-server-isconnect) (wnn-server-close))) | 789 (if (wnn-server-isconnect) (wnn-server-close))) |
700 | 790 |
701 (defun close-wnn () | 791 (defun close-wnn () |
792 "Cleanly shutdown connection to Wnn servers, saving data and calling egg:close-wnn-hook" | |
702 (interactive) | 793 (interactive) |
703 (if (wnn-server-isconnect) | 794 (if (wnn-server-isconnect) |
704 (progn | 795 (progn |
705 (wnn-server-set-rev nil) | 796 (wnn-server-set-rev nil) |
706 (if (wnn-server-dict-save) | 797 (if (wnn-server-dict-save) |
1008 egg:*dai-bunsetu-kugiri* | 1099 egg:*dai-bunsetu-kugiri* |
1009 egg:*sho-bunsetu-kugiri*))) | 1100 egg:*sho-bunsetu-kugiri*))) |
1010 (setq i (1+ i))))) | 1101 (setq i (1+ i))))) |
1011 | 1102 |
1012 (defun henkan-kakutei () | 1103 (defun henkan-kakutei () |
1104 "Accept the current henkan region" | |
1013 (interactive) | 1105 (interactive) |
1014 (egg:bunsetu-face-off) | 1106 (egg:bunsetu-face-off) |
1015 (egg:henkan-face-off) | 1107 (egg:henkan-face-off) |
1016 (delete-region (- egg:*region-start* (length egg:*henkan-open*)) | 1108 (delete-region (- egg:*region-start* (length egg:*henkan-open*)) |
1017 egg:*region-start*) | 1109 egg:*region-start*) |
1058 (egg:quit-egg-mode) | 1150 (egg:quit-egg-mode) |
1059 ) | 1151 ) |
1060 ;; end of patch | 1152 ;; end of patch |
1061 | 1153 |
1062 (defun henkan-kakutei-before-point () | 1154 (defun henkan-kakutei-before-point () |
1155 "Accept the henkan region before point, and put the rest back into a fence." | |
1063 (interactive) | 1156 (interactive) |
1064 (egg:bunsetu-face-off) | 1157 (egg:bunsetu-face-off) |
1065 (egg:henkan-face-off) | 1158 (egg:henkan-face-off) |
1066 (delete-region egg:*region-start* egg:*region-end*) | 1159 (delete-region egg:*region-start* egg:*region-end*) |
1067 (goto-char egg:*region-start*) | 1160 (goto-char egg:*region-start*) |
1098 ;;;(use-local-map nil) | 1191 ;;;(use-local-map nil) |
1099 (setq egg:henkan-mode-in-use nil) | 1192 (setq egg:henkan-mode-in-use nil) |
1100 (use-local-map fence-mode-map) | 1193 (use-local-map fence-mode-map) |
1101 (egg:mode-line-display)) | 1194 (egg:mode-line-display)) |
1102 | 1195 |
1196 ;; ### Should probably put this on a key. | |
1103 (defun sai-henkan () | 1197 (defun sai-henkan () |
1198 "Reconvert last henkan entry." | |
1104 (interactive) | 1199 (interactive) |
1105 (if egg:henkan-mode-in-use nil | 1200 (if egg:henkan-mode-in-use nil |
1106 (let ((finished nil)) | 1201 (let ((finished nil)) |
1107 (unwind-protect | 1202 (unwind-protect |
1108 (progn | 1203 (progn |
1129 | 1224 |
1130 (defun egg:bunsetu-face-on () | 1225 (defun egg:bunsetu-face-on () |
1131 ;; make dai-bunsetu extent and sho-bunsetu extent if they do not exist. | 1226 ;; make dai-bunsetu extent and sho-bunsetu extent if they do not exist. |
1132 ;; put thier faces to extents and move them to each bunsetu. | 1227 ;; put thier faces to extents and move them to each bunsetu. |
1133 (let* ((bunsetu-begin *bunsetu-number*) | 1228 (let* ((bunsetu-begin *bunsetu-number*) |
1134 (bunsetu-end) | 1229 (bunsetu-end)) |
1135 (bunsetu-suu (wnn-server-bunsetu-suu))) | 1230 ; (bunsetu-suu (wnn-server-bunsetu-suu))) |
1136 ; dai bunsetu | 1231 ; dai bunsetu |
1137 (if egg:*dai-bunsetu-face* | 1232 (if egg:*dai-bunsetu-face* |
1138 (progn | 1233 (progn |
1139 (if (extentp egg:*dai-bunsetu-extent*) | 1234 (if (extentp egg:*dai-bunsetu-extent*) |
1140 nil | 1235 nil |
1250 (henkan-goto-kouho (1- (bunsetu-kouho-number *bunsetu-number* init))))) | 1345 (henkan-goto-kouho (1- (bunsetu-kouho-number *bunsetu-number* init))))) |
1251 | 1346 |
1252 (defun henkan-goto-kouho (kouho-number) | 1347 (defun henkan-goto-kouho (kouho-number) |
1253 ; (egg:bunsetu-face-off) | 1348 ; (egg:bunsetu-face-off) |
1254 (let ((point (point)) | 1349 (let ((point (point)) |
1255 (yomi (bunsetu-yomi *bunsetu-number*)) | 1350 ; (yomi (bunsetu-yomi *bunsetu-number*)) |
1256 (max) | 1351 (max) |
1257 (min)) | 1352 (min)) |
1258 (setq kouho-number | 1353 (setq kouho-number |
1259 (check-number-range kouho-number | 1354 (check-number-range kouho-number |
1260 0 | 1355 0 |
1328 (setq l (+ l (bunsetu-length-sho i))) | 1423 (setq l (+ l (bunsetu-length-sho i))) |
1329 (setq i (1+ i))) | 1424 (setq i (1+ i))) |
1330 (bunsetu-length-henko l))) | 1425 (bunsetu-length-henko l))) |
1331 | 1426 |
1332 (defun bunsetu-length-henko (length) | 1427 (defun bunsetu-length-henko (length) |
1333 (let ((i 0) | 1428 (let ((r (wnn-server-bunsetu-henkou *bunsetu-number* length egg:*dai*)) |
1334 (r (wnn-server-bunsetu-henkou *bunsetu-number* length egg:*dai*)) | |
1335 (start (max 0 (1- *bunsetu-number*)))) | 1429 (start (max 0 (1- *bunsetu-number*)))) |
1336 (cond((null r) | 1430 (cond((null r) |
1337 (egg:error (wnn-server-get-msg))) | 1431 (egg:error (wnn-server-get-msg))) |
1338 ((> r 0) | 1432 ((> r 0) |
1339 ; (egg:henkan-face-off) | 1433 ; (egg:henkan-face-off) |
1747 (let* ((dict-item (nth | 1841 (let* ((dict-item (nth |
1748 (+ (count-lines (point-min) (point)) | 1842 (+ (count-lines (point-min) (point)) |
1749 (if (= (current-column) 0) 1 0) | 1843 (if (= (current-column) 0) 1 0) |
1750 -1) | 1844 -1) |
1751 *diced-dict-info*)) | 1845 *diced-dict-info*)) |
1752 (hindo (nth 2 dict-item)) | 1846 ; (hindo (nth 2 dict-item)) |
1753 (dict-number (nth 3 dict-item)) | 1847 (dict-number (nth 3 dict-item)) |
1754 (serial-number (nth 4 dict-item)) | 1848 (serial-number (nth 4 dict-item)) |
1755 ) | 1849 ) |
1756 (if (null (wnn-server-word-use dict-number serial-number)) | 1850 (if (null (wnn-server-word-use dict-number serial-number)) |
1757 (egg:error (wnn-server-get-msg))) | 1851 (egg:error (wnn-server-get-msg))) |
1758 (diced-redisplay-hindo dict-number serial-number))) | 1852 (diced-redisplay-hindo dict-number serial-number))) |
1759 | 1853 |
1760 (defun diced-hindo-set (&optional newhindo) | 1854 (defun diced-hindo-set (&optional newhindo) |
1761 (interactive) | 1855 (interactive) |
1762 (if (null newhindo) | 1856 (if (null newhindo) |
1763 (setq newhindo (read-minibuffer (egg:msg-get 'enter-hindo)))) | 1857 (setq newhindo (read-expression (egg:msg-get 'enter-hindo)))) |
1764 (let* ((dict-item (nth | 1858 (let* ((dict-item (nth |
1765 (+ (count-lines (point-min) (point)) | 1859 (+ (count-lines (point-min) (point)) |
1766 (if (= (current-column) 0) 1 0) | 1860 (if (= (current-column) 0) 1 0) |
1767 -1) | 1861 -1) |
1768 *diced-dict-info*)) | 1862 *diced-dict-info*)) |
1769 (hindo (nth 2 dict-item)) | 1863 ; (hindo (nth 2 dict-item)) |
1770 (dict-number (nth 3 dict-item)) | 1864 (dict-number (nth 3 dict-item)) |
1771 (serial-number (nth 4 dict-item)) | 1865 (serial-number (nth 4 dict-item)) |
1772 ) | 1866 ) |
1773 (if (null (wnn-server-word-hindo-set dict-number serial-number newhindo)) | 1867 (if (null (wnn-server-word-hindo-set dict-number serial-number newhindo)) |
1774 (egg:error (wnn-server-get-msg))) | 1868 (egg:error (wnn-server-get-msg))) |
1791 (if (= (following-char) ?D) | 1885 (if (= (following-char) ?D) |
1792 (let* ((dict-item (nth no *diced-dict-info*)) | 1886 (let* ((dict-item (nth no *diced-dict-info*)) |
1793 (kanji (nth 0 dict-item)) | 1887 (kanji (nth 0 dict-item)) |
1794 (bunpo (nth 1 dict-item)) | 1888 (bunpo (nth 1 dict-item)) |
1795 (hinshi (wnn-server-hinsi-name bunpo)) | 1889 (hinshi (wnn-server-hinsi-name bunpo)) |
1796 (hindo (nth 2 dict-item)) | 1890 ; (hindo (nth 2 dict-item)) |
1797 (dict-number (nth 3 dict-item)) | 1891 (dict-number (nth 3 dict-item)) |
1798 (dict-name (wnn-dict-name dict-number (wnn-server-dict-list))) | 1892 (dict-name (wnn-dict-name dict-number (wnn-server-dict-list))) |
1799 (sys-dict-p (null (memq dict-number (wnn-server-hinsi-dicts -1)))) | 1893 ; (sys-dict-p (null (memq dict-number (wnn-server-hinsi-dicts -1)))) |
1800 (serial-number (nth 4 dict-item)) | 1894 (serial-number (nth 4 dict-item)) |
1801 ) | 1895 ) |
1802 (if (notify-yes-or-no-p (egg:msg-get 'remove-notify) | 1896 (if (notify-yes-or-no-p (egg:msg-get 'remove-notify) |
1803 kanji hinshi dict-name) | 1897 kanji hinshi dict-name) |
1804 (progn | 1898 (progn |
1827 (interactive) | 1921 (interactive) |
1828 (scroll-down) | 1922 (scroll-down) |
1829 (if (eobp) (forward-line -1))) | 1923 (if (eobp) (forward-line -1))) |
1830 | 1924 |
1831 (defun diced-mode () | 1925 (defun diced-mode () |
1832 "Mode for \"editing\" dictionaries. | 1926 "Mode for \"editing\" Wnn dictionaries. |
1833 In diced, you are \"editing\" a list of the entries in dictionaries. | 1927 In diced, you are \"editing\" a list of the entries in dictionaries. |
1834 You can move using the usual cursor motion commands. | 1928 You can move using the usual cursor motion commands. |
1835 Letters no longer insert themselves. Instead, | 1929 Letters no longer insert themselves. Instead, |
1836 | 1930 |
1837 Type a to Add new entry. | 1931 Type a to Add new entry. |
1924 kanji yomi hinsi jisho serial | 2018 kanji yomi hinsi jisho serial |
1925 (if (= ima 1) "*" " ") | 2019 (if (= ima 1) "*" " ") |
1926 hindo hyoka daihyoka kangovect) | 2020 hindo hyoka daihyoka kangovect) |
1927 t))))))))) | 2021 t))))))))) |
1928 | 2022 |
1929 (provide 'wnn-egg) | 2023 (provide 'egg-wnn) |
1930 | 2024 |
1931 ;;; wnn-egg.el ends here | 2025 ;;; egg-wnn.el ends here |