From: morioka Date: Thu, 3 Apr 1997 18:33:12 +0000 (+0000) Subject: modified for GNU Mule 19.34.94-epsilon with dl patch. X-Git-Tag: emacs-canna-199811302358~35 X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b21d0b47e9321c8421676ecf4bf6500d4e4de3b3;p=elisp%2Femacs-canna.git modified for GNU Mule 19.34.94-epsilon with dl patch. --- diff --git a/canna.el b/canna.el index d9b231a..0cd4d03 100644 --- a/canna.el +++ b/canna.el @@ -26,6 +26,16 @@ ;; -*-mode: emacs-lisp-*- +;; by 守岡 知彦 1996/11/11 +(or (boundp 'CANNA) + (let ((handle (dynamic-link "canna.so"))) + (dynamic-call "emacs_canna_init" handle)) + ) + +(defvar self-insert-after-hook nil) +;; (defalias 'self-insert-internal 'self-insert-command) +;; end + (defconst canna-rcs-version "Canna/mule 2.x, based on Canna 2.2/3.2. : canna.el,v x.xx 1994/11/7 00:00:00") (defun canna-version () @@ -365,13 +375,16 @@ kana-to-kanji translation." (set-marker canna:*spos-undo-text* (point)) ;; ;; update kbnes - (let ((list (string-to-char-list canna-kakutei-string)) - ;; 挿入の途中で blink が起きるとうっとおしいので、 - ;; 一時的に blink を抑止する。 - (blink-matching-paren nil)) - (while list - (self-insert-internal (car list)) - (setq list (cdr list)))) + ;; by 守岡 知彦 1996/11/8 + ;; とりあえず insert にしとく。 + (insert canna-kakutei-string) + ;;(let ((list (string-to-char-list canna-kakutei-string)) + ;; ;; 挿入の途中で blink が起きるとうっとおしいので、 + ;; ;; 一時的に blink を抑止する。 + ;; (blink-matching-paren nil)) + ;; (while list + ;; (self-insert-internal (car list)) + ;; (setq list (cdr list)))) ;; 未確定の文字がなく、確定文字列の最後が閉じ括弧の ;; 類だったときは blink させる。 (if (and canna-empty-info @@ -399,13 +412,17 @@ kana-to-kanji translation." (t ;; ;; update kbnes - (let ((list (string-to-char-list canna-kakutei-string)) - ;; 挿入の途中で blink が起きるとうっとおしいので、 - ;; 一時的に blink を抑止する。 - (blink-matching-paren nil)) - (while list - (self-insert-internal (car list)) - (setq list (cdr list)))) + ;; by 守岡 知彦 1996/11/8 + ;; とりあえず insert にしとく。 + (insert canna-kakutei-string) + ;; (let ((list (string-to-char-list canna-kakutei-string)) + ;; ;; 挿入の途中で blink が起きるとうっとおしいので、 + ;; ;; 一時的に blink を抑止する。 + ;; (blink-matching-paren nil)) + ;; (while list + ;; (self-insert-internal (car list)) + ;; (setq list (cdr list)))) + ;; 未確定の文字がなく、確定文字列の最後が閉じ括弧の ;; 類だったときは blink させる。 (if (and canna-empty-info @@ -447,34 +464,34 @@ kana-to-kanji translation." (canna:yomi-attr-on canna:*region-start* canna:*region-end*)) (setq canna:*last-kouho* canna-henkan-length) )) - - ;; 候補領域では強調したい文字列が存在するものと考えら - ;; れる。強調したい文字はEmacsではカーソルポジションにて表示 - ;; することとする。強調したい文字がないのであれば、カーソル - ;; は一番後の部分(入力が行われるポイント)に置いておく。 - - ;; カーソルを移動する。 - (if (not canna-underline) - (backward-char - (- canna:*last-kouho* - ;; カーソル位置は、反転表示部分が存在しないのであれば、 - ;; 候補文字列の最後の部分とし、反転表示部分が存在するの - ;; であれば、その部分の始めとする。 - (cond ((zerop canna-henkan-revlen) - canna:*last-kouho*) - (t canna-henkan-revpos) )) ) - (if (and (> canna-henkan-revlen 0) - (> canna-henkan-length 0)) - ; 候補の長さが0でなく、 - ; 反転表示の長さが0でなければ、 - ; その部分を変転表示する。 - (let ((start (+ canna:*region-start* - (if canna-with-fences 1 0) - canna-henkan-revpos) )) - (if canna-underline - (canna:henkan-attr-on start - (+ start canna-henkan-revlen))))) - ) ) + + ;; 候補領域では強調したい文字列が存在するものと考えら + ;; れる。強調したい文字はEmacsではカーソルポジションにて表示 + ;; することとする。強調したい文字がないのであれば、カーソル + ;; は一番後の部分(入力が行われるポイント)に置いておく。 + + ;; カーソルを移動する。 + (if (not canna-underline) + (backward-char + (- canna:*last-kouho* + ;; カーソル位置は、反転表示部分が存在しないのであれば、 + ;; 候補文字列の最後の部分とし、反転表示部分が存在するの + ;; であれば、その部分の始めとする。 + (cond ((zerop canna-henkan-revlen) + canna:*last-kouho*) + (t canna-henkan-revpos) )) ) + (if (and (> canna-henkan-revlen 0) + (> canna-henkan-length 0)) + ; 候補の長さが0でなく、 + ; 反転表示の長さが0でなければ、 + ; その部分を変転表示する。 + (let ((start (+ canna:*region-start* + (if canna-with-fences 1 0) + canna-henkan-revpos) )) + (if canna-underline + (canna:henkan-attr-on start + (+ start canna-henkan-revlen))))) + ) ) (defun canna:display-candidates (strs) (cond ((stringp strs) ; エラーが起こった場合 @@ -1236,7 +1253,7 @@ self insert otherwise." (defun canna:yomi-attr-on (start end) (if (overlayp canna:*yomi-overlay*) (move-overlay canna:*yomi-overlay* start end) - (overlay-put (setq canna:*yomi-overlay* (make-overlay start end nil t)) + (overlay-put (setq canna:*yomi-overlay* (make-overlay start end nil nil t)) 'face (if canna:color-p 'attr-yomi 'underline)) ) @@ -1251,7 +1268,8 @@ self insert otherwise." (defun canna:henkan-attr-on (start end) (if (overlayp canna:*henkan-overlay*) (move-overlay canna:*henkan-overlay* start end) - (overlay-put (setq canna:*henkan-overlay* (make-overlay start end nil t)) + (overlay-put (setq canna:*henkan-overlay* + (make-overlay start end nil nil t)) 'face (if canna:color-p 'attr-taishou 'region)) ) @@ -1266,7 +1284,8 @@ self insert otherwise." (defun canna:select-attr-on (start end) (if (overlayp canna:*select-overlay*) (move-overlay canna:*select-overlay* start end) - (overlay-put (setq canna:*select-overlay* (make-overlay start end nil t)) + (overlay-put (setq canna:*select-overlay* + (make-overlay start end nil nil t)) 'face 'attr-select)) )