diff options
Diffstat (limited to 'editors/tamago/patches/patch-aa')
-rw-r--r-- | editors/tamago/patches/patch-aa | 12786 |
1 files changed, 0 insertions, 12786 deletions
diff --git a/editors/tamago/patches/patch-aa b/editors/tamago/patches/patch-aa deleted file mode 100644 index 85efc4189fa..00000000000 --- a/editors/tamago/patches/patch-aa +++ /dev/null @@ -1,12786 +0,0 @@ -$NetBSD: patch-aa,v 1.8 2003/07/22 03:58:53 uebayasi Exp $ - -Index: AUTHORS -=================================================================== -RCS file: /cvs/tamago/tamago/AUTHORS,v -retrieving revision 1.1.1.1 -retrieving revision 1.2 -diff -d -u -p -r1.1.1.1 -r1.2 ---- AUTHORS 27 Jan 2001 18:45:24 -0000 1.1.1.1 -+++ AUTHORS 23 Aug 2002 07:46:38 -0000 1.2 -@@ -4,16 +4,17 @@ KAWABATA, Taichi <kawabata@exa.onlab.nt - MORIOKA Tomohiko <tomo@etl.go.jp> - Use of custom. - --NIIBE Yutaka <gniibe@chroot.org> -+NIIBE Yutaka <gniibe@m17n.org> - Design a part of ITS programming. - Wrote ITS: - its.el - its/hira.el -- Wrote tamago.el, menudiag.el, tamago-cnv.el, tamago-comm.el, -- and tamago-mlh.el. -+ Wrote egg.el, menudiag.el, egg-cnv.el, egg-com.el, -+ and egg-mlh.el. - Wrote backend conversion engine interface: -- SJ3: tamago-lib/sj3.el, tamago-lib/sj3rpc.el, -- WNN: tamago-lib/wnn.el, and tamago-lib/wnnrpc.el. -+ ANTHY: egg/anthy.el, egg/anthyipc.el, -+ SJ3: egg/sj3.el, egg/sj3rpc.el, -+ WNN: egg/wnn.el, and egg/wnnrpc.el. - - KATAYAMA Yoshio <kate@pfu.co.jp> - Design ITS programming. -Index: ChangeLog -=================================================================== -RCS file: /cvs/tamago/tamago/ChangeLog,v -retrieving revision 1.1.1.5 -retrieving revision 1.14 -diff -d -u -p -r1.1.1.5 -r1.14 ---- ChangeLog 27 Jan 2001 18:46:59 -0000 1.1.1.5 -+++ ChangeLog 9 Sep 2002 08:50:42 -0000 1.14 -@@ -1,156 +1,60 @@ --2000-01-17 TOMURA Satoru <tomura@etl.go.jp> -- -- * Version 4.0.6 released -- --2000-01-17 TOMURA Satoru <tomura@etl.go.jp> -- -- * README.ja.text: mentiond about doc/lc99.text -- --2000-01-17 KATAYAMA Yoshio <kate@pfu.co.jp> -- -- * its.el (its-hiragana, its-katanaka): modified -- (its-zenkaku, its-hankaku): added -- (its-put-cursor): bug fixed. -- (its-set-cursor-status): redefined. -- (its-search-beginning, its-search-end): created. -- (its-end-of-input-buffer): modified. -- (its-kill-line): modified. -- (its-cancel-input): modified. -- (its-japanese-hankaku): added. -- (its-convert): added. -- * egg.el (egg-redraw-face): bug fixed. -- --2000-01-17 SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> -- -- * its.el (its-hiragana, its-katakana): re-added. -- --2000-01-17 SANETO Takanori <sanewo@ba2.so-net.ne.jp> -- -- * Makefile.in: move its-keydefs.el from ITSELS to TOPELS -- --2000-01-16 -- -- * egg-sim.el: many functions renamed and modified... -- * doc/code-table: created -- --2000-01-15 TOMURA Satoru <tomura@etl.go.jp> -- -- * egg-sim.el: rename egg-code.el as egg-sim.el -- * egg-sim.el (egg-simple-input-method): rename -- egg-insert-character as egg-simple-input-method -- * egg.el: rename egg-insert-character as egg-simple-input-method -- * doc/lc99.txt: added. -- --2000-01-14 TOMURA Satoru <tomura@etl.go.jp> -- * egg-code.el: created -- * egg.el: Bind egg-insert-character to C-^ in egg-mode -- * egg.el: Delete the binding for C-_ in egg-mode -- * Makefile.in: add egg-code to ${SRCS} -- --2000-01-13 TOMURA Satoru <tomura@etl.go.jp> -- -- * Version 4.0.5 released. -- --2000-01-13 Katsumi Yamaoka <yamaoka@jpl.org> -- -- * egg/sj3.el (sj3-end-conversion): Restrain from overrunning. -- --2000-01-13 Katsumi Yamaoka <yamaoka@jpl.org> -- * egg/sj3rpc.el (sj3rpc-open): Use `sj3-server-version' instead of -- 2. -- (sj3rpc-unpack-mb-string): New macro. -- (sj3rpc-tanbunsetsu-conversion, sj3rpc-get-bunsetsu-candidates-sub, -- sj3rpc-begin): Use it instead of `comm-unpack'. -- -- (sj3rpc-server-coding-system): New macro. -- (sj3rpc-kugiri-stdy, sj3rpc-tanbunsetsu-conversion, -- sj3rpc-get-bunsetsu-candidates, sj3rpc-get-bunsetsu-candidates-sub, -- sj3rpc-begin, sj3rpc-unpack-mb-string): Use it. -- -- (sj3-const): Switch on the value of `sj3-server-version'. -- (sj3rpc-kugiri-stdy, sj3rpc-tanbunsetsu-conversion, -- sj3rpc-get-bunsetsu-candidates, sj3rpc-get-bunsetsu-candidates-sub, -- sj3rpc-begin): Modify for it. -- -- * egg/sj3.el (sj3-server-coding-system-list): New user option. -- (sj3-server-version): Ditto. -+2002-09-09 NIIBE Yutaka <gniibe@m17n.org> - --2000-01-13 SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> -+ Check JIS x0213 support at compile time. -+ * check-jisx0213.el: New file. -+ * configure.in: Check if JIS X0213 is supported or not. -+ * Makefile.in (TOPSRCS): Remove egg-x0213.el. -+ (DEPS): Don't load jisx0213.el. -+ (ITSSRCS): Removed its/aynu.el. -+ (AYNU): New variable. - -- * its.el: typo -- * egg.el: typo -+ Bug fix. -+ * its/thai.el (its-thai-add-vowel, its-thai-add-tone): Bug fixes. -+ Just call compose-string. - --2000-01-13 KATAYAMA Yoshio <kate@pfu.co.jp> -+2002-08-26 ISHIKAWA Mutsumi <ishikawa@linux.or.jp>, -+ Takahiro Kambe <taca@sky.yamashina.kyoto.jp>, -+ Katsumi Yamaoka <yamaoka@jpl.org> - -- * its.el(its-hiragana, its-katakana): does not work. so deleted. -- --2000-01-12 NAKAJI Hiroyuki <nakaji@tutrp.tut.ac.jp> -+ * Makefile.in (TOPSRCS): Remove egg-util.el. Added egg-x0213.el. -+ (ITSSRCS): Added its/greek.el -+ its/greek.elc: Depends on its-keydef.elc. - -- * README.ja.txt: typo -- * Makefile.in: (clean, distclean): modified. -+2002-08-23 NIIBE Yutaka <gniibe@m17n.org> - --2000-01-12 TOMURA Satoru <tomura@etl.go.jp> -- -- * Version 4.0.4 released. -- --2000-01-12 TOMURA Satoru <tomura@etl.go.jp> -+ * AUTHORS (NIIBE Yutaka): Updated. -+ * egg-mlh.el: Update e-mail address. - -- * REAMDE: removed. -- -- * README.ja.txt: created. -- --2000-01-12 SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> -+ * leim-list.el: Removed eval-when contstuct. Reoved "loading -+ another" feature. -+ (egg-activate-anthy): Added. - -- * Makefile.in: "clean" removes ${ELCS}. -- -- * Makefile.in: "distclean" created. -- --2000-01-12 Satoru Tomura <tomura@etl.go.jp> -+2002-08-23 Katsumi Yamaoka <yamaoka@jpl.org>, NIIBE Yutaka <gniibe@m17n.org> - -- * Version 4.0.3 released. -- --2000-01-12 Satoru Tomura <tomura@etl.go.jp> -+ * egg-util.el: Removed. - -- * install-sh: copied from automake distribution -+2002-08-08 NIIBE Yutaka <gniibe@m17n.org> - -- * configure.in: created -+ * Makefile.in (EGGSRCS): Added anthy.el and anthyipc.el -+ (srcdir, top_srcdir, VPATH): Added. -+ (DEPS): Use top_srcdir. - -- * Makefile.in: created -+ Added ANTHY support. -+ * egg/anthy.el egg/anthyipc.el: New files. -+ * leim-list.el: Added anthy. - -- * configure: generated by autoconf -- --2000-01-11 Satoru Tomura <tomura@etl.go.jp> -+2002-08-02 SAITO Takuya <reed@lily.freemail.ne.jp> - -- * leim-list.el: (defgroup sj3) added. -+ * its.el (its-previous-line): point-mim -> point-min (typo) - -- * egg/sj3.el (sj3-hosname, sj3-server-port): defcusotm'ed -+2002-07-20 SAITO Takuya <reed@lily.freemail.ne.jp> - --2000-01-11 Katsumi Yamaoka <yamaoka@jpl.org> -+ * egg.el (egg-activate-keymap-after-command): set-buffer to -+ killed buffer. - -- * egg/sj3.el : (require 'egg) added. -+2002-05-08 Katsumi Yamaoka <yamaoka@jpl.org> (cf. [mule-ja:08306]) - --2000-01-11 SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> -- -- * its.el (its-hiragana, its-katakana): New functions -- --2000-01-07 Tomura Satoru <tomura@etl.go.jp> -- -- * COPYING: The file is added. -- -- * ChangeLog.1: The original ChangeLog is renamed as. -- -- * ChangeLog: Created. -- --2000-01-07 Tomura Satoru <tomura@etl.go.jp> -- -- * Version 4.0.2 released. -- --2000-01-06 Tomura Satoru <tomura@etl.go.jp> -- -- * Version 4.0.1 released. -- --2000-01-05 Tomura Satoru <tomura@etl.go.jp> -- -- * Version 4.0.0 released. -- -+ * its.el (its-next-line, its-previous-line): New commands; -+ substitute key definitions for `next-line' and `previous-line' -+ with them in `its-mode-map'. - -Index: ChangeLog.0 -=================================================================== -RCS file: ChangeLog.0 -diff -N ChangeLog.0 ---- ChangeLog.0 27 Jan 2001 18:46:16 -0000 1.1.1.1 -+++ /dev/null 1 Jan 1970 00:00:00 -0000 -@@ -1,2311 +0,0 @@ --1998-07-12 NIIBE Yutaka <gniibe@chroot.org> -- -- * egg-mlh.el (mlh-space-bar-backward-henkan): Don't test against -- egg-conversion-backend-alist. -- -- * egg/wnn.el (wnn-fini-lang): Reneme from wnn-fini. -- (wnn-fini): New implementation calling wnn-fini-lang. -- -- (wnn-close): Call wnn-fini-lang. -- (wnn-dictionary-save): Ditto. -- -- * egg/canna.el (canna-fini): Delete LANG argument. -- * egg/sj3.el (sj3-fini): Ditto. -- -- * egg-cnv.el (egg-set-conversion-backend): Removed. -- -- * egg/sj3.el (sj3-start-conversion): Signal error on non-supported -- language. -- * egg/canna.el (canna-start-conversion): Likewise. -- * egg/wnn.el (wnn-start-conversion): Likewise. -- -- * egg-cnv.el (egg-convert-region): Add handler for -- lang-not-supported. -- -- * egg/wnn.el (egg-activate-wnn): load wnnrpc here conditionally. -- * egg/sj3.el: Likewise. -- * egg/canna.el: Likewise. -- -- * egg.el (egg-support-languages, egg-set-support-languages): Removed. -- (egg-mode): Don't call egg-set-conversion-backend. -- * egg/{canna.el, wnn.el, sj3.el}: Don't call egg-support-languages. -- -- * egg-cnv.el (egg-set-current-backend): Removed. -- (egg-initialize-backend, egg-start-conversion, -- egg-start-reverse-conversion): Don't call egg-set-current-backend. -- (egg-conversion-backend-null): Rename from *-other-languages. -- (egg-conversion-backend-alist): Removed. -- (egg-conversion-backend): Not buffer local. -- (egg-finalize-backend-alist): Removed. -- --1998-07-10 NIIBE Yutaka <gniibe@chroot.org> -- -- * egg-cnv.el (egg-start-conversion-failure-hook): New Variable. -- (egg-start-conversion-failure-fallback): New Function. -- (egg-convert-region): Handle error and hook on failure. -- -- * egg/sj3.el (sj3-open): Remove bogus setq-s of sj3-sys-dict-list, -- sj3-user-dict-list. -- -- * egg-mlh.el (mlh-space-bar-backward-henkan): Don't emit message -- "converting...", as it may flush out error message. -- -- * egg/sj3rpc.el ("egg-com", "egg/sj3"): Require on compilation. -- (sj3rpc-open): Failure when version is different. -- --1998-07-03 KATAYAMA Yoshio <kate@pfu.co.jp> -- -- * its/erpin.el, its/hangul.el, its/hankata.el, its/hira.el, -- its/jeonkak.el, its/kata.el, its/pinyin.el, its/quanjiao.el, -- its/thai.el, its/zenkaku.el: Updated using new its-*. -- -- * its.el (define-its-state-machine): Rewritten. -- (define-its-compiled-map): Deleted. -- (define-its-state-machine-append): Rewritten. -- (its-defrule): Rewritten. -- (its-defrule*): Rewritten. -- (its-parent-states): New Variable. -- (its-goto-state): Remove 2nd optional argument INITIAL-STATE. -- (its-set-interim-terminal-state): New Function. -- (its-make-next-state): Remove 2nd argument KEYSEQ. -- --1998-07-01 NIIBE Yutaka <gniibe@chroot.org> -- -- * egg-mlh.el (mlh-hira-to-kata): Removed. Doesn't work any more. -- (mlh-katakana): Use japanese-katakana-region. -- -- * egg-cnv.el (egg-conversion-map): Add again mapping for "/". -- --1998-06-27 KATAYAMA Yoshio <kate@pfu.co.jp> -- -- * egg-cnv.el (egg-abort-conversion): Bug fix. -- --1998-06-27 NIIBE Yutaka <gniibe@akebono> -- -- * egg/wnn.el (wnn-dictionary-specification-list): Don' specify -- for gerodic/g-jinmei. -- Suggested by SAKAI Kiyotaka <ksakai@netwk.ntt-at.co.jp>. -- --1998-06-26 KATAYAMA Yoshio <kate@pfu.co.jp> -- -- * its.el (its-cancel-input): Bug fix. -- --1998-06-26 SAKAI Kiyotaka <ksakai@netwk.ntt-at.co.jp> -- -- * egg-cnv.el (egg-conversion-mode, egg-help-command): New -- functions for help string. -- * its.el (its-mode, its-mode-help-command): Likewise. -- --1998-06-26 KATAYAMA Yoshio <kate@pfu.co.jp> -- -- * egg-cnv.el (egg-convert-region): Bug fix. -- * egg.el (egg-default-language): Don't use string. -- -- * its/hankata.el (its-han-kata-enable-double-n, and others): -- Variable name change (-han-) to distingush kata.el. -- -- * its/erpin.el (its-erpin-tw-enable-quanjioao-alphabet, -- its-erpin-cn-enable-quanjioao-alphabet): -- See its-enable-fullwidth-alphabet. -- * its/kata.el (its-kata-enable-zenkaku-alphabet): Likewise. -- * its/pinyin.el (its-pinyin-cn-enable-quanjioao-alphabet): Likewise. -- * its/zenkaku.el (its-zenkaku-down-map): Likewise. -- -- * its/erpin.el (its-erpin-tw-map): Bug fix for "\\", "{", "}", and -- "/". -- * its/pinyin.el (its-pinyin-cn-map): Ditto. -- * its/quanjiao.el (its-quanjiao-down-tw-map): Ditto. -- * its/zhuyin.el (its-zhuyin-cn-enable-quanjioao-alphabet): Ditto. -- -- * its/hira.el (its-hira-enable-zenkaku-alphabet): Follow changes -- of its.el. -- * its/ascii.el (its-up-map, its-down-map): Ditto. -- * its/jeonkak.el (its-jeonkak-up-map): Ditto. -- -- * its/hira.el (its-hira-enable-zenkaku-alphabet): -- See its-enable-fullwidth-alphabet. -- -- * egg/wnn.el (wnn-save-dictionaries): Rewritten. -- -- * egg/canna.el (egg-edep): Required. -- (canna-support-languages): Use symbol. -- * egg/sj3.el (egg-edep): Likewise. -- -- * egg/wnn.el (egg-edep): Likewise. -- * egg/wnnrpc.el: Use symbol. -- -- * menudiag.el (menudiag-mode-map): Bug fix for boundary conditions. -- (menudiag-make-selection-list): Bug fix in case of many items. -- -- (menudiag-forward-item, menudiag-backward-item, -- menudiag-goto-line): Change so that it wraps. -- -- * its.el (egg-edep): Required. -- (its-keydef): Require unconditioanlly. -- (its-mode-map): Don't call its-define-select-keys here. -- (its-mode-map): Use of symbol as keymap. -- (its-fence-invisible): New variable. -- (its-put-cursor): Don't call its-define-select-keys. -- (its-setup-fence-mode): invisible handling and its-define-select-keys. -- (its-keyseq-acceptable-p): if (CDR SYL) is number, return NIL. -- (define-its-state-machine): Introduce its-temporaly-map. -- (define-its-state-machine-append): Likewise. -- -- (its-goto-state): Use symbol as keymap, not directly. -- -- (its-set-part-1,its-set-part-2): New function. -- (its-delete-backward-within-SYL): Conditionalize. -- -- * egg.el (egg-edep): Required. -- (egg-mode): Add remove-hook call. -- Supply NIL as first argument to egg-set-conversion-backend. -- make-local-hook for input-method-activate-hook. -- (egg-set-face): Add optional argument OBJECT. -- (egg-redraw-face): Bind inhibit-point-motion-hooks. -- -- * egg.el (set-buffer-multibyte): Move to egg-edep.el. -- -- * egg-mlh.el (mlh-space-bar-backward-henkan): Use assq. -- -- * egg-com.el (egg-zhuyin-syllable): compatibility change. -- (encode-fixed-euc-china-region): Removed maxlen. -- -- Really Needed? -- gN. -- * egg-com.el (egg-pinyin-syllable): Check exact match. -- (egg-zhuyin-syllable): Likewise. -- -- * egg-cnv.el (egg-edep): Required. -- (its-keydef): Not required. -- (egg-conversion-map): Don't call its-define-select-keys here. -- Fset it to use symbol instead of the map directly. -- -- (egg-get-bunsetsu-info): Add new optional argument for getting -- property. -- (egg-start-conversion-other-languages): set egg-conversion-backend. -- (egg-set-current-backend): Use assq instead of assoc. -- (egg-get-conversion-face): Likewise. -- (egg-conversion-invisible): New variable. -- (egg-convert-region): Change for open/close delimiter. -- (egg-chinese-sisheng-regexp): New function. -- (egg-separate-languages): Use egg-chinese-sisheng-regexp, -- use symbol for language specifier (instead of string). -- -- (egg-charset-to-language): Use symbol for language specifier -- (instead of string). -- (egg-next-chinese-lang): Likewise. -- -- (egg-next-part-lang): Change the arguments. -- -- (egg-make-bunsetsu): New function changing egg-insert-bunsetsu. -- -- (egg-separate-characters): compatibility changes. -- -- (egg-conversion-wrap-select): New Variable. -- -- (egg-next-candidate): Can wrap around. -- -- (egg-decide-before-point): Rewritten. -- (egg-abort-conversion): Back to previous one. -- (egg-select-candidate): Use egg-make-bunsetsu. -- -- * egg-edep.el: New File for handling differences between Emacs version. -- * its/thai.el: New File. -- * its/hangul.el: Updated. -- --1998-06-26 NIIBE Yutaka <gniibe@chroot.org> -- -- * Makefile (install): Don't touch .emacs and leim-list.el -- directly. User should do it by her hand. -- Reported by SAKAI Kiyotaka <ksakai@netwk.ntt-at.co.jp> -- --1998-06-25 NIIBE Yutaka <gniibe@chroot.org> -- -- * egg/canna.el (canna-dictionary-specification): "user" instead of -- ("user"). Should chnage canna-filename later. -- Reported by Akio Morita <amorita@bird.scphys.kyoto-u.ac.jp>. -- --1998-04-02 NIIBE Yutaka <gniibe@chroot.org> -- -- * egg-com.el (comm-unpack-u16-string): Call string-as-multibyte. -- (comm-unpack-mb-string): Likewise. -- -- * egg.el (set-buffer-multibyte): Function for Emacs 20.2. -- -- * egg/wnn.el (wnn-open): Call set-buffer-multibyte. -- * egg/sj3.el (sj3-open): Ditto. -- * egg/canna.el (canna-open): Ditto. -- --1998-04-02 KATAYAMA Yoshio <kate@pfu.co.jp> -- -- Implement hilight. -- * egg.el (egg-mark-list, egg-suppress-marking): New Variables. -- (egg-set-face, egg-mark-modification, egg-redraw-face): New -- Functions. -- * its.el (its-buffer-ins/del-SYL): Call egg-set-face. -- (its-setup-yanked-portion): Likewise. -- * egg-cnv.el (egg-insert-bunsetsu): Call egg-set-face. -- -- * egg.el (egg-mode): set default backend. -- * egg-mlh.el (mlh-space-bar-backward-henkan): activate input -- method. -- --1998-04-02 NIIBE Yutaka <gniibe@chroot.org> -- -- * egg-cnv.el (egg-decide-bunsetsu): Undo changes of 03-16. -- (egg-abort-conversion): Call egg-end-conversion. -- (egg-decide-before-point): Call egg-end-conversion widh ABORT=NIL. -- --1998-03-16 NIIBE Yutaka <gniibe@chroot.org> -- -- CANNA Support. -- * egg/canna.el, egg/cannarpc.el: New file. -- * Makefile (SRCS): Added. -- -- * egg-cnv.el (egg-end-conversion): Add argument ABORT. -- -- * egg/wnn.el (wnn-end-conversion): Follow the change of -- EGG-END-CONVERSION. -- * egg/sj3.el (sj3-end-conversion): Likewise. -- --1998-03-15 NIIBE Yutaka <gniibe@chroot.org> -- -- * Makefile: Add dependencies for its-keydef.elc. -- * egg/sj3rpc.el (sj3-open): Don't support list of hosts. -- * its.el (its-exit-mode, its-kick-convert-region): Bug fix. Call -- its-input-end and its-put-cursor. -- (its-exit-mode-off-input-method): Removed. -- --1998-03-14 KATAYAMA Yoshio <kate@pfu.co.jp> -- -- * docomp.el (its-keydef): Undo the changes of 03-09. its.el -- is fixed. -- -- * egg-cnv.el (egg-current-language): New valiable. -- (egg-bunsetsu-info): Separate bunsetsu-info and lunguage. -- (egg-conversion-backend-other-languages -- egg-init-other-languages -- egg-start-conversion-other-languages -- egg-get-bunsetsu-converted-other-languages -- egg-get-bunsetsu-source-other-languages -- egg-list-candidates-other-languages -- egg-get-number-of-candidates-other-languages -- egg-get-current-candidate-number-other-languages -- egg-get-all-candidates-other-languages -- egg-decide-candidate-other-languages -- egg-change-bunsetsu-length-other-languages -- egg-end-conversion-other-languages -- egg-fini-other-languages): New valiable and functions for -- handling unknown language. -- (egg-set-current-backend): Set egg-conversion-backend-other-languages -- when backend for specified language isn't found. -- (egg-start-reverse-conversion): New function for reverse conversion. -- (egg-set-conversion-backend-internal): Removed. -- (egg-set-conversion-backend): Args are changed. -- (egg-get-conversion-face): New function for different face for -- every language. -- (egg-convert-region): Make converting text read-only. Handle -- unknown laguages and backend opening error. Rename its-lang to -- egg-lang. -- (egg-separate-languages): Argument use-context is added to -- utilize context when called by its-yank. Rename its-lang to -- egg-lang Improve speed. -- (egg-charset-to-language): Renamed from egg-char-to-language. -- (egg-next-part-lang egg-next-chinese-lang): Rename its-lang to -- egg-lang. -- (egg-conversion-map): Unbind C-\ and /. Bind C-X RET XXX to -- its-select-XXX. -- (egg-insert-bunsetsu): Make conversion text read-only. Separate -- bunsetsu-info and conversion-backend. -- (egg-insert-bunsetsu-list): Remove redundant variables. -- (egg-beginning-of-conversion-buffer): New function. -- (egg-end-of-conversion-buffer): New function. -- (egg-enlarge-bunsetsu): Handle read-only text. -- (egg-next-candidate): Handle read-only text. Bug on no candidate -- bunsetsu is fiexed. -- (egg-reconvert-bunsetsu-internal egg-reverse-convert-bunsetu -- egg-reconvert-bunsetsu): New functions for reverse conversion and -- re-conversion. -- (egg-decide-before-point egg-abort-conversion): Handle read-only -- text. Bug on pinyin and zhuyin mixed conversion is fixed. Allow -- long fence. -- (egg-select-candidate): Handle read-only text. Bug on no candidate -- bunsetsu is fiexed. -- -- * egg-com.el: Change coding-system from internal to iso-2022-7bit. -- -- * egg-mlh.el (mlh-space-bar-backward-henkan): Disable temporally -- mode selection. -- -- * egg.el (egg-mode): Set cureent lang to conversion backend. -- (egg-set-mode-line-title): Renamed to its-set-mode-line-title -- and moved to its.el. -- (egg-check-language): Removed. -- -- * egg/sj3.el (sj3-server-port): Change from defconst to defver for -- user customization. -- (sj3-open sj3-get-environment): Try opening alternate servers. -- (sj3-start-conversion): Make second argument LANGUAGE optional. -- (egg-activate-sj3): Parameters of egg-set-conversion-backend is -- changed. -- -- * egg/sj3rpc.el (sj3rpc-error-message): New constant (Not yet -- completed). -- (sj3rpc-get-error-message): Check range of errno to avoid -- args-out-ou-range error. -- -- * egg/wnn.el (wnn-jport wnn-cport wnn-tport wnn-kport): New -- variables for user customization. -- (wnn-server-info-list wnn-server-port): Type of fourth element -- is changed from integer to symbol. -- (wnn-start-reverse-conversion): New function. -- (wnn-open wnn-get-environment): Try opening alternate servers. -- (egg-activate-wnn): Parameters of egg-set-conversion-backend is -- changed. -- -- * its-keydef.el (its-current-language): Moved to its.el. -- (its-make-select-func): Remove language check (egg-check-language). -- Add temporally mode selection. -- (its-do-list-make-select-func): Binding of zhuyin-tw is changed to -- `C' because conflicting zenkaku-upcase. -- -- * its.el (its-current-select-func its-previous-select-func): New -- variables for temporally mode selection. -- (its-keydef requiring): Use eval-when to avoid error on using -- compiled file. -- (its-get-fence-face): New function for different face for -- every language. -- (its-put-cursor its-setup-fence-mode): Make fence read-only. -- (its-start): Remove force-mode-line-update calling. -- (its-restart): Add optional argument set-prop. -- (its-self-insert-char its-backward-SYL its-forward-SYL -- its-delete-SYL its-delete-backward-SYL its-exit-mode -- its-delete-backward-SYL-by-keystroke its-transpose-chars -- its-kick-convert-region its-end-of-input-buffer): Handle read-only -- fence. -- (its-state-machine): Accept special actions to handle temporally -- mode selection. -- (its-buffer-ins/del-SYL its-ins/del-SYL-batch): Handle read-only -- fence. Property its-lang is renamed to egg-lang. -- (its-get-next-state its-make-next-state): Add type check to avoid -- wrong-type-argument error. -- (its-keyseq-acceptable-p): Save informations of its-map to avoid -- confusing on temporally mode selection. -- (its-defrule-select-mode-temporally): New macro. -- (its-kill-line its-cancel-input): New function. -- (its-delete-backward-within-SYL): Bind its-current-language to -- avoid confusing when undo is done beyond language change. -- (its-yank its-yank-pop its-setup-yanked-portion): New functions. -- (its-exit-mode-internal): Reset temporally selected mode. Allow -- long fence. -- (its-kick-convert-region-or-self-insert): New function. -- (its-translate-region): Remove text properties completly. -- (its-set-mode-line-title): Moved from egg.el and renamed. -- (its-select-mode-temporally its-select-previous-mode): New functions -- for temporally mode selection. -- -- * leim-list-egg.el: Secondary argument for egg-activate-sj3/wnn -- is no longer needed. -- -- * its/hira.el: Remove the rule for "~" which destroies the rules -- with its-hankaku-escape. -- -- * its/pinyin.el: Implement its-pinyin-cn-enable-quanjioao-alphabet -- and its-pinyin-tw-enable-quanjioao-alphabet. -- -- * its/hangul.el: Implement its-hangul-enable-quanjioao-alphabet. -- -- * its/ascii.el: New file. -- * its/erpin.el: New file. -- * its/hankata.el: New file. -- * its/jeonkak.el: New file. -- * its/kata.el: New file. -- * its/quanjiao.el: New file. -- * its/zenkaku.el: New file. -- * its/zhuyin.el: New file. -- --1998-03-14 NIIBE Yutaka <gniibe@chroot.org> -- -- * egg/sj3rpc.el (sj3rpc-close): New function. -- -- * egg/sj3.el (sj3bunsetsu-[sg]et-kugiri-changed): Rename from -- sj3bunsetsu-get-stdy-down. -- (sj3-end-conversion): Implement CLSTDY. -- (sj3-fini): Implemented. -- --1998-03-10 NIIBE Yutaka <gniibe@chroot.org> -- -- * egg/sj3.el (sj3-end-conversion): Implement bunsetsu study. -- CLSTDY not yet. -- -- * egg/sj3rpc.el (sj3rpc-get-bunsetsu-candidates-sub): Bug fix. -- Always add hiragana and katakana candidates. -- (sj3-const: CLSTDY, CLSTDY_EUC): Renamed from END and END_EUC -- according to "sj3cmd.h" of SJ3 distribution. -- (sj3rpc-bunsetsu-stdy, sj3rpc-kugiri-stdy): New functions. -- -- * egg-com.el (comm-format-u8-vector): New substitution. -- (comm-format): New format 'v'. -- --1998-03-09 NIIBE Yutaka <gniibe@chroot.org> -- -- * docomp.el (its-keydef): Require its-keydef when compile. -- Not so good. Just a work around. -- (its-mode-map): Undo the changes of 03-04. -- --1998-03-09 KATAYAMA Yoshio <kate@pfu.co.jp> -- -- * its.el (its-translate-region): Make it command. -- (its-translate-region-internal): Make it function. -- --1998-03-04 NIIBE Yutaka <gniibe@chroot.org> -- -- * its.el (its-define-select-keys of its-mode-map): Comment it out. -- * its-keydef.el (its-make-select-func): Add eval-when to compile this. -- -- * egg-cnv.el (egg-decide-bunsetsu): Deleted. -- * its.el (its-restart): Call its-setup-fence-mode with no argument. -- -- * its.el (its-keyseq-acceptable-p): Bug fix. -- --1998-03-03 KATAYAMA Yoshio <kate@pfu.co.jp> -- -- *its.el (its-get-keyseq-syl): Compensate when DSYL has back. -- (its-DSYL-with-back-p): New function. Return t when DSYL has back. -- (its-concrete-DSYL-p): New function. Return t when DSYL is cons -- form which means input is not continued after DSYL was created. -- (its-make-concrete-DSYL): New function. -- (its-self-insert-char): Make DSYL to ``concrete-DSYL'' if cursor -- is t which means input is not continued. -- (its-input): Test input key is whether acceptable or not when -- its-barf-on-invalid-keyseq is non-nil. -- (its-input-to-vsyl): Set cursor status, not just returning it. -- (its-state-machine its-state-machine-keyseq): Make sure to issue -- ``DSYL-with-back'' when syllable is decided by the rule with back. -- ``test mode'' is added. -- (its-keyseq-acceptable-p): New function. -- (its-forward-SYL): The args order of put-text-property was wrong. -- (its-delete-backward-SYL-by-keystroke): New function. -- (its-delete-backward-within-SYL): ``delete-by-keystroke'' mode -- did not work when syllable is decided by the rule with back. -- Deletion limit is extended to outside of SYL (meaning of -- ``within-SYL'' is changed to ``deletion starts within SYL). -- (its-transpose-chars): Fixed up. -- (its-in-fence-p): Confuse at openning fence. -- --1998-02-25 KATAYAMA Yoshio <kate@pfu.co.jp> -- -- * its.el (its-put-cursor): Enable its-map change in fence mode. -- -- * its-keydef.el (its-make-select-func): Same as above. -- --1998-02-25 KATAYAMA Yoshio <kate@pfu.co.jp> -- -- * its.el (its-set-cursor-status): New function. -- (its-setup-fence-mode): New function. -- (its-insert-fence-open its-insert-fence-close): Deleted. -- (its-start, its-restart, its-self-insert-char): Avoid fence -- destruction on its-barf. -- (its-input-to-vsyl, its-state-machine, its-state-machine-keyseq, -- its-buffer-ins/del-SYL, its-ins/del-SYL-batch): Update cursor -- status on updating syllables. -- (its-input-error): New function to realize doc-string of -- its-barf-on-invalid-keyseq. -- -- * egg.el (egg-mode): Don't use egg-mode-line-title which cause -- wrong-type-argument at isearch. Bind its-select-XXX to key only -- when modefull is select. -- -- * egg-mlh.el (mlh-hangul, mlh-zhongwen, mlh-zhongwen-tw): Same -- as above. -- -- * its-keydef.el (its-make-select-func): Same as above. -- -- * leim-list-egg.el: Same as above. -- --1998-02-24 KATAYAMA Yoshio <kate@pfu.co.jp> -- -- * its.el (its-state-machine-keyseq): Remove binding -- its-barf-on-invalid-keyseq to nil. -- (its-ins/del-SYL-batch): Avoide altering its-XXX-map. -- (its-translate-region-internal): its-translation-result's data -- type is changed to string. -- -- * egg-cnv.el (egg-convert-region): Gather contiguous same -- language part. -- --1998-02-21 KATAYAMA Yoshio <kate@pfu.co.jp> -- -- * its.el (its-ins/del-SYL-batch): Set its-lang property. -- (its-translate-region): Remove its-lang property from translated -- text. -- (its-translate-region-internal): New function. Retain its-lang -- property on translated text. -- -- * egg-mlh.el (mlh-space-bar-backward-henkan): Force base language -- to Japanese. -- -- (mlh-hangul mlh-zhongwen-tw mlh-zhongwen): New functions for -- conversion functions. -- --1998-02-20 KATAYAMA Yoshio <kate@pfu.co.jp> -- -- * its.el (its-restart): New function. -- (its-insert-fence-open, its-insert-fence-close): New function. -- (its-start): Rewritten. Use its-insert-fence-open and -- its-insert-fence-close. -- (its-exit-mode-internal): Leave its-syl property. -- (its-exit-mode-internal): Delete the property in this case. -- (its-keydef): Require it. -- -- * its-keydef.el: Provide the feature. -- -- * egg-cnv.el (egg-convert-region): Add egg-source property to save -- the source string. -- (egg-conversion-map, \C-c): New keybind. -- (egg-get-previous-bunsetsu): Bug fix. -- (egg-decide-before-point): New implementation. -- (egg-exit-conversion): Use gg-decide-before-point. -- (egg-abort-conversion): New command. -- --1998-02-20 NIIBE Yutaka <gniibe@akebono> -- -- * Makefile (SRCS), Egg.prj: Remove euc-china.el. -- * egg-com.el: Include egg-china.el. -- * egg-china.el: Removed. -- --1998-02-18 NIIBE Yutaka <gniibe@chroot.org> -- -- * Egg.prj: Use PRCS. -- -- * Makefile (SRCS): Rename euc-cn.el to euc-china.el -- * egg-mlh.el (mlh-space-bar-backward-henkan): Put "Japanese" -- language property for text. -- --1998-02-18 KATAYAMA Yoshio <kate@pfu.co.jp> -- -- * euc-china.el: Rename from euc-cn.el. Update. -- -- * egg.el (egg-mode): Bug fix. Call get-exit-conversion. -- * leim-list-egg.el ("japanese-egg-wnn", "japanese-egg-sj3"): -- Use new definition (with language argument). -- * egg/wnn.el (egg-activate-wnn): -- * egg/sj3.el (egg-activate-sj3): -- --1998-02-17 NIIBE Yutaka <gniibe@chroot.org> -- -- * Makefile (SRCS): Add its/pinyin.el, its/hangul.el and -- its-keydef.el. -- -- * egg-com.el (ccl-encode-fixed-euc-kr): Fixed the name. -- --1998-02-17 KATAYAMA Yoshio <kate@pfu.co.jp> -- -- * its-keydef.el: New file. -- * its/hangul.el, its/pinyin.el: New version. -- -- * egg/wnnrpc.el (load-library "egg/wnn"): Comment it out. -- (wnnrpc-get-error-message): Support multiple languages. -- (wnnrpc-call-with-environment): Chinese support. -- -- * egg/wnn.el (wnn-support-languages): New const. -- (<env>): Add <server-type>, <dic-set>, and <rev-flag>. -- (wnnenv-get-server-type, wnnenv-get-dictionary-set, -- wnnenv-get-reverse-flag): New substs. -- (wnnenv-get-daibunsetsu-info, wnnenv-set-daibunsetsu-info): Changed. -- (wnn-server): Removed. -- (wnn-jserver, wnn-cserver, wnn-tserver, wnn-kserver): New custom. -- (wnn-server-info-list): New const. -- (wnn-get-server-info): New function. -- (wnn-server-locale, wnn-server-type, wnn-server-port, -- wnn-server-stream-name, wnn-server-buffer-name, -- wnn-server-coding-system, wnn-server-hostname): New substs. -- (wnn-start-conversion): Add new arguments. -- (wnn-uniq-candidates): Initialize 'n'. -- (wnn-change-bunsetsu-length): Simplefied. -- (wnn-change-bunsetsu-length): Call renbunsetsu-conversion, -- instead. -- (wnn-fini, wnn-comm-sentinel): back to 971009 version. -- (wnn-jserver-port): Removed. -- (wnn-open): Argument change. Support languages. -- -- (wnn-dictionary-specification): Removed. -- (wnn-dictionary-specification-list): New variable. -- (wnn-get-dic-spec, wnn-dic-spec-dic-set, wnn-dic-spec-reverse, -- wnn-dic-spec-name, wnn-dic-spec-param, wnn-dic-spec-fuzokugo, -- wnn-dic-spec-dic-list): New substs. -- (wnn-get-environment): Rewrite. -- (wnn-create-environment): Rewrite. -- -- (egg-activate-wnn): Support languages. -- -- * egg/sj3rpc.el (load-library "egg/sj3"): Don't load it. -- -- * egg/sj3.el (sj3-support-languages): New const. -- (sj3-start-conversion, sj3-fini): Add lang. -- (sj3-change-bunsetsu-length): Simplified. -- (egg-activate-sj3): Support language. -- -- * its/hira.el (its/hira): Packagefy. (?) -- (its-hira-map): Add language spec. Move here the escape keys -- ("Z", "~"). -- -- * leim-list-egg.el ("chinese-gb-egg-wnn-py", "chinese-gb-egg-wnn-zy", -- "chinese-cns-egg-wnn-py", "chinese-cns-egg-wnn-zy", -- "korean-egg-wnn"): New input methods. -- -- * its.el (its-current-language): New Local Variables. -- <map>: Change the structure. Add <language>. -- (its-get-language): New substitution. -- (its-set-indicator): Removed. -- (its-get-indicator, its-get-start-state): New implementation. -- (its-reset-start-state): Removed. -- (its-buffer-ins/del-SYL): Add new properties, its-map and its-lang. -- (its-exit-mode-internal): Change for its-map and its-lang. -- (its-in-fence-p): New function. -- -- ("its-keydef.el"): Load it. -- -- (its-select-map-menu): Removed. -- (its-select-map-from-menu): Removed. -- (its-select-hiragana, its-select-katakana, its-select-downcase, -- its-select-upcase, its-select-zenkaku-downcase, -- its-select-zenkaku-upcase, its-select-map, its-zenkaku-escape, -- its-hankaku-escape): Removed. -- -- (define-its-state-machine): Rewrite. -- (define-its-compiled-map): New macro. -- (its-define-state-machine): Removed. -- -- (its-forward-SYL): Cleanup. -- -- (its-beginning-of-input-buffer): Fix. -- (its-end-of-input-buffer): Likewise. -- -- * egg-com.el (egg-fixed-euc, egg-mb-euc): New Local Variables. -- (ccl-decode-fixed-euc-kr, ccl-encode-fixed-euc-kr): New CCLs. -- (fixed-euc-kr): New coding system. -- (comm-format-mb-string, comm-format-u16-string): Support EUC-KR. -- (comm-unpack-u16-string, comm-unpack-mb-string): Likewise. -- -- * egg-cnv.el (egg-get-bunsetsu-info): New function. -- (egg-conversion-backend-alist, egg-finalize-backend-alist): -- New Variables. -- Make egg-conversion-backend buffer local. -- (egg-set-current-backend): New function. -- (egg-initialize-backend): Call egg-set-current-backend. -- (egg-start-conversion): Add new argument LANGUAGE. -- (egg-finalize-backend): Finalize for all backend(s). -- (egg-set-conversion-backend-internal): New Macro. -- (egg-convert-region): Support multiple languages in the region. -- (egg-separate-languages, egg-char-to-language, egg-next-part-lang, -- egg-next-chinese-lang): New functions. -- (egg-insert-bunsetsu-list): Change the meaning of last argument. -- (egg-shrink-bunsetsu): Simplified. Just call egg-enlarge-bunsetsu. -- (egg-enlarge-bunsetsu): Support shrink. -- -- (egg-decide-bunsetsu, egg-next-candidate, egg-select-candidate): -- Use egg-get-bunsetsu-info. -- -- (egg-insert-bunsetsu): The property now includes -- egg-conversion-backend. -- -- * egg.el: Don't load its/hira and don't set its-current-map. -- -- * egg.el (egg-default-language, egg-support-languages): New Variables. -- (egg-last-method-name, egg-mode-line-title): New Local Variables. -- (egg-set-mode-line-title, egg-check-language): New functions. -- (egg-set-support-languages): New function. -- (egg-mode): Final processing: call its-exit-mode, call -- egg-exit-conversion. -- Changing the arguments, remember last input method. -- -- Bug fix. Don't set its-hira-period and its-hira-comma. -- --1998-02-17 KAWABATA, Taichi -- -- * menudiag.el (menudiag-mode-map): New binds for new commands. -- (menudiag-beginning-of-items, menudiag-end-of-items): New commands. -- (menudiag-make-menu-formatted-string): Bug fix. Use -- menudiag-item-num-to-char. -- (menudiag-goto-item): Rewrite. Better user interface. -- (menudiag-char-to-item-num, menudiag-item-num-to-char): New -- functions. -- --1998-02-07 MORIOKA Tomohiko <morioka@jaist.ac.jp> -- -- * leim-list-egg.el: Delete autoload setting for `egg-mode'. -- Delete input method registration for "japanese-egg". -- -- * egg.el: Comment out setting for Wnn. -- -- * leim-list-egg.el: Add autoload setting for -- `egg-activate-{wnn|sj3}'. -- -- * egg/sj3.el (egg-activate-sj3): Add DOC-string. -- -- * egg/sj3.el (egg-activate-sj3): New function. -- Require egg. -- Load egg/sj3rpc.el. -- -- * egg/wnn.el (egg-activate-wnn): New function. -- Require egg. -- Load egg/wnnrpc.el. -- --1998-02-07 MORIOKA Tomohiko <morioka@jaist.ac.jp> -- -- * leim-list-egg.el (japanese-egg-wnn): New input method. -- (japanese-egg-sj3): New input method. -- --1997-11-20 MORIOKA Tomohiko <morioka@jaist.ac.jp> -- -- * leim-list-egg.el: Rename `egg-ja' -> `japanese-egg'. -- --1997-11-20 MORIOKA Tomohiko <morioka@jaist.ac.jp> -- -- * egg/wnn.el (wnn): New group. -- (wnn-server): Use `defcustom'. -- (wnn-usr-dic-dir): Use `defcustom'. -- -- * egg.el (egg): New group. -- --1997-11-20 MORIOKA Tomohiko <morioka@jaist.ac.jp> -- -- * menudiag.el (menudiag-mode-map): Swap binding for left and -- right. -- -- * egg.el (egg-toroku-region): `wnn-get-environment' requires -- dictionary-specification. -- -- * leim-list-egg.el: add autoload setting for egg-mode. -- --1997-11-03 KATAYAMA Yoshio <kate@pfu.co.jp> -- -- * euc-cn.el: New file. Original name was yincoding.el. -- Adopted by NIIBE Yutaka <gniibe@chroot.org>. -- --1997-11-03 NIIBE Yutaka <gniibe@chroot.org> -- -- * its.el (its-start): Add INVISIBLE property if ITS-FENCE-FACE. -- * egg-cnv.el (egg-decide-before-point): Ditto. -- Based on patch by Kenichi HANDA <handa@etl.go.jp>. -- -- Once, I thought that we need many environments which correspond to -- outstanding CONVERSION buffre. However, I've learned that WNN4 -- protocol is completely independent. It's no use to maintain each -- environment. Share the one environment. -- * egg/wnn.el (wnn-environments): Removed. -- (wnn-environment): New variable. -- (wnn-comm-sentinel): Follow the change. Let users know the close. -- (wnn-fini): Likewise. -- -- <env>: Remove the member <in-use>. -- (wnnenv-create): Follow the structure change. -- (wnn-end-conversion): Likewise. -- (wnnenv-get-in-use-flag, wnnenv-set-in-use-flag): Removed. -- (wnn-find-env-not-in-use): Removed. -- (wnn-get-environment): Use wnn-environment instead of wnn-environments. -- Take one argument. -- -- * egg-cnv.el (egg-decide-before-point): Signal error on first SYL. -- Reported by KATAYAMA Yoshio <kate@pfu.co.jp>. Changes of 1997-09-07 -- was not enough. -- Set-marker M to NIL after PUT-TEXT-PROPERTY. -- -- Because the name of identifier begins egg-*, change the file names. -- * tamago: Rename from tamago. -- * egg.el, egg-mlh.el, egg-com.el, egg-cnv.el: Rename from tamago-*.el -- * Makefile: Follow the changes. -- --1997-10-05 NIIBE Yutaka <gniibe@chroot.org> -- -- * tamago/wnn.el (wnn-uniq-candidates): Add new argument BUNSETSU. -- Call WNN-BUNSETSU-SET-ZENKOUHO-POS, WNN-BUNSETSU-SET-ZENKOUHO in -- this function. Handle the case where BUNSETSU is not the first -- element of BUNSETSU-LIST. -- (wnn-list-candidates): Use new API of WNN-UNIQ-CANDIDATES. -- -- * tamago-cnv.el (egg-next-candidate): Handle the case where -- EGG-LIST-CANDIDATES returns non zero value. -- --1997-10-04 NIIBE Yutaka <gniibe@chroot.org> -- -- * Makefile (install): Install to SITEDIR. -- --1997-09-26 NIIBE Yutaka <gniibe@chroot.org> -- -- * its/hira.el (its-hira-enable-zenkaku-alphabet): New variable. -- (its-hira-map): Use it. -- --1997-09-19 NIIBE Yutaka <gniibe@chroot.org> -- -- Arrange for LEIM. Use tamago/ subdirectory. -- * tamago/: Rename from tamago-lib. -- --1997-09-18 NIIBE Yutaka <gniibe@chroot.org> -- -- * tamago-cnv.el (egg-select-candidate): menu-select --> -- menudiag-select. -- * tamago.el (egg-toroku-region, egg-hinshi-select): Likewise. -- -- * tamago-cnv.el (egg-exit-conversion): Run hook of -- input-method-after-insert-chunk-hook. -- * its.el (its-exit-mode-internal): Ditto. -- -- * tamago-mlh.el (mlh-comma-period-style): Deleted. -- -- * its/, tamago-lib/: New directory. -- * its/: Move its-*.el files here. -- * tamago-lib/: Move sj3.el, sj3rpc.el, wnn.el and wnnrpc.el here. -- -- * tamago-com.el: Rename from comm.el. -- * tamago-mlh.el: Rename from mlh.el. -- * tamago-cnv.el: Rename from convert.el. -- -- * menudiag.el: Rename from menu.el. -- (Throughout): Rename menu-* to menudiag-*. -- --1997-09-07 NIIBE Yutaka <gniibe@chroot.org> -- -- * egg.el (egg-insert-after-hook, egg-exit-hook): Removed. -- (egg-sai-henkan-start, egg-sai-henkan-end, egg-old-bunsetu-suu): -- Removed. -- -- * wnn.el (WNN-const): New macro. -- (wnn-start-conversion, wnn-open-dictionary, wnn-open-frequency, -- wnn-set-dictionary-sub, wnn-update-frequency): Use it. -- -- * wnnrpc.el (wnn-const): New macro. -- Throughout: Use wnn-const. -- -- * convert.el (egg-decide-before-point): Bug fix. Handle the case -- where all bunsetsu are decided. -- Reported by KATAYAMA Yoshio <kate@pfu.co.jp>. -- -- * convert.el (egg-exit-conversion): Call egg-end-conversion at end. -- (egg-decide-before-point): Ditto. -- -- * wnn.el (wnn-environments): Change the structure of enviromnents. -- (wnn-fini): Handle errors. -- (wnn-open): Set sentinel. Delete buffer on failure. -- (wnn-comm-sentinel): New function. -- (wnn-find-env-not-in-use): Return nil when not found. -- -- (wnn-create-environment): Take username as argument. -- (wnn-get-environment): Follow the change. -- -- (wnnenv-create): Remove useless serial no. -- (wnnenv-get-in-use-flag, wnnenv-set-in-use-flag): Follow the change. -- (wnnenv-get-daibunsetsu-info, wnnenv-set-daibunsetsu-info): Likewise. -- (wnn-create-environment, wnn-get-environment): Likewise. -- --1997-09-04 NIIBE Yutaka <gniibe@chroot.org> -- -- * its.el (its-state-machine-keyseq): Bug fix. Handle VSYL. -- -- * sj3.el, sj3rpc.el: New files. -- -- * comm.el (comm-call-with-proc, comm-call-with-proc-1): New macros. -- * wnnrpc.el (wnnrpc-call-with-proc, wnnrpc-call-with-proc-1): Deleted. -- Throughout: Use comm-call-with-proc and comm-call-with-proc-1. -- --1997-09-03 NIIBE Yutaka <gniibe@chroot.org> -- -- * wnnrpc.el (wnnrpc-call-with-proc-1): Bug fix. let --> progn. -- -- * convert.el (egg-conversion-backend): Initail value is NIL. -- -- * wnn.el (wnn-conversion-backend): New constant. -- -- * comm.el (comm-format,comm-unpack): Support multibyte string. -- (comm-format-mb-string): New substitution. -- (comm-unpack-mb-string): New substitution. -- -- * wnn.el (wnn-fini): Handle the case where wnn-environments is nil. -- Reported by Hisashi Miyashita <himi@bird.scphys.kyoto-u.ac.jp>. -- --1997-09-03 Hiroshi Ogata <hiroshi@nereid.rim.or.jp> -- -- * mlh.el (mlh-zenkaku): Use new API of Emacs-20, -- japanese-zenkaku-region. -- --1997-09-02 NIIBE Yutaka <gniibe@chroot.org> -- -- * egg.el (egg-toroku-region): New function. -- -- * wnn.el (wnn-list-dictionaries): New function. -- (wnnenv-get-proc): New function. -- -- * wnnrpc.el (wnndic-get-id, wnndic-get-comment, wnndic-get-dictname): -- New substitution. -- (wnnrpc-get-writable-dictionary-id-list): Rename from -- wnnrpc-get-writable-dictionary-list. -- --1997-09-01 NIIBE Yutaka <gniibe@chroot.org> -- -- * convert.el (egg-decide-bunsetsu): New function. -- (egg-decide-before-point): New command. -- (egg-exit-conversion): Use egg-decide-bunsetsu. -- -- * its.el (its-start): Divide the fence buffer into two parts and -- make them intangible, so that point goes appropriate position. -- (its-put-cursor): The cursor belongs to part-2. -- (its-buffer-ins/del-SYL): The new SYL belongs to part-1. -- (its-exit-mode-internal): Remove the property on exit. -- (its-beginning-of-input-buffer): Make SYLs have property of "part 2". -- (its-backward-SYL): Likewise. -- (its-forward-SYL): Make SYLs have property of "part 1". -- (its-end-of-input-buffer): Likewise. -- -- (its-input-end): Delete useless argument. -- (its-beginning-of-input-buffer, its-exit-mode, -- its-exit-mode-off-input-method, its-kick-convert-region, -- its-end-of-input-buffer, its-backward-SYL, its-forward-SYL, -- its-delete-SYL): Follow the change. -- --1997-08-31 NIIBE Yutaka <gniibe@chroot.org> -- -- For egg-mode, don't use minor mode, override local map instead. -- For its-mode and egg-conversion-mode, don't use minor mode, -- instead use local-map of text property. -- -- Although overriding local map is not good, using local-map of -- property is natural thing. Besides, point-left/point-entered -- don't work as I expected (yet). -- -- * egg.el (egg-mode: variable): Removed. -- * egg.el (egg-modefull-map, egg-modeless-map): Make them functions. -- Generate overriding local map. -- * egg.el (egg-mode): use overriding local map. -- -- * its.el, convert.el: Undo changes of 1997-08-28 for minor mode -- and local map of text properties. -- -- * its.el (its-exit-mode-off-input-method): New function. -- --1997-08-29 NIIBE Yutaka <gniibe@chroot.org> -- -- Let Undo work correctly. -- * its.el (its-self-insert-char): Delete/Insert cursor. -- -- * its.el (its-put-cursor): Remove useless first argument. -- (its-start, its-beginning-of-input-buffer, its-end-of-input-buffer, -- its-backward-SYL, its-forward-SYL, its-delete-SYL, its-delete-SYL, -- its-delete-backward-SYL-internal, its-delete-backward-within-SYL): -- Follow the change. -- --1997-08-28 KATAYAMA Yoshio <kate@pfu.co.jp> -- -- * its-erpin.el: New file. -- * its-pinyin.el: New file. -- * its-zhuyin.el: New file. -- --1997-08-28 NIIBE Yutaka <gniibe@chroot.org> -- -- * its.el (its-exit-mode-no-egg): Removed. -- (its-exit-mode-internal): Remove first argument. -- (its-kick-convert-region, its-delete-SYL, -- its-delete-backward-SYL-internal, its-delete-backward-within-SYL): -- Follow the change. -- -- Don't use local map of text properties, instead use minor mode. -- * convert.el (egg-conversion-mode): New minor mode. -- (egg-conversion-left, egg-conversion-enter): New functions. -- (egg-insert-bunsetsu): remove local-map, add point-entered and -- point-left properties. -- (egg-exit-conversion): Likewise. -- (egg-exit-conversion): Exit minor mode. -- -- * its.el (its-put-cursor): remove local-map, add point-entered and -- point-left properties. -- (its-enter, its-left): New functions. -- (its-mode): New variable. New minor mode. -- --1997-08-27 NIIBE Yutaka <gniibe@chroot.org> -- -- * convert.el (egg-exit-conversion-no-egg): Removed. -- (egg-exit-conversion): No argument, no egg-mode. -- -- * convert.el (egg-convert-region): No egg-flag. -- * its.el (its-exit-mode-internal): Follow it. -- * mlh.el (mlh-space-bar-backward-henkan): Ditto. -- --1997-08-26 NIIBE Yutaka <gniibe@chroot.org> -- -- * wnn.el (wnn-change-bunsetsu-length): Don't use magic #3. -- -- * convert.el (egg-insert-bunsetsu-list): Add optional argument -- CONTIN. -- --1997-08-25 NIIBE Yutaka <gniibe@chroot.org> -- -- * convert.el (egg-insert-bunsetsu): Include seperator. Add -- intangible property to bunsetsu. -- (egg-insert-bunsetsu-list): Follow the change. -- (egg-backward-bunsetsu, egg-forward-bunsetsu, -- egg-select-candidate, egg-next-candidate, -- egg-shrink-bunsetsu, egg-enlarge-bunsetsu, -- egg-exit-conversion): Ditto. -- -- * mlh.el (mlh-space-bar-backward-henkan): Call egg-convert-region -- with last argument t. Turn of egg-mode. -- --1997-08-24 NIIBE Yutaka <gniibe@chroot.org> -- -- * its.el (its-exit-mode-internal): Inactivate input method. -- -- * wnn.el (wnn-end-conversion): Change the interface. -- (wnn-update-frequency): Follow the change. -- * convert.el (egg-exit-conversion): Follow the change. -- -- * wnn.el (wnn-start-conversion): Change the return value interface. -- * convert.el (egg-convert-region): Follow the change. -- -- * wnn.el (wnnenv-get-bunsetsu-pos, wnnenv-set-bunsetsu-pos): Removed. -- (wnn-get-bunsetsu-source-afterwards): Removed. -- (wnn-get-number-of-bunsetsu, wnn-get-bunsetsu-info): Removed. -- (wnnenv-get-bunsetsu-list, wnnenv-set-bunsetsu-list): Removed. -- (wnn-start-conversion): Don't call wnnenv-set-bunsetsu-list. -- (wnn-end-conversion): Ditto. -- --1997-08-23 NIIBE Yutaka <gniibe@chroot.org> -- -- * convert.el (egg-change-bunsetsu-length): Change the interface. -- (egg-shrink-bunsetsu,egg-enlarge-bunsetsu): Follow it. -- -- (egg-source-maxlen-from-here): Removed. -- (egg-get-previous-bunsetsu): New function. -- (egg-select-candidate, egg-shrink-bunsetsu, egg-enlarge-bunsetsu, -- egg-next-candidate): Use egg-get-previous-bunsetsu. -- --1997-08-20 NIIBE Yutaka <gniibe@chroot.org> -- -- * egg.el (minor-mode-alist): Don't show " EGG" in mode line. -- (egg-mode): Use input method indicator instead. -- --1997-07-20 NIIBE Yutaka <gniibe@chroot.org> -- -- * convert.el (egg-next-candidate): Rename from egg-next-conversion. -- (egg-previous-candidate): Rename from egg-previous-conversion. -- (egg-select-candidate): Follow the change of new interface. -- (egg-source-maxlen-from-here): Likewise. -- --1997-07-19 NIIBE Yutaka <gniibe@chroot.org> -- -- * wnn.el (wnn-start-conversion): Change the interface. Return ENV -- and the list of bunsetsu. Fix the documentation string too. -- * convert.el (egg-convert-region): Follow the change. -- (egg-insert-converted-result): Change the argument. -- (egg-insert-bunsetsu-list): Rename from egg-insert-converted-result. -- (egg-insert-bunsetsu): New function. -- (egg-get-number-of-bunsetsu,egg-get-bunsetsu-info): Removed. -- (egg-backward-bunsetsu): Don't use bunsetsu-pos. -- -- * wnn.el (wnn-get-bunsetsu-converted): Change the interface. Take -- BUNSETSU as the argument instead of ENV and POS. -- * convert.el (egg-get-bunsetsu-converted): Follow the change. -- -- * wnn.el (wnn-bunsetsu-create): Take ENV as the first argument. -- (wnn-list-candidates): Dont take ENV. -- (wnn-bunsetsu-get-env): New substitution. -- -- * wnnrpc.el (wnnrpc-receive-sho-bunsetsu-list-sub): Take the argument -- for ENV, and use it for the argument of wnn-bunsetsu-create. -- (wnnrpc-receive-sho-bunsetsu-list): Take ENV as the first argument. -- (wnnrpc-renbunsetsu-conversion): Follow the change. -- --1997-07-17 NIIBE Yutaka <gniibe@chroot.org> -- -- * convert.el (egg-decide-candidate): Change the interface. -- Take the argument bunsetsu-info instead of conversion-engine. -- -- * wnn.el (wnn-get-candidate): Deleted. -- -- * convert.el (egg-get-all-candidates): Change the interface. -- Take an argument bunsetsu-info instead of conversion-engine. -- (egg-select-candidate): Follow the change. -- -- * convert.el (egg-set-bunsetsu-pos,egg-get-bunsetsu-pos): Deleted. -- (egg-list-candidates,egg-get-current-candidate-number): New stub. -- * wnn.el (wnn-bunsetsu-create): Add new member zenkouho-pos. -- (wnn-bunsetsu-get-zenkouho-pos,wnn-bunsetsu-set-zenkouho-pos): New -- functions. -- (wnn-list-candidates,wnn-get-current-candidate-number): New functions. -- (wnn-set-bunsetsu-pos,wnn-get-bunsetsu-pos): Deleted. -- -- * convert.el (egg-get-number-of-candidates): Change the interface. -- Take an argument bunsetsu-info instead of conversion-engine. -- (egg-next-conversion,egg-select-candidate): Follow the change. -- * wnn.el (wnn-get-number-of-candidates): Follow the change. -- -- * wnn.el (wnn-get-bunsetsu-source-afterwards): New function. -- (wnn-change-bunsetsu-length): Use it. -- -- * convert.el (egg-get-bunsetsu-source): Change the interface. -- Take an argument bunsetsu-info instead of conversion-engine. -- (egg-enlarge-bunsetsu,egg-shrink-bunsetsu,egg-source-maxlen-from-here): -- Follow the change. -- * wnn.el (wnn-get-bunsetsu-source): Follow the change. -- -- Put bunsetsu information on text property. -- * wnn.el (wnn-get-bunsetsu-info): New function. -- -- * convert.el (egg-insert-converted-result): Put it on text property. -- (egg-conversion-backend): Add new interface -- wnn-get-bunsetsu-info. -- (egg-get-bunsetsu-info): New stub. -- --1997-07-17 KATAYAMA Yoshio <kate@pfu.co.jp> -- -- * its.el (its-state-machine-keyseq, its-state-machine): Handle -- end-of-input correctly when going backward. -- --1997-07-16 NIIBE Yutaka <gniibe@chroot.org> -- -- * wnn.el (wnn-create-directory): Bug fix. Really make directory. -- --1997-07-15 NIIBE Yutaka <gniibe@chroot.org> -- -- * its-hangul.el (its-define-hangul): Use its-defrule-otherwise. -- --1997-07-15 KATAYAMA Yoshio <kate@pfu.co.jp> -- -- * its-hangul.el: Updated. -- --1997-06-19 NIIBE Yutaka <gniibe@akebono.etl.go.jp> -- -- * its-hira.el: its-hira-hankaku-escape --> its-hankaku-escape. -- its-hira-zenkaku-escape --> its-zenkaku-escape. -- --1997-06-14 NIIBE Yutaka <gniibe@chroot.org> -- -- * its.el: Change the data structure of <expr-output-back-list> so -- that it can encourage sharing same structure and it can use same -- structure of SYL. -- (its-ins/del-SYL-batch): Follow the change of data structure. -- (its-define-otherwise): Change the argument. -- (its-defrule-otherwise): New function. -- (its-eob-keyexpr, its-eob-back, its-make-class+back, -- its-make-otherwise): New substitutions. -- --1997-06-13 NIIBE Yutaka <gniibe@chroot.org> -- -- * its-kana.el: New file. Taken from its/kanainput.el of Mule-2.3. -- -- * its-hira.el: Use `define-its-state-machine'. -- -- * its.el (its-zenkaku-escape, its-hankaku-escape): Make them -- defconst. -- (define-its-state-machine, define-its-state-machine-append): New -- macro. -- --1997-06-13 NIIBE Yutaka <gniibe@akebono.etl.go.jp> -- -- * its-hira.el ("n'"): Added. -- --1997-06-12 NIIBE Yutaka <gniibe@akebono.etl.go.jp> -- -- its-zenkaku-escape and its-hankaku-escape are also used in hangul. -- * its.el (its-zenkaku-escape, its-hankaku-escape): Moved to here -- and rename them. -- * its-hira.el (its-hira-hankaku-escape, its-hira-zenkaku-escape): -- Removed. -- -- * its.el (its-read-current-its-string): Removed. There's the -- function `read-multilingual-string' already. -- --1997-06-12 KATAYAMA Yoshio <kate@pfu.co.jp> -- -- * its-hangul.el: New file. -- --1997-06-10 NIIBE Yutaka <gniibe@chroot.org> -- -- Miscellaneous cosmetic changes. -- * comm.el: New file. Move communication related funcitons from -- wnnrpc.el. -- (comm-format-u32c, and others): Rename from wnnrpc-*. -- * wnnrpc.el (Throughout): Follow the rename. -- -- * wnn.el (wnnenv-get-in-use-flag): Rename from wnn-e-get-in-use. -- (wnnenv-set-in-use-flag): Rename from wnn-e-set-in-use. -- (Others): Rename from wnn-e-*. -- (wnn-bunsetsu-*): Rename from wnnrpc-b-*, and moved from wnnrpc.el. -- -- * convert.el (egg-exit-conversion): Call egg-do-auto-fill. -- -- * its.el (its-translate-region): Bug fix. End of input. -- (its-state-machine): Bug fix. Generate error if -- its-barf-on-invalid-keyseq. -- (its-exit-mode-internal): Call egg-do-auto-fill. -- -- * wnnrpc.el (ccl-decode-fixed-euc-jp): Bug fix for ASCII. -- -- * mlh.el (mlh-space-bar-backward-henkan): Call egg-do-auto-fill. -- -- * egg.el: Comment out definition of C-\ in global-map. -- --1997-06-09 NIIBE Yutaka <gniibe@chroot.org> -- -- * its.el (its-kick-convert-region): Rename from its-convert-region. -- (its-mode-map): Follow the change. -- -- (its-make-next-state): Use list instead of cons. -- -- (its-get-kst/t): Make it substitution. -- (its-set-kst, its-get-keyseq, its-set-keyseq, its-kst-p, -- its-get-output, its-set-output, its-get-keyseq-syl): Likewise. -- (its-new-state, its-new-map, its-get-indicator, its-set-indicator, -- its-get-start-state, its-reset-start-state): Likewise. -- -- (its-get-next-state): Use assq instead of assoc. -- -- (its-goto-state): Tune up. -- --1997-06-08 NIIBE Yutaka <gniibe@chroot.org> -- -- * mlh.el: Merge mlh-nihongo.el. -- * mlh-nihongo.el: Removed. -- -- * its-hira.el: Moved from its/hira.el. Move comments to HISTORY. -- (its-hira-enable-double-n, its-hira-period, its-hira-comma, -- its-hira-open-bracket, its-hira-close-bracket, -- its-hira-horizontal): New variables. -- Use the variables to define the state-machine. -- -- Implement non-interactive translation in ITS. -- * its.el (its-translate-region): New function. -- (its-latest-SYL): New Variable. -- (its-state-machine-keyseq): Use it. -- (its-update-latest-SYL): New function. -- (its-buffer-ins/del-SYL): Use it. -- (its-translation-result): New variable. -- (its-ins/del-SYL-batch): New function. -- (its-enable-double-n-syntax, its-use-kuten-for-period, -- its-use-touten-for-comma, its-zenkaku-escape, its-hankaku-escape): -- Removed. -- -- Use ITS, delete mlh's own implementation of automata. -- * mlh.el (mlh-start-state, mlh-set-of-chars, mlh-start-state-sym, -- mlh-set-of-chars-sym, mlh-define-automata, mlh-end-of-definition, -- mlh-defrule, mlh-next-state, mlh-roma-kana-backward): Removed. -- (mlh-cause-error-when-unknown-romaji-sequence): Removed. -- (mlh-atoi): Removed. -- (mlh-white-space, mlh-zenkaku-white): Use string-to-int. -- * mlh-nihongo.el (mlh-hira-start-state, mlh-hira-chars, and all -- rules of definition which defines the automaton): Removed. -- (mlh-kanji-with-henkan-region-function): Use its-translate-region. -- (mlh-hiragana, mlh-katakana): Likewise. -- -- Fix of CCL. -- * wnnrpc.el (ccl-decode-fixed-euc-jp): Bug fix for jisx0212. -- Add missing parens. -- -- Speed up of unpacking. -- * wnnrpc.el (wnnrpc-following-char-or-wait): Tune up. -- (wnnrpc-following+forward-char): New function. -- (wnnrpc-unpack-u32c, wnnrpc-unpack-u32, wnnrpc-unpack-u16, -- wnnrpc-unpack-u8): Use it. -- (wnnrpc-accept-process-output): New function. -- (wnnrpc-unpack-u16-string, wnnrpc-unpack-u8-string, -- wnnrpc-unpack-bytes): Use it. Use search-forward. -- (wnnrpc-unpack-u16-string): Use decode-coding-region. -- --1997-06-07 NIIBE Yutaka <gniibe@chroot.org> -- -- * wnn.el (wnn-get-all-candidates): New function. -- (wnn-set-bunsetsu-pos): Return 0 (instead of -1). -- -- * convert.el (egg-get-candidate): Removed. -- (egg-get-all-candidates): New entry function. -- (egg-conversion-backend): Entry for egg-get-all-candidates. -- (egg-select-candidate): New function. -- (egg-conversion-map): Bind "\M-s" and egg-select-candidate. -- --1997-06-05 NIIBE Yutaka <gniibe@chroot.org> -- -- * bushu.el: Renamed from busyu.el. -- (bushu-break-string, etc): Renamed from busyu*. -- -- * menu.el: Completely rewritten. -- --1997-06-03 NIIBE Yutaka <gniibe@akebono.etl.go.jp> -- -- * its.el (its-reset-start-state): Bug fix. Delete a CDR. -- -- Implement "class of key" transition. -- Change the structure of <state>, the last member is -- <key-state-table/terminal> instead of <key-state-alist/terminal>. -- * its.el (its-kst-p): Rename from its-ksa-p. -- (its-get-next-state): Follow the change of the data structure. -- (its-state-machine): Likewise. -- (its-make-next-state): Likewise. -- (its-set-kst): New function. -- (its-get-otherwise): New function. -- (its-otherwise-match): New function. -- (its-define-otherwise-terminate-here): Removed. -- (its-define-otherwise): New function. -- (its-defrule*): Use its-define-otherwise. -- -- * its/hira.el (n): Use its-define-otherwise. -- --1997-06-02 NIIBE Yutaka <gniibe@chroot.org> -- -- * wnnrpc.el (wnnrpc-receive-sho-bunsetsu-list-sub, -- wnnrpc-receive-sho-bunsetsu-list-sub-2): Splited from -- wnnrpc-receive-sho-bunsetsu-list. -- (wnnrpc-receive-dai-bunsetsu-list): New function. -- (wnnrpc-daibunsetsu-conversion, wnnrpc-get-daibunsetsu-candidate): -- New function. -- --1997-06-01 NIIBE Yutaka <gniibe@chroot.org> -- -- * wnnrpc.el (ccl-decode-fixed-euc-jp): Clean it up. -- (wnnrpc-file-attribute): Rename from wnnrpc-stat-file. -- (wnnrpc-get-dictionary-list-with-environment): Rename from -- wnnrpc-get-dictionary-list-with-environment. -- -- Implement RPC more. -- * wnnrpc.el (wnnrpc-who, wnnrpc-get-env-list, wnnrpc-kill, -- wnnrpc-delete-dictionary, wnnrpc-set-flag-on-dictionary, -- wnnrpc-get-dictionary-list, wnnrpc-delete-word, -- wnnrpc-receive-word, wnnrpc-search-word, -- wnnrpc-search-word-in-dictionary, wnnrpc-get-word-info, -- wnnrpc-set-comment-on-word, wnnrpc-get-dictionary-info, -- wnnrpc-set-file-comment, wnnrpc-hinshi-name, -- wnnrpc-set-file-password, wnnrpc-set-hinshi-table): New functions. -- --1997-05-31 NIIBE Yutaka <gniibe@chroot.org> -- -- * wnnrpc.el (wnnrpc-format-u32c, wnnrpc-unpack-u32c): New -- substitutions. Support 32-bit number represented in cons cell of -- a pair of 16-bit integer. -- (wnnrpc-format, wnnrpc-unpack): Handle u32c (U). -- -- (wnnrpc-format-bytes, wnnrpc-unpack-bytes): New substitutions. -- Support byte stream end with 255(-1). -- (wnnrpc-format, wnnrpc-unpack): Handle bytes (B). -- -- (wnnrpc-local-file-loaded): New function. -- (wnnrpc-call-with-proc-1): New macro. Assume the buffer is the one -- of process. -- --1997-05-29 NIIBE Yutaka <gniibe@chroot.org> -- -- * wnnrpc.el (wnnrpc-get-conversion-parameters, wnnrpc-file-loaded, -- wnnrpc-write-file, wnnrpc-get-fuzokugo-file, wnnrpc-get-file-list, -- wnnrpc-get-file-list-with-env, wnnrpc-stat-file, -- wnnrpc-get-file-info): New functions. -- wnnrpc-receive-file-list): New subst. -- --1997-05-29 Kenichi Handa <handa@etl.go.jp> -- -- * wnnrpc.el (ccl-decode-fixed-euc-jp): Tune it up. -- --1997-05-29 Hisashi Miyashita <himi@bird.scphys.kyoto-u.ac.jp> -- -- * wnnrpc.el (fixed-euc-jp, ccl-decode-fixed-euc-jp, -- ccl-encode-fixed-euc): New private coding system. Encode/decode -- CCL for it. -- --1997-05-27 NIIBE Yutaka <gniibe@chroot.org> -- -- * wnnrpc.el (wnnrpc-tanbunsetsu-conversion): Change the argument. -- (wnnrpc-get-bunsetsu-candidates): Likewise. -- (wnnrpc-renbunsetsu-conversion): Likewise. -- -- * wnn.el (wnn-change-bunsetsu-length): Follow the change. -- (wnn-set-bunsetsu-pos): Likewise. -- (wnn-change-bunsetsu-length, wnn-start-conversion): Likewise. -- --1997-05-25 NIIBE Yutaka <gniibe@chroot.org> -- -- * wnnrpc.el (wnnrpc-add-word, wnnrpc-get-dictionary-list, -- wnnrpc-receive-dictionary-list, wnnrpc-get-writable-dictionary-list, -- wnnrpc-get-hinshi-list, wnnrpc-hinshi-number): New functions. -- (wnnrpc-unpack-u16-string): Bug fix for the case of ASCII string. -- -- * wnn.el (wnn-dictionary-specification): Add dictionaries of -- gerodic and ones of WNN consortium. -- -- Implement a false path. -- * wnnrpc.el (wnnrpc-renbunsetsu-conversion): Generate an error on -- failure. -- (wnnrpc-get-bunsetsu-candidates): Ditto. -- (wnnrpc-tanbunsetsu-conversion): Ditto. -- -- Implement a false path. Error recovery. -- * wnn.el (wnn-create-directory, wnn-open-dictionary, -- wnn-open-frequency, wnn-query-del/create-frequency): New function. -- (wnn-set-dictionary-sub): New function. -- --1997-05-24 NIIBE Yutaka <gniibe@chroot.org> -- -- * wnnrpc.el (wnnrpc-version, wnnrpc-access, wnnrpc-mkdir, -- wnnrpc-create-dictionary, wnnrpc-create-frequency, -- wnnrpc-discard-file, wnnrpc-remove-file): New functions. -- (wnnrpc-test-result-and-get-error): New subst. -- -- Implement a false path from wnnrpc-set-fuzokugo-file. -- * wnnrpc.el (wnnrpc-set-fuzokugo-file): Return negate-encoded -- error code on failure. -- * wnn.el (wnn-create-environment): Generate an error message. -- -- Implement a false path from wnnrpc-open-file. -- * wnnrpc.el (wnnrpc-open-file): Change the interface. Return -- negate-encoded error code on failure. -- * wnn.el (wnn-open-file): New function. -- (wnn-create-environment): Handle return value, and generate -- an error message for wnnrpc-set-fuzokugo-file on failure. -- (wnn-set-dictionary): Handle return value. -- --1997-05-17 NIIBE Yutaka <gniibe@chroot.org> -- -- * wnnrpc.el (wnnrpc-error-message): Error strings taken from -- Wnn-4.2 distribution. -- (wnnrpc-errono): Removed. -- -- Implement a false path from wnnrpc-open. -- * wnnrpc.el (wnnrpc-open): Change the interface. Return NIL on -- success, error code on failure. -- * wnn.el (wnn-open): Delete process and buffer. -- Generate an error on failure. -- (wnn-get-environment): Follow the change (none). -- (wnn-start-conversion): Follow the change (none). -- * convert.el (egg-convert-region): Follow the change. Call -- delete-region after egg-start-conversion. -- -- Implement a false path from wnnrpc-connect. -- * wnnrpc.el (wnnrpc-connect): Change the interface. Return -- negate-encoded error code on failure. -- * wnn.el (wnn-create-environment): Generate an error on failure. -- (wnn-get-environment): Follow the change. On failure, don't -- register the environment to wnn-environments. -- --1997-05-16 NIIBE Yutaka <gniibe@akebono.etl.go.jp> -- -- Dynamically allocate environment arbitrarily. -- * wnn.el (wnn-create-environment): Change the structure of ENV. -- (wnn-e-get-in-use, wnn-e-set-in-use): New subst. -- (wnn-end-conversion): Call wnn-e-set-in-use. -- (wnn-get-environment, wnn-find-env-not-in-use): New function. -- (wnn-start-conversion): Call wnn-get-environment. -- -- * wnn.el (wnn-fini): Implemented. -- --1997-05-15 NIIBE Yutaka <gniibe@chroot.org> -- -- * convert.el (egg-start-conversion): Change the interface. -- (egg-convert-region): Follow the change. -- (egg-open-if-not): Removed. -- * wnn.el (wnn-start-conversion): Follow the change. -- -- * wnn.el (wnn-environment-list): Removed. -- (wnn-environment-serial): Removed. -- (wnn-connect-and-init): Removed. -- (wnn-environments): New variable which holds all environments. -- --1997-05-15 NIIBE Yutaka <gniibe@akebono.etl.go.jp> -- -- * wnn.el (wnn-change-bunsetsu-length): Bug fix. Last argument to -- wnnrpc-b-set-freq-down is list of bunsetsu. -- -- * mlh.el (mlh-do-spacing): Emacs 20 related changes. -- Use category-set-mnemonics, and char-category-set. -- According to suggestion by Kenichi Handa <handa@etl.go.jp>. -- --1997-05-15 MORIOKA Tomohiko <morioka@jaist.ac.jp> -- -- * wnn.el (wnn-usr-dic-dir): New variable. -- (wnn-filename): Use wnn-usr-dic-dir. -- -- * its.el (its-defrule): New argument `enable-overwrite'. -- --1997-05-14 NIIBE Yutaka <gniibe@chroot.org> -- -- * convert.el (egg-exit-conversion-unread-char): Use newer variable -- unread-command-events, as unread-command-char is obsolete. -- (egg-shrink-bunsetsu, egg-source-maxlen-from-here, -- egg-enlarge-bunsetsu, egg-next-conversion, egg-exit-conversion, -- egg-exit-conversion, egg-insert-converted-result): New property -- EGG-CONVERSION-ENGINE, which specifis backend. -- -- (egg-start-conversion, egg-get-number-of-bunsetsu, -- egg-get-bunsetsu-converted, egg-set-bunsetsu-pos, -- egg-get-bunsetsu-pos, egg-get-number-of-candidates, -- egg-get-candidate, egg-decide-candidate, -- egg-change-bunsetsu-length, egg-get-bunsetsu-source, -- egg-end-conversion): Change the interface, new argument c. -- * wnn.el (wnn-start-conversion, wnn-get-number-of-bunsetsu, -- wnn-get-bunsetsu-converted, wnn-set-bunsetsu-pos, -- wnn-get-bunsetsu-pos, wnn-get-number-of-candidates, -- wnn-get-candidate, wnn-decide-candidate, -- wnn-change-bunsetsu-length, wnn-get-bunsetsu-source, -- wnn-end-conversion): Likewise. -- -- * convert.el (egg-open-if-not): Change the interface. Return -- conversion backend. -- -- * wnnrpc.el (wnnrpc-following-char-or-wait, wnnrpc-unpack-u32, -- wnnrpc-unpack-u16, wnnrpc-unpack-u8, wnnrpc-unpack-u16-string, -- wnnrpc-unpack-u8-string): Change the interface to avoid -- compilation warnings. -- (wnnrpc-unpack): Use new interface. -- -- * wnn.el (wnn-open): Change the name of WNN buffer as debug has -- been done. -- --1997-05-11 NIIBE Yutaka <gniibe@chroot.org> -- -- * wnnrpc.el (wnnrpc-following-char-or-wait): Rename from -- wnn-following-char-or-wait. -- (wnnrpc-following-char-or-wait): Declare with DEFUN instead of -- DEFSUBST. -- --1997-05-10 NIIBE Yutaka <gniibe@chroot.org> -- -- * Throughout: Use JUNET coding system for file format. -- -- * mlh.el: Move some comments to HISTORY. -- (mlh-version): Removed. -- Remove all autoload entries. -- (henkan-region-function): Removed. -- (member): Don't need any more. -- -- * mlh-nihongo.el: Renamed from nihongo.el. -- -- * mlh.el (mlh-space-bar-backward-henkan): call egg-convert-region -- directly. -- (mlh-space-bar-backward-henkan): Fix for Emacs 20. -- Don't call egg:do-auto-fill. -- (mlh-backward-henkan): Use set-marker-insertion-type. -- (mlh-do-spacing): Char-category. -- -- * mlh.el, nihongo.el: Taken from mlh-1.002 distribution. -- --1997-05-07 NIIBE Yutaka <gniibe@chroot.org> -- -- * convert.el (egg-update-frequency): Removed. -- (egg-conversion-backend): Remove entry for update-frequency. -- -- * wnn.el (wnn-dictionary-specification): Change parameters -- according to suggestion by Tomoko Yoshida in mule-jp@etl.go.jp. -- Original had been taken from wnn-4.2. -- --1997-05-06 NIIBE Yutaka <gniibe@chroot.org> -- -- * convert.el (egg-next-conversion): Bug fix. It's max+ instead of n. -- --1997-05-05 NIIBE Yutaka <gniibe@chroot.org> -- -- * wnnfns.c (Fwnn_get_bunsetsu_converted): Rename from -- get-converted-bunsetsu. -- (Fwnn_get_bunsetsu_source): Ditto. -- * convert.el (egg-get-bunsetsu-converted): Ditto. -- (egg-get-bunsetsu-source): Ditto. -- -- * wnn.el (wnn-create-environment): New file which mimics API of -- wnnfns.c. -- --1997-04-29 NIIBE Yutaka <gniibe@chroot.org> -- -- * wnnrpc.el: New file which implements Remote Procedure Calls of WNN. -- --1997-04-16 NIIBE Yutaka <gniibe@chroot.org> -- -- * its/kanainput.el (normal-pair): Use its-defrule*. -- -- * its.el (its-defrule*): Rewritten. -- -- * its/hira.el ("n"): Alternative implementation using 'otherwise'. -- -- * its.el (its-processing-map): Removed. -- (its-register-map): Rename from its-set-map. -- (its-register-map): Remove first argumet NAME. -- (its-defrule): Remove last optional argument END. -- (its-define-otherwise-terminate-here): New function. -- (its-goto-state): New function. -- (its-defrule, its-defoutput): Use its-goto-state. -- --1997-04-12 NIIBE Yutaka <gniibe@chroot.org> -- -- * its.el: Enhance meaning of ITS state machine. Now, <key> -- includes representation of "ANY of key stroke" (-2). -- (its-defrule): New feature end=='otherwise. -- (its-defrule*): New function. -- (its-state-machine): Implement otherwise-terminate-before-this-key. -- -- * its/kanainput.el (its-k-zenkaku-escape, its-k-hankaku-escape, -- its-k-symbols-escape): Add prefix its-. Let them defconst. -- "W": Move the definition beginning to avoid error. -- --1997-03-26 NIIBE Yutaka <gniibe@chroot.org> -- -- * convert.el (egg-next-conversion): -1 goes to end of bunsetsu. -- --1997-03-25 NIIBE Yutaka <gniibe@chroot.org> -- -- * egg.el (egg-mode-on, egg-input-mode, egg-in-fence-mode): Deleted. -- (egg-fence-face-on, egg-fence-face-off): Deleted. -- (egg-region-start, egg-region-end): Deleted. -- --1997-03-24 NIIBE Yutaka <gniibe@chroot.org> -- -- * its/hira.el ("n"): Add "z" and "?" for prefetch char of "n". -- -- Implement conversion mode. -- * convert.el: New file. -- --1997-03-23 NIIBE Yutaka <gniibe@chroot.org> -- -- * its.el (its-mode-map): As "\C-g" is used in global-map, use -- "\C-]" instead (for its-cancel-input). -- --1997-03-22 NIIBE Yutaka <gniibe@chroot.org> -- -- Introduce new scheme to specify server. -- * wnnfns.c (Qjserver, Qcserver, Qtserver, Qkserver): Removed. -- (Vwnn_server_type): Integer variable. -- (wnn_get_server_type): Renamed from wnn_check_server_type. -- (charset_wnn_server_type): Renamed from lc_wnn_server_type. -- -- Introduce new scheme to specify uniqueness. -- * wnnfns.c (Qwnn_no_uniq, Qwnn_uniq, Qwnn_uniq_kanji): Removed. -- (Vwnn_uniqueness_specifier): Integer variable. Renamed from -- wnn_uniq_level. -- --1997-03-21 NIIBE Yutaka <gniibe@chroot.org> -- -- Cosmetic changes. -- * wnnfnc.c (Throughout): Change Lisp function name to follow the -- format of wnn-VERB-OBJECT. -- Use XFASTINT instead of XINT, if appropriate. -- -- * wnnfns.c (Fwnn_fuzokugo_set): Merged with wnn-set-fuzokugo of -- wnn-egg.el. -- -- * wnn-egg.el (wnn-set-fuzokugo): Deleted. -- -- * wnnfns.c (Fwnn_dict_add): Merged with wnn-add-dict of wnn-egg.el. -- * wnn-egg.el (wnn-add-dict): Deleted. -- -- * wnn-egg-msg.el (wnn-msg-get): Renamed from egg-msg-get. -- (wnn-message-alist): Renamed from egg-message-alist. -- Use defconst. -- -- * wnnfns.c (wnn_check_server_type): Renemed from -- check_wnn_server_type. -- -- * wnn-egg-msg.el (egg-error): Deleted. Not useful enough. -- * wnn-egg.el (Throughout): Replace egg-error by error. -- -- * egg.el (egg-sai-henkan-start, egg-sai-henkan-end, -- egg-old-bunsetu-suu): Moved from wnn-egg.el. -- -- * wnn-egg.el (Throughout): Change variable name and function name. -- Added wnn- prefix, egg- prefix. -- * wnn-egg.el: Delete historical defaliases. Only support -- wnn-set-[cjk]server-hostname. -- -- * wnn6.el: New file. Discriminate Wnn6 related functions. -- * eggrc-wnn6: New file. Discriminate Wnn6 related setting. -- -- * egg-fence.el: Removed. -- --1997-03-20 NIIBE Yutaka <gniibe@chroot.org> -- -- Distingush continuation of egg-mode and turn off of egg-mode. -- * its.el (its-mode-map): Bind "\C-\\" to its-exit-mode-no-egg. -- (its-exit-mode-internal): New argument egg-mode-flag. -- (its-exit-mode-no-egg): New Function. -- -- Rethink about keymap. Once, the intention of egg-mode-map has -- been to override ALL of the keymap. That's so selfish, and not -- friendly to other parts of Emacs. This implementation intend to -- be more friendly with other keymaps. -- * its.el (its-mode-map): Remove definition of "\C-c" for -- its-cancel-input, as C-c has special meaning in Emacs. We should -- not re-define it. -- Remove definition of "\C-q" for its-select-previous-map. -- Remove definition of "\C-_" for egg-jis-code-input. -- Remove definition of "\C-w", "\C-@", [?\C-\ ] for -- egg-henkan-fence-region. -- -- Implement START/CURSOR/END scheme. -- * its.el (its-input-to-vsyl): New function. -- (its-beginning-of-input-buffer): New function. -- (its-end-of-input-buffer): New function. -- (its-backward-SYL): New function. -- (its-forward-SYL): New function. -- (its-delete-SYL): New function. -- (its-delete-backward-SYL): New function. -- (its-delete-backward-SYL-internal): New function. -- (its-delete-backward-within-SYL): New function. -- (its-delete-by-keystroke): New Variable. -- (its-exit-mode): New function. -- (its-exit-mode-internal): New function. -- -- * its.el (its-standard-map-list, its-find, its-next-map, -- its-previous-map): Deleted. -- (its-get-indicator): Delete duplicated definition. Leave one which -- takes <map> argument. -- (its-input): Rename from its-input-subsubsub. -- -- * egg.el (egg-mode-map): Don't include SPACE. -- -- Introduce CURSOR. -- * its.el (its-state-machine): Add new argument EMIT. Return CURSOR. -- (its-state-machine-keyseq): Likewise. -- (its-input-subsubsub): Return CURSOR. -- (its-input-subsub): Deleted. -- (its-DSYL-p): Deleted. -- (its-buffer-insert-SYL-list): Deleted. -- (its-buffer-ins/del-SYL): New function. -- (its-input-end): Change the argument to P of point, and return VOID. -- -- Change structure of <map>. <start-state> is normal <state>. -- (its-new-map): Follow the change of structure. -- (its-get-indicator, its-set-indicator, its-reset-start-state): -- Likewise. -- (its-reset-start-state): Renamed from its-reset-start. -- -- Don't use <input-buffer>, but introduce new scheme of SYL property. -- (its-change-t-to-nil, its-nil-index, its-bytes-between, -- its-delete-between, its-move-nil--->, its-move-nil-<--, -- its-move-nil-<--sub, its-move-nil-to-last, its-move-nil-to-first): -- Deleted. -- --1997-03-19 NIIBE Yutaka <gniibe@chroot.org> -- -- * its.el: Change the structure of DSYL. Same as <state>. -- (its-input-subsub): Follow the change of structure. -- (its-make-DSYL): Deleted. -- (its-get-keyseq-cooked): New function. -- -- Swap the meaning of T/NIL of <SYL>. -- -- Delete the structure of <input-buffer>. -- (its-new-input-buffer): Deleted. -- (its-input-subsub): Remove the argument SYLP. -- (its-input, its-input-sub, its-init-text-properties): Deleted. -- -- Introduce START, END and CURSOR. -- --1997-03-19 NIIBE Yutaka <gniibe@akebono.etl.go.jp> -- -- Global-map should be used, for key sequence not defined by -- its-mode-map and/or egg-mode-map. Don't mask other maps. -- * its.el (its-mode-esc-map): Deleted. -- (its-mode-map): Include define-key of the esc-map here. -- * egg.el (egg-mode-esc-map): Deleted. -- (egg-mode-map): Include define-key of the esc-map here. -- --1997-03-18 NIIBE Yutaka <gniibe@chroot.org> -- -- * its.el (its-input): Rename from its-input-input-buffer. -- (its-state-machine): Handle END of input (key == -1). -- -- ITS minor mode deleted. It's implemented by local-map of text -- properties. -- (its-mode): Remove the variable. -- (its-mode): Remove the function. -- -- * its.el (<input-buffer>): Change the order of <SYL> list. -- (car sylp) is last entry of the list. -- (its-input-buffer): Deleted. It's now a member of text -- properties. -- (<map>): Change the structure. Start state should have "" for keyseq. -- (its-get-start-state): Follow chage of the <map> structure. -- (its-reset-start, its-set-indicator, its-get-indicator): Likewise. -- (its-new-state, its-new-map): Split from its-new-state/map. -- (its-make-map): Deleted. -- --1997-03-17 NIIBE Yutaka <gniibe@chroot.org> -- -- * its.el (its-buffer-insert-SYL-list): Use insert-and-inherit to -- inherit properties. -- (its-fence-overlay): Removed. Don't use overlay, as it has no -- information in undo-list. -- --1997-03-16 NIIBE Yutaka <gniibe@chroot.org> -- -- * its/hira.el ("n"): Use new feature END. -- ("ppy", "bby", "ddy", "jjy", "zzy", "ggy", "lly", "rry", "hhy", -- "cch", "tts", "tty", "ssh", "ssy", "kky"): its-defoutput. -- -- * its.el (its-defrule): Add argument END. -- (its-buffer-delete-SYL): Bug fix. Use length instead of string-width. -- --1997-03-15 NIIBE Yutaka <gniibe@chroot.org> -- -- * its.el (its-input-input-buffer): Implement the case of DSYL. -- --1997-03-14 NIIBE Yutaka <gniibe@chroot.org> -- -- * its.el (its-buffer-delete-SYL): Handle the case of NIL. -- -- * its/hira.el: Implement "kka" and others. Implemlement "N". -- (digit-characters, symbol-characters, downcase-alphabets, -- upcase-alphabets): Delete useless defvar-s. -- --1997-03-14 NIIBE Yutaka <gniibe@akebono.etl.go.jp> -- -- * its/hira.el ("roma-kana"): Follow change of implementation of -- state machine. -- -- Correct the abuse of the word "MODE". It seems that it's direct -- influence of "mode" in Emacs, but it's not mode at all. -- * its.el (its-map-alist): Renamed from its-mode-alist. -- (its-get-map): Renamed from its-get-mode-map. -- (its-set-map): Renamed from its-set-mode-map. -- (its-define-state-machine): Renamed from its-define-mode. -- (its-select-map-menu): Renamed from its-select-mode-menu. -- (its-select-map-from-menu): Renamed from its-select-mode-from-menu. -- (its-standard-map-list): Renamed from its-standard-modes. -- (its-next-map): Renamed from its-next-mode. -- (its-previous-map): Renamed from its-previous-mode. -- (its-select-map): Renamed from its-select-mode. -- (its-get-indicator): Renamed from its-get-mode-indicator. -- -- (its-select-map-from-menu): As it's not mode, don't need offer hooks. -- (its-next-map): Likewise. -- (its-previous-map): Likewise. -- (its-select-map): Likewise. -- -- Change the implementation of its-mode-alist. Name is in <map> now. -- * its.el (its-get-mode-map): Just do assoc. -- (its-set-mode-map): Simplified. -- -- * its.el (its-get-indicator): Renamed from its-map-indicator. -- (its-set-indicator): Renamed from its-map-set-indicator. -- (its-get-start-state): Renamed from its-map-start. -- (its-new-state): Change the argunents. -- (its-map-set-start): Removed. -- (its-reset-start): New function. -- -- Remove old implemantation of translator. -- * its.el (its-resize, its-maps, its-actions, its-inputs, -- its-level, its-maxlevel, its-char-from-buff, its-interactive): -- Removed. -- (its-make-action, its-reset-maps, its-current-map, -- its-previous-map, its-level, its-enter-newlevel, its-reset-input, -- its-flush-input-before-point, its-peek-char, its-read-char): -- Removed. -- (its-push-char, its-ordinal-charp, its-delete-charp): Removed. -- (its-translate-region): Removed. -- (its-buff-s, its-buff-e): Removed. -- (its-state-terminalp): Removed. -- -- Remove selection of candidates in map, it's questionable to -- implement this feature with SYL. Might rethink in future. -- (its-make-menu-from-map-result, its-make-alist-from-map-result): -- Removed. -- (its-make-menu-from-map, its-make-menu-from-map*): Removed. -- (its-make-alist-from-map, its-make-alist-from-map*): Removed. -- (its-completing-read): Removed. -- (its-minibuffer-local-must-match-map, -- its-minibuffer-local-completion-map): Removed. -- (its-minibuffer-completion-help, car-string-lessp, -- its-temp-echo-area-contents): Removed. -- -- Implement SYL-based state machine. -- * its.el (its-input-buffer, its-barf-on-invalid-keyseq): New variables. -- (its-new-input-buffer): New function. -- (its-self-insert-char): New command. -- (its-initial-ISYL, its-make-DSYL, its-make-VSYL, -- its-input-input-buffer, its-input-input-buffer-sub, -- its-state-machine, its-state-machine-keyseq, -- its-buffer-delete-SYL, its-buffer-insert-SYL-list, -- its-get-next-state, its-get-ksa/b, its-get-keyseq, its-ksa-p, -- its-get-output): New function. -- (its-get-KAS): Removed. -- (its-get-state, its-get-action, its-set-action): Removed. -- (its-make-KAS, its-get-KAS): Removed. -- -- * its.el (its-defrule-sub): Merged into its-defrule. -- --1997-03-13 NIIBE Yutaka <gniibe@akebono.etl.go.jp> -- -- * its.el: (its-define-mode): Change the arguments. -- * its/zhuyin.el ("zhuyin"): Follow the changes of its-define-mode. -- * its/zenkaku.el ("zenkaku-downcase"): Likewise. -- * its/pinyin.el ("PinYin"): Likewise. -- * its/kata.el ("roma-kata"): Likewise. -- * its/kanainput.el ("kanainput"): Likewise. -- * its/hira.el ("roma-kana"): Likewise. -- * its/hankaku.el ("downcase"): Likewise. -- * its/hangul.el ("hangul"): Likewise. -- * its/han-kata.el ("roma-han-kata"): Likewise. -- -- * its.el (its-action-output, its-action-next, its-get-next-map, -- its-set-next-map): Removed. -- (its-make-next-state): New function. -- (its-make-state): Removed. -- -- * its.el (its-defrule-sub): Renamed from `its-defrule**'. -- -- * wnnfns.h: New file. Macros for WNN6 are defined here. -- * wnn6fns.c: New file. Moved from wnnfns.c for WNN6 specific -- functions. -- --1997-03-12 NIIBE Yutaka <gniibe@chroot.org> -- -- * wnnfns.c: cosmetic changes (indentation, commenting-out-style, -- and compare to Qnil, etc). -- Get rid of "register" qualifier. -- --1997-03-05 NIIBE Yutaka <gniibe@chroot.org> -- -- * its.el (its-define-mode): Change internal structure. Completely -- rewritten. -- (its-make-map): Function to make map. -- (its-make-state): New function. Make new state. -- (its-make-KAS): New function. Make Key-Action-State triad. -- (its-state-terminalp): New function. True when the state is -- terminal. -- (its-map-indicator, its-map-set-indicator,): Changed. -- (its-map-terminalp, its-map-incrementalp, -- its-map-set-incrementalp, its-map-alist, its-map-set-alist, -- its-map-action, its-map-set-action): Removed. -- -- (its-defrule-verbose): Deleted. Seems debug purpose variable. -- -- (its-make-map): Removed <state>. It was useless space eater. -- (its-map-indicator, its-map-set-indicator, its-map-alist, -- its-map-set-alist, its-map-action, its-map-set-action): Follow the -- change. -- (its-define-mode): Likewise. -- (its-defrule**): Change the argument. Delete STATE. -- (its-defrule): Likewise. -- (its-map-state, its-map-set-state): Removed. -- -- <topmap>: Changed the structure. Introduce <incrementalp>, which -- is t on hangul-map, zhuyin-map, and kanainput-map. -- (its-define-mode): Change the arguments. INDICATOR and RESET is -- always required. Add new argument INCREMENTALP. -- * its/kanainput.el ("kanainput"): Use new API of its-define-mode. -- * its/hangul.el ("hangul"): Likewise. -- * its/zhuyin.el ("zhuyin"): Likewise. -- * its.el (its-make-terminal-state-sofar): Removed. -- (its-default-make-terminal-state): Removed. -- (its-make-terminal-state): Removed -- (its-make-non-terminal-state): Removed. Not used. -- (its-map-incrementalp, its-map-set-incrementalp): New functions. -- --1997-03-04 NIIBE Yutaka <gniibe@chroot.org> -- -- * its.el (its-defrule-conditional, its-defrule-conditional*): -- Removed. Evaluating cond clause at runtime is stupid. Rules -- should be determined at compile time, not at run time. -- (its-get-action): Simplified. It's always standard. -- (its-make-terminal-state-sofar): Likewise. -- (its-make-action): Renamed from its-make-standard-action. -- (its-standard-actionp): Removed. No use. -- (its-translate-region): Simplified. -- -- (its-map-topmap-p): Removed. No use. -- -- (its-simple-actionp, its-collect-simple-action): Removed. No use. -- -- (its-insert-output-string, its-display-status-string): Removed. -- It seemd these variables is to debug ITS itself. -- (its-translate-region): Simplified. -- -- * its/hira.el (".", ",", "n", "nn"): Rules should be determined at -- compile time. -- * its/han-kata.el: Likewise. -- * its/kata.el: Likewise. -- -- * its.el (its-make-standard-action): Simplified. -- (its-make-standard-action): Remove alternative output. -- (its-standard-actionp): Simplified. -- (its-action-next): Simplified. -- (its-select-alternative-output-menu): Removed. Not used at all. -- (its-select-alternative-output): Ditto. -- -- * its/han-kata.el, its/zenkaku.el, its/kata.el, its/kanainput.el, -- its/hira.el, its/hankaku.el: Add (require cl). -- -- * its.el (its-enable-double-n-syntax, its-use-kuten-for-period, -- its-use-touten-for-comma, its-zenkaku-escape, its-hankaku-escape): -- Declare here. Add prefix `its-'. ): -- -- (its-defrule, its-defrule*): Remove MAP argument. -- Merged into its-defrule. -- --1997-03-04 NIIBE Yutaka <gniibe@akebono.etl.go.jp> -- -- * its.el (its-completing-input-menu): Removed. Not used. -- (its-completing-input): Ditto. -- (its-translate-region): Remove (null action) clause. It's identical -- to 't' case. -- -- (its-map-supers): Deleted. -- (its-map-set-supers): Ditto. -- (its-get-next-map-locally): Deleted. -- -- (its-define-mode): Remove supers. -- (its-make-map): Likewise. -- -- (its-simulate-input): sref -> aref. add char-bytes -> +1. -- (its-defrule**): Likewise. -- -- (its-flush-input-before-point): Delete useless save-excursion. -- (its-push-char): Likewise. -- (its-translate-region): Likewise. -- -- * its/zhuyin.el (its-make-terminal-state): -- * its/kanainput.el (its-make-terminal-state): -- * its/hangul.el (its-make-terminal-state): -- Use its-make-terminal-state-sofar. -- -- * its/kanainput.el (its-make-terminal-state-kanainput): Removed. -- -- * its.el (its-make-terminal-state-sofar): Renamed. -- (was: its-make-terminal-state-hangul) -- -- * its/han-kata.el (its-select-hankaku-katakana): Renamed. -- (was: its:select-hankaku-katakana). -- -- * its.el (its-map-topmap-p, its-map-supers, its-map-set-supers, -- its-map-terminalp, its-map-state, its-map-set-state, -- its-map-indicator, its-map-set-indicator, its-map-action, -- its-map-set-action, its-map-alist, its-map-set-alist, -- its-get-action, its-action-output, its-action-next, -- its-get-next-map, its-get-next-map-locally, its-set-next-map, -- its-collect-simple-action, its-read-current-its-string, -- its-make-map): Add prefix 'its-'. -- -- * its.el (its-defrule-select-mode-temporally): Deleted. -- (its-select-mode-temporally): Deleted. -- (its-select-previous-mode): Deleted. -- -- * its/hira.el ("q", "Q"): Removed. -- -- * its.el (its-defrule**): Don't call coerce-internal-string. -- (map-state-string): Removed. -- (its-default-make-standard-non-terminal-state): Don't call -- map-state-string. -- -- * egg.el (characterp, coerce-internal-string, coerce-string): Removed. -- -- * its.el (its-insert-char): Deleted. -- (its-internal-mode-alist): Removed. -- (its-set-mode-map, its-define-mode): Remove internalp. -- (its-set-mode-indicator): Removed. -- -- * egg-fence.el (egg-fence-self-insert-command): Add prefix 'egg-'. -- -- * its.el (fence-self-insert-command): Move to egg-fence.el. -- -- * egg-fence.el (egg-exit-fence-mode): Renamed (egg-fence-exit-mode). -- (egg-enter-fence-mode-and-self-insert): Deleted. -- -- * egg.el (egg-quit-egg-mode): Deleted. -- -- * egg-misc.el (egg-fence-toggle-egg-mode): Add prefix 'egg-'. -- (egg-fence-toggle-egg-mode): beep -> ding. -- (global-map): bind C-\ to egg-enter-fence-mode. -- --1997-03-02 NIIBE Yutaka <gniibe@chroot.org> -- -- * egg-henkan.el: New file. -- -- Use new API (egg-get-bunsetu-kanji, egg-get-bunsetu-yomi, -- egg-is-dai-bunsetu, bunsetu-suu, egg-hindo-update, -- egg-get-bunsetu-end). -- -- * wnn-egg.el: Move egg-henkan-* to egg-henkan.el. -- -- * wnn-egg.el (egg-startup-file-search-path): Remove current -- directory. -- (egg-open-wnn): Renamed from EGG-open-wnn. -- (bunsetu-suu): New function. -- (egg-get-bunsetu-kanji, egg-get-bunsetu-yomi): New function. -- (egg-is-dai-bunsetu): New function. -- (egg-hindo-update): New function. -- (egg-get-bunsetu-end): New function. -- -- (egg-henkan-region, egg-gyaku-henkan-region, -- egg-henkan-region-internal, egg-henkan-paragraph, -- egg-gyaku-henkan-paragraph, egg-henkan-sentence, -- egg-gyaku-henkan-sentence, egg-henkan-word, egg-gyaku-henkan-word, -- egg-henkan-insert-kouho, egg-henkan-kakutei, -- egg-henkan-kakutei-first-char, egg-henkan-kakutei-before-point, -- egg-sai-henkan, egg-henkan-goto-bunsetu, -- egg-henkan-forward-bunsetu, egg-henkan-backward-bunsetu, -- egg-henkan-first-bunsetu, egg-henkan-last-bunsetu, -- egg-henkan-hiragana, egg-henkan-katakana, egg-henkan-next-kouho, -- egg-henkan-next-kouho-dai, egg-henkan-next-kouho-sho, -- egg-henkan-previous-kouho, egg-henkan-previous-kouho-dai, -- egg-henkan-previous-kouho-sho, egg-henkan-goto-kouho, -- egg-henkan-bunsetu-chijime-dai, egg-henkan-bunsetu-chijime-sho, -- egg-henkan-bunsetu-nobasi-dai, egg-henkan-saishou-bunsetu, -- egg-henkan-saichou-bunsetu, egg-bunsetu-length-henko, -- egg-henkan-quit, egg-henkan-select-kouho, -- egg-henkan-select-kouho-dai, egg-henkan-select-kouho-sho, -- egg-henkan-word-off, egg-henkan-kakutei-and-self-insert, -- egg-henkan-mode-map, egg-henkan-mode-esc-prefix, -- egg-henkan-help-command, egg-henkan-inspect-bunsetu): -- Add prefix `egg-'. -- -- (egg-henkan-mode-in-use): Deleted. -- (set-egg-henkan-mode-format): Deleted. Don't need. -- -- (disconnect-wnn): Let it be normal function, instead of command. -- (close-wnn): Ditto. -- -- (set-jserver-host-name, set-kserver-host-name, -- set-cserver-host-name): Use defalias. -- -- (close-wnn): Take an argument of wnn-server-type. -- (wnn-egg-kill-emacs-function, set-wnn-host-name, -- set-cwnn-host-name, set-kwnn-host-name): Likewise. -- -- * egg.el (egg-global-map-backup): Deleted. -- (egg-local-map-backup): Deleted. -- (egg-insert-after-hook): it's global variable, nod buffer-local. -- -- * egg-fence.el (egg-henkan-fence-region, egg-enter-fence-mode, -- egg-fence-katakana, egg-fence-hiragana, egg-fence-hankaku, -- egg-fence-zenkaku, egg-fence-backward-char, -- egg-fence-forward-char, egg-fence-beginning-of-line, -- egg-fence-end-of-line, egg-fence-transpose-chars, -- egg-fence-delete-char, egg-fence-backward-delete-char, -- egg-fence-kill-line, egg-fence-exit-mode, egg-fence-cancel-input, -- egg-fence-mode-help-command): Add Prefix `egg-'. -- -- (egg-fence-mode-map): Remove binding to eval-expression (C-z). -- -- (egg-self-insert-non-undo-count): Removed. -- (egg-self-insert-command): Removed. -- -- (egg-fence-backward-char, egg-fence-forward-char, -- egg-fence-transpose-chars, egg-fence-delete-char, -- egg-fence-backward-delete-char): beep -> ding. -- wnn-egg.el (egg-henkan-select-kouho): Likewise. -- --1997-02-27 NIIBE Yutaka <gniibe@chroot.org> -- -- * wnn-egg.el (push-end, push-end-internal): Removed. -- -- * its.el (dolist): Removed. It's in CL package. -- (for-each, for-each*): Removed. -- -- * egg-keymap.el: Removed. I guess noone use it. -- -- * egg-jsymbol.el (*-alist): Declare by defconst. -- -- * egg-misc.el (toggle-egg-mode): Removed. -- -- * All files: Change the identifier XXX:YYYY --> XXX-YYYY, -- and *YYY* ---> YYY. -- -- * egg-fence.el (enter-fence-mode): Use new API for marker -- insertion `set-marker-insertion-type'. -- * its.el (its-*buff-e*): Likewise. -- -- * egg-jsymbol.el: lc-jp --> (charset-id 'japanese-jisx0208) -- lc-jp2 --> (charset-id 'japanese-jisx0212). -- --1997-02-26 NIIBE Yutaka <gniibe@akebono.etl.go.jp> -- -- * egg-fence.el (egg:fence-mode-map): Renamed from fence-mode-map. -- (egg:fence-mode-esc-prefix): Renamed from egg:fence-mode-esc-map. -- (henkan-fence-region-or-single-space): Removed. -- -- * egg-misc.el (toggle-egg-mode): mc-flag -- -> enable-multibyte-characters. -- -- * its.el (read-current-its-string): New function. Moved from -- wnn-egg-misc.el. -- (In meny functions): beep --> ding. -- -- * egg-misc.el (read-hiragana-string): Removed. -- (read-kanji-string): Removed. -- (egg:special-symbol-input): Renamed from special-symbol-input. -- (egg:special-symbol-input-point): Renamed from -- special-symbol-input-point. -- (si:*global-map*): Remeved. -- Removed 'Changes on Global map'. -- (its-mode-map): Renamed from mule-keymap. -- -- * wnn-egg.el (henkan-region-internal): Use new API for undo. -- (henkan-kakutei): Likewise. -- (henkan-kakutei-first-char): Likewise. -- (henkan-kakutei-before-point): Likewise. -- (sai-henkan): Likewise. -- * egg.el (egg:quit-egg-mode): Likewise. -- -- * egg-fence.el (egg:*fence-open*, egg:*fence-close*, -- egg:*fence-face*): Let them be declared by defvar. -- (egg:*fence-open-in-cont*, egg:*fence-close-in-cont*, -- egg:*fence-face-in-cont*): Likewise. -- -- (set-egg-fence-mode-format): Removed. Useless. Don't need to be -- interactive. -- (set-egg-fence-mode-format-in-cont): Removed. -- (egg:*face-alist*): Removed. -- -- * wnn-egg-misc.el (its:select-mode, its:select-mode-from-menu, -- its:next-mode, its:previous-mode): -- Removed (Merged into its.el). -- -- * its.el (its:select-mode, its:select-mode-from-menu, -- its:next-mode, its:previous-mode): Call hook of -- `its:select-mode-hook'. -- -- * diced.el: Removed. This depends on wnn. Functions are moved to -- wnn-egg-dict.el. -- -- * wnn-egg-dict.el (remove-regexp-in-string): Removed. -- (toroku-region): Don't call `remove-regexp-in-string'. Removing -- invalid sequence (TAB?) automatically is not good idea. It should -- notify user. Currently, just don't remove. -- -- * busyu.el (busyu-table): defconst instead of defvar. -- (busyu-kaku-alist): defconst instead of defvar. -- -- * its.el (egg:member): Removed. Not used. -- -- * wnn-egg-msg.el (*egg-message-alist*): Include asking string in -- register-notify and remove-notify. Should also change Korean and -- Chinese. -- -- * egg.el: Removed "Tamago Notification System". -- It is useless, as we have *Messages* buffer in GNU Emacs 19. -- -- * diced.el (diced-execute): Don't use `notify' but `message'. -- (set-dict-comment): Likewise. -- * its.el (its-defrule**): Likewise. -- * wnn-egg-dict.el (egg:toroku-word): Likewise. -- * wnn-egg-msg.el (egg:error): Likewise. -- * wnn-egg.el (set-wnn-param): Likewise. -- (EGG:open-wnn): Likewise. -- (close-wnn): Likewise. -- (henkan-word-off): Likewise. -- (henkan-inspect-bunsetu): Likewise. -- -- * diced.el (diced-execute): Don't use `notify-yes-or-no-p' but use -- plain `yes-or-no-p' and format. -- * wnn-egg-dict.el (egg:toroku-word): Likewise. -- -- * egg.el (notify-yes-or-no-p-internal): IIDESUKA is not good. -- it should get the message through egg:get-msg. Currently, use -- "OK?". -- (notify-y-or-n-p-internal): Likewise. -- -- * wnn-egg.el: Split into wnn-egg-dict.el, wnn-egg-misc.el, and -- wnn-egg-msg.el. -- (many functions): remove commented out line of -- (open-wnn-if-disconnected). -- -- * egg.el: Split into egg.el, egg-fence.el, egg-misc.el, -- jis-input.el, and modeline.el. -- -- * wnn-egg.el (egg-default-startup-file): change to eggrc-wnn from -- eggrc. -- (henkan-region-internal): Use new API for marker insertion -- `set-marker-insertion-type'. -- --1997-02-13 NIIBE Yutaka <gniibe@akebono.etl.go.jp> -- -- * menu.el (menu:select-from-menu): Rewritten. -Index: ChangeLog.1997-1998 -=================================================================== -RCS file: ChangeLog.1997-1998 -diff -N ChangeLog.1997-1998 ---- /dev/null 1 Jan 1970 00:00:00 -0000 -+++ ChangeLog.1997-1998 25 Aug 2002 23:53:10 -0000 1.1 -@@ -0,0 +1,2311 @@ -+1998-07-12 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * egg-mlh.el (mlh-space-bar-backward-henkan): Don't test against -+ egg-conversion-backend-alist. -+ -+ * egg/wnn.el (wnn-fini-lang): Reneme from wnn-fini. -+ (wnn-fini): New implementation calling wnn-fini-lang. -+ -+ (wnn-close): Call wnn-fini-lang. -+ (wnn-dictionary-save): Ditto. -+ -+ * egg/canna.el (canna-fini): Delete LANG argument. -+ * egg/sj3.el (sj3-fini): Ditto. -+ -+ * egg-cnv.el (egg-set-conversion-backend): Removed. -+ -+ * egg/sj3.el (sj3-start-conversion): Signal error on non-supported -+ language. -+ * egg/canna.el (canna-start-conversion): Likewise. -+ * egg/wnn.el (wnn-start-conversion): Likewise. -+ -+ * egg-cnv.el (egg-convert-region): Add handler for -+ lang-not-supported. -+ -+ * egg/wnn.el (egg-activate-wnn): load wnnrpc here conditionally. -+ * egg/sj3.el: Likewise. -+ * egg/canna.el: Likewise. -+ -+ * egg.el (egg-support-languages, egg-set-support-languages): Removed. -+ (egg-mode): Don't call egg-set-conversion-backend. -+ * egg/{canna.el, wnn.el, sj3.el}: Don't call egg-support-languages. -+ -+ * egg-cnv.el (egg-set-current-backend): Removed. -+ (egg-initialize-backend, egg-start-conversion, -+ egg-start-reverse-conversion): Don't call egg-set-current-backend. -+ (egg-conversion-backend-null): Rename from *-other-languages. -+ (egg-conversion-backend-alist): Removed. -+ (egg-conversion-backend): Not buffer local. -+ (egg-finalize-backend-alist): Removed. -+ -+1998-07-10 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * egg-cnv.el (egg-start-conversion-failure-hook): New Variable. -+ (egg-start-conversion-failure-fallback): New Function. -+ (egg-convert-region): Handle error and hook on failure. -+ -+ * egg/sj3.el (sj3-open): Remove bogus setq-s of sj3-sys-dict-list, -+ sj3-user-dict-list. -+ -+ * egg-mlh.el (mlh-space-bar-backward-henkan): Don't emit message -+ "converting...", as it may flush out error message. -+ -+ * egg/sj3rpc.el ("egg-com", "egg/sj3"): Require on compilation. -+ (sj3rpc-open): Failure when version is different. -+ -+1998-07-03 KATAYAMA Yoshio <kate@pfu.co.jp> -+ -+ * its/erpin.el, its/hangul.el, its/hankata.el, its/hira.el, -+ its/jeonkak.el, its/kata.el, its/pinyin.el, its/quanjiao.el, -+ its/thai.el, its/zenkaku.el: Updated using new its-*. -+ -+ * its.el (define-its-state-machine): Rewritten. -+ (define-its-compiled-map): Deleted. -+ (define-its-state-machine-append): Rewritten. -+ (its-defrule): Rewritten. -+ (its-defrule*): Rewritten. -+ (its-parent-states): New Variable. -+ (its-goto-state): Remove 2nd optional argument INITIAL-STATE. -+ (its-set-interim-terminal-state): New Function. -+ (its-make-next-state): Remove 2nd argument KEYSEQ. -+ -+1998-07-01 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * egg-mlh.el (mlh-hira-to-kata): Removed. Doesn't work any more. -+ (mlh-katakana): Use japanese-katakana-region. -+ -+ * egg-cnv.el (egg-conversion-map): Add again mapping for "/". -+ -+1998-06-27 KATAYAMA Yoshio <kate@pfu.co.jp> -+ -+ * egg-cnv.el (egg-abort-conversion): Bug fix. -+ -+1998-06-27 NIIBE Yutaka <gniibe@akebono> -+ -+ * egg/wnn.el (wnn-dictionary-specification-list): Don' specify -+ for gerodic/g-jinmei. -+ Suggested by SAKAI Kiyotaka <ksakai@netwk.ntt-at.co.jp>. -+ -+1998-06-26 KATAYAMA Yoshio <kate@pfu.co.jp> -+ -+ * its.el (its-cancel-input): Bug fix. -+ -+1998-06-26 SAKAI Kiyotaka <ksakai@netwk.ntt-at.co.jp> -+ -+ * egg-cnv.el (egg-conversion-mode, egg-help-command): New -+ functions for help string. -+ * its.el (its-mode, its-mode-help-command): Likewise. -+ -+1998-06-26 KATAYAMA Yoshio <kate@pfu.co.jp> -+ -+ * egg-cnv.el (egg-convert-region): Bug fix. -+ * egg.el (egg-default-language): Don't use string. -+ -+ * its/hankata.el (its-han-kata-enable-double-n, and others): -+ Variable name change (-han-) to distingush kata.el. -+ -+ * its/erpin.el (its-erpin-tw-enable-quanjioao-alphabet, -+ its-erpin-cn-enable-quanjioao-alphabet): -+ See its-enable-fullwidth-alphabet. -+ * its/kata.el (its-kata-enable-zenkaku-alphabet): Likewise. -+ * its/pinyin.el (its-pinyin-cn-enable-quanjioao-alphabet): Likewise. -+ * its/zenkaku.el (its-zenkaku-down-map): Likewise. -+ -+ * its/erpin.el (its-erpin-tw-map): Bug fix for "\\", "{", "}", and -+ "/". -+ * its/pinyin.el (its-pinyin-cn-map): Ditto. -+ * its/quanjiao.el (its-quanjiao-down-tw-map): Ditto. -+ * its/zhuyin.el (its-zhuyin-cn-enable-quanjioao-alphabet): Ditto. -+ -+ * its/hira.el (its-hira-enable-zenkaku-alphabet): Follow changes -+ of its.el. -+ * its/ascii.el (its-up-map, its-down-map): Ditto. -+ * its/jeonkak.el (its-jeonkak-up-map): Ditto. -+ -+ * its/hira.el (its-hira-enable-zenkaku-alphabet): -+ See its-enable-fullwidth-alphabet. -+ -+ * egg/wnn.el (wnn-save-dictionaries): Rewritten. -+ -+ * egg/canna.el (egg-edep): Required. -+ (canna-support-languages): Use symbol. -+ * egg/sj3.el (egg-edep): Likewise. -+ -+ * egg/wnn.el (egg-edep): Likewise. -+ * egg/wnnrpc.el: Use symbol. -+ -+ * menudiag.el (menudiag-mode-map): Bug fix for boundary conditions. -+ (menudiag-make-selection-list): Bug fix in case of many items. -+ -+ (menudiag-forward-item, menudiag-backward-item, -+ menudiag-goto-line): Change so that it wraps. -+ -+ * its.el (egg-edep): Required. -+ (its-keydef): Require unconditioanlly. -+ (its-mode-map): Don't call its-define-select-keys here. -+ (its-mode-map): Use of symbol as keymap. -+ (its-fence-invisible): New variable. -+ (its-put-cursor): Don't call its-define-select-keys. -+ (its-setup-fence-mode): invisible handling and its-define-select-keys. -+ (its-keyseq-acceptable-p): if (CDR SYL) is number, return NIL. -+ (define-its-state-machine): Introduce its-temporaly-map. -+ (define-its-state-machine-append): Likewise. -+ -+ (its-goto-state): Use symbol as keymap, not directly. -+ -+ (its-set-part-1,its-set-part-2): New function. -+ (its-delete-backward-within-SYL): Conditionalize. -+ -+ * egg.el (egg-edep): Required. -+ (egg-mode): Add remove-hook call. -+ Supply NIL as first argument to egg-set-conversion-backend. -+ make-local-hook for input-method-activate-hook. -+ (egg-set-face): Add optional argument OBJECT. -+ (egg-redraw-face): Bind inhibit-point-motion-hooks. -+ -+ * egg.el (set-buffer-multibyte): Move to egg-edep.el. -+ -+ * egg-mlh.el (mlh-space-bar-backward-henkan): Use assq. -+ -+ * egg-com.el (egg-zhuyin-syllable): compatibility change. -+ (encode-fixed-euc-china-region): Removed maxlen. -+ -+ Really Needed? -- gN. -+ * egg-com.el (egg-pinyin-syllable): Check exact match. -+ (egg-zhuyin-syllable): Likewise. -+ -+ * egg-cnv.el (egg-edep): Required. -+ (its-keydef): Not required. -+ (egg-conversion-map): Don't call its-define-select-keys here. -+ Fset it to use symbol instead of the map directly. -+ -+ (egg-get-bunsetsu-info): Add new optional argument for getting -+ property. -+ (egg-start-conversion-other-languages): set egg-conversion-backend. -+ (egg-set-current-backend): Use assq instead of assoc. -+ (egg-get-conversion-face): Likewise. -+ (egg-conversion-invisible): New variable. -+ (egg-convert-region): Change for open/close delimiter. -+ (egg-chinese-sisheng-regexp): New function. -+ (egg-separate-languages): Use egg-chinese-sisheng-regexp, -+ use symbol for language specifier (instead of string). -+ -+ (egg-charset-to-language): Use symbol for language specifier -+ (instead of string). -+ (egg-next-chinese-lang): Likewise. -+ -+ (egg-next-part-lang): Change the arguments. -+ -+ (egg-make-bunsetsu): New function changing egg-insert-bunsetsu. -+ -+ (egg-separate-characters): compatibility changes. -+ -+ (egg-conversion-wrap-select): New Variable. -+ -+ (egg-next-candidate): Can wrap around. -+ -+ (egg-decide-before-point): Rewritten. -+ (egg-abort-conversion): Back to previous one. -+ (egg-select-candidate): Use egg-make-bunsetsu. -+ -+ * egg-edep.el: New File for handling differences between Emacs version. -+ * its/thai.el: New File. -+ * its/hangul.el: Updated. -+ -+1998-06-26 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * Makefile (install): Don't touch .emacs and leim-list.el -+ directly. User should do it by her hand. -+ Reported by SAKAI Kiyotaka <ksakai@netwk.ntt-at.co.jp> -+ -+1998-06-25 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * egg/canna.el (canna-dictionary-specification): "user" instead of -+ ("user"). Should chnage canna-filename later. -+ Reported by Akio Morita <amorita@bird.scphys.kyoto-u.ac.jp>. -+ -+1998-04-02 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * egg-com.el (comm-unpack-u16-string): Call string-as-multibyte. -+ (comm-unpack-mb-string): Likewise. -+ -+ * egg.el (set-buffer-multibyte): Function for Emacs 20.2. -+ -+ * egg/wnn.el (wnn-open): Call set-buffer-multibyte. -+ * egg/sj3.el (sj3-open): Ditto. -+ * egg/canna.el (canna-open): Ditto. -+ -+1998-04-02 KATAYAMA Yoshio <kate@pfu.co.jp> -+ -+ Implement hilight. -+ * egg.el (egg-mark-list, egg-suppress-marking): New Variables. -+ (egg-set-face, egg-mark-modification, egg-redraw-face): New -+ Functions. -+ * its.el (its-buffer-ins/del-SYL): Call egg-set-face. -+ (its-setup-yanked-portion): Likewise. -+ * egg-cnv.el (egg-insert-bunsetsu): Call egg-set-face. -+ -+ * egg.el (egg-mode): set default backend. -+ * egg-mlh.el (mlh-space-bar-backward-henkan): activate input -+ method. -+ -+1998-04-02 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * egg-cnv.el (egg-decide-bunsetsu): Undo changes of 03-16. -+ (egg-abort-conversion): Call egg-end-conversion. -+ (egg-decide-before-point): Call egg-end-conversion widh ABORT=NIL. -+ -+1998-03-16 NIIBE Yutaka <gniibe@chroot.org> -+ -+ CANNA Support. -+ * egg/canna.el, egg/cannarpc.el: New file. -+ * Makefile (SRCS): Added. -+ -+ * egg-cnv.el (egg-end-conversion): Add argument ABORT. -+ -+ * egg/wnn.el (wnn-end-conversion): Follow the change of -+ EGG-END-CONVERSION. -+ * egg/sj3.el (sj3-end-conversion): Likewise. -+ -+1998-03-15 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * Makefile: Add dependencies for its-keydef.elc. -+ * egg/sj3rpc.el (sj3-open): Don't support list of hosts. -+ * its.el (its-exit-mode, its-kick-convert-region): Bug fix. Call -+ its-input-end and its-put-cursor. -+ (its-exit-mode-off-input-method): Removed. -+ -+1998-03-14 KATAYAMA Yoshio <kate@pfu.co.jp> -+ -+ * docomp.el (its-keydef): Undo the changes of 03-09. its.el -+ is fixed. -+ -+ * egg-cnv.el (egg-current-language): New valiable. -+ (egg-bunsetsu-info): Separate bunsetsu-info and lunguage. -+ (egg-conversion-backend-other-languages -+ egg-init-other-languages -+ egg-start-conversion-other-languages -+ egg-get-bunsetsu-converted-other-languages -+ egg-get-bunsetsu-source-other-languages -+ egg-list-candidates-other-languages -+ egg-get-number-of-candidates-other-languages -+ egg-get-current-candidate-number-other-languages -+ egg-get-all-candidates-other-languages -+ egg-decide-candidate-other-languages -+ egg-change-bunsetsu-length-other-languages -+ egg-end-conversion-other-languages -+ egg-fini-other-languages): New valiable and functions for -+ handling unknown language. -+ (egg-set-current-backend): Set egg-conversion-backend-other-languages -+ when backend for specified language isn't found. -+ (egg-start-reverse-conversion): New function for reverse conversion. -+ (egg-set-conversion-backend-internal): Removed. -+ (egg-set-conversion-backend): Args are changed. -+ (egg-get-conversion-face): New function for different face for -+ every language. -+ (egg-convert-region): Make converting text read-only. Handle -+ unknown laguages and backend opening error. Rename its-lang to -+ egg-lang. -+ (egg-separate-languages): Argument use-context is added to -+ utilize context when called by its-yank. Rename its-lang to -+ egg-lang Improve speed. -+ (egg-charset-to-language): Renamed from egg-char-to-language. -+ (egg-next-part-lang egg-next-chinese-lang): Rename its-lang to -+ egg-lang. -+ (egg-conversion-map): Unbind C-\ and /. Bind C-X RET XXX to -+ its-select-XXX. -+ (egg-insert-bunsetsu): Make conversion text read-only. Separate -+ bunsetsu-info and conversion-backend. -+ (egg-insert-bunsetsu-list): Remove redundant variables. -+ (egg-beginning-of-conversion-buffer): New function. -+ (egg-end-of-conversion-buffer): New function. -+ (egg-enlarge-bunsetsu): Handle read-only text. -+ (egg-next-candidate): Handle read-only text. Bug on no candidate -+ bunsetsu is fiexed. -+ (egg-reconvert-bunsetsu-internal egg-reverse-convert-bunsetu -+ egg-reconvert-bunsetsu): New functions for reverse conversion and -+ re-conversion. -+ (egg-decide-before-point egg-abort-conversion): Handle read-only -+ text. Bug on pinyin and zhuyin mixed conversion is fixed. Allow -+ long fence. -+ (egg-select-candidate): Handle read-only text. Bug on no candidate -+ bunsetsu is fiexed. -+ -+ * egg-com.el: Change coding-system from internal to iso-2022-7bit. -+ -+ * egg-mlh.el (mlh-space-bar-backward-henkan): Disable temporally -+ mode selection. -+ -+ * egg.el (egg-mode): Set cureent lang to conversion backend. -+ (egg-set-mode-line-title): Renamed to its-set-mode-line-title -+ and moved to its.el. -+ (egg-check-language): Removed. -+ -+ * egg/sj3.el (sj3-server-port): Change from defconst to defver for -+ user customization. -+ (sj3-open sj3-get-environment): Try opening alternate servers. -+ (sj3-start-conversion): Make second argument LANGUAGE optional. -+ (egg-activate-sj3): Parameters of egg-set-conversion-backend is -+ changed. -+ -+ * egg/sj3rpc.el (sj3rpc-error-message): New constant (Not yet -+ completed). -+ (sj3rpc-get-error-message): Check range of errno to avoid -+ args-out-ou-range error. -+ -+ * egg/wnn.el (wnn-jport wnn-cport wnn-tport wnn-kport): New -+ variables for user customization. -+ (wnn-server-info-list wnn-server-port): Type of fourth element -+ is changed from integer to symbol. -+ (wnn-start-reverse-conversion): New function. -+ (wnn-open wnn-get-environment): Try opening alternate servers. -+ (egg-activate-wnn): Parameters of egg-set-conversion-backend is -+ changed. -+ -+ * its-keydef.el (its-current-language): Moved to its.el. -+ (its-make-select-func): Remove language check (egg-check-language). -+ Add temporally mode selection. -+ (its-do-list-make-select-func): Binding of zhuyin-tw is changed to -+ `C' because conflicting zenkaku-upcase. -+ -+ * its.el (its-current-select-func its-previous-select-func): New -+ variables for temporally mode selection. -+ (its-keydef requiring): Use eval-when to avoid error on using -+ compiled file. -+ (its-get-fence-face): New function for different face for -+ every language. -+ (its-put-cursor its-setup-fence-mode): Make fence read-only. -+ (its-start): Remove force-mode-line-update calling. -+ (its-restart): Add optional argument set-prop. -+ (its-self-insert-char its-backward-SYL its-forward-SYL -+ its-delete-SYL its-delete-backward-SYL its-exit-mode -+ its-delete-backward-SYL-by-keystroke its-transpose-chars -+ its-kick-convert-region its-end-of-input-buffer): Handle read-only -+ fence. -+ (its-state-machine): Accept special actions to handle temporally -+ mode selection. -+ (its-buffer-ins/del-SYL its-ins/del-SYL-batch): Handle read-only -+ fence. Property its-lang is renamed to egg-lang. -+ (its-get-next-state its-make-next-state): Add type check to avoid -+ wrong-type-argument error. -+ (its-keyseq-acceptable-p): Save informations of its-map to avoid -+ confusing on temporally mode selection. -+ (its-defrule-select-mode-temporally): New macro. -+ (its-kill-line its-cancel-input): New function. -+ (its-delete-backward-within-SYL): Bind its-current-language to -+ avoid confusing when undo is done beyond language change. -+ (its-yank its-yank-pop its-setup-yanked-portion): New functions. -+ (its-exit-mode-internal): Reset temporally selected mode. Allow -+ long fence. -+ (its-kick-convert-region-or-self-insert): New function. -+ (its-translate-region): Remove text properties completly. -+ (its-set-mode-line-title): Moved from egg.el and renamed. -+ (its-select-mode-temporally its-select-previous-mode): New functions -+ for temporally mode selection. -+ -+ * leim-list-egg.el: Secondary argument for egg-activate-sj3/wnn -+ is no longer needed. -+ -+ * its/hira.el: Remove the rule for "~" which destroies the rules -+ with its-hankaku-escape. -+ -+ * its/pinyin.el: Implement its-pinyin-cn-enable-quanjioao-alphabet -+ and its-pinyin-tw-enable-quanjioao-alphabet. -+ -+ * its/hangul.el: Implement its-hangul-enable-quanjioao-alphabet. -+ -+ * its/ascii.el: New file. -+ * its/erpin.el: New file. -+ * its/hankata.el: New file. -+ * its/jeonkak.el: New file. -+ * its/kata.el: New file. -+ * its/quanjiao.el: New file. -+ * its/zenkaku.el: New file. -+ * its/zhuyin.el: New file. -+ -+1998-03-14 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * egg/sj3rpc.el (sj3rpc-close): New function. -+ -+ * egg/sj3.el (sj3bunsetsu-[sg]et-kugiri-changed): Rename from -+ sj3bunsetsu-get-stdy-down. -+ (sj3-end-conversion): Implement CLSTDY. -+ (sj3-fini): Implemented. -+ -+1998-03-10 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * egg/sj3.el (sj3-end-conversion): Implement bunsetsu study. -+ CLSTDY not yet. -+ -+ * egg/sj3rpc.el (sj3rpc-get-bunsetsu-candidates-sub): Bug fix. -+ Always add hiragana and katakana candidates. -+ (sj3-const: CLSTDY, CLSTDY_EUC): Renamed from END and END_EUC -+ according to "sj3cmd.h" of SJ3 distribution. -+ (sj3rpc-bunsetsu-stdy, sj3rpc-kugiri-stdy): New functions. -+ -+ * egg-com.el (comm-format-u8-vector): New substitution. -+ (comm-format): New format 'v'. -+ -+1998-03-09 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * docomp.el (its-keydef): Require its-keydef when compile. -+ Not so good. Just a work around. -+ (its-mode-map): Undo the changes of 03-04. -+ -+1998-03-09 KATAYAMA Yoshio <kate@pfu.co.jp> -+ -+ * its.el (its-translate-region): Make it command. -+ (its-translate-region-internal): Make it function. -+ -+1998-03-04 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * its.el (its-define-select-keys of its-mode-map): Comment it out. -+ * its-keydef.el (its-make-select-func): Add eval-when to compile this. -+ -+ * egg-cnv.el (egg-decide-bunsetsu): Deleted. -+ * its.el (its-restart): Call its-setup-fence-mode with no argument. -+ -+ * its.el (its-keyseq-acceptable-p): Bug fix. -+ -+1998-03-03 KATAYAMA Yoshio <kate@pfu.co.jp> -+ -+ *its.el (its-get-keyseq-syl): Compensate when DSYL has back. -+ (its-DSYL-with-back-p): New function. Return t when DSYL has back. -+ (its-concrete-DSYL-p): New function. Return t when DSYL is cons -+ form which means input is not continued after DSYL was created. -+ (its-make-concrete-DSYL): New function. -+ (its-self-insert-char): Make DSYL to ``concrete-DSYL'' if cursor -+ is t which means input is not continued. -+ (its-input): Test input key is whether acceptable or not when -+ its-barf-on-invalid-keyseq is non-nil. -+ (its-input-to-vsyl): Set cursor status, not just returning it. -+ (its-state-machine its-state-machine-keyseq): Make sure to issue -+ ``DSYL-with-back'' when syllable is decided by the rule with back. -+ ``test mode'' is added. -+ (its-keyseq-acceptable-p): New function. -+ (its-forward-SYL): The args order of put-text-property was wrong. -+ (its-delete-backward-SYL-by-keystroke): New function. -+ (its-delete-backward-within-SYL): ``delete-by-keystroke'' mode -+ did not work when syllable is decided by the rule with back. -+ Deletion limit is extended to outside of SYL (meaning of -+ ``within-SYL'' is changed to ``deletion starts within SYL). -+ (its-transpose-chars): Fixed up. -+ (its-in-fence-p): Confuse at openning fence. -+ -+1998-02-25 KATAYAMA Yoshio <kate@pfu.co.jp> -+ -+ * its.el (its-put-cursor): Enable its-map change in fence mode. -+ -+ * its-keydef.el (its-make-select-func): Same as above. -+ -+1998-02-25 KATAYAMA Yoshio <kate@pfu.co.jp> -+ -+ * its.el (its-set-cursor-status): New function. -+ (its-setup-fence-mode): New function. -+ (its-insert-fence-open its-insert-fence-close): Deleted. -+ (its-start, its-restart, its-self-insert-char): Avoid fence -+ destruction on its-barf. -+ (its-input-to-vsyl, its-state-machine, its-state-machine-keyseq, -+ its-buffer-ins/del-SYL, its-ins/del-SYL-batch): Update cursor -+ status on updating syllables. -+ (its-input-error): New function to realize doc-string of -+ its-barf-on-invalid-keyseq. -+ -+ * egg.el (egg-mode): Don't use egg-mode-line-title which cause -+ wrong-type-argument at isearch. Bind its-select-XXX to key only -+ when modefull is select. -+ -+ * egg-mlh.el (mlh-hangul, mlh-zhongwen, mlh-zhongwen-tw): Same -+ as above. -+ -+ * its-keydef.el (its-make-select-func): Same as above. -+ -+ * leim-list-egg.el: Same as above. -+ -+1998-02-24 KATAYAMA Yoshio <kate@pfu.co.jp> -+ -+ * its.el (its-state-machine-keyseq): Remove binding -+ its-barf-on-invalid-keyseq to nil. -+ (its-ins/del-SYL-batch): Avoide altering its-XXX-map. -+ (its-translate-region-internal): its-translation-result's data -+ type is changed to string. -+ -+ * egg-cnv.el (egg-convert-region): Gather contiguous same -+ language part. -+ -+1998-02-21 KATAYAMA Yoshio <kate@pfu.co.jp> -+ -+ * its.el (its-ins/del-SYL-batch): Set its-lang property. -+ (its-translate-region): Remove its-lang property from translated -+ text. -+ (its-translate-region-internal): New function. Retain its-lang -+ property on translated text. -+ -+ * egg-mlh.el (mlh-space-bar-backward-henkan): Force base language -+ to Japanese. -+ -+ (mlh-hangul mlh-zhongwen-tw mlh-zhongwen): New functions for -+ conversion functions. -+ -+1998-02-20 KATAYAMA Yoshio <kate@pfu.co.jp> -+ -+ * its.el (its-restart): New function. -+ (its-insert-fence-open, its-insert-fence-close): New function. -+ (its-start): Rewritten. Use its-insert-fence-open and -+ its-insert-fence-close. -+ (its-exit-mode-internal): Leave its-syl property. -+ (its-exit-mode-internal): Delete the property in this case. -+ (its-keydef): Require it. -+ -+ * its-keydef.el: Provide the feature. -+ -+ * egg-cnv.el (egg-convert-region): Add egg-source property to save -+ the source string. -+ (egg-conversion-map, \C-c): New keybind. -+ (egg-get-previous-bunsetsu): Bug fix. -+ (egg-decide-before-point): New implementation. -+ (egg-exit-conversion): Use gg-decide-before-point. -+ (egg-abort-conversion): New command. -+ -+1998-02-20 NIIBE Yutaka <gniibe@akebono> -+ -+ * Makefile (SRCS), Egg.prj: Remove euc-china.el. -+ * egg-com.el: Include egg-china.el. -+ * egg-china.el: Removed. -+ -+1998-02-18 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * Egg.prj: Use PRCS. -+ -+ * Makefile (SRCS): Rename euc-cn.el to euc-china.el -+ * egg-mlh.el (mlh-space-bar-backward-henkan): Put "Japanese" -+ language property for text. -+ -+1998-02-18 KATAYAMA Yoshio <kate@pfu.co.jp> -+ -+ * euc-china.el: Rename from euc-cn.el. Update. -+ -+ * egg.el (egg-mode): Bug fix. Call get-exit-conversion. -+ * leim-list-egg.el ("japanese-egg-wnn", "japanese-egg-sj3"): -+ Use new definition (with language argument). -+ * egg/wnn.el (egg-activate-wnn): -+ * egg/sj3.el (egg-activate-sj3): -+ -+1998-02-17 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * Makefile (SRCS): Add its/pinyin.el, its/hangul.el and -+ its-keydef.el. -+ -+ * egg-com.el (ccl-encode-fixed-euc-kr): Fixed the name. -+ -+1998-02-17 KATAYAMA Yoshio <kate@pfu.co.jp> -+ -+ * its-keydef.el: New file. -+ * its/hangul.el, its/pinyin.el: New version. -+ -+ * egg/wnnrpc.el (load-library "egg/wnn"): Comment it out. -+ (wnnrpc-get-error-message): Support multiple languages. -+ (wnnrpc-call-with-environment): Chinese support. -+ -+ * egg/wnn.el (wnn-support-languages): New const. -+ (<env>): Add <server-type>, <dic-set>, and <rev-flag>. -+ (wnnenv-get-server-type, wnnenv-get-dictionary-set, -+ wnnenv-get-reverse-flag): New substs. -+ (wnnenv-get-daibunsetsu-info, wnnenv-set-daibunsetsu-info): Changed. -+ (wnn-server): Removed. -+ (wnn-jserver, wnn-cserver, wnn-tserver, wnn-kserver): New custom. -+ (wnn-server-info-list): New const. -+ (wnn-get-server-info): New function. -+ (wnn-server-locale, wnn-server-type, wnn-server-port, -+ wnn-server-stream-name, wnn-server-buffer-name, -+ wnn-server-coding-system, wnn-server-hostname): New substs. -+ (wnn-start-conversion): Add new arguments. -+ (wnn-uniq-candidates): Initialize 'n'. -+ (wnn-change-bunsetsu-length): Simplefied. -+ (wnn-change-bunsetsu-length): Call renbunsetsu-conversion, -+ instead. -+ (wnn-fini, wnn-comm-sentinel): back to 971009 version. -+ (wnn-jserver-port): Removed. -+ (wnn-open): Argument change. Support languages. -+ -+ (wnn-dictionary-specification): Removed. -+ (wnn-dictionary-specification-list): New variable. -+ (wnn-get-dic-spec, wnn-dic-spec-dic-set, wnn-dic-spec-reverse, -+ wnn-dic-spec-name, wnn-dic-spec-param, wnn-dic-spec-fuzokugo, -+ wnn-dic-spec-dic-list): New substs. -+ (wnn-get-environment): Rewrite. -+ (wnn-create-environment): Rewrite. -+ -+ (egg-activate-wnn): Support languages. -+ -+ * egg/sj3rpc.el (load-library "egg/sj3"): Don't load it. -+ -+ * egg/sj3.el (sj3-support-languages): New const. -+ (sj3-start-conversion, sj3-fini): Add lang. -+ (sj3-change-bunsetsu-length): Simplified. -+ (egg-activate-sj3): Support language. -+ -+ * its/hira.el (its/hira): Packagefy. (?) -+ (its-hira-map): Add language spec. Move here the escape keys -+ ("Z", "~"). -+ -+ * leim-list-egg.el ("chinese-gb-egg-wnn-py", "chinese-gb-egg-wnn-zy", -+ "chinese-cns-egg-wnn-py", "chinese-cns-egg-wnn-zy", -+ "korean-egg-wnn"): New input methods. -+ -+ * its.el (its-current-language): New Local Variables. -+ <map>: Change the structure. Add <language>. -+ (its-get-language): New substitution. -+ (its-set-indicator): Removed. -+ (its-get-indicator, its-get-start-state): New implementation. -+ (its-reset-start-state): Removed. -+ (its-buffer-ins/del-SYL): Add new properties, its-map and its-lang. -+ (its-exit-mode-internal): Change for its-map and its-lang. -+ (its-in-fence-p): New function. -+ -+ ("its-keydef.el"): Load it. -+ -+ (its-select-map-menu): Removed. -+ (its-select-map-from-menu): Removed. -+ (its-select-hiragana, its-select-katakana, its-select-downcase, -+ its-select-upcase, its-select-zenkaku-downcase, -+ its-select-zenkaku-upcase, its-select-map, its-zenkaku-escape, -+ its-hankaku-escape): Removed. -+ -+ (define-its-state-machine): Rewrite. -+ (define-its-compiled-map): New macro. -+ (its-define-state-machine): Removed. -+ -+ (its-forward-SYL): Cleanup. -+ -+ (its-beginning-of-input-buffer): Fix. -+ (its-end-of-input-buffer): Likewise. -+ -+ * egg-com.el (egg-fixed-euc, egg-mb-euc): New Local Variables. -+ (ccl-decode-fixed-euc-kr, ccl-encode-fixed-euc-kr): New CCLs. -+ (fixed-euc-kr): New coding system. -+ (comm-format-mb-string, comm-format-u16-string): Support EUC-KR. -+ (comm-unpack-u16-string, comm-unpack-mb-string): Likewise. -+ -+ * egg-cnv.el (egg-get-bunsetsu-info): New function. -+ (egg-conversion-backend-alist, egg-finalize-backend-alist): -+ New Variables. -+ Make egg-conversion-backend buffer local. -+ (egg-set-current-backend): New function. -+ (egg-initialize-backend): Call egg-set-current-backend. -+ (egg-start-conversion): Add new argument LANGUAGE. -+ (egg-finalize-backend): Finalize for all backend(s). -+ (egg-set-conversion-backend-internal): New Macro. -+ (egg-convert-region): Support multiple languages in the region. -+ (egg-separate-languages, egg-char-to-language, egg-next-part-lang, -+ egg-next-chinese-lang): New functions. -+ (egg-insert-bunsetsu-list): Change the meaning of last argument. -+ (egg-shrink-bunsetsu): Simplified. Just call egg-enlarge-bunsetsu. -+ (egg-enlarge-bunsetsu): Support shrink. -+ -+ (egg-decide-bunsetsu, egg-next-candidate, egg-select-candidate): -+ Use egg-get-bunsetsu-info. -+ -+ (egg-insert-bunsetsu): The property now includes -+ egg-conversion-backend. -+ -+ * egg.el: Don't load its/hira and don't set its-current-map. -+ -+ * egg.el (egg-default-language, egg-support-languages): New Variables. -+ (egg-last-method-name, egg-mode-line-title): New Local Variables. -+ (egg-set-mode-line-title, egg-check-language): New functions. -+ (egg-set-support-languages): New function. -+ (egg-mode): Final processing: call its-exit-mode, call -+ egg-exit-conversion. -+ Changing the arguments, remember last input method. -+ -+ Bug fix. Don't set its-hira-period and its-hira-comma. -+ -+1998-02-17 KAWABATA, Taichi -+ -+ * menudiag.el (menudiag-mode-map): New binds for new commands. -+ (menudiag-beginning-of-items, menudiag-end-of-items): New commands. -+ (menudiag-make-menu-formatted-string): Bug fix. Use -+ menudiag-item-num-to-char. -+ (menudiag-goto-item): Rewrite. Better user interface. -+ (menudiag-char-to-item-num, menudiag-item-num-to-char): New -+ functions. -+ -+1998-02-07 MORIOKA Tomohiko <morioka@jaist.ac.jp> -+ -+ * leim-list-egg.el: Delete autoload setting for `egg-mode'. -+ Delete input method registration for "japanese-egg". -+ -+ * egg.el: Comment out setting for Wnn. -+ -+ * leim-list-egg.el: Add autoload setting for -+ `egg-activate-{wnn|sj3}'. -+ -+ * egg/sj3.el (egg-activate-sj3): Add DOC-string. -+ -+ * egg/sj3.el (egg-activate-sj3): New function. -+ Require egg. -+ Load egg/sj3rpc.el. -+ -+ * egg/wnn.el (egg-activate-wnn): New function. -+ Require egg. -+ Load egg/wnnrpc.el. -+ -+1998-02-07 MORIOKA Tomohiko <morioka@jaist.ac.jp> -+ -+ * leim-list-egg.el (japanese-egg-wnn): New input method. -+ (japanese-egg-sj3): New input method. -+ -+1997-11-20 MORIOKA Tomohiko <morioka@jaist.ac.jp> -+ -+ * leim-list-egg.el: Rename `egg-ja' -> `japanese-egg'. -+ -+1997-11-20 MORIOKA Tomohiko <morioka@jaist.ac.jp> -+ -+ * egg/wnn.el (wnn): New group. -+ (wnn-server): Use `defcustom'. -+ (wnn-usr-dic-dir): Use `defcustom'. -+ -+ * egg.el (egg): New group. -+ -+1997-11-20 MORIOKA Tomohiko <morioka@jaist.ac.jp> -+ -+ * menudiag.el (menudiag-mode-map): Swap binding for left and -+ right. -+ -+ * egg.el (egg-toroku-region): `wnn-get-environment' requires -+ dictionary-specification. -+ -+ * leim-list-egg.el: add autoload setting for egg-mode. -+ -+1997-11-03 KATAYAMA Yoshio <kate@pfu.co.jp> -+ -+ * euc-cn.el: New file. Original name was yincoding.el. -+ Adopted by NIIBE Yutaka <gniibe@chroot.org>. -+ -+1997-11-03 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * its.el (its-start): Add INVISIBLE property if ITS-FENCE-FACE. -+ * egg-cnv.el (egg-decide-before-point): Ditto. -+ Based on patch by Kenichi HANDA <handa@etl.go.jp>. -+ -+ Once, I thought that we need many environments which correspond to -+ outstanding CONVERSION buffre. However, I've learned that WNN4 -+ protocol is completely independent. It's no use to maintain each -+ environment. Share the one environment. -+ * egg/wnn.el (wnn-environments): Removed. -+ (wnn-environment): New variable. -+ (wnn-comm-sentinel): Follow the change. Let users know the close. -+ (wnn-fini): Likewise. -+ -+ <env>: Remove the member <in-use>. -+ (wnnenv-create): Follow the structure change. -+ (wnn-end-conversion): Likewise. -+ (wnnenv-get-in-use-flag, wnnenv-set-in-use-flag): Removed. -+ (wnn-find-env-not-in-use): Removed. -+ (wnn-get-environment): Use wnn-environment instead of wnn-environments. -+ Take one argument. -+ -+ * egg-cnv.el (egg-decide-before-point): Signal error on first SYL. -+ Reported by KATAYAMA Yoshio <kate@pfu.co.jp>. Changes of 1997-09-07 -+ was not enough. -+ Set-marker M to NIL after PUT-TEXT-PROPERTY. -+ -+ Because the name of identifier begins egg-*, change the file names. -+ * tamago: Rename from tamago. -+ * egg.el, egg-mlh.el, egg-com.el, egg-cnv.el: Rename from tamago-*.el -+ * Makefile: Follow the changes. -+ -+1997-10-05 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * tamago/wnn.el (wnn-uniq-candidates): Add new argument BUNSETSU. -+ Call WNN-BUNSETSU-SET-ZENKOUHO-POS, WNN-BUNSETSU-SET-ZENKOUHO in -+ this function. Handle the case where BUNSETSU is not the first -+ element of BUNSETSU-LIST. -+ (wnn-list-candidates): Use new API of WNN-UNIQ-CANDIDATES. -+ -+ * tamago-cnv.el (egg-next-candidate): Handle the case where -+ EGG-LIST-CANDIDATES returns non zero value. -+ -+1997-10-04 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * Makefile (install): Install to SITEDIR. -+ -+1997-09-26 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * its/hira.el (its-hira-enable-zenkaku-alphabet): New variable. -+ (its-hira-map): Use it. -+ -+1997-09-19 NIIBE Yutaka <gniibe@chroot.org> -+ -+ Arrange for LEIM. Use tamago/ subdirectory. -+ * tamago/: Rename from tamago-lib. -+ -+1997-09-18 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * tamago-cnv.el (egg-select-candidate): menu-select --> -+ menudiag-select. -+ * tamago.el (egg-toroku-region, egg-hinshi-select): Likewise. -+ -+ * tamago-cnv.el (egg-exit-conversion): Run hook of -+ input-method-after-insert-chunk-hook. -+ * its.el (its-exit-mode-internal): Ditto. -+ -+ * tamago-mlh.el (mlh-comma-period-style): Deleted. -+ -+ * its/, tamago-lib/: New directory. -+ * its/: Move its-*.el files here. -+ * tamago-lib/: Move sj3.el, sj3rpc.el, wnn.el and wnnrpc.el here. -+ -+ * tamago-com.el: Rename from comm.el. -+ * tamago-mlh.el: Rename from mlh.el. -+ * tamago-cnv.el: Rename from convert.el. -+ -+ * menudiag.el: Rename from menu.el. -+ (Throughout): Rename menu-* to menudiag-*. -+ -+1997-09-07 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * egg.el (egg-insert-after-hook, egg-exit-hook): Removed. -+ (egg-sai-henkan-start, egg-sai-henkan-end, egg-old-bunsetu-suu): -+ Removed. -+ -+ * wnn.el (WNN-const): New macro. -+ (wnn-start-conversion, wnn-open-dictionary, wnn-open-frequency, -+ wnn-set-dictionary-sub, wnn-update-frequency): Use it. -+ -+ * wnnrpc.el (wnn-const): New macro. -+ Throughout: Use wnn-const. -+ -+ * convert.el (egg-decide-before-point): Bug fix. Handle the case -+ where all bunsetsu are decided. -+ Reported by KATAYAMA Yoshio <kate@pfu.co.jp>. -+ -+ * convert.el (egg-exit-conversion): Call egg-end-conversion at end. -+ (egg-decide-before-point): Ditto. -+ -+ * wnn.el (wnn-environments): Change the structure of enviromnents. -+ (wnn-fini): Handle errors. -+ (wnn-open): Set sentinel. Delete buffer on failure. -+ (wnn-comm-sentinel): New function. -+ (wnn-find-env-not-in-use): Return nil when not found. -+ -+ (wnn-create-environment): Take username as argument. -+ (wnn-get-environment): Follow the change. -+ -+ (wnnenv-create): Remove useless serial no. -+ (wnnenv-get-in-use-flag, wnnenv-set-in-use-flag): Follow the change. -+ (wnnenv-get-daibunsetsu-info, wnnenv-set-daibunsetsu-info): Likewise. -+ (wnn-create-environment, wnn-get-environment): Likewise. -+ -+1997-09-04 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * its.el (its-state-machine-keyseq): Bug fix. Handle VSYL. -+ -+ * sj3.el, sj3rpc.el: New files. -+ -+ * comm.el (comm-call-with-proc, comm-call-with-proc-1): New macros. -+ * wnnrpc.el (wnnrpc-call-with-proc, wnnrpc-call-with-proc-1): Deleted. -+ Throughout: Use comm-call-with-proc and comm-call-with-proc-1. -+ -+1997-09-03 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * wnnrpc.el (wnnrpc-call-with-proc-1): Bug fix. let --> progn. -+ -+ * convert.el (egg-conversion-backend): Initail value is NIL. -+ -+ * wnn.el (wnn-conversion-backend): New constant. -+ -+ * comm.el (comm-format,comm-unpack): Support multibyte string. -+ (comm-format-mb-string): New substitution. -+ (comm-unpack-mb-string): New substitution. -+ -+ * wnn.el (wnn-fini): Handle the case where wnn-environments is nil. -+ Reported by Hisashi Miyashita <himi@bird.scphys.kyoto-u.ac.jp>. -+ -+1997-09-03 Hiroshi Ogata <hiroshi@nereid.rim.or.jp> -+ -+ * mlh.el (mlh-zenkaku): Use new API of Emacs-20, -+ japanese-zenkaku-region. -+ -+1997-09-02 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * egg.el (egg-toroku-region): New function. -+ -+ * wnn.el (wnn-list-dictionaries): New function. -+ (wnnenv-get-proc): New function. -+ -+ * wnnrpc.el (wnndic-get-id, wnndic-get-comment, wnndic-get-dictname): -+ New substitution. -+ (wnnrpc-get-writable-dictionary-id-list): Rename from -+ wnnrpc-get-writable-dictionary-list. -+ -+1997-09-01 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * convert.el (egg-decide-bunsetsu): New function. -+ (egg-decide-before-point): New command. -+ (egg-exit-conversion): Use egg-decide-bunsetsu. -+ -+ * its.el (its-start): Divide the fence buffer into two parts and -+ make them intangible, so that point goes appropriate position. -+ (its-put-cursor): The cursor belongs to part-2. -+ (its-buffer-ins/del-SYL): The new SYL belongs to part-1. -+ (its-exit-mode-internal): Remove the property on exit. -+ (its-beginning-of-input-buffer): Make SYLs have property of "part 2". -+ (its-backward-SYL): Likewise. -+ (its-forward-SYL): Make SYLs have property of "part 1". -+ (its-end-of-input-buffer): Likewise. -+ -+ (its-input-end): Delete useless argument. -+ (its-beginning-of-input-buffer, its-exit-mode, -+ its-exit-mode-off-input-method, its-kick-convert-region, -+ its-end-of-input-buffer, its-backward-SYL, its-forward-SYL, -+ its-delete-SYL): Follow the change. -+ -+1997-08-31 NIIBE Yutaka <gniibe@chroot.org> -+ -+ For egg-mode, don't use minor mode, override local map instead. -+ For its-mode and egg-conversion-mode, don't use minor mode, -+ instead use local-map of text property. -+ -+ Although overriding local map is not good, using local-map of -+ property is natural thing. Besides, point-left/point-entered -+ don't work as I expected (yet). -+ -+ * egg.el (egg-mode: variable): Removed. -+ * egg.el (egg-modefull-map, egg-modeless-map): Make them functions. -+ Generate overriding local map. -+ * egg.el (egg-mode): use overriding local map. -+ -+ * its.el, convert.el: Undo changes of 1997-08-28 for minor mode -+ and local map of text properties. -+ -+ * its.el (its-exit-mode-off-input-method): New function. -+ -+1997-08-29 NIIBE Yutaka <gniibe@chroot.org> -+ -+ Let Undo work correctly. -+ * its.el (its-self-insert-char): Delete/Insert cursor. -+ -+ * its.el (its-put-cursor): Remove useless first argument. -+ (its-start, its-beginning-of-input-buffer, its-end-of-input-buffer, -+ its-backward-SYL, its-forward-SYL, its-delete-SYL, its-delete-SYL, -+ its-delete-backward-SYL-internal, its-delete-backward-within-SYL): -+ Follow the change. -+ -+1997-08-28 KATAYAMA Yoshio <kate@pfu.co.jp> -+ -+ * its-erpin.el: New file. -+ * its-pinyin.el: New file. -+ * its-zhuyin.el: New file. -+ -+1997-08-28 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * its.el (its-exit-mode-no-egg): Removed. -+ (its-exit-mode-internal): Remove first argument. -+ (its-kick-convert-region, its-delete-SYL, -+ its-delete-backward-SYL-internal, its-delete-backward-within-SYL): -+ Follow the change. -+ -+ Don't use local map of text properties, instead use minor mode. -+ * convert.el (egg-conversion-mode): New minor mode. -+ (egg-conversion-left, egg-conversion-enter): New functions. -+ (egg-insert-bunsetsu): remove local-map, add point-entered and -+ point-left properties. -+ (egg-exit-conversion): Likewise. -+ (egg-exit-conversion): Exit minor mode. -+ -+ * its.el (its-put-cursor): remove local-map, add point-entered and -+ point-left properties. -+ (its-enter, its-left): New functions. -+ (its-mode): New variable. New minor mode. -+ -+1997-08-27 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * convert.el (egg-exit-conversion-no-egg): Removed. -+ (egg-exit-conversion): No argument, no egg-mode. -+ -+ * convert.el (egg-convert-region): No egg-flag. -+ * its.el (its-exit-mode-internal): Follow it. -+ * mlh.el (mlh-space-bar-backward-henkan): Ditto. -+ -+1997-08-26 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * wnn.el (wnn-change-bunsetsu-length): Don't use magic #3. -+ -+ * convert.el (egg-insert-bunsetsu-list): Add optional argument -+ CONTIN. -+ -+1997-08-25 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * convert.el (egg-insert-bunsetsu): Include seperator. Add -+ intangible property to bunsetsu. -+ (egg-insert-bunsetsu-list): Follow the change. -+ (egg-backward-bunsetsu, egg-forward-bunsetsu, -+ egg-select-candidate, egg-next-candidate, -+ egg-shrink-bunsetsu, egg-enlarge-bunsetsu, -+ egg-exit-conversion): Ditto. -+ -+ * mlh.el (mlh-space-bar-backward-henkan): Call egg-convert-region -+ with last argument t. Turn of egg-mode. -+ -+1997-08-24 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * its.el (its-exit-mode-internal): Inactivate input method. -+ -+ * wnn.el (wnn-end-conversion): Change the interface. -+ (wnn-update-frequency): Follow the change. -+ * convert.el (egg-exit-conversion): Follow the change. -+ -+ * wnn.el (wnn-start-conversion): Change the return value interface. -+ * convert.el (egg-convert-region): Follow the change. -+ -+ * wnn.el (wnnenv-get-bunsetsu-pos, wnnenv-set-bunsetsu-pos): Removed. -+ (wnn-get-bunsetsu-source-afterwards): Removed. -+ (wnn-get-number-of-bunsetsu, wnn-get-bunsetsu-info): Removed. -+ (wnnenv-get-bunsetsu-list, wnnenv-set-bunsetsu-list): Removed. -+ (wnn-start-conversion): Don't call wnnenv-set-bunsetsu-list. -+ (wnn-end-conversion): Ditto. -+ -+1997-08-23 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * convert.el (egg-change-bunsetsu-length): Change the interface. -+ (egg-shrink-bunsetsu,egg-enlarge-bunsetsu): Follow it. -+ -+ (egg-source-maxlen-from-here): Removed. -+ (egg-get-previous-bunsetsu): New function. -+ (egg-select-candidate, egg-shrink-bunsetsu, egg-enlarge-bunsetsu, -+ egg-next-candidate): Use egg-get-previous-bunsetsu. -+ -+1997-08-20 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * egg.el (minor-mode-alist): Don't show " EGG" in mode line. -+ (egg-mode): Use input method indicator instead. -+ -+1997-07-20 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * convert.el (egg-next-candidate): Rename from egg-next-conversion. -+ (egg-previous-candidate): Rename from egg-previous-conversion. -+ (egg-select-candidate): Follow the change of new interface. -+ (egg-source-maxlen-from-here): Likewise. -+ -+1997-07-19 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * wnn.el (wnn-start-conversion): Change the interface. Return ENV -+ and the list of bunsetsu. Fix the documentation string too. -+ * convert.el (egg-convert-region): Follow the change. -+ (egg-insert-converted-result): Change the argument. -+ (egg-insert-bunsetsu-list): Rename from egg-insert-converted-result. -+ (egg-insert-bunsetsu): New function. -+ (egg-get-number-of-bunsetsu,egg-get-bunsetsu-info): Removed. -+ (egg-backward-bunsetsu): Don't use bunsetsu-pos. -+ -+ * wnn.el (wnn-get-bunsetsu-converted): Change the interface. Take -+ BUNSETSU as the argument instead of ENV and POS. -+ * convert.el (egg-get-bunsetsu-converted): Follow the change. -+ -+ * wnn.el (wnn-bunsetsu-create): Take ENV as the first argument. -+ (wnn-list-candidates): Dont take ENV. -+ (wnn-bunsetsu-get-env): New substitution. -+ -+ * wnnrpc.el (wnnrpc-receive-sho-bunsetsu-list-sub): Take the argument -+ for ENV, and use it for the argument of wnn-bunsetsu-create. -+ (wnnrpc-receive-sho-bunsetsu-list): Take ENV as the first argument. -+ (wnnrpc-renbunsetsu-conversion): Follow the change. -+ -+1997-07-17 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * convert.el (egg-decide-candidate): Change the interface. -+ Take the argument bunsetsu-info instead of conversion-engine. -+ -+ * wnn.el (wnn-get-candidate): Deleted. -+ -+ * convert.el (egg-get-all-candidates): Change the interface. -+ Take an argument bunsetsu-info instead of conversion-engine. -+ (egg-select-candidate): Follow the change. -+ -+ * convert.el (egg-set-bunsetsu-pos,egg-get-bunsetsu-pos): Deleted. -+ (egg-list-candidates,egg-get-current-candidate-number): New stub. -+ * wnn.el (wnn-bunsetsu-create): Add new member zenkouho-pos. -+ (wnn-bunsetsu-get-zenkouho-pos,wnn-bunsetsu-set-zenkouho-pos): New -+ functions. -+ (wnn-list-candidates,wnn-get-current-candidate-number): New functions. -+ (wnn-set-bunsetsu-pos,wnn-get-bunsetsu-pos): Deleted. -+ -+ * convert.el (egg-get-number-of-candidates): Change the interface. -+ Take an argument bunsetsu-info instead of conversion-engine. -+ (egg-next-conversion,egg-select-candidate): Follow the change. -+ * wnn.el (wnn-get-number-of-candidates): Follow the change. -+ -+ * wnn.el (wnn-get-bunsetsu-source-afterwards): New function. -+ (wnn-change-bunsetsu-length): Use it. -+ -+ * convert.el (egg-get-bunsetsu-source): Change the interface. -+ Take an argument bunsetsu-info instead of conversion-engine. -+ (egg-enlarge-bunsetsu,egg-shrink-bunsetsu,egg-source-maxlen-from-here): -+ Follow the change. -+ * wnn.el (wnn-get-bunsetsu-source): Follow the change. -+ -+ Put bunsetsu information on text property. -+ * wnn.el (wnn-get-bunsetsu-info): New function. -+ -+ * convert.el (egg-insert-converted-result): Put it on text property. -+ (egg-conversion-backend): Add new interface -+ wnn-get-bunsetsu-info. -+ (egg-get-bunsetsu-info): New stub. -+ -+1997-07-17 KATAYAMA Yoshio <kate@pfu.co.jp> -+ -+ * its.el (its-state-machine-keyseq, its-state-machine): Handle -+ end-of-input correctly when going backward. -+ -+1997-07-16 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * wnn.el (wnn-create-directory): Bug fix. Really make directory. -+ -+1997-07-15 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * its-hangul.el (its-define-hangul): Use its-defrule-otherwise. -+ -+1997-07-15 KATAYAMA Yoshio <kate@pfu.co.jp> -+ -+ * its-hangul.el: Updated. -+ -+1997-06-19 NIIBE Yutaka <gniibe@akebono.etl.go.jp> -+ -+ * its-hira.el: its-hira-hankaku-escape --> its-hankaku-escape. -+ its-hira-zenkaku-escape --> its-zenkaku-escape. -+ -+1997-06-14 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * its.el: Change the data structure of <expr-output-back-list> so -+ that it can encourage sharing same structure and it can use same -+ structure of SYL. -+ (its-ins/del-SYL-batch): Follow the change of data structure. -+ (its-define-otherwise): Change the argument. -+ (its-defrule-otherwise): New function. -+ (its-eob-keyexpr, its-eob-back, its-make-class+back, -+ its-make-otherwise): New substitutions. -+ -+1997-06-13 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * its-kana.el: New file. Taken from its/kanainput.el of Mule-2.3. -+ -+ * its-hira.el: Use `define-its-state-machine'. -+ -+ * its.el (its-zenkaku-escape, its-hankaku-escape): Make them -+ defconst. -+ (define-its-state-machine, define-its-state-machine-append): New -+ macro. -+ -+1997-06-13 NIIBE Yutaka <gniibe@akebono.etl.go.jp> -+ -+ * its-hira.el ("n'"): Added. -+ -+1997-06-12 NIIBE Yutaka <gniibe@akebono.etl.go.jp> -+ -+ its-zenkaku-escape and its-hankaku-escape are also used in hangul. -+ * its.el (its-zenkaku-escape, its-hankaku-escape): Moved to here -+ and rename them. -+ * its-hira.el (its-hira-hankaku-escape, its-hira-zenkaku-escape): -+ Removed. -+ -+ * its.el (its-read-current-its-string): Removed. There's the -+ function `read-multilingual-string' already. -+ -+1997-06-12 KATAYAMA Yoshio <kate@pfu.co.jp> -+ -+ * its-hangul.el: New file. -+ -+1997-06-10 NIIBE Yutaka <gniibe@chroot.org> -+ -+ Miscellaneous cosmetic changes. -+ * comm.el: New file. Move communication related funcitons from -+ wnnrpc.el. -+ (comm-format-u32c, and others): Rename from wnnrpc-*. -+ * wnnrpc.el (Throughout): Follow the rename. -+ -+ * wnn.el (wnnenv-get-in-use-flag): Rename from wnn-e-get-in-use. -+ (wnnenv-set-in-use-flag): Rename from wnn-e-set-in-use. -+ (Others): Rename from wnn-e-*. -+ (wnn-bunsetsu-*): Rename from wnnrpc-b-*, and moved from wnnrpc.el. -+ -+ * convert.el (egg-exit-conversion): Call egg-do-auto-fill. -+ -+ * its.el (its-translate-region): Bug fix. End of input. -+ (its-state-machine): Bug fix. Generate error if -+ its-barf-on-invalid-keyseq. -+ (its-exit-mode-internal): Call egg-do-auto-fill. -+ -+ * wnnrpc.el (ccl-decode-fixed-euc-jp): Bug fix for ASCII. -+ -+ * mlh.el (mlh-space-bar-backward-henkan): Call egg-do-auto-fill. -+ -+ * egg.el: Comment out definition of C-\ in global-map. -+ -+1997-06-09 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * its.el (its-kick-convert-region): Rename from its-convert-region. -+ (its-mode-map): Follow the change. -+ -+ (its-make-next-state): Use list instead of cons. -+ -+ (its-get-kst/t): Make it substitution. -+ (its-set-kst, its-get-keyseq, its-set-keyseq, its-kst-p, -+ its-get-output, its-set-output, its-get-keyseq-syl): Likewise. -+ (its-new-state, its-new-map, its-get-indicator, its-set-indicator, -+ its-get-start-state, its-reset-start-state): Likewise. -+ -+ (its-get-next-state): Use assq instead of assoc. -+ -+ (its-goto-state): Tune up. -+ -+1997-06-08 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * mlh.el: Merge mlh-nihongo.el. -+ * mlh-nihongo.el: Removed. -+ -+ * its-hira.el: Moved from its/hira.el. Move comments to HISTORY. -+ (its-hira-enable-double-n, its-hira-period, its-hira-comma, -+ its-hira-open-bracket, its-hira-close-bracket, -+ its-hira-horizontal): New variables. -+ Use the variables to define the state-machine. -+ -+ Implement non-interactive translation in ITS. -+ * its.el (its-translate-region): New function. -+ (its-latest-SYL): New Variable. -+ (its-state-machine-keyseq): Use it. -+ (its-update-latest-SYL): New function. -+ (its-buffer-ins/del-SYL): Use it. -+ (its-translation-result): New variable. -+ (its-ins/del-SYL-batch): New function. -+ (its-enable-double-n-syntax, its-use-kuten-for-period, -+ its-use-touten-for-comma, its-zenkaku-escape, its-hankaku-escape): -+ Removed. -+ -+ Use ITS, delete mlh's own implementation of automata. -+ * mlh.el (mlh-start-state, mlh-set-of-chars, mlh-start-state-sym, -+ mlh-set-of-chars-sym, mlh-define-automata, mlh-end-of-definition, -+ mlh-defrule, mlh-next-state, mlh-roma-kana-backward): Removed. -+ (mlh-cause-error-when-unknown-romaji-sequence): Removed. -+ (mlh-atoi): Removed. -+ (mlh-white-space, mlh-zenkaku-white): Use string-to-int. -+ * mlh-nihongo.el (mlh-hira-start-state, mlh-hira-chars, and all -+ rules of definition which defines the automaton): Removed. -+ (mlh-kanji-with-henkan-region-function): Use its-translate-region. -+ (mlh-hiragana, mlh-katakana): Likewise. -+ -+ Fix of CCL. -+ * wnnrpc.el (ccl-decode-fixed-euc-jp): Bug fix for jisx0212. -+ Add missing parens. -+ -+ Speed up of unpacking. -+ * wnnrpc.el (wnnrpc-following-char-or-wait): Tune up. -+ (wnnrpc-following+forward-char): New function. -+ (wnnrpc-unpack-u32c, wnnrpc-unpack-u32, wnnrpc-unpack-u16, -+ wnnrpc-unpack-u8): Use it. -+ (wnnrpc-accept-process-output): New function. -+ (wnnrpc-unpack-u16-string, wnnrpc-unpack-u8-string, -+ wnnrpc-unpack-bytes): Use it. Use search-forward. -+ (wnnrpc-unpack-u16-string): Use decode-coding-region. -+ -+1997-06-07 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * wnn.el (wnn-get-all-candidates): New function. -+ (wnn-set-bunsetsu-pos): Return 0 (instead of -1). -+ -+ * convert.el (egg-get-candidate): Removed. -+ (egg-get-all-candidates): New entry function. -+ (egg-conversion-backend): Entry for egg-get-all-candidates. -+ (egg-select-candidate): New function. -+ (egg-conversion-map): Bind "\M-s" and egg-select-candidate. -+ -+1997-06-05 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * bushu.el: Renamed from busyu.el. -+ (bushu-break-string, etc): Renamed from busyu*. -+ -+ * menu.el: Completely rewritten. -+ -+1997-06-03 NIIBE Yutaka <gniibe@akebono.etl.go.jp> -+ -+ * its.el (its-reset-start-state): Bug fix. Delete a CDR. -+ -+ Implement "class of key" transition. -+ Change the structure of <state>, the last member is -+ <key-state-table/terminal> instead of <key-state-alist/terminal>. -+ * its.el (its-kst-p): Rename from its-ksa-p. -+ (its-get-next-state): Follow the change of the data structure. -+ (its-state-machine): Likewise. -+ (its-make-next-state): Likewise. -+ (its-set-kst): New function. -+ (its-get-otherwise): New function. -+ (its-otherwise-match): New function. -+ (its-define-otherwise-terminate-here): Removed. -+ (its-define-otherwise): New function. -+ (its-defrule*): Use its-define-otherwise. -+ -+ * its/hira.el (n): Use its-define-otherwise. -+ -+1997-06-02 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * wnnrpc.el (wnnrpc-receive-sho-bunsetsu-list-sub, -+ wnnrpc-receive-sho-bunsetsu-list-sub-2): Splited from -+ wnnrpc-receive-sho-bunsetsu-list. -+ (wnnrpc-receive-dai-bunsetsu-list): New function. -+ (wnnrpc-daibunsetsu-conversion, wnnrpc-get-daibunsetsu-candidate): -+ New function. -+ -+1997-06-01 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * wnnrpc.el (ccl-decode-fixed-euc-jp): Clean it up. -+ (wnnrpc-file-attribute): Rename from wnnrpc-stat-file. -+ (wnnrpc-get-dictionary-list-with-environment): Rename from -+ wnnrpc-get-dictionary-list-with-environment. -+ -+ Implement RPC more. -+ * wnnrpc.el (wnnrpc-who, wnnrpc-get-env-list, wnnrpc-kill, -+ wnnrpc-delete-dictionary, wnnrpc-set-flag-on-dictionary, -+ wnnrpc-get-dictionary-list, wnnrpc-delete-word, -+ wnnrpc-receive-word, wnnrpc-search-word, -+ wnnrpc-search-word-in-dictionary, wnnrpc-get-word-info, -+ wnnrpc-set-comment-on-word, wnnrpc-get-dictionary-info, -+ wnnrpc-set-file-comment, wnnrpc-hinshi-name, -+ wnnrpc-set-file-password, wnnrpc-set-hinshi-table): New functions. -+ -+1997-05-31 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * wnnrpc.el (wnnrpc-format-u32c, wnnrpc-unpack-u32c): New -+ substitutions. Support 32-bit number represented in cons cell of -+ a pair of 16-bit integer. -+ (wnnrpc-format, wnnrpc-unpack): Handle u32c (U). -+ -+ (wnnrpc-format-bytes, wnnrpc-unpack-bytes): New substitutions. -+ Support byte stream end with 255(-1). -+ (wnnrpc-format, wnnrpc-unpack): Handle bytes (B). -+ -+ (wnnrpc-local-file-loaded): New function. -+ (wnnrpc-call-with-proc-1): New macro. Assume the buffer is the one -+ of process. -+ -+1997-05-29 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * wnnrpc.el (wnnrpc-get-conversion-parameters, wnnrpc-file-loaded, -+ wnnrpc-write-file, wnnrpc-get-fuzokugo-file, wnnrpc-get-file-list, -+ wnnrpc-get-file-list-with-env, wnnrpc-stat-file, -+ wnnrpc-get-file-info): New functions. -+ wnnrpc-receive-file-list): New subst. -+ -+1997-05-29 Kenichi Handa <handa@etl.go.jp> -+ -+ * wnnrpc.el (ccl-decode-fixed-euc-jp): Tune it up. -+ -+1997-05-29 Hisashi Miyashita <himi@bird.scphys.kyoto-u.ac.jp> -+ -+ * wnnrpc.el (fixed-euc-jp, ccl-decode-fixed-euc-jp, -+ ccl-encode-fixed-euc): New private coding system. Encode/decode -+ CCL for it. -+ -+1997-05-27 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * wnnrpc.el (wnnrpc-tanbunsetsu-conversion): Change the argument. -+ (wnnrpc-get-bunsetsu-candidates): Likewise. -+ (wnnrpc-renbunsetsu-conversion): Likewise. -+ -+ * wnn.el (wnn-change-bunsetsu-length): Follow the change. -+ (wnn-set-bunsetsu-pos): Likewise. -+ (wnn-change-bunsetsu-length, wnn-start-conversion): Likewise. -+ -+1997-05-25 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * wnnrpc.el (wnnrpc-add-word, wnnrpc-get-dictionary-list, -+ wnnrpc-receive-dictionary-list, wnnrpc-get-writable-dictionary-list, -+ wnnrpc-get-hinshi-list, wnnrpc-hinshi-number): New functions. -+ (wnnrpc-unpack-u16-string): Bug fix for the case of ASCII string. -+ -+ * wnn.el (wnn-dictionary-specification): Add dictionaries of -+ gerodic and ones of WNN consortium. -+ -+ Implement a false path. -+ * wnnrpc.el (wnnrpc-renbunsetsu-conversion): Generate an error on -+ failure. -+ (wnnrpc-get-bunsetsu-candidates): Ditto. -+ (wnnrpc-tanbunsetsu-conversion): Ditto. -+ -+ Implement a false path. Error recovery. -+ * wnn.el (wnn-create-directory, wnn-open-dictionary, -+ wnn-open-frequency, wnn-query-del/create-frequency): New function. -+ (wnn-set-dictionary-sub): New function. -+ -+1997-05-24 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * wnnrpc.el (wnnrpc-version, wnnrpc-access, wnnrpc-mkdir, -+ wnnrpc-create-dictionary, wnnrpc-create-frequency, -+ wnnrpc-discard-file, wnnrpc-remove-file): New functions. -+ (wnnrpc-test-result-and-get-error): New subst. -+ -+ Implement a false path from wnnrpc-set-fuzokugo-file. -+ * wnnrpc.el (wnnrpc-set-fuzokugo-file): Return negate-encoded -+ error code on failure. -+ * wnn.el (wnn-create-environment): Generate an error message. -+ -+ Implement a false path from wnnrpc-open-file. -+ * wnnrpc.el (wnnrpc-open-file): Change the interface. Return -+ negate-encoded error code on failure. -+ * wnn.el (wnn-open-file): New function. -+ (wnn-create-environment): Handle return value, and generate -+ an error message for wnnrpc-set-fuzokugo-file on failure. -+ (wnn-set-dictionary): Handle return value. -+ -+1997-05-17 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * wnnrpc.el (wnnrpc-error-message): Error strings taken from -+ Wnn-4.2 distribution. -+ (wnnrpc-errono): Removed. -+ -+ Implement a false path from wnnrpc-open. -+ * wnnrpc.el (wnnrpc-open): Change the interface. Return NIL on -+ success, error code on failure. -+ * wnn.el (wnn-open): Delete process and buffer. -+ Generate an error on failure. -+ (wnn-get-environment): Follow the change (none). -+ (wnn-start-conversion): Follow the change (none). -+ * convert.el (egg-convert-region): Follow the change. Call -+ delete-region after egg-start-conversion. -+ -+ Implement a false path from wnnrpc-connect. -+ * wnnrpc.el (wnnrpc-connect): Change the interface. Return -+ negate-encoded error code on failure. -+ * wnn.el (wnn-create-environment): Generate an error on failure. -+ (wnn-get-environment): Follow the change. On failure, don't -+ register the environment to wnn-environments. -+ -+1997-05-16 NIIBE Yutaka <gniibe@akebono.etl.go.jp> -+ -+ Dynamically allocate environment arbitrarily. -+ * wnn.el (wnn-create-environment): Change the structure of ENV. -+ (wnn-e-get-in-use, wnn-e-set-in-use): New subst. -+ (wnn-end-conversion): Call wnn-e-set-in-use. -+ (wnn-get-environment, wnn-find-env-not-in-use): New function. -+ (wnn-start-conversion): Call wnn-get-environment. -+ -+ * wnn.el (wnn-fini): Implemented. -+ -+1997-05-15 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * convert.el (egg-start-conversion): Change the interface. -+ (egg-convert-region): Follow the change. -+ (egg-open-if-not): Removed. -+ * wnn.el (wnn-start-conversion): Follow the change. -+ -+ * wnn.el (wnn-environment-list): Removed. -+ (wnn-environment-serial): Removed. -+ (wnn-connect-and-init): Removed. -+ (wnn-environments): New variable which holds all environments. -+ -+1997-05-15 NIIBE Yutaka <gniibe@akebono.etl.go.jp> -+ -+ * wnn.el (wnn-change-bunsetsu-length): Bug fix. Last argument to -+ wnnrpc-b-set-freq-down is list of bunsetsu. -+ -+ * mlh.el (mlh-do-spacing): Emacs 20 related changes. -+ Use category-set-mnemonics, and char-category-set. -+ According to suggestion by Kenichi Handa <handa@etl.go.jp>. -+ -+1997-05-15 MORIOKA Tomohiko <morioka@jaist.ac.jp> -+ -+ * wnn.el (wnn-usr-dic-dir): New variable. -+ (wnn-filename): Use wnn-usr-dic-dir. -+ -+ * its.el (its-defrule): New argument `enable-overwrite'. -+ -+1997-05-14 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * convert.el (egg-exit-conversion-unread-char): Use newer variable -+ unread-command-events, as unread-command-char is obsolete. -+ (egg-shrink-bunsetsu, egg-source-maxlen-from-here, -+ egg-enlarge-bunsetsu, egg-next-conversion, egg-exit-conversion, -+ egg-exit-conversion, egg-insert-converted-result): New property -+ EGG-CONVERSION-ENGINE, which specifis backend. -+ -+ (egg-start-conversion, egg-get-number-of-bunsetsu, -+ egg-get-bunsetsu-converted, egg-set-bunsetsu-pos, -+ egg-get-bunsetsu-pos, egg-get-number-of-candidates, -+ egg-get-candidate, egg-decide-candidate, -+ egg-change-bunsetsu-length, egg-get-bunsetsu-source, -+ egg-end-conversion): Change the interface, new argument c. -+ * wnn.el (wnn-start-conversion, wnn-get-number-of-bunsetsu, -+ wnn-get-bunsetsu-converted, wnn-set-bunsetsu-pos, -+ wnn-get-bunsetsu-pos, wnn-get-number-of-candidates, -+ wnn-get-candidate, wnn-decide-candidate, -+ wnn-change-bunsetsu-length, wnn-get-bunsetsu-source, -+ wnn-end-conversion): Likewise. -+ -+ * convert.el (egg-open-if-not): Change the interface. Return -+ conversion backend. -+ -+ * wnnrpc.el (wnnrpc-following-char-or-wait, wnnrpc-unpack-u32, -+ wnnrpc-unpack-u16, wnnrpc-unpack-u8, wnnrpc-unpack-u16-string, -+ wnnrpc-unpack-u8-string): Change the interface to avoid -+ compilation warnings. -+ (wnnrpc-unpack): Use new interface. -+ -+ * wnn.el (wnn-open): Change the name of WNN buffer as debug has -+ been done. -+ -+1997-05-11 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * wnnrpc.el (wnnrpc-following-char-or-wait): Rename from -+ wnn-following-char-or-wait. -+ (wnnrpc-following-char-or-wait): Declare with DEFUN instead of -+ DEFSUBST. -+ -+1997-05-10 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * Throughout: Use JUNET coding system for file format. -+ -+ * mlh.el: Move some comments to HISTORY. -+ (mlh-version): Removed. -+ Remove all autoload entries. -+ (henkan-region-function): Removed. -+ (member): Don't need any more. -+ -+ * mlh-nihongo.el: Renamed from nihongo.el. -+ -+ * mlh.el (mlh-space-bar-backward-henkan): call egg-convert-region -+ directly. -+ (mlh-space-bar-backward-henkan): Fix for Emacs 20. -+ Don't call egg:do-auto-fill. -+ (mlh-backward-henkan): Use set-marker-insertion-type. -+ (mlh-do-spacing): Char-category. -+ -+ * mlh.el, nihongo.el: Taken from mlh-1.002 distribution. -+ -+1997-05-07 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * convert.el (egg-update-frequency): Removed. -+ (egg-conversion-backend): Remove entry for update-frequency. -+ -+ * wnn.el (wnn-dictionary-specification): Change parameters -+ according to suggestion by Tomoko Yoshida in mule-jp@etl.go.jp. -+ Original had been taken from wnn-4.2. -+ -+1997-05-06 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * convert.el (egg-next-conversion): Bug fix. It's max+ instead of n. -+ -+1997-05-05 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * wnnfns.c (Fwnn_get_bunsetsu_converted): Rename from -+ get-converted-bunsetsu. -+ (Fwnn_get_bunsetsu_source): Ditto. -+ * convert.el (egg-get-bunsetsu-converted): Ditto. -+ (egg-get-bunsetsu-source): Ditto. -+ -+ * wnn.el (wnn-create-environment): New file which mimics API of -+ wnnfns.c. -+ -+1997-04-29 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * wnnrpc.el: New file which implements Remote Procedure Calls of WNN. -+ -+1997-04-16 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * its/kanainput.el (normal-pair): Use its-defrule*. -+ -+ * its.el (its-defrule*): Rewritten. -+ -+ * its/hira.el ("n"): Alternative implementation using 'otherwise'. -+ -+ * its.el (its-processing-map): Removed. -+ (its-register-map): Rename from its-set-map. -+ (its-register-map): Remove first argumet NAME. -+ (its-defrule): Remove last optional argument END. -+ (its-define-otherwise-terminate-here): New function. -+ (its-goto-state): New function. -+ (its-defrule, its-defoutput): Use its-goto-state. -+ -+1997-04-12 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * its.el: Enhance meaning of ITS state machine. Now, <key> -+ includes representation of "ANY of key stroke" (-2). -+ (its-defrule): New feature end=='otherwise. -+ (its-defrule*): New function. -+ (its-state-machine): Implement otherwise-terminate-before-this-key. -+ -+ * its/kanainput.el (its-k-zenkaku-escape, its-k-hankaku-escape, -+ its-k-symbols-escape): Add prefix its-. Let them defconst. -+ "W": Move the definition beginning to avoid error. -+ -+1997-03-26 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * convert.el (egg-next-conversion): -1 goes to end of bunsetsu. -+ -+1997-03-25 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * egg.el (egg-mode-on, egg-input-mode, egg-in-fence-mode): Deleted. -+ (egg-fence-face-on, egg-fence-face-off): Deleted. -+ (egg-region-start, egg-region-end): Deleted. -+ -+1997-03-24 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * its/hira.el ("n"): Add "z" and "?" for prefetch char of "n". -+ -+ Implement conversion mode. -+ * convert.el: New file. -+ -+1997-03-23 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * its.el (its-mode-map): As "\C-g" is used in global-map, use -+ "\C-]" instead (for its-cancel-input). -+ -+1997-03-22 NIIBE Yutaka <gniibe@chroot.org> -+ -+ Introduce new scheme to specify server. -+ * wnnfns.c (Qjserver, Qcserver, Qtserver, Qkserver): Removed. -+ (Vwnn_server_type): Integer variable. -+ (wnn_get_server_type): Renamed from wnn_check_server_type. -+ (charset_wnn_server_type): Renamed from lc_wnn_server_type. -+ -+ Introduce new scheme to specify uniqueness. -+ * wnnfns.c (Qwnn_no_uniq, Qwnn_uniq, Qwnn_uniq_kanji): Removed. -+ (Vwnn_uniqueness_specifier): Integer variable. Renamed from -+ wnn_uniq_level. -+ -+1997-03-21 NIIBE Yutaka <gniibe@chroot.org> -+ -+ Cosmetic changes. -+ * wnnfnc.c (Throughout): Change Lisp function name to follow the -+ format of wnn-VERB-OBJECT. -+ Use XFASTINT instead of XINT, if appropriate. -+ -+ * wnnfns.c (Fwnn_fuzokugo_set): Merged with wnn-set-fuzokugo of -+ wnn-egg.el. -+ -+ * wnn-egg.el (wnn-set-fuzokugo): Deleted. -+ -+ * wnnfns.c (Fwnn_dict_add): Merged with wnn-add-dict of wnn-egg.el. -+ * wnn-egg.el (wnn-add-dict): Deleted. -+ -+ * wnn-egg-msg.el (wnn-msg-get): Renamed from egg-msg-get. -+ (wnn-message-alist): Renamed from egg-message-alist. -+ Use defconst. -+ -+ * wnnfns.c (wnn_check_server_type): Renemed from -+ check_wnn_server_type. -+ -+ * wnn-egg-msg.el (egg-error): Deleted. Not useful enough. -+ * wnn-egg.el (Throughout): Replace egg-error by error. -+ -+ * egg.el (egg-sai-henkan-start, egg-sai-henkan-end, -+ egg-old-bunsetu-suu): Moved from wnn-egg.el. -+ -+ * wnn-egg.el (Throughout): Change variable name and function name. -+ Added wnn- prefix, egg- prefix. -+ * wnn-egg.el: Delete historical defaliases. Only support -+ wnn-set-[cjk]server-hostname. -+ -+ * wnn6.el: New file. Discriminate Wnn6 related functions. -+ * eggrc-wnn6: New file. Discriminate Wnn6 related setting. -+ -+ * egg-fence.el: Removed. -+ -+1997-03-20 NIIBE Yutaka <gniibe@chroot.org> -+ -+ Distingush continuation of egg-mode and turn off of egg-mode. -+ * its.el (its-mode-map): Bind "\C-\\" to its-exit-mode-no-egg. -+ (its-exit-mode-internal): New argument egg-mode-flag. -+ (its-exit-mode-no-egg): New Function. -+ -+ Rethink about keymap. Once, the intention of egg-mode-map has -+ been to override ALL of the keymap. That's so selfish, and not -+ friendly to other parts of Emacs. This implementation intend to -+ be more friendly with other keymaps. -+ * its.el (its-mode-map): Remove definition of "\C-c" for -+ its-cancel-input, as C-c has special meaning in Emacs. We should -+ not re-define it. -+ Remove definition of "\C-q" for its-select-previous-map. -+ Remove definition of "\C-_" for egg-jis-code-input. -+ Remove definition of "\C-w", "\C-@", [?\C-\ ] for -+ egg-henkan-fence-region. -+ -+ Implement START/CURSOR/END scheme. -+ * its.el (its-input-to-vsyl): New function. -+ (its-beginning-of-input-buffer): New function. -+ (its-end-of-input-buffer): New function. -+ (its-backward-SYL): New function. -+ (its-forward-SYL): New function. -+ (its-delete-SYL): New function. -+ (its-delete-backward-SYL): New function. -+ (its-delete-backward-SYL-internal): New function. -+ (its-delete-backward-within-SYL): New function. -+ (its-delete-by-keystroke): New Variable. -+ (its-exit-mode): New function. -+ (its-exit-mode-internal): New function. -+ -+ * its.el (its-standard-map-list, its-find, its-next-map, -+ its-previous-map): Deleted. -+ (its-get-indicator): Delete duplicated definition. Leave one which -+ takes <map> argument. -+ (its-input): Rename from its-input-subsubsub. -+ -+ * egg.el (egg-mode-map): Don't include SPACE. -+ -+ Introduce CURSOR. -+ * its.el (its-state-machine): Add new argument EMIT. Return CURSOR. -+ (its-state-machine-keyseq): Likewise. -+ (its-input-subsubsub): Return CURSOR. -+ (its-input-subsub): Deleted. -+ (its-DSYL-p): Deleted. -+ (its-buffer-insert-SYL-list): Deleted. -+ (its-buffer-ins/del-SYL): New function. -+ (its-input-end): Change the argument to P of point, and return VOID. -+ -+ Change structure of <map>. <start-state> is normal <state>. -+ (its-new-map): Follow the change of structure. -+ (its-get-indicator, its-set-indicator, its-reset-start-state): -+ Likewise. -+ (its-reset-start-state): Renamed from its-reset-start. -+ -+ Don't use <input-buffer>, but introduce new scheme of SYL property. -+ (its-change-t-to-nil, its-nil-index, its-bytes-between, -+ its-delete-between, its-move-nil--->, its-move-nil-<--, -+ its-move-nil-<--sub, its-move-nil-to-last, its-move-nil-to-first): -+ Deleted. -+ -+1997-03-19 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * its.el: Change the structure of DSYL. Same as <state>. -+ (its-input-subsub): Follow the change of structure. -+ (its-make-DSYL): Deleted. -+ (its-get-keyseq-cooked): New function. -+ -+ Swap the meaning of T/NIL of <SYL>. -+ -+ Delete the structure of <input-buffer>. -+ (its-new-input-buffer): Deleted. -+ (its-input-subsub): Remove the argument SYLP. -+ (its-input, its-input-sub, its-init-text-properties): Deleted. -+ -+ Introduce START, END and CURSOR. -+ -+1997-03-19 NIIBE Yutaka <gniibe@akebono.etl.go.jp> -+ -+ Global-map should be used, for key sequence not defined by -+ its-mode-map and/or egg-mode-map. Don't mask other maps. -+ * its.el (its-mode-esc-map): Deleted. -+ (its-mode-map): Include define-key of the esc-map here. -+ * egg.el (egg-mode-esc-map): Deleted. -+ (egg-mode-map): Include define-key of the esc-map here. -+ -+1997-03-18 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * its.el (its-input): Rename from its-input-input-buffer. -+ (its-state-machine): Handle END of input (key == -1). -+ -+ ITS minor mode deleted. It's implemented by local-map of text -+ properties. -+ (its-mode): Remove the variable. -+ (its-mode): Remove the function. -+ -+ * its.el (<input-buffer>): Change the order of <SYL> list. -+ (car sylp) is last entry of the list. -+ (its-input-buffer): Deleted. It's now a member of text -+ properties. -+ (<map>): Change the structure. Start state should have "" for keyseq. -+ (its-get-start-state): Follow chage of the <map> structure. -+ (its-reset-start, its-set-indicator, its-get-indicator): Likewise. -+ (its-new-state, its-new-map): Split from its-new-state/map. -+ (its-make-map): Deleted. -+ -+1997-03-17 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * its.el (its-buffer-insert-SYL-list): Use insert-and-inherit to -+ inherit properties. -+ (its-fence-overlay): Removed. Don't use overlay, as it has no -+ information in undo-list. -+ -+1997-03-16 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * its/hira.el ("n"): Use new feature END. -+ ("ppy", "bby", "ddy", "jjy", "zzy", "ggy", "lly", "rry", "hhy", -+ "cch", "tts", "tty", "ssh", "ssy", "kky"): its-defoutput. -+ -+ * its.el (its-defrule): Add argument END. -+ (its-buffer-delete-SYL): Bug fix. Use length instead of string-width. -+ -+1997-03-15 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * its.el (its-input-input-buffer): Implement the case of DSYL. -+ -+1997-03-14 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * its.el (its-buffer-delete-SYL): Handle the case of NIL. -+ -+ * its/hira.el: Implement "kka" and others. Implemlement "N". -+ (digit-characters, symbol-characters, downcase-alphabets, -+ upcase-alphabets): Delete useless defvar-s. -+ -+1997-03-14 NIIBE Yutaka <gniibe@akebono.etl.go.jp> -+ -+ * its/hira.el ("roma-kana"): Follow change of implementation of -+ state machine. -+ -+ Correct the abuse of the word "MODE". It seems that it's direct -+ influence of "mode" in Emacs, but it's not mode at all. -+ * its.el (its-map-alist): Renamed from its-mode-alist. -+ (its-get-map): Renamed from its-get-mode-map. -+ (its-set-map): Renamed from its-set-mode-map. -+ (its-define-state-machine): Renamed from its-define-mode. -+ (its-select-map-menu): Renamed from its-select-mode-menu. -+ (its-select-map-from-menu): Renamed from its-select-mode-from-menu. -+ (its-standard-map-list): Renamed from its-standard-modes. -+ (its-next-map): Renamed from its-next-mode. -+ (its-previous-map): Renamed from its-previous-mode. -+ (its-select-map): Renamed from its-select-mode. -+ (its-get-indicator): Renamed from its-get-mode-indicator. -+ -+ (its-select-map-from-menu): As it's not mode, don't need offer hooks. -+ (its-next-map): Likewise. -+ (its-previous-map): Likewise. -+ (its-select-map): Likewise. -+ -+ Change the implementation of its-mode-alist. Name is in <map> now. -+ * its.el (its-get-mode-map): Just do assoc. -+ (its-set-mode-map): Simplified. -+ -+ * its.el (its-get-indicator): Renamed from its-map-indicator. -+ (its-set-indicator): Renamed from its-map-set-indicator. -+ (its-get-start-state): Renamed from its-map-start. -+ (its-new-state): Change the argunents. -+ (its-map-set-start): Removed. -+ (its-reset-start): New function. -+ -+ Remove old implemantation of translator. -+ * its.el (its-resize, its-maps, its-actions, its-inputs, -+ its-level, its-maxlevel, its-char-from-buff, its-interactive): -+ Removed. -+ (its-make-action, its-reset-maps, its-current-map, -+ its-previous-map, its-level, its-enter-newlevel, its-reset-input, -+ its-flush-input-before-point, its-peek-char, its-read-char): -+ Removed. -+ (its-push-char, its-ordinal-charp, its-delete-charp): Removed. -+ (its-translate-region): Removed. -+ (its-buff-s, its-buff-e): Removed. -+ (its-state-terminalp): Removed. -+ -+ Remove selection of candidates in map, it's questionable to -+ implement this feature with SYL. Might rethink in future. -+ (its-make-menu-from-map-result, its-make-alist-from-map-result): -+ Removed. -+ (its-make-menu-from-map, its-make-menu-from-map*): Removed. -+ (its-make-alist-from-map, its-make-alist-from-map*): Removed. -+ (its-completing-read): Removed. -+ (its-minibuffer-local-must-match-map, -+ its-minibuffer-local-completion-map): Removed. -+ (its-minibuffer-completion-help, car-string-lessp, -+ its-temp-echo-area-contents): Removed. -+ -+ Implement SYL-based state machine. -+ * its.el (its-input-buffer, its-barf-on-invalid-keyseq): New variables. -+ (its-new-input-buffer): New function. -+ (its-self-insert-char): New command. -+ (its-initial-ISYL, its-make-DSYL, its-make-VSYL, -+ its-input-input-buffer, its-input-input-buffer-sub, -+ its-state-machine, its-state-machine-keyseq, -+ its-buffer-delete-SYL, its-buffer-insert-SYL-list, -+ its-get-next-state, its-get-ksa/b, its-get-keyseq, its-ksa-p, -+ its-get-output): New function. -+ (its-get-KAS): Removed. -+ (its-get-state, its-get-action, its-set-action): Removed. -+ (its-make-KAS, its-get-KAS): Removed. -+ -+ * its.el (its-defrule-sub): Merged into its-defrule. -+ -+1997-03-13 NIIBE Yutaka <gniibe@akebono.etl.go.jp> -+ -+ * its.el: (its-define-mode): Change the arguments. -+ * its/zhuyin.el ("zhuyin"): Follow the changes of its-define-mode. -+ * its/zenkaku.el ("zenkaku-downcase"): Likewise. -+ * its/pinyin.el ("PinYin"): Likewise. -+ * its/kata.el ("roma-kata"): Likewise. -+ * its/kanainput.el ("kanainput"): Likewise. -+ * its/hira.el ("roma-kana"): Likewise. -+ * its/hankaku.el ("downcase"): Likewise. -+ * its/hangul.el ("hangul"): Likewise. -+ * its/han-kata.el ("roma-han-kata"): Likewise. -+ -+ * its.el (its-action-output, its-action-next, its-get-next-map, -+ its-set-next-map): Removed. -+ (its-make-next-state): New function. -+ (its-make-state): Removed. -+ -+ * its.el (its-defrule-sub): Renamed from `its-defrule**'. -+ -+ * wnnfns.h: New file. Macros for WNN6 are defined here. -+ * wnn6fns.c: New file. Moved from wnnfns.c for WNN6 specific -+ functions. -+ -+1997-03-12 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * wnnfns.c: cosmetic changes (indentation, commenting-out-style, -+ and compare to Qnil, etc). -+ Get rid of "register" qualifier. -+ -+1997-03-05 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * its.el (its-define-mode): Change internal structure. Completely -+ rewritten. -+ (its-make-map): Function to make map. -+ (its-make-state): New function. Make new state. -+ (its-make-KAS): New function. Make Key-Action-State triad. -+ (its-state-terminalp): New function. True when the state is -+ terminal. -+ (its-map-indicator, its-map-set-indicator,): Changed. -+ (its-map-terminalp, its-map-incrementalp, -+ its-map-set-incrementalp, its-map-alist, its-map-set-alist, -+ its-map-action, its-map-set-action): Removed. -+ -+ (its-defrule-verbose): Deleted. Seems debug purpose variable. -+ -+ (its-make-map): Removed <state>. It was useless space eater. -+ (its-map-indicator, its-map-set-indicator, its-map-alist, -+ its-map-set-alist, its-map-action, its-map-set-action): Follow the -+ change. -+ (its-define-mode): Likewise. -+ (its-defrule**): Change the argument. Delete STATE. -+ (its-defrule): Likewise. -+ (its-map-state, its-map-set-state): Removed. -+ -+ <topmap>: Changed the structure. Introduce <incrementalp>, which -+ is t on hangul-map, zhuyin-map, and kanainput-map. -+ (its-define-mode): Change the arguments. INDICATOR and RESET is -+ always required. Add new argument INCREMENTALP. -+ * its/kanainput.el ("kanainput"): Use new API of its-define-mode. -+ * its/hangul.el ("hangul"): Likewise. -+ * its/zhuyin.el ("zhuyin"): Likewise. -+ * its.el (its-make-terminal-state-sofar): Removed. -+ (its-default-make-terminal-state): Removed. -+ (its-make-terminal-state): Removed -+ (its-make-non-terminal-state): Removed. Not used. -+ (its-map-incrementalp, its-map-set-incrementalp): New functions. -+ -+1997-03-04 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * its.el (its-defrule-conditional, its-defrule-conditional*): -+ Removed. Evaluating cond clause at runtime is stupid. Rules -+ should be determined at compile time, not at run time. -+ (its-get-action): Simplified. It's always standard. -+ (its-make-terminal-state-sofar): Likewise. -+ (its-make-action): Renamed from its-make-standard-action. -+ (its-standard-actionp): Removed. No use. -+ (its-translate-region): Simplified. -+ -+ (its-map-topmap-p): Removed. No use. -+ -+ (its-simple-actionp, its-collect-simple-action): Removed. No use. -+ -+ (its-insert-output-string, its-display-status-string): Removed. -+ It seemd these variables is to debug ITS itself. -+ (its-translate-region): Simplified. -+ -+ * its/hira.el (".", ",", "n", "nn"): Rules should be determined at -+ compile time. -+ * its/han-kata.el: Likewise. -+ * its/kata.el: Likewise. -+ -+ * its.el (its-make-standard-action): Simplified. -+ (its-make-standard-action): Remove alternative output. -+ (its-standard-actionp): Simplified. -+ (its-action-next): Simplified. -+ (its-select-alternative-output-menu): Removed. Not used at all. -+ (its-select-alternative-output): Ditto. -+ -+ * its/han-kata.el, its/zenkaku.el, its/kata.el, its/kanainput.el, -+ its/hira.el, its/hankaku.el: Add (require cl). -+ -+ * its.el (its-enable-double-n-syntax, its-use-kuten-for-period, -+ its-use-touten-for-comma, its-zenkaku-escape, its-hankaku-escape): -+ Declare here. Add prefix `its-'. ): -+ -+ (its-defrule, its-defrule*): Remove MAP argument. -+ Merged into its-defrule. -+ -+1997-03-04 NIIBE Yutaka <gniibe@akebono.etl.go.jp> -+ -+ * its.el (its-completing-input-menu): Removed. Not used. -+ (its-completing-input): Ditto. -+ (its-translate-region): Remove (null action) clause. It's identical -+ to 't' case. -+ -+ (its-map-supers): Deleted. -+ (its-map-set-supers): Ditto. -+ (its-get-next-map-locally): Deleted. -+ -+ (its-define-mode): Remove supers. -+ (its-make-map): Likewise. -+ -+ (its-simulate-input): sref -> aref. add char-bytes -> +1. -+ (its-defrule**): Likewise. -+ -+ (its-flush-input-before-point): Delete useless save-excursion. -+ (its-push-char): Likewise. -+ (its-translate-region): Likewise. -+ -+ * its/zhuyin.el (its-make-terminal-state): -+ * its/kanainput.el (its-make-terminal-state): -+ * its/hangul.el (its-make-terminal-state): -+ Use its-make-terminal-state-sofar. -+ -+ * its/kanainput.el (its-make-terminal-state-kanainput): Removed. -+ -+ * its.el (its-make-terminal-state-sofar): Renamed. -+ (was: its-make-terminal-state-hangul) -+ -+ * its/han-kata.el (its-select-hankaku-katakana): Renamed. -+ (was: its:select-hankaku-katakana). -+ -+ * its.el (its-map-topmap-p, its-map-supers, its-map-set-supers, -+ its-map-terminalp, its-map-state, its-map-set-state, -+ its-map-indicator, its-map-set-indicator, its-map-action, -+ its-map-set-action, its-map-alist, its-map-set-alist, -+ its-get-action, its-action-output, its-action-next, -+ its-get-next-map, its-get-next-map-locally, its-set-next-map, -+ its-collect-simple-action, its-read-current-its-string, -+ its-make-map): Add prefix 'its-'. -+ -+ * its.el (its-defrule-select-mode-temporally): Deleted. -+ (its-select-mode-temporally): Deleted. -+ (its-select-previous-mode): Deleted. -+ -+ * its/hira.el ("q", "Q"): Removed. -+ -+ * its.el (its-defrule**): Don't call coerce-internal-string. -+ (map-state-string): Removed. -+ (its-default-make-standard-non-terminal-state): Don't call -+ map-state-string. -+ -+ * egg.el (characterp, coerce-internal-string, coerce-string): Removed. -+ -+ * its.el (its-insert-char): Deleted. -+ (its-internal-mode-alist): Removed. -+ (its-set-mode-map, its-define-mode): Remove internalp. -+ (its-set-mode-indicator): Removed. -+ -+ * egg-fence.el (egg-fence-self-insert-command): Add prefix 'egg-'. -+ -+ * its.el (fence-self-insert-command): Move to egg-fence.el. -+ -+ * egg-fence.el (egg-exit-fence-mode): Renamed (egg-fence-exit-mode). -+ (egg-enter-fence-mode-and-self-insert): Deleted. -+ -+ * egg.el (egg-quit-egg-mode): Deleted. -+ -+ * egg-misc.el (egg-fence-toggle-egg-mode): Add prefix 'egg-'. -+ (egg-fence-toggle-egg-mode): beep -> ding. -+ (global-map): bind C-\ to egg-enter-fence-mode. -+ -+1997-03-02 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * egg-henkan.el: New file. -+ -+ Use new API (egg-get-bunsetu-kanji, egg-get-bunsetu-yomi, -+ egg-is-dai-bunsetu, bunsetu-suu, egg-hindo-update, -+ egg-get-bunsetu-end). -+ -+ * wnn-egg.el: Move egg-henkan-* to egg-henkan.el. -+ -+ * wnn-egg.el (egg-startup-file-search-path): Remove current -+ directory. -+ (egg-open-wnn): Renamed from EGG-open-wnn. -+ (bunsetu-suu): New function. -+ (egg-get-bunsetu-kanji, egg-get-bunsetu-yomi): New function. -+ (egg-is-dai-bunsetu): New function. -+ (egg-hindo-update): New function. -+ (egg-get-bunsetu-end): New function. -+ -+ (egg-henkan-region, egg-gyaku-henkan-region, -+ egg-henkan-region-internal, egg-henkan-paragraph, -+ egg-gyaku-henkan-paragraph, egg-henkan-sentence, -+ egg-gyaku-henkan-sentence, egg-henkan-word, egg-gyaku-henkan-word, -+ egg-henkan-insert-kouho, egg-henkan-kakutei, -+ egg-henkan-kakutei-first-char, egg-henkan-kakutei-before-point, -+ egg-sai-henkan, egg-henkan-goto-bunsetu, -+ egg-henkan-forward-bunsetu, egg-henkan-backward-bunsetu, -+ egg-henkan-first-bunsetu, egg-henkan-last-bunsetu, -+ egg-henkan-hiragana, egg-henkan-katakana, egg-henkan-next-kouho, -+ egg-henkan-next-kouho-dai, egg-henkan-next-kouho-sho, -+ egg-henkan-previous-kouho, egg-henkan-previous-kouho-dai, -+ egg-henkan-previous-kouho-sho, egg-henkan-goto-kouho, -+ egg-henkan-bunsetu-chijime-dai, egg-henkan-bunsetu-chijime-sho, -+ egg-henkan-bunsetu-nobasi-dai, egg-henkan-saishou-bunsetu, -+ egg-henkan-saichou-bunsetu, egg-bunsetu-length-henko, -+ egg-henkan-quit, egg-henkan-select-kouho, -+ egg-henkan-select-kouho-dai, egg-henkan-select-kouho-sho, -+ egg-henkan-word-off, egg-henkan-kakutei-and-self-insert, -+ egg-henkan-mode-map, egg-henkan-mode-esc-prefix, -+ egg-henkan-help-command, egg-henkan-inspect-bunsetu): -+ Add prefix `egg-'. -+ -+ (egg-henkan-mode-in-use): Deleted. -+ (set-egg-henkan-mode-format): Deleted. Don't need. -+ -+ (disconnect-wnn): Let it be normal function, instead of command. -+ (close-wnn): Ditto. -+ -+ (set-jserver-host-name, set-kserver-host-name, -+ set-cserver-host-name): Use defalias. -+ -+ (close-wnn): Take an argument of wnn-server-type. -+ (wnn-egg-kill-emacs-function, set-wnn-host-name, -+ set-cwnn-host-name, set-kwnn-host-name): Likewise. -+ -+ * egg.el (egg-global-map-backup): Deleted. -+ (egg-local-map-backup): Deleted. -+ (egg-insert-after-hook): it's global variable, nod buffer-local. -+ -+ * egg-fence.el (egg-henkan-fence-region, egg-enter-fence-mode, -+ egg-fence-katakana, egg-fence-hiragana, egg-fence-hankaku, -+ egg-fence-zenkaku, egg-fence-backward-char, -+ egg-fence-forward-char, egg-fence-beginning-of-line, -+ egg-fence-end-of-line, egg-fence-transpose-chars, -+ egg-fence-delete-char, egg-fence-backward-delete-char, -+ egg-fence-kill-line, egg-fence-exit-mode, egg-fence-cancel-input, -+ egg-fence-mode-help-command): Add Prefix `egg-'. -+ -+ (egg-fence-mode-map): Remove binding to eval-expression (C-z). -+ -+ (egg-self-insert-non-undo-count): Removed. -+ (egg-self-insert-command): Removed. -+ -+ (egg-fence-backward-char, egg-fence-forward-char, -+ egg-fence-transpose-chars, egg-fence-delete-char, -+ egg-fence-backward-delete-char): beep -> ding. -+ wnn-egg.el (egg-henkan-select-kouho): Likewise. -+ -+1997-02-27 NIIBE Yutaka <gniibe@chroot.org> -+ -+ * wnn-egg.el (push-end, push-end-internal): Removed. -+ -+ * its.el (dolist): Removed. It's in CL package. -+ (for-each, for-each*): Removed. -+ -+ * egg-keymap.el: Removed. I guess noone use it. -+ -+ * egg-jsymbol.el (*-alist): Declare by defconst. -+ -+ * egg-misc.el (toggle-egg-mode): Removed. -+ -+ * All files: Change the identifier XXX:YYYY --> XXX-YYYY, -+ and *YYY* ---> YYY. -+ -+ * egg-fence.el (enter-fence-mode): Use new API for marker -+ insertion `set-marker-insertion-type'. -+ * its.el (its-*buff-e*): Likewise. -+ -+ * egg-jsymbol.el: lc-jp --> (charset-id 'japanese-jisx0208) -+ lc-jp2 --> (charset-id 'japanese-jisx0212). -+ -+1997-02-26 NIIBE Yutaka <gniibe@akebono.etl.go.jp> -+ -+ * egg-fence.el (egg:fence-mode-map): Renamed from fence-mode-map. -+ (egg:fence-mode-esc-prefix): Renamed from egg:fence-mode-esc-map. -+ (henkan-fence-region-or-single-space): Removed. -+ -+ * egg-misc.el (toggle-egg-mode): mc-flag -+ -> enable-multibyte-characters. -+ -+ * its.el (read-current-its-string): New function. Moved from -+ wnn-egg-misc.el. -+ (In meny functions): beep --> ding. -+ -+ * egg-misc.el (read-hiragana-string): Removed. -+ (read-kanji-string): Removed. -+ (egg:special-symbol-input): Renamed from special-symbol-input. -+ (egg:special-symbol-input-point): Renamed from -+ special-symbol-input-point. -+ (si:*global-map*): Remeved. -+ Removed 'Changes on Global map'. -+ (its-mode-map): Renamed from mule-keymap. -+ -+ * wnn-egg.el (henkan-region-internal): Use new API for undo. -+ (henkan-kakutei): Likewise. -+ (henkan-kakutei-first-char): Likewise. -+ (henkan-kakutei-before-point): Likewise. -+ (sai-henkan): Likewise. -+ * egg.el (egg:quit-egg-mode): Likewise. -+ -+ * egg-fence.el (egg:*fence-open*, egg:*fence-close*, -+ egg:*fence-face*): Let them be declared by defvar. -+ (egg:*fence-open-in-cont*, egg:*fence-close-in-cont*, -+ egg:*fence-face-in-cont*): Likewise. -+ -+ (set-egg-fence-mode-format): Removed. Useless. Don't need to be -+ interactive. -+ (set-egg-fence-mode-format-in-cont): Removed. -+ (egg:*face-alist*): Removed. -+ -+ * wnn-egg-misc.el (its:select-mode, its:select-mode-from-menu, -+ its:next-mode, its:previous-mode): -+ Removed (Merged into its.el). -+ -+ * its.el (its:select-mode, its:select-mode-from-menu, -+ its:next-mode, its:previous-mode): Call hook of -+ `its:select-mode-hook'. -+ -+ * diced.el: Removed. This depends on wnn. Functions are moved to -+ wnn-egg-dict.el. -+ -+ * wnn-egg-dict.el (remove-regexp-in-string): Removed. -+ (toroku-region): Don't call `remove-regexp-in-string'. Removing -+ invalid sequence (TAB?) automatically is not good idea. It should -+ notify user. Currently, just don't remove. -+ -+ * busyu.el (busyu-table): defconst instead of defvar. -+ (busyu-kaku-alist): defconst instead of defvar. -+ -+ * its.el (egg:member): Removed. Not used. -+ -+ * wnn-egg-msg.el (*egg-message-alist*): Include asking string in -+ register-notify and remove-notify. Should also change Korean and -+ Chinese. -+ -+ * egg.el: Removed "Tamago Notification System". -+ It is useless, as we have *Messages* buffer in GNU Emacs 19. -+ -+ * diced.el (diced-execute): Don't use `notify' but `message'. -+ (set-dict-comment): Likewise. -+ * its.el (its-defrule**): Likewise. -+ * wnn-egg-dict.el (egg:toroku-word): Likewise. -+ * wnn-egg-msg.el (egg:error): Likewise. -+ * wnn-egg.el (set-wnn-param): Likewise. -+ (EGG:open-wnn): Likewise. -+ (close-wnn): Likewise. -+ (henkan-word-off): Likewise. -+ (henkan-inspect-bunsetu): Likewise. -+ -+ * diced.el (diced-execute): Don't use `notify-yes-or-no-p' but use -+ plain `yes-or-no-p' and format. -+ * wnn-egg-dict.el (egg:toroku-word): Likewise. -+ -+ * egg.el (notify-yes-or-no-p-internal): IIDESUKA is not good. -+ it should get the message through egg:get-msg. Currently, use -+ "OK?". -+ (notify-y-or-n-p-internal): Likewise. -+ -+ * wnn-egg.el: Split into wnn-egg-dict.el, wnn-egg-misc.el, and -+ wnn-egg-msg.el. -+ (many functions): remove commented out line of -+ (open-wnn-if-disconnected). -+ -+ * egg.el: Split into egg.el, egg-fence.el, egg-misc.el, -+ jis-input.el, and modeline.el. -+ -+ * wnn-egg.el (egg-default-startup-file): change to eggrc-wnn from -+ eggrc. -+ (henkan-region-internal): Use new API for marker insertion -+ `set-marker-insertion-type'. -+ -+1997-02-13 NIIBE Yutaka <gniibe@akebono.etl.go.jp> -+ -+ * menu.el (menu:select-from-menu): Rewritten. -Index: ChangeLog.2000-2001 -=================================================================== -RCS file: ChangeLog.2000-2001 -diff -N ChangeLog.2000-2001 ---- /dev/null 1 Jan 1970 00:00:00 -0000 -+++ ChangeLog.2000-2001 25 Aug 2002 23:55:41 -0000 1.2 -@@ -0,0 +1,371 @@ -+2001-12-01 ? -+ -+ * egg/wnn.el (wnn-server-info-list): Use `defvar' instead of -+ `defconst' to define it. -+ -+2001-12-01 KATAYAMA Yoshio <kate@pfu.fujitsu.com> -+ -+ * egg-x0213.el: New file. -+ -+2001-11-10 Kinji Itoh <kinji-i@gray.plala.or.jp> -+ (cf. http://cgi18.plala.or.jp/nyy/canna/canna-20011023-20011110.diff) -+ -+ * egg/canna.el (canna-server-port): Default to the string "canna". -+ (cannna-open): Treat the port name as a string instead of a number. -+ -+2001-11-08 Kinji Itoh <kinji-i@gray.plala.or.jp> (cf. [tamago:00546]) -+ -+ * egg/canna.el (canna-set-converted-yomi): New function. -+ (canna-start-conversion): Use it. -+ (canna-change-bunsetsu-length): Use it. -+ -+2001-10-22 Yoichi NAKAYAMA <yoichi@eken.phys.nagoya-u.ac.jp> -+ (cf. [tamago:00534]) -+ -+ * egg/canna.el (canna-word-delete-regist): Signal an error using -+ `egg-error' if there is no text for yomi. -+ -+2001-08-16 KATAYAMA Yoshio <kate@pfu.fujitsu.com> (cf. [tamago:00516]) -+ -+ * its/greek.el: New file. -+ -+2001-07-24 KATAYAMA Yoshio <kate@pfu.fujitsu.com> (cf. [tamago:00504]) -+ -+ * eggrc (wnn7-jserver-setup): New function. -+ -+2001-06-28 Yoshiki Hayashi <yoshiki@xemacs.org> (cf. [tamago:00468]) -+ -+ * egg-cnv.el (egg-end-of-conversion-buffer): Replace -+ `next-single-property-change' to `egg-next-single-property-change'. -+ (egg-decide-before-point): Ditto. -+ (egg-exit-conversion): Ditto. -+ (egg-abort-conversion): Ditto. -+ -+ * egg.el (egg-last-method-name): Default to nil. -+ -+ * its-keydef.el: Set the default value of `its-select-func-alist' -+ to nil. -+ -+ * its.el (its-current-language): Default to nil. -+ (its-mode-map): Use `(meta KEY)' instead of `M-KEY'. -+ -+ * egg/canna.el (canna-open): Use `binary' instead of -+ `no-conversion' for the process coding-system. -+ * egg/sj3.el (sj3-open): Ditto. -+ * egg/wnn.el (wnn-open): Ditto. -+ -+ * egg/wnnrpc.el (wnnrpc-with-temp-buffer): Use `binary' instead of -+ `no-conversion'. -+ (wnnrpc-with-write-file): Ditto. -+ -+2001-05-24 KATAYAMA Yoshio <kate@pfu.fujitsu.com> (cf. [tamago:00462]) -+ -+ * its/aynu.el: Require `cl' when compiling. -+ -+2001-05-23 Katsumi Yamaoka <yamaoka@jpl.org> (cf. [tamago:00461]) -+ -+ * egg.el: Require `cl' only when compiling. -+ * its.el: Ditto. -+ -+2001-05-22 KATAYAMA Yoshio <kate@pfu.fujitsu.com> -+ -+ * its.el (its-delete-by-character): New customizable variable. -+ (its-delete-backward-SYL): Delete a character as a unit even if -+ just after input, if its-delete-by-character is non-NIL. -+ -+2001-04-16 KATAYAMA Yoshio <kate@pfu.co.jp> -+ -+ * egg.el (egg-setup-invisibility-spec): New function for setup -+ buffer-invisibilty-spec. -+ -+ * its.el (its-setup-fence-mode): Change the value of invisible -+ property to egg. -+ -+ * egg-cnv.el (egg-convert-region): Change the value of invisible -+ property to egg. -+ -+ * jisx0213.el: Correct JIS X 0213 definition. (suggested by -+ T. Kawabata) -+ -+2000-06-02 KATAYAMA Yoshio <kate@pfu.co.jp> -+ -+ * egg/wnn.el (wnn): Fix docstring. -+ (wnn-backend-plist): Include egg-special-candidate. -+ (wnn-special-candidate): New function. -+ (wnn-pinyin-zhuyin-bunsetsu, wnn-pinyin-zhuyin-string): New -+ functions. -+ (egg-activate-wnn): Fix docstring. -+ -+ * egg/sj3.el (sj3, egg-activate-sj3): Fix docstring. -+ -+ * egg/canna.el (egg-activate-canna): Fix docstring. -+ -+ * menudiag.el: Mostly rewritten. -+ -+ * leim-list.el: Docstrings for autoload fixed. -+ -+ * its.el (its): Fix docstring. -+ (its-mode-map): Fix bindings. -+ (its-fence-mode, egg-sub-mode-map-alist): New variables. -+ (its-enter/leave-fence): New function. -+ (its-put-cursor): Add text properties point-entered, point-left, -+ modification-hooks. -+ (its-in-fence-p): Check also read-only property. -+ (its-hiragana, its-katakana): Just call its-convert. -+ (its-hankaku, its-japanese-hankaku): These functions deleted. -+ (its-full-half-table, its-half-full-table): New variables. -+ Initialize them. -+ (its-half-width, its-full-width): New functions. -+ (its-convert): Args changed. -+ -+ * its-keydef.el (its-make-select-func): Add check by -+ (egg-conversion-fence-p). -+ -+ * egg.el (egg): Fix docstring. -+ (egg-current-keymap): This variable deleted. -+ (egg-mode-map-alist, egg-sub-mode-map-alist): New variables. -+ (define-egg-mode-map): New macro. -+ (modefull, modeless): New egg mode maps. -+ (egg-enter/leave-fence-hook): New variable. -+ (egg-enter/leave-fence): New function. -+ (egg-activated): New variable. -+ (egg-activate-keymap): New variable. -+ (egg-modify-fence, egg-post-command-func): New functions. -+ (egg-change-major-mode-buffer): New variable. -+ (egg-activate-keymap-after-command, egg-change-major-mode-func): -+ New functions. -+ (egg-mode): Initialize egg-modefull-mode, egg-modeless-mode. -+ (egg-modefull-map, egg-modeless-map): These functions deleted. -+ (egg-set-face): Preserve the current modification-hooks property. -+ -+ * egg-com.el (ccl-decode-egg-binary): Fix BUFFER-MAGNIFICATION. -+ (ccl-encode-egg-binary): Likewise. -+ -+ * egg-cnv.el (egg-conv): Fix docstring. -+ (egg-conversion-auto-candidate-menu): Fix docstring. -+ (egg-conversion-auto-candidate-menu-show-all): New variable. -+ (egg-conversion-sort-by-converted-string): New variable. -+ (egg-conversion-fence-p): New function. -+ (egg-define-backend-functions): Include egg-special-candidate. -+ (egg-conversion-map): Define up, down, etc. -+ (egg-conversion-mode): New variable. Register it in -+ egg-sub-mode-map-alist. -+ (egg-conversion-enter/leave-fence): New function. Register it in -+ egg-enter/leave-fence-hook. -+ (egg-exit-conversion-unread-char): Use single setq. -+ (egg-make-bunsetsu): Add text properties point-entered and -+ point-left. -+ (egg-set-menu-mode-in-use, egg-unset-menu-mode-in-use) -+ (egg-set-candsel-info): Args changed. -+ (egg-get-candsel-target-major): Code changed. -+ (egg-get-candsel-target-minor): Code changed. -+ (egg-insert-new-bunsetsu): Args changed. -+ (egg-candidate-select-counter): Make it buffer local. -+ (egg-next-candidate-internal): Args changed. -+ (egg-sort-item): New functions. -+ (egg-select-candidate-major): New arg SORT. -+ (egg-select-candidate-minor, egg-select-candidate-list-all-major) -+ (egg-select-candidate-list-all-minor) -+ (egg-select-candidate-internal): Likewise. -+ (egg-hiragana): New function. -+ (egg-katakana, egg-pinyin, egg-zhuyin, egg-hangul): Aliases of -+ egg-hiragana. -+ (egg-special-convert): New function. -+ (egg-enlarge-bunsetsu-internal): Code changed. -+ (egg-reconvert-bunsetsu-internal, egg-decide-before-point) -+ (egg-decide-first-char, egg-exit-conversion) -+ (egg-abort-conversion): Likewise. -+ -+2000-02-01 Takanori Saneto <sanewo@ba2.so-net.ne.jp> -+ -+ * egg/sj3rpc.el (sj3rpc-tanbunsetsu-conversion): should use -+ let* instead of let. -+ -+2000-01-20 Katsumi Yamaoka <yamaoka@jpl.org> -+ -+ * egg/sj3.el (sj3-word-registration): New function. -+ (sj3-hinshi-select): New function. -+ (sj3-dictionary-select): New function. -+ (sj3-conversion-backend): Add `sj3-word-registration'. -+ (sj3-hinshi-name): New function. -+ (sj3-hinshi-menu): New variable. -+ (sj3-register-2, sj3-register-1): Add messages. -+ (sj3-server-coding-system-list): Remove. -+ (sj3-server-version): Move to egg/sj3rpc.el. -+ (sj3-server-port, sj3-hostname): Strip "*" from the doc string. -+ -+ * egg/sj3rpc.el (sj3rpc-add-word): New function. -+ (sj3rpc-kugiri-stdy, sj3rpc-get-bunsetsu-candidates): Use -+ `sj3-server-coding-system' insted of `sj3rpc-server-coding-system'. -+ (sj3rpc-tanbunsetsu-conversion, sj3rpc-get-bunsetsu-candidates-sub, -+ sj3rpc-begin): Use `sj3-server-coding-system' insted of -+ `sj3rpc-server-coding-system'; don't specify an argument of -+ `sj3rpc-unpack-mb-string'. -+ (sj3rpc-unpack-mb-string): Don't allow the argument; use -+ `sj3rpc-server-coding-system'. -+ (sj3rpc-server-coding-system): Remove macro. -+ (sj3-const): Switch on the return value of `sj3-sjis-p' instead of -+ `sj3-server-version'. -+ (sj3-sjis-p): New macro. -+ (sj3-server-coding-system): New variable; default to `shift_jis'. -+ (sj3-server-version): Move from egg/sj3.el; use `defvar' insted of -+ `defcustom'. -+ -+ * eggrc: Remove SJ3 stuff. -+ -+2000-01-17 TOMURA Satoru <tomura@etl.go.jp> -+ -+ * Version 4.0.6 released -+ -+2000-01-17 TOMURA Satoru <tomura@etl.go.jp> -+ -+ * README.ja.text: mentiond about doc/lc99.text -+ -+2000-01-17 KATAYAMA Yoshio <kate@pfu.co.jp> -+ -+ * its.el (its-hiragana, its-katanaka): modified -+ (its-zenkaku, its-hankaku): added -+ (its-put-cursor): bug fixed. -+ (its-set-cursor-status): redefined. -+ (its-search-beginning, its-search-end): created. -+ (its-end-of-input-buffer): modified. -+ (its-kill-line): modified. -+ (its-cancel-input): modified. -+ (its-japanese-hankaku): added. -+ (its-convert): added. -+ * egg.el (egg-redraw-face): bug fixed. -+ -+2000-01-17 SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> -+ -+ * its.el (its-hiragana, its-katakana): re-added. -+ -+2000-01-17 SANETO Takanori <sanewo@ba2.so-net.ne.jp> -+ -+ * Makefile.in: move its-keydefs.el from ITSELS to TOPELS -+ -+2000-01-16 -+ -+ * egg-sim.el: many functions renamed and modified... -+ * doc/code-table: created -+ -+2000-01-15 TOMURA Satoru <tomura@etl.go.jp> -+ -+ * egg-sim.el: rename egg-code.el as egg-sim.el -+ * egg-sim.el (egg-simple-input-method): rename -+ egg-insert-character as egg-simple-input-method -+ * egg.el: rename egg-insert-character as egg-simple-input-method -+ * doc/lc99.txt: added. -+ -+2000-01-14 TOMURA Satoru <tomura@etl.go.jp> -+ * egg-code.el: created -+ * egg.el: Bind egg-insert-character to C-^ in egg-mode -+ * egg.el: Delete the binding for C-_ in egg-mode -+ * Makefile.in: add egg-code to ${SRCS} -+ -+2000-01-13 TOMURA Satoru <tomura@etl.go.jp> -+ -+ * Version 4.0.5 released. -+ -+2000-01-13 Katsumi Yamaoka <yamaoka@jpl.org> -+ -+ * egg/sj3.el (sj3-end-conversion): Restrain from overrunning. -+ -+2000-01-13 Katsumi Yamaoka <yamaoka@jpl.org> -+ * egg/sj3rpc.el (sj3rpc-open): Use `sj3-server-version' instead of -+ 2. -+ (sj3rpc-unpack-mb-string): New macro. -+ (sj3rpc-tanbunsetsu-conversion, sj3rpc-get-bunsetsu-candidates-sub, -+ sj3rpc-begin): Use it instead of `comm-unpack'. -+ -+ (sj3rpc-server-coding-system): New macro. -+ (sj3rpc-kugiri-stdy, sj3rpc-tanbunsetsu-conversion, -+ sj3rpc-get-bunsetsu-candidates, sj3rpc-get-bunsetsu-candidates-sub, -+ sj3rpc-begin, sj3rpc-unpack-mb-string): Use it. -+ -+ (sj3-const): Switch on the value of `sj3-server-version'. -+ (sj3rpc-kugiri-stdy, sj3rpc-tanbunsetsu-conversion, -+ sj3rpc-get-bunsetsu-candidates, sj3rpc-get-bunsetsu-candidates-sub, -+ sj3rpc-begin): Modify for it. -+ -+ * egg/sj3.el (sj3-server-coding-system-list): New user option. -+ (sj3-server-version): Ditto. -+ -+2000-01-13 SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> -+ -+ * its.el: typo -+ * egg.el: typo -+ -+2000-01-13 KATAYAMA Yoshio <kate@pfu.co.jp> -+ -+ * its.el(its-hiragana, its-katakana): does not work. so deleted. -+ -+2000-01-12 NAKAJI Hiroyuki <nakaji@tutrp.tut.ac.jp> -+ -+ * README.ja.txt: typo -+ * Makefile.in: (clean, distclean): modified. -+ -+2000-01-12 TOMURA Satoru <tomura@etl.go.jp> -+ -+ * Version 4.0.4 released. -+ -+2000-01-12 TOMURA Satoru <tomura@etl.go.jp> -+ -+ * REAMDE: removed. -+ -+ * README.ja.txt: created. -+ -+2000-01-12 SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> -+ -+ * Makefile.in: "clean" removes ${ELCS}. -+ -+ * Makefile.in: "distclean" created. -+ -+2000-01-12 Satoru Tomura <tomura@etl.go.jp> -+ -+ * Version 4.0.3 released. -+ -+2000-01-12 Satoru Tomura <tomura@etl.go.jp> -+ -+ * install-sh: copied from automake distribution -+ -+ * configure.in: created -+ -+ * Makefile.in: created -+ -+ * configure: generated by autoconf -+ -+2000-01-11 Satoru Tomura <tomura@etl.go.jp> -+ -+ * leim-list.el: (defgroup sj3) added. -+ -+ * egg/sj3.el (sj3-hosname, sj3-server-port): defcusotm'ed -+ -+2000-01-11 Katsumi Yamaoka <yamaoka@jpl.org> -+ -+ * egg/sj3.el : (require 'egg) added. -+ -+2000-01-11 SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> -+ -+ * its.el (its-hiragana, its-katakana): New functions -+ -+2000-01-07 Tomura Satoru <tomura@etl.go.jp> -+ -+ * COPYING: The file is added. -+ -+ * ChangeLog.1: The original ChangeLog is renamed as. -+ -+ * ChangeLog: Created. -+ -+2000-01-07 Tomura Satoru <tomura@etl.go.jp> -+ -+ * Version 4.0.2 released. -+ -+2000-01-06 Tomura Satoru <tomura@etl.go.jp> -+ -+ * Version 4.0.1 released. -+ -+2000-01-05 Tomura Satoru <tomura@etl.go.jp> -+ -+ * Version 4.0.0 released. -+ -+ -Index: Makefile.in -=================================================================== -RCS file: /cvs/tamago/tamago/Makefile.in,v -retrieving revision 1.1.1.4 -retrieving revision 1.6 -diff -d -u -p -r1.1.1.4 -r1.6 ---- Makefile.in 27 Jan 2001 18:46:59 -0000 1.1.1.4 -+++ Makefile.in 9 Sep 2002 08:50:42 -0000 1.6 -@@ -8,6 +8,10 @@ - .SUFFIXES: - SHELL = @SHELL@ - -+srcdir = @srcdir@ -+top_srcdir = @top_srcdir@ -+VPATH = @srcdir@ -+ - #------------------------------------------------ - # Configuration parameters - #------------------------------------------------ -@@ -31,7 +35,7 @@ INSTALL_INFO = install-info - # ;; install files into the emacs site-lisp directory - # ;; ex. /usr/local/share/emacs/site-lisp/egg - --DEPS = -l ./docomp.el -+DEPS = -l $(top_srcdir)/docomp.el - BATCHFLAGS = -batch -q -no-site-file -no-init-file - - ETCS = Makefile docomp.el \ -@@ -46,7 +50,6 @@ TOPSRCS = \ - egg-edep.el \ - egg-com.el \ - egg-cnv.el \ -- egg-util.el \ - egg-mlh.el \ - egg-sim.el \ - menudiag.el \ -@@ -58,12 +61,16 @@ EGGSRCS = \ - egg/cannarpc.el egg/canna.el \ - egg/sj3rpc.el egg/sj3.el \ - egg/wnnrpc.el egg/wnn.el \ -+ egg/anthyipc.el egg/anthy.el - - # -+AYNU = @HAVE_JISX0213@ its/aynu.el -+ - ITSSRCS = \ - its/ascii.el \ - its/bixing.el \ - its/erpin.el \ -+ its/greek.el \ - its/hankata.el \ - its/hira.el \ - its/jeonkak.el \ -@@ -74,6 +81,7 @@ ITSSRCS = \ - its/quanjiao.el \ - its/zenkaku.el \ - its/zhuyin.el \ -+ ${AYNU} - - # - ELCS = ${SRCS:.el=.elc} -@@ -86,6 +94,7 @@ ITSELCS = ${ITSSRCS:.el=.elc} - - DIST = ${ETCS} ${SRCS} ${INITELS} - -+ - all: ${ELCS} - - .SUFFIXES: .el .elc -@@ -138,9 +147,7 @@ uninstall-site: - egg/sj3rpc.elc: egg-com.elc egg/sj3.elc - egg/wnnrpc.elc: egg-com.elc egg/wnn.elc - --egg.elc its/ascii.elc its/erpin.elc its/hankata.elc \ --its/hira.elc its/jeonkak.elc its/pinyin.elc \ -+egg.elc its/ascii.elc its/aynu.elc its/erpin.elc its/greek.elc \ -+its/hankata.elc its/hira.elc its/jeonkak.elc its/pinyin.elc \ - its/hangul.elc its/kata.elc its/quanjiao.elc \ - its/zenkaku.elc its/zhuyin.elc: its-keydef.elc -- -- -Index: check-jisx0213.el -=================================================================== -RCS file: check-jisx0213.el -diff -N check-jisx0213.el ---- /dev/null 1 Jan 1970 00:00:00 -0000 -+++ check-jisx0213.el 9 Sep 2002 08:50:42 -0000 1.1 -@@ -0,0 +1,3 @@ -+(if (charsetp 'japanese-jisx0213-1) -+ (kill-emacs 0) -+ (kill-emacs 1)) -Index: configure -=================================================================== -RCS file: /cvs/tamago/tamago/configure,v -retrieving revision 1.1.1.1 -retrieving revision 1.2 -diff -d -u -p -r1.1.1.1 -r1.2 ---- configure 27 Jan 2001 18:46:16 -0000 1.1.1.1 -+++ configure 9 Sep 2002 08:50:42 -0000 1.2 -@@ -637,6 +637,15 @@ fi - - - -+echo $ac_n "checking jisx0213""... $ac_c" 1>&6 -+echo "configure:642: checking jisx0213" >&5 -+if emacs -batch -q -no-site-file -no-init-file -l ${srcdir}/check-jisx0213.el; then -+ echo "yes"; HAVE_JISX0213="" -+else -+ echo "no"; HAVE_JISX0213="# " -+fi -+ -+ - lispdir=${datadir}/emacs/site-lisp - - trap '' 1 2 15 -@@ -788,6 +797,7 @@ s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g - s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g - s%@INSTALL_DATA@%$INSTALL_DATA%g - s%@SET_MAKE@%$SET_MAKE%g -+s%@HAVE_JISX0213@%$HAVE_JISX0213%g - s%@lispdir@%$lispdir%g - - CEOF -Index: configure.in -=================================================================== -RCS file: /cvs/tamago/tamago/configure.in,v -retrieving revision 1.1.1.1 -retrieving revision 1.2 -diff -d -u -p -r1.1.1.1 -r1.2 ---- configure.in 27 Jan 2001 18:46:16 -0000 1.1.1.1 -+++ configure.in 9 Sep 2002 08:50:42 -0000 1.2 -@@ -13,6 +13,15 @@ dnl Checks for typedefs, structures, and - - dnl Checks for library functions. - -+dnl check if jisx0213 is supported or not -+AC_MSG_CHECKING(jisx0213) -+if emacs -batch -q -no-site-file -no-init-file -l ${srcdir}/check-jisx0213.el; then -+ echo "yes"; HAVE_JISX0213="" -+else -+ echo "no"; HAVE_JISX0213="# " -+fi -+AC_SUBST(HAVE_JISX0213) -+ - lispdir=${datadir}/emacs/site-lisp - AC_SUBST(lispdir) - AC_OUTPUT(Makefile) -Index: egg-cnv.el -=================================================================== -RCS file: /cvs/tamago/tamago/egg-cnv.el,v -retrieving revision 1.1.1.2 -retrieving revision 1.4 -diff -d -u -p -r1.1.1.2 -r1.4 ---- egg-cnv.el 27 Jan 2001 18:46:16 -0000 1.1.1.2 -+++ egg-cnv.el 22 Jul 2002 13:18:56 -0000 1.4 -@@ -34,19 +34,29 @@ - (require 'egg-edep) - - (defgroup egg-conv nil -- "Conversion backend Interface of Tamagotchy" -+ "Conversion Backend Interface of Tamago 4." - :group 'egg) - --(defcustom egg-conversion-wrap-select nil -+(defcustom egg-conversion-wrap-select t - "*Candidate selection wraps around to first candidate, if non-NIL. - Otherwise stop at the last candidate." - :group 'egg-conv :type 'boolean) - - (defcustom egg-conversion-auto-candidate-menu 0 -- "*Automatically enter the candidate selectionmenu mode at N times -+ "*Automatically enter the candidate selection mode at N times - next/previous-candidate, if positive number N." - :group 'egg-conv :type 'integer) - -+(defcustom egg-conversion-auto-candidate-menu-show-all nil -+ "*Enter show all candiate mode when automatic candidate selection -+mode, if non-NIL." -+ :group 'egg-conv :type 'boolean) -+ -+(defcustom egg-conversion-sort-by-converted-string nil -+ "*Sort candidate list by converted string on candidate selection -+mode, if non-NIL." -+ :group 'egg-conv :type 'boolean) -+ - (defcustom egg-conversion-fence-invisible nil - "*Make fence marks invisible, if non-NIL." - :group 'egg-conv :type 'boolean) -@@ -147,7 +157,7 @@ next/previous-candidate, if positive num - pair (assq lang egg-conversion-backend-alist)) - (cond - ((null pair) -- (setq egg-conversion-backend-alist -+ (setq egg-conversion-backend-alist - (cons (cons lang backend-set) egg-conversion-backend-alist))) - (force - (setcdr pair backend-set)))))) -@@ -207,6 +217,10 @@ next/previous-candidate, if positive num - (defsubst egg-bunsetsu-set-info (bunsetsu info) - (setcdr bunsetsu info)) - -+(defun egg-conversion-fence-p () -+ (and (egg-get-backend (point)) -+ (get-text-property (point) 'read-only))) -+ - (defvar egg-finalize-backend-list nil) - - (defun egg-set-finalize-backend (func-list) -@@ -243,8 +257,9 @@ next/previous-candidate, if positive num - (egg-major-bunsetsu-continue-p (bunsetsu)) - (egg-list-candidates (bunsetsu-list prev-b next-b major)) - (egg-decide-candidate (bunsetsu-list candidate-pos prev-b next-b)) -+ (egg-special-candidate (bunsetsu-list prev-b next-b major type)) - (egg-change-bunsetsu-length (bunsetsu-list prev-b next-b length major)) -- (egg-bunsetsu-combinable-p (bunsetsu next-b)) -+ (egg-bunsetsu-combinable-p (bunsetsu next-b)) - (egg-end-conversion (bunsetsu-list abort)) - (egg-word-inspection (bunsetsu)) - (egg-word-registration (backend source converted)))) -@@ -263,7 +278,7 @@ next/previous-candidate, if positive num - (defun egg-start-conversion-noconv (backend yomi-string context) - (let ((string (copy-sequence yomi-string)) - (language (egg-get-language 0 yomi-string))) -- (set-text-properties 0 (length string) nil string) -+ (egg-remove-all-text-properties 0 (length string) string) - (list (egg-bunsetsu-create backend (vector string language))))) - - (defun egg-get-bunsetsu-source-noconv (bunsetsu) -@@ -288,6 +303,7 @@ next/previous-candidate, if positive num - ;; nothing to do - nil - (delete-region start end) -+ (egg-setup-invisibility-spec) - (let ((inhibit-read-only t)) - (its-define-select-keys egg-conversion-map) - (goto-char start) -@@ -302,13 +318,13 @@ next/previous-candidate, if positive num - (if context - (put-text-property 0 len 'egg-context context s)) - (if egg-conversion-fence-invisible -- (put-text-property 0 len 'invisible t s)) -+ (put-text-property 0 len 'invisible 'egg s)) - (insert s) - (setq s (copy-sequence egg-conversion-fence-close) - len (length s)) - (set-text-properties 0 len '(read-only t rear-nonsticky t egg-end t) s) - (if egg-conversion-fence-invisible -- (put-text-property 0 len 'invisible t s)) -+ (put-text-property 0 len 'invisible 'egg s)) - (insert s) - (goto-char start) - (insert source) -@@ -429,7 +445,8 @@ next/previous-candidate, if positive num - (setq last-chinese lang)) - (setq j i - i (egg-next-single-property-change i 'egg-lang str len)) -- (set-text-properties j i (list 'egg-lang lang) str)))) -+ (egg-remove-all-text-properties j i str) -+ (put-text-property j i 'egg-lang lang str)))) - - ;;; Should think again the interface to language-info-alist - (defun egg-charset-to-language (charset) -@@ -478,7 +495,8 @@ next/previous-candidate, if positive num - s (substring source i j) - lang (egg-get-language 0 s) - backend (egg-get-conversion-backend lang n t)) -- (set-text-properties 0 (- j i) (list 'egg-lang lang) s) -+ (egg-remove-all-text-properties 0 (- j i) s) -+ (put-text-property 0 (- j i) 'egg-lang lang s) - (setq retval (nconc retval (list (list backend (list lang) s))) - i j)) - (prog1 -@@ -499,7 +517,7 @@ next/previous-candidate, if positive num - file (and (file-readable-p file) file)) - (while (and (null file) path) - (if (stringp (car path)) -- (setq file (substitute-in-file-name -+ (setq file (substitute-in-file-name - (expand-file-name filename (car path))) - file (and (file-exists-p file) file))) - (setq path (cdr path))) -@@ -536,53 +554,72 @@ next/previous-candidate, if positive num - (while (< i 127) - (define-key map (vector i) 'egg-exit-conversion-unread-char) - (setq i (1+ i))) -- (define-key map "\C-@" 'egg-decide-first-char) -- (define-key map [?\C-\ ] 'egg-decide-first-char) -- (define-key map "\C-a" 'egg-beginning-of-conversion-buffer) -- (define-key map "\C-b" 'egg-backward-bunsetsu) -- (define-key map "\C-c" 'egg-abort-conversion) -- (define-key map "\C-e" 'egg-end-of-conversion-buffer) -- (define-key map "\C-f" 'egg-forward-bunsetsu) -- (define-key map "\C-h" 'egg-help-command) -- (define-key map "\C-i" 'egg-shrink-bunsetsu-major) -- (define-key map "\C-k" 'egg-decide-before-point) --;; (define-key map "\C-l" 'egg-exit-conversion) ; Don't override C-L -- (define-key map "\C-m" 'egg-exit-conversion) -- (define-key map "\C-n" 'egg-next-candidate-major) -- (define-key map "\C-o" 'egg-enlarge-bunsetsu-major) -- (define-key map "\C-p" 'egg-previous-candidate-major) -- (define-key map "\C-r" 'egg-reconvert-bunsetsu) -- (define-key map "\C-t" 'egg-toroku-bunsetsu) -- (define-key map "\C-v" 'egg-inspect-bunsetsu) -- (define-key map "\M-i" 'egg-shrink-bunsetsu-minor) -- (define-key map "\M-n" 'egg-next-candidate-minor) -- (define-key map "\M-o" 'egg-enlarge-bunsetsu-minor) -- (define-key map "\M-p" 'egg-previous-candidate-minor) -- (define-key map "\M-r" 'egg-reconvert-bunsetsu-from-source) -- (define-key map "\M-s" 'egg-select-candidate-major) -- (define-key map "\M-v" 'egg-toggle-inspect-mode) -- (define-key map "\M-z" 'egg-select-candidate-minor) -- (define-key map "\e\C-s" 'egg-select-candidate-list-all-major) -- (define-key map "\e\C-z" 'egg-select-candidate-list-all-minor) -- (define-key map [return] 'egg-exit-conversion) -- (define-key map [right] 'egg-forward-bunsetsu) -- (define-key map [left] 'egg-backward-bunsetsu) -- (define-key map " " 'egg-next-candidate) -- (define-key map "/" 'egg-exit-conversion) -- ;;;(define-key map "\M-h" 'egg-hiragana) -- ;;;(define-key map "\M-k" 'egg-katakana) -- ;;;(define-key map "\M-<" 'egg-hankaku) -- ;;;(define-key map "\M->" 'egg-zenkaku) -+ (define-key map "\C-@" 'egg-decide-first-char) -+ (define-key map [?\C-\ ] 'egg-decide-first-char) -+ (define-key map "\C-a" 'egg-beginning-of-conversion-buffer) -+ (define-key map "\C-b" 'egg-backward-bunsetsu) -+ (define-key map "\C-c" 'egg-abort-conversion) -+ (define-key map "\C-e" 'egg-end-of-conversion-buffer) -+ (define-key map "\C-f" 'egg-forward-bunsetsu) -+ (define-key map "\C-h" 'egg-help-command) -+ (define-key map "\C-i" 'egg-shrink-bunsetsu-major) -+ (define-key map "\C-k" 'egg-decide-before-point) -+;; (define-key map "\C-l" 'egg-exit-conversion) ; Don't override C-L -+ (define-key map "\C-m" 'egg-exit-conversion) -+ (define-key map "\C-n" 'egg-next-candidate-major) -+ (define-key map "\C-o" 'egg-enlarge-bunsetsu-major) -+ (define-key map "\C-p" 'egg-previous-candidate-major) -+ (define-key map "\C-r" 'egg-reconvert-bunsetsu) -+ (define-key map "\C-t" 'egg-toroku-bunsetsu) -+ (define-key map "\C-v" 'egg-inspect-bunsetsu) -+ (define-key map "\M-i" 'egg-shrink-bunsetsu-minor) -+ (define-key map "\M-n" 'egg-next-candidate-minor) -+ (define-key map "\M-o" 'egg-enlarge-bunsetsu-minor) -+ (define-key map "\M-p" 'egg-previous-candidate-minor) -+ (define-key map "\M-r" 'egg-reconvert-bunsetsu-from-source) -+ (define-key map "\M-s" 'egg-select-candidate-major) -+ (define-key map "\M-v" 'egg-toggle-inspect-mode) -+ (define-key map "\M-z" 'egg-select-candidate-minor) -+ (define-key map "\e\C-s" 'egg-select-candidate-list-all-major) -+ (define-key map "\e\C-z" 'egg-select-candidate-list-all-minor) -+ (define-key map [return] 'egg-exit-conversion) -+ (define-key map [right] 'egg-forward-bunsetsu) -+ (define-key map [left] 'egg-backward-bunsetsu) -+ (define-key map [up] 'egg-previous-candidate) -+ (define-key map [down] 'egg-next-candidate) -+ (define-key map [backspace] 'egg-abort-conversion) -+ (define-key map [clear] 'egg-abort-conversion) -+ (define-key map [delete] 'egg-abort-conversion) -+ (define-key map " " 'egg-next-candidate) -+ (define-key map "/" 'egg-exit-conversion) -+ (define-key map "\M-h" 'egg-hiragana) -+ (define-key map "\M-k" 'egg-katakana) -+ (define-key map "\M-P" 'egg-pinyin) -+ (define-key map "\M-Z" 'egg-zhuyin) -+ (define-key map "\M-H" 'egg-hangul) - map) - "Keymap for EGG Conversion mode.") -- - (fset 'egg-conversion-map egg-conversion-map) - -+(defvar egg-conversion-mode nil) -+(make-variable-buffer-local 'egg-conversion-mode) -+(put 'egg-conversion-mode 'permanent-local t) -+ -+(or (assq 'egg-conversion-mode egg-sub-mode-map-alist) -+ (setq egg-sub-mode-map-alist (cons -+ '(egg-conversion-mode . egg-conversion-map) -+ egg-sub-mode-map-alist))) -+ -+(defun egg-conversion-enter/leave-fence (&optional old new) -+ (setq egg-conversion-mode (egg-conversion-fence-p))) -+ -+(add-hook 'egg-enter/leave-fence-hook 'egg-conversion-enter/leave-fence) -+ - (defun egg-exit-conversion-unread-char () - (interactive) -- (setq unread-command-events (list last-command-event) -- this-command 'egg-use-context) -- (setq egg-context (egg-exit-conversion))) -+ (setq egg-context (egg-exit-conversion) -+ unread-command-events (list last-command-event) -+ this-command 'egg-use-context)) - - (defun egg-make-bunsetsu (backend bunsetsu last) - (let* ((converted (copy-sequence (egg-get-bunsetsu-converted bunsetsu))) -@@ -597,27 +634,30 @@ next/previous-candidate, if positive num - egg-conversion-minor-separator - egg-conversion-major-separator)))) - (setq len (length converted)) -- (set-text-properties 0 len -+ (egg-remove-all-text-properties 0 len converted) -+ (add-text-properties 0 len - (list 'read-only t - (egg-bunsetsu-info) bunsetsu - 'egg-backend backend - 'egg-lang language - 'egg-bunsetsu-last last - 'egg-major-continue continue -- 'local-map 'egg-conversion-map) -+ 'point-entered 'egg-enter/leave-fence -+ 'point-left 'egg-enter/leave-fence -+ 'modification-hooks '(egg-modify-fence)) - converted) - (if face - (egg-set-face 0 len1 face converted)) - converted)) - --(defun egg-insert-bunsetsu-list (backend bunsetsu-list &optional last) -+(defun egg-insert-bunsetsu-list (backend bunsetsu-list &optional last before) - (let ((len (length bunsetsu-list))) -- (insert -- (mapconcat -- (lambda (b) -- (setq len (1- len)) -- (egg-make-bunsetsu backend b (and (= len 0) last))) -- bunsetsu-list "")))) -+ (funcall (if before 'insert-before-markers 'insert) -+ (mapconcat -+ (lambda (b) -+ (setq len (1- len)) -+ (egg-make-bunsetsu backend b (and (= len 0) last))) -+ bunsetsu-list nil)))) - - (defun egg-beginning-of-conversion-buffer (n) - (interactive "p") -@@ -627,13 +667,13 @@ next/previous-candidate, if positive num - ((null (get-text-property (1- (point)) 'egg-start)) - (goto-char (previous-single-property-change (point) 'egg-start))))) - --(defun egg-end-of-conversion-buffer(n) -+(defun egg-end-of-conversion-buffer (n) - (interactive "p") - (cond - ((<= n 0) - (egg-beginning-of-conversion-buffer 1)) - (t -- (goto-char (next-single-property-change (point) 'egg-end)) -+ (goto-char (egg-next-single-property-change (point) 'egg-end)) - (backward-char)))) - - (defun egg-backward-bunsetsu (n) -@@ -677,8 +717,7 @@ next/previous-candidate, if positive num - (egg-get-bunsetsu-info (1- p)))) - - (defun egg-get-previous-major-bunsetsu (p) -- (let ((p (point)) -- (prev (egg-get-previous-bunsetsu p)) -+ (let ((prev (egg-get-previous-bunsetsu p)) - bunsetsu) - (while prev - (setq bunsetsu (cons prev bunsetsu) -@@ -702,7 +741,10 @@ next/previous-candidate, if positive num - (nreverse bunsetsu))) - - (defsubst egg-get-major-bunsetsu-source (list) -- (mapconcat (lambda (b) (egg-get-bunsetsu-source b)) list "")) -+ (mapconcat 'egg-get-bunsetsu-source list nil)) -+ -+(defsubst egg-get-major-bunsetsu-converted (list) -+ (mapconcat 'egg-get-bunsetsu-converted list nil)) - - (defvar egg-inspect-mode nil - "*Display clause information on candidate selection, if non-NIL.") -@@ -724,8 +766,8 @@ next/previous-candidate, if positive num - (defvar egg-candidate-selection-major t) - (make-variable-buffer-local 'egg-candidate-selection-major) - --(defsubst egg-set-candsel-info (b prev-b next-b major) -- (setq egg-candidate-selection-info (list b prev-b next-b major))) -+(defsubst egg-set-candsel-info (b major) -+ (setq egg-candidate-selection-info (list (car b) (cadr b) (caddr b) major))) - - (defsubst egg-candsel-last-bunsetsu () (car egg-candidate-selection-info)) - (defsubst egg-candsel-last-prev-b () (nth 1 egg-candidate-selection-info)) -@@ -744,9 +786,8 @@ next/previous-candidate, if positive num - - (defun egg-get-candsel-target-major () - (let ((bunsetsu (egg-get-major-bunsetsu (point))) -- next-b prev-b next) -- (setq prev-b (egg-get-previous-major-bunsetsu (point)) -- next (egg-next-bunsetsu-point (point) (length bunsetsu))) -+ (prev-b (egg-get-previous-major-bunsetsu (point))) -+ next-b) - (cond - ((and (egg-candsel-last-major) - (egg-major-bunsetsu-tail-p (egg-candsel-last-prev-b) prev-b) -@@ -755,31 +796,63 @@ next/previous-candidate, if positive num - bunsetsu)) - (setq bunsetsu (egg-candsel-last-bunsetsu) - prev-b (egg-candsel-last-prev-b) -- next-b (egg-candsel-last-next-b)) -- (setq next (egg-next-bunsetsu-point (point) (length bunsetsu)))) -- ((null (egg-get-bunsetsu-last (1- next))) -- (setq next-b (egg-get-major-bunsetsu next)))) -+ next-b (egg-candsel-last-next-b))) -+ ((null (egg-get-bunsetsu-last -+ (egg-next-bunsetsu-point (point) (1- (length bunsetsu))))) -+ (setq next-b (egg-get-major-bunsetsu -+ (egg-next-bunsetsu-point (point) (length bunsetsu)))))) - (setq egg-candidate-selection-major t) -- (list bunsetsu prev-b next-b next t))) -+ (list bunsetsu prev-b next-b t))) - - (defun egg-get-candsel-target-minor () - (let* ((bunsetsu (list (egg-get-bunsetsu-info (point)))) - (prev-b (egg-get-previous-bunsetsu (point))) - (next-b (egg-get-next-bunsetsu (point)))) -- (and prev-b (setq prev-b (list prev-b))) -- (and next-b (setq next-b (list next-b))) - (setq egg-candidate-selection-major nil) -- (list bunsetsu prev-b next-b (egg-next-bunsetsu-point (point)) nil))) -+ (list bunsetsu (and prev-b (list prev-b)) (and next-b (list next-b)) nil))) - --(defun egg-insert-new-bunsetsu (b prev-b next-b next end) -- (let ((backend (egg-get-backend (point))) -- start last) -- (setq start (egg-previous-bunsetsu-point (point) (length prev-b))) -- (setq end (or end (egg-next-bunsetsu-point next (length next-b)))) -- (setq last (egg-get-bunsetsu-last (1- end))) -- (delete-region start end) -- (egg-insert-bunsetsu-list backend (append prev-b (append b next-b)) last) -- (goto-char (egg-next-bunsetsu-point start (length prev-b))) -+(defun egg-check-candsel-target (b prev-b next-b major) -+ (if major -+ (and (egg-major-bunsetsu-tail-p -+ prev-b (egg-get-previous-major-bunsetsu (point))) -+ (let* ((cur-b (egg-get-major-bunsetsu (point))) -+ (next-p (egg-next-bunsetsu-point (point) (length cur-b)))) -+ (egg-major-bunsetsu-head-p -+ (append b next-b) -+ (append cur-b (and (null (egg-get-bunsetsu-last (1- next-p))) -+ (egg-get-major-bunsetsu next-p)))))) -+ (and (eq (egg-get-bunsetsu-info (point)) (car b)) -+ (eq (egg-get-previous-bunsetsu (point)) (car prev-b)) -+ (eq (egg-get-next-bunsetsu (point)) (car next-b))))) -+ -+(defun egg-insert-new-bunsetsu (b tail new-b) -+ (let* ((backend (egg-get-backend (point))) -+ (start (egg-previous-bunsetsu-point (point) (length (cadr new-b)))) -+ (end (egg-next-bunsetsu-point (point) (+ (length b) (length tail)))) -+ (last (egg-get-bunsetsu-last (1- end))) -+ (insert-before (buffer-has-markers-at end))) -+ (cond -+ ((buffer-has-markers-at end) -+ (delete-region start end) -+ (egg-insert-bunsetsu-list backend -+ (append (cadr new-b) (car new-b) (caddr new-b)) -+ last t)) -+ ((buffer-has-markers-at (egg-next-bunsetsu-point (point) (length b))) -+ (delete-region start end) -+ (egg-insert-bunsetsu-list backend (append (cadr new-b) (car new-b)) -+ nil t) -+ (egg-insert-bunsetsu-list backend (caddr new-b) last)) -+ ((buffer-has-markers-at (point)) -+ (delete-region start end) -+ (egg-insert-bunsetsu-list backend (cadr new-b) nil t) -+ (egg-insert-bunsetsu-list backend (append (car new-b) (caddr new-b)) -+ last)) -+ (t -+ (delete-region start end) -+ (egg-insert-bunsetsu-list backend -+ (append (cadr new-b) (car new-b) (caddr new-b)) -+ last))) -+ (goto-char (egg-next-bunsetsu-point start (length (cadr new-b)))) - (if egg-inspect-mode - (egg-inspect-bunsetsu t)))) - -@@ -812,16 +885,19 @@ next/previous-candidate, if positive num - (apply 'egg-next-candidate-internal (- n) (egg-get-candsel-target-minor))) - - (defvar egg-candidate-select-counter 1) -+(make-variable-buffer-local 'egg-candidate-select-counter) - --(defun egg-next-candidate-internal (n b prev-b next-b next major) -+(defun egg-next-candidate-internal (n b prev-b next-b major) - (if (eq last-command (if major 'egg-candidate-major 'egg-candidate-minor)) - (setq egg-candidate-select-counter (1+ egg-candidate-select-counter)) - (setq egg-candidate-select-counter 1)) - (if (= egg-candidate-select-counter egg-conversion-auto-candidate-menu) -- (egg-select-candidate-internal nil b prev-b next-b next major) -+ (egg-select-candidate-internal -+ nil egg-conversion-auto-candidate-menu-show-all -+ b prev-b next-b major) - (setq this-command (if major 'egg-candidate-major 'egg-candidate-minor)) - (let ((inhibit-read-only t) -- candidates nitem i beep) -+ new-b candidates nitem i beep) - (setq candidates (egg-list-candidates b prev-b next-b major)) - (if (null candidates) - (setq beep t) -@@ -829,21 +905,18 @@ next/previous-candidate, if positive num - nitem (length (cdr candidates))) - (cond - ((< i 0) ; go backward as if it is ring -- (while (< i 0) -- (setq i (+ i nitem)))) -+ (setq i (% i nitem)) -+ (if (< i 0) -+ (setq i (+ i nitem)))) - ((< i nitem)) ; OK - (egg-conversion-wrap-select ; go backward as if it is ring -- (while (>= i nitem) -- (setq i (- i nitem)))) -- (t ; don't go forward -+ (setq i (% i nitem))) -+ (t ; don't go forward - (setq i (1- nitem) - beep t))) -- (setq b (egg-decide-candidate b i prev-b next-b) -- prev-b (nth 1 b) -- next-b (nth 2 b) -- b (car b)) -- (egg-set-candsel-info b prev-b next-b major) -- (egg-insert-new-bunsetsu b prev-b next-b next nil)) -+ (setq new-b (egg-decide-candidate b i prev-b next-b)) -+ (egg-set-candsel-info new-b major) -+ (egg-insert-new-bunsetsu b (caddr new-b) new-b)) - (if beep - (ding))))) - -@@ -851,39 +924,65 @@ next/previous-candidate, if positive num - (let ((n -1)) - (mapcar (lambda (item) (cons item (setq n (1+ n)))) list))) - --(defun egg-select-candidate-major () -- (interactive) -- (apply 'egg-select-candidate-internal nil (egg-get-candsel-target-major))) -+(defun egg-sort-item (list sort) -+ (if (eq (null sort) (null egg-conversion-sort-by-converted-string)) -+ list -+ (sort list (lambda (a b) (string< (car a) (car b)))))) - --(defun egg-select-candidate-minor () -- (interactive) -- (apply 'egg-select-candidate-internal nil (egg-get-candsel-target-minor))) -+(defun egg-select-candidate-major (sort) -+ (interactive "P") -+ (apply 'egg-select-candidate-internal sort nil (egg-get-candsel-target-major))) - --(defun egg-select-candidate-list-all-major () -- (interactive) -- (apply 'egg-select-candidate-internal t (egg-get-candsel-target-major))) -+(defun egg-select-candidate-minor (sort) -+ (interactive "P") -+ (apply 'egg-select-candidate-internal sort nil (egg-get-candsel-target-minor))) - --(defun egg-select-candidate-list-all-minor () -- (interactive) -- (apply 'egg-select-candidate-internal t (egg-get-candsel-target-minor))) -+(defun egg-select-candidate-list-all-major (sort) -+ (interactive "P") -+ (apply 'egg-select-candidate-internal sort t (egg-get-candsel-target-major))) - --(defun egg-select-candidate-internal (all b prev-b next-b next major) -- (let ((inhibit-read-only t) -- (prompt (egg-get-message 'candidate)) -- candidates item-list new i) -+(defun egg-select-candidate-list-all-minor (sort) -+ (interactive "P") -+ (apply 'egg-select-candidate-internal sort t (egg-get-candsel-target-minor))) -+ -+(defun egg-select-candidate-internal (sort all b prev-b next-b major) -+ (let ((prompt (egg-get-message 'candidate)) -+ new-b candidates pos clist item-list i) - (setq candidates (egg-list-candidates b prev-b next-b major)) - (if (null candidates) - (ding) -- (setq all (and all '(menudiag-list-all)) -- item-list (egg-numbering-item (cdr candidates)) -+ (setq pos (car candidates) -+ clist (cdr candidates) -+ item-list (egg-sort-item (egg-numbering-item clist) sort) - i (menudiag-select (list 'menu prompt item-list) -- (cons (nth (car candidates) item-list) all)) -- new (egg-decide-candidate b i prev-b next-b) -- prev-b (nth 1 new) -- next-b (nth 2 new) -- new (car new)) -- (egg-set-candsel-info new prev-b next-b major) -- (egg-insert-new-bunsetsu new prev-b next-b next nil)))) -+ all -+ (list (assq (nth pos clist) item-list)))) -+ (if (or (null (egg-conversion-fence-p)) -+ (null (egg-check-candsel-target b prev-b next-b major))) -+ (error "Fence was already modified") -+ (let ((inhibit-read-only t)) -+ (setq new-b (egg-decide-candidate b i prev-b next-b)) -+ (egg-set-candsel-info new-b major) -+ (egg-insert-new-bunsetsu b (caddr new-b) new-b)))))) -+ -+(defun egg-hiragana (&optional minor) -+ (interactive "P") -+ (if (null minor) -+ (apply 'egg-special-convert this-command (egg-get-candsel-target-major)) -+ (apply 'egg-special-convert this-command (egg-get-candsel-target-minor)))) -+ -+(defalias 'egg-katakana 'egg-hiragana) -+(defalias 'egg-pinyin 'egg-hiragana) -+(defalias 'egg-zhuyin 'egg-hiragana) -+(defalias 'egg-hangul 'egg-hiragana) -+ -+(defun egg-special-convert (type b prev-b next-b major) -+ (let ((inhibit-read-only t) -+ (new-b (egg-special-candidate b prev-b next-b major type))) -+ (if (null new-b) -+ (ding) -+ (egg-set-candsel-info new-b major) -+ (egg-insert-new-bunsetsu b (caddr new-b) new-b)))) - - (defun egg-separate-characters (str) - (let* ((v (egg-string-to-vector str)) -@@ -915,7 +1014,7 @@ next/previous-candidate, if positive num - - (defun egg-enlarge-bunsetsu-internal (n major) - (let ((inhibit-read-only t) -- b prev-b next-b s1 s1len s2 s2len nchar i last next end beep) -+ b prev-b next-b new-b s1 s1len s2 s2len nchar i last end beep) - (if major - (setq b (egg-get-major-bunsetsu (point)) - prev-b (egg-get-previous-major-bunsetsu (point))) -@@ -938,28 +1037,23 @@ next/previous-candidate, if positive num - ((<= n 0) - (setq beep t nchar (and (/= s1len 1) (egg-get-char-size 0 s1)))) - ((> n s2len) -- (setq beep t nchar (and (/= s2len 0) (length s2)))) -+ (setq beep t nchar (and (/= s2len s1len) (length s2)))) - (t - (setq nchar 0) - (while (> n 0) - (setq nchar (+ nchar (egg-get-char-size nchar s2)) - n (1- n))))) -- (if nchar -- (progn -- (setq next-b (nconc b next-b) -- i (length (egg-get-bunsetsu-source (car next-b)))) -- (while (< i nchar) -- (setq next-b (cdr next-b) -- i (+ i (length (egg-get-bunsetsu-source (car next-b)))))) -- (setq next-b (prog1 (cdr next-b) (setcdr next-b nil)) -- next (egg-next-bunsetsu-point (point) (length b)) -- b (egg-change-bunsetsu-length b prev-b next-b nchar major)) -- (if (null b) -- (setq beep t) -- (setq prev-b (nth 1 b) -- next-b (nth 2 b) -- b (car b)) -- (egg-insert-new-bunsetsu b prev-b next-b next (and next-b end))))) -+ (when nchar -+ (setq next-b (nconc b next-b) -+ i (length (egg-get-bunsetsu-source (car next-b)))) -+ (while (< i nchar) -+ (setq next-b (cdr next-b) -+ i (+ i (length (egg-get-bunsetsu-source (car next-b)))))) -+ (setq next-b (prog1 (cdr next-b) (setcdr next-b nil)) -+ new-b (egg-change-bunsetsu-length b prev-b next-b nchar major)) -+ (if (null new-b) -+ (setq beep t) -+ (egg-insert-new-bunsetsu b (and (caddr new-b) next-b) new-b))) - (if beep - (ding)))) - -@@ -1013,13 +1107,13 @@ next/previous-candidate, if positive num - (previous-single-property-change (point) 'egg-start))) - (end (if (get-text-property (point) 'egg-end) - (point) -- (next-single-property-change (point) 'egg-end))) -+ (egg-next-single-property-change (point) 'egg-end))) - (decided (buffer-substring start (point))) - (undecided (buffer-substring (point) end)) - i len bunsetsu source context) - (delete-region - (previous-single-property-change start 'egg-start nil (point-min)) -- (next-single-property-change end 'egg-end nil (point-max))) -+ (egg-next-single-property-change end 'egg-end nil (point-max))) - (setq i 0 - len (length decided)) - (while (< i len) -@@ -1028,9 +1122,7 @@ next/previous-candidate, if positive num - (if (or (= i len) - (egg-get-bunsetsu-last (1- i) decided)) - (progn -- (apply 'insert (mapcar -- (lambda (b) (egg-get-bunsetsu-converted b)) -- bunsetsu)) -+ (insert (mapconcat 'egg-get-bunsetsu-converted bunsetsu nil)) - (setq context (cons (cons (egg-bunsetsu-get-backend (car bunsetsu)) - (egg-end-conversion bunsetsu nil)) - context) -@@ -1061,19 +1153,19 @@ next/previous-candidate, if positive num - (previous-single-property-change (point) 'egg-start))) - (end (if (get-text-property (point) 'egg-end) - (point) -- (next-single-property-change (point) 'egg-end))) -+ (egg-next-single-property-change (point) 'egg-end))) - (bunsetsu (egg-get-bunsetsu-info start))) - (delete-region - (previous-single-property-change start 'egg-start nil (point-min)) -- (next-single-property-change end 'egg-end nil (point-max))) -+ (egg-next-single-property-change end 'egg-end nil (point-max))) - (egg-end-conversion (list bunsetsu) nil) - (insert (egg-string-to-char-at (egg-get-bunsetsu-converted bunsetsu) 0)))) - - (defun egg-exit-conversion () - (interactive) -- (if (egg-get-bunsetsu-info (point)) -+ (if (egg-conversion-fence-p) - (progn -- (goto-char (next-single-property-change (point) 'egg-end)) -+ (goto-char (egg-next-single-property-change (point) 'egg-end)) - (egg-decide-before-point)))) - - (defun egg-abort-conversion () -@@ -1087,8 +1179,8 @@ next/previous-candidate, if positive num - 'egg-start nil (point-min))) - (setq source (get-text-property (point) 'egg-source) - context (get-text-property (point) 'egg-context)) -- (delete-region (point) (next-single-property-change -- (next-single-property-change (point) 'egg-end) -+ (delete-region (point) (egg-next-single-property-change -+ (egg-next-single-property-change (point) 'egg-end) - 'egg-end nil (point-max))) - (its-restart source nil nil context))) - -@@ -1156,4 +1248,5 @@ next/previous-candidate, if positive num - (help-setup-xref (cons #'help-xref-mode (current-buffer)) (interactive-p)))) - - (provide 'egg-cnv) --;;; egg-cnv.el ends here. -+ -+;;; egg-cnv.el ends here -Index: egg-com.el -=================================================================== -RCS file: /cvs/tamago/tamago/egg-com.el,v -retrieving revision 1.1.1.1 -retrieving revision 1.2 -diff -d -u -p -r1.1.1.1 -r1.2 ---- egg-com.el 27 Jan 2001 18:45:24 -0000 1.1.1.1 -+++ egg-com.el 27 Jan 2001 18:53:13 -0000 1.2 -@@ -136,6 +136,7 @@ - (cons ccl-decode-fixed-euc-kr ccl-encode-fixed-euc-kr)) - - ;; Chinese -+ - (defconst egg-pinyin-shengmu - '(("" . 0) ("B" . 1) ("C" . 2) ("Ch" . 3) ("D" . 4) - ("F" . 5) ("G" . 6) ("H" . 7) ("J" . 8) ("K" . 9) -@@ -521,53 +522,60 @@ - (defun decode-fixed-euc-china-region (beg end type zhuyin) - "Decode EUC-CN/TW encoded text in the region. - Return the length of resulting text." -- (prog1 -- (let ((str (string-as-unibyte (buffer-substring beg end))) -- (i 0) -- l c0 c1 s y ss) -- (delete-region beg end) -- (setq l (1- (length str))) -- (while (< i l) -- (setq c0 (aref str i) -- c1 (aref str (1+ i)) -- i (+ i 2)) -- (cond -- ((eq c0 0) -- (if (> c1 ?\xa0) -- (insert leading-code-private-11 -- (charset-id 'chinese-sisheng) -- c1) -- (insert c1))) -- ((>= c0 ?\x80) -- (cond -- ((eq type 'cn) -- (insert (charset-id 'chinese-gb2312) c0 (logior c1 ?\x80))) -- ((>= c1 ?\x80) -- (insert (charset-id 'chinese-cns11643-1) c0 c1)) -- (t -- (insert (charset-id 'chinese-cns11643-2) c0 (+ c1 ?\x80))))) -- (t -- (setq c1 (logand c1 ?\x7f)) -- (setq s (- (lsh c1 -2) 7);;(+ (lsh (- c1 32) -2) 1) -- y (- (lsh c0 -1) 16);;(lsh (- c0 32) -1) -- ss (+ (logand c0 1) (logand c1 3))) -- (if (and (eq s 20) -- (eq (aref egg-pinyin-table (+ (* 39 20) y)) 0)) -- (setq s 0)) -- (if (null zhuyin) -- (setq s (car (nth s egg-pinyin-shengmu)) -- y (car (nth (+ (* 5 y) ss) egg-pinyin-yunmu))) -- (setq c0 (aref egg-zhuyin-table (+ (* 41 s) y))) -- (if (eq (logand c0 ?\x8080) ?\x80) -- (setq s (lsh c0 -8) -- y (logand c0 ?\x7f))) -- (setq s (car (nth s egg-zhuyin-shengmu)) -- y (car (nth (+ (* 5 y) ss) egg-zhuyin-yunmu)))) -- (if enable-multibyte-characters -- (insert s y) -- (insert (string-as-unibyte s) (string-as-unibyte y)))))) -- (- (point) beg)) -- (if (looking-at "\0\0") (forward-char 2)))) -+ (let ((str (string-as-unibyte (buffer-substring beg end))) -+ (i 0) -+ (char (make-string 3 0)) -+ l c0 c1 s y ss) -+ (delete-region beg end) -+ (setq l (1- (length str))) -+ (while (< i l) -+ (setq c0 (aref str i) -+ c1 (aref str (1+ i)) -+ i (+ i 2)) -+ (cond -+ ((eq c0 0) -+ (if (<= c1 ?\xa0) -+ (insert c1) -+ (aset char 0 leading-code-private-11) -+ (aset char 1 (charset-id 'chinese-sisheng)) -+ (aset char 2 c1) -+ (insert (string-as-multibyte char)))) -+ ((>= c0 ?\x80) -+ (cond -+ ((eq type 'cn) -+ (aset char 0 (charset-id 'chinese-gb2312)) -+ (aset char 1 c0) -+ (aset char 2 (logior c1 ?\x80))) -+ ((>= c1 ?\x80) -+ (aset char 0 (charset-id 'chinese-cns11643-1)) -+ (aset char 1 c0) -+ (aset char 2 c1)) -+ (t -+ (aset char 0 (charset-id 'chinese-cns11643-2)) -+ (aset char 1 c0) -+ (aset char 2 (+ c1 ?\x80)))) -+ (insert (string-as-multibyte char))) -+ (t -+ (setq c1 (logand c1 ?\x7f)) -+ (setq s (- (lsh c1 -2) 7);;(+ (lsh (- c1 32) -2) 1) -+ y (- (lsh c0 -1) 16);;(lsh (- c0 32) -1) -+ ss (+ (logand c0 1) (logand c1 3))) -+ (if (and (eq s 20) -+ (eq (aref egg-pinyin-table (+ (* 39 20) y)) 0)) -+ (setq s 0)) -+ (if (null zhuyin) -+ (setq s (car (nth s egg-pinyin-shengmu)) -+ y (car (nth (+ (* 5 y) ss) egg-pinyin-yunmu))) -+ (setq c0 (aref egg-zhuyin-table (+ (* 41 s) y))) -+ (if (eq (logand c0 ?\x8080) ?\x80) -+ (setq s (lsh c0 -8) -+ y (logand c0 ?\x7f))) -+ (setq s (car (nth s egg-zhuyin-shengmu)) -+ y (car (nth (+ (* 5 y) ss) egg-zhuyin-yunmu)))) -+ (if enable-multibyte-characters -+ (insert s y) -+ (insert (string-as-unibyte s) (string-as-unibyte y)))))) -+ (- (point) beg))) - - (defun post-read-decode-fixed-euc-china (len type zhuyin) - (let ((pos (point)) -@@ -620,7 +628,7 @@ Return the length of resulting text." - - (eval-and-compile - (define-ccl-program ccl-decode-egg-binary -- `(2 -+ `(1 - ((read r0) - (loop - (if (r0 == ?\xff) -@@ -628,7 +636,7 @@ Return the length of resulting text." - (write-read-repeat r0))))) - - (define-ccl-program ccl-encode-egg-binary -- `(1 -+ `(2 - ((read r0) - (loop - (if (r0 == ?\xff) -@@ -705,6 +713,7 @@ U: 32-bit integer. The argument is 2 el - u: 32-bit integer. The argument is treat as unsigned integer. - (Note: Elisp's integer may be less than 32 bits) - i: 32-bit integer. -+ (Note: Elisp's integer may be greater than 32 bits) - w: 16-bit integer. - b: 8-bit integer. - S: 16-bit wide-character EUC string (0x0000 terminated). -@@ -776,6 +785,14 @@ V: Fixed length string (0x00 terminated) - (+ (lsh (comm-following+forward-char) 8) - (comm-following+forward-char))))) - -+(defun comm-unpack-i32 () -+ (progn -+ (comm-require-process-output 4) -+ (+ (lsh (- (logxor (comm-following+forward-char) 128) 128) 24) -+ (lsh (comm-following+forward-char) 16) -+ (lsh (comm-following+forward-char) 8) -+ (comm-following+forward-char)))) -+ - (defun comm-unpack-u32 () - (progn - (comm-require-process-output 4) -@@ -852,7 +869,7 @@ See `comm-format' for FORMAT." - (list - (cond ((eq f 'U) `(setq ,arg (comm-unpack-u32c))) - ((eq f 'u) `(setq ,arg (comm-unpack-u32))) -- ((eq f 'i) `(setq ,arg (comm-unpack-u32))) -+ ((eq f 'i) `(setq ,arg (comm-unpack-i32))) - ((eq f 'w) `(setq ,arg (comm-unpack-u16))) - ((eq f 'b) `(setq ,arg (comm-unpack-u8))) - ((eq f 'S) `(setq ,arg (comm-unpack-u16-string))) -Index: egg-mlh.el -=================================================================== -RCS file: /cvs/tamago/tamago/egg-mlh.el,v -retrieving revision 1.1.1.1 -retrieving revision 1.2 -diff -d -u -p -r1.1.1.1 -r1.2 ---- egg-mlh.el 27 Jan 2001 18:45:24 -0000 1.1.1.1 -+++ egg-mlh.el 23 Aug 2002 07:46:38 -0000 1.2 -@@ -3,10 +3,10 @@ - - ;; Copyright (C) 1999, 2000 Free Software Foundation, Inc - --;; Author: NIIBE Yutaka <gniibe@chroot.org> -+;; Author: NIIBE Yutaka <gniibe@m17n.org> - ;; KATAYAMA Yoshio <kate@pfu.co.jp> ; Multilingual Enhancement - --;; Maintainer: TOMURA Satoru <tomura@etl.go.jp> -+;; Maintainer: NIIBE Yutaka <gniibe@m17n.org> - - ;; Keywords: mule, multilingual, input method - -Index: egg-sim-old.el -=================================================================== -RCS file: egg-sim-old.el -diff -N egg-sim-old.el ---- egg-sim-old.el 27 Jan 2001 18:46:59 -0000 1.1.1.1 -+++ /dev/null 1 Jan 1970 00:00:00 -0000 -@@ -1,514 +0,0 @@ --;;; egg-sim.el --- EGG Simple Input Method -- --;; Copyright (C) 2000 Electrotechnical Laboratory, JAPAN. --;; Licensed to the Free Software Foundation. --;; Copyright (C) 2000 TOMURA Satoru <tomura@etl.go.jp> -- -- --;; Author: TOMURA Satoru <tomura@etl.go.jp> -- --;; Maintainer: TOMURA Satoru <tomura@etl.go.jp> -- --;; Keywords: mule, multilingual, input method -- --;; This file is part of EGG. -- --;; EGG is free software; you can redistribute it and/or modify --;; it under the terms of the GNU General Public License as published by --;; the Free Software Foundation; either version 2, or (at your option) --;; any later version. -- --;; EGG is distributed in the hope that it will be useful, --;; but WITHOUT ANY WARRANTY; without even the implied warranty of --;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --;; GNU General Public License for more details. -- --;; You should have received a copy of the GNU General Public License --;; along with GNU Emacs; see the file COPYING. If not, write to the --;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, --;; Boston, MA 02111-1307, USA. -- --;;; Commentary: -- --;;; Code: -- --;;; This code is based on egg-jsymbol.el of Egg V3. -- --;;; 92.10.18 modified for Mule Ver.0.9.6 by K.Handa <handa@etl.go.jp> --;;; Moved from egg.el --;;; 92.12.26 modified for Mule Ver.0.9.7 by T.Shingu <shingu@cpr.canon.co.jp> --;;; JIS Hojo Kanji support. -- --(require 'menudiag) -- --(provide 'egg-sim) -- --(defun make-char-list (charset &optional from to) -- (let ((result nil) -- (chars (charset-chars charset)) -- min max) -- (setq min (if (= chars 96) 32 33) -- max (if (= chars 96) 127 126)) -- (setq from (if from (+ min (1- from)) min) -- to (if to (+ min (1- to)) max)) -- (and (<= min from) -- (<= to max) -- (cond ((= (charset-dimension charset) 1) -- (while (<= from to) -- (setq result (cons (char-to-string -- (make-char charset to)) -- result) -- to (1- to))) -- result) -- ((= (charset-dimension charset) 2) -- (while (<= from to) -- (let ((code max)) -- (while (<= min code) -- (setq result (cons (char-to-string -- (make-char charset to code)) -- result) -- code (1- code)))) -- (setq to (1- to))) -- result))))) -- --(defvar egg-sim-ascii-menu -- '(menu "ASCII:" ,(make-char-list 'ascii))) -- --(defvar egg-sim-latin-1-menu -- `(menu "ISO 8859-1:" ,(make-char-list 'latin-iso8859-1))) -- --(defvar egg-sim-latin-2-menu -- `(menu "ISO 8859-2:" ,(make-char-list 'latin-iso8859-2))) -- --(defvar egg-sim-latin-3-menu -- `(menu "ISO 8859-3:" ,(make-char-list 'latin-iso8859-3))) -- --(defvar egg-sim-latin-4-menu -- `(menu "ISO 8859-4:" ,(make-char-list 'latin-iso8859-4))) -- --(defvar egg-sim-latin-5-menu -- `(menu "ISO 8859-9:" ,(make-char-list 'latin-iso8859-9))) -- --(defvar egg-sim-cyrillic-menu -- `(menu "ISO 8859-5:" ,(make-char-list 'cyrillic-iso8859-5))) -- --(defvar egg-sim-arabic-menu -- `(menu "ISO 8859-6:" ,(make-char-list 'arabic-iso8859-6))) -- --(defvar egg-sim-greek-menu -- `(menu "ISO 8859-7:" ,(make-char-list 'greek-iso8859-7))) -- --(defvar egg-sim-hebrew-menu -- `(menu "ISO 8859-8:" ,(make-char-list 'hebrew-iso8859-8))) -- --(defvar egg-sim-thai-menu -- `(menu "TIS620.2529:" ,(make-char-list 'thai-tis620))) -- --(defvar egg-sim-lao-menu -- `(menu "lao:" ,(make-char-list 'lao))) -- --(defvar egg-sim-vietnamese-menu -- `(menu "Vietnamese:" -- (("VISCII1.1(lower-case)" . -- (menu "VISCII1.1 lower-case:" -- ,(make-char-list 'vietnamese-viscii-lower))) -- ("VISCII1.1(upper-case)" . -- (menu "VISCII1.1 upper-case:" -- ,(make-char-list 'vietnamese-viscii-upper)))))) -- --(defvar egg-sim-chinese-big5-menu -- `(menu "Big5:" -- (("Level1" . -- (menu "Big 5 Level1:" , (make-char-list 'chinese-big5-1))) -- ("Level2" . -- (menu "Big 5 Level2:" , (make-char-list 'chinese-big5-2)))))) -- --(defvar egg-sim-chinese-cns-menu -- `(menu "CNS 11643:" -- (("Plane-1" . -- (menu "CNS 11643-1:" ,(make-char-list 'chinese-cns11643-1))) -- ("Plane- 2" . -- (menu "CNS 11643-2:" ,(make-char-list 'chinese-cns11643-2))) -- ("Plane-3" . -- (menu "CNS 11643-3:" ,(make-char-list 'chinese-cns11643-3))) -- ("Plane-4" . -- (menu "CNS 11643-4:" ,(make-char-list 'chinese-cns11643-4))) -- ("Plane-5" . -- (menu "CNS 11643-5:" ,(make-char-list 'chinese-cns11643-5))) -- ("Plane-6" . -- (menu "CNS 11643-6:" ,(make-char-list 'chinese-cns11643-6))) -- ("Plane-7" . -- (menu "CNS 11643-7:" ,(make-char-list 'chinese-cns11643-7)))))) -- --(defvar egg-sim-chinese-gb-menu -- `(menu "GB 2312:" -- (("All" . -- (menu "GB 2312:" ,(make-char-list 'chinese-gb2312))) -- ("Symbols" . -- (menu "GB2312/1:" ,(make-char-list 'chinese-gb2312 1 1))) -- ("Numbers" . -- (menu "GB2312/2:" ,(make-char-list 'chinese-gb2312 2 2))) -- ("Fullwidth ASCII" . -- (menu "GB2312/3:" ,(make-char-list 'chinese-gb2312 3 3))) -- ("Hiragana" . -- (menu "GB2312/4:" ,(make-char-list 'chinese-gb2312 4 4))) -- ("Katanaka" . -- (menu "GB2312/5:" ,(make-char-list 'chinese-gb2312 5 5))) -- ("Greek" . -- (menu "GB2312/6:" ,(make-char-list 'chinese-gb2312 6 6))) -- ("Cyrillic" . -- (menu "GB2312/7:" ,(make-char-list 'chinese-gb2312 7 7))) -- ("Pinyin/Bopomofo" . -- (menu "GB2312/8:" ,(make-char-list 'chinese-gb2312 8 8))) -- ("Box Drawings" . -- (menu "GB2312/9:" ,(make-char-list 'chinese-gb2312 9 9))) -- ))) -- --(defvar egg-sim-chinese-menu -- `(menu "Chinese:" -- (("GB2312" . , egg-sim-chinese-gb-menu) -- ("CNS11643" . , egg-sim-chinese-cns-menu) -- ("Big5" . , egg-sim-chinese-big5-menu)))) -- --(defvar egg-sim-korean-menu -- `(menu "Korean:" -- (("KSC5601" . -- (menu "KSC 5601:" ,(make-char-list 'korean-ksc5601))) -- ("Symbol" . -- (menu "KSC 5601/1-2:" ,(make-char-list 'korean-ksc5601 1 2))) -- ("Fullwidth ASCII" . -- (menu "KSC 5601/3:" , (make-char-list 'korean-ksc5601 3 3))) -- ("Jamo" . -- (menu "KSC 5601/4:" , (make-char-list 'korean-ksc5601 4 4))) -- ("Roman Number/Greek" . -- (menu "KSC 5601/5:" , (make-char-list 'korean-ksc5601 5 5))) -- ("Box Drawings" . -- (menu "KSC 5601/6:" , (make-char-list 'korean-ksc5601 6 6))) -- ("Unit" . -- (menu "KSC 5601/7:" , (make-char-list 'korean-ksc5601 7 7))) -- ("Misc." . -- (menu "KSC 5601/8-9:" , (make-char-list 'korean-ksc5601 8 9))) -- ("Hiragana" . -- (menu "KSC 5601/10:" , (make-char-list 'korean-ksc5601 10 10))) -- ("Katakana" . -- (menu "KSC 5601/11:" , (make-char-list 'korean-ksc5601 11 11))) -- ("Cyrillic" . -- (menu "KSC 5601/12:" , (make-char-list 'korean-ksc5601 12 12))) -- ("Hangul" . -- (menu "KSC 5601/16-40:" , (make-char-list 'korean-ksc5601 16 40))) -- ("Hanja" . -- (menu "KSC 5601/42-93:" , (make-char-list 'korean-ksc5601 42 93)))))) -- --(defvar egg-sim-japanese-menu -- `(menu "Japanese:" -- (("JISX0201" . -- ,(append (make-char-list 'latin-jisx0201) -- (make-char-list 'katakana-jisx0201))) -- ("JISX0208" . -- (menu "JIS X 0208:" ,(make-char-list 'japanese-jisx0208))) -- ("JISX0212" . -- (menu "JIS X 0212:" ,(make-char-list 'japanese-jisx0212))) -- ("JISX0208/0212" . -- (menu "$B5-9fF~NO(B:" -- (("JIS$BF~NO(B" . japanese-jisx0208) -- ("$B5-9f(B" . -- (menu "$B5-9f(B:" , (make-char-list 'japanese-jisx0208 1 2))) -- ("$B1Q?t;z(B" . -- (menu "$B1Q?t;z(B:" , (make-char-list 'japanese-jisx0208 3 3))) -- ("$B$R$i$,$J(B" . -- (menu "$B$R$i$,$J(B:" , (make-char-list 'japanese-jisx0208 4 4))) -- ("$B%+%?%+%J(B" . -- (menu "$B%+%?%+%J(B:" , (make-char-list 'japanese-jisx0208 5 5))) -- ("$B%.%j%7%cJ8;z(B" . -- (menu "$B%.%j%7%cJ8;z(B:" , (make-char-list 'japanese-jisx0208 6 6))) -- ("$B%-%j%kJ8;z(B" . -- (menu "$B%-%j%kJ8;z(B:" , (make-char-list 'japanese-jisx0208 7 7))) -- ("$B7S@~(B" . -- (menu "$B7S@~(B:" , (make-char-list 'japanese-jisx0208 8 8))) -- ;;;"$BIt<sF~NO(B" (bushyu-input) -- ;;; "$B2h?tF~NO(B" (kakusuu-input) -- ("$BBh0l?e=`(B" . -- (menu "$BBh0l?e=`(B:" , (make-char-list 'japanese-jisx0208 16 47))) -- ("$BBhFs?e=`(B" . -- (menu "$BBhFs?e=`(B:" , (make-char-list 'japanese-jisx0208 48 84))) -- ("$BJd=u4A;z(B" . -- (menu "$BJd=u4A;z(B:" , (make-char-list 'japanese-jisx0212 2 77))))))))) -- --(defvar egg-sim-ipa-menu -- `(menu "IPA:" ,(make-char-list 'ipa))) -- --(defvar egg-sisheng-menu -- `(menu "SiSheng characters" ,(make-char-list 'chinese-sisheng))) -- --(defvar egg-sim-code-input-menu -- `(menu "Charset:" -- (("JISX0208" . japanese-jisx0208) -- ("JISX0212" . japanese-jisx0212) -- ("CNS11643-1" . chinese-cns11634-1) -- ("CNS11643-2" . chinese-cns11634-2) -- ("CNS11643-3" . chinese-cns11634-3) -- ("CNS11643-4" . chinese-cns11634-4) -- ("CNS11643-5" . chinese-cns11634-5) -- ("CNS11643-6" . chinese-cns11634-6) -- ("CNS11643-7" . chinese-cns11634-7) -- ("Big5-1" . chinese-big5-1) -- ("Big5-2" . chinese-big5-2) -- ("GB2312" . chinese-gb2312) -- ("KSC5601" . korean-ksc5601)))) -- --(defvar egg-simple-input-method-menu-item-list -- `(("Code Input" . ,egg-sim-code-input-menu) -- ("Arabic" . , egg-sim-arabic-menu) -- ("ASCII" . , egg-sim-ascii-menu) -- ("Chinese" . , egg-sim-chinese-menu) -- ("Cyrillic" . , egg-sim-cyrillic-menu) -- ("Greek" . , egg-sim-greek-menu) -- ("Hebrew" . , egg-sim-hebrew-menu) -- ("Japanese" . , egg-sim-japanese-menu) -- ("Korean" . , egg-sim-korean-menu) -- ("Latin" . -- (menu "Latin:" -- (("Latin-1" . , egg-sim-latin-1-menu) -- ("Latin-2" . , egg-sim-latin-2-menu) -- ("Latin-3" . , egg-sim-latin-3-menu) -- ("Latin-4" . , egg-sim-latin-4-menu) -- ("Latin-5" . , egg-sim-latin-5-menu)))) -- ("Thai/Lao" . -- (menu "Thai/Lao:" -- (("Thai" . , egg-sim-thai-menu) -- ("Lao" . , egg-sim-lao-menu)))) -- ("Vietnamese" . , egg-sim-vietnamese-menu) -- ("Phonetic code" . -- (menu "Phonetic code:" -- (("SISHENG" . , egg-sisheng-menu) -- ("IPA" . , egg-sim-ipa-menu)))) -- )) -- --(defvar egg-language-environment-alist -- `(("ASCII" . , egg-sim-ascii-menu) -- ("Chinese-BIG5" . , egg-sim-chinese-big5-menu) -- ("Chinese-CNS" . , egg-sim-chinese-cns-menu) -- ("Chinese-GB" . , egg-sim-chinese-gb-menu) -- ("Cyrillic-ISO" . , egg-sim-cyrillic-menu) -- ("Cyrillic-KOI8" . , egg-sim-cyrillic-menu) -- ("Cyrillic-ALT" . , egg-sim-cyrillic-menu) -- ("Czech" . , egg-sim-latin-2-menu) -- ("Devanagari") -- ("English" . , egg-sim-ascii-menu) -- ("Ethiopic") -- ("German" . , egg-sim-latin-1-menu) -- ("Greek" . , egg-sim-greek-menu) -- ("Hebrew" . , egg-sim-hebrew-menu) -- ("Hindi") -- ("IPA" . , egg-sim-ipa-menu) -- ("Japanese" . , egg-sim-japanese-menu) -- ("Korean" . , egg-sim-korean-menu) -- ("Lao" . , egg-sim-lao-menu) -- ("Latin-1" . , egg-sim-latin-1-menu) -- ("Latin-2" . , egg-sim-latin-2-menu) -- ("Latin-3" . , egg-sim-latin-3-menu) -- ("Latin-4" . , egg-sim-latin-4-menu) -- ("Latin-5" . , egg-sim-latin-5-menu) -- ("Romaian" . , egg-sim-latin-2-menu) -- ("Slovenian" . , egg-sim-latin-2-menu) -- ("Slovak" . , egg-sim-latin-2-menu) -- ("Thai" . , egg-sim-thai-menu) -- ("Tibetan") -- ("Turkish" . , egg-sim-latin-5-menu) -- ("Vietnamese" . , egg-sim-vietnamese-menu))) -- --(defvar egg-simple-input-method-menu -- `(menu "Character set:" , egg-simple-input-method-menu-item-list)) -- --;;;;###autoload --(defun egg-simple-input-method() -- (interactive) -- (let ((result (egg-simple-input-menu))) -- (cond((stringp result) -- (insert result)) -- ((symbolp result) -- (egg-character-code-input result -- (format "%s/Character Code in Hexadecimal:" -- (charset-description result))))))) -- --(defun egg-simple-input-menu () -- (let ((menu (cdr-safe (assoc current-language-environment -- egg-language-environment-alist)))) -- (if menu -- (menudiag-select -- `(menu "Character set:" ,(cons (cons current-language-environment -- menu) -- egg-simple-input-method-menu-item-list))) -- (menudiag-select egg-simple-input-method-menu)))) -- --(defun egg-character-code-input (charset prompt) -- (egg-insert-character-code-from-minibuffer charset prompt)) -- --(defun egg-insert-character-code-from-minibuffer (charset prompt) -- (let ((str (read-from-minibuffer prompt)) val) -- (while (null (setq val (egg-read-character-code-from-string str charset))) -- (beep) -- (setq str (read-from-minibuffer prompt str))) -- (insert (make-char charset (car val) (cdr val))))) -- --(defun egg-hexadigit-value (ch) -- (cond((and (<= ?0 ch) (<= ch ?9)) -- (- ch ?0)) -- ((and (<= ?a ch) (<= ch ?f)) -- (+ (- ch ?a) 10)) -- ((and (<= ?A ch) (<= ch ?F)) -- (+ (- ch ?A) 10)))) -- --(defun egg-read-character-code-from-string (str charset) -- (if (and (= (length str) 4) -- (<= 2 (egg-hexadigit-value (aref str 0))) -- (egg-hexadigit-value (aref str 1)) -- (<= 2 (egg-hexadigit-value (aref str 2))) -- (egg-hexadigit-value (aref str 3))) -- (let ((code1 (+ (* 16 (egg-hexadigit-value (aref str 0))) -- (egg-hexadigit-value (aref str 1)))) -- (code2 (+ (* 16 (egg-hexadigit-value (aref str 2))) -- (egg-hexadigit-value (aref str 3)))) -- (min (if (= (charset-chars charset) 94) -- 33 32)) -- (max (if (= (charset-chars charset) 94) -- 126 127))) -- (and (<= min code1) -- (<= code1 max) -- (<= min code2) -- (<= code2 max) -- (cons code1 code2))))) -- --;;; --;;; --;;; -- --(defun make-non-iso2022-code-table-file (name) -- (with-temp-file name -- (set-buffer-multibyte nil) -- (insert ";;; -*- coding: -*-\n\n") -- (insert " |") -- -- (let ((i 0)) -- (while (< i 16) -- (insert (format " %X " i)) -- (setq i (1+ i)))) -- (insert "\n") -- -- (insert "-+") -- (let ((i 0)) -- (while (< i 16) -- (insert (format "----" i)) -- (setq i (1+ i)))) -- (insert "\n") -- -- (let ((i 0)) -- (while (< i 16) -- (insert (format "%X|" i)) -- (let ((j 0) (c i)) -- (while (< j 16) -- (insert (format " \"%c\"" c)) -- (setq j (1+ j) -- c (+ c 16))) -- (insert (format "\n"))) -- (setq i (1+ i)))))) -- --(defun make-iso2022-94char-code-table-file (name) -- (with-temp-file name -- (set-buffer-multibyte nil) -- (insert ";;; -*- coding: -*-\n\n") -- (insert " |") -- (let ((i 0)) -- (while (< i 16) -- (insert (format " %X " i)) -- (setq i (1+ i)))) -- (insert "\n") -- -- (insert "-+") -- (let ((i 0)) -- (while (< i 16) -- (insert (format "----" i)) -- (setq i (1+ i)))) -- (insert "\n") -- -- (let ((i 0)) -- (while (< i 16) -- (insert (format "%X|" i)) -- (let ((j 0) (c i)) -- (while (< j 16) -- (if (or (<= c 31) -- (= c 127) -- (and (<= 128 c) -- (<= c 160)) -- (= c 255)) -- (insert " ") -- (insert (format " \"%c\"" c))) -- (setq j (1+ j) -- c (+ c 16))) -- (insert (format "\n"))) -- (setq i (1+ i)))))) -- --(defun make-iso2022-96char-code-table-file (name) -- (with-temp-file name -- (set-buffer-multibyte nil) -- (insert ";;; -*- coding: -*-\n\n") -- (insert " |") -- (let ((i 0)) -- (while (< i 16) -- (insert (format " %X " i)) -- (setq i (1+ i)))) -- (insert "\n") -- -- (insert "-+") -- (let ((i 0)) -- (while (< i 16) -- (insert (format "----" i)) -- (setq i (1+ i)))) -- (insert "\n") -- -- (let ((i 0)) -- (while (< i 16) -- (insert (format "%X|" i)) -- (let ((j 0) (c i)) -- (while (< j 16) -- (if (or (<= c 31) -- (= c 127) -- (and (<= 128 c) -- (< c 160))) -- (insert " ") -- (insert (format " \"%c\"" c))) -- (setq j (1+ j) -- c (+ c 16))) -- (insert (format "\n"))) -- (setq i (1+ i)))))) -- --(defun make-euc-code-table-file (name) -- (with-temp-file name -- (set-buffer-multibyte nil) -- (insert ";;; -*- coding: -*-\n\n") -- (insert " |") -- (let ((i 1)) -- (while (<= i 94) -- ;; "XX" -- (insert (format " %02d " i)) -- (setq i (1+ i)))) -- (insert "\n") -- -- (insert "-+") -- (let ((i 1)) -- (while (<= i 94) -- (insert (format "-----" i)) -- (setq i (1+ i)))) -- (insert "\n") -- -- (let ((i 1)) -- (while (<= i 94) -- (insert (format "%02d|" i)) -- (let ((j 1)) -- (while (<= j 94) -- (insert (format " \"%c%c\"" -- (+ i 32 128) -- (+ j 32 128))) -- (setq j (1+ j))) -- (insert (format "\n"))) -- (setq i (1+ i)))))) -\ No newline at end of file -Index: egg-sim.el -=================================================================== -RCS file: /cvs/tamago/tamago/egg-sim.el,v -retrieving revision 1.1.1.1 -retrieving revision 1.2 -diff -d -u -p -r1.1.1.1 -r1.2 ---- egg-sim.el 27 Jan 2001 18:46:59 -0000 1.1.1.1 -+++ egg-sim.el 27 Jan 2001 18:53:13 -0000 1.2 -@@ -73,7 +73,7 @@ - result))))) - - (defvar egg-sim-ascii-menu -- '(menu "ASCII:" ,(make-char-list 'ascii))) -+ `(menu "ASCII:" ,(make-char-list 'ascii))) - - (defvar egg-sim-latin-1-menu - `(menu "ISO 8859-1:" ,(make-char-list 'latin-iso8859-1))) -@@ -355,7 +355,7 @@ - `(menu "Character set:" , egg-simple-input-method-menu-item-list)) - - ;;;;###autoload --(defun egg-simple-input-method() -+(defun egg-simple-input-method () - (interactive) - (let ((result (egg-simple-input-menu))) - (cond((stringp result) -@@ -545,4 +545,4 @@ - (+ j 32 128))) - (setq j (1+ j))) - (insert (format "\n"))) -- (setq i (1+ i)))))) -\ No newline at end of file -+ (setq i (1+ i)))))) -Index: egg-simv.el -=================================================================== -RCS file: egg-simv.el -diff -N egg-simv.el ---- egg-simv.el 27 Jan 2001 18:46:59 -0000 1.1.1.1 -+++ /dev/null 1 Jan 1970 00:00:00 -0000 -@@ -1,47 +0,0 @@ -- -- | 0 1 2 3 4 5 6 7 8 9 A B C D E F ---+---------------------------------------------------------------- --0| " " "0" "@" "P" "`" "p" ",2U(B" ",20(B" ",2u(B" ",10(B" ",2`(B" ",2p(B" ",1`(B" ",1p(B" --1| "!" "1" "A" "Q" "a" "q" ",2!(B" ",21(B" ",1!(B" ",11(B" ",2a(B" ",1Q(B" ",1a(B" ",1q(B" --2| ",2F(B" """ "2" "B" "R" "b" "r" ",2"(B" ",22(B" ",1"(B" ",12(B" ",2b(B" ",2r(B" ",1b(B" ",1r(B" --3| "#" "3" "C" "S" "c" "s" ",2#(B" ",25(B" ",1#(B" ",2^(B" ",2c(B" ",2s(B" ",1c(B" ",1s(B" --4| ",2V(B" "$" "4" "D" "T" "d" "t" ",2$(B" ",2~(B" ",1$(B" ",2=(B" ",2d(B" ",2t(B" ",1d(B" ",1t(B" --5| ",2G(B" "%" "5" "E" "U" "e" "u" ",2%(B" ",2>(B" ",1%(B" ",15(B" ",2e(B" ",1U(B" ",1e(B" ",1u(B" --6| ",2g(B" "&" "6" "F" "V" "f" "v" ",2&(B" ",26(B" ",1&(B" ",16(B" ",1F(B" ",1V(B" ",1f(B" ",1v(B" --7| "'" "7" "G" "W" "g" "w" ",2'(B" ",27(B" ",1'(B" ",17(B" ",1G(B" ",1W(B" ",1g(B" ",1w(B" --8| "(" "8" "H" "X" "h" "x" ",2((B" ",28(B" ",1((B" ",18(B" ",2h(B" ",1X(B" ",1h(B" ",1x(B" --9| ",2[(B" ")" "9" "I" "Y" "i" "y" ",2)(B" ",2v(B" ",1)(B" ",2q(B" ",2i(B" ",2y(B" ",1i(B" ",1y(B" --A| "*" ":" "J" "Z" "j" "z" ",2*(B" ",2w(B" ",1*(B" ",2Q(B" ",2j(B" ",2z(B" ",1j(B" ",1z(B" --B| "+" ";" "K" "[" "k" "{" ",2+(B" ",2o(B" ",1+(B" ",2W(B" ",2k(B" ",1[(B" ",1k(B" ",1{(B" --C| "," "<" "L" "\" "l" "|" ",2,(B" ",2|(B" ",1,(B" ",2X(B" ",2l(B" ",1\(B" ",1l(B" ",1|(B" --D| "-" "=" "M" "]" "m" "}" ",2-(B" ",2{(B" ",1-(B" ",1=(B" ",2m(B" ",2}(B" ",1m(B" ",1}(B" --E| ",2\(B" "." ">" "N" "^" "n" "~" ",2.(B" ",2x(B" ",1.(B" ",1>(B" ",2n(B" ",1^(B" ",1n(B" ",1~(B" --F| "/" "?" "O" "_" "o" ",2/(B" ",2O(B" ",1/(B" ",2_(B" ",1O(B" ",1_(B" ",1o(B" ",2f(B" -- --"a" ",1`(B" ",1d(B" ",1c(B" ",1a(B" ",1U(B" --",1e(B" ",1"(B" ",1F(B" ",1G(B" ",1!(B" ",1#(B" --",1b(B" ",1%(B" ",1&(B" ",1g(B" ",1$(B" ",1'(B" --"e" ",1i(B" ",1k(B" ",1((B" ",1h(B" ",1)(B" --",1j(B" ",1*(B" ",1,(B" ",1-(B" ",1+(B" ",1.(B" --"i" ",1m(B" ",1o(B" ",1n(B" ",1l(B" ",18(B" --"o" ",1s(B" ",1v(B" ",1u(B" ",1r(B" ",1w(B" --",1t(B" ",1/(B" ",11(B" ",12(B" ",10(B" ",15(B" --",1=(B" ",1>(B" ",17(B" ",1^(B" ",16(B" ",1~(B" --"u" ",1z(B" ",1|(B" ",1{(B" ",1y(B" ",1x(B" --",1_(B" ",1Q(B" ",1X(B" ",1f(B" ",1W(B" ",1q(B" --"y" ",1}(B" ",1V(B" ",1[(B" ",1O(B" ",1\(B" -- --"A" ",2`(B" ",2d(B" ",2c(B" ",2a(B" ",2U(B" --",2e(B" ",2"(B" ",2F(B" ",2G(B" ",2!(B" ",2#(B" --",2b(B" ",2%(B" ",2&(B" ",2g(B" ",2$(B" ",2'(B" --"E" ",2h(B" ",2k(B" ",2((B" ",2i(B" ",2)(B" --",2j(B" ",2+(B" ",2,(B" ",2-(B" ",2*(B" ",2.(B" --"I" ",2l(B" ",2o(B" ",2n(B" ",2m(B" ",28(B" --"O" ",2r(B" ",2v(B" ",2u(B" ",2s(B" ",2w(B" --",2t(B" ",20(B" ",21(B" ",22(B" ",2/(B" ",25(B" --",2=(B" ",26(B" ",27(B" ",2^(B" ",2>(B" ",2~(B" --"U" ",2y(B" ",2|(B" ",2{(B" ",2z(B" ",2x(B" --",2_(B" ",2W(B" ",2X(B" ",2f(B" ",2Q(B" ",2q(B" --"Y" ",2O(B" ",2V(B" ",2[(B" ",2}(B" ",2\(B" -- --",2p(B" ",1p(B" -\ No newline at end of file -Index: egg-util.el -=================================================================== -RCS file: egg-util.el -diff -N egg-util.el ---- egg-util.el 27 Jan 2001 18:46:05 -0000 1.1.1.2 -+++ /dev/null 1 Jan 1970 00:00:00 -0000 -@@ -1,62 +0,0 @@ --;;; egg-util.el --- Utilities with Egg -- --;; Copyright (C) 2000 ElectroTechinical Laboratory, Japan --;; Copyright (C) 2000 TOMURA Satoru <tomura@etl.go.jp> -- --;; Author: TOMURA Satoru <tomura@etl.go.jp> -- --;; Maintainer: TOMURA Satoru <tomura@etl.go.jp> -- --;; Keywords: mule, multilingual, input method -- --;; This file is part of EGG. -- --;; EGG is free software; you can redistribute it and/or modify --;; it under the terms of the GNU General Public License as published by --;; the Free Software Foundation; either version 2, or (at your option) --;; any later version. -- --;; EGG is distributed in the hope that it will be useful, --;; but WITHOUT ANY WARRANTY; without even the implied warranty of --;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --;; GNU General Public License for more details. -- --;; You should have received a copy of the GNU General Public License --;; along with GNU Emacs; see the file COPYING. If not, write to the --;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, --;; Boston, MA 02111-1307, USA. -- --;;; Commentary: -- --;;; Code: -- --(provide 'egg-util) -- --(defun add-directory-to-load-path (dir) -- (let ((dir (expand-file-name dir))) -- (add-to-list 'load-path dir) -- (let ((default-directory dir)) -- (normal-top-level-add-subdirs-to-load-path)))) -- --(defun locate-libraries (library &optional nosuffix path interactive-call) -- (let ((lpath (or path load-path)) -- (result nil)) -- (while lpath -- (let ((path (locate-library library nosuffix lpath interactive-call))) -- (if path -- (progn -- (setq lpath (cdr-safe -- (member (directory-file-name (file-name-directory path)) -- lpath)) -- result (cons path result))) -- (progn -- (setq lpath nil -- result (reverse result)))))) -- result)) -- --(defun load-libraries (library &optional path) -- (let ((files (locate-libraries library nil (or path load-path) nil))) -- (while files -- (load-file (car files)) -- (setq files (cdr files))))) -- -Index: egg-x0213.el -=================================================================== -RCS file: egg-x0213.el -diff -N egg-x0213.el ---- /dev/null 1 Jan 1970 00:00:00 -0000 -+++ egg-x0213.el 1 Dec 2001 09:42:24 -0000 1.1 -@@ -0,0 +1,111 @@ -+;;; jisx0213.el --- Charset Definition for JIS X 0213 -+ -+;; Copyright (C) 1999,2000 PFU LIMITED -+ -+;; Author: KATAYAMA Yoshio <kate@pfu.co.jp> -+ -+;; Maintainer: TOMURA Satoru <tomura@etl.go.jp> -+ -+;; Keywords: mule, multilingual, input method -+ -+;; This file is part of EGG. -+ -+;; EGG is free software; you can redistribute it and/or modify -+;; it under the terms of the GNU General Public License as published by -+;; the Free Software Foundation; either version 2, or (at your option) -+;; any later version. -+ -+;; EGG is distributed in the hope that it will be useful, -+;; but WITHOUT ANY WARRANTY; without even the implied warranty of -+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+;; GNU General Public License for more details. -+ -+;; You should have received a copy of the GNU General Public License -+;; along with GNU Emacs; see the file COPYING. If not, write to the -+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -+;; Boston, MA 02111-1307, USA. -+ -+;;; Commentary: -+ -+;; This module defines JIS X 0213 character sets if these character -+;; sets are not defined. This module also defines fixed-euc-jisx0213 -+;; coding systems if these coding systems are not defined and can be -+;; defined. -+ -+;;; Code: -+ -+(if (not (charsetp 'japanese-jisx0213-1)) -+ (define-charset 151 'japanese-jisx0213-1 -+ [2 94 2 0 ?O 0 "JISX0213-1" "JISX0213-1" "JISX0213-1 (Japanese)"])) -+ -+(if (not (charsetp 'japanese-jisx0213-2)) -+ (define-charset 254 'japanese-jisx0213-2 -+ [2 94 2 0 ?P 0 "JISX0213-2" "JISX0213-2" "JISX0213-2 (Japanese)"])) -+ -+;; Mule-UCS is required to adopt fixed-euc-jisx0213. -+(or -+ noninteractive ;; unnecessary in non-interactive mode. -+ (unless (or (require 'jisx0213) -+ (get 'jisx0213-to-jisx0208/0212 'translation-table)) -+ (message "Mule-UCS not installed.")) -+ (coding-system-p 'fixed-euc-jisx0213) -+ (progn -+ -+ (define-ccl-program ccl-decode-fixed-euc-jisx0213 -+ `(2 -+ ((r3 = ,(charset-id 'katakana-jisx0201)) -+ (loop ;; ascii kana 212 208 -+ (read r0) ;; r0 - 0 0 h h -+ (read r1) ;; r1 - l h l h -+ (if (r0 < ?\x80) -+ ((if (r1 < ?\x80) -+ (write-repeat r1)) -+ (write r3) -+ (write-repeat r1)) -+ ((r0 &= 127) -+ (r0 <<= 7) -+ (if (r1 > ?\x80) -+ ((r1 &= 127) -+ (r2 = ,(charset-id 'japanese-jisx0213-1))) -+ (r2 = ,(charset-id 'japanese-jisx0213-2))) -+ (r0 += r1) -+ (translate-character jisx0213-to-jisx0208/0212 r2 r0) -+ (write-multibyte-character r2 r0) -+ (repeat) -+ )))))) -+ -+ (define-ccl-program ccl-encode-fixed-euc-jisx0213 -+ `(2 -+ ((loop -+ (read-multibyte-character r0 r1) -+ (r6 = (r0 == ,(charset-id 'ascii))) ;G0 -+ (r6 |= (r0 == ,(charset-id 'latin-jisx0201))) -+ (if r6 -+ ((write 0) -+ (write-repeat r1))) -+ (r6 = (r0 == ,(charset-id 'japanese-jisx0208))) -+ (r6 |= (r0 == ,(charset-id 'japanese-jisx0208-1978))) -+ (r6 |= (r0 == ,(charset-id 'japanese-jisx0213-1))) -+ (if r6 ;G1 -+ ((r2 = (r1 >> 7)) -+ (write (r2 | ?\x80)) -+ (write ((r1 & ?\x7f) | ?\x80)) -+ (repeat))) -+ (if (r0 == ,(charset-id 'katakana-jisx0201)) ;G2 -+ ((write 0) -+ (write (r1 | ?\x80)) -+ (repeat))) -+ (r6 = (r0 == ,(charset-id 'japanese-jisx0212))) ;G3 -+ (r6 |= (r0 == ,(charset-id 'japanese-jisx0213-2))) -+ (if r6 -+ ((r2 = (r1 >> 7)) -+ (write (r2 | ?\x80)) -+ (write (r1 & ?\x7f)) -+ (repeat))) -+ (repeat))))) -+ -+ (make-coding-system -+ 'fixed-euc-jisx0213 4 ?W "Coding System for fixed EUC Japanese" -+ (cons ccl-decode-fixed-euc-jisx0213 ccl-encode-fixed-euc-jisx0213)))) -+ -+(provide 'egg-x0213) -Index: egg.el -=================================================================== -RCS file: /cvs/tamago/tamago/egg.el,v -retrieving revision 1.1.1.3 -retrieving revision 1.5 -diff -d -u -p -r1.1.1.3 -r1.5 ---- egg.el 27 Jan 2001 18:46:59 -0000 1.1.1.3 -+++ egg.el 22 Jul 2002 13:18:56 -0000 1.5 -@@ -30,13 +30,19 @@ - - ;;; Code: - --(require 'cl) -+(defconst egg-version "4.0.6" -+ "Version number for this version of Tamago.") -+ -+(eval-when-compile -+ (require 'cl)) -+ - (require 'egg-edep) - --(autoload 'egg-simple-input-method "egg-sim") -+(autoload 'egg-simple-input-method "egg-sim" -+ "simple input method for Tamago 4." t) - - (defgroup egg nil -- "Tamago Version 4") -+ "Tamago Version 4.") - - (defcustom egg-mode-preference t - "*Make Egg as modefull input method, if non-NIL." -@@ -44,13 +50,89 @@ - - (defvar egg-default-language) - --(defvar egg-last-method-name) -+(defvar egg-last-method-name nil) - (make-variable-buffer-local 'egg-last-method-name) - (put 'egg-last-method-name 'permanent-local t) - --(defvar egg-current-keymap nil) --(make-variable-buffer-local 'egg-current-keymap) --(put 'egg-current-keymap 'permanent-local t) -+(defvar egg-mode-map-alist nil) -+(defvar egg-sub-mode-map-alist nil) -+ -+(defmacro define-egg-mode-map (mode &rest initializer) -+ (let ((map (intern (concat "egg-" (symbol-name mode) "-map"))) -+ (var (intern (concat "egg-" (symbol-name mode) "-mode"))) -+ (comment (concat (symbol-name mode) " keymap for EGG mode."))) -+ `(progn -+ (defvar ,map (let ((map (make-sparse-keymap))) -+ ,@initializer -+ map) -+ ,comment) -+ (fset ',map ,map) -+ (defvar ,var nil) -+ (make-variable-buffer-local ',var) -+ (put ',var 'permanent-local t) -+ (or (assq ',var egg-mode-map-alist) -+ (setq egg-mode-map-alist (append egg-mode-map-alist -+ '((,var . ,map)))))))) -+ -+(define-egg-mode-map modefull -+ (define-key map "\C-^" 'egg-simple-input-method) -+ (let ((i 33)) -+ (while (< i 127) -+ (define-key map (vector i) 'egg-self-insert-char) -+ (setq i (1+ i))))) -+ -+(define-egg-mode-map modeless -+ (define-key map " " 'mlh-space-bar-backward-henkan) -+ (define-key map "\C-^" 'egg-simple-input-method)) -+ -+(defvar egg-enter/leave-fence-hook nil) -+ -+(defun egg-enter/leave-fence (&optional old new) -+ (run-hooks 'egg-enter/leave-fence-hook)) -+ -+(defvar egg-activated nil) -+(make-variable-buffer-local 'egg-activated) -+(put 'egg-activated 'permanent-local t) -+ -+(defun egg-activate-keymap () -+ (when (and egg-activated -+ (null (eq (car egg-sub-mode-map-alist) -+ (car minor-mode-overriding-map-alist)))) -+ (let ((alist (append egg-sub-mode-map-alist egg-mode-map-alist)) -+ (overriding (copy-sequence minor-mode-overriding-map-alist))) -+ (while alist -+ (setq overriding (delq (assq (caar alist) overriding) overriding) -+ alist (cdr alist))) -+ (setq minor-mode-overriding-map-alist (append egg-sub-mode-map-alist -+ overriding -+ egg-mode-map-alist))))) -+ -+(add-hook 'egg-enter/leave-fence-hook 'egg-activate-keymap t) -+ -+(defun egg-modify-fence (&rest arg) -+ (add-hook 'post-command-hook 'egg-post-command-func)) -+ -+(defun egg-post-command-func () -+ (run-hooks 'egg-enter/leave-fence-hook) -+ (remove-hook 'post-command-hook 'egg-post-command-func)) -+ -+(defvar egg-change-major-mode-buffer nil) -+ -+(defun egg-activate-keymap-after-command () -+ (while egg-change-major-mode-buffer -+ (save-excursion -+ (when (buffer-live-p (car egg-change-major-mode-buffer)) -+ (set-buffer (car egg-change-major-mode-buffer)) -+ (egg-activate-keymap)) -+ (setq egg-change-major-mode-buffer (cdr egg-change-major-mode-buffer)))) -+ (remove-hook 'post-command-hook 'egg-activate-keymap-after-command)) -+ -+(defun egg-change-major-mode-func () -+ (setq egg-change-major-mode-buffer (cons (current-buffer) -+ egg-change-major-mode-buffer)) -+ (add-hook 'post-command-hook 'egg-activate-keymap-after-command)) -+ -+(add-hook 'change-major-mode-hook 'egg-change-major-mode-func) - - ;;;###autoload - (defun egg-mode (&rest arg) -@@ -64,9 +146,9 @@ - (progn - (its-exit-mode) - (egg-exit-conversion)) -- (setq describe-current-input-method-function nil) -- (if (eq (current-local-map) egg-current-keymap) -- (use-local-map (keymap-parent (current-local-map)))) -+ (setq describe-current-input-method-function nil -+ egg-modefull-mode nil -+ egg-modeless-mode nil) - (remove-hook 'input-method-activate-hook 'its-set-mode-line-title t) - (force-mode-line-update)) - ;; Turn on -@@ -77,11 +159,14 @@ - (egg-set-conversion-backend (nthcdr 2 arg)) - (egg-set-conversion-backend - (list (assq its-current-language (nthcdr 2 arg))) t) -- (setq egg-last-method-name (car arg)) -- (setq egg-current-keymap (if egg-mode-preference -- (egg-modefull-map) -- (egg-modeless-map))) -- (use-local-map egg-current-keymap) -+ (setq egg-last-method-name (car arg) -+ egg-activated t) -+ (egg-activate-keymap) -+ (if egg-mode-preference -+ (progn -+ (setq egg-modefull-mode t) -+ (its-define-select-keys egg-modefull-map)) -+ (setq egg-modeless-mode t)) - (setq inactivate-current-input-method-function 'egg-mode) - (setq describe-current-input-method-function 'egg-help) - (make-local-hook 'input-method-activate-hook) -@@ -95,43 +180,44 @@ - (if (<= (minibuffer-depth) 1) - (remove-hook 'minibuffer-exit-hook 'egg-exit-from-minibuffer))) - --(defun egg-modefull-map () -- "Generate modefull keymap for EGG mode." -- (let ((map (make-sparse-keymap)) -- (i 33)) -- (define-key map "\C-^" 'egg-simple-input-method) -- (while (< i 127) -- (define-key map (vector i) 'egg-self-insert-char) -- (setq i (1+ i))) -- (its-define-select-keys map) -- (set-keymap-parent map (current-local-map)) -- map)) -- --(defun egg-modeless-map () -- "Generate modeless keymap for EGG mode." -- (let ((map (make-sparse-keymap))) -- (define-key map " " 'mlh-space-bar-backward-henkan) -- (define-key map "\C-^" 'egg-simple-input-method) -- (set-keymap-parent map (current-local-map)) -- map)) -- - (defvar egg-context nil) - - (defun egg-self-insert-char () - (interactive) - (its-start last-command-char (and (eq last-command 'egg-use-context) - egg-context))) -+ -+(defun egg-remove-all-text-properties (from to &optional object) -+ (let ((p from) -+ props prop) -+ (while (< p to) -+ (setq prop (text-properties-at p object)) -+ (while prop -+ (unless (eq (car prop) 'composition) -+ (setq props (plist-put props (car prop) nil))) -+ (setq prop (cddr prop))) -+ (setq p (next-property-change p object to))) -+ (remove-text-properties from to props object))) -+ -+(defun egg-setup-invisibility-spec () -+ (if (listp buffer-invisibility-spec) -+ (unless (condition-case nil (memq 'egg buffer-invisibility-spec) (error)) -+ (setq buffer-invisibility-spec (cons 'egg buffer-invisibility-spec))) -+ (unless (eq buffer-invisibility-spec t) -+ (setq buffer-invisibility-spec (list 'egg buffer-invisibility-spec))))) - - (defvar egg-mark-list nil) - (defvar egg-suppress-marking nil) - - (defun egg-set-face (beg eng face &optional object) -- (put face 'face face) -- (add-text-properties beg eng -- (list 'category face -- 'egg-face t -- 'modification-hooks '(egg-mark-modification)) -- object)) -+ (let ((hook (get-text-property beg 'modification-hooks object))) -+ (put face 'face face) -+ (add-text-properties beg eng -+ (list 'category face -+ 'egg-face t -+ 'modification-hooks (cons 'egg-mark-modification -+ hook)) -+ object))) - - (defun egg-mark-modification (beg end) - (if (and (null egg-suppress-marking) -@@ -262,7 +348,7 @@ - (funcall auto-fill-function) - (while (and (< fill-column (current-column)) - (< (current-column) ocolumn)) -- (setq ocolumn (current-column)) -+ (setq ocolumn (current-column)) - (funcall auto-fill-function))))) - - (eval-when (eval load) -Index: eggrc -=================================================================== -RCS file: /cvs/tamago/tamago/eggrc,v -retrieving revision 1.1.1.1 -retrieving revision 1.3 -diff -d -u -p -r1.1.1.1 -r1.3 ---- eggrc 27 Jan 2001 18:45:24 -0000 1.1.1.1 -+++ eggrc 22 Jul 2002 13:18:56 -0000 1.3 -@@ -1,4 +1,4 @@ --;;; eggrc --- EGG Input Method Startup File -+;;; eggrc --- EGG Input Method Startup File -*- emacs-lisp -*- - - ;; Copyright (C) 1999, 2000 Free Software Foundation, Inc - -@@ -107,6 +107,93 @@ - (wnn-add-dict '("ud") "" 15 t t) - (wnn-set-param 2 10 2 45 1 80 5 1 50 -20 400 -10 100 -100 200 0 200)) - -+(defun wnn7-jserver-setup () -+ (wnn-define-environment nil) -+ (wnn-set-fuzokugo "system/kougo.fzk") -+ (wnn-add-fisys-dict "system/fisd" '("fisd.h") t) -+ (wnn-add-fiusr-dict '("fiud") nil t nil) -+ -+ (wnn-add-dict "system/kihon.dic" '("kihon.h") 6 nil t) -+ (wnn-add-dict "system/symbol.dic" '("symbol.h") 1 nil t) -+ (wnn-add-dict "system/symbol_noat.dic" '("symbol_noat.h") 1 nil t) -+ (wnn-add-dict "system/tel.dic" '("tel.h") 1 nil t) -+ (wnn-add-dict "system/zip.dic" '("zip.h") 1 nil t) -+ (wnn-add-dict "system/tankan.dic" nil 1 nil nil) -+ (wnn-add-dict "system/tankan2.dic" nil 1 nil nil) -+ (wnn-add-dict "system/ikeiji.dic" nil 1 nil nil) -+ (wnn-add-dict "system/rensou.dic" nil 1 nil nil) -+ (wnn-add-dict '("ud") nil 15 t t) -+ -+ (wnn-add-dict "option/jinmei.dic" '("jinmei.h") 1 nil t) -+ (wnn-add-dict "option/chimei.dic" '("chimei.h") 1 nil t) -+ (wnn-add-dict "option/address.dic" '("address.h") 1 nil t) -+ (wnn-add-dict "option/station.dic" '("station.h") 1 nil t) -+ (wnn-add-dict "option/kana_english.dic" '("kana_english.h")1 nil t) -+ (wnn-add-dict "option/enterprise.dic" '("enterprise.h") 1 nil t) -+ (wnn-add-dict "option/airport.dic" '("airport.h") 1 nil t) -+ (wnn-add-dict "option/university.dic" '("university.h") 1 nil t) -+ (wnn-add-dict "option/zoo.dic" '("zoo.h") 1 nil t) -+ (wnn-add-dict "option/botanical_garden.dic" '("botanical_garden.h") 1 nil t) -+ (wnn-add-dict "option/aquarium.dic" '("aquarium.h") 1 nil t) -+ (wnn-add-dict "option/conveni.dic" '("conveni.h") 1 nil t) -+ (wnn-add-dict "option/amusement.dic" '("amusement.h") 1 nil t) -+ -+ (wnn-set-param 5 10 2 45 0 80 5 1 20 0 400 -100 400 80 200 2 200) -+ -+ (wnn-add-notrans-dict '("katakana") 15 t) -+ (wnn-add-bmodify-dict '("bunsetsu") 15 t) -+ -+ (wnn-set-last-is-first-mode t) -+ (wnn-set-complex-conv-mode nil) -+ ;; (wnn-set-okuri-flag -1) -+ (wnn-set-prefix-flag 0) -+ -+ (wnn-set-okuri-learn-mode t) -+ (wnn-set-prefix-learn-mode t) -+ (wnn-set-suffix-learn-mode t) -+ (wnn-set-common-learn-mode t) -+ (wnn-set-yuragi-mode nil) -+ -+ (wnn-set-freq-func-mode 4) -+ -+;; (wnn-set-yosoku-learn t) -+;; (wnn-set-yosoku-max-disp 10) -+;; (wnn-set-yosoku-last-is-first t) -+ -+;; (wnn-set-boin-kabusoku t) -+;; (wnn-set-shiin-choka t) -+;; (wnn-set-n-choka t) -+;; (wnn-set-nihongo-kosei t) -+ -+ ;; (wnn-set-numeric-mode -12) -+ ;; (wnn-set-alphabet-mode -30) -+ ;; (wnn-set-symbol-mode -40) -+ -+ (wnn-define-environment t) -+ (wnn-set-fuzokugo "system/kougo.fzk") -+ (wnn-add-dict "system/kihonR.dic" nil 1 nil nil) -+ (wnn-add-dict "system/telR.dic" nil 1 nil nil) -+ (wnn-add-dict "system/zipR.dic" nil 1 nil nil) -+ (wnn-add-dict "system/tankanR.dic" nil 1 nil nil) -+ (wnn-add-dict "system/tankan2R.dic" nil 1 nil nil) -+ -+ (wnn-add-dict "option/jinmeiR.dic" nil 1 nil nil) -+ (wnn-add-dict "option/chimeiR.dic" nil 1 nil nil) -+ (wnn-add-dict "option/addressR.dic" nil 1 nil nil) -+ ;;(wnn-add-dict "option/stationR.dic" nil 1 nil nil) -+ ;;(wnn-add-dict "option/kana_englishR.dic" nil 1 nil nil) -+ ;;(wnn-add-dict "option/enterpriseR.dic" nil 1 nil nil) -+ ;;(wnn-add-dict "option/airportR.dic" nil 1 nil nil) -+ ;;(wnn-add-dict "option/universityR.dic" nil 1 nil nil) -+ ;;(wnn-add-dict "option/zooR.dic" nil 1 nil nil) -+ ;;(wnn-add-dict "option/botanical_gardenR.dic" nil 1 nil nil) -+ ;;(wnn-add-dict "option/aquariumR.dic" nil 1 nil nil) -+ ;;(wnn-add-dict "option/conveniR.dic" nil 1 nil nil) -+ ;;(wnn-add-dict "option/amusementR.dic" nil 1 nil nil) -+ -+ (wnn-add-dict '("ud") nil 15 t t) -+ (wnn-set-param 2 10 2 45 1 80 5 1 50 -20 400 -10 100 -100 200 0 200)) -+ - (cond - ((eq egg-backend-type 'wnn) - (cond -@@ -186,11 +273,15 @@ - (wnn-add-dict '("ud") nil 2 t t) - (wnn-set-param 2 5 2 45 200 80 5 1 40 0 400 -100 400 80 200 2 200)))) - -- ((eq egg-backend-type 'sj3) --; (sj3-set-default-sys-dic-directory "/usr/sony/dict/sj3") --; (sj3-set-default-usr-dic-directory "/usr/sony/dict/sj3/user/$USER") -+ ((eq egg-backend-type 'canna) - -- (sj3-setsysdic "sj3main.dic") -+ (canna-define-environment) -+ (canna-add-dict "iroha" nil) -+ (canna-add-dict "fuzokugo" nil) -+ (canna-add-dict "hojomwd" nil) -+ (canna-add-dict "hojoswd" nil) -+ (canna-add-dict "user" t) - -- (sj3-setusrdic "private.dic") -- (sj3-setusrstdy "study.dat"))) -+ (canna-define-environment "Bushu" 0 t) -+ (canna-add-dict "bushu" nil)) -+ ) -Index: its-keydef.el -=================================================================== -RCS file: /cvs/tamago/tamago/its-keydef.el,v -retrieving revision 1.1.1.2 -retrieving revision 1.3 -diff -d -u -p -r1.1.1.2 -r1.3 ---- its-keydef.el 27 Jan 2001 18:45:56 -0000 1.1.1.2 -+++ its-keydef.el 22 Jul 2002 13:18:56 -0000 1.3 -@@ -43,6 +43,7 @@ - - (defvar its-select-alist nil) - (make-variable-buffer-local 'its-select-func-alist) -+(setq-default its-select-func-alist nil) - (put 'its-select-alist 'permanent-local t) - - (defvar its-select-func-default-alist nil) -@@ -70,7 +71,7 @@ - ((its-in-fence-p) - (its-input-end) - (its-put-cursor t)) -- ((egg-get-bunsetsu-info (point)) -+ ((egg-conversion-fence-p) - (egg-exit-conversion))) - (setq its-current-select-func func - its-current-map ',map -Index: its.el -=================================================================== -RCS file: /cvs/tamago/tamago/its.el,v -retrieving revision 1.1.1.4 -retrieving revision 1.5 -diff -d -u -p -r1.1.1.4 -r1.5 ---- its.el 27 Jan 2001 18:46:58 -0000 1.1.1.4 -+++ its.el 2 Aug 2002 02:36:28 -0000 1.5 -@@ -31,11 +31,13 @@ - - ;;; Code: - --(require 'cl) -+(eval-when-compile -+ (require 'cl)) -+ - (require 'egg-edep) - - (defgroup its nil -- "Input Translation System of Tamagotchy" -+ "Input Translation System of Tamago 4." - :group 'egg) - - (defcustom its-enable-fullwidth-alphabet t -@@ -47,7 +49,13 @@ - :group 'its :type 'boolean) - - (defcustom its-delete-by-keystroke nil -- "*Delete characters as if cancel input keystroke, if nin-NIL." -+ "*Delete characters as if cancel input keystroke, if nin-NIL. -+This variable is overriden by `its-delete-by-character'." -+ :group 'its :type 'boolean) -+ -+(defcustom its-delete-by-character nil -+ "*Delete a character as a unit even if just after input, if nin-NIL. -+This variable override `its-delete-by-keystroke'." - :group 'its :type 'boolean) - - (defcustom its-fence-invisible nil -@@ -93,7 +101,7 @@ - (make-variable-buffer-local 'its-previous-select-func) - (put 'its-previous-select-func 'permanent-local t) - --(defvar its-current-language) -+(defvar its-current-language nil) - (make-variable-buffer-local 'its-current-language) - (put 'its-current-language 'permanent-local t) - -@@ -194,8 +202,15 @@ - (defsubst its-kst-p (kst/t) - (not (or (numberp kst/t) (null kst/t)))) - --(defsubst its-get-output (syl/state) -- (car syl/state)) -+(defun its-get-output (syl/state &optional no-eval) -+ (setq syl/state (car syl/state)) -+ (cond ((null (consp syl/state)) -+ syl/state) -+ ((and (null no-eval) (eq (car syl/state) 'eval)) -+ (eval (mapcar (lambda (s) (if (stringp s) (copy-sequence s) s)) -+ (cdr syl/state)))) -+ (t -+ (copy-sequence syl/state)))) - - (defsubst its-set-output (state output) - (setcar state output)) -@@ -232,7 +247,7 @@ - (if (consp (cdr syl)) - (cons (its-get-output syl) (its-get-keyseq-syl syl)) - syl)) -- -+ - ;; - ;; - -@@ -260,8 +275,8 @@ - (define-key map "\M-y" 'its-yank-pop) - (define-key map [backspace] 'its-delete-backward-SYL) - (define-key map [delete] 'its-delete-backward-SYL) -- (define-key map [M-backspace] 'its-delete-backward-SYL-by-keystroke) -- (define-key map [M-delete] 'its-delete-backward-SYL-by-keystroke) -+ (define-key map [(meta backspace)] 'its-delete-backward-SYL-by-keystroke) -+ (define-key map [(meta delete)] 'its-delete-backward-SYL-by-keystroke) - (define-key map [right] 'its-forward-SYL) - (define-key map [left] 'its-backward-SYL) - (while (< i 127) -@@ -274,13 +289,26 @@ - (define-key map "\M-n" 'its-next-map) - (define-key map "\M-h" 'its-hiragana) ; hiragana-region for input-buffer - (define-key map "\M-k" 'its-katakana) -- (define-key map "\M-<" 'its-hankaku) -- (define-key map "\M->" 'its-zenkaku) -+ (define-key map "\M-<" 'its-half-width) -+ (define-key map "\M->" 'its-full-width) - map) - "Keymap for ITS mode.") -- - (fset 'its-mode-map its-mode-map) - -+(defvar its-fence-mode nil) -+(make-variable-buffer-local 'its-fence-mode) -+(put 'its-fence-mode 'permanent-local t) -+ -+(defvar egg-sub-mode-map-alist nil) -+(or (assq 'its-fence-mode egg-sub-mode-map-alist) -+ (setq egg-sub-mode-map-alist (cons '(its-fence-mode . its-mode-map) -+ egg-sub-mode-map-alist))) -+ -+(defun its-enter/leave-fence (&optional old new) -+ (setq its-fence-mode (its-in-fence-p))) -+ -+(add-hook 'egg-enter/leave-fence-hook 'its-enter/leave-fence) -+ - (defconst its-setup-fence-before-insert-SYL nil) - - (defun its-get-fence-face (lang) -@@ -290,17 +318,19 @@ - (assq t its-fence-face))))) - - (defun its-put-cursor (cursor) -- (if (null (eq its-barf-on-invalid-keyseq 'its-keyseq-test)) -- (let ((p (point)) -- (str (copy-sequence "!"))) -- (set-text-properties 0 1 (list 'local-map 'its-mode-map -- 'read-only t -- 'invisible t -- 'intangible 'its-part-2 -- 'its-cursor cursor) -- str) -- (insert str) -- (goto-char p)))) -+ (unless (eq its-barf-on-invalid-keyseq 'its-keyseq-test) -+ (let ((p (point)) -+ (str (copy-sequence "!"))) -+ (set-text-properties 0 1 (list 'read-only t -+ 'invisible 'egg -+ 'intangible 'its-part-2 -+ 'its-cursor cursor -+ 'point-entered 'egg-enter/leave-fence -+ 'point-left 'egg-enter/leave-fence -+ 'modification-hooks '(egg-modify-fence)) -+ str) -+ (insert str) -+ (goto-char p)))) - - (defun its-set-cursor-status (cursor) - (delete-region (point) (1+ (point))) -@@ -330,6 +360,7 @@ - (error "invalid fence")) - ;; Put open-fence before inhibit-read-only to detect read-only - (insert (if its-context its-fence-continue its-fence-open)) -+ (egg-setup-invisibility-spec) - (let ((inhibit-read-only t)) - (setq p1 (point)) - (add-text-properties p p1 open-props) -@@ -338,7 +369,7 @@ - (insert its-fence-close) - (add-text-properties p1 (point) close-props) - (if its-fence-invisible -- (put-text-property p (point) 'invisible t)) -+ (put-text-property p (point) 'invisible 'egg)) - (put-text-property p (point) 'read-only t) - (goto-char p1) - (its-define-select-keys its-mode-map t) -@@ -643,14 +674,14 @@ - (add-hook hook func t) - (funcall func) - (run-hooks hook) -- (setq hook nil)))) -+ (set hook nil)))) - - ;; Data structure for map compaction - ;; <node> ::= (<count> <node#> <original node>) ; atom - ;; | (<count> <node#> (<node> . <node>)) ; cons cell - ;; - ;; <count> ::= integer ; 0 or negative - usage count --;; ; psotive - generated common sub-tree -+;; ; positive - generated common sub-tree - ;; - ;; <node#> ::= integer ; subject to compaction - ;; | nil ; not subject to compaction -@@ -683,9 +714,16 @@ - `(1- (setq its-compaction-list (cons ,node its-compaction-list) - its-compaction-counter-2 (1+ its-compaction-counter-2)))) - -+(defmacro its-concat (&rest args) -+ `(concat ,@(mapcar (lambda (arg) -+ (if (stringp arg) -+ arg -+ `(if (numberp ,arg) (number-to-string ,arg) ,arg))) -+ args))) -+ - (defmacro its-compaction-hash (name node parent lr type) - (if (null type) -- `(let ((hash (intern (concat ,@name) its-compaction-hash-table))) -+ `(let ((hash (intern (its-concat ,@name) its-compaction-hash-table))) - (if (null (boundp hash)) - (car (set hash (list* (its-compaction-new-node) ,parent ,lr))) - (setq hash (symbol-value hash)) -@@ -696,7 +734,7 @@ - (its-compaction-set-lr ,parent ,lr (cdr hash)) - (car hash))) - `(let ((hash ,(if (eq type 'integer) -- `(intern (concat ,@name) its-compaction-hash-table) -+ `(intern (its-concat ,@name) its-compaction-hash-table) - `(aref its-compaction-integer-table (+ ,node 10))))) - (if (null ,(if (eq type 'integer) '(boundp hash) 'hash)) - (setq hash (,@(if (eq type 'integer) -@@ -708,18 +746,24 @@ - (its-compaction-set-lr ,parent ,lr (cdr hash)) - (car hash)))) - --(defun its-map-compaction-internal (map parent lr) -+(defun its-map-compaction-internal (map parent lr &optional force) - (cond -- ((consp map) (let ((candidate (or (null (stringp (car map))) (cdr map))) -- (l (its-map-compaction-internal (car map) map 'car)) -- (r (its-map-compaction-internal (cdr map) map 'cdr))) -- (if (and candidate l r) -- (its-compaction-hash (l " " r) map parent lr nil)))) -- ((stringp map) (its-compaction-hash ("STR" map) map parent lr nil)) -- ((integerp map) (if (and (>= map -10) (< map 128)) -- (its-compaction-hash nil map parent lr small-int) -- (its-compaction-hash ("INT" map) map parent lr integer))) -- ((null map) 0))) -+ ((consp map) -+ (let* ((candidate (or (null (stringp (car map))) (cdr map))) -+ (sexp (or force (eq (car map) 'eval))) -+ (l (its-map-compaction-internal (car map) map 'car sexp)) -+ (r (its-map-compaction-internal (cdr map) map 'cdr sexp))) -+ (if (or sexp (and candidate l r)) -+ (its-compaction-hash (l " " r) map parent lr nil)))) -+ ((stringp map) -+ (its-compaction-hash ("STR" map) map parent lr nil)) -+ ((integerp map) -+ (if (and (>= map -10) (< map 128)) -+ (its-compaction-hash nil map parent lr small-int) -+ (its-compaction-hash ("INT" map) map parent lr integer))) -+ ((null map) 0) -+ ((symbolp map) -+ (its-compaction-hash ("SYM" (symbol-name map)) map parent lr nil)))) - - (defvar its-map-rebuild-subtrees) - -@@ -790,7 +834,7 @@ Return last state." - (setq state next-state)) - ((null build-if-none) - (error "No such state (%s)" input)) -- (t -+ (t - (if (not (or brand-new (= i 1) (its-get-kst/t state))) - (its-set-interim-terminal-state state)) - (setq state (its-make-next-state state key -@@ -802,7 +846,7 @@ Return last state." - state)) - - (defun its-set-interim-terminal-state (state &optional output) -- (its-make-next-state state -1 (or output (its-get-output state))) -+ (its-make-next-state state -1 (or output (its-get-output state t))) - (its-defrule-otherwise state output)) - - (defun its-defoutput (input display) -@@ -975,7 +1019,7 @@ Return last state." - (cursor (get-text-property (point) 'its-cursor))) - (if (null syl) - (signal 'beginning-of-buffer nil) -- (if (eq cursor t) -+ (if (or (eq cursor t) (and cursor its-delete-by-character)) - (its-delete-backward-SYL-internal n killflag) - (its-delete-backward-within-SYL syl n killflag))))) - -@@ -1038,7 +1082,7 @@ Return last state." - (signal 'beginning-of-buffer nil)) - (delete-region p (point)) - (if (> len n) -- (its-state-machine-keyseq (substring keyseq 0 (- len n)) -+ (its-state-machine-keyseq (substring keyseq 0 (- len n)) - 'its-buffer-ins/del-SYL) - (its-set-cursor-status - (if (or (null its-delete-by-keystroke) -@@ -1124,10 +1168,14 @@ Return last state." - (setq i 0) - (while (< i len) - (setq lang (get-text-property i 'egg-lang source)) -- (if (and -- (or (eq lang 'Chinese-GB) (eq lang 'Chinese-CNS)) -- (setq l (egg-chinese-syllable source i))) -- (setq j (+ i l)) -+ (if (or (and (or (eq lang 'Chinese-GB) (eq lang 'Chinese-CNS)) -+ (setq l (egg-chinese-syllable source i))) -+ (and (setq l (get-text-property i 'composition source)) -+ (setq l (if (consp (car l)) (caar l) (cadr l))) -+ (eq (next-single-property-change i 'composition -+ source (length source)) -+ l))) -+ (setq j (+ i l)) - (setq j (+ i (egg-char-bytes (egg-string-to-char-at source i))))) - (setq syl (substring no-prop-source i j)) - (put-text-property i j 'its-syl (cons syl syl) source) -@@ -1181,7 +1229,7 @@ Return last state." - - ;; TODO: handle overwrite-mode, insertion-hook, fill... - (defun its-exit-mode-internal (&optional proceed-to-conversion n) -- (let (start end s context) -+ (let (start end s context str) - (its-select-previous-mode t) - ;; Delete CURSOR - (delete-region (point) (1+ (point))) -@@ -1198,9 +1246,10 @@ Return last state." - (egg-convert-region start end context n) - ;; Remove all properties - (goto-char start) -- (insert (prog1 -- (buffer-substring-no-properties start end) -- (delete-region start end))) -+ (setq str (buffer-substring start end)) -+ (egg-remove-all-text-properties 0 (length str) str) -+ (delete-region start end) -+ (insert str) - (egg-do-auto-fill) - (run-hooks 'input-method-after-insert-chunk-hook)))) - -@@ -1220,7 +1269,8 @@ Return last state." - (its-kick-convert-region n)))) - - (defun its-in-fence-p () -- (eq (get-text-property (point) 'intangible) 'its-part-2)) -+ (and (eq (get-text-property (point) 'intangible) 'its-part-2) -+ (get-text-property (point) 'read-only))) - - (defvar its-translation-result "" "") - -@@ -1241,7 +1291,7 @@ Return last state." - (defun its-translate-region (start end) - (interactive "r") - (its-translate-region-internal start end) -- (set-text-properties start (point) nil)) -+ (egg-remove-all-text-properties start (point))) - - (defun its-translate-region-internal (start end) - (setq its-translation-result "") -@@ -1300,66 +1350,198 @@ Return last state." - ;;; its-hiragana : hiragana-region for input-buffer - (defun its-hiragana () - (interactive) -- (let ((inhibit-read-only t)) -- (its-input-end) -- (its-set-part-1 (point) (its-search-end)) -- (its-convert 'japanese-hiragana (its-search-beginning) (point)) -- (its-put-cursor t))) -+ (its-convert (lambda (str lang) (japanese-hiragana str)))) - - ;;; its-katakana : katanaka-region for input-buffer - (defun its-katakana () - (interactive) -- (let ((inhibit-read-only t)) -- (its-input-end) -- (its-set-part-1 (point) (its-search-end)) -- (its-convert 'japanese-katakana (its-search-beginning) (point)) -- (its-put-cursor t))) -+ (its-convert (lambda (str lang) (japanese-katakana str)))) - --;;; its-hankaku : hankaku-region for input-buffer --(defun its-hankaku () -- (interactive) -- (let ((inhibit-read-only t)) -- (its-input-end) -- (its-set-part-1 (point) (its-search-end)) -- (its-convert 'its-japanese-hankaku (its-search-beginning) (point)) -- (its-put-cursor t))) -+(defconst its-full-half-table (make-vector 100 nil)) -+(defconst its-half-full-table (make-vector 100 nil)) - --(defun its-japanese-hankaku (obj) -- (japanese-hankaku obj 'ascii-only)) -+(let ((table '((Japanese -+ (?$B!!(B . ?\ ) (?$B!$(B . ?,) (?$B!%(B . ?.) (?$B!"(B . ?,) (?$B!#(B . ?.) -+ (?$B!'(B . ?:) (?$B!((B . ?\;) (?$B!)(B . ??) (?$B!*(B . ?!) -+ (?$B!-(B . ?') (?$B!.(B . ?`) (?$B!0(B . ?^) (?$B!2(B . ?_) (?$B!1(B . ?~) -+ (?$B!<(B . ?-) (?$B!=(B . ?-) (?$B!>(B . ?-) -+ (?$B!?(B . ?/) (?$B!@(B . ?\\) (?$B!A(B . ?~) (?$B!C(B . ?|) -+ (?$B!F(B . ?`) (?$B!G(B . ?') (?$B!H(B . ?\") (?$B!I(B . ?\") -+ (?$B!J(B . ?\() (?$B!K(B . ?\)) (?$B!N(B . ?[) (?$B!O(B . ?]) -+ (?$B!P(B . ?{) (?$B!Q(B . ?}) (?$B!R(B . ?<) (?$B!S(B . ?>) -+ (?$B!\(B . ?+) (?$B!](B . ?-) (?$B!a(B . ?=) (?$B!c(B . ?<) (?$B!d(B . ?>) -+ (?$B!l(B . ?') (?$B!m(B . ?\") (?$B!o(B . ?\\) (?$B!p(B . ?$) (?$B!s(B . ?%) -+ (?$B!t(B . ?#) (?$B!u(B . ?&) (?$B!v(B . ?*) (?$B!w(B . ?@) -+ (?$B#0(B . ?0) (?$B#1(B . ?1) (?$B#2(B . ?2) (?$B#3(B . ?3) (?$B#4(B . ?4) -+ (?$B#5(B . ?5) (?$B#6(B . ?6) (?$B#7(B . ?7) (?$B#8(B . ?8) (?$B#9(B . ?9) -+ (?$B#A(B . ?A) (?$B#B(B . ?B) (?$B#C(B . ?C) (?$B#D(B . ?D) (?$B#E(B . ?E) -+ (?$B#F(B . ?F) (?$B#G(B . ?G) (?$B#H(B . ?H) (?$B#I(B . ?I) (?$B#J(B . ?J) -+ (?$B#K(B . ?K) (?$B#L(B . ?L) (?$B#M(B . ?M) (?$B#N(B . ?N) (?$B#O(B . ?O) -+ (?$B#P(B . ?P) (?$B#Q(B . ?Q) (?$B#R(B . ?R) (?$B#S(B . ?S) (?$B#T(B . ?T) -+ (?$B#U(B . ?U) (?$B#V(B . ?V) (?$B#W(B . ?W) (?$B#X(B . ?X) (?$B#Y(B . ?Y) -+ (?$B#Z(B . ?Z) -+ (?$B#a(B . ?a) (?$B#b(B . ?b) (?$B#c(B . ?c) (?$B#d(B . ?d) (?$B#e(B . ?e) -+ (?$B#f(B . ?f) (?$B#g(B . ?g) (?$B#h(B . ?h) (?$B#i(B . ?i) (?$B#j(B . ?j) -+ (?$B#k(B . ?k) (?$B#l(B . ?l) (?$B#m(B . ?m) (?$B#n(B . ?n) (?$B#o(B . ?o) -+ (?$B#p(B . ?p) (?$B#q(B . ?q) (?$B#r(B . ?r) (?$B#s(B . ?s) (?$B#t(B . ?t) -+ (?$B#u(B . ?u) (?$B#v(B . ?v) (?$B#w(B . ?w) (?$B#x(B . ?x) (?$B#y(B . ?y) -+ (?$B#z(B . ?z)) -+ (Chinese-GB -+ (?$A!!(B . ?\ ) (?$A#,(B . ?,) (?$A#.(B . ?.) (?$A!"(B . ?,) (?$A!#(B . ?.) -+ (?$A#:(B . ?:) (?$A#;(B . ?\;) (?$A#?(B . ??) (?$A#!(B . ?!) -+ (?$A#`(B . ?`) (?$A#^(B . ?^) (?$A#_(B . ?_) (?$A#~(B . ?~) -+ (?$A!*(B . ?-) -+ (?$A#/(B . ?/) (?$A#\(B . ?\\) (?$A!+(B . ?~) (?$A#|(B . ?|) -+ (?$A!.(B . ?`) (?$A!/(B . ?') (?$A!0(B . ?\") (?$A!1(B . ?\") -+ (?$A#((B . ?\() (?$A#)(B . ?\)) (?$A#[(B . ?[) ( ?$A#](B . ?]) -+ (?$A#{(B . ?{) (?$A#}(B . ?}) -+ (?$A#+(B . ?+) (?$A#-(B . ?-) (?$A#=(B . ?=) (?$A#<(B . ?<) (?$A#>(B . ?>) -+ (?$A#'(B . ?') (?$A#"(B . ?\") (?$A#$(B . ?$) (?$A#%(B . ?%) -+ (?$A##(B . ?#) (?$A#&(B . ?&) (?$A#*(B . ?*) (?$A#@(B . ?@) -+ (?$A#0(B . ?0) (?$A#1(B . ?1) (?$A#2(B . ?2) (?$A#3(B . ?3) (?$A#4(B . ?4) -+ (?$A#5(B . ?5) (?$A#6(B . ?6) (?$A#7(B . ?7) (?$A#8(B . ?8) (?$A#9(B . ?9) -+ (?$A#A(B . ?A) (?$A#B(B . ?B) (?$A#C(B . ?C) (?$A#D(B . ?D) (?$A#E(B . ?E) -+ (?$A#F(B . ?F) (?$A#G(B . ?G) (?$A#H(B . ?H) (?$A#I(B . ?I) (?$A#J(B . ?J) -+ (?$A#K(B . ?K) (?$A#L(B . ?L) (?$A#M(B . ?M) (?$A#N(B . ?N) (?$A#O(B . ?O) -+ (?$A#P(B . ?P) (?$A#Q(B . ?Q) (?$A#R(B . ?R) (?$A#S(B . ?S) (?$A#T(B . ?T) -+ (?$A#U(B . ?U) (?$A#V(B . ?V) (?$A#W(B . ?W) (?$A#X(B . ?X) (?$A#Y(B . ?Y) -+ (?$A#Z(B . ?Z) -+ (?$A#a(B . ?a) (?$A#b(B . ?b) (?$A#c(B . ?c) (?$A#d(B . ?d) (?$A#e(B . ?e) -+ (?$A#f(B . ?f) (?$A#g(B . ?g) (?$A#h(B . ?h) (?$A#i(B . ?i) (?$A#j(B . ?j) -+ (?$A#k(B . ?k) (?$A#l(B . ?l) (?$A#m(B . ?m) (?$A#n(B . ?n) (?$A#o(B . ?o) -+ (?$A#p(B . ?p) (?$A#q(B . ?q) (?$A#r(B . ?r) (?$A#s(B . ?s) (?$A#t(B . ?t) -+ (?$A#u(B . ?u) (?$A#v(B . ?v) (?$A#w(B . ?w) (?$A#x(B . ?x) (?$A#y(B . ?y) -+ (?$A#z(B . ?z)) -+ (Chinese-CNS -+ (?$(G!!(B . ?\ ) (?$(G!"(B . ?,) (?$(G!%(B . ?.) (?$(G!#(B . ?,) (?$(G!$(B . ?.) -+ (?$(G!((B . ?:) (?$(G!'(B . ?\;) (?$(G!)(B . ??) (?$(G!*(B . ?!) -+ (?$(G!k(B . ?') (?$(G!j(B . ?`) (?$(G!T(B . ?^) (?$(G"%(B . ?_) (?$(G"#(B . ?~) -+ (?$(G"@(B . ?-) -+ (?$(G"_(B . ?/) (?$(G"`(B . ?\\) (?$(G"a(B . ?/) (?$(G"b(B . ?\\) -+ (?$(G"D(B . ?~) (?$(G"^(B . ?|) -+ (?$(G!d(B . ?`) (?$(G!e(B . ?') -+ (?$(G!h(B . ?\") (?$(G!i(B . ?\") (?$(G!f(B . ?\") (?$(G!g(B . ?\") -+ (?$(G!>(B . ?\() (?$(G!?(B . ?\)) -+ (?$(G!F(B . ?[) (?$(G!G(B . ?]) (?$(G!b(B . ?[) (?$(G!c(B . ?]) -+ (?$(G!B(B . ?{) (?$(G!C(B . ?}) (?$(G!`(B . ?{) (?$(G!a(B . ?}) -+ (?$(G!R(B . ?<) (?$(G!S(B . ?>) -+ (?$(G"0(B . ?+) (?$(G"1(B . ?-) (?$(G"8(B . ?=) (?$(G"6(B . ?<) (?$(G"7(B . ?>) -+ (?$(G"c(B . ?$) (?$(G"h(B . ?%) -+ (?$(G!l(B . ?#) (?$(G!m(B . ?&) (?$(G!n(B . ?*) (?$(G"i(B . ?@) -+ (?$(G$!(B . ?0) (?$(G$"(B . ?1) (?$(G$#(B . ?2) (?$(G$$(B . ?3) (?$(G$%(B . ?4) -+ (?$(G$&(B . ?5) (?$(G$'(B . ?6) (?$(G$((B . ?7) (?$(G$)(B . ?8) (?$(G$*(B . ?9) -+ (?$(G$A(B . ?A) (?$(G$B(B . ?B) (?$(G$C(B . ?C) (?$(G$D(B . ?D) (?$(G$E(B . ?E) -+ (?$(G$F(B . ?F) (?$(G$G(B . ?G) (?$(G$H(B . ?H) (?$(G$I(B . ?I) (?$(G$J(B . ?J) -+ (?$(G$K(B . ?K) (?$(G$L(B . ?L) (?$(G$M(B . ?M) (?$(G$N(B . ?N) (?$(G$O(B . ?O) -+ (?$(G$P(B . ?P) (?$(G$Q(B . ?Q) (?$(G$R(B . ?R) (?$(G$S(B . ?S) (?$(G$T(B . ?T) -+ (?$(G$U(B . ?U) (?$(G$V(B . ?V) (?$(G$W(B . ?W) (?$(G$X(B . ?X) (?$(G$Y(B . ?Y) -+ (?$(G$Z(B . ?Z) -+ (?$(G$[(B . ?a) (?$(G$\(B . ?b) (?$(G$](B . ?c) (?$(G$^(B . ?d) (?$(G$_(B . ?e) -+ (?$(G$`(B . ?f) (?$(G$a(B . ?g) (?$(G$b(B . ?h) (?$(G$c(B . ?i) (?$(G$d(B . ?j) -+ (?$(G$e(B . ?k) (?$(G$f(B . ?l) (?$(G$g(B . ?m) (?$(G$h(B . ?n) (?$(G$i(B . ?o) -+ (?$(G$j(B . ?p) (?$(G$k(B . ?q) (?$(G$l(B . ?r) (?$(G$m(B . ?s) (?$(G$n(B . ?t) -+ (?$(G$o(B . ?u) (?$(G$p(B . ?v) (?$(G$q(B . ?w) (?$(G$r(B . ?x) (?$(G$s(B . ?y) -+ (?$(G$t(B . ?z)) -+ (Korean -+ (?$(C!!(B . ?\ ) (?$(C#,(B . ?,) (?$(C#.(B . ?.) -+ (?$(C#:(B . ?:) (?$(C#;(B . ?\;) (?$(C#?(B . ??) (?$(C#!(B . ?!) -+ (?$(C!/(B . ?') (?$(C!.(B . ?`) (?$(C#^(B . ?^) (?$(C#_(B . ?_) (?$(C#~(B . ?~) -+ (?$(C!*(B . ?-) (?$(C!)(B . ?-) -+ (?$(C#/(B . ?/) (?$(C!,(B . ?\\) (?$(C!-(B . ?~) (?$(C#|(B . ?|) -+ (?$(C!.(B . ?`) (?$(C!/(B . ?') (?$(C!0(B . ?\") (?$(C!1(B . ?\") -+ (?$(C#((B . ?\() (?$(C#)(B . ?\)) (?$(C#[(B . ?[) (?$(C#](B . ?]) -+ (?$(C#{(B . ?{) (?$(C#}(B . ?}) (?$(C!4(B . ?<) (?$(C!5(B . ?>) -+ (?$(C#+(B . ?+) (?$(C#-(B . ?-) (?$(C#=(B . ?=) (?$(C#<(B . ?<) (?$(C#>(B . ?>) -+ (?$(C#'(B . ?') (?$(C#"(B . ?\") (?$(C#\(B . ?\\) (?$(C#$(B . ?$) (?$(C#%(B . ?%) -+ (?$(C##(B . ?#) (?$(C#&(B . ?&) (?$(C#*(B . ?*) (?$(C#@(B . ?@) -+ (?$(C#0(B . ?0) (?$(C#1(B . ?1) (?$(C#2(B . ?2) (?$(C#3(B . ?3) (?$(C#4(B . ?4) -+ (?$(C#5(B . ?5) (?$(C#6(B . ?6) (?$(C#7(B . ?7) (?$(C#8(B . ?8) (?$(C#9(B . ?9) -+ (?$(C#A(B . ?A) (?$(C#B(B . ?B) (?$(C#C(B . ?C) (?$(C#D(B . ?D) (?$(C#E(B . ?E) -+ (?$(C#F(B . ?F) (?$(C#G(B . ?G) (?$(C#H(B . ?H) (?$(C#I(B . ?I) (?$(C#J(B . ?J) -+ (?$(C#K(B . ?K) (?$(C#L(B . ?L) (?$(C#M(B . ?M) (?$(C#N(B . ?N) (?$(C#O(B . ?O) -+ (?$(C#P(B . ?P) (?$(C#Q(B . ?Q) (?$(C#R(B . ?R) (?$(C#S(B . ?S) (?$(C#T(B . ?T) -+ (?$(C#U(B . ?U) (?$(C#V(B . ?V) (?$(C#W(B . ?W) (?$(C#X(B . ?X) (?$(C#Y(B . ?Y) -+ (?$(C#Z(B . ?Z) -+ (?$(C#a(B . ?a) (?$(C#b(B . ?b) (?$(C#c(B . ?c) (?$(C#d(B . ?d) (?$(C#e(B . ?e) -+ (?$(C#f(B . ?f) (?$(C#g(B . ?g) (?$(C#h(B . ?h) (?$(C#i(B . ?i) (?$(C#j(B . ?j) -+ (?$(C#k(B . ?k) (?$(C#l(B . ?l) (?$(C#m(B . ?m) (?$(C#n(B . ?n) (?$(C#o(B . ?o) -+ (?$(C#p(B . ?p) (?$(C#q(B . ?q) (?$(C#r(B . ?r) (?$(C#s(B . ?s) (?$(C#t(B . ?t) -+ (?$(C#u(B . ?u) (?$(C#v(B . ?v) (?$(C#w(B . ?w) (?$(C#x(B . ?x) (?$(C#y(B . ?y) -+ (?$(C#z(B . ?z)))) -+ (hash (make-vector 100 nil)) -+ lang pair) -+ (while table -+ (setq lang (caar table) -+ pair (cdar table) -+ table (cdr table)) -+ (while pair -+ (set (intern (char-to-string (caar pair)) its-full-half-table) -+ (cdar pair)) -+ (set (intern (concat (symbol-name lang) (char-to-string (cdar pair))) -+ its-half-full-table) -+ (caar pair)) -+ (setq pair (cdr pair))) -+ hash)) - --;;; its-zenkaku : zenkaku-region for input-buffer --(defun its-zenkaku () -+;;; its-half-width : half-width-region for input-buffer -+(defun its-half-width () - (interactive) -- (let ((inhibit-read-only t)) -- (its-input-end) -- (its-set-part-1 (point) (its-search-end)) -- (its-convert 'japanese-zenkaku (its-search-beginning) (point)) -- (its-put-cursor t))) -+ (its-convert -+ (lambda (str lang) -+ (concat (mapcar (lambda (c) -+ (or (symbol-value (intern-soft (char-to-string c) -+ its-full-half-table)) -+ c)) -+ (string-to-sequence str 'list)))))) - --(defun its-convert (func start end) -- (let* ((goto-start (eq (point) start)) -- (old-str (buffer-substring start end)) -- (new-str "") -- (len (length old-str)) -- (p 0) -- old new syl q) -- (while (< p len) -- (setq q (next-single-property-change p 'its-syl old-str len) -- old (substring old-str p q) -- new (copy-sequence old)) -- (set-text-properties 0 (- q p) nil new) -- (setq new (funcall func new)) -- (if (equal new old) -- (setq new-str (concat new-str old)) -- (setq syl (cons (copy-sequence new) (copy-sequence new))) -- (set-text-properties 0 (length new) (text-properties-at 0 old) new) -- (put-text-property 0 (length new) 'its-syl syl new) -- (setq new-str (concat new-str new))) -- (setq p q)) -- (delete-region start end) -- (insert new-str) -- (if goto-start -- (goto-char start)))) -+;;; its-full-width : full-width-region for input-buffer -+(defun its-full-width () -+ (interactive) -+ (its-convert -+ (lambda (str lang) -+ (if (egg-chinese-syllable str 0) -+ (copy-sequence str) -+ (concat (mapcar (lambda (c) -+ (or (symbol-value -+ (intern-soft (concat (symbol-name lang) -+ (char-to-string c)) -+ its-half-full-table)) -+ c)) -+ (string-to-sequence str 'list))))))) -+ -+(defun its-convert (func) -+ (let ((inhibit-read-only t)) -+ (unwind-protect -+ (progn -+ (its-input-end) -+ (let* ((start (its-search-beginning)) -+ (end (its-search-end)) -+ (old-str (buffer-substring start end)) -+ (len (length old-str)) -+ (p 0) -+ (new-str "")) -+ (put-text-property 0 len 'intangible 'its-part-1 old-str) -+ (while (< p len) -+ (let* ((prop (text-properties-at p old-str)) -+ (cmp (memq 'composition prop)) -+ (old (its-get-output (plist-get prop 'its-syl))) -+ (new (funcall func old (plist-get prop 'egg-lang))) -+ (new-len (length new)) -+ syl) -+ (unless (equal new old) -+ (when cmp -+ (if (eq prop cmp) -+ (setq prop (cddr prop)) -+ (setcdr (nthcdr (- (length prop) (length cmp) 1) prop) -+ (cddr cmp)))) -+ (setq syl (copy-sequence new)) -+ (plist-put prop 'its-syl (cons syl syl))) -+ (add-text-properties 0 new-len prop new) -+ (setq new-str (concat new-str new) -+ p (+ p (length old))))) -+ (delete-region start end) -+ (insert new-str))) -+ (its-put-cursor t)))) - - (defun its-mode () - "\\{its-mode-map}" -@@ -1374,5 +1556,31 @@ Return last state." - (princ (documentation 'its-mode)) - (help-setup-xref (cons #'help-xref-mode (current-buffer)) (interactive-p)))) - -+;; The `point-left' hook function will never be called in Emacs 21.2.50 -+;; when the command `next-line' is used in the last line of a buffer -+;; which isn't terminated with a newline or the command `previous-line' -+;; is used in the first line of a buffer. -+(defun its-next-line (&optional arg) -+ "Go to the end of the line if the line isn't terminated with a newline, -+otherwise run `next-line' as usual." -+ (interactive "p") -+ (if (= (line-end-position) (point-max)) -+ (end-of-line) -+ (next-line arg))) -+ -+(defun its-previous-line (&optional arg) -+ "Go to the beginning of the line if it is called in the first line of a -+buffer, otherwise run `previous-line' as usual." -+ (interactive "p") -+ (if (= (line-beginning-position) (point-min)) -+ (beginning-of-line) -+ (previous-line arg))) -+ -+(substitute-key-definition 'next-line 'its-next-line -+ its-mode-map global-map) -+(substitute-key-definition 'previous-line 'its-previous-line -+ its-mode-map global-map) -+ - (provide 'its) --;;; its.el ends here. -+ -+;;; its.el ends here -Index: jisx0213.el -=================================================================== -RCS file: jisx0213.el -diff -N jisx0213.el ---- /dev/null 1 Jan 1970 00:00:00 -0000 -+++ jisx0213.el 9 Jul 2001 14:46:38 -0000 1.2 -@@ -0,0 +1,39 @@ -+;;; jisx0213.el --- Charset Definition for JIS X 0213 -+ -+;; Copyright (C) 1999,2000 PFU LIMITED -+ -+;; Author: KATAYAMA Yoshio <kate@pfu.co.jp> -+ -+;; Maintainer: TOMURA Satoru <tomura@etl.go.jp> -+ -+;; Keywords: mule, multilingual, input method -+ -+;; This file is part of EGG. -+ -+;; EGG is free software; you can redistribute it and/or modify -+;; it under the terms of the GNU General Public License as published by -+;; the Free Software Foundation; either version 2, or (at your option) -+;; any later version. -+ -+;; EGG is distributed in the hope that it will be useful, -+;; but WITHOUT ANY WARRANTY; without even the implied warranty of -+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+;; GNU General Public License for more details. -+ -+;; You should have received a copy of the GNU General Public License -+;; along with GNU Emacs; see the file COPYING. If not, write to the -+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -+;; Boston, MA 02111-1307, USA. -+ -+;;; Commentary: -+ -+ -+;;; Code: -+ -+(unless (charsetp 'japanese-jisx0213-1) -+ (define-charset 151 'japanese-jisx0213-1 -+ [2 94 2 0 ?O 0 "JISX0213-1" "JISX0213-1" "JISX0213-1 (Japanese)"])) -+ -+(unless (charsetp 'japanese-jisx0213-2) -+ (define-charset 254 'japanese-jisx0213-2 -+ [2 94 2 0 ?P 0 "JISX0213-2" "JISX0213-2" "JISX0213-2 (Japanese)"])) -Index: leim-list.el -=================================================================== -RCS file: /cvs/tamago/tamago/leim-list.el,v -retrieving revision 1.1.1.3 -retrieving revision 1.3 -diff -d -u -p -r1.1.1.3 -r1.3 ---- leim-list.el 27 Jan 2001 18:46:16 -0000 1.1.1.3 -+++ leim-list.el 23 Aug 2002 07:46:38 -0000 1.3 -@@ -1,8 +1,8 @@ - ;;; leim-list.el --- Egg setup for leim API - --;; Copyright (C) 1999, 2000 Free Software Foundation, Inc -+;; Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc - --;; Author: NIIBE Yutaka <gniibe@chroot.org> -+;; Author: NIIBE Yutaka <gniibe@m17n.org> - ;; KATAYAMA Yoshio <kate@pfu.co.jp> - ;; TOMURA Satoru <tomura@etl.go.jp> - -@@ -31,61 +31,74 @@ - - ;;; Code: - --(when site-run-file -- (autoload 'egg-activate-wnn "egg/wnn" "Activate Wnn backend of Tamagotchy." t) -- (autoload 'egg-activate-sj3 "egg/sj3" "Activate SJ3 backend of Tamagotchy." t) -+(autoload 'egg-activate-anthy "egg/anthy" -+ "Activate ANTHY backend of Tamago 4." t) -+(autoload 'egg-activate-wnn "egg/wnn" "Activate Wnn backend of Tamago 4." t) -+(autoload 'egg-activate-sj3 "egg/sj3" "Activate SJ3 backend of Tamago 4." t) -+(autoload 'egg-activate-canna "egg/canna" -+ "Activate CANNA backend of Tamago 4." t) - -- (register-input-method -- "japanese-egg-wnn" "Japanese" 'egg-activate-wnn -- "$B$"(B.." "Romaji -> Hiragana -> Kanji&Kana" -- 'its-select-hiragana) -+(register-input-method -+ "japanese-egg-anthy" "Japanese" 'egg-activate-anthy -+ "$B$"(B.." "Romaji -> Hiragana -> Kanji&Kana" -+ 'its-select-hiragana) - -- (register-input-method -- "japanese-egg-sj3" "Japanese" 'egg-activate-sj3 -- "$B$"(B.." "Romaji -> Hiragana -> Kanji&Kana" -- 'its-select-hiragana) -+(register-input-method -+ "japanese-egg-wnn" "Japanese" 'egg-activate-wnn -+ "$B$"(B.." "Romaji -> Hiragana -> Kanji&Kana" -+ 'its-select-hiragana) - -- (register-input-method -- "chinese-gb-egg-wnn-py" "Chinese-GB" 'egg-activate-wnn -- "$AF4(BG" "Pinyin -> Simplified Hanzi" -- 'its-select-pinyin-cn) -+(register-input-method -+ "japanese-egg-sj3" "Japanese" 'egg-activate-sj3 -+ "$B$"(B.." "Romaji -> Hiragana -> Kanji&Kana" -+ 'its-select-hiragana) - -- (register-input-method -- "chinese-gb-egg-wnn-zy" "Chinese-GB" 'egg-activate-wnn -- "$AW"(BG" "Zhunyin -> Simplified Hanzi" -- 'its-select-zhuyin-cn) -+(register-input-method -+ "japanese-egg-canna" "Japanese" 'egg-activate-canna -+ "$B$"(B.." "Romaji -> Hiragana -> Kanji&Kana" -+ 'its-select-hiragana) - -- (register-input-method -- "chinese-gb-egg-wnn-qm" "Chinese-GB" 'egg-activate-wnn -- "$AG.(B" "QianMa Simplified Hanzi inputmethod" -- 'its-select-qianma) -+(register-input-method -+ "chinese-gb-egg-wnn-py" "Chinese-GB" 'egg-activate-wnn -+ "$AF4(BG" "Pinyin -> Simplified Hanzi" -+ 'its-select-pinyin-cn) - -- (register-input-method -- "chinese-gb-egg-wnn-wb" "Chinese-GB" 'egg-activate-wnn -- "$ANe(B" "WuBi Simplified Hanzi inputmethod" -- 'its-select-wubi) -+(register-input-method -+ "chinese-gb-egg-wnn-zy" "Chinese-GB" 'egg-activate-wnn -+ "$AW"(BG" "Zhunyin -> Simplified Hanzi" -+ 'its-select-zhuyin-cn) - -- (register-input-method -- "chinese-cns-egg-wnn-py" "Chinese-CNS" 'egg-activate-wnn -- "$(GQ;(BC" "Pinyin -> Traditional Hanzi" -- 'its-select-pinyin-tw) -+(register-input-method -+ "chinese-gb-egg-wnn-qm" "Chinese-GB" 'egg-activate-wnn -+ "$AG.(B" "QianMa Simplified Hanzi inputmethod" -+ 'its-select-qianma) - -- (register-input-method -- "chinese-cns-egg-wnn-zy" "Chinese-CNS" 'egg-activate-wnn -- "$(GNC(BC" "Zhunyin -> Traditional Hanzi" -- 'its-select-zhuyin-tw) -+(register-input-method -+ "chinese-gb-egg-wnn-wb" "Chinese-GB" 'egg-activate-wnn -+ "$ANe(B" "WuBi Simplified Hanzi inputmethod" -+ 'its-select-wubi) - -- (register-input-method -- "korean-egg-wnn" "Korean" 'egg-activate-wnn -- "$(CGQ(B" "Hangul -> Hanja" -- 'its-select-hangul) -+(register-input-method -+ "chinese-cns-egg-wnn-py" "Chinese-CNS" 'egg-activate-wnn -+ "$(GQ;(BC" "Pinyin -> Traditional Hanzi" -+ 'its-select-pinyin-tw) - -- (autoload 'egg-mode "egg" "Toggle EGG mode." t) -+(register-input-method -+ "chinese-cns-egg-wnn-zy" "Chinese-CNS" 'egg-activate-wnn -+ "$(GNC(BC" "Zhunyin -> Traditional Hanzi" -+ 'its-select-zhuyin-tw) - -- (set-language-info "Japanese" 'input-method "japanese-egg-wnn") -- (set-language-info "Chinese-GB" 'input-method "chinese-gb-egg-wnn-py") -- (set-language-info "Chinese-CNS" 'input-method "chinese-cns-egg-wnn-py") -- (set-language-info "Korean" 'input-method "korean-egg-wnn") -+(register-input-method -+ "korean-egg-wnn" "Korean" 'egg-activate-wnn -+ "$(CGQ(B" "Hangul -> Hanja" -+ 'its-select-hangul) -+ -+(autoload 'egg-mode "egg" "Toggle EGG mode." t) -+ -+(set-language-info "Japanese" 'input-method "japanese-egg-wnn") -+(set-language-info "Chinese-GB" 'input-method "chinese-gb-egg-wnn-py") -+(set-language-info "Chinese-CNS" 'input-method "chinese-cns-egg-wnn-py") -+(set-language-info "Korean" 'input-method "korean-egg-wnn") - - (defgroup leim nil - "LEIM stands for Libraries of Emacs Input Methods." -@@ -94,29 +107,22 @@ - (defgroup egg nil "" - :group 'leim :load "egg") - -+(defgroup anthy nil "" -+ :group 'egg :load "egg/anthy") -+ - (defgroup wnn nil "" - :group 'egg :load "egg/wnn") - - (defgroup sj3 nil "" - :group 'egg :load "egg/sj3") - -+(defgroup canna nil "" -+ :group 'egg :load "egg/canna") -+ - (defgroup its nil "" - :group 'egg :load "its") - - (defgroup hira nil "" - :group 'its :load "its/hira") - --;;;; -- -- (require 'egg-util) -- -- (defun load-leim-list-except-this () -- (load-libraries "leim-list" -- (cdr-safe -- (member (directory-file-name (file-name-directory load-file-name)) -- load-path)))) -- -- (message "Finished loading %s \n and load others..." load-file-name) -- (load-leim-list-except-this) -- -- ) -\ No newline at end of file -+;;; leim-list.el ends here. -Index: menudiag.el -=================================================================== -RCS file: /cvs/tamago/tamago/menudiag.el,v -retrieving revision 1.1.1.1 -retrieving revision 1.2 -diff -d -u -p -r1.1.1.1 -r1.2 ---- menudiag.el 27 Jan 2001 18:45:24 -0000 1.1.1.1 -+++ menudiag.el 27 Jan 2001 18:53:13 -0000 1.2 -@@ -50,7 +50,7 @@ - ;; - - (defgroup menudiag nil -- "Input Translation System of Tamagotchy" -+ "Input Translation System of Tamago 4." - :group 'egg) - - (defcustom menudiag-select-without-return nil -@@ -72,26 +72,34 @@ - (while (<= ch ?Z) - (define-key map (char-to-string ch) 'menudiag-goto-item) - (setq ch (1+ ch))) -- (define-key map "\C-a" 'menudiag-beginning-of-line) -- (define-key map "\C-e" 'menudiag-end-of-line) -- (define-key map "\M-<" 'menudiag-beginning-of-items) -- (define-key map "\M->" 'menudiag-end-of-items) -- (define-key map "\C-f" 'menudiag-forward-item) -- (define-key map "\C-b" 'menudiag-backward-item) -- (define-key map "\C-n" 'menudiag-next-line) -- (define-key map "\C-p" 'menudiag-previous-line) -- (define-key map "\C-]" 'menudiag-exit) -- (define-key map "\C-g" 'menudiag-exit-one-level) -- (define-key map "\C-l" 'menudiag-redraw) -- (define-key map "\C-m" 'menudiag-select-this-item) -- (define-key map "?" 'menudiag-list-other-window) -+ (setq ch ?\C-0) -+ (while (<= ch ?\C-9) -+ (define-key map (vector ch) 'digit-argument) -+ (setq ch (1+ ch))) -+ (define-key map [?\C--] 'negative-argument) -+ (define-key map [?\C-u] 'universal-argument) -+ (define-key map " " 'menudiag-forward-item) -+ (define-key map "\C-a" 'menudiag-beginning-of-line) -+ (define-key map "\C-e" 'menudiag-end-of-line) -+ (define-key map "\M-<" 'menudiag-beginning-of-items) -+ (define-key map "\M->" 'menudiag-end-of-items) -+ (define-key map "\C-f" 'menudiag-forward-item) -+ (define-key map "\C-b" 'menudiag-backward-item) -+ (define-key map "\C-n" 'menudiag-next-line) -+ (define-key map "\C-p" 'menudiag-previous-line) -+ (define-key map "\C-]" 'menudiag-exit) -+ (define-key map "\C-g" 'menudiag-exit-one-level) -+ (define-key map "\C-l" 'menudiag-redraw) -+ (define-key map "\C-m" 'menudiag-select-this-item) -+ (define-key map "\M-v" 'menudiag-list-other-window) -+ (define-key map "?" 'menudiag-list-other-window) - (define-key map [return] 'menudiag-select-this-item) -- (define-key map [left] 'menudiag-backward-item) -- (define-key map [right] 'menudiag-forward-item) -- (define-key map [up] 'menudiag-previous-line) -- (define-key map [down] 'menudiag-next-line) -- (define-key map [menudiag-continuation] 'menudiag-follow-continuation) -- (define-key map [t] 'undefined) -+ (define-key map [left] 'menudiag-backward-item) -+ (define-key map [right] 'menudiag-forward-item) -+ (define-key map [up] 'menudiag-previous-line) -+ (define-key map [down] 'menudiag-next-line) -+ (define-key map [exit] 'menudiag-exit) -+ (define-key map [t] 'undefined) - map) - "Keymap for MENU.") - -@@ -111,8 +119,6 @@ - (defsubst menudiag-item-width (item) - (+ 4 (string-width (menudiag-item-string item)))) - --(defvar menudiag-window-conf nil) -- - (defun menudiag-make-selection-list (item-list line-width) - (let ((l nil) - (line nil) -@@ -135,66 +141,121 @@ - (reverse (cons (reverse line) l)) - (reverse l)))) - -+(defvar menudiag-show-all nil) -+(make-variable-buffer-local 'menudiag-show-all) -+ -+(defvar menudiag-continuation nil) -+(make-variable-buffer-local 'menudiag-continuation) -+ -+(defvar menudiag-return-contin nil) -+(make-variable-buffer-local 'menudiag-return-contin) -+ -+(defvar menudiag-value nil) -+(make-variable-buffer-local 'menudiag-value) -+ -+(defvar menudiag-done nil) -+(make-variable-buffer-local 'menudiag-done) -+ - ;; Entry function --(defun menudiag-select (menu &optional menudiag-continuation return-contin) -- (let ((enable-recursive-minibuffers t) -- value done) -- (setq menudiag-window-conf nil) -- (if menudiag-continuation -- (setq unread-command-events (cons 'menudiag-continuation -- unread-command-events))) -- (if (not return-contin) -- (setq value t)) -- (menudiag-select-internal menu) -- (if (eq done t) -- value -+(defun menudiag-select (menu &optional list-all continuation return-contin) -+ (let ((enable-recursive-minibuffers t)) -+ (setq menudiag-return-contin return-contin) -+ (menudiag-select-internal menu list-all continuation) -+ (if (eq menudiag-done t) -+ menudiag-value - (signal 'quit "")))) - --;; Entry function --(defun menudiag-get-value (continuation) -- (menudiag-item-value (nth (1- (length continuation)) continuation))) -+(defvar menudiag-line nil) -+(make-variable-buffer-local 'menudiag-line) -+ -+(defvar menudiag-linepos 0) -+(make-variable-buffer-local 'menudiag-linepos) -+ -+(defvar menudiag-pos-in-line 0) -+(make-variable-buffer-local 'menudiag-pos-in-line) - - (defun menudiag-follow-continuation () -+ (let* ((item (car menudiag-continuation)) -+ (value (menudiag-item-value item)) -+ (pos (menudiag-search-item item))) -+ (unless pos -+ (error "no such item: %s" (menudiag-item-string item))) -+ (menudiag-goto-line (car pos)) -+ (menudiag-goto-item-internal (cdr pos)) -+ (when (menudiag-menu-p value) -+ (menudiag-select-internal value -+ menudiag-show-all -+ (cdr menudiag-continuation)) -+ (menudiag-redraw) -+ (when menudiag-done -+ (when menudiag-return-contin -+ (setq menudiag-value (cons item menudiag-value))) -+ (setq unread-command-events (cons 'exit unread-command-events)))))) -+ -+(defvar menudiag-minibuffer-list nil) -+(defvar menudiag-variable-alist nil) -+ -+(defmacro menudiag-send-variables (&rest args) -+ `(setq menudiag-variable-alist -+ (list ,@(mapcar (lambda (var) `(cons ',var ,var)) args)))) -+ -+(defmacro menudiag-send-variables-with-value (&rest args) -+ `(setq menudiag-variable-alist -+ ,(let ((alist (list 'list))) -+ (while args -+ (nconc alist `((cons ',(car args) ,(cadr args)))) -+ (setq args (cddr args))) -+ alist))) -+ -+(defun menudiag-receive-variables () -+ (while menudiag-variable-alist -+ (set (caar menudiag-variable-alist) (cdar menudiag-variable-alist)) -+ (setq menudiag-variable-alist (cdr menudiag-variable-alist)))) -+ -+(defvar menudiag-minibuf-prompt nil) -+(make-variable-buffer-local 'menudiag-minibuf-prompt) -+ -+(defvar menudiag-current-items nil) -+(make-variable-buffer-local 'menudiag-current-items) -+ -+(defvar menudiag-selection-list nil) -+(make-variable-buffer-local 'menudiag-selection-list) -+ -+(defun menudiag-minibuffer-hook () - (interactive) -- (let ((item (car menudiag-continuation))) -- (setq menudiag-continuation (cdr menudiag-continuation)) -- (if menudiag-continuation -- (setq unread-command-events (cons 'menudiag-continuation -- unread-command-events))) -- (if (eq item 'menudiag-list-all) -- (menudiag-list-other-window) -- (let ((in-loop t)) -- (while in-loop -- (if (eq item (nth pos-in-line line)) -- (setq in-loop nil) -- (menudiag-forward-item) -- (if (and (= linepos 0) (= pos-in-line 0)) -- (error "no such item: %s" (menudiag-item-string item)))))) -- (let ((v (menudiag-item-value item))) -- (if (menudiag-menu-p v) -- (unwind-protect -- (progn -- (menudiag-select-internal v) -- (menudiag-redraw)) -- (if (consp value) -- (setq value (cons item value))) -- (if done (menudiag-exit-minibuffer)))))))) -+ (remove-hook 'minibuffer-setup-hook 'menudiag-minibuffer-hook) -+ (setq menudiag-minibuffer-list (cons (current-buffer) -+ menudiag-minibuffer-list)) -+ (buffer-disable-undo) -+ (menudiag-receive-variables) -+ (menudiag-beginning-of-items) -+ (when menudiag-continuation -+ (menudiag-follow-continuation)) -+ (when (and menudiag-show-all (null menudiag-done)) -+ (menudiag-list-other-window))) - --(defun menudiag-select-internal (menu) -- (let* ((minibuf-prompt (nth 1 menu)) -- (current-items (nth 2 menu)) -- (selection-list -- (menudiag-make-selection-list current-items -- (- (window-width (minibuffer-window)) -- (string-width minibuf-prompt)))) -- (line (car selection-list)) -- (minibuf-contents -- (menudiag-make-menu-formatted-string line))) -- (let ((linepos 0) -- (pos-in-line 0)) -- (read-from-minibuffer minibuf-prompt -- (cons minibuf-contents 3) -- menudiag-mode-map)))) -+(defun menudiag-select-internal (menu all &optional continuation) -+ (menudiag-send-variables-with-value -+ menudiag-value menudiag-value -+ menudiag-continuation continuation -+ menudiag-return-contin menudiag-return-contin -+ menudiag-show-all all -+ menudiag-minibuf-prompt (cadr menu) -+ menudiag-current-items (car (cddr menu)) -+ menudiag-selection-list (menudiag-make-selection-list -+ (car (cddr menu)) -+ (- (window-width (minibuffer-window)) -+ (string-width (cadr menu))))) -+ (add-hook 'minibuffer-setup-hook 'menudiag-minibuffer-hook) -+ (unwind-protect -+ (progn -+ (read-from-minibuffer "" "" menudiag-mode-map) -+ (menudiag-receive-variables)) -+ (setq menudiag-minibuffer-list (cdr menudiag-minibuffer-list)) -+ (remove-hook 'minibuffer-setup-hook 'menudiag-minibuffer-hook) -+ ;; for egg's point-enterd/left hooks -+ (save-excursion -+ (goto-char (point-min))))) - - (defun menudiag-make-menu-formatted-string (item-list) - (let ((i -1)) -@@ -217,7 +278,7 @@ - char)) - - ;; Character --> ITEM No --(defun menudiag-char-to-item-num (char) -+(defun menudiag-char-to-item-num (ch) - (let ((num)) - (cond ((and (<= ?0 ch) (<= ch ?9)) - (setq num (- ch ?0))) -@@ -228,44 +289,52 @@ - (t (setq num 1000))) - num)) - -+(defun menudiag-check-current-menu () -+ (or (eq (current-buffer) (car menudiag-minibuffer-list)) -+ (error "menudiag: not current menu"))) -+ - (defun menudiag-goto-item () - (interactive) -+ (menudiag-check-current-menu) - (let ((ch last-command-char) - (n 0)) - (setq n (menudiag-char-to-item-num ch)) -- (if (>= n (length line)) -+ (if (>= n (length menudiag-line)) - (error "No such item") - (menudiag-goto-item-internal n) - (if menudiag-select-without-return - (menudiag-select-this-item))))) - - (defun menudiag-goto-item-internal (n) -- (let ((old-pos-in-line pos-in-line) -- (p 3) -+ (let ((p (+ (length menudiag-minibuf-prompt) 3)) - (i 0)) -- (setq pos-in-line n) -- (while (< i pos-in-line) -- (setq p (+ p (length (menudiag-item-string (nth i line))) 4)) -+ (setq menudiag-pos-in-line n) -+ (while (< i menudiag-pos-in-line) -+ (setq p (+ p (length (menudiag-item-string (nth i menudiag-line))) 4)) - (setq i (1+ i))) - (goto-char p))) - - (defun menudiag-beginning-of-items () - (interactive) -+ (menudiag-check-current-menu) - (menudiag-goto-line 0) - (menudiag-beginning-of-line)) - - (defun menudiag-end-of-items () - (interactive) -- (menudiag-goto-line (1- (length selection-list))) -+ (menudiag-check-current-menu) -+ (menudiag-goto-line (1- (length menudiag-selection-list))) - (menudiag-end-of-line)) - - (defun menudiag-beginning-of-line () - (interactive) -+ (menudiag-check-current-menu) - (menudiag-goto-item-internal 0)) - - (defun menudiag-end-of-line () - (interactive) -- (menudiag-goto-item-internal (1- (length line)))) -+ (menudiag-check-current-menu) -+ (menudiag-goto-item-internal (1- (length menudiag-line)))) - - ;; Should retain compatibility. Must. - ;; -@@ -296,127 +365,166 @@ - ;; (insert (menudiag-make-menu-formatted-string line)))) - ;; - --(defun menudiag-forward-item () -- (interactive) -- (if (< pos-in-line (1- (length line))) -- (menudiag-goto-item-internal (1+ pos-in-line)) -- (if (>= linepos (1- (length selection-list))) -- (menudiag-goto-line 0) -- (menudiag-goto-line (1+ linepos))) -- (menudiag-beginning-of-line))) -+(defun menudiag-forward-item (n) -+ (interactive "p") -+ (menudiag-forward-item-internal n)) - --(defun menudiag-backward-item () -- (interactive) -- (if (< 0 pos-in-line) -- (menudiag-goto-item-internal (1- pos-in-line)) -- (if (< linepos 1) -- (menudiag-goto-line (1- (length selection-list))) -- (menudiag-goto-line (1- linepos))) -- (menudiag-end-of-line))) -+(defun menudiag-backward-item (n) -+ (interactive "p") -+ (menudiag-forward-item-internal (- n))) -+ -+(defun menudiag-forward-item-internal (n) -+ (menudiag-check-current-menu) -+ (setq n (+ n menudiag-pos-in-line)) -+ (while (< n 0) -+ (menudiag-goto-line (1- menudiag-linepos)) -+ (setq n (+ n (length menudiag-line)))) -+ (while (>= n (length menudiag-line)) -+ (setq n (- n (length menudiag-line))) -+ (menudiag-goto-line (1+ menudiag-linepos))) -+ (menudiag-goto-item-internal n)) - - (defun menudiag-goto-line (n) -- (cond -- ((>= n (length selection-list)) -- (setq n 0)) -- ((< n 0) -- (setq n (1- (length selection-list))))) -- (setq line (nth n selection-list) -- linepos n) -- (delete-region (point-min) (point-max)) -- (insert (menudiag-make-menu-formatted-string line))) -+ (let ((len (length menudiag-selection-list))) -+ (when (< n 0) -+ (setq n (+ (% n len) len))) -+ (when (>= n len) -+ (setq n (% n len))) -+ (setq menudiag-line (nth n menudiag-selection-list) -+ menudiag-linepos n) -+ (let ((inhibit-read-only t)) -+ (erase-buffer) -+ (insert menudiag-minibuf-prompt -+ (menudiag-make-menu-formatted-string menudiag-line)) -+ (set-text-properties (point-min) (point-max) '(read-only t))))) - --(defun menudiag-next-line () -- (interactive) -- (menudiag-goto-line (1+ linepos)) -- (if (< pos-in-line (length line)) -- (menudiag-goto-item-internal pos-in-line) -- (menudiag-end-of-line))) -+(defun menudiag-next-line (n) -+ (interactive "p") -+ (menudiag-next-line-internal n)) - --(defun menudiag-previous-line () -- (interactive) -- (menudiag-goto-line (1- linepos)) -- (if (< pos-in-line (length line)) -- (menudiag-goto-item-internal pos-in-line) -+(defun menudiag-previous-line (n) -+ (interactive "p") -+ (menudiag-next-line-internal (- n))) -+ -+(defun menudiag-next-line-internal (n) -+ (menudiag-check-current-menu) -+ (menudiag-goto-line (+ menudiag-linepos n)) -+ (if (< menudiag-pos-in-line (length menudiag-line)) -+ (menudiag-goto-item-internal menudiag-pos-in-line) - (menudiag-end-of-line))) - - (defun menudiag-redraw () - (interactive) -- (menudiag-goto-line linepos) -- (menudiag-goto-item-internal pos-in-line)) -+ (menudiag-check-current-menu) -+ (menudiag-goto-line menudiag-linepos) -+ (menudiag-goto-item-internal menudiag-pos-in-line)) - - (defun menudiag-exit-one-level () - (interactive) -+ (menudiag-check-current-menu) - (menudiag-exit-minibuffer)) - - (defun menudiag-exit () - (interactive) -- (setq done 'quit) -+ (menudiag-check-current-menu) -+ (unless menudiag-done -+ (setq menudiag-done 'quit)) - (menudiag-exit-minibuffer)) - --(defun menudiag-select-this-item () -+(defun menudiag-select-this-item (&optional all) - (interactive) -- (let* ((item (nth pos-in-line line)) -+ (menudiag-check-current-menu) -+ (let* ((item (nth menudiag-pos-in-line menudiag-line)) - (v (menudiag-item-value item))) - (if (menudiag-menu-p v) -- (unwind-protect -- (progn -- (menudiag-restore-window) -- (menudiag-select-internal v) -- (menudiag-redraw)) -- (if (consp value) -- (setq value (cons item value))) -- (if done (menudiag-exit-minibuffer))) -- (if (eq value t) -- (setq value (menudiag-item-value item)) -- (setq value (cons item nil))) -- (setq done t) -+ (progn -+ (menudiag-restore-window) -+ (menudiag-select-internal v all) -+ (menudiag-redraw) -+ (cond (menudiag-done -+ (when menudiag-return-contin -+ (setq menudiag-value (cons item menudiag-value))) -+ (menudiag-exit-minibuffer)) -+ (all -+ (menudiag-list-other-window)))) -+ (setq menudiag-value (if menudiag-return-contin -+ (list item) -+ (menudiag-item-value item)) -+ menudiag-done t) - (menudiag-exit-minibuffer)))) -+ -+(defun menudiag-search-item (item) -+ (let ((selection-list menudiag-selection-list) -+ (line 0) -+ rest) -+ (while (and selection-list -+ (null (setq rest (memq item (car selection-list))))) -+ (setq selection-list (cdr selection-list) -+ line (1+ line))) -+ (and selection-list -+ (cons line (- (length (car selection-list)) (length rest)))))) - - (defconst menudiag-selection-map -- (let ((map (make-sparse-keymap))) -- (define-key map [right] 'next-completion) -- (define-key map [left] 'previous-completion) -- (define-key map "\r" 'menudiag-choose-item) -- (define-key map [mouse-2] 'menudiag-mouse-choose-item) -- map)) -+ (let ((map (make-sparse-keymap)) -+ (ch ?0)) -+ (while (<= ch ?9) -+ (define-key map (char-to-string ch) 'menudiag-selection-goto) -+ (setq ch (1+ ch))) -+ (define-key map "q" 'menudiag-retun-to-minibuf) -+ (define-key map "\C-b" 'previous-completion) -+ (define-key map "\M-b" 'previous-completion) -+ (define-key map "\C-f" 'next-completion) -+ (define-key map "\M-f" 'next-completion) -+ (define-key map " " 'next-completion) -+ (define-key map "\C-g" 'menudiag-selection-exit-one-level) -+ (define-key map "\C-m" 'menudiag-choose-item) -+ (define-key map "\C-]" 'menudiag-selection-exit) -+ (define-key map "\177" 'menudiag-selection-goto-delete) -+ (define-key map [delete] 'menudiag-selection-goto-delete) -+ (define-key map [backspace] 'menudiag-selection-goto-delete) -+ (define-key map [right] 'next-completion) -+ (define-key map [left] 'previous-completion) -+ (define-key map [return] 'menudiag-choose-item) -+ (define-key map [mouse-2] 'menudiag-mouse-choose-item) -+ map) -+ "keymap for menu selection mode") -+ -+(defvar menudiag-window-conf nil) -+(make-variable-buffer-local 'menudiag-window-conf) - - (defvar menudiag-selection-buffer nil) - (make-variable-buffer-local 'menudiag-selection-buffer) --(put 'menudiag-selection-buffer 'permanent-local t) - - (defvar menudiag-selection-main-buffer nil) - (make-variable-buffer-local 'menudiag-selection-main-buffer) --(put 'menudiag-selection-main-buffer 'permanent-local t) - - (defun menudiag-selection-mode () -- (interactive) - (kill-all-local-variables) - (make-local-variable 'inhibit-read-only) - (setq buffer-read-only t - inhibit-read-only nil) -+ (make-local-hook 'post-command-hook) -+ (add-hook 'post-command-hook 'menudiag-selection-align-to-item nil t) - (use-local-map menudiag-selection-map) - (setq mode-name "Menudiag Selection") - (setq major-mode 'menudiag-selection-mode)) - --(defun menudiag-max-item-width (item-list) -- (let ((max 0)) -- (while item-list -- (setq max (max max (menudiag-item-width (car item-list))) -- item-list (cdr item-list))) -- max)) -+(defun menudiag-max-item-width (items) -+ (apply 'max (mapcar 'menudiag-item-width items))) - - (defun menudiag-buffer-show-function () -- (let* ((items current-items) -- (digits (length (concat (length items)))) -- (columns (max 1 (/ (window-width (minibuffer-window)) -+ (menudiag-receive-variables) -+ (let* ((items menudiag-current-items) -+ (digits (length (number-to-string (length items)))) -+ (form (concat "%" (number-to-string digits) "d. %s")) -+ (columns (max 1 (/ (window-width (selected-window)) - (+ digits (menudiag-max-item-width items))))) -- (width (/ (window-width (minibuffer-window)) columns)) -- (col 0) (n 0) str) -+ (width (/ (window-width (selected-window)) columns)) -+ (col 0) (n 0) str p) - (insert " ") - (while items - (setq p (point) -- str (format (concat "%" digits "d. %s") -- n (menudiag-item-string (car items)))) -+ str (format form n (menudiag-item-string (car items)))) - (insert str) - (set-text-properties p (point) '(mouse-face highlight)) - (setq col (1+ col) -@@ -433,75 +541,156 @@ - - (defun menudiag-buffer-name (prompt) - (let ((len (1- (length prompt)))) -- (if (= (aref prompt len) ?:) (substring prompt 0 len) prompt))) -+ (generate-new-buffer-name -+ (if (= (aref prompt len) ?:) (substring prompt 0 len) prompt)))) - - (defun menudiag-list-other-window () - (interactive) -- (let ((temp-buffer-show-hook 'menudiag-buffer-show-function) -- (main-buf (current-buffer))) -- (setq menudiag-window-conf (current-window-configuration)) -- (with-output-to-temp-buffer (menudiag-buffer-name minibuf-prompt) -- (setq menudiag-selection-buffer standard-output)) -- (set-buffer menudiag-selection-buffer) -- (setq menudiag-selection-main-buffer main-buf))) -+ (menudiag-check-current-menu) -+ (let ((window (and menudiag-selection-buffer -+ (get-buffer-window menudiag-selection-buffer)))) -+ (if window -+ (select-window window) -+ (let ((temp-buffer-show-hook 'menudiag-buffer-show-function) -+ (main-buf (current-buffer)) -+ (selection-list menudiag-selection-list) -+ (linepos menudiag-linepos) -+ (n (1+ menudiag-pos-in-line))) -+ (setq menudiag-window-conf (current-window-configuration)) -+ (menudiag-send-variables menudiag-current-items) -+ (with-output-to-temp-buffer -+ (menudiag-buffer-name menudiag-minibuf-prompt) -+ (setq menudiag-selection-buffer standard-output)) -+ (switch-to-buffer-other-window menudiag-selection-buffer) -+ (setq menudiag-selection-main-buffer main-buf -+ menudiag-selection-list selection-list) -+ (while (> linepos 0) -+ (setq linepos (1- linepos) -+ n (+ n (length (car selection-list))) -+ selection-list (cdr selection-list))) -+ (next-completion n))))) -+ -+(defun menudiag-check-current-menu-list () -+ (or (eq menudiag-selection-main-buffer (car menudiag-minibuffer-list)) -+ (error "menudiag: not current menu list"))) - - (defun menudiag-choose-item () - (interactive) -- (let ((org-buf menudiag-selection-main-buffer) -- (sel-buf (current-buffer)) -- (item-list selection-list) -- (l 0) -- tmp-buf n) -- (with-temp-buffer -- (setq tmp-buf (current-buffer)) -- (set-buffer sel-buf) -- (setq completion-reference-buffer tmp-buf) -- (choose-completion) -- (set-buffer tmp-buf) -- (setq n (string-to-int (buffer-string)))) -- (pop-to-buffer org-buf) -- (while (and item-list (>= (- n (length (car item-list))) 0)) -- (setq l (1+ l) -- n (- n (length (car item-list))) -- item-list (cdr item-list))) -- (menudiag-goto-line l) -- (menudiag-goto-item-internal n) -- (menudiag-select-this-item))) -+ (menudiag-choose-item-internal nil)) - - (defun menudiag-mouse-choose-item (event) - (interactive "e") -- (set-buffer (window-buffer (car (nth 1 event)))) -+ (set-buffer (window-buffer (caadr event))) -+ (menudiag-choose-item-internal event)) -+ -+(defun menudiag-choose-item-internal (event) -+ (menudiag-check-current-menu-list) - (let ((org-buf menudiag-selection-main-buffer) - (sel-buf (current-buffer)) -- (item-list selection-list) -+ (item-list menudiag-selection-list) - (l 0) - tmp-buf n) - (with-temp-buffer - (setq tmp-buf (current-buffer)) - (set-buffer sel-buf) - (setq completion-reference-buffer tmp-buf) -- (mouse-choose-completion event) -+ (if event -+ (mouse-choose-completion event) -+ (choose-completion)) - (set-buffer tmp-buf) - (setq n (string-to-int (buffer-string)))) - (pop-to-buffer org-buf) -- (while (and item-list (>= (- n (length (car item-list))) 0)) -+ (while (and item-list (>= n (length (car item-list)))) - (setq l (1+ l) - n (- n (length (car item-list))) - item-list (cdr item-list))) - (menudiag-goto-line l) - (menudiag-goto-item-internal n) -- (menudiag-select-this-item))) -+ (menudiag-select-this-item t))) -+ -+(defvar menudiag-goto-number-list nil) -+(make-variable-buffer-local 'menudiag-goto-number-list) -+ -+(defvar menudiag-original-point nil) -+(make-variable-buffer-local' menudiag-original-point) -+ -+(defun menudiag-selection-goto () -+ (interactive) -+ (unless (eq last-command 'menudiag-selection-goto) -+ (setq menudiag-goto-number-list nil -+ menudiag-original-point (point))) -+ (setq menudiag-goto-number-list (cons (- last-command-char ?0) -+ menudiag-goto-number-list)) -+ (menudiag-selection-goto-internal)) -+ -+(defun menudiag-selection-goto-internal () -+ (let* ((list menudiag-goto-number-list) -+ (n (menudiag-selection-item-number list)) -+ (len (save-excursion -+ (set-buffer menudiag-selection-main-buffer) -+ (length menudiag-current-items)))) -+ (setq this-command 'menudiag-selection-goto) -+ (if (>= n len) -+ (progn -+ (ding) -+ (setq menudiag-goto-number-list (cdr list))) -+ (goto-char (point-min)) -+ (next-completion (1+ n))))) -+ -+(defun menudiag-selection-item-number (list) -+ (let ((n 0) -+ (exp 1)) -+ (while list -+ (setq n (+ (* (car list) exp) n) -+ exp (* 10 exp) -+ list (cdr list))) -+ n)) -+ -+(defun menudiag-selection-goto-delete (n) -+ (interactive "p") -+ (if (null (eq last-command 'menudiag-selection-goto)) -+ (ding) -+ (setq menudiag-goto-number-list (nthcdr n menudiag-goto-number-list)) -+ (if (null menudiag-goto-number-list) -+ (goto-char menudiag-original-point) -+ (menudiag-selection-goto-internal)))) -+ -+(defun menudiag-selection-align-to-item () -+ (cond ((bolp) -+ (next-completion 1)) -+ ((get-text-property (1- (point)) 'mouse-face) -+ (goto-char (previous-single-property-change (point) 'mouse-face))))) - - (defun menudiag-restore-window () -- (if menudiag-window-conf -- (progn -- (set-window-configuration menudiag-window-conf) -- (setq menudiag-window-conf nil) -- (kill-buffer menudiag-selection-buffer)))) -+ (when menudiag-window-conf -+ (set-window-configuration menudiag-window-conf) -+ (kill-buffer menudiag-selection-buffer))) - - (defun menudiag-exit-minibuffer () -- (and menudiag-window-conf (menudiag-restore-window)) -+ (menudiag-restore-window) -+ (menudiag-send-variables menudiag-done menudiag-value) -+ (buffer-enable-undo) - (exit-minibuffer)) -+ -+(defun menudiag-retun-to-minibuf () -+ (interactive) -+ (menudiag-check-current-menu-list) -+ (unless (minibuffer-window-active-p (minibuffer-window)) -+ (set-minibuffer-window (minibuffer-window))) -+ (let ((window (get-buffer-window menudiag-selection-main-buffer))) -+ (if window -+ (select-window window) -+ (error "menudiag: cannot find minibuffer")))) -+ -+(defun menudiag-selection-exit-one-level () -+ (interactive) -+ (set-buffer menudiag-selection-main-buffer) -+ (menudiag-exit-one-level)) -+ -+(defun menudiag-selection-exit () -+ (interactive) -+ (set-buffer menudiag-selection-main-buffer) -+ (menudiag-exit)) - - (provide 'menudiag) - ;;; menudiag.el ends here. -Index: egg/anthy.el -=================================================================== -RCS file: egg/anthy.el -diff -N egg/anthy.el ---- /dev/null 1 Jan 1970 00:00:00 -0000 -+++ egg/anthy.el 8 Aug 2002 08:11:22 -0000 1.2 -@@ -0,0 +1,220 @@ -+;;; egg/anthy.el --- ANTHY Support (high level interface) in Egg -+;;; Input Method Architecture -+ -+;; Copyright (C) 2002 The Free Software Initiative of Japan -+ -+;; Author: NIIBE Yutaka <gniibe@m17n.org> -+ -+;; Maintainer: NIIBE Yutaka <gniibe@m17n.org> -+ -+;; Keywords: mule, multilingual, input method -+ -+;; This file is part of EGG. -+ -+;; EGG is free software; you can redistribute it and/or modify -+;; it under the terms of the GNU General Public License as published by -+;; the Free Software Foundation; either version 2, or (at your option) -+;; any later version. -+ -+;; EGG is distributed in the hope that it will be useful, -+;; but WITHOUT ANY WARRANTY; without even the implied warranty of -+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+;; GNU General Public License for more details. -+ -+;; You should have received a copy of the GNU General Public License -+;; along with GNU Emacs; see the file COPYING. If not, write to the -+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -+;; Boston, MA 02111-1307, USA. -+ -+;;; Commentary: -+ -+ -+;;; Code: -+ -+(require 'egg) -+(require 'egg-edep) -+ -+(defgroup anthy nil -+ "Anthy interface for Tamago 4." -+ :group 'egg) -+ -+(setplist 'anthy-conversion-backend -+ '(egg-start-conversion anthy-convert -+ egg-get-bunsetsu-source anthy-get-bunsetsu-source -+ egg-get-bunsetsu-converted anthy-get-bunsetsu-converted -+ egg-list-candidates anthy-get-candidates -+ egg-decide-candidate anthy-select-candidate -+ egg-change-bunsetsu-length anthy-resize-segment -+ egg-end-conversion anthy-commit -+ ;; -+ egg-get-source-language anthy-get-source-language -+ egg-get-converted-language anthy-get-converted-language)) -+ -+(defconst anthy-backend-alist '((Japanese ((anthy-conversion-backend))))) -+ -+(egg-set-finalize-backend '(anthy-finalize-backend)) -+ -+(defvar anthy-proc nil -+ "Process of ANTHY helper agent.") -+ -+;; <environments> ::= ( <env> ... <env> ) -+;; -+;; <env> ::= <context-descriptor> -+;; <context-descriptor> ::= <integer> -+(defvar anthy-environment-pool nil -+ "Environments for ANTHY kana-kanji conversion, to be used.") -+ -+(defvar anthy-environments-in-use nil -+ "Environments for ANTHY kana-kanji conversion, in use.") -+ -+;; -+;; <anthy-bunsetsu> ::= -+;; [ <env> <source> <converted> <candidates> <candidate-pos> <seg-no> ] -+(defsubst anthy-make-bunsetsu (env source converted seg-no) -+ (egg-bunsetsu-create -+ 'anthy-conversion-backend -+ (vector env source converted nil 0 seg-no))) -+ -+(defsubst anthybunsetsu-get-env (b) -+ (aref (egg-bunsetsu-get-info b) 0)) -+(defsubst anthybunsetsu-get-source (b) -+ (aref (egg-bunsetsu-get-info b) 1)) -+(defsubst anthybunsetsu-get-converted (b) -+ (aref (egg-bunsetsu-get-info b) 2)) -+(defsubst anthybunsetsu-get-candidates (b) -+ (aref (egg-bunsetsu-get-info b) 3)) -+(defsubst anthybunsetsu-set-candidates (b z) -+ (aset (egg-bunsetsu-get-info b) 3 z)) -+(defsubst anthybunsetsu-get-candidate-pos (b) -+ (aref (egg-bunsetsu-get-info b) 4)) -+(defsubst anthybunsetsu-set-candidate-pos (b zp) -+ (aset (egg-bunsetsu-get-info b) 4 zp)) -+(defsubst anthybunsetsu-get-seg-no (b) -+ (aref (egg-bunsetsu-get-info b) 5)) -+ -+(defun anthy-get-bunsetsu-source (b) -+ (anthybunsetsu-get-source b)) -+ -+(defun anthy-get-bunsetsu-converted (b) -+ (let ((cands (anthybunsetsu-get-candidates b))) -+ (if cands -+ (nth (anthybunsetsu-get-candidate-pos b) cands) -+ (anthybunsetsu-get-converted b)))) -+ -+(defun anthy-get-source-language (b) 'Japanese) -+(defun anthy-get-converted-language (b) 'Japanese) -+ -+;; Getting new context-descriptor, and returns environment with 'inuse' bit -+(defun anthy-new-environment () -+ (if (null anthy-proc) -+ (let ((buf (generate-new-buffer " *ANTHY*")) -+ (process-connection-type nil)) ; avoid using pty -+ (setq anthy-proc -+ (start-process "anthy-agent" buf "anthy-agent" "--egg")) -+ (process-kill-without-query anthy-proc) -+ (set-process-coding-system anthy-proc 'euc-jp-dos 'euc-jp-dos) -+ (set-process-sentinel anthy-proc 'anthy-proc-sentinel) -+ (set-marker-insertion-type (process-mark anthy-proc) t) -+ (save-excursion -+ (set-buffer buf) -+ (erase-buffer) -+ (buffer-disable-undo)))) -+ (anthyipc-get-greeting anthy-proc) -+ (anthyipc-new-context anthy-proc)) -+ -+;;; XXX: Don't kill buffer (for now) so that I can debug this program -+(defun anthy-proc-sentinel (proc reason) -+; (kill-buffer (process-buffer proc)) -+ (setq anthy-proc nil -+ anthy-environments-in-use nil -+ anthy-environment-pool nil)) -+ -+;;; anthyipc-release-context -+ -+ -+(defun anthy-get-environment () -+ "Return the ANTHY environment." -+ (if anthy-environment-pool -+ (let ((env (car anthy-environment-pool))) -+ (setq anthy-environment-pool (cdr anthy-environment-pool)) -+ (setq anthy-environments-in-use (cons env anthy-environments-in-use)) -+ env) -+ (let ((env (anthy-new-environment))) -+ (setq anthy-environments-in-use (cons env anthy-environments-in-use)) -+ env))) -+ -+;; -+;; Returns list of bunsetsu -+;; -+(defun anthy-convert (backend yomi &optional context) -+ "Convert YOMI string to kanji, and enter conversion mode. -+Return the list of bunsetsu." -+ (let ((env (anthy-get-environment))) -+ (anthyipc-convert anthy-proc env yomi))) -+ -+;; -+;; -+;; -+(defun anthy-commit (bunsetsu-list abort) -+ (let ((env (anthybunsetsu-get-env (car bunsetsu-list)))) -+ (anthyipc-commit anthy-proc env (if abort 1 0)) -+ (setq anthy-environment-pool (cons env anthy-environment-pool)) -+ (setq anthy-environments-in-use (delq env anthy-environments-in-use)))) -+ -+;; -+;; Returns ( <pos> <candidates> ) -+;; -+(defun anthy-get-candidates (bunsetsu-list prev-bunsetsu next-bunsetsu major) -+ (let ((bunsetsu (car bunsetsu-list))) -+ (if (anthybunsetsu-get-candidates bunsetsu) -+ (cons (anthybunsetsu-get-candidate-pos bunsetsu) -+ (anthybunsetsu-get-candidates bunsetsu)) -+ (let* ((env (anthybunsetsu-get-env bunsetsu)) -+ (seg-no (anthybunsetsu-get-seg-no bunsetsu)) -+ (cands (anthyipc-get-candidates anthy-proc env seg-no))) -+ (cons (anthybunsetsu-set-candidate-pos bunsetsu 0) -+ (anthybunsetsu-set-candidates bunsetsu cands)))))) -+ -+;; Returns list of list of bunsetsu -+(defun anthy-select-candidate (bunsetsu-list candidate-pos prev-b next-b) -+ (let* ((bunsetsu (car bunsetsu-list)) -+ (candidate-list (anthybunsetsu-get-candidates bunsetsu)) -+ (candidate (nth candidate-pos candidate-list)) -+ (env (anthybunsetsu-get-env bunsetsu)) -+ (seg-no (anthybunsetsu-get-seg-no bunsetsu))) -+ (anthybunsetsu-set-candidate-pos bunsetsu candidate-pos) -+ ;; Anthy doesn't have capability of changing another segment -+ ;; at the selection of a segment. -+ ;; So, just ignore the result of "SELECT-CANDIDATE" -+ (anthyipc-select-candidate anthy-proc env seg-no candidate-pos) -+ (list (list bunsetsu)))) -+ -+;; Returns list of list of bunsetsu -+(defun anthy-resize-segment (bunsetsu-list prev-b next-b len major) -+ (let ((bunsetsu (car bunsetsu-list))) -+ (let ((env (anthybunsetsu-get-env bunsetsu)) -+ (seg-no (anthybunsetsu-get-seg-no bunsetsu)) -+ (prevlen (length (anthybunsetsu-get-source bunsetsu)))) -+ (let ((r (anthyipc-resize-segment anthy-proc env seg-no -+ (if (< prevlen len) 0 1)))) -+ ;; XXX: I don't know what this means, -+ ;; but this works. Blame EGG. -+ (list (list (car r)) nil (cdr r)))))) -+ -+(defun anthy-finalize-backend () -+ (if anthy-proc -+ (progn -+ (delete-process anthy-proc) -+ (setq anthy-proc nil)))) -+ -+;;; setup -+ -+(load "egg/anthyipc") -+(run-hooks 'anthy-load-hook) -+ -+;;;###autoload -+(defun egg-activate-anthy (&rest arg) -+ "Activate ANTHY backend of Tamago 4." -+ (apply 'egg-mode (append arg anthy-backend-alist))) -+ -+;;; egg/anthy.el ends here. -Index: egg/anthyipc.el -=================================================================== -RCS file: egg/anthyipc.el -diff -N egg/anthyipc.el ---- /dev/null 1 Jan 1970 00:00:00 -0000 -+++ egg/anthyipc.el 8 Aug 2002 07:28:41 -0000 1.1 -@@ -0,0 +1,195 @@ -+;;; egg/anthyipc.el --- ANTHY IPC Support (low level interface) in Egg -+;;; Input Method Architecture -+ -+;; Copyright (C) 2002 The Free Software Initiative of Japan -+ -+;; Author: NIIBE Yutaka <gniibe@m17n.org> -+ -+;; Maintainer: NIIBE Yutaka <gniibe@m17n.org> -+ -+;; Keywords: mule, multilingual, input method -+ -+;; This file is part of EGG. -+ -+;; EGG is free software; you can redistribute it and/or modify -+;; it under the terms of the GNU General Public License as published by -+;; the Free Software Foundation; either version 2, or (at your option) -+;; any later version. -+ -+;; EGG is distributed in the hope that it will be useful, -+;; but WITHOUT ANY WARRANTY; without even the implied warranty of -+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+;; GNU General Public License for more details. -+ -+;; You should have received a copy of the GNU General Public License -+;; along with GNU Emacs; see the file COPYING. If not, write to the -+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -+;; Boston, MA 02111-1307, USA. -+ -+;;; Commentary: -+ -+ -+;;; Code: -+ -+(defmacro anthyipc-call-with-proc (proc vlist send-expr &rest receive-exprs) -+ `(let* ((proc ,proc) -+ (buffer (process-buffer proc)) -+ ,@vlist) -+ (if (and (eq (process-status proc) 'run) -+ (buffer-live-p buffer)) -+ (save-excursion -+ (set-buffer buffer) -+ (erase-buffer) -+ ,send-expr -+ (goto-char (point-max)) -+ (process-send-region proc (point-min) (point-max)) -+ ,@receive-exprs) -+ (egg-error "process %s was killed" proc)))) -+ -+(defun anthyipc-wait-line () -+ (let ((start (point))) -+ (while (not (search-forward "\n" nil 1)) -+ (accept-process-output proc 1000) -+ (goto-char start)) -+ (goto-char start))) -+ -+(defun anthyipc-accept-ok () -+ (anthyipc-wait-line) -+ (if (eq (char-after) ?+) -+ ;; "+OK" -+ (goto-char (point-max)) -+ (egg-error "protocol error: %s" (buffer-substring (point) (point-max))))) -+ -+(defun anthyipc-accept-number () -+ (anthyipc-wait-line) -+ (if (eq (char-after) ?+) -+ ;; "+OK <number>" -+ (progn -+ (forward-char 4) -+ (prog1 -+ (read (current-buffer)) -+ (goto-char (point-max)))) -+ (egg-error "protocol error: %s" (buffer-substring (point) (point-max))))) -+ -+(defun anthyipc-read-string () -+ (if (eq (char-after) ?\ ) -+ (forward-char 1)) -+ (let ((start (point))) -+ (while (and (char-after) -+ (not (eq (char-after) ?\ )) -+ (not (eq (char-after) ?\n))) -+ (forward-char 1)) -+ (buffer-substring start (point)))) -+ -+(defun anthyipc-accept-segments (env seg-no-orig) -+ (anthyipc-wait-line) -+ (if (eq (char-after) ?+) -+ (progn -+ (forward-char 1) -+ (if (eq (char-after) ?O) -+ ;; "+OK" -+ (progn -+ (goto-char (point-max)) -+ t) -+ ;; "+DATA <seg-no> <num-segments-removed> <num-segments-inserted>" -+ ;; "<num-candidates> <converted> <yomi>"*N -+ ;; "" -+ ;; -+ (forward-char 5) -+ (let* ((seg-no (read (current-buffer))) -+ (num-segments-removed (read (current-buffer))) -+ (num-segments-inserted (read (current-buffer))) -+ (segment-list nil) -+ (in-loop t) -+ (i seg-no)) -+ (while in-loop -+ (forward-char 1) -+ (anthyipc-wait-line) -+ (if (eq (char-after) ?\n) -+ (setq in-loop nil) -+ (let* ((num-candidates (read (current-buffer))) -+ (converted (anthyipc-read-string)) -+ (source (anthyipc-read-string)) -+ (segment (anthy-make-bunsetsu env source converted i))) -+ (setq i (1+ i)) -+ (setq segment-list (cons segment segment-list))))) -+ ;; XXX check if seg-no == seg-no-orig -+ ;; XXX check inserted and length of segment-list??? -+ (forward-char 1) -+ (cons seg-no (cons num-segments-removed (reverse segment-list)))))) -+ (egg-error "protocol error: %s" (buffer-substring (point) (point-max))))) -+ -+(defun anthyipc-accept-candidates () -+ (anthyipc-wait-line) -+ (if (eq (char-after) ?+) -+ (progn -+ ;; "+DATA <offset> <num-candidates>" -+ ;; "<converted>"*N -+ ;; "" -+ (forward-char 6) -+ (let* ((offset (read (current-buffer))) -+ (num-candidates (read (current-buffer))) -+ (candidate-list nil) -+ (in-loop t)) -+ (while in-loop -+ (forward-char 1) -+ (anthyipc-wait-line) -+ (if (eq (char-after) ?\n) -+ (setq in-loop nil) -+ (let ((candidate (anthyipc-read-string))) -+ (setq candidate-list (cons candidate candidate-list))))) -+ ;; XXX check num-candidates and length of candidate-list??? -+ (forward-char 1) -+ (cons offset (reverse candidate-list)))) -+ (egg-error "protocol error: %s" (buffer-substring (point) (point-max))))) -+ -+(defun anthyipc-get-greeting (proc) -+ (anthyipc-call-with-proc proc () -+ nil -+ (anthyipc-wait-line) -+ (message (buffer-substring (point-min) (1- (point-max)))))) -+ -+(defun anthyipc-new-context (proc) -+ (anthyipc-call-with-proc proc () -+ (insert "NEW-CONTEXT INPUT=#18 OUTPUT=#18\n") -+ (anthyipc-accept-number))) -+ -+(defun anthyipc-release-context (proc cont) -+ (anthyipc-call-with-proc proc () -+ (insert (format "RELEASE-CONTEXT %d\n" cont)) -+ (anthyipc-accept-ok))) -+ -+;; Returns list of bunsetsu -+(defun anthyipc-convert (proc cont yomi) -+ (anthyipc-call-with-proc proc () -+ (insert (format "CONVERT %d %s\n" cont yomi)) -+ (let ((r (anthyipc-accept-segments cont 0))) -+ (cdr (cdr r))))) -+ -+(defun anthyipc-commit (proc cont cancel) -+ (anthyipc-call-with-proc proc () -+ (insert (format "COMMIT %d %d\n" cont cancel)) -+ (anthyipc-accept-ok))) -+ -+;;; Returns list of candidate -+(defconst anthy-max-candidates 9999) -+(defun anthyipc-get-candidates (proc cont seg-no) -+ (anthyipc-call-with-proc proc () -+ (insert -+ (format "GET-CANDIDATES %d %d %d %d\n" cont seg-no 0 anthy-max-candidates)) -+ (let ((r (anthyipc-accept-candidates))) -+ (cdr r)))) -+ -+;;; Returns segments -+(defun anthyipc-select-candidate (proc cont seg-no candidate-no) -+ (anthyipc-call-with-proc proc () -+ (insert (format "SELECT-CANDIDATE %d %d %d\n" cont seg-no candidate-no)) -+ (anthyipc-accept-segments cont seg-no))) -+ -+;;; Returns segments -+(defun anthyipc-resize-segment (proc cont seg-no inc-dec) -+ (anthyipc-call-with-proc proc () -+ (insert (format "RESIZE-SEGMENT %d %d %d\n" cont seg-no inc-dec)) -+ (cddr (anthyipc-accept-segments cont seg-no)))) -+ -+;;; egg/anthyipc.el ends here. -Index: egg/canna.el -=================================================================== -RCS file: /cvs/tamago/tamago/egg/canna.el,v -retrieving revision 1.1.1.1 -retrieving revision 1.4 -diff -d -u -p -r1.1.1.1 -r1.4 ---- egg/canna.el 27 Jan 2001 18:45:24 -0000 1.1.1.1 -+++ egg/canna.el 22 Jul 2002 13:18:56 -0000 1.4 -@@ -30,257 +30,878 @@ - - ;;; Code: - -- -+(require 'egg) - (require 'egg-edep) - --(eval-when-compile -- (defmacro CANNA-const (c) -- (cond ((eq c 'FileNotExist) xxxxxxxxxxxxxx) -- ))) -+(defgroup canna nil -+ "CANNA interface for Tamago 4." -+ :group 'egg) - --(defconst canna-conversion-backend -- [ canna-init -+(defcustom canna-hostname "localhost" -+ "Hostname of CANNA server" -+ :group 'canna :type 'string) - -- canna-start-conversion -- canna-get-bunsetsu-converted -- canna-get-bunsetsu-source -- canna-list-candidates -- canna-get-number-of-candidates -- canna-get-current-candidate-number -- canna-get-all-candidates -- canna-decide-candidate -- canna-change-bunsetsu-length -- canna-end-conversion -- nil -+(defcustom canna-server-port "canna" -+ "A service name or a port number (should be a string) of CANNA server" -+ :group 'canna :type 'string) - -- canna-fini -- ]) -+(defcustom canna-user-name nil -+ "User Name on CANNA server" -+ :group 'canna :type 'string) - --(defconst canna-server-port 5680 "Port number of Canna server") --(defvar canna-hostname "localhost" -- "Hostname of Canna server") -+(defcustom canna-group-name nil -+ "Group Name on CANNA server" -+ :group 'canna :type 'string) - --(defun canna-open (hostname) -- "Establish the connection to CANNA server. Return environment object." -- (let* ((buf (generate-new-buffer " *CANNA*")) -- (proc (open-network-stream "CANNA" buf hostname canna-server-port)) -- result) -- (process-kill-without-query proc) -- (set-process-coding-system proc 'no-conversion 'no-conversion) -- (set-marker-insertion-type (process-mark proc) t) -- (save-excursion -- (set-buffer buf) -- (erase-buffer) -- (buffer-disable-undo) -- (set-buffer-multibyte nil)) -- (setq result (cannarpc-open proc (user-login-name))) -- (if (< result 0) -- (let ((msg (cannarpc-get-error-message (- result)))) -- (delete-process proc) -- (kill-buffer buf) -- (error "Can't open CANNA session (%s): %s" hostname msg))) -- (vector proc result))) -+; (eval-when-compile -+; (defmacro CANNA-const (c) -+; (cond ((eq c 'FileNotExist) xxxxxxxxxxxxxx) -+; ))) - --;; XXX: Should support multiple outstanding context --;; <env> ::= [ <proc> <context> ] --(defvar canna-environment nil -+(egg-add-message -+ '((Japanese -+ (canna-connect-error "$B%5!<%P$H@\B3$G$-$^$;$s$G$7$?(B") -+ (canna-fail-make-env "$B4D6-$r:n$k$3$H$O$G$-$^$;$s$G$7$?(B") -+ (canna-dict-missing-1 "$B<-=q%U%!%$%k(B %s $B$,$"$j$^$;$s!#(B") -+ (canna-dict-missing-2 "$B<-=q%U%!%$%k(B %s $B$,$"$j$^$;$s!#:n$j$^$9$+(B? ") -+ (canna-dict-created "$B<-=q%U%!%$%k(B %s $B$r:n$j$^$7$?(B") -+ (canna-dict-saving "%s $B$NIQEY>pJs!&<-=q>pJs$rB`Hr$7$F$$$^$9(B") -+ (canna-dict-saved "%s $B$NIQEY>pJs!&<-=q>pJs$rB`Hr$7$^$7$?(B") -+ (canna-register-1 "$BEPO?<-=qL>(B:") -+ (canna-register-2 "$BIJ;lL>(B")))) -+ -+(defvar canna-hinshi-alist -+ '(("$B?ML>(B" . "#JN") ("$BCOL>(B" . "#CN") ("$B8GM-L>;l(B" . "#KK") -+ ("$B0lHLL>;l(B" . "#T35") ("$BL>;l(B($BNc(B)$B6/NO$J(B" . "#T15") -+ ("$B%5JQL>;l(B" . "#T30") ("$B%5JQL>;l(B($BNc(B)$B0B?4$J(B" . "#T10") ("$BC14A;z(B" . "#KJ") -+ ("$BF0;l%+9TJQ3J3hMQ(B" . "#KX") ("$BF0;l%s%69TJQ3J3hMQ(B" . "#NZX") -+ ("$BF0;l%69TJQ3J3hMQ(B" . "#ZX") ("$BF0;l%59TJQ3J3hMQ(B" . "#SX") -+ ("$BF0;l%+9T8^CJ3hMQ(B" . "#K5") ("$BF0;l%,9T8^CJ3hMQ(B" . "#G5") -+ ("$BF0;l%59T8^CJ3hMQ(B" . "#S5") ("$BF0;l%?9T8^CJ3hMQ(B" . "#T5") -+ ("$BF0;l%J9T8^CJ3hMQ(B" . "#N5") ("$BF0;l%P9T8^CJ3hMQ(B" . "#B5") -+ ("$BF0;l%^9T8^CJ3hMQ(B" . "#M5") ("$BF0;l%i9T8^CJ3hMQ(B" . "#R5") -+ ("$BF0;l%o9T8^CJ3hMQ(B" . "#W5") ("$BF0;l>e2<0lCJ3hMQ(B" . "#KS") -+ ("$BF0;l%+9T8^CJO"MQL>;l(B" . "#K5r") ("$BF0;l%,9T8^CJO"MQL>;l(B" . "#G5r") -+ ("$BF0;l%59T8^CJO"MQL>;l(B" . "#S5r") ("$BF0;l%?9T8^CJO"MQL>;l(B" . "#T5r") -+ ("$BF0;l%J9T8^CJO"MQL>;l(B" . "#N5r") ("$BF0;l%P9T8^CJO"MQL>;l(B" . "#B5r") -+ ("$BF0;l%^9T8^CJO"MQL>;l(B" . "#M5r") ("$BF0;l%i9T8^CJO"MQL>;l(B" . "#R5r") -+ ("$BF0;l%o9T8^CJO"MQL>;l(B" . "#W5r") ("$BF0;l>e2<0lCJ8l44L>;l(B" . "#KSr") -+ ("$B7AMF;l(B" . "#KY") ("$B7AMF;l(B($BNc(B)$B$-$$$m$$(B" . "#KYT") -+ ("$B7AMFF0;l(B" . "#T05") -+ ("$B7AMFF0;l(B($BNc(B)$B4X?4$@(B" . "#T10") ("$B7AMFF0;l(B($BNc(B)$BB?92$F$@(B" . "#T13") -+ ("$B7AMFF0;l(B($BNc(B)$B0U30$@(B" . "#T15") ("$B7AMFF0;l(B($BNc(B)$BJXMx$@(B" . "#T18") -+ ("$BI{;l(B" . "#F14") ("$BI{;l(B($BNc(B)$B$U$C$/$i(B" . "#F04") -+ ("$BI{;l(B($BNc(B)$B$=$C$H(B" . "#F12") ("$BI{;l(B($BNc(B)$BFMA3(B" . "#F06") -+ ("$B?t;l(B" . "#NN") ("$B@\B3;l!&46F0;l(B" . "#CJ") ("$BO"BN;l(B" . "#RT"))) -+ -+(defvar canna-hinshi-menu -+ '("$B?ML>(B" "$BCOL>(B" ("$BCDBN!&2q<RL>(B" . "$B8GM-L>;l(B") ("$BL>;l(B" . MEISHI) -+ ("$B%5JQL>;l(B" . SAHEN-MEISHI) "$BC14A;z(B" ("$BF0;l(B" . DOUSHI) -+ ("$B7AMF;l(B" . KEIYOUSHI) ("$B7AMFF0;l(B" . KEIYOUDOUSHI) ("$BI{;l(B" . FUKUSHI) -+ "$B?t;l(B" "$B@\B3;l!&46F0;l(B" "$BO"BN;l(B" ("$B$=$NB>$N8GM-L>;l(B" . "$B8GM-L>;l(B")) -+ "Menu data for a hinshi (a part of speech) selection.") -+ -+(defun canna-hinshi-name (id &optional reverse) -+ (if reverse -+ (cdr (assoc id canna-hinshi-alist)) -+ (car (rassoc id canna-hinshi-alist)))) -+ -+(defmacro canna-backend-plist () -+ ''(egg-start-conversion canna-start-conversion -+ egg-get-bunsetsu-source canna-get-bunsetsu-source -+ egg-get-bunsetsu-converted canna-get-bunsetsu-converted -+ egg-get-source-language canna-get-source-language -+ egg-get-converted-language canna-get-converted-language -+ egg-list-candidates canna-list-candidates -+ egg-decide-candidate canna-decide-candidate -+ egg-special-candidate canna-special-candidate -+ egg-change-bunsetsu-length canna-change-bunsetsu-length -+ egg-end-conversion canna-end-conversion -+ egg-word-registration canna-word-registration)) -+ -+(defconst canna-backend-language-alist nil) -+ -+(defvar canna-backend-alist nil) -+ -+(defun canna-backend-func-name (name lang &optional env) -+ (intern (concat name "-" (symbol-name lang) -+ (and env "-") (and env (symbol-name env))))) -+ -+(defun canna-make-backend (lang env &optional source-lang converted-lang) -+ (let ((finalize (canna-backend-func-name "canna-finalize-backend" lang)) -+ (backend (canna-backend-func-name "canna-backend" lang env))) -+ (if (null (fboundp finalize)) -+ (progn -+ (fset finalize (function (lambda () (canna-finalize-backend)))) -+ (egg-set-finalize-backend (list finalize)))) -+ (if (null (get backend 'egg-start-conversion)) -+ (setplist backend (apply 'list -+ 'language lang -+ 'source-language (or source-lang lang) -+ 'converted-language (or converted-lang lang) -+ (canna-backend-plist)))) -+ backend)) -+ -+(defun canna-define-backend (lang env-name-list) -+ (mapcar (lambda (env) -+ (if (consp env) -+ (canna-define-backend lang env) -+ (canna-make-backend lang env))) -+ env-name-list)) -+ -+(defun canna-define-backend-alist (deflist) -+ (setq canna-backend-alist -+ (mapcar (lambda (slot) -+ (let* ((lang (car slot)) -+ (alt (cdr (assq lang canna-backend-language-alist)))) -+ (cons lang (canna-define-backend (or alt lang) (cdr slot))))) -+ deflist))) -+ -+(defcustom canna-backend-define-list -+ '((Japanese ((nil nil nil)) -+ ((Bushu Bushu Bushu)))) -+ "Alist of Japanese language and lists of the Canna backend suffixes." -+ :group 'canna -+ :set (lambda (sym value) -+ (set-default sym value) -+ (canna-define-backend-alist value)) -+ :type '(repeat -+ (cons -+ :tag "Language - Backend" -+ (choice :tag "Language" -+ (const Japanese) -+ (symbol :tag "Other")) -+ (repeat -+ (cons -+ :tag "Backend Sequece" -+ (cons :tag "First Conversion Stage" -+ (symbol :tag "Backend for Start Conversion") -+ (repeat :tag "Backends for Reconvert" -+ (symbol :tag "Backend"))) -+ (repeat -+ :tag "Following Conversion Stages" -+ (cons -+ :tag "N-th Stage" -+ (symbol :tag "Backend for This Stage") -+ (repeat :tag "Backends for Reconvert" -+ (symbol :tag "Backend"))))))))) -+ -+(defsubst canna-backend-get-language (backend) -+ (get backend 'language)) -+ -+(defsubst canna-backend-get-source-language (backend) -+ (get backend 'source-language)) -+ -+(defsubst canna-backend-get-converted-language (backend) -+ (get backend 'converted-language)) -+ -+(defvar canna-envspec-list nil) -+(defvar canna-current-envspec nil) -+ -+;; Should support multiple outstanding context -+;; <env> ::= [ <proc> <context> <backend> <convert-mode> <nostudy> <dic-list> ] -+(defvar canna-environments nil - "Environment for CANNA kana-kanji conversion") - --(defsubst cannaenv-get-proc (env) -- (aref env 0)) --(defsubst cannaenv-get-context (env) -- (aref env 1)) -+(defun cannaenv-create (proc context &optional backend mode nostudy) -+ (vector proc context backend mode nostudy (list nil))) - --;; <bunsetsu> ::= --;; [ <env> <converted> <bunsetsu-pos> --;; <source> <zenkouho-pos> <zenkouho> ] --(defsubst canna-make-bunsetsu (env converted bunsetsu-pos) -- (vector env converted bunsetsu-pos nil nil nil)) -+(defsubst cannaenv-get-proc (env) (aref env 0)) -+(defsubst cannaenv-get-context (env) (aref env 1)) -+(defsubst cannaenv-get-backend (env) (aref env 2)) -+(defsubst cannaenv-get-mode (env) (aref env 3)) -+(defsubst cannaenv-get-nostudy (env) (aref env 4)) -+(defsubst cannaenv-get-dic-list (env) (cdr (aref env 5))) - --(defsubst cannabunsetsu-get-env (b) -- (aref b 0)) --(defsubst cannabunsetsu-get-converted (b) -- (aref b 1)) --(defsubst cannabunsetsu-get-bunsetsu-pos (b) -- (aref b 2)) --(defsubst cannabunsetsu-get-source (b) -- (aref b 3)) --(defsubst cannabunsetsu-set-source (b s) -- (aset b 3 s)) --(defsubst cannabunsetsu-get-zenkouho-pos (b) -- (aref b 4)) --(defsubst cannabunsetsu-set-zenkouho-pos (b p) -- (aset b 4 p)) --(defsubst cannabunsetsu-get-zenkouho (b) -- (aref b 5)) --(defsubst cannabunsetsu-set-zenkouho (b z) -- (aset b 5 z)) -+(defsubst cannaenv-add-dic-list (env &rest dic) -+ (nconc (aref env 5) (list (apply 'vector dic)))) -+ -+;; <canna-bunsetsu> ::= -+;; [ <env> <converted> <bunsetsu-pos> <source> -+;; <zenkouho-pos> <zenkouho> <zenkouho-converted> ] -+(defsubst canna-make-bunsetsu (env converted bunsetsu-pos source) -+ (egg-bunsetsu-create -+ (cannaenv-get-backend env) -+ (vector env converted bunsetsu-pos source nil nil nil))) -+ -+(defsubst canna-bunsetsu-get-env (b) -+ (aref (egg-bunsetsu-get-info b) 0)) -+(defsubst canna-bunsetsu-get-converted (b) -+ (aref (egg-bunsetsu-get-info b) 1)) -+(defsubst canna-bunsetsu-get-bunsetsu-pos (b) -+ (aref (egg-bunsetsu-get-info b) 2)) -+(defsubst canna-bunsetsu-get-source (b) -+ (aref (egg-bunsetsu-get-info b) 3)) -+(defsubst canna-bunsetsu-set-source (b s) -+ (aset (egg-bunsetsu-get-info b) 3 s)) -+(defsubst canna-bunsetsu-get-zenkouho-pos (b) -+ (aref (egg-bunsetsu-get-info b) 4)) -+(defsubst canna-bunsetsu-set-zenkouho-pos (b p) -+ (aset (egg-bunsetsu-get-info b) 4 p)) -+(defsubst canna-bunsetsu-get-zenkouho (b) -+ (aref (egg-bunsetsu-get-info b) 5)) -+(defsubst canna-bunsetsu-set-zenkouho (b z) -+ (aset (egg-bunsetsu-get-info b) 5 z)) -+(defsubst canna-bunsetsu-get-zenkouho-converted (b) -+ (aref (egg-bunsetsu-get-info b) 6)) -+(defsubst canna-bunsetsu-set-zenkouho-converted (b zc) -+ (aset (egg-bunsetsu-get-info b) 6 zc)) - - (defun canna-get-bunsetsu-source (b) -- (let ((s (cannabunsetsu-get-source b))) -+ (let ((s (canna-bunsetsu-get-source b))) - (or s -- (let* ((env (cannabunsetsu-get-env b)) -- (bp (cannabunsetsu-get-bunsetsu-pos b)) -+ (let* ((env (canna-bunsetsu-get-env b)) -+ (bp (canna-bunsetsu-get-bunsetsu-pos b)) - (s (cannarpc-get-bunsetsu-source env bp))) -- (cannabunsetsu-set-source b s))))) -+ (canna-bunsetsu-set-source b s))))) -+(defun canna-get-bunsetsu-converted (b) (canna-bunsetsu-get-converted b)) -+(defun canna-get-source-language (b) 'Japanese) -+(defun canna-get-converted-language (b) 'Japanese) - --(defun canna-get-bunsetsu-converted (b) -- (cannabunsetsu-get-converted b)) -+(defun canna-envspec-create (env-name convert-mode nostudy) -+ (vector (and env-name (setq env-name (intern env-name))) -+ (canna-make-backend egg-language env-name) -+ convert-mode nostudy (list nil))) - --(defconst canna-dictionary-specification -- '("iroha" -- "fuzokugo" -- "hojomwd" -- "hojoswd" -- "bushu" -- "user" -- ) -- "Dictionary specification of CANNA.") -+(defsubst canna-envspec-env-type (spec) (aref spec 0)) -+(defsubst canna-envspec-backend (spec) (aref spec 1)) -+(defsubst canna-envspec-mode (spec) (aref spec 2)) -+(defsubst canna-envspec-nostudy (spec) (aref spec 3)) -+(defsubst canna-envspec-dic-list (spec) (cdr (aref spec 4))) -+ -+(defsubst canna-envspec-add-dic-list (spec &rest dic) -+ (nconc (aref spec 4) (list (apply 'vector dic)))) -+ -+(defmacro canna-arg-type-error (func) -+ `(egg-error ,(format "%s: Wrong type argument" func))) -+ -+(defun canna-define-environment (&optional env-name convert-mode nostudy) -+ "Define a Canna environment. ENV-NAME specifies suffix of the Canna -+environment name. CONVERT-MODE specifies including hiragana or -+katakana to candidates list. NOSTUDY specifies not study." -+ (if (and env-name (null (stringp env-name))) -+ (canna-arg-type-error canna-define-environment)) -+ (setq canna-current-envspec (canna-envspec-create env-name -+ convert-mode nostudy) -+ canna-envspec-list (nconc canna-envspec-list -+ (list canna-current-envspec)))) -+ -+(defun canna-add-dict (dict dict-rw) -+ (canna-envspec-add-dic-list canna-current-envspec dict dict-rw)) -+ -+(defun canna-comm-sentinel (proc reason) ; assume it is close -+ (let ((inhibit-quit t)) -+ (kill-buffer (process-buffer proc)) -+ ;; delete env from the list. -+ (setq canna-environments -+ (delq nil (mapcar (lambda (env) -+ (if (null (eq (cannaenv-get-proc env) proc)) -+ env)) -+ canna-environments))))) -+ -+(defun canna-open (hostname-list) -+ "Establish the connection to CANNA server. Return environment object." -+ (let* ((save-inhibit-quit inhibit-quit) -+ (inhibit-quit t) -+ (proc-name "CANNA") -+ (msg-form "Canna: connecting to %S at %s...") -+ (user-name (or canna-user-name (user-login-name))) -+ (id (shell-command-to-string "id")) -+ (group (or canna-group-name -+ (if (string-match "gid=[0-9]+(\\([^)]+\\))" id) -+ (match-string 1 id) -+ "user"))) -+ buf hostname port proc result msg) -+ (unwind-protect -+ (progn -+ (setq buf (generate-new-buffer " *CANNA*")) -+ (save-excursion -+ (set-buffer buf) -+ (erase-buffer) -+ (buffer-disable-undo) -+ (set-buffer-multibyte nil) -+ (setq egg-fixed-euc 'fixed-euc-jp)) -+ (or (consp hostname-list) -+ (setq hostname-list (list hostname-list))) -+ (while (and hostname-list (null proc)) -+ (setq hostname (or (car hostname-list) "") -+ hostname-list (cdr hostname-list)) -+ (if (null (string-match ":" hostname)) -+ (setq port canna-server-port) -+ (setq port (substring hostname (match-end 0)) -+ hostname (substring hostname 0 (match-beginning 0)))) -+ (if (and (stringp port) (string-match "^[0-9]+$" port)) -+ (setq port (string-to-int port))) -+ (and (equal hostname "") -+ (setq hostname (or (getenv "CANNAHOST") "localhost"))) -+ (let ((inhibit-quit save-inhibit-quit)) -+ (if (and msg -+ (null (y-or-n-p (format "%s failed. Try to %s? " -+ msg hostname)))) -+ (egg-error "abort connect"))) -+ (setq msg (format "Canna: connecting to %s..." hostname)) -+ (message "%s" msg) -+ (let ((inhibit-quit save-inhibit-quit)) -+ (condition-case nil -+ (setq proc (open-network-stream proc-name buf hostname port)) -+ ((error quit)))) -+ (when proc -+ (process-kill-without-query proc) -+ (set-process-coding-system proc 'binary 'binary) -+ (set-process-sentinel proc 'canna-comm-sentinel) -+ (set-marker-insertion-type (process-mark proc) t) -+ (setq result (cannarpc-open proc user-name)) ;; result is context -+ (if (= result -1) -+ (progn -+ (delete-process proc) -+ (setq proc nil)) -+ (cannarpc-notice-group-name proc result group) -+ (cannarpc-set-app-name proc result "EGG4")))) -+ (cons proc result)) -+ (if proc -+ (message (concat msg "done")) -+ (if buf (kill-buffer buf)) -+ (egg-error 'canna-connect-error))))) - - (defun canna-filename (p) - "" - (cond ((consp p) (concat (car p) "/" (user-login-name))) - (t p))) - --(defun canna-get-environment () -+(defun canna-search-environment (backend) -+ (let ((env-list canna-environments) -+ env) -+ (while (and (null env) env-list) -+ (setq env (and (eq (cannaenv-get-backend (car env-list)) backend) -+ (car env-list)) -+ env-list (cdr env-list))) -+ env)) -+ -+(defun canna-get-environment (backend) - "Return the backend of CANNA environment." -- (if canna-environment -- canna-environment -- (let* ((env (canna-open canna-hostname)) -- (l canna-dictionary-specification) -- dict-list) -- (while l -- (let ((dic (car l)) -- result) -- (setq result -- (canna-open-dictionary env (canna-filename dic))) -- (if (= result 255) -- (error "Damedamedame") ; XXX -- (setq l (cdr l))))) -- (setq canna-environment env)))) -+ (let ((env (canna-search-environment backend)) -+ proc context error) -+ (or env -+ (unwind-protect -+ (let* ((language (canna-backend-get-language backend)) -+ specs) -+ (setq proc (canna-open canna-hostname) -+ context (cdr proc) -+ proc (car proc) -+ canna-envspec-list nil) -+ (condition-case err -+ (egg-load-startup-file 'canna language) -+ (egg-error -+ (setq error err) -+ (signal (car error) (cdr error)))) -+ (setq specs canna-envspec-list) -+ (while specs -+ (canna-create-environment proc context (car specs)) -+ (setq context nil) -+ (setq specs (cdr specs))) -+ (setq env (canna-search-environment backend))) -+ (when (and proc (null env)) -+ (cannarpc-close proc) -+ (if error -+ (signal (car error) (cdr error)) -+ (egg-error 'canna-fail-make-env))) -+ )))) - --(defun canna-open-dictionary (env name) -+(defun canna-create-environment (proc context spec) -+ (let* ((save-inhibit-quit inhibit-quit) -+ (inhibit-quit t) -+ (backend (canna-envspec-backend spec)) -+ (convert-mode (canna-envspec-mode spec)) -+ (nostudy (canna-envspec-nostudy spec)) -+ (dic-list (canna-envspec-dic-list spec)) -+ env) -+ (condition-case err -+ (progn -+ (if (not context) -+ (setq context (cannarpc-create-context proc))) -+ (if (< context 0) -+ (egg-error "%s" (cannarpc-get-error-message (- context)))) -+ (setq env (cannaenv-create proc context backend convert-mode nostudy)) -+ (let ((inhibit-quit save-inhibit-quit)) -+ (while dic-list -+ (canna-set-dictionary env (car dic-list)) -+ (setq dic-list (cdr dic-list)))) -+ (setq canna-environments (nconc canna-environments (list env)))) -+ ((egg-error quit) -+ (if (eq (car err) 'egg-error) -+ (message "%s" (nth 1 err))) -+ (if env -+ (progn -+ (cannarpc-close-context env) -+ (setq canna-environments (delq env canna-environments)))) -+ (if (eq (car err) 'quit) -+ (signal 'quit (cdr err))))))) -+ -+(defun canna-set-dictionary (env dic-spec) -+ (let ((dname (aref dic-spec 0)) -+ (drw (aref dic-spec 1)) -+ did result) -+ (if (= 0 (canna-open-dictionary env dname drw)) -+ (cannaenv-add-dic-list env dname drw)))) -+ -+(defun canna-open-dictionary (env name rw) - (let ((trying t) - ret) - (while trying - (setq ret (cannarpc-open-dictionary env name 0)) ; XXX MODE=0 - (if (= ret 0) - (setq trying nil) -- (message "$B<-=q%U%!%$%k(B(%s)$B$,$"$j$^$;$s(B" name) -- (setq ret (- ret)) ; Get error code. -+ (message (egg-get-message 'canna-dict-missing-1) name) -+ (if rw - (if (and (y-or-n-p -- (format "$B<-=q%U%!%$%k(B(%s)$B$,$"$j$^$;$s!#:n$j$^$9$+(B? " -- name)) -+ (format (egg-get-message 'canna-dict-missing-2) name)) - (= (cannarpc-make-dictionary env name) 0)) -- (message "$B<-=q%U%!%$%k(B(%s)$B$r:n$j$^$7$?(B" name) -- (error "Fatal")))) -+ (message (egg-get-message 'canna-dict-created) name) -+ (message "%s" (cannarpc-get-error-message (- ret)))) -+ (setq trying nil)))) - ret)) - -+(defun canna-save-dictionaries (env) -+ (let ((dic-list (canna-list-writable-dictionaries-byname env)) -+ dic) -+ (while dic-list -+ (setq dic (car dic-list) -+ dic-list (cdr dic-list)) -+ (cannarpc-save-dictionary env dic)))) -+ - (defun canna-init () - ) - --(defun canna-start-conversion (yomi lang) -+(defun canna-set-converted-yomi (bunsetsu-pos bunsetsu-list) -+ (let ((bl bunsetsu-list) -+ (i bunsetsu-pos) -+ b) -+ (while bl -+ (setq b (car bl)) -+ (canna-bunsetsu-set-source b (cannarpc-get-bunsetsu-source env i)) -+ (setq i (1+ i) -+ bl (cdr bl))) -+ bunsetsu-list)) -+ -+(defun canna-start-conversion (backend yomi &optional context) - "Convert YOMI string to kanji, and enter conversion mode. - Return the list of bunsetsu." -- (if (eq lang 'Japanese) -- (let ((env (canna-get-environment))) -- (cannarpc-begin-conversion env yomi)) -- (signal 'lang-not-supported))) -+ (let* ((env (canna-get-environment backend)) -+ (bunsetsu-list (cannarpc-begin-conversion env yomi))) -+ (if (numberp bunsetsu-list) ; XXX error $B$N=hM}E,Ev(B -+ (progn -+ (if (= -1 (cannarpc-cancel-conversion env)) -+ (progn -+ (setq env (canna-get-environment backend)) -+ (canna-finalize-backend))) -+ (setq bunsetsu-list (cannarpc-begin-conversion env yomi)))) -+ (canna-set-converted-yomi 0 bunsetsu-list))) - - (defun canna-end-conversion (bunsetsu-list abort) -- (let* ((env (cannabunsetsu-get-env (car bunsetsu-list))) -+ (let* ((env (canna-bunsetsu-get-env (car bunsetsu-list))) - (l bunsetsu-list) - (len (length bunsetsu-list)) - (zenkouho-pos-vector (make-vector (* 2 len) 0)) - (i 0) -- (mode 1) ;XXX MODE=1 attru? -+ (mode (if (cannaenv-get-nostudy env) 0 1)) ; MODE=1 $B3X=,(B 0 $B$7$J$$(B - bunsetsu zenkouho-pos) - (if abort - (setq mode 0)) - (while l - (setq bunsetsu (car l)) - (setq l (cdr l)) -- (setq zenkouho-pos (cannabunsetsu-get-zenkouho-pos bunsetsu)) -+ (setq zenkouho-pos (canna-bunsetsu-get-zenkouho-pos bunsetsu)) - (if (null zenkouho-pos) - () ; XXX: NIL--> 0 atteru??? - (aset zenkouho-pos-vector i 0) ; XXX Don't support >=256 - (aset zenkouho-pos-vector (1+ i) zenkouho-pos)) - (setq i (+ i 2))) -- (cannarpc-end-conversion env len zenkouho-pos-vector 0))) -+ (cannarpc-end-conversion env len zenkouho-pos-vector mode))) - --(defun canna-list-candidates (bunsetsu prev-bunsetsu) -- (let* ((env (cannabunsetsu-get-env bunsetsu)) -- (bunsetsu-pos (cannabunsetsu-get-bunsetsu-pos bunsetsu)) -- (z (cannarpc-get-bunsetsu-candidates env bunsetsu-pos))) -- (cannabunsetsu-set-zenkouho bunsetsu z) -- (cannabunsetsu-set-zenkouho-pos bunsetsu 0) -- 0)) -+(defun canna-list-candidates (bunsetsu prev-b next-b major) -+ (setq bunsetsu (car bunsetsu)) -+ (if (canna-bunsetsu-get-zenkouho bunsetsu) -+ (cons (canna-bunsetsu-get-zenkouho-pos bunsetsu) -+ (canna-bunsetsu-get-zenkouho-converted bunsetsu)) -+ (let* ((env (canna-bunsetsu-get-env bunsetsu)) -+ (yomi (canna-get-bunsetsu-source bunsetsu)) -+ (bunsetsu-pos (canna-bunsetsu-get-bunsetsu-pos bunsetsu)) -+ (z (cannarpc-get-bunsetsu-candidates env bunsetsu-pos yomi))) -+ (canna-bunsetsu-set-zenkouho bunsetsu z) -+ (cons (canna-bunsetsu-set-zenkouho-pos bunsetsu 0) -+ (canna-bunsetsu-set-zenkouho-converted -+ bunsetsu -+ (mapcar 'canna-bunsetsu-get-converted z)))))) - -+;;; XXX not use ? - (defun canna-get-number-of-candidates (bunsetsu) -- (let ((l (cannabunsetsu-get-zenkouho bunsetsu))) -+ (let ((l (canna-bunsetsu-get-zenkouho bunsetsu))) - (if l - (length l) - nil))) - --(defun canna-decide-candidate (bunsetsu candidate-pos) -- (let* ((candidate-list (cannabunsetsu-get-zenkouho bunsetsu)) -- (candidate (nth candidate-pos candidate-list))) -- (cannabunsetsu-set-zenkouho candidate candidate-list) -- (cannabunsetsu-set-zenkouho-pos candidate candidate-pos) -- candidate)) -+(defun canna-decide-candidate (bunsetsu pos prev-b next-b) -+ (let* ((head (car bunsetsu)) -+ (candidate-list (canna-bunsetsu-get-zenkouho head)) -+ (candidate (nth pos candidate-list))) -+ (canna-bunsetsu-set-zenkouho candidate candidate-list) -+ (canna-bunsetsu-set-zenkouho-pos candidate pos) -+ (canna-bunsetsu-set-zenkouho-converted -+ candidate (canna-bunsetsu-get-zenkouho-converted head)) -+ (list (list candidate)))) - -+(defun canna-special-candidate (bunsetsu prev-b next-b major type) -+ (let* ((head (car bunsetsu)) -+ (env (canna-bunsetsu-get-env head)) -+ (backend (egg-bunsetsu-get-backend head)) -+ (lang (get backend 'language)) -+ source converted zenkouho-list kouho-list pos) -+ (when (and (eq lang (get backend 'source-language)) -+ (eq lang (get backend 'converted-language))) -+ (cond ((eq lang 'Japanese) -+ (setq source (canna-get-bunsetsu-source head)) -+ (cond ((eq type 'egg-hiragana) -+ (setq converted source)) -+ ((eq type 'egg-katakana) -+ (setq converted (japanese-katakana source)))) -+ (setq zenkouho-list -+ (cdr (canna-list-candidates bunsetsu prev-b next-b major))) -+ (setq pos -+ (when (setq kouho-list (member converted zenkouho-list)) -+ (- (length zenkouho-list) (length kouho-list)))))) -+ (when pos -+ (canna-decide-candidate bunsetsu pos prev-b next-b))))) -+ -+;;; XXX not used ? - (defun canna-get-current-candidate-number (bunsetsu) -- (cannabunsetsu-get-zenkouho-pos bunsetsu)) -+ (canna-bunsetsu-get-zenkouho-pos bunsetsu)) - -+;;; XXX not used ? - (defun canna-get-all-candidates (bunsetsu) -- (let* ((l (cannabunsetsu-get-zenkouho bunsetsu)) -+ (let* ((l (canna-bunsetsu-get-zenkouho bunsetsu)) - (result (cons nil nil)) - (r result)) - (catch 'break - (while t - (let ((candidate (car l))) -- (setcar r (cannabunsetsu-get-converted candidate)) -+ (setcar r (canna-bunsetsu-get-converted candidate)) - (if (null (setq l (cdr l))) - (throw 'break nil) - (setq r (setcdr r (cons nil nil))))))) - result)) - --;;;;;;;;;;;;;;;;;;;;;;; MADAMADA zenzendame, just copy from SJ3 --(defun canna-change-bunsetsu-length (b0 b1 b2 len) -- (let ((yomi (concat -- (cannabunsetsu-get-source b1) -- (if b2 (cannabunsetsu-get-source b2)))) -- (env (cannabunsetsu-get-env b1)) -- yomi1 yomi2 -- bunsetsu1 bunsetsu2) -- (setq yomi1 (substring yomi 0 len) -- yomi2 (substring yomi len)) -- (setq bunsetsu1 -- (cannarpc-tanbunsetsu-conversion env yomi1)) -- ;; Only set once (memory original length of the bunsetsu). -- (cannabunsetsu-set-kugiri-changed bunsetsu1 -- (or (cannabunsetsu-get-kugiri-changed b1) -- (length (cannabunsetsu-get-source b1)))) -- (if (< 0 (length yomi2)) -- (setq bunsetsu2 (cannarpc-tanbunsetsu-conversion env yomi2)) -- (setq bunsetsu2 nil)) -- (if bunsetsu2 -- (list bunsetsu1 bunsetsu2) -- (list bunsetsu1)))) -+(defun canna-change-bunsetsu-length (bunsetsu prev-b next-b len major) -+ (let* ((env (canna-bunsetsu-get-env (car bunsetsu))) -+ (yomi (canna-get-bunsetsu-source (car bunsetsu))) -+ (yomi-length (cond ((< (length yomi) len) -1) -+ ((> (length yomi) len) -2) -+ (t nil))) -+ (bunsetsu-pos (canna-bunsetsu-get-bunsetsu-pos (car bunsetsu))) -+ new) -+ (if yomi-length -+ (setq new (canna-set-converted-yomi -+ bunsetsu-pos -+ (cannarpc-set-kugiri-changed env yomi-length bunsetsu-pos))) -+ (setq new bunsetsu)) -+ (list (list (car new)) prev-b (cdr new)))) - --;;;;;;;;;;;;;; MADAMADA --(defun canna-fini () --) -+(defun canna-finalize-backend (&optional action) -+ (let* ((save-inhibit-quit inhibit-quit) -+ (inhibit-quit t) -+ (env-list canna-environments) -+ env proc-list saved) -+ (while env-list -+ (setq env (car env-list) -+ env-list (cdr env-list)) -+ (condition-case err -+ (progn -+ (unless (memq (cannaenv-get-proc env) proc-list) -+ (setq proc-list (cons (cannaenv-get-proc env) proc-list))) -+ (unless (eq action 'disconnect-only) -+ (unless saved -+ (setq saved t) -+ (message (egg-get-message 'canna-dict-saving) "Canna")) -+ (let ((inhibit-quit save-inhibit-quit)) -+ (canna-save-dictionaries env))) -+ (unless (eq action 'save-only) -+ (cannarpc-close-context env))) -+ ((error quit) -+ (message "signal %S occured when dictionary saving" err)))) -+ (if saved -+ (message (egg-get-message 'canna-dict-saved) "Canna")) -+ (unless (eq action 'save-only) -+ (while proc-list -+ (if (and (car proc-list) -+ (eq (process-status (car proc-list)) 'open)) -+ (cannarpc-close (car proc-list))) -+ (setq proc-list (cdr proc-list))))) -+ (setq canna-environments nil)) -+ -+;;; word registration -+ -+(defun canna-list-writable-dictionaries-byname (env) -+ (let ((dic-list (cannaenv-get-dic-list env))) -+ (delq nil -+ (mapcar (lambda (dic) -+ (let ((dname (aref dic 0)) -+ (drw (aref dic 1))) -+ (and drw dname))) -+ dic-list)))) -+ -+(defun canna-dictionary-select (env) -+ (let ((dic-list (canna-list-writable-dictionaries-byname env))) -+ (if (= 1 (length dic-list)) -+ (car dic-list) -+ (menudiag-select (list 'menu -+ (egg-get-message 'canna-register-1) -+ dic-list))))) -+ -+(defun canna-hinshi-MEISHI (kanji yomi) -+ (if (y-or-n-p (concat "$B!V(B" kanji "$B$J!W$O@5$7$$$G$9$+!#(B")) "#T15" "#T35")) -+ -+(defun canna-hinshi-SAHEN-MEISHI (kanji yomi) -+ (if (y-or-n-p (concat "$B!V(B" kanji "$B$J!W$O@5$7$$$G$9$+!#(B")) "#T10" "#T30")) -+ -+(defmacro canna-hinshi-DOUSHI-check-gobi () -+ '(progn -+ (setq i 0) -+ (while (> 9 i) -+ (if (string-match (concat (substring gobi i (1+ i)) "$") kanji) -+ (progn -+ (setq renyou (substring re-gobi i (1+ i))) -+ (setq mizen (substring mi-gobi i (1+ i))) -+ (setq kanji-gobi (substring kanji (match-beginning 0))) -+ (setq kanji-gokan (substring kanji 0 (match-beginning 0))) -+ (setq ret (nth i hinshi)) -+ (setq i 9))) -+ (setq i (1+ i))) -+ (setq i 0) -+ (while (> 9 i) -+ (if (string-match (concat (substring gobi i (1+ i)) "$") yomi) -+ (progn -+ (setq yomi-gobi (substring yomi (match-beginning 0))) -+ (setq yomi-gokan (substring yomi 0 (match-beginning 0))) -+ (setq i 9))) -+ (setq i (1+ i))))) -+ -+(defun canna-hinshi-DOUSHI (kanji yomi) -+ (let ((gobi "$B$/$0$9$D$L$V$`$k$&(B") -+ (re-gobi "$B$-$.$7$A$K$S$_$j$$(B") -+ (mi-gobi "$B$+$,$5$?$J$P$^$i$o(B") -+ (hinshi (list "#K5" "#G5" "#S5" "#T5" "#N5" "#B5" "#M5" "#R5" "#W5")) -+ kanji-gokan yomi-gokan kanji-gobi yomi-gobi mizen renyou -+ i ret1 ret2 ret) -+ (canna-hinshi-DOUSHI-check-gobi) -+ (if (not (and (> (length kanji) 1) (> (length yomi) 1) -+ (and kanji-gobi yomi-gobi (equal kanji-gobi yomi-gobi)))) -+ (if (and kanji-gobi yomi-gobi) -+ (egg-error "$BFI$_$H8uJd$N3hMQ$,0c$$$^$9!#F~NO$7$J$*$7$F$/$@$5$$!#(B") -+ (egg-error "$BFI$_$H8uJd$r=*;_7A$GF~NO$7$F$/$@$5$$!#(B"))) -+ (cond ((and (> (length kanji) 2) (> (length yomi) 2) -+ (string-match "$B$/$k(B$" kanji) (string-match "$B$/$k(B$" yomi)) -+ (setq ret "#KX") -+ (setq kanji-gokan (substring kanji 0 (- (length kanji) 2))) -+ (setq yomi-gokan (substring yomi 0 (- (length yomi) 2)))) -+ ((and (> (length kanji) 3) (> (length yomi) 3) -+ (string-match "$B$s$:$k(B$" kanji) (string-match "$B$s$:$k(B$" yomi)) -+ (setq ret "#NZX") -+ (setq kanji-gokan (substring kanji 0 (- (length kanji) 3))) -+ (setq yomi-gokan (substring yomi 0 (- (length yomi) 3)))) -+ ((and (> (length kanji) 2) (> (length yomi) 2) -+ (string-match "$B$:$k(B$" kanji) (string-match "$B$:$k(B$" yomi)) -+ (setq ret "#ZX") -+ (setq kanji-gokan (substring kanji 0 (- (length kanji) 2))) -+ (setq yomi-gokan (substring yomi 0 (- (length yomi) 2)))) -+ ((and (> (length kanji) 2) (> (length yomi) 2) -+ (string-match "$B$9$k(B$" kanji) (string-match "$B$9$k(B$" yomi)) -+ (setq ret "#SX") -+ (setq kanji-gokan (substring kanji 0 (- (length kanji) 2))) -+ (setq yomi-gokan (substring yomi 0 (- (length yomi) 2))))) -+ (if (not (string-match "5$" ret)) -+ (if (y-or-n-p (concat "$B!X(B" kanji "$B!Y$r(B (" (canna-hinshi-name ret) -+ ") $B$H$7$FEPO?$7$^$9$+(B? ")) -+ (setq ret (list kanji-gokan yomi-gokan ret)) -+ (setq ret "#R5") -+ (setq kanji-gokan (substring kanji 0 (- (length kanji) 1))) -+ (setq yomi-gokan (substring yomi 0 (- (length yomi) 1))))) -+ (if (listp ret) -+ ret -+ (if (y-or-n-p "$B$5$i$K:Y$+$$IJ;lJ,$1$N$?$a$N<ALd$r$7$F$bNI$$$G$9$+(B? ") -+ (progn -+ (setq ret1 (y-or-n-p (concat "$B!V(B" kanji-gokan mizen -+ "$B$J$$!W$O@5$7$$$G$9$+!#(B"))) -+ (setq i 0) -+ (if (eq "#R5" ret) -+ (while (> 9 i) -+ (if (string-match (concat (substring re-gobi i (1+ i)) "$") -+ kanji-gokan) -+ (progn (setq renyou nil) -+ (setq i 9))) -+ (setq i (1+ i)))) -+ (setq ret2 (y-or-n-p (concat "$B!V(B" kanji-gokan renyou -+ "$B$,$$$$!W$O@5$7$$$G$9$+!#(B"))) -+ (setq ret (if ret1 (if ret2 (concat ret "r") ret) -+ (if ret2 "#KSr" "#KS"))))) -+ (list kanji-gokan yomi-gokan ret)))) -+ -+(defun canna-hinshi-KEIYOUSHI (kanji yomi) -+ (let (ret) -+ (if (not (and (> (length kanji) 1) (> (length yomi) 1) -+ (string-match "$B$$(B$" yomi) (string-match "$B$$(B$" kanji))) -+ (egg-error "$BFI$_$H8uJd$r(B $B=*;_7A$GF~NO$7$F$/$@$5$$!#Nc(B) $BAa$$(B")) -+ (setq kanji (substring kanji 0 (1- (length kanji)))) -+ (setq yomi (substring yomi 0 (1- (length yomi)))) -+ (setq ret -+ (if (y-or-n-p "$B$5$i$K:Y$+$$IJ;lJ,$1$N$?$a$N<ALd$r$7$F$bNI$$$G$9$+(B? ") -+ (if (y-or-n-p (concat "$B!V(B" kanji "$B!W$O@5$7$$$G$9$+!#(B")) -+ "#KYT" "#KY") -+ "#KY")) -+ (list kanji yomi ret))) -+ -+(defun canna-hinshi-KEIYOUDOUSHI (kanji yomi) -+ (let (ret1 ret2 ret) -+ (if (not (and (> (length kanji) 1) (> (length yomi) 1) -+ (string-match "$B$@(B$" yomi) (string-match "$B$@(B$" kanji))) -+ (egg-error "$BFI$_$H8uJd$r(B $B=*;_7A$GF~NO$7$F$/$@$5$$!#Nc(B) $B@E$+$@(B")) -+ (setq kanji (substring kanji 0 (1- (length kanji)))) -+ (setq yomi (substring yomi 0 (1- (length yomi)))) -+ (setq ret -+ (if (y-or-n-p "$B$5$i$K:Y$+$$IJ;lJ,$1$N$?$a$N<ALd$r$7$F$bNI$$$G$9$+(B? ") -+ (progn -+ (setq ret1 (y-or-n-p -+ (concat "$B!V(B" kanji "$B$9$k!W$O@5$7$$$G$9$+!#(B"))) -+ (setq ret2 (y-or-n-p -+ (concat "$B!V(B" kanji "$B$,$"$k!W$O@5$7$$$G$9$+!#(B"))) -+ (if ret1 (if ret2 "#T10" "#T13") (if ret2 "#T15" "#T18"))) -+ "#T05")) -+ (list kanji yomi ret))) -+ -+(defun canna-hinshi-FUKUSHI (kanji yomi) -+ (let (ret1 ret2) -+ (if (y-or-n-p "$B$5$i$K:Y$+$$IJ;lJ,$1$N$?$a$N<ALd$r$7$F$bNI$$$G$9$+(B? ") -+ (progn -+ (setq ret1 (y-or-n-p (concat "$B!V(B" kanji "$B$9$k!W$O@5$7$$$G$9$+!#(B"))) -+ (setq ret2 (y-or-n-p (concat "$B!V(B" kanji "$B$H!W$O@5$7$$$G$9$+!#(B"))) -+ (if ret1 (if ret2 "#F04" "#F12") (if ret2 "#F06" "#F14"))) -+ "#F14"))) -+ -+(defun canna-hinshi-select (kanji yomi) -+ (let ((key (menudiag-select (list 'menu -+ (egg-get-message 'canna-register-2) -+ canna-hinshi-menu)))) -+ (cond ((symbolp key) (funcall -+ (intern (concat "canna-hinshi-" (symbol-name key))) -+ kanji yomi)) -+ ((stringp key) (cdr (assoc key canna-hinshi-alist)))))) -+ -+(defun canna-word-registration (backend kanji yomi) -+ "Register a word KANJI with a pronunciation YOMI." -+ (if (or (null (eq (egg-get-language 0 kanji) -+ (canna-get-converted-language backend))) -+ (next-single-property-change 0 'egg-lang kanji) -+ (null (eq (egg-get-language 0 yomi) -+ (canna-get-source-language backend))) -+ (next-single-property-change 0 'egg-lang yomi)) -+ (egg-error "word registration: invalid character") -+ (let* ((env (canna-get-environment backend)) -+ (dic (canna-dictionary-select env)) -+ (hinshi-id (canna-hinshi-select kanji yomi)) -+ result) -+ (if (listp hinshi-id) -+ (progn (setq kanji (car hinshi-id)) -+ (setq yomi (nth 1 hinshi-id)) -+ (setq hinshi-id (nth 2 hinshi-id)))) -+ (setq result (cannarpc-add-word env dic yomi kanji hinshi-id)) -+ (if (>= result 0) -+ (progn -+ (cannarpc-save-dictionary env dic) -+ (list (canna-hinshi-name hinshi-id) dic)) -+ (egg-error (cannarpc-get-error-message (- result))))))) -+ -+;;; word delete registration -+ -+(defun canna-word-delete-regist (backend yomi) -+ "Delete a word KANJI from dictionary." -+ (if (= (length yomi) 0) -+ (egg-error "Canna word delete registration: null string")) -+ (let* ((env (canna-get-environment backend)) -+ (dic (canna-dictionary-select env)) -+ proc context envd bunsetsu bunsetsu-pos z zpos kouho-list hinshi i -+ kanji lex result) -+ (setq proc (cannaenv-get-proc env)) -+ (setq context (cannarpc-create-context proc)) -+ (setq envd (cannaenv-create proc context -+ 'canna-backend-Japanese-tmp-delete-regist -+ 1 t)) -+ (canna-set-dictionary envd (vector dic t)) -+ (canna-set-dictionary envd (vector "fuzokugo" nil)) -+ (setq bunsetsu (car (cannarpc-begin-conversion envd yomi))) -+ (setq bunsetsu-pos (canna-bunsetsu-get-bunsetsu-pos bunsetsu)) -+ (setq z (cannarpc-get-bunsetsu-candidates envd bunsetsu-pos yomi)) -+ (canna-bunsetsu-set-zenkouho bunsetsu z) -+ (canna-bunsetsu-set-zenkouho-pos bunsetsu 0) -+ (setq kouho-list -+ (canna-bunsetsu-set-zenkouho-converted -+ bunsetsu -+ (mapcar 'canna-bunsetsu-get-converted z))) -+ (setq yomi (car (last kouho-list))) -+ (setq kouho-list (cdr (reverse kouho-list))) -+ (setq kouho-list (reverse kouho-list)) -+ (setq i 0) -+ (setq kouho-list (mapcar '(lambda (k) -+ (prog1 -+ (cons k i) -+ (setq i (1+ i)))) -+ kouho-list)) -+ (let ((hiragana (assoc yomi kouho-list)) -+ hinshi) -+ (if hiragana -+ (setq hinshi (cannarpc-get-hinshi envd bunsetsu-pos (cdr hiragana)))) -+ (if (stringp hinshi) -+ (if (equal "#T35" hinshi) -+ (setq kouho-list (delete hiragana kouho-list))) -+ (setq kouho-list (delete hiragana kouho-list)))) -+ (cond -+ ((null kouho-list) -+ (cannarpc-close-context envd) -+ (egg-error "$BEPO?$5$l$F$$$^$;$s!#(B")) -+ ((eq 1 (length kouho-list)) -+ (setq zpos 0) -+ (setq kanji (car (car kouho-list)))) -+ (t -+ (setq kanji (menudiag-select (list 'menu "$B:o=|(B:" kouho-list) nil nil t)) -+ (setq zpos (cdr (car kanji))) -+ (setq kanji (car (car kanji))))) -+ (setq hinshi (cannarpc-get-hinshi envd bunsetsu-pos zpos)) -+ (setq lex (cannarpc-get-lex envd bunsetsu-pos zpos)) -+ (cannarpc-cancel-conversion envd) -+ (if (string-match "#[^#]+" hinshi) -+ (setq hinshi (substring hinshi 0 (match-end 0))) -+ (egg-error "$BIJ;l>pJs$,<hF@$G$-$^$;$s!#(B")) -+ (setq kanji (substring kanji 0 (nth 1 (car lex)))) -+ (setq yomi (substring yomi 0 (car (car lex)))) -+ (if (y-or-n-p (concat "$B!X(B" kanji "$B!Y(B(" yomi ": " -+ (canna-hinshi-name hinshi) ")$B$r(B " -+ dic " $B$+$i:o=|$7$^$9$+(B? ")) -+ (setq result -+ (cannarpc-delete-word envd dic yomi kanji hinshi)) -+ (setq result -1)) -+ (if (>= result 0) -+ (progn -+ (cannarpc-save-dictionary envd dic) -+ (cannarpc-close-context envd) -+ (list kanji yomi (canna-hinshi-name hinshi) dic)) -+ (cannarpc-close-context envd) -+ (egg-error "$B:o=|$5$l$^$;$s$G$7$?!#(B")) -+ )) - - ;;; setup --(require 'egg) -+(load "egg/cannarpc") -+(run-hooks 'canna-load-hook) - - ;;;###autoload - (defun egg-activate-canna (&rest arg) -- "Activate CANNA backend of Tamagotchy." -- (setq egg-conversion-backend canna-conversion-backend) -- (if (not (fboundp 'cannarpc-open)) -- (load-library "egg/canna")) -- (apply 'egg-mode arg)) -+ "Activate CANNA backend of Tamago 4." -+ (apply 'egg-mode (append arg canna-backend-alist))) - - ;;; egg/canna.el ends here. -Index: egg/cannarpc.el -=================================================================== -RCS file: /cvs/tamago/tamago/egg/cannarpc.el,v -retrieving revision 1.1.1.1 -retrieving revision 1.2 -diff -d -u -p -r1.1.1.1 -r1.2 ---- egg/cannarpc.el 27 Jan 2001 18:45:24 -0000 1.1.1.1 -+++ egg/cannarpc.el 27 Jan 2001 18:53:13 -0000 1.2 -@@ -45,17 +45,31 @@ - ((eq c 'GetDirectoryList) 7) - ((eq c 'MountDictionary) 8) - ((eq c 'UnmountDictionary) 9) -+ ((eq c 'GetMountDictionaryList) 11) -+ ((eq c 'DefineWord) 13) -+ ((eq c 'DeleteWord) 14) - ((eq c 'BeginConvert) 15) - ((eq c 'EndConvert) 16) - ((eq c 'GetCandidacyList) 17) - ((eq c 'GetYomi) 18) - ((eq c 'ResizePause) 26) -+ ((eq c 'GetHinshi) 27) -+ ((eq c 'GetLex) 28) -+ ((eq c 'SetApplicationName) 33) -+ ((eq c 'NoticeGroupName) 34) - - ((eq c 'CreateDictionary) 3) -+ ((eq c 'Sync) 8) - (t (error "No such constant"))))) - -+;; XXX -+(defconst cannarpc-error-message (vector )) -+ - (defun cannarpc-get-error-message (errno) -- (or (aref cannarpc-error-message errno) (format "#%d" errno))) -+ (or (and (>= errno 0) -+ (< errno (length cannarpc-error-message)) -+ (aref cannarpc-error-message errno)) -+ (format "#%d" errno))) - - (defmacro cannarpc-call-with-environment (e vlist send-expr &rest receive-exprs) - (let ((v (append -@@ -73,54 +87,101 @@ - (goto-char (prog1 (point) (accept-process-output proc)))) - receive-exprs)))) - --(defconst canna-version-fmt "2.0:%s") -+(defconst canna-version-fmt "3.3:%s") - - (defun cannarpc-open (proc username) - "Open the session. Return 0 on success, error code on failure." - (let ((verusr (format canna-version-fmt username))) -- (comm-call-with-proc proc (result) -- (comm-format (u u v) (canna-const Initialize) (length verusr) verusr) -- (comm-unpack (u) result) -- result))) -+ (comm-call-with-proc proc (minor context) -+ (comm-format (u u s) (canna-const Initialize) (+ (length verusr) 1) -+ verusr) -+ (comm-unpack (w w) minor context) -+ (cond ((and (= minor 65535) (= context 65535)) -+ -1) ; failure -+ ((and (= minor 65535) (= context 65534)) -+ -1) ; version miss match -+ (t context))))) - - (defun cannarpc-close (proc) - (comm-call-with-proc proc (dummy result) - (comm-format (b b w) (canna-const Finalize) 0 0) -- (comm-unpack (b b w b) dummy dummy dummy result) -- result)) -+ (comm-unpack (u b) dummy result) -+ (if (= result 255) -+ -1 ; failure -+ result))) - - (defun cannarpc-create-context (proc) - (comm-call-with-proc proc (dummy result) - (comm-format (b b w) (canna-const CreateContext) 0 0) -- (comm-unpack (b b w w) dummy dummy dummy result) -- result)) -+ (comm-unpack (u w) dummy result) -+ (if (= result 65535) -+ -1 ; failure -+ result))) - --(defun cannarpc-close-context (proc context) -- (comm-call-with-proc proc (dummy result) -+(defun cannarpc-close-context (env) -+ (cannarpc-call-with-environment env (dummy result) - (comm-format (b b w w) (canna-const CloseContext) 0 2 context) -- (comm-unpack (b b w b) dummy dummy dummy result) -- result)) -+ (comm-unpack (u b) dummy result) -+ (if (= result 255) -+ -1 ; failure -+ result))) - --;; XXX: Not implemented fully - (defun cannarpc-get-dictionary-list (env) -- (cannarpc-call-with-environment env (dymmy result) -+ (let ((i 0) -+ dic dl dic-list) -+ (cannarpc-call-with-environment env (dummy result) - (comm-format (b b w w w) (canna-const GetDictionaryList) 0 4 - context 1024) - (comm-unpack (u w) dummy result) - ;; follow list of dictionaries -- result)) -+ (if (= result 65535) -+ -1 ; failure -+ (while (< i result) -+ (comm-unpack (s) dic) -+ (if dl -+ (setq dl (setcdr dl (cons dic nil))) -+ (setq dic-list (setq dl (cons dic nil)))) -+ (setq i (1+ i))) -+ dic-list)))) - --;; XXX: Not implemented fully - (defun cannarpc-get-directory-list (env) -- (cannarpc-call-with-environment env (dymmy result) -+ (let ((i 0) -+ dir dl dir-list) -+ (cannarpc-call-with-environment env (dummy result) - (comm-format (b b w w w) (canna-const GetDirectoryList) 0 4 - context 1024) - (comm-unpack (u w) dummy result) - ;; follow list of directories -- result)) -+ (if (= result 65535) -+ -1 ; failure -+ (while (< i result) -+ (comm-unpack (s) dir) -+ (if dl -+ (setq dl (setcdr dl (cons dir nil))) -+ (setq dir-list (setq dl (cons dir nil)))) -+ (setq i (1+ i))) -+ dir-list)))) -+ -+(defun cannarpc-get-mount-dictionary-list (env) -+ (let ((i 0) -+ dic dl dic-list) -+ (cannarpc-call-with-environment env (dummy result) -+ (comm-format (b b w w w) (canna-const GetMountDictionaryList) 0 4 -+ context 1024) -+ (comm-unpack (u w) dummy result) -+ ;; follow list of dictionaries -+ (if (= result 65535) -+ -1 ; failure -+ (while (< i result) -+ (comm-unpack (s) dic) -+ (if dl -+ (setq dl (setcdr dl (cons dic nil))) -+ (setq dic-list (setq dl (cons dic nil)))) -+ (setq i (1+ i))) -+ dic-list)))) - - (defun cannarpc-open-dictionary (env dict-file-name mode) -- (cannarpc-call-with-environment env (dymmy result) -+ (cannarpc-call-with-environment env (dummy result) - (comm-format (b b w u w s) (canna-const MountDictionary) 0 - (+ (length dict-file-name) 7) - mode context dict-file-name) -@@ -128,27 +189,28 @@ - result)) - - (defun cannarpc-close-dictionary (env dict-file-name mode) -- (cannarpc-call-with-environment env (dymmy result) -+ (cannarpc-call-with-environment env (dummy result) - (comm-format (b b w u w s) (canna-const UnmountDictionary) 0 -- (+ (length dict-file-name) 6) -+ (+ (length dict-file-name) 7) - mode context dict-file-name) - (comm-unpack (u b) dummy result) - result)) - - (defun cannarpc-begin-conversion (env yomi) - "Begin conversion." -- (let ((yomi-ext (encode-coding-string yomi 'euc-japan)) -+ (let ((yomi-ext (encode-coding-string yomi 'fixed-euc-jp)) -+ (mode (or (cannaenv-get-mode env) 19)) ; 19 kana hiragana - (i 0) - converted bunsetsu-list bl) - (cannarpc-call-with-environment env (dummy result) -- (comm-format (b b w u w S) (canna-const BeginConvert) 0 -- (+ (length yomi-ext) 8) 0 context yomi) -+ (comm-format (b b w i w S) (canna-const BeginConvert) 0 -+ (+ (length yomi-ext) 8) mode context yomi) - (comm-unpack (u w) dummy result) - (if (= result 65535) - -1 ; failure - (while (< i result) - (comm-unpack (S) converted) -- (let ((bl1 (cons (canna-make-bunsetsu env converted i) -+ (let ((bl1 (cons (canna-make-bunsetsu env converted i nil) - nil))) - (if bl - (setq bl (setcdr bl bl1)) -@@ -156,11 +218,21 @@ - (setq i (1+ i))) - bunsetsu-list)))) - -+(defun cannarpc-cancel-conversion (env) -+ "Cancel conversion." -+ (cannarpc-call-with-environment env (dummy result) -+ (comm-format (b b w w w u) (canna-const EndConvert) 0 8 context 0 0) -+ (comm-unpack (u b) dummy result) -+ (if (= result 255) -+ -1 ; failure -+ result))) -+ - (defun cannarpc-end-conversion (env len zenkouho-pos-vector mode) - "End conversion." - (cannarpc-call-with-environment env (dummy result) - (comm-format (b b w w w u v) (canna-const EndConvert) 0 -- (+ (* len 2) 8) context len mode zenkouho-pos-vector) -+ (+ (* len 2) 8) context len mode zenkouho-pos-vector -+ (length zenkouho-pos-vector)) - (comm-unpack (u b) dummy result) - (if (= result 255) - -1 ; failure -@@ -173,6 +245,24 @@ - (comm-unpack (u b) dummy result) - result)) - -+(defun cannarpc-save-dictionary (env dict-name) -+ (cannarpc-call-with-environment env (dummy result) -+ (comm-format (b b w u w s) (canna-const Sync) 1 -+ (+ (length dict-name) 7) 0 context dict-name) -+ (comm-unpack (u b) dummy result) -+ result)) -+ -+;;; XXX not used -+(defun cannarpc-get-dictionary-data (env dir dic) -+ (cannarpc-call-with-environment env (dummy result) -+ (comm-format (b b w w s s w) 6 1 -+ (+ (length dir) (length dic) 6) context dir dic 4096) -+ (comm-unpack (u w) dummy result) -+ (if (= result 65535) -+ -1 -+;; (comm-unpack (S) result) -+ result))) -+ - (defun cannarpc-get-bunsetsu-source (env bunsetsu-pos) - (cannarpc-call-with-environment env (dummy result) - (comm-format (b b w w w w) (canna-const GetYomi) 0 6 context -@@ -183,23 +273,123 @@ - (comm-unpack (S) result) - result))) - --(defun cannarpc-get-bunsetsu-candidates (env bunsetsu-pos) -+(defun cannarpc-get-bunsetsu-candidates (env bunsetsu-pos yomi) - (let ((i 0) - converted bunsetsu-list bl) - (cannarpc-call-with-environment env (dummy result) - (comm-format (b b w w w w) (canna-const GetCandidacyList) 0 6 context - bunsetsu-pos 1024) -- (comm-unpack (u w) dymmy result) -+ (comm-unpack (u w) dummy result) - (if (= result 65535) - -1 ; failure - (while (< i result) - (comm-unpack (S) converted) -- (let ((bl1 (cons (canna-make-bunsetsu env converted bunsetsu-pos) -+ (let ((bl1 (cons (canna-make-bunsetsu env converted -+ bunsetsu-pos yomi) - nil))) - (if bl - (setq bl (setcdr bl bl1)) - (setq bunsetsu-list (setq bl bl1)))) - (setq i (1+ i))) - bunsetsu-list)))) -+ -+(defun cannarpc-set-kugiri-changed (env yomi-length bunsetsu-pos) -+ ;; yomi-length -2$B!DJ8@a=L$a(B -1$B!DJ8@a?-$P$7(B -+ (let* ((i bunsetsu-pos) -+ converted bunsetsu-list bl) -+ (cannarpc-call-with-environment env (dummy result) -+ (comm-format (b b w w w w) (canna-const ResizePause) 0 6 context -+ bunsetsu-pos yomi-length) -+ (comm-unpack (u w) dummy result) -+ (if (= result 65535) -+ -1 ; failure -+ (while (< i result) -+ (comm-unpack (S) converted) -+ (let ((bl1 (cons (canna-make-bunsetsu env converted i nil) nil))) -+ (if bl -+ (setq bl (setcdr bl bl1)) -+ (setq bunsetsu-list (setq bl bl1)))) -+ (setq i (1+ i))) -+ bunsetsu-list)))) -+ -+(defun cannarpc-get-hinshi (env bunsetsu-pos kouho-pos) -+ (let (b hinshi) -+ (cannarpc-call-with-environment env (dummy result) -+ (comm-format (b b w w w w w) (canna-const GetHinshi) 0 8 context -+ bunsetsu-pos kouho-pos 1024) -+ (comm-unpack (u w) dummy result) -+ (if (= result 65535) -+ -1 -+ (while (> result 0) -+ (comm-unpack (w) b) -+ (setq hinshi (concat hinshi (char-to-string b))) -+ (setq result (1- result))) -+ hinshi)))) -+ -+(defun cannarpc-get-lex (env bunsetsu-pos kouho-pos) -+ (let ((i 0) -+ ylen klen rownum coldnum dicnum lex-list ll) -+ (cannarpc-call-with-environment env (dummy result) -+ (comm-format (b b w w w w w) (canna-const GetLex) 0 8 context -+ bunsetsu-pos kouho-pos 1024) -+ (comm-unpack (u w) dummy result) -+ (if (= result 65535) -+ -1 -+ (while (< i result) -+ (comm-unpack (i i i i i) ylen klen rownum coldnum dicnum) -+ (let ((ll1 (cons (list ylen klen rownum coldnum dicnum) nil))) -+ (if ll -+ (setq ll (setcdr ll ll1)) -+ (setq lex-list (setq ll ll1)))) -+ (setq i (1+ i))) -+ lex-list)))) -+ -+(defun cannarpc-add-word (env dictionary yomi kanji hinshi) -+ "Register a word KANJI into DICTIONARY with a pronunciation YOMI and -+a part of speech HINSHI. Where DICTIONARY should be an integer." -+ (let* ((word-info (concat yomi " " hinshi " " kanji)) -+ (word-info-ext (encode-coding-string word-info 'fixed-euc-jp)) -+ (length (+ (length word-info-ext) (length dictionary) 5))) -+ (cannarpc-call-with-environment env (dummy result) -+ (comm-format (b b w w S s) (canna-const DefineWord) 0 length context -+ word-info dictionary) -+ (comm-unpack (u b) dummy result) -+ (if (= result 255) -+ -1 ; failure -+ result)))) -+ -+(defun cannarpc-delete-word (env dictionary yomi kanji hinshi) -+ "Delete the registered word KANJI from DICTIONARY with a -+pronunciation YOMI and a part of speech HINSHI. Where DICTIONARY -+should be an integer." -+ (let* ((word-info (concat yomi " " hinshi " " kanji)) -+ (word-info-ext (encode-coding-string word-info 'fixed-euc-jp)) -+ (length (+ (length word-info-ext) (length dictionary) 5))) -+ (cannarpc-call-with-environment env (dummy result) -+ (comm-format (b b w w S s) (canna-const DeleteWord) 0 length context -+ word-info dictionary) -+ (comm-unpack (u b) dummy result) -+ (if (= result 255) -+ -1 ; failure -+ result)))) -+ -+(defun cannarpc-notice-group-name (proc context group) -+ (comm-call-with-proc proc (dummy result) -+ (comm-format (b b w u w s) (canna-const NoticeGroupName) 0 -+ (+ (length group) 7) 0 ;; mode = 0 -+ context group) -+ (comm-unpack (u b) dummy result) -+ (if (= result 255) -+ -1 -+ result))) -+ -+(defun cannarpc-set-app-name (proc context name) -+ (comm-call-with-proc proc (dummy result) -+ (comm-format (b b w u w s) (canna-const SetApplicationName) 0 -+ (+ (length name) 7) 0 context name) -+ (comm-unpack (u b) dummy result) -+ (if (= result 255) -+ -1 -+ result))) - - ;;; egg/cannarpc.el ends here. -Index: egg/sj3.el -=================================================================== -RCS file: /cvs/tamago/tamago/egg/sj3.el,v -retrieving revision 1.1.1.3 -retrieving revision 1.3 -diff -d -u -p -r1.1.1.3 -r1.3 ---- egg/sj3.el 27 Jan 2001 18:46:48 -0000 1.1.1.3 -+++ egg/sj3.el 22 Jul 2002 13:18:56 -0000 1.3 -@@ -35,33 +35,89 @@ - (require 'egg-edep) - - (defgroup sj3 nil -- "SJ3 interface for Tamago 4" -+ "SJ3 interface for Tamago 4." - :group 'egg) - --(defcustom sj3-hostname "localhost" -- "*Hostname of SJ3 server" -+(defcustom sj3-hostname "localhost" -+ "Hostname of SJ3 server" - :group 'sj3 :type 'string) - --(defcustom sj3-server-port 3086 -- "*Port number of SJ3 server" -+(defcustom sj3-server-port 3086 -+ "Port number of SJ3 server" - :group 'sj3 :type 'integer) - --(defcustom sj3-server-version 2 -- "Major version number of SJ3 server." -- :group 'sj3 -- :type '(choice (const 1) (const 2))) -- --(defcustom sj3-server-coding-system-list '(shift_jis euc-japan) -- "List of coding systems for SJ3 server v1 and v2." -- :group 'sj3 -- :type '(list (symbol :tag "v1") (symbol :tag "v2"))) -- - - (eval-when-compile - (defmacro SJ3-const (c) - (cond ((eq c 'FileNotExist) 35) - ))) - -+(egg-add-message -+ '((Japanese -+ (sj3-register-1 "$BEPO?<-=qL>(B:") -+ (sj3-register-2 "$BIJ;lL>(B")))) -+ -+(defvar sj3-hinshi-menu -+ '(("$BL>;l(B" . -+ (menu "$BIJ;l(B:$BL>;l(B:" -+ (("$BL>;l(B" . 1) -+ ("$BL>;l(B($B$*!D(B)" . 2) -+ ("$BL>;l(B($B$4!D(B)" . 3) -+ ("$BL>;l(B($B!DE*(B/$B2=(B)" . 4) -+ ("$BL>;l(B($B$*!D$9$k(B)" . 5) -+ ("$BL>;l(B($B!D$9$k(B)" . 6) -+ ("$BL>;l(B($B$4!D$9$k(B)" . 7) -+ ("$BL>;l(B($B!D$J(B/$B$K(B)" . 8) -+ ("$BL>;l(B($B$*!D$J(B/$B$K(B)" . 9) -+ ("$BL>;l(B($B$4!D$J(B/$B$K(B)" . 10) -+ ("$BL>;l(B($BI{;l(B)" . 11)))) -+ ("$BBeL>;l(B" . 12) -+ ("$BID;z(B" . 21) -+ ("$BL>A0(B" . 22) -+ ("$BCOL>(B" . 24) -+ ("$B8)(B/$B6hL>(B" . 25) -+ ("$BF0;l(B" . -+ (menu "$BIJ;l(B:$BF0;l(B:" -+ (("$B%5JQ8l44(B" . 80) -+ ("$B%6JQ8l44(B" . 81) -+ ("$B0lCJITJQ2=It(B" . 90) -+ ("$B%+9T8^CJ8l44(B" . 91) -+ ("$B%,9T8^CJ8l44(B" . 92) -+ ("$B%59T8^CJ8l44(B" . 93) -+ ("$B%?9T8^CJ8l44(B" . 94) -+ ("$B%J9T8^CJ8l44(B" . 95) -+ ("$B%P9T8^CJ8l44(B" . 96) -+ ("$B%^9T8^CJ8l44(B" . 97) -+ ("$B%i9T8^CJ8l44(B" . 98) -+ ("$B%o9T8^CJ8l44(B" . 99)))) -+ ("$BO"BN;l(B" . 26) -+ ("$B@\B3;l(B" . 27) -+ ("$B=u?t;l(B" . 29) -+ ("$B?t;l(B" . 30) -+ ("$B@\F,8l(B" . 31) -+ ("$B@\Hx8l(B" . 36) -+ ("$BI{;l(B" . 45) -+ ("$BI{;l(B2" . 46) -+ ("$B7AMF;l8l44(B" . 60) -+ ("$B7AMFF0;l8l44(B" . 71) -+ ("$BC14A;z(B" . 189)) -+ "Menu data for a hinshi (a part of speech) selection.") -+ -+(defun sj3-hinshi-name (id &optional menu alist) -+ "Return a hinshi (a part of speech) name corresponding to ID. -+If ID is nil, return a flattened alist from `sj3-hinshi-menu'. -+Don't specify the optional arguments in normal use." -+ (let ((menu (or menu sj3-hinshi-menu))) -+ (if (consp menu) -+ (if (consp (cdr menu)) -+ (mapcar (lambda (elem) -+ (setq alist (sj3-hinshi-name nil elem alist))) -+ menu) -+ (setq alist (nconc alist (list (cons (cdr menu) (car menu))))))) -+ (if id -+ (cdr (assq id alist)) -+ alist))) -+ - (setplist 'sj3-conversion-backend - '(egg-start-conversion sj3-start-conversion - egg-get-bunsetsu-source sj3-get-bunsetsu-source -@@ -71,7 +127,8 @@ - egg-list-candidates sj3-list-candidates - egg-decide-candidate sj3-decide-candidate - egg-change-bunsetsu-length sj3-change-bunsetsu-length -- egg-end-conversion sj3-end-conversion)) -+ egg-end-conversion sj3-end-conversion -+ egg-word-registration sj3-word-registration)) - - (defconst sj3-backend-alist '((Japanese ((sj3-conversion-backend))))) - -@@ -90,7 +147,7 @@ - ((error quit) - (egg-error "failed to connect sj3 server"))) - (process-kill-without-query proc) -- (set-process-coding-system proc 'no-conversion 'no-conversion) -+ (set-process-coding-system proc 'binary 'binary) - (set-marker-insertion-type (process-mark proc) t) - (save-excursion - (set-buffer buf) -@@ -141,7 +198,7 @@ - ;; (if proc - ;; (progn - ;; (process-kill-without-query proc) --;; (set-process-coding-system proc 'no-conversion 'no-conversion) -+;; (set-process-coding-system proc 'binary 'binary) - ;; (set-marker-insertion-type (process-mark proc) t) - ;; ;; Initialize dictionaries - ;; (setq sj3-sys-dict-list nil) -@@ -353,7 +410,7 @@ Return the list of bunsetsu." - (list (list candidate)))) - - (defun sj3-change-bunsetsu-length (bunsetsu prev-b next-b len major) -- (let ((yomi (apply 'concat (mapcar 'sj3bunsetsu-get-source bunsetsu))) -+ (let ((yomi (mapconcat 'sj3bunsetsu-get-source bunsetsu nil)) - (env (sj3bunsetsu-get-env (car bunsetsu))) - (old (car bunsetsu)) - new yomi1 yomi2) -@@ -361,7 +418,7 @@ Return the list of bunsetsu." - yomi2 (substring yomi len)) - (setq new (sj3rpc-tanbunsetsu-conversion env yomi1)) - ;; Only set once (memory original length of the bunsetsu). -- (sj3bunsetsu-set-kugiri-changed new -+ (sj3bunsetsu-set-kugiri-changed new - (or (sj3bunsetsu-get-kugiri-changed old) - (length (sj3bunsetsu-get-source old)))) - (if (> (length yomi2) 0) -@@ -381,6 +438,37 @@ Return the list of bunsetsu." - (sj3rpc-close proc) - (setq sj3-environment nil)))) - -+;;; word registration -+ -+(defun sj3-dictionary-select () -+ (menudiag-select (list 'menu -+ (egg-get-message 'sj3-register-1) -+ (aref (nth 2 sj3-dictionary-specification) 0)))) -+ -+(defun sj3-hinshi-select () -+ (menudiag-select (list 'menu -+ (egg-get-message 'sj3-register-2) -+ sj3-hinshi-menu))) -+ -+(defun sj3-word-registration (backend kanji yomi) -+ "Register a word KANJI with a pronunciation YOMI." -+ (if (or (null (eq (egg-get-language 0 kanji) -+ (sj3-get-converted-language backend))) -+ (next-single-property-change 0 'egg-lang kanji) -+ (null (eq (egg-get-language 0 yomi) -+ (sj3-get-source-language backend))) -+ (next-single-property-change 0 'egg-lang yomi)) -+ (egg-error "word registration: invalid character") -+ (let* ((env (sj3-get-environment)) -+ (dic (sj3-dictionary-select)) -+ (hinshi-id (sj3-hinshi-select)) -+ (result (sj3rpc-add-word env -+ (car (aref env 1)) -+ yomi kanji hinshi-id))) -+ (if (>= result 0) -+ (list (sj3-hinshi-name hinshi-id) dic) -+ (egg-error (sj3rpc-get-error-message (- result))))))) -+ - ;;; setup - - (load "egg/sj3rpc") -@@ -388,7 +476,7 @@ Return the list of bunsetsu." - - ;;;###autoload - (defun egg-activate-sj3 (&rest arg) -- "Activate SJ3 backend of Tamagotchy." -+ "Activate SJ3 backend of Tamago 4." - (apply 'egg-mode (append arg sj3-backend-alist))) - - ;;; egg/sj3.el ends here. -Index: egg/sj3rpc.el -=================================================================== -RCS file: /cvs/tamago/tamago/egg/sj3rpc.el,v -retrieving revision 1.1.1.2 -retrieving revision 1.2 -diff -d -u -p -r1.1.1.2 -r1.2 ---- egg/sj3rpc.el 27 Jan 2001 18:46:48 -0000 1.1.1.2 -+++ egg/sj3rpc.el 27 Jan 2001 18:53:13 -0000 1.2 -@@ -31,9 +31,18 @@ - - ;;; Code: - -+(defvar sj3-server-version 2 -+ "*Major version number of SJ3 server.") -+ -+(defvar sj3-server-coding-system 'shift_jis -+ "*Coding system used when decoding and encoding of I/O operation with -+SJ3 server. Valid coding systems are depend on the server spec.") -+ - (eval-when-compile - (require 'egg-com) --;; (load-library "egg/sj3") -+ (defmacro sj3-sjis-p () -+ '(eq 'coding-category-sjis (coding-system-category -+ sj3-server-coding-system))) - (defmacro sj3-const (c) - (cond ((eq c 'OPEN) 1) - ((eq c 'CLOSE) 2) -@@ -44,20 +53,20 @@ - ((eq c 'STDYSIZE) 23) - ((eq c 'LOCK) 31) - ((eq c 'UNLOCK) 32) -- ((eq c 'BEGIN) '(if (eq 1 sj3-server-version) 41 111)) -- ((eq c 'TANCONV) '(if (eq 1 sj3-server-version) 51 112)) -- ((eq c 'KOUHO) '(if (eq 1 sj3-server-version) 54 115)) -- ((eq c 'KOUHOSU) '(if (eq 1 sj3-server-version) 55 116)) -+ ((eq c 'BEGIN) '(if (sj3-sjis-p) 41 111)) -+ ((eq c 'TANCONV) '(if (sj3-sjis-p) 51 112)) -+ ((eq c 'KOUHO) '(if (sj3-sjis-p) 54 115)) -+ ((eq c 'KOUHOSU) '(if (sj3-sjis-p) 55 116)) - ((eq c 'STDY) 61) -- ((eq c 'CLSTDY) '(if (eq 1 sj3-server-version) 62 117)) -- ((eq c 'WREG) '(if (eq 1 sj3-server-version) 71 118)) -- ((eq c 'WDEL) '(if (eq 1 sj3-server-version) 72 119)) -+ ((eq c 'CLSTDY) '(if (sj3-sjis-p) 62 117)) -+ ((eq c 'WREG) '(if (sj3-sjis-p) 71 118)) -+ ((eq c 'WDEL) '(if (sj3-sjis-p) 72 119)) - ((eq c 'MKDIC) 81) - ((eq c 'MKSTDY) 82) - ((eq c 'MKDIR) 83) - ((eq c 'ACCESS) 84) -- ((eq c 'WSCH) '(if (eq 1 sj3-server-version) 91 120)) -- ((eq c 'WNSCH) '(if (eq 1 sj3-server-version) 92 121)) -+ ((eq c 'WSCH) '(if (sj3-sjis-p) 91 120)) -+ ((eq c 'WNSCH) '(if (sj3-sjis-p) 92 121)) - ((eq c 'VERSION) 103) - (t (error "No such constant"))))) - -@@ -85,15 +94,12 @@ - (goto-char (prog1 (point) (accept-process-output proc)))) - receive-exprs)))) - --(defmacro sj3rpc-server-coding-system () -- '(nth (1- sj3-server-version) sj3-server-coding-system-list)) -- --(defmacro sj3rpc-unpack-mb-string (coding-system) -- `(let ((start (point))) -+(defmacro sj3rpc-unpack-mb-string () -+ '(let ((start (point))) - (while (not (search-forward "\0" nil t)) - (comm-accept-process-output)) - (decode-coding-string (buffer-substring start (1- (point))) -- ,coding-system))) -+ sj3-server-coding-system))) - - (defun sj3rpc-open (proc myhostname username) - "Open the session. Return 0 on success, error code on failure." -@@ -102,7 +108,7 @@ - myhostname username - ;; program name - (format "%d.emacs-egg" (emacs-pid))) -- (comm-unpack (u) result) -+ (comm-unpack (i) result) - (if (= result -2) - 0 - result))) -@@ -110,7 +116,7 @@ - (defun sj3rpc-close (proc) - (comm-call-with-proc proc (result) - (comm-format (u) (sj3-const CLOSE)) -- (comm-unpack (u) result) -+ (comm-unpack (i) result) - result)) - - (defun sj3rpc-get-stdy-size (proc) -@@ -134,10 +140,9 @@ - - (defun sj3rpc-begin (env yomi) - "Begin conversion." -- (let* ((codesys (sj3rpc-server-coding-system)) -- (yomi-ext (encode-coding-string yomi codesys)) -- (p 0) -- len source converted stdy bunsetsu-list bl) -+ (let ((yomi-ext (encode-coding-string yomi sj3-server-coding-system)) -+ (p 0) -+ len source converted stdy bunsetsu-list bl) - (sj3rpc-call-with-environment env (result) - (comm-format (u s) (sj3-const BEGIN) yomi-ext) - (comm-unpack (u) result) -@@ -148,9 +153,9 @@ - (comm-unpack (b) len) - (> len 0)) - (setq stdy (sj3rpc-get-stdy proc)) -- (setq converted (sj3rpc-unpack-mb-string codesys)) -+ (setq converted (sj3rpc-unpack-mb-string)) - (setq source (decode-coding-string (substring yomi-ext p (+ p len)) -- codesys) -+ sj3-server-coding-system) - p (+ p len)) - (let ((bl1 (cons (sj3-make-bunsetsu env - source converted nil stdy) nil))) -@@ -171,7 +176,7 @@ - (defun sj3rpc-close-dictionary (proc dict-no) - (comm-call-with-proc proc (result) - (comm-format (u u) (sj3-const DICDEL) dict-no) -- (comm-unpack (u) result) -+ (comm-unpack (i) result) - result)) - - (defun sj3rpc-make-dictionary (proc dict-name) -@@ -181,19 +186,19 @@ - 2048 ; Length - 256 ; Number - ) -- (comm-unpack (u) result) -+ (comm-unpack (i) result) - result)) - - (defun sj3rpc-open-stdy (proc stdy-name) - (comm-call-with-proc proc (result) - (comm-format (u s s) (sj3-const OPENSTDY) stdy-name "") -- (comm-unpack (u) result) -+ (comm-unpack (i) result) - result)) - - (defun sj3rpc-close-stdy (proc) - (comm-call-with-proc proc (result) - (comm-format (u) (sj3-const CLOSESTDY)) -- (comm-unpack (u) result) -+ (comm-unpack (i) result) - result)) - - (defun sj3rpc-make-stdy (proc stdy-name) -@@ -203,18 +208,17 @@ - 1 ; Step - 2048 ; Length - ) -- (comm-unpack (u) result) -+ (comm-unpack (i) result) - result)) - - (defun sj3rpc-make-directory (proc name) - (comm-call-with-proc proc (result) - (comm-format (u s) (sj3-const MKDIR) name) -- (comm-unpack (u) result) -+ (comm-unpack (i) result) - result)) - - (defun sj3rpc-get-bunsetsu-candidates-sub (proc env yomi yomi-ext len n) -- (let ((codesys (sj3rpc-server-coding-system)) -- (i 0) -+ (let ((i 0) - stdy converted bunsetsu bl bunsetsu-list cylen rest) - (comm-call-with-proc-1 proc (result) - (comm-format (u u s) (sj3-const KOUHO) len yomi-ext) -@@ -224,9 +228,9 @@ - (while (< i n) - (comm-unpack (u) cylen) - (setq stdy (sj3rpc-get-stdy proc)) -- (setq converted (sj3rpc-unpack-mb-string codesys)) -+ (setq converted (sj3rpc-unpack-mb-string)) - (setq rest (decode-coding-string (substring yomi-ext cylen) -- codesys)) -+ sj3-server-coding-system)) - (setq bunsetsu (sj3-make-bunsetsu env yomi converted rest stdy)) - (if bl - (setq bl (setcdr bl (cons bunsetsu nil))) -@@ -240,7 +244,7 @@ - bunsetsu-list)))) - - (defun sj3rpc-get-bunsetsu-candidates (env yomi) -- (let* ((yomi-ext (encode-coding-string yomi (sj3rpc-server-coding-system))) -+ (let* ((yomi-ext (encode-coding-string yomi sj3-server-coding-system)) - (len (length yomi-ext))) - (sj3rpc-call-with-environment env (result) - (comm-format (u u s) (sj3-const KOUHOSU) len yomi-ext) -@@ -254,9 +258,8 @@ - yomi yomi-ext len result)))))) - - (defun sj3rpc-tanbunsetsu-conversion (env yomi) -- (let* ((codesys (sj3rpc-server-coding-system)) -- (yomi-ext (encode-coding-string yomi codesys)) -- (len (length yomi-ext)) cylen stdy converted rest) -+ (let* ((yomi-ext (encode-coding-string yomi sj3-server-coding-system)) -+ (len (length yomi-ext)) cylen stdy converted rest) - (sj3rpc-call-with-environment env (result) - (comm-format (u u s) (sj3-const TANCONV) len yomi-ext) - (comm-unpack (u) result) -@@ -264,28 +267,35 @@ - (- result) - (comm-unpack (u) cylen) - (setq stdy (sj3rpc-get-stdy proc)) -- (setq converted (sj3rpc-unpack-mb-string codesys)) -- (setq rest (decode-coding-string (substring yomi-ext cylen) codesys)) -+ (setq converted (sj3rpc-unpack-mb-string)) -+ (setq rest (decode-coding-string (substring yomi-ext cylen) -+ sj3-server-coding-system)) - (setq bunsetsu (sj3-make-bunsetsu env yomi converted rest stdy)))))) - - (defun sj3rpc-bunsetsu-stdy (env stdy) - (sj3rpc-call-with-environment env (result) - (comm-format (u v) (sj3-const STDY) stdy (length stdy)) - (comm-unpack (u) result) -- (if (/= result 0) -- (- result) -- 0))) -+ (- result))) - - (defun sj3rpc-kugiri-stdy (env yomi1 yomi2 stdy) -- (let* ((codesys (sj3rpc-server-coding-system)) -- (yomi1-ext (encode-coding-string yomi1 codesys)) -- (yomi2-ext (encode-coding-string yomi2 codesys))) -- (sj3rpc-call-with-environment env (result) -- (comm-format (u s s v) (sj3-const CLSTDY) -- yomi1-ext yomi2-ext stdy (length stdy)) -- (comm-unpack (u) result) -- (if (/= result 0) -- (- result) -- 0)))) -+ (sj3rpc-call-with-environment env (result) -+ (comm-format (u s s v) (sj3-const CLSTDY) -+ (encode-coding-string yomi1 sj3-server-coding-system) -+ (encode-coding-string yomi2 sj3-server-coding-system) -+ stdy (length stdy)) -+ (comm-unpack (u) result) -+ (- result))) -+ -+(defun sj3rpc-add-word (env dictionary yomi kanji hinshi) -+ "Register a word KANJI into DICTIONARY with a pronunciation YOMI and -+a part of speech HINSHI. Where DICTIONARY should be an integer." -+ (sj3rpc-call-with-environment env () -+ (comm-format (u u s s u) (sj3-const WREG) dictionary -+ (encode-coding-string yomi sj3-server-coding-system) -+ (encode-coding-string kanji sj3-server-coding-system) -+ hinshi) -+ (comm-unpack (u) result) -+ (- result))) - - ;;; egg/sj3rpc.el ends here. -Index: egg/wnn.el -=================================================================== -RCS file: /cvs/tamago/tamago/egg/wnn.el,v -retrieving revision 1.1.1.1 -retrieving revision 1.4 -diff -d -u -p -r1.1.1.1 -r1.4 ---- egg/wnn.el 27 Jan 2001 18:45:24 -0000 1.1.1.1 -+++ egg/wnn.el 22 Jul 2002 13:18:56 -0000 1.4 -@@ -36,7 +36,7 @@ - (require 'egg-edep) - - (defgroup wnn nil -- "Wnn interface for Tamagotchy" -+ "Wnn interface for Tamago 4." - :group 'egg) - - (defcustom wnn-auto-save-dictionaries 0 -@@ -114,6 +114,7 @@ by ':' and digit N." - egg-major-bunsetsu-continue-p wnn-major-bunsetsu-continue-p - egg-list-candidates wnn-list-candidates - egg-decide-candidate wnn-decide-candidate -+ egg-special-candidate wnn-special-candidate - egg-change-bunsetsu-length wnn-change-bunsetsu-length - egg-bunsetsu-combinable-p wnn-bunsetsu-combinable-p - egg-end-conversion wnn-end-conversion -@@ -389,13 +390,12 @@ by ':' and digit N." - - ;; <wnn-bunsetsu> ::= [ <env> - ;; <jirilen> <dic-no> <entry> <freq> <right-now> <hinshi> --;; <status> <status-backward> <kangovect> <evaluation> --;; <converted> <yomi> <fuzokugo> --;; <dai-evaluation> <dai-continue> <change-top> --;; <zenkouho-info> <freq-down> <fi-rel> <context> ] -+;; <status> <status-backward> <kangovect> <evaluation> -+;; <converted> <yomi> <fuzokugo> -+;; <dai-evaluation> <dai-continue> <change-top> -+;; <zenkouho-info> <freq-down> <fi-rel> <context> ] - ;; - ;; <zenkouho-info> ::= [ <pos> <list> <converted> <dai> <prev-b> <nxet-b> ] --;; - - (defsubst wnn-bunsetsu-create (env jirilen dic-no entry freq right-now hinshi - status status-backward kangovect evaluation) -@@ -556,7 +556,7 @@ by ':' and digit N." - (copy-sequence (egg-bunsetsu-get-info b)))) - bunsetsu)) - --(defconst wnn-server-info-list -+(defvar wnn-server-info-list - ;; language server port hostname proc coding-system - '((Japanese jserver wnn-jport wnn-jserver "Wnn" (fixed-euc-jp fixed-euc-jp)) - (Chinese-GB cserver wnn-cport wnn-cserver "cWnn" (fixed-euc-py-cn fixed-euc-zy-cn)) -@@ -657,20 +657,28 @@ Return the list of bunsetsu." - (defun wnn-major-bunsetsu-continue-p (bunsetsu) - (wnn-bunsetsu-get-dai-continue bunsetsu)) - -+(defmacro wnn-uniq-hash-string (uniq-level) -+ `(mapconcat -+ (lambda (b) -+ (concat ,@(cond ((eq uniq-level 'wnn-uniq) -+ '((number-to-string (wnn-bunsetsu-get-hinshi b)))) -+ ((eq uniq-level 'wnn-uniq-entry) -+ '((number-to-string (wnn-bunsetsu-get-dic-no b)) -+ "+" -+ (number-to-string (wnn-bunsetsu-get-entry b))))) -+ "\0" -+ (wnn-bunsetsu-get-converted b) -+ "\0" -+ (wnn-bunsetsu-get-fuzokugo b))) -+ bunsetsu "\0")) -+ - (defun wnn-uniq-hash (bunsetsu hash-table) -- (intern (mapconcat (lambda (b) -- (concat (cond -- ((eq wnn-uniq-level 'wnn-uniq) -- (wnn-bunsetsu-get-hinshi b)) -- ((eq wnn-uniq-level 'wnn-uniq-entry) -- (concat (wnn-bunsetsu-get-dic-no b) -- "+" -- (wnn-bunsetsu-get-entry b)))) -- (concat "\0" -- (wnn-bunsetsu-get-converted b) -- "\0" -- (wnn-bunsetsu-get-fuzokugo b)))) -- bunsetsu "\0") -+ (intern (cond ((eq wnn-uniq-level 'wnn-uniq) -+ (wnn-uniq-hash-string wnn-uniq)) -+ ((eq wnn-uniq-level 'wnn-uniq-entry) -+ (wnn-uniq-hash-string wnn-uniq-entry)) -+ (t -+ (wnn-uniq-hash-string nil))) - hash-table)) - - (defun wnn-uniq-candidates (candidates) -@@ -786,6 +794,68 @@ Return the list of bunsetsu." - (setq next-b (list (car next-b)))) - (list cand prev-b next-b))) - -+(defun wnn-special-candidate (bunsetsu prev-b next-b major type) -+ (let* ((backend (egg-bunsetsu-get-backend (car bunsetsu))) -+ (lang (get backend 'language)) -+ pos cand) -+ (when (and (eq lang (get backend 'source-language)) -+ (eq lang (get backend 'converted-language))) -+ (setq pos (and (eq lang (get backend 'source-language)) -+ (eq lang (get backend 'converted-language)) -+ (cond ((eq lang 'Japanese) -+ (cond ((eq type 'egg-hiragana) -1) -+ ((eq type 'egg-katakana) -2))) -+ ((or (eq lang 'Chinese-GB) (eq lang 'Chinese-CNS)) -+ (cond ((eq type 'egg-pinyin) -1) -+ ((eq type 'egg-zhuyin) -1))) -+ ((eq lang 'Korean) -+ (cond ((eq type 'egg-hangul) -1)))))) -+ (when pos -+ (setq cand (cdr (wnn-list-candidates bunsetsu prev-b next-b major)) -+ pos (+ pos (length cand))) -+ (when (and (or (eq lang 'Chinese-GB) (eq lang 'Chinese-CNS))) -+ (let ((converted (nth pos cand))) -+ (cond ((egg-pinyin-syllable converted) -+ (cond ((eq type 'egg-pinyin)) ; OK -+ ((eq type 'egg-zhuyin) -+ (wnn-pinyin-zhuyin-bunsetsu bunsetsu pos lang type)) -+ (t (setq pos nil)))) -+ ((egg-zhuyin-syllable converted) -+ (cond ((eq type 'egg-pinyin) -+ (wnn-pinyin-zhuyin-bunsetsu bunsetsu pos lang type)) -+ ((eq type 'egg-zhuyin)) ; OK -+ (t (setq pos nil)))) -+ (t (setq pos nil)))))) -+ (when pos -+ (wnn-decide-candidate bunsetsu pos prev-b next-b))))) -+ -+(defun wnn-pinyin-zhuyin-bunsetsu (bunsetsu pos lang type) -+ (let ((b (nth pos (wnn-bunsetsu-get-zenkouho-list (car bunsetsu)))) -+ (encoding (if (eq lang 'Chinese-GB) -+ (if (eq type 'egg-pinyin) -+ 'fixed-euc-py-cn 'fixed-euc-zy-cn) -+ (if (eq type 'egg-pinyin) -+ 'fixed-euc-py-tw 'fixed-euc-zy-tw))) -+ (converted (wnn-bunsetsu-get-zenkouho-converted (car bunsetsu))) -+ str) -+ (setcar (nthcdr pos converted) -+ (wnn-pinyin-zhuyin-string (nth pos converted) encoding)) -+ (while b -+ (setq str (wnn-bunsetsu-get-converted (car b))) -+ (when str -+ (wnn-bunsetsu-set-converted -+ (car b) -+ (wnn-pinyin-zhuyin-string str encoding))) -+ (setq str (wnn-bunsetsu-get-fuzokugo (car b))) -+ (when str -+ (wnn-bunsetsu-set-fuzokugo -+ (car b) -+ (wnn-pinyin-zhuyin-string str encoding))) -+ (setq b (cdr b))))) -+ -+(defun wnn-pinyin-zhuyin-string (str encoding) -+ (decode-coding-string (encode-coding-string str encoding) encoding)) -+ - (defun wnn-change-bunsetsu-length (bunsetsu prev-b next-b len major) - (let ((backend (egg-bunsetsu-get-backend (car bunsetsu))) - (env (wnn-bunsetsu-get-env (car bunsetsu))) -@@ -918,7 +988,7 @@ Return the list of bunsetsu." - (wnn-bunsetsu-get-right-now b) - (wnn-bunsetsu-get-freq b)) - context)) -- (wnnrpc-set-frequency env dic-no entry -+ (wnnrpc-set-frequency env dic-no entry - (WNN-const IMA_ON) (WNN-const HINDO_INC))) - (list (car context) (nth 1 context)))) - -@@ -1139,7 +1209,7 @@ Return the list of bunsetsu." - (proc-name (wnn-server-proc-name server-info)) - (msg-form "Wnn: connecting to %S at %s...") - (user-name (user-login-name)) -- buf hostname myname port-off proc result msg) -+ buf hostname myname port-off proc result msg) - (unwind-protect - (progn - (setq buf (generate-new-buffer (wnn-server-buffer-name server-info))) -@@ -1175,7 +1245,7 @@ Return the list of bunsetsu." - ((error quit)))) - (when proc - (process-kill-without-query proc) -- (set-process-coding-system proc 'no-conversion 'no-conversion) -+ (set-process-coding-system proc 'binary 'binary) - (set-process-sentinel proc 'wnn-comm-sentinel) - (set-marker-insertion-type (process-mark proc) t) - (setq result (wnnrpc-open proc myname user-name)) -@@ -1276,7 +1346,7 @@ is non-NIL." - (setq env-name (if reverse (concat env-name "R") env-name) - wnn-current-envspec (wnn-envspec-create env-name tankan stickey) - wnn-current-envspec-reverse reverse -- wnn-envspec-list (nconc wnn-envspec-list -+ wnn-envspec-list (nconc wnn-envspec-list - (list wnn-current-envspec)))) - - (defun wnn-set-fuzokugo (filename) -@@ -1359,7 +1429,7 @@ is non-NIL." - dict freq nil dict-rw freq-rw - dict-passwd freq-passwd nil)) - --(defun wnn-add-notrans-dict (dict priority dict-rw -+(defun wnn-add-notrans-dict (dict priority dict-rw - &optional dict-passwd &rest reverse) - (wnn-wnn6-env-func wnn-add-notrans-dict) - (wnn-add-dict-param-check wnn-add-notrans-dict -@@ -1705,7 +1775,7 @@ On failure, return negative error code." - (wnn-create-frequency env fi did fname "" fpass)) - (message (egg-get-message 'wnn-re-create-freq) fname) - (and (>= (setq fid (wnn-open-file env fname)) 0) -- (>= (wnnrpc-set-dictionary env -+ (>= (wnnrpc-set-dictionary env - did fid prior drw frw - dpass fpass rev) - 0)))))))) -@@ -2090,7 +2160,7 @@ environment." - - ;;;###autoload - (defun egg-activate-wnn (&rest arg) -- "Activate Wnn backend of Tamagotchy." -+ "Activate Wnn backend of Tamago 4." - (apply 'egg-mode (append arg wnn-backend-alist))) - - ;;; egg/wnn.el ends here. -Index: egg/wnnrpc.el -=================================================================== -RCS file: /cvs/tamago/tamago/egg/wnnrpc.el,v -retrieving revision 1.1.1.1 -retrieving revision 1.3 -diff -d -u -p -r1.1.1.1 -r1.3 ---- egg/wnnrpc.el 27 Jan 2001 18:45:24 -0000 1.1.1.1 -+++ egg/wnnrpc.el 22 Jul 2002 13:18:56 -0000 1.3 -@@ -162,8 +162,8 @@ - ((eq c 'WNN_NOT_A_FILE) 98) - ((eq c 'WNN_INODE_CHECK_ERROR) 99) - -- ((eq c 'WNN_UD_DICT) 2) -- ((eq c 'WNN_REV_DICT) 3) -+ ((eq c 'WNN_UD_DICT) 2) -+ ((eq c 'WNN_REV_DICT) 3) - ((eq c 'CWNN_REV_DICT) ?\x103) - ((eq c 'BWNN_REV_DICT) ?\x203) - ((eq c 'WNN_COMPACT_DICT) 5) -@@ -693,10 +693,10 @@ - - (defmacro wnnrpc-get-result (&rest body) - `(let (result) -- (comm-unpack (u) result) -+ (comm-unpack (i) result) - (if (< result 0) - (progn -- (comm-unpack (u) result) -+ (comm-unpack (i) result) - (- result)) - ,@(or body '(result))))) - -@@ -725,7 +725,7 @@ - - (defun wnnrpc-connect (proc envname) - "Establish new `connection' and make an environment. --Return the identitifation of the environment on success, -+Return the identitifation of the environment on success, - or negative error code on failure." - (comm-call-with-proc proc () - (comm-format (u s) (wnn-const JS_CONNECT) envname) -@@ -739,7 +739,7 @@ Return non-negative file ID on success, - (wnnrpc-get-result))) - - (defun wnnrpc-set-fuzokugo-file (env fid) -- "For PROC, on environment ENV-ID, -+ "For PROC, on environment ENV-ID, - Set Fuzokugo file specified by FID. - Return 0 on success, negate-encoded error code on failure." - (wnnrpc-call-with-environment env () -@@ -783,7 +783,7 @@ error code on faiulure." - (comm-format (u u u) (wnn-const JS_GET_AUTOLEARNING_DIC) - env-id type) - (wnnrpc-get-result -- (comm-unpack (u) result) -+ (comm-unpack (i) result) - (1+ result)))) - - (defun wnnrpc-set-autolearning-dic (env type dic-id) -@@ -798,16 +798,16 @@ Return 0 on success, negate-encoded erro - "Return the version number of WNN server." - (comm-call-with-proc proc (result) - (comm-format (u) (wnn-const JS_VERSION)) -- (comm-unpack (u) result) -+ (comm-unpack (i) result) - result)) - --(defun wnnrpc-access (env path mode) -+(defun wnnrpc-access (env path mode) - "Check the accessibility of file in the environment ENV. - Return 0 when the remote file (dictionary/frequency) of PATH on server - can be accessed in mode MODE. Return Non-zero otherwise." - (wnnrpc-call-with-environment env (result) - (comm-format (u u u s) (wnn-const JS_ACCESS) env-id mode path) -- (comm-unpack (u) result) -+ (comm-unpack (i) result) - result)) - - (defun wnnrpc-mkdir (env path) -@@ -904,7 +904,7 @@ Return positive if loaded, zero if not, - hinshi status status-backward kangovect evaluation - result source fuzokugo) - (while (> n-bunsetsu 0) -- (comm-unpack (u u u u u u u u u u u u) -+ (comm-unpack (i i i i i i i i i i i i) - end start jiritsugo-end - dic-no entry freq right-now hinshi - status status-backward kangovect evaluation) -@@ -929,9 +929,9 @@ Return positive if loaded, zero if not, - n-bunstsu kanji-length dlist slist - end start n-sho evaluation - n retval) -- (comm-unpack (u u) n-bunstsu kanji-length) -+ (comm-unpack (i i) n-bunstsu kanji-length) - (while (> n-dai 0) -- (comm-unpack (u u u u) end start n-sho evaluation) -+ (comm-unpack (i i i i) end start n-sho evaluation) - (setq dlist (cons (cons n-sho evaluation) dlist) - n-dai (1- n-dai))) - (setq dlist (nreverse dlist) -@@ -1010,7 +1010,7 @@ HINSHI and FUZOKUGO are information of p - fi-dic dic entry offset num result) - (comm-unpack (i) num) - (while (> num 0) -- (comm-unpack (u u u u) fi-dic dic entry offset) -+ (comm-unpack (i i i i) fi-dic dic entry offset) - (setq result (cons (vector fi-dic dic entry offset -2 -4) result) - num (1- num))) - (nreverse result))) -@@ -1110,7 +1110,7 @@ HINSHI and FUZOKUGO are information of p - "" - (comm-call-with-proc proc (result) - (comm-format (u s) (wnn-const JS_ENV_EXIST) envname) -- (comm-unpack (u) result) -+ (comm-unpack (i) result) - result)) - - (defun wnnrpc-make-env-sticky (env) -@@ -1156,14 +1156,14 @@ HINSHI and FUZOKUGO are information of p - "" - (wnnrpc-call-with-environment env (n-dic) - (comm-format (u u) (wnn-const JS_DIC_LIST) env-id) -- (comm-unpack (u) n-dic) -+ (comm-unpack (i) n-dic) - (wnnrpc-receive-dictionary-list proc n-dic))) - - (defun wnnrpc-get-fi-dictionary-list-with-environment (env mask) - "" - (wnnrpc-call-with-environment env (n-dic) - (comm-format (u u u) (wnn-const JS_FI_DIC_LIST) env-id mask) -- (comm-unpack (u) n-dic) -+ (comm-unpack (i) n-dic) - (wnnrpc-receive-dictionary-list proc n-dic))) - - (defun wnnrpc-receive-dictionary-list (proc n-dic) -@@ -1171,7 +1171,7 @@ HINSHI and FUZOKUGO are information of p - rev comment dicname freqname dic-passwd freq-passwd - type gosuu dic-local-flag freq-local-flag retval) - (while (> n-dic 0) -- (comm-unpack (u u u u u u u u S s s s s u u u u) -+ (comm-unpack (i i i i i i i i S s s s s i i i i) - entry dic freq dic-mode freq-mode enable-flag nice - rev comment dicname freqname dic-passwd freq-passwd - type gosuu dic-local-flag freq-local-flag) -@@ -1193,7 +1193,7 @@ HINSHI and FUZOKUGO are information of p - (comm-format (u u i) (wnn-const JS_HINSI_DICTS) env-id -1) - (wnnrpc-get-result - (while (> result 0) -- (comm-unpack (u) dic) -+ (comm-unpack (i) dic) - (setq dic-list (nconc dic-list (list dic)) - result (1- result))) - dic-list))) -@@ -1222,7 +1222,7 @@ HINSHI and FUZOKUGO are information of p - p10 p11 p12 p13 p14 p15) - (comm-format (u u) (wnn-const JS_PARAM_GET) env-id) - (wnnrpc-get-result -- (comm-unpack (u u u u u u u u u u u u u u u u u) -+ (comm-unpack (i i i i i i i i i i i i i i i i i) - n nsho p1 p2 p3 p4 p5 p6 p7 p8 p9 - p10 p11 p12 p13 p14 p15) - (vector n nsho p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15)))) -@@ -1243,7 +1243,7 @@ HINSHI and FUZOKUGO are information of p - "" - (comm-call-with-proc proc (result) - (comm-format (u s) (wnn-const JS_FILE_LOADED) path) -- (comm-unpack (u) result) -+ (comm-unpack (i) result) - result)) - - (defun wnnrpc-write-file (env fid filename) -@@ -1261,9 +1261,9 @@ HINSHI and FUZOKUGO are information of p - (let ((i 0) - flist - nfiles fid local ref-count type name) -- (comm-unpack (u) nfiles) -+ (comm-unpack (i) nfiles) - (while (> nfiles 0) -- (comm-unpack (u u u u s) fid local ref-count type name) -+ (comm-unpack (i i i i s) fid local ref-count type name) - (setq flist (nconc flist (list (vector fid local ref-count type name))) - nfiles (1- nfiles))) - flist)) -@@ -1284,7 +1284,7 @@ HINSHI and FUZOKUGO are information of p - "3: dictionary, 4: hindo file, 5: fuzokugo-file" - (wnnrpc-call-with-environment env (result) - (comm-format (u u s) (wnn-const JS_FILE_STAT) env-id path) -- (comm-unpack (u) result) -+ (comm-unpack (i) result) - result)) - - (defun wnnrpc-get-file-info (env fid) -@@ -1292,7 +1292,7 @@ HINSHI and FUZOKUGO are information of p - (wnnrpc-call-with-environment env (name local ref-count type) - (comm-format (u u u) (wnn-const JS_FILE_INFO) env-id fid) - (wnnrpc-get-result -- (comm-unpack (s u u u) name local ref-count type) -+ (comm-unpack (s i i i) name local ref-count type) - (vector name local ref-count type)))) - - (defmacro wnnrpc-receive-vector (n) -@@ -1300,7 +1300,7 @@ HINSHI and FUZOKUGO are information of p - (i 0) - j) - (while (< i ,n) -- (comm-unpack (u) j) -+ (comm-unpack (i) j) - (aset v i j) - (setq i (1+ i))) - v)) -@@ -1311,7 +1311,7 @@ HINSHI and FUZOKUGO are information of p - (comm-format (u) (wnn-const JS_WHO)) - (wnnrpc-get-result - (while (> result 0) -- (comm-unpack (u s s) socket username hostname) -+ (comm-unpack (i s s) socket username hostname) - (setq who (nconc who - (list (vector socket username hostname - (wnnrpc-receive-vector -@@ -1324,7 +1324,7 @@ HINSHI and FUZOKUGO are information of p - (comm-format (u) (wnn-const JS_ENV_LIST)) - (wnnrpc-get-result - (while (> result 0) -- (comm-unpack (u s u u u) id name count fuzokugo dic-max) -+ (comm-unpack (i s i i i) id name count fuzokugo dic-max) - (setq envs (nconc envs - (list (vector id name count fuzokugo dic-max - (wnnrpc-receive-vector -@@ -1338,7 +1338,7 @@ HINSHI and FUZOKUGO are information of p - "" - (comm-call-with-proc proc (result) - (comm-format (u) (wnn-const JS_KILL)) -- (comm-unpack (u) result) -+ (comm-unpack (i) result) - result)) - - (defun wnnrpc-delete-dictionary (env dic) -@@ -1357,7 +1357,7 @@ HINSHI and FUZOKUGO are information of p - "" - (wnnrpc-call-with-proc proc (n-dic) - (comm-format (u) (wnn-const JS_DIC_LIST_ALL)) -- (comm-unpack (u) n-dic) -+ (comm-unpack (i) n-dic) - (wnnrpc-receive-dictionary-list proc n-dic))) - - (defun wnnrpc-delete-word (env dic entry) -@@ -1369,15 +1369,15 @@ HINSHI and FUZOKUGO are information of p - (defun wnnrpc-receive-word (proc yomi) - (let (dic serial hinshi hindo right-now internal-hindo internal-right-now - kanji comment l l1) -- (comm-unpack (u) dic) -+ (comm-unpack (i) dic) - (while (>= dic 0) -- (comm-unpack (u u u u u u) serial hinshi hindo right-now -+ (comm-unpack (i i i i i i) serial hinshi hindo right-now - internal-hindo internal-right-now) - (setq l (cons (vector dic serial hinshi hindo right-now - internal-hindo internal-right-now - yomi nil nil) - l)) -- (comm-unpack (u) dic)) -+ (comm-unpack (i) dic)) - (setq l (nreverse l) - l1 l) - (while l1 -@@ -1454,16 +1454,16 @@ HINSHI and FUZOKUGO are information of p - - (defmacro wnnrpc-with-temp-buffer (&rest body) - `(with-temp-buffer -- (let ((coding-system-for-read 'no-conversion) -- (coding-system-for-write 'no-conversion)) -+ (let ((coding-system-for-read 'binary) -+ (coding-system-for-write 'binary)) - (set-buffer-multibyte nil) - ,@body))) - - (defmacro wnnrpc-with-write-file (filename error-handler &rest body) - `(condition-case error - (with-temp-file ,filename -- (let ((coding-system-for-read 'no-conversion) -- (coding-system-for-write 'no-conversion)) -+ (let ((coding-system-for-read 'binary) -+ (coding-system-for-write 'binary)) - (set-buffer-multibyte nil) - ,@body)) - (file-error ,error-handler))) -@@ -1492,7 +1492,7 @@ HINSHI and FUZOKUGO are information of p - (wnn-const WNN_FILE_STRING))) - (progn - (goto-char (1+ (wnn-const WNN_FILE_STRING_LEN))) -- (comm-unpack (u v v v) -+ (comm-unpack (i v v v) - type - uniq1 (wnn-const WNN_UNIQ_LEN) - uniq2 (wnn-const WNN_UNIQ_LEN) -@@ -1511,7 +1511,7 @@ HINSHI and FUZOKUGO are information of p - (cond ((null header) - (- (wnn-const WNN_NOT_A_FILE))) - ((null (car header)) -- (if (file-exists-p path) -+ (if (file-exists-p path) - (- (wnn-const WNN_OPENF_ERR)) - (- (wnn-const WNN_NO_EXIST)))) - (t -@@ -1534,10 +1534,18 @@ HINSHI and FUZOKUGO are information of p - - (defun wnnrpc-make-uniq (attributes) - (wnnrpc-with-temp-buffer -- (comm-format (U i u V) -- (nth 6 attributes) (nth 11 attributes) (nth 10 attributes) -- wnn-system-name (wnn-const WNN_HOST_LEN)) -- (buffer-string))) -+ (let ((ctime (nth 6 attributes)) -+ (ino (nth 10 attributes)) -+ (devno (nth 11 attributes))) -+ (if (numberp devno) -+ (comm-format (U i u V) -+ ctime devno ino -+ wnn-system-name (wnn-const WNN_HOST_LEN)) -+ ;; Emacs 21 returns returns negative devno as 16 bits uint pair -+ (comm-format (U U u V) -+ ctime (list (car devno) (cdr devno)) ino -+ wnn-system-name (wnn-const WNN_HOST_LEN))) -+ (buffer-string)))) - - (defun wnnrpc-change-file-uniq (header path &optional new) - (wnnrpc-with-write-file path -@@ -1558,27 +1566,28 @@ HINSHI and FUZOKUGO are information of p - (defun wnnrpc-check-passwd (proc passwd header) - (let ((env-id -1)) - (unwind-protect -- (if (>= (setq env-id (wnnrpc-connect proc "")) 0) -- (wnnrpc-call-with-environment (wnnenv-create proc env-id) -- (file-id) -- (comm-format (u u v) (wnn-const JS_FILE_SEND) -- env-id -- (nth 1 header) (wnn-const WNN_UNIQ_LEN)) -- (comm-unpack (u) file-id) -- (if (>= file-id 0) -- (progn -- (wnnrpc-get-result) ; ignore result code -- (- (wnn-const WNN_FILE_IN_USE))) -- (wnnrpc-get-result -- (comm-call-with-proc-1 proc () -- (comm-format (s B) -- (concat wnn-system-name "!TEMPFILE") -- (wnnrpc-make-dummy-dictionary header)) -- (wnnrpc-get-result -- (let ((egg-fixed-euc (list egg-fixed-euc egg-fixed-euc))) -- (wnnrpc-set-dictionary (wnnenv-create proc env-id) -- result -1 1 t t -- passwd "" nil)))))))) -+ (if (< (setq env-id (wnnrpc-connect proc "")) 0) -+ -1 -+ (wnnrpc-call-with-environment (wnnenv-create proc env-id) -+ (file-id) -+ (comm-format (u u v) (wnn-const JS_FILE_SEND) -+ env-id -+ (nth 1 header) (wnn-const WNN_UNIQ_LEN)) -+ (comm-unpack (i) file-id) -+ (if (>= file-id 0) -+ (progn -+ (wnnrpc-get-result) ; ignore result code -+ (- (wnn-const WNN_FILE_IN_USE))) -+ (wnnrpc-get-result -+ (comm-call-with-proc-1 proc () -+ (comm-format (s B) -+ (concat wnn-system-name "!TEMPFILE") -+ (wnnrpc-make-dummy-dictionary header)) -+ (wnnrpc-get-result -+ (let ((egg-fixed-euc (list egg-fixed-euc egg-fixed-euc))) -+ (wnnrpc-set-dictionary (wnnenv-create proc env-id) -+ result -1 1 t t -+ passwd "" nil)))))))) - (if (>= env-id 0) - (wnnrpc-disconnect (wnnenv-create proc env-id)))))) - -@@ -1603,7 +1612,7 @@ HINSHI and FUZOKUGO are information of p - (comm-call-with-proc proc (result) - (comm-format (u v) (wnn-const JS_FILE_LOADED_LOCAL) - (nth 1 header) (wnn-const WNN_UNIQ_LEN)) -- (comm-unpack (u) result) -+ (comm-unpack (i) result) - result)))) - - (defun wnnrpc-file-receive (env fid local-filename) -@@ -1629,7 +1638,7 @@ HINSHI and FUZOKUGO are information of p - (wnnrpc-terminate-current-command WNN_FILE_WRITE_ERROR)) - (t - (wnnrpc-with-write-file local-filename -- (- (wnn-const WNN_FILE_WRITE_ERROR)) -+ (- (wnn-const WNN_FILE_WRITE_ERROR)) - (comm-call-with-proc proc () - (comm-format (u) (wnn-const WNN_ACK)) - (comm-unpack (B) contents)) -@@ -1654,7 +1663,7 @@ HINSHI and FUZOKUGO are information of p - (comm-format (u u v) (wnn-const JS_FILE_SEND) - env-id - (nth 1 header) (wnn-const WNN_UNIQ_LEN)) -- (comm-unpack (u) file-id) -+ (comm-unpack (i) file-id) - (if (>= file-id 0) - (wnnrpc-get-result - (wnnenv-set-client-file env filename) -@@ -1705,7 +1714,7 @@ HINSHI and FUZOKUGO are information of p - comment passwd hpasswd)) - 0 - (- (wnn-const WNN_FILE_CREATE_ERROR)))) -- -+ - - (defun wnnrpc-hindo-file-create-client (env fi dic-id freqname comment passwd) - (if (and (null (file-exists-p freqname)) -@@ -1718,9 +1727,9 @@ HINSHI and FUZOKUGO are information of p - (defun wnnrpc-make-temp-name (env) - (let ((n 0) - (temp-form "usr/temp")) -- (while (= (wnnrpc-access env (concat temp-form n) 0) 0) -+ (while (= (wnnrpc-access env (concat temp-form (number-to-string n)) 0) 0) - (setq n (1+ n))) -- (concat temp-form n))) -+ (concat temp-form (number-to-string n)))) - - (defun wnnrpc-create-and-move-to-client (env dic-id filename type - comment passwd hpasswd) -@@ -1750,7 +1759,7 @@ HINSHI and FUZOKUGO are information of p - (cond - ((null filename) "") - ((null (file-readable-p filename)) (- (wnn-const WNN_FILE_READ_ERROR))) -- (t -+ (t - (wnnrpc-with-temp-buffer - (insert-file-contents filename nil 0 (1- (wnn-const WNN_PASSWD_LEN))) - (goto-char 1) -@@ -1759,4 +1768,4 @@ HINSHI and FUZOKUGO are information of p - (backward-char)) - (buffer-substring 1 (point)))))) - --;;; egg/wnnrpc.el ends here. -+;;; egg/wnnrpc.el ends here -Index: its/ascii.el -=================================================================== -RCS file: /cvs/tamago/tamago/its/ascii.el,v -retrieving revision 1.1.1.1 -retrieving revision 1.2 -diff -d -u -p -r1.1.1.1 -r1.2 ---- its/ascii.el 27 Jan 2001 18:45:24 -0000 1.1.1.1 -+++ its/ascii.el 27 Jan 2001 18:53:13 -0000 1.2 -@@ -26,10 +26,7 @@ - ;; Boston, MA 02111-1307, USA. - - ;;; Commentary: --;; --;; Symbol input is desined by jiro@math.keio.ac.jp (TANAKA Jiro) --;; This file is based on the rules of its/hira.el in Mule-2.3 distribution. --;; -+ - - ;;; Code: - -Index: its/aynu.el -=================================================================== -RCS file: its/aynu.el -diff -N its/aynu.el ---- /dev/null 1 Jan 1970 00:00:00 -0000 -+++ its/aynu.el 22 Jul 2002 13:18:56 -0000 1.3 -@@ -0,0 +1,285 @@ -+;;; its/aynu.el --- Aynu Katakana Input in Egg Input Method Architecture -+ -+;; Copyright (C) 1999,2000 PFU LIMITED -+ -+;; Author: KATAYAMA Yoshio <kate@pfu.co.jp> -+ -+;; Maintainer: TOMURA Satoru <tomura@etl.go.jp> -+ -+;; Keywords: mule, multilingual, input method -+ -+;; This file is part of EGG. -+ -+;; EGG is free software; you can redistribute it and/or modify -+;; it under the terms of the GNU General Public License as published by -+;; the Free Software Foundation; either version 2, or (at your option) -+;; any later version. -+ -+;; EGG is distributed in the hope that it will be useful, -+;; but WITHOUT ANY WARRANTY; without even the implied warranty of -+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+;; GNU General Public License for more details. -+ -+;; You should have received a copy of the GNU General Public License -+;; along with GNU Emacs; see the file COPYING. If not, write to the -+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -+;; Boston, MA 02111-1307, USA. -+ -+;;; Commentary: -+ -+ -+;;; Code: -+ -+(eval-when-compile -+ (require 'its) -+ (require 'cl)) -+ -+(eval-when (compile) -+ (defconst its-compaction-enable t)) -+ -+(defvar its-aynu-enable-zenkaku-alphabet -+ (if (boundp 'its-enable-fullwidth-alphabet) -+ its-enable-fullwidth-alphabet -+ t) -+ "*Enable Zenkaku alphabet") -+ -+(defvar its-aynu-horizontal "$(O!<(B" "*-") ; "-" "$(O!=(B" -+(defvar its-aynu-period "$(O!#(B " "*.") ; "." "$(O!#(B" -+(defvar its-aynu-comma "$(O!$(B " "*,") ; "," "$(O!$(B" -+(defvar its-aynu-open-bracket "$(O!V(B" "*[") ; "$(O!N(B" -+(defvar its-aynu-close-bracket "$(O!W(B" "*]") ; "$(O!O(B" -+ -+(defvar its-aynu-enable-double-n nil "*Enable \"nn\" input for \"$(O%s(B\"") -+ -+(defvar its-aynu-kick-conversion-on-space nil "*Start conversion on SPACE") -+ -+(eval-when-compile -+ (defun its-define-state-aynu (input i-tail output o-tail otherwise) -+ "Define following rules: -+INPUT + I-TAIL --> OUTPUT + O-TAIL -+INPUT + I-TAIL + ' --> OUTPUT + O-TAIL -+INPUT + I-TAIL + vowel --> (translate INPUT) + I-tail + vowel -+INPUT + I-TAIL + OTHERWISE (see `its-defrule-otherwise')." -+ (let ((out (concat output o-tail)) -+ state) -+ (setq state (its-defrule (concat input i-tail) out)) -+ (its-defrule (concat input i-tail "'") out) -+ (its-defrule-otherwise state nil "[aiueo]" -2) -+ (while otherwise -+ (its-defrule-otherwise state (concat output (caar otherwise)) -+ (nth 1 (car otherwise)) (nth 2 (car otherwise))) -+ (setq otherwise (cdr otherwise))) -+ (setq state (its-defrule (concat input i-tail "y") (concat out "$(O%#(B"))) -+ (its-make-next-state state -1 out -1) -+ (its-defrule-otherwise state out nil -2) -+ (its-defrule-otherwise state nil "[u]" -3) -+)) -+ -+ (defconst its-aynu-tail-alist -+ (let ((common '(("k" "$(O&n(B" (("$(O%C(B" "[k]" -1))) -+ ("s" "$(O&o(B" (("$(O%C(B" "[s]" -1) (nil "[h]" -2))) -+ ("p" "$(O&x(B" (("$(O%C(B" "[p]" -1))) -+ ("m" "$(O&y(B" (("$(O%s(B" "[mp]" -1))) -+ ("t" "$(O%C(B") ("y" "$(O%#(B") ("w" "$(O%%(B")))) -+ `((?a ("h" "$(O&s(B") ("x" "$(O&s(B") ("r" "$(O&z(B") ,@common) -+ (?i ("h" "$(O&t(B") ("x" "$(O&t(B") ("r" "$(O&{(B") ,@common) -+ (?u ("h" "$(O&u(B") ("x" "$(O&u(B") ("r" "$(O&|(B") ,@common) -+ (?e ("h" "$(O&v(B") ("x" "$(O&v(B") ("r" "$(O&}(B") ,@common) -+ (?o ("h" "$(O&w(B") ("x" "$(O&w(B") ("r" "$(O&~(B") ,@common)))) -+ -+ (defun its-defrule-aynu (conso vowel output) -+ (let ((input (concat conso vowel)) -+ (tails (and vowel (cdr (assq (aref vowel 0) its-aynu-tail-alist))))) -+ (its-defrule input output) -+ (while tails -+ (its-define-state-aynu input (caar tails) output (nth 1 (car tails)) -+ (nth 2 (car tails))) -+ (setq tails (cdr tails))))) -+ -+ (defmacro its-define-aynu (&rest rules) -+ (let ((defs (list 'progn)) -+ conso vowels output) -+ (while rules -+ (setq vowels '(nil "a" "i" "u" "e" "o") -+ conso (caar rules) -+ output (cdar rules) -+ rules (cdr rules)) -+ (while output -+ (when (car output) -+ (setq defs (cons `(its-defrule-aynu ,conso ,(car vowels) -+ ,(car output)) -+ defs))) -+ (setq output (cdr output) -+ vowels (cdr vowels)))) -+ (nreverse defs))) -+ -+ (defun its-defrule-aynu-override-yu (conso) -+ (let ((output (its-get-output (its-goto-state conso))) -+ state) -+ (its-defrule (concat conso "yu") -+ (concat (its-get-output (its-goto-state (concat conso "i"))) -+ "$(O%e!<(B")) -+ (setq state (its-goto-state (concat conso "y"))) -+ (its-set-output state (concat output "$(O%#(B")) -+ (its-make-next-state state -1 output -1) -+ (its-defrule-otherwise state output nil -2)))) -+ -+(define-its-state-machine its-aynu-map -+ "roma-aynu-kata" "$(O%"(B" Aynu -+ "Map for Romaji-Aynu-Katakana translation. (Japanese)" -+ -+ (defconst its-zenkaku-escape "Z") ;; Escape character to Zenkaku inputs -+ (defconst its-hankaku-escape "~") ;; Escape character to Hankaku inputs -+ -+ (its-defrule-select-mode-temporally "q" downcase) -+ (its-defrule-select-mode-temporally "Q" zenkaku-downcase) -+ -+ (dolist (small '(("a" "$(O%!(B") ("i" "$(O%#(B") ("u" "$(O%%(B") ("e" "$(O%'(B") ("o" "$(O%)(B") -+ ("ka" "$(O%u(B") ("ku" "$(O&n(B") ("ke" "$(O%v(B") -+ ("si" "$(O&o(B") ("su" "$(O&p(B") -+ ("tu" "$(O%C(B") ("to" "$(O&q(B") -+ ("nu" "$(O&r(B") -+ ("ha" "$(O&s(B") ("hi" "$(O&t(B") ("hu" "$(O&u(B") ("he" "$(O&v(B") ("ho" "$(O&w(B") -+ ("pu" "$(O&x(B") -+ ("mu" "$(O&y(B") -+ ("ya" "$(O%c(B") ("yu" "$(O%e(B") ("yo" "$(O%g(B") -+ ("ra" "$(O&z(B") ("ri" "$(O&{(B") ("ru" "$(O&|(B") ("re" "$(O&}(B") ("ro" "$(O&~(B") -+ ("wa" "$(O%n(B"))) -+ (its-defrule (concat "x" (car small)) (cadr small))) -+ -+ (its-define-aynu -+ ("" nil "$(O%"(B" "$(O%$(B" "$(O%&(B" "$(O%((B" "$(O%*(B") -+ ("k" "$(O&n(B" "$(O%+(B" "$(O%-(B" "$(O%/(B" "$(O%1(B" "$(O%3(B") -+ ("g" "$(O%0(B" "$(O%,(B" "$(O%.(B" "$(O%0(B" "$(O%2(B" "$(O%4(B") -+ ("s" "$(O&p(B" "$(O%5(B" "$(O%7(B" "$(O%9(B" "$(O%;(B" "$(O%=(B") -+ ("z" nil "$(O%6(B" "$(O%8(B" "$(O%:(B" "$(O%<(B" "$(O%>(B") -+ ("vs" nil nil nil nil "$(O%|(B" nil) -+ ("sh" "$(O%7%c(B" "$(O%7%c(B" "$(O%7(B" "$(O%7%e(B" "$(O%7%'(B" "$(O%7%g(B") -+ ("j" nil "$(O%8%c(B" "$(O%8(B" "$(O%8%e(B" "$(O%8%'(B" "$(O%8%g(B") -+ ("t" "$(O%C(B" "$(O%?(B" "$(O%A(B" "$(O%H%%(B" "$(O%F(B" "$(O%H(B") -+ ("vt" nil nil nil "$(O%}(B" nil "$(O%~(B") -+ ("d" nil "$(O%@(B" "$(O%B(B" "$(O%E(B" "$(O%G(B" "$(O%I(B") -+ ("c" "$(O%C(B" "$(O%A%c(B" "$(O%A(B" "$(O%A%e(B" "$(O%A%'(B" "$(O%A%g(B") -+ ("ch" "$(O%C(B" "$(O%A%c(B" "$(O%A(B" "$(O%A%e(B" "$(O%A%'(B" "$(O%A%g(B") -+ ("n" "$(O%s(B" "$(O%J(B" "$(O%K(B" "$(O%L(B" "$(O%M(B" "$(O%N(B") -+ ("h" "$(O&s(B" "$(O%O(B" "$(O%R(B" "$(O%U(B" "$(O%X(B" "$(O%[(B") -+ ("b" nil "$(O%P(B" "$(O%S(B" "$(O%V(B" "$(O%Y(B" "$(O%\(B") -+ ("p" "$(O&x(B" "$(O%Q(B" "$(O%T(B" "$(O%W(B" "$(O%Z(B" "$(O%](B") -+ ("m" "$(O&y(B" "$(O%^(B" "$(O%_(B" "$(O%`(B" "$(O%a(B" "$(O%b(B") -+ ("y" "$(O%#(B" "$(O%d(B" "$(O%#(B" "$(O%f(B" "$(O%$%'(B" "$(O%h(B") -+ ("r" "$(O&|(B" "$(O%i(B" "$(O%j(B" "$(O%k(B" "$(O%l(B" "$(O%m(B") -+ ("w" "$(O%%(B" "$(O%o(B" "$(O%&%#(B" "$(O%%(B" "$(O%&%'(B" "$(O%&%)(B")) -+ -+ (dolist (yu '("k" "g" "s" "z" "sh" "j" "t" "d" -+ "c" "ch" "n" "h" "b" "p" "m" "r")) -+ (its-defrule-aynu-override-yu yu)) -+ -+ (its-defrule "kk" "$(O%C(B" -1) -+ (its-defrule "ss" "$(O%C(B" -1) -+ (its-defrule "pp" "$(O%C(B" -1) -+ (its-defrule "vv" "$(O%C(B" -1) -+ -+;; SYMBOL Input -+ (its-defrule "z1" "$(O!{(B") (its-defrule "z!" "$(O!|(B") -+ (its-defrule "z2" "$(O"&(B") (its-defrule "z@" "$(O"'(B") -+ (its-defrule "z3" "$(O"$(B") (its-defrule "z#" "$(O"%(B") -+ (its-defrule "z4" "$(O""(B") (its-defrule "z$" "$(O"#(B") -+ (its-defrule "z5" "$(O!~(B") (its-defrule "z%" "$(O"!(B") -+ (its-defrule "z6" "$(O!y(B") (its-defrule "z^" "$(O!z(B") -+ (its-defrule "z7" "$(O!}(B") (its-defrule "z&" "$(O!r(B") -+ (its-defrule "z8" "$(O!q(B") (its-defrule "z*" "$(O!_(B") -+ (its-defrule "z9" "$(O!i(B") (its-defrule "z(" "$(O!Z(B") -+ (its-defrule "z0" "$(O!j(B") (its-defrule "z)" "$(O![(B") -+ (its-defrule "z-" "$(O!A(B") (its-defrule "z_" "$(O!h(B") -+ (its-defrule "z=" "$(O!b(B") (its-defrule "z+" "$(O!^(B") -+ (its-defrule "z\\" "$(O!@(B") (its-defrule "z|" "$(O!B(B") -+ (its-defrule "z`" "$(O!-(B") (its-defrule "z~" "$(O!/(B") -+ -+ (its-defrule "zq" "$(O!T(B") (its-defrule "zQ" "$(O!R(B") -+ (its-defrule "zw" "$(O!U(B") (its-defrule "zW" "$(O!S(B") -+ ; e -+ (its-defrule "zr" "$(O!9(B") (its-defrule "zR" "$(O!8(B") -+ (its-defrule "zt" "$(O!:(B") (its-defrule "zT" "$(O!x(B") -+ ; y u i o -+ (its-defrule "zp" "$(O")(B") (its-defrule "zP" "$(O",(B") -+ (its-defrule "z[" "$(O!X(B") (its-defrule "z{" "$(O!L(B") -+ (its-defrule "z]" "$(O!Y(B") (its-defrule "z}" "$(O!M(B") -+ ; a -+ (its-defrule "zs" "$(O!3(B") (its-defrule "zS" "$(O!4(B") -+ (its-defrule "zd" "$(O!5(B") (its-defrule "zD" "$(O!6(B") -+ (its-defrule "zf" "$(O!7(B") (its-defrule "zF" "$(O"*(B") -+ (its-defrule "zg" "$(O!>(B") (its-defrule "zG" "$(O!=(B") -+ (its-defrule "zh" "$(O"+(B") -+ (its-defrule "zj" "$(O"-(B") -+ (its-defrule "zk" "$(O",(B") -+ (its-defrule "zl" "$(O"*(B") -+ (its-defrule "z;" "$(O!+(B") (its-defrule "z:" "$(O!,(B") -+ (its-defrule "z\'" "$(O!F(B") (its-defrule "z\"" "$(O!H(B") -+ ; z -+ (its-defrule "zx" ":-") (its-defrule "zX" ":-)") -+ (its-defrule "zc" "$(O!;(B") (its-defrule "zC" "$(O!n(B") -+ (its-defrule "zv" "$(O"((B") (its-defrule "zV" "$(O!`(B") -+ (its-defrule "zb" "$(O!k(B") (its-defrule "zB" "$(O"+(B") -+ (its-defrule "zn" "$(O!l(B") (its-defrule "zN" "$(O"-(B") -+ (its-defrule "zm" "$(O!m(B") (its-defrule "zM" "$(O".(B") -+ (its-defrule "z," "$(O!E(B") (its-defrule "z<" "$(O!e(B") -+ (its-defrule "z." "$(O!D(B") (its-defrule "z>" "$(O!f(B") -+ (its-defrule "z/" "$(O!&(B") (its-defrule "z?" "$(O!g(B") -+ ) -+ -+(define-its-state-machine-append its-aynu-map -+ (if its-aynu-enable-double-n -+ (its-defrule "nn" "$(O%s(B")) -+ -+ (its-defrule "-" its-aynu-horizontal) -+ (its-defrule "." its-aynu-period) -+ (its-defrule "," its-aynu-comma) -+ (its-defrule "[" its-aynu-open-bracket) -+ (its-defrule "]" its-aynu-close-bracket) -+ -+ (unless its-aynu-kick-conversion-on-space -+ (its-defrule " " " ")) -+ -+ (if its-aynu-enable-zenkaku-alphabet -+ (progn -+ (its-defrule "1" "$(O#1(B") (its-defrule "2" "$(O#2(B") -+ (its-defrule "3" "$(O#3(B") (its-defrule "4" "$(O#4(B") -+ (its-defrule "5" "$(O#5(B") (its-defrule "6" "$(O#6(B") -+ (its-defrule "7" "$(O#7(B") (its-defrule "8" "$(O#8(B") -+ (its-defrule "9" "$(O#9(B") (its-defrule "0" "$(O#0(B") -+ (its-defrule "!" "$(O!*(B") (its-defrule "@" "$(O!w(B") -+ (its-defrule "#" "$(O!t(B") (its-defrule "$" "$(O!p(B") -+ (its-defrule "%" "$(O!s(B") (its-defrule "^" "$(O!0(B") -+ (its-defrule "&" "$(O!u(B") (its-defrule "*" "$(O!v(B") -+ (its-defrule "(" "$(O!J(B") (its-defrule ")" "$(O!K(B") -+ (its-defrule "=" "$(O!a(B") (its-defrule "`" "$(O!.(B") -+ (its-defrule "\\" "$(O!o(B") (its-defrule "|" "$(O!C(B") -+ (its-defrule "_" "$(O!2(B") (its-defrule "+" "$(O!\(B") -+ (its-defrule "{" "$(O!P(B") (its-defrule "}" "$(O!Q(B") -+ (its-defrule ":" "$(O!'(B") (its-defrule ";" "$(O!((B") -+ (its-defrule "\"" "$(O!I(B") (its-defrule "'" "$(O!G(B") -+ (its-defrule "<" "$(O!c(B") (its-defrule ">" "$(O!d(B") -+ (its-defrule "?" "$(O!)(B") (its-defrule "/" "$(O!?(B")) -+ (progn -+ (its-defrule "1" "1") (its-defrule "2" "2") -+ (its-defrule "3" "3") (its-defrule "4" "4") -+ (its-defrule "5" "5") (its-defrule "6" "6") -+ (its-defrule "7" "7") (its-defrule "8" "8") -+ (its-defrule "9" "9") (its-defrule "0" "0") -+ (its-defrule "!" "!") (its-defrule "@" "@") -+ (its-defrule "#" "#") (its-defrule "$" "$") -+ (its-defrule "%" "%") (its-defrule "^" "^") -+ (its-defrule "&" "&") (its-defrule "*" "*") -+ (its-defrule "(" "(") (its-defrule ")" ")") -+ (its-defrule "=" "=") (its-defrule "`" "`") -+ (its-defrule "\\" "\\") (its-defrule "|" "|") -+ (its-defrule "_" "_") (its-defrule "+" "+") -+ (its-defrule "{" "{") (its-defrule "}" "}") -+ (its-defrule ":" ":") (its-defrule ";" ";") -+ (its-defrule "\"" "\"") (its-defrule "'" "'") -+ (its-defrule "<" "<") (its-defrule ">" ">") -+ (its-defrule "?" "?") (its-defrule "/" "/")))) -+ -+(provide 'its/aynu) -+ -+;;; its/aynu.el ends here -Index: its/greek.el -=================================================================== -RCS file: its/greek.el -diff -N its/greek.el ---- /dev/null 1 Jan 1970 00:00:00 -0000 -+++ its/greek.el 20 Aug 2001 10:09:07 -0000 1.1 -@@ -0,0 +1,251 @@ -+(eval-when-compile -+ (require 'its) -+ (require 'cl)) -+ -+(eval-when (compile) -+ (defconst its-compaction-enable t)) -+ -+(defgroup greek nil -+ "Greek Input Method" -+ :group 'its) -+ -+(define-its-state-machine its-greek-jis-map -+ "greek-jis" "$B&8(B" Greek -+ "$B&%&K&K&G&M&I&J&A(B: Greek keyboard layout (JIS X0208.1983) -+ -+The layout is same as greek, but uses JIS characters. -+Sorry, accents and terminal sigma are not supported in JIS." -+ -+ (its-defrule "1" "$B#1(B") -+ (its-defrule "2" "$B#2(B") -+ (its-defrule "3" "$B#3(B") -+ (its-defrule "4" "$B#4(B") -+ (its-defrule "5" "$B#5(B") -+ (its-defrule "6" "$B#6(B") -+ (its-defrule "7" "$B#7(B") -+ (its-defrule "8" "$B#8(B") -+ (its-defrule "9" "$B#9(B") -+ (its-defrule "0" "$B#0(B") -+ (its-defrule "-" "$B!](B") -+ (its-defrule "=" "$B!a(B") -+ (its-defrule "`" "$B!F(B") -+ (its-defrule "q" "$B!&(B") -+ (its-defrule "w" "$B&R(B") -+ (its-defrule "e" "$B&E(B") -+ (its-defrule "r" "$B&Q(B") -+ (its-defrule "t" "$B&S(B") -+ (its-defrule "y" "$B&T(B") -+ (its-defrule "u" "$B&H(B") -+ (its-defrule "i" "$B&I(B") -+ (its-defrule "o" "$B&O(B") -+ (its-defrule "p" "$B&P(B") -+ (its-defrule "[" "$B!N(B") -+ (its-defrule "]" "$B!O(B") -+ (its-defrule "a" "$B&A(B") -+ (its-defrule "s" "$B&R(B") -+ (its-defrule "d" "$B&D(B") -+ (its-defrule "f" "$B&U(B") -+ (its-defrule "g" "$B&C(B") -+ (its-defrule "h" "$B&G(B") -+ (its-defrule "j" "$B&N(B") -+ (its-defrule "k" "$B&J(B") -+ (its-defrule "l" "$B&K(B") -+ (its-defrule ";" "$B!G(B") -+ (its-defrule "'" "$B!G(B") -+ (its-defrule "\\" "$B!@(B") -+ (its-defrule "z" "$B&F(B") -+ (its-defrule "x" "$B&V(B") -+ (its-defrule "c" "$B&W(B") -+ (its-defrule "v" "$B&X(B") -+ (its-defrule "b" "$B&B(B") -+ (its-defrule "n" "$B&M(B") -+ (its-defrule "m" "$B&L(B") -+ (its-defrule "," ", ") -+ (its-defrule "." ". ") -+ (its-defrule "/" "$B!?(B") -+ -+ (its-defrule "!" "$B!*(B") -+ (its-defrule "@" "$B!w(B") -+ (its-defrule "#" "$B!t(B") -+ (its-defrule "$" "$B!t(B") -+ (its-defrule "%" "$B!s(B") -+ (its-defrule "^" "$B!0(B") -+ (its-defrule "&" "$B!u(B") -+ (its-defrule "*" "$B!v(B") -+ (its-defrule "(" "$B!J(B") -+ (its-defrule ")" "$B!K(B") -+ (its-defrule "_" "$B!2(B") -+ (its-defrule "+" "$B!\(B") -+ (its-defrule "~" "$B!1(B") -+ (its-defrule "Q" "$B!](B") -+ (its-defrule "W" "$B&2(B") -+ (its-defrule "E" "$B&%(B") -+ (its-defrule "R" "$B&1(B") -+ (its-defrule "T" "$B&3(B") -+ (its-defrule "Y" "$B&4(B") -+ (its-defrule "U" "$B&((B") -+ (its-defrule "I" "$B&)(B") -+ (its-defrule "O" "$B&/(B") -+ (its-defrule "P" "$B&1(B") -+ (its-defrule "{" "$B!P(B") -+ (its-defrule "}" "$B!Q(B") -+ (its-defrule "A" "$B&!(B") -+ (its-defrule "S" "$B&2(B") -+ (its-defrule "D" "$B&$(B") -+ (its-defrule "F" "$B&5(B") -+ (its-defrule "G" "$B&#(B") -+ (its-defrule "H" "$B&'(B") -+ (its-defrule "J" "$B&.(B") -+ (its-defrule "K" "$B&*(B") -+ (its-defrule "L" "$B&+(B") -+ (its-defrule ":" "$B!I(B") -+ (its-defrule "\"" "$B!I(B") -+ (its-defrule "|" "$B!C(B") -+ (its-defrule "Z" "$B&&(B") -+ (its-defrule "X" "$B&6(B") -+ (its-defrule "C" "$B&7(B") -+ (its-defrule "V" "$B&8(B") -+ (its-defrule "B" "$B&"(B") -+ (its-defrule "N" "$B&-(B") -+ (its-defrule "M" "$B&,(B") -+ (its-defrule "<" "$B!((B") -+ (its-defrule ">" "$B!'(B") -+ (its-defrule "?" "$B!)(B")) -+ -+(define-its-state-machine its-greek-map -+ "greek" ",FY(B" Greek -+ ",FEkkgmij\(B: Greek keyboard layout (ISO 8859-7) -+-------------- -+ -+In the right of ,Fk(B key is a combination key, where -+ ,F4(B acute -+ ,F((B diaresis -+ -+e.g. -+ ,Fa(B + ,F4(B -> ,F\(B -+ ,Fi(B + ,F((B -> ,Fz(B -+ ,Fi(B + ,F((B + ,F4(B -> ,F@(B" -+ -+;; 1! 2@ 3# 4$ 5% 6^ 7& 8* 9( 0) -_ =+ `~ -+;; ,F7/(B ,FrS(B ,FeE(B ,FqQ(B ,FtT(B ,FuU(B ,FhH(B ,FiI(B ,FoO(B ,FpP(B [{ ]} -+;; ,FaA(B ,FsS(B ,FdD(B ,FvV(B ,FcC(B ,FgG(B ,FnN(B ,FjJ(B ,FkK(B ,F4((B '" \| -+;; ,FfF(B ,FwW(B ,FxX(B ,FyY(B ,FbB(B ,FmM(B ,FlL(B ,; .: /? -+ -+ (its-defrule "1" "1") -+ (its-defrule "2" "2") -+ (its-defrule "3" "3") -+ (its-defrule "4" "4") -+ (its-defrule "5" "5") -+ (its-defrule "6" "6") -+ (its-defrule "7" "7") -+ (its-defrule "8" "8") -+ (its-defrule "9" "9") -+ (its-defrule "0" "0") -+ (its-defrule "-" "-") -+ (its-defrule "=" "=") -+ (its-defrule "`" "`") -+ (its-defrule "q" ",F7(B") -+ (its-defrule "w" ",Fr(B") -+ (its-defrule "e" ",Fe(B") -+ (its-defrule "r" ",Fq(B") -+ (its-defrule "t" ",Ft(B") -+ (its-defrule "y" ",Fu(B") -+ (its-defrule "u" ",Fh(B") -+ (its-defrule "i" ",Fi(B") -+ (its-defrule "o" ",Fo(B") -+ (its-defrule "p" ",Fp(B") -+ (its-defrule "[" "[") -+ (its-defrule "]" "]") -+ (its-defrule "a" ",Fa(B") -+ (its-defrule "s" ",Fs(B") -+ (its-defrule "d" ",Fd(B") -+ (its-defrule "f" ",Fv(B") -+ (its-defrule "g" ",Fc(B") -+ (its-defrule "h" ",Fg(B") -+ (its-defrule "j" ",Fn(B") -+ (its-defrule "k" ",Fj(B") -+ (its-defrule "l" ",Fk(B") -+ (its-defrule ";" ",F4(B") -+ (its-defrule "'" "'") -+ (its-defrule "\\" "\\") -+ (its-defrule "z" ",Ff(B") -+ (its-defrule "x" ",Fw(B") -+ (its-defrule "c" ",Fx(B") -+ (its-defrule "v" ",Fy(B") -+ (its-defrule "b" ",Fb(B") -+ (its-defrule "n" ",Fm(B") -+ (its-defrule "m" ",Fl(B") -+ (its-defrule "," ",") -+ (its-defrule "." ".") -+ (its-defrule "/" "/") -+ -+ (its-defrule "!" "!") -+ (its-defrule "@" "@") -+ (its-defrule "#" "#") -+ (its-defrule "$" "$") -+ (its-defrule "%" "%") -+ (its-defrule "^" "^") -+ (its-defrule "&" "&") -+ (its-defrule "*" "*") -+ (its-defrule "(" "(") -+ (its-defrule ")" ")") -+ (its-defrule "_" "_") -+ (its-defrule "+" "+") -+ (its-defrule "~" "~") -+ (its-defrule "Q" ",F/(B") -+ (its-defrule "W" ",FS(B") -+ (its-defrule "E" ",FE(B") -+ (its-defrule "R" ",FQ(B") -+ (its-defrule "T" ",FT(B") -+ (its-defrule "Y" ",FU(B") -+ (its-defrule "U" ",FH(B") -+ (its-defrule "I" ",FI(B") -+ (its-defrule "O" ",FO(B") -+ (its-defrule "P" ",FP(B") -+ (its-defrule "{" "{") -+ (its-defrule "}" "}") -+ (its-defrule "A" ",FA(B") -+ (its-defrule "S" ",FS(B") -+ (its-defrule "D" ",FD(B") -+ (its-defrule "F" ",FV(B") -+ (its-defrule "G" ",FC(B") -+ (its-defrule "H" ",FG(B") -+ (its-defrule "J" ",FN(B") -+ (its-defrule "K" ",FJ(B") -+ (its-defrule "L" ",FK(B") -+ (its-defrule ":" ",F((B") -+ (its-defrule "\"" "\"") -+ (its-defrule "|" "|") -+ (its-defrule "Z" ",FF(B") -+ (its-defrule "X" ",FW(B") -+ (its-defrule "C" ",FX(B") -+ (its-defrule "V" ",FY(B") -+ (its-defrule "B" ",FB(B") -+ (its-defrule "N" ",FM(B") -+ (its-defrule "M" ",FL(B") -+ (its-defrule "<" ";") -+ (its-defrule ">" ":") -+ (its-defrule "?" "?") -+ -+ (its-defrule "a;" ",F\(B") -+ (its-defrule "e;" ",F](B") -+ (its-defrule "h;" ",F^(B") -+ (its-defrule "i;" ",F_(B") -+ (its-defrule "o;" ",F|(B") -+ (its-defrule "y;" ",F}(B") -+ (its-defrule "v;" ",F~(B") -+ (its-defrule "A;" ",F6(B") -+ (its-defrule "E;" ",F8(B") -+ (its-defrule "H;" ",F9(B") -+ (its-defrule "I;" ",F:(B") -+ (its-defrule "O;" ",F<(B") -+ (its-defrule "Y;" ",F>(B") -+ (its-defrule "V;" ",F?(B") -+ (its-defrule "i:" ",Fz(B") -+ (its-defrule "y:" ",F{(B") -+ (its-defrule "I:" ",FZ(B") -+ (its-defrule "Y:" ",F[(B") -+ (its-defrule "i:;" ",F@(B") -+ (its-defrule "y:;" ",F`(B")) -+ -+(provide 'its/greek) -Index: its/hankata.el -=================================================================== -RCS file: /cvs/tamago/tamago/its/hankata.el,v -retrieving revision 1.1.1.2 -retrieving revision 1.2 -diff -d -u -p -r1.1.1.2 -r1.2 ---- its/hankata.el 27 Jan 2001 18:45:56 -0000 1.1.1.2 -+++ its/hankata.el 27 Jan 2001 18:53:13 -0000 1.2 -@@ -24,10 +24,7 @@ - ;; Boston, MA 02111-1307, USA. - - ;;; Commentary: --;; --;; Symbol input is desined by jiro@math.keio.ac.jp (TANAKA Jiro) --;; This file is based on the rules of its/kata.el in Mule-2.3 distribution. --;; -+ - - ;;; Code: - -Index: its/jeonkak.el -=================================================================== -RCS file: /cvs/tamago/tamago/its/jeonkak.el,v -retrieving revision 1.1.1.1 -retrieving revision 1.2 -diff -d -u -p -r1.1.1.1 -r1.2 ---- its/jeonkak.el 27 Jan 2001 18:45:24 -0000 1.1.1.1 -+++ its/jeonkak.el 27 Jan 2001 18:53:13 -0000 1.2 -@@ -26,10 +26,7 @@ - ;; Boston, MA 02111-1307, USA. - - ;;; Commentary: --;; --;; Symbol input is desined by jiro@math.keio.ac.jp (TANAKA Jiro) --;; This file is based on the rules of its/hira.el in Mule-2.3 distribution. --;; -+ - - ;;; Code: - -Index: its/pinyin.el -=================================================================== -RCS file: /cvs/tamago/tamago/its/pinyin.el,v -retrieving revision 1.1.1.1 -retrieving revision 1.3 -diff -d -u -p -r1.1.1.1 -r1.3 ---- its/pinyin.el 27 Jan 2001 18:45:24 -0000 1.1.1.1 -+++ its/pinyin.el 22 Jul 2002 13:18:56 -0000 1.3 -@@ -4,7 +4,7 @@ - - ;; Author: KATAYAMA Yoshio <kate@pfu.co.jp> - --;; Maintainer: TOMURA Satoru <tomura@etl.go.jp> -+;; Maintainer: TOMURA Satoru <tomura@etl.go.jp> - - ;; Keywords: mule, multilingual, input method - -@@ -237,7 +237,7 @@ - - (dolist (ascii '(("0" . "$A#0(B") ("1" . "$A#1(B") ("2" . "$A#2(B") ("3" . "$A#3(B") - ("4" . "$A#4(B") ("5" . "$A#5(B") ("6" . "$A#6(B") ("7" . "$A#7(B") -- ("8" . "$A#8(B") ("9" . "$A#9(B") -+ ("8" . "$A#8(B") ("9" . "$A#9(B") - (" " . "$A!!(B") ("!" . "$A#!(B") ("@" . "$A#@(B") ("#" . "$A##(B") - ("$" . "$A!g(B") ("%" . "$A#%(B") ("^" . "$A#^(B") ("&" . "$A#&(B") - ("*" . "$A#*(B") ("(" . "$A#((B") (")" . "$A#)(B") -@@ -311,7 +311,7 @@ - - (dolist (ascii '(("0" . "$(G$!(B") ("1" . "$(G$"(B") ("2" . "$(G$#(B") ("3" . "$(G$$(B") - ("4" . "$(G$%(B") ("5" . "$(G$&(B") ("6" . "$(G$'(B") ("7" . "$(G$((B") -- ("8" . "$(G$)(B") ("9" . "$(G$*(B") -+ ("8" . "$(G$)(B") ("9" . "$(G$*(B") - (" " . "$(G!!(B") ("!" . "$(G!*(B") ("@" . "$(G"i(B") ("#" . "$(G!l(B") - ("$" . "$(G"c(B") ("%" . "$(G"h(B") ("^" . "$(G!T(B") ("&" . "$(G!m(B") - ("*" . "$(G!n(B") ("(" . "$(G!>(B") (")" . "$(G!?(B") -Index: its/quanjiao.el -=================================================================== -RCS file: /cvs/tamago/tamago/its/quanjiao.el,v -retrieving revision 1.1.1.1 -retrieving revision 1.2 -diff -d -u -p -r1.1.1.1 -r1.2 ---- its/quanjiao.el 27 Jan 2001 18:45:24 -0000 1.1.1.1 -+++ its/quanjiao.el 27 Jan 2001 18:53:13 -0000 1.2 -@@ -26,10 +26,7 @@ - ;; Boston, MA 02111-1307, USA. - - ;;; Commentary: --;; --;; Symbol input is desined by jiro@math.keio.ac.jp (TANAKA Jiro) --;; This file is based on the rules of its/hira.el in Mule-2.3 distribution. --;; -+ - - ;;; Code: - -Index: its/thai.el -=================================================================== -RCS file: /cvs/tamago/tamago/its/thai.el,v -retrieving revision 1.1.1.1 -retrieving revision 1.3 -diff -d -u -p -r1.1.1.1 -r1.3 -Index: its/zenkaku.el -=================================================================== -RCS file: /cvs/tamago/tamago/its/zenkaku.el,v -retrieving revision 1.1.1.1 -retrieving revision 1.2 -diff -d -u -p -r1.1.1.1 -r1.2 ---- its/zenkaku.el 27 Jan 2001 18:45:24 -0000 1.1.1.1 -+++ its/zenkaku.el 27 Jan 2001 18:53:13 -0000 1.2 -@@ -26,10 +26,7 @@ - ;; Boston, MA 02111-1307, USA. - - ;;; Commentary: --;; --;; Symbol input is desined by jiro@math.keio.ac.jp (TANAKA Jiro) --;; This file is based on the rules of its/hira.el in Mule-2.3 distribution. --;; -+ - - ;;; Code: - -Index: its/zhuyin.el -=================================================================== -RCS file: /cvs/tamago/tamago/its/zhuyin.el,v -retrieving revision 1.1.1.1 -retrieving revision 1.2 -diff -d -u -p -r1.1.1.1 -r1.2 ---- its/zhuyin.el 27 Jan 2001 18:45:24 -0000 1.1.1.1 -+++ its/zhuyin.el 27 Jan 2001 18:53:13 -0000 1.2 -@@ -142,9 +142,9 @@ - (mapcar (lambda (s) (its-defoutput (car s) (nth 1 s))) - (list B P M F D T N L G K H J Q X)) - -- (its-defrule (concat (car N) 2) (concat (nth 1 N) "(0B(B")) -- (its-defrule (concat (car N) 3) (concat (nth 1 N) "(0C(B")) -- (its-defrule (concat (car N) 4) (concat (nth 1 N) "(0D(B"))))) -+ (its-defrule (concat (car N) "2") (concat (nth 1 N) "(0B(B")) -+ (its-defrule (concat (car N) "3") (concat (nth 1 N) "(0C(B")) -+ (its-defrule (concat (car N) "4") (concat (nth 1 N) "(0D(B"))))) - - (define-its-state-machine its-zhuyin-cn-map - "zhuyin-cn" "$AW"(BG" Chinese-GB |