;;; canna.el --- Interface to the Canna input method.
;; Copyright (C) 1994 Akira Kon, NEC Corporation.
-;; Copyright (C) 1996,1997,1998 MORIOKA Tomohiko
+;; Copyright (C) 1996,1997,1998,2004 MORIOKA Tomohiko
;; Copyright (C) 1997 Stephen Turnbull
;; Author: Akira Kon <kon@d1.bs2.mt.nec.co.jp>
;; MORIOKA Tomohiko <morioka@jaist.ac.jp>
;; Stephen Turnbull <turnbull@sk.tsukuba.ac.jp>
-;; Version: $Revision: 1.20 $
;; Keywords: Canna, Japanese, input method, mule, multilingual
;; This file is part of Emacs-Canna.
;; (defalias 'self-insert-internal 'self-insert-command)
;; end
-(defconst canna-version "Emacs-Canna 1.3")
+(defconst canna-version "Emacs-Canna 1.5")
(defun canna-version ()
"Display version of canna.el in mini-buffer."
(interactive)
(message (concat canna-version " ...")))
-(if (featurep 'xemacs)
- (defun canna-self-insert-string (string)
- (let ((len (length string))
- (i 0)
- ;; \e$BA^F~$NESCf$G\e(B blink \e$B$,5/$-$k$H$&$C$H$*$7$$$N$G!"\e(B
- ;; \e$B0l;~E*$K\e(B blink \e$B$rM^;_$9$k!#\e(B
- (blink-matching-paren nil))
- (while (< i len)
- (self-insert-internal (aref canna-kakutei-string i))
- (setq i (1+ i))
- )))
- (defalias 'canna-self-insert-string 'insert)
+(defvar canna-self-insert-string-filter nil
+ "*\e$B3NDj;~$K8F$P$l$k%U%#%k%?!<4X?t$r;XDj$9$k$?$a$NJQ?t!#\e(B
+\e$B@_Dj$5$l$k%U%#%k%?!<4X?t$O#10z?t$N4X?t$G!"\e(B
+\e$B$=$N0z?t$K3NDjJ8;zNs$,EO$5$l$k!#\e(B
+\e$B$^$?!"%U%#%k%?!<4X?t$OJ8;zNs$rJV$5$J$1$l$P$J$i$J$$!#\e(B
+\e$B>e5-$N;HMQ$rK~$?$94X?t$NB>!"\e(Bnil \e$B$r;XDj$9$k$3$H$,$G$-!"\e(B
+\e$B$=$N>l9g$OL5JQ49$rI=$9!#\e(B")
+
+(cond
+ ((featurep 'xemacs)
+ (defun canna-self-insert-string (string)
+ (if (functionp canna-self-insert-string-filter)
+ (setq string (funcall canna-self-insert-string-filter string)))
+ (let ((len (length string))
+ (i 0)
+ ;; \e$BA^F~$NESCf$G\e(B blink \e$B$,5/$-$k$H$&$C$H$*$7$$$N$G!"\e(B
+ ;; \e$B0l;~E*$K\e(B blink \e$B$rM^;_$9$k!#\e(B
+ (blink-matching-paren nil))
+ (while (< i len)
+ (self-insert-internal (aref string i))
+ (setq i (1+ i)))))
)
+ (t
+ ;; (defalias 'canna-self-insert-string 'insert)
+ (defun canna-self-insert-string (string)
+ (if canna-self-insert-string-filter
+ (setq string (funcall canna-self-insert-string-filter string)))
+ (insert string))
+ ))
;;; \e$B$+$s$J$NJQ?t\e(B
(define-key canna-mode-map [(control left)] "\C-b")
(define-key canna-mode-map [kanji] " ")
(define-key canna-mode-map [(control space)] [(control @)])
+ (define-key canna-mode-map [delete] "\C-?")
+ (define-key canna-mode-map [backspace] "\C-h")
)
(t
(define-key canna-mode-map [up] [?\C-p])