Mercurial > emacs
comparison leim/quail/japanese.el @ 33582:5ce190e20a23
(quail-japanese-kanji-kkc): Use marker to remember the conversion
start.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Sat, 18 Nov 2000 00:04:54 +0000 |
parents | 57911faddb37 |
children | f40b8211dbe0 |
comparison
equal
deleted
inserted
replaced
33581:10615d0d4ed1 | 33582:5ce190e20a23 |
---|---|
77 | 77 |
78 ;; Convert Hiragana in the current translation region to Kanji by KKC | 78 ;; Convert Hiragana in the current translation region to Kanji by KKC |
79 ;; (Kana Kanji Converter) utility. | 79 ;; (Kana Kanji Converter) utility. |
80 (defun quail-japanese-kanji-kkc () | 80 (defun quail-japanese-kanji-kkc () |
81 (interactive) | 81 (interactive) |
82 (let ((from (overlay-start quail-conv-overlay)) | 82 (when (= (char-before (overlay-end quail-conv-overlay)) ?n) |
83 (to (overlay-end quail-conv-overlay))) | 83 ;; The last char is `n'. We had better convert it to `ん' |
84 ;; before kana-kanji conversion. | |
85 (goto-char (overlay-end quail-conv-overlay)) | |
86 (delete-char -1) | |
87 (insert ?ん)) | |
88 (let* ((from (copy-marker (overlay-start quail-conv-overlay))) | |
89 (len (- (overlay-end quail-conv-overlay) from))) | |
84 (quail-delete-overlays) | 90 (quail-delete-overlays) |
85 (setq quail-current-str nil) | 91 (setq quail-current-str nil) |
86 (when (= (char-before to) ?n) | 92 (unwind-protect |
87 ;; The last char is `n'. We had better convert it to `ん' | 93 (let ((result (kkc-region from (+ from len)))) |
88 ;; before kana-kanji conversion. | 94 (move-overlay quail-conv-overlay from (point)) |
89 (goto-char to) | 95 (setq quail-conversion-str (buffer-substring from (point))) |
90 (delete-char -1) | 96 (if (= (+ from result) (point)) |
91 (insert ?ん)) | 97 (setq quail-converting nil)) |
92 (let ((result (kkc-region from to))) | 98 (setq quail-translating nil)) |
93 (move-overlay quail-conv-overlay from (point)) | 99 (set-marker from nil)))) |
94 (setq quail-conversion-str (buffer-substring from (point))) | |
95 (if (= (+ from result) (point)) | |
96 (setq quail-converting nil)) | |
97 (setq quail-translating nil)))) | |
98 | 100 |
99 (defun quail-japanese-self-insert-and-switch-to-alpha (key idx) | 101 (defun quail-japanese-self-insert-and-switch-to-alpha (key idx) |
100 (quail-delete-region) | 102 (quail-delete-region) |
101 (setq unread-command-events (list (aref key (1- idx)))) | 103 (setq unread-command-events (list (aref key (1- idx)))) |
102 (quail-japanese-switch-package "q" 1)) | 104 (quail-japanese-switch-package "q" 1)) |