

                     Implementaion Note

                         31 May, 1994

                   Ximp Implementation Group



* Overview 
^^^^^^^^^^
This note describes the modefications of the original X11R6 source
(xc/lib/X11) to support Ximp.

The following files are modified to support multiple input method 
protocols.

     xc/lib/X11     Ximp
    ----------------------------
     XimImSw.h  ->  XimImSw.h
     Ximint.h   ->  Ximint.h
     imConv.c   ->  XimConv.c
     imDefIm.c  ->  XimDefIm.c
     imImSw.c   ->  XimImSw.c
     imInt.c    ->  XimInt.c

The next senction describes the details.


* Specification
^^^^^^^^^^^^^^^
 1) OpenIM() and its layer are changed.

  (Current)

    +----------------------------------+
    |             XOpenIM()            |
    |                                  |
    +----------------------------------+
    |           _XimOpenIM()           |
    |                                  |...(1)
    +-----------+----------+-----------+
    |_XimLocal  |_XimThai  |_XimProto  |
    |   OpenIM()|  OpenIM()|   OpenIM()|...(2)
    +-----------+----------+-----------+

    (1) hook for lcd->methods->open_im 
    (2) hook for _XimImSportRec[n].im_open

  (New)

    +----------------------------------------------------------+
    |                       XOpenIM()                          |
    |                                                          |
    +----------------------------------------------------------+
    |                      _XimSWOpenIM()                      |
    |                                                          |...(1)
    +-------------------------------+-----------+//+-----------+
    |        _XimOpenIM()           |_Ximp      |  |_XimDelay  |
    |                               |  _OpenIM()|  |   OpenIM()|...(2)
    +----------+---------+----------+-----------+//+-----------+
    |_XimLocal |_XimThai |_XimProto |
    |  OpenIM()| OpenIM()|  OpenIM()|...(3)
    +----------+---------+----------+

    (1) hook for lcd->methods->open_im
    (2) hook for _XimImSportProtocolRec[n].im_open
          (for other protocols than XIM protocol)
    (3) hook for _XimImSportRec[n].im_open
          (for XIM protocol)

   [Changed files]
      - Ximint.h
          Add function definitions
      - XimDefIm.c
          Unify the functions for DelayBind Mode
      - XimInt.c
          Modify function to change the layer
      - XimImSw.h
      - XimImSw.c
          Define new hooks

 2) Converters for inside use only can be accessed from outside 

   [Changed files]
      - XimConv.c
          Add function to access converters from outside



				Takashi Fujiwara
                                FUJITSU LIMITED
				fujiwara@a80.tech.yk.fujitsu.co.jp

