annotate lisp/egg/egg-quail.el @ 143:50e7fedfe353

Added tag r20-2b5 for changeset 1856695b1fa9
author cvs
date Mon, 13 Aug 2007 09:33:20 +0200
parents 360340f9fd5f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
1 ;;; Quail <-> EGG interface
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
2
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
3 (require 'quail)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
4
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
5 (or (featurep 'egg)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
6 (error "You don't have EGG feature."))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
7
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
8 (defconst quail-mode-egg-map (make-keymap))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
9 (set-keymap-parents quail-mode-egg-map (list quail-mode-map))
108
360340f9fd5f Import from CVS: tag r20-1b6
cvs
parents: 70
diff changeset
10 (define-key quail-mode-egg-map " " 'quail-henkan-region)
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
11
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
12 (defvar quail-henkan-start nil)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
13 (make-variable-buffer-local 'quail-henkan-start)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
14
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
15 (defvar quail-henkan-start-char ?◇)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
16
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
17 (defconst quail-henkan-mode-map (make-keymap))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
18 (set-keymap-parents quail-henkan-mode-map (list henkan-mode-map))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
19
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
20 (substitute-key-definition 'self-insert-command
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
21 'quail-henkan-kakutei-and-self-insert
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
22 quail-henkan-mode-map)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
23
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
24 (define-key quail-henkan-mode-map "\C-k" 'quail-henkan-kakutei)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
25 (define-key quail-henkan-mode-map "\C-l" 'quail-henkan-kakutei)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
26 (define-key quail-henkan-mode-map "\C-m" 'quail-henkan-kakutei)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
27 (define-key quail-henkan-mode-map "\C-c" 'quail-henkan-quit)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
28 (define-key quail-henkan-mode-map "\C-g" 'quail-henkan-quit)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
29 (define-key quail-henkan-mode-map "\177" 'quail-henkan-quit)
108
360340f9fd5f Import from CVS: tag r20-1b6
cvs
parents: 70
diff changeset
30 (define-key quail-henkan-mode-map "\eg" 'quail-henkan-quit)
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
31
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
32 (defun quail-henkan-mark ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
33 "Set mark at the current position to indicate starting point of henkan."
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
34 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
35 (quail-delete-region)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
36 (quail-init-state)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
37 (setq quail-henkan-start (point-marker))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
38 (insert quail-henkan-start-char))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
39
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
40 (defun quail-henkan-region ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
41 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
42 (quail-delete-region)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
43 (quail-init-state)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
44 (if quail-henkan-start
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
45 (let ((pos (point-marker)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
46 (goto-char quail-henkan-start)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
47 (if (and (= (following-char) quail-henkan-start-char)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
48 (progn (delete-char 1)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
49 (< quail-henkan-start pos)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
50 (let ((henkan-mode-map quail-henkan-mode-map))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
51 (henkan-region quail-henkan-start pos))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
52 (goto-char pos))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
53 (setq quail-henkan-start nil))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
54
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
55 (defun quail-henkan-kakutei-and-self-insert ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
56 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
57 (setq unread-command-events (list last-command-event))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
58 (quail-henkan-kakutei))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
59
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
60 (defun quail-henkan-reset ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
61 (egg:bunsetu-attribute-off bunsetu-number)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
62 (egg:henkan-attribute-off)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
63 (goto-char egg:region-start)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
64 (delete-region (- egg:region-start (length egg:henkan-open))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
65 (+ egg:region-end (length egg:henkan-close)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
66 (set-marker egg:region-start nil)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
67 (set-marker egg:region-end nil)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
68 (setq quail-henkan-start nil)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
69 (quail-init-state)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
70 (use-local-map (quail-mode-map))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
71 (egg:mode-line-display))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
72
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
73 (defun quail-henkan-kakutei ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
74 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
75 (quail-henkan-reset)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
76 (let ((i 0) (max (wnn-server-bunsetu-suu)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
77 (while (< i max)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
78 (insert (car (wnn-server-bunsetu-kanji i )))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
79 (if (not overwrite-mode)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
80 (undo-boundary))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
81 (setq i (1+ i))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
82 ))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
83 (wnn-server-hindo-update)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
84 (egg:mode-line-display))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
85
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
86 (defun quail-henkan-quit ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
87 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
88 (quail-henkan-reset)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
89 (insert egg:kanji-kanabuff)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
90 (wnn-server-henkan-quit)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
91 (egg:mode-line-display))