X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=canna.el;h=7e443f8955de450409e514621c5425af451f8011;hb=5f79a729e06dd040891e851190907055bfbdb799;hp=0ea53eaf22715cd6562a70ffef067534df0c80c6;hpb=a98a55262e7f60ac6ae3f0adee6b1b57476a2a65;p=elisp%2Femacs-canna.git diff --git a/canna.el b/canna.el index 0ea53ea..7e443f8 100644 --- a/canna.el +++ b/canna.el @@ -2,10 +2,12 @@ ;; Copyright (C) 1994 Akira Kon, NEC Corporation. ;; Copyright (C) 1996,1997,1998 MORIOKA Tomohiko +;; Copyright (C) 1997 Stephen Turnbull ;; Author: Akira Kon ;; MORIOKA Tomohiko -;; Version: $Revision: 1.10 $ +;; Stephen Turnbull +;; Version: $Revision: 1.15 $ ;; Keywords: Canna, Japanese, input method, mule, multilingual ;; This file is not a part of Emacs yet. @@ -49,12 +51,16 @@ (and canna-dl-handle (dynamic-call "emacs_canna_init" canna-dl-handle)) +(or (boundp 'CANNA) + (featurep 'CANNA) + (error "Canna is not built into this Emacs")) + (defvar self-insert-after-hook nil) ;; (defalias 'self-insert-internal 'self-insert-command) ;; end (defconst canna-rcs-version - "$Id: canna.el,v 1.10 1998-01-16 08:49:29 morioka Exp $") + "$Id: canna.el,v 1.15 1998-02-09 13:09:08 morioka Exp $") (defun canna-version () "Display version of canna.el in mini-buffer." @@ -67,9 +73,7 @@ )) " ..."))) -(require 'emu) - -(if running-xemacs +(if (featurep 'xemacs) (defun canna-self-insert-string (string) (let ((len (length string)) (i 0) @@ -175,7 +179,7 @@ (defun canna:create-mode-line () "Add string of Canna status into mode-line." - (cond (running-xemacs + (cond ((featurep 'xemacs) (or (canna:memq-recursive 'mode-line-canna-mode default-modeline-format) (setq-default default-modeline-format @@ -292,7 +296,7 @@ t の時はデフォルトの色を使用する。 (define-key canna-mode-map (make-string 1 ch) 'canna-functional-insert-command) (setq ch (1+ ch)))) -(cond (running-xemacs +(cond ((featurep 'xemacs) (define-key canna-mode-map [up] "\C-p") (define-key canna-mode-map [(shift up)] "\C-p") (define-key canna-mode-map [(control up)] "\C-p") @@ -333,7 +337,7 @@ t の時はデフォルトの色を使用する。 (define-key canna-minibuffer-mode-map (make-string 1 ch) 'canna-minibuffer-insert-command) (setq ch (1+ ch)))) -(cond (running-xemacs +(cond ((featurep 'xemacs) (define-key canna-minibuffer-mode-map [up] "\C-p") (define-key canna-minibuffer-mode-map [(shift up)] "\C-p") (define-key canna-minibuffer-mode-map [(control up)] "\C-p") @@ -642,7 +646,7 @@ kana-to-kanji translation." ; (set-window-buffer (minibuffer-window) ; (get-buffer-create canna:*menu-buffer*)) ;; modified by 守岡 知彦 , 1996/6/7 - (unless running-xemacs + (unless (featurep 'xemacs) ;; とりあえず XEmacs では動かさないことにしておこう (^_^; (setq canna:*saved-redirection* (frame-focus (selected-frame))) (redirect-frame-focus (selected-frame) @@ -688,7 +692,7 @@ kana-to-kanji translation." (set-window-buffer (minibuffer-window) canna:*saved-minibuffer*) ; (setq canna:*saved-minibuffer* nil) ;; modified by 守岡 知彦 , 1996/6/7 - (unless running-xemacs + (unless (featurep 'xemacs) ;; とりあえず XEmacs では動かさないようにしておこう (^_^; (redirect-frame-focus (window-frame canna:*previous-window*) canna:*saved-redirection*) @@ -765,6 +769,9 @@ kana-to-kanji translation, even if you are in the minibuffer." (- (point) arg) (point))) (if (= last-command-char ? ) (canna:do-auto-fill)))))) +;; wire us into pending-delete +(put 'canna-self-insert-command 'pending-delete t) + (defun canna-toggle-japanese-mode () "Toggle canna japanese mode." (interactive) @@ -1001,7 +1008,7 @@ dictionary." (eq hilit-background-mode 'dark)) (string-match "on\\|t" - (or (if running-xemacs + (or (if (featurep 'xemacs) (x-get-resource "ReverseVideo" "reverseVideo" 'string) (x-get-resource "ReverseVideo" "reverseVideo")) @@ -1058,7 +1065,14 @@ dictionary." (define-key global-map (make-string 1 ch) 'canna-self-insert-command) (setq ch (1+ ch)) )) - (cond ((let ((keys (car init-val)) (ok nil)) + (cond + ;; #### I'm just guessing that this should come before the + ;; init-val setting + ;; if registered with LEIM, no-op + ((featurep 'canna-leim) t) + ;; check to see if an X resource or the like is available in + ;; init-val + ((let ((keys (car init-val)) (ok nil)) (while keys (cond ((< (car keys) 128) (global-set-key @@ -1067,9 +1081,13 @@ dictionary." (setq ok t) )) (setq keys (cdr keys)) ) ok)) - (t ; デフォルトの設定 - (global-set-key "\C-o" 'canna-toggle-japanese-mode) )) + ;; デフォルトの設定 + ;; Since XEmacs provides canna-leim.el, we should leave this + ;; as is. + (t (global-set-key "\C-o" 'canna-toggle-japanese-mode) )) + ;; #### should these global bindings be conditional on LEIM? + ;; LEIM doesn't use kanji key yet AFAIK, so leave them. (if (not (keymapp (global-key-binding "\e["))) (global-unset-key "\e[") ) (global-set-key "\e[210z" 'canna-toggle-japanese-mode) ; XFER