XIM support improvement patch for GNU/Emacs20 (Emacs20.4 - Emacs20.7)

Revisions:
1999/08/16: Created for Emacs20.4.
1999/10/10: Revised.
2000/07/13: Revised. I replaced Emacs20.4 with Emacs20. Added Solaris8 issue.


* What is this:
GNU/Emacs20 supports XIM(X Input Method) input.
However, the features Emacs provides are insufficient, especially for Japanese input.
This patch is intended to improve XIM supports.
You can apply this patch to Emacs20.x after Emacs20.4.
More precisely, the original files haven't been changed since Emacs20.4.


* Improved features:
** Stability, especially on X11R6.
Emacs20's XIM implementation is not stable on some environments.
I believe this patch improves the stability.

** Support more XIM styles.
Emacs20 supports only "XIMPreeditNothing | XIMStatusNothing" style.
This patch supports "XIMPreeditPosition | XIMStatusArea" style in addition.

** Support destroy callbacks (only on X11R6).
Emacs20 dies whenever the connected XIM server dies.
With destroy callback support, Emacs becomes more stable.

** Support instantiate callbacks (only on X11R6).
With instantiate callback support, Emacs can connect with XIM server during run-time.


* Usage:
Please read USAGE file.


* Todo:
** To provide a way to specify your favorite XIM style.

** To pass complete base fontset name to XCreateFontSet.
I think this is partially resolved.

** For configure script to have --with-xim option.(necessary?)

** Solaris8 issue:
You need an additional patch, although this is experimental.
Please apply two patches as follows,
% cd emacs-20.7
% patch -p1 < emacs20-xim-20000713.diff
% patch -p1 < emacs20-xim-20000713.sol.diff


* URL:
http://www.ainet.or.jp/~inoue/software/emacs-xim/index-e.html (English)
http://www.ainet.or.jp/~inoue/software/emacs-xim/index.html (Japanese)


* Bug reports etc:
Please send e-mail to the following address.
inoue@ainet.or.jp

