summaryrefslogtreecommitdiff
path: root/editors/tamago/patches/patch-aa
diff options
context:
space:
mode:
Diffstat (limited to 'editors/tamago/patches/patch-aa')
-rw-r--r--editors/tamago/patches/patch-aa12786
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