2003-05-07  MIYASHITA Hisashi  <himi@li18nux.org>

	* IMdkit/Makefile.in (IM_TOPDIR, IM_INCLUDEDIR, CSCONV_DIR) 
	(X_PRIVATEINC): New macros (substituted by configure)
	(INCLUDES): Use the above macros to construct the actual value.

	* IMdkit/common/XIMPublic.cpp: In order to switch X private
	include files, specify "Xlcint.h" instead of "X11/Xlcint.h".
	* IMdkit/public/X11R6IMProtoData.h: Ditto.

2002-09-28  MIYASHITA Hisashi  <himi@li18nux.org>

	* IMdkit/r6im/XInputContext.cpp: Include stdlib.h for abort().

2002-09-26  MIYASHITA Hisashi  <himi@li18nux.org>

	* IMdkit/r6im/XInputContext.cpp (XInputContext::XInputContext):
	When xim is invalid, abort().
	(XInputContext::set_preedit_spot_location)
	(XInputContext::set_preedit_area)
	(XInputContext::set_preedit_area_needed)
	(XInputContext::set_preedit_colormap)
	(XInputContext::set_preedit_bg_pixmap)
	(XInputContext::set_preedit_line_spacing)
	(XInputContext::set_preedit_cursor)
	(XInputContext::set_preedit_bg)
	(XInputContext::set_preedit_fg)
	(XInputContext::set_preedit_fontset)
	(XInputContext::set_status_area)
	(XInputContext::set_status_area_needed)
	(XInputContext::set_status_colormap)
	(XInputContext::set_status_bg)
	(XInputContext::set_status_fg)
	(XInputContext::set_status_bg_pixmap)
	(XInputContext::set_status_line_spacing)
	(XInputContext::set_status_cursor)
	(XInputContext::set_status_fontset): When xic is invalid(NULL),
	don't call XIC APIs.

	* IMdkit/common/XIMPublic.cpp (OpenIM): Call im_openIM method
	by passing NULL as XRDB not "".

2002-06-26  MIYASHITA Hisashi  <himi@m17n.org>

	* XSunIM_Adapter/XSunIMWrapper.cpp (if_xadp_GetIFValue):
	Correct the code in DEBUG.

	* XSunIM_Adapter/XSunIMSubr.c (imli_lookup_draw_do): 
	Correct the code in DEBUG.

	* XSunIM_Adapter/XSunIMIml.cpp
	(make_preedit_draw_inst, make_status_draw_inst, make_aux_draw_inst):
	Correct the code in DEBUG.

	* VM_Separator/VMAdapterStub.cpp: Correct the code in DEBUG.

	* LE_Interface/sunim_wrapper.cpp: Include EIMIL.h if ENABLE_EIMIL
	is defined.
	(LESessionContext::sync_data)
	(LESessionContext::issue_operations)
	(LESessionContext::get_symbol): New functions.

	* LE_Interface/sunim.hh (class LESessionContext):
	Add sync_data(), issue_operations(), and get_symbol().

	* LE_Interface/SunIMSubr.c: Comment out list_imtext() and list_feedback()
	because they are not existent.
	(iml_make_preedit_draw_with_chgpos_inst): Bug fix in DEBUG.

	* LE_Interface/SunIMMthd.h: Include EIMIL.h if ENABLE_EIMIL
	is defined.
	(iml_if_t): New member eh that is EIMIL_handle.
	(IF_Attribute): Add IF_EIMIL_HANDLE.
	(SC_Attribute): Add SC_PREFERED_OBJECTS and SC_SUPPORTED_CLASSES.

	* LE_Interface/SunIMCore.h: Include config.h if possible.
	Include EIMIL.h if ENABLE_EIMIL is defined.
	(iml_session_t) New member eh that is EIMIL_handle.

	* LE_Interface/SunIMConf.c (IFPATH_ENV): New macro.
	(get_ifinfo): Add a new argument iiimf_home.
	Add IF_EIMIL_HANDLE to arguments that is passed to LE.
	Set IFPATH_ENV before calling get_le_info of LE.
	(open_le_module): When dlopen() fails, output the message
	of dlerror().
	(if_configure): Pass iiimf_home to get_ifinfo().

	* LE_Interface/SunIM.c (iml_construct_session): If ENABLE_EIMIL
	is defined, call EIMIL_duplicate_handle().

	* IMdkit/public/IMProtoHandler.hh (class IMProtoHandler): 
	Add SyncData(), IssueOperations(), and GetSymbol() interfaces.

	* IMdkit/public/IIIMProtocol.hh (IM_ATTRIBID, IC_ATTRIBID): Moved
	to IMProtocolStruct.h.

	* IMdkit/iiimp/IIimp.cpp (text_fr): Remove the NEED_ANNOTATION
	condition.  Always enable it.
	(differential_number_fr): New frame definition.
	(differential_bool_fr): Ditto.
	(differential_char_fr): Ditto.
	(differential_event_string_fr): Ditto.
	(differential_event_text_fr): Ditto.
	(differential_event_keyevent_fr): Ditto.
	(differential_mtext_fr): Ditto.
	(differential_fr): Ditto.
	(syncdata_fr): Ditto.
	(transaction_fr): Ditto.
	(property_numbers_fr): Ditto.
	(property_bools_fr): Ditto.
	(property_chars_fr): Ditto.
	(property_mtexts_fr): Ditto.
	(im_issue_operation_fr): Ditto.
	(im_issue_operation_reply_fr): Ditto.
	(symbol_fr): Ditto.
	(im_getsymbol_fr): Ditto.
	(im_getsymbol_reply_fr): Ditto.

	* IMdkit/iiimp/IIIMPClientDispatcher3.cpp (read_object): Use
	S_IREAD instead of S_IRUSR.
	(read_ccdef): Rewritten.  It only reads the file contents.
	(IIIMPClient::GetCharStringFromFrame):
	(IIIMPClient::GetUTFStringFromFrame):
	(IIIMPClient::set_imvalues): Send INPUTMETHODLIST.
	(IIIMPClient::send_imvalues_message):Bug fix.
	Correct the padding size.  And don't skip manually padding field
	by FrameMgrSkipToken().

	* IMdkit/iiimp/IIIMPClientDispatcher2.cpp: Include config.h if
	possible.  Include FrameMgr.h always.
	(IIIMPClient::serialize_object_descriptor): New function.
	(si_get_icvalues): New function.
	(IIIMPClient::get_icvalues): Call si_get_ic_values to obtain
	icvalues from other input context management objects.

	* IMdkit/iiimp/IIIMPClientDispatcher.cpp: Include stdlib.h, and
	FrameMgr.h.  Include config.h if possible.
	(destruct_imtext, get_prop_numbers, get_prop_bools)
	(get_prop_chars, get_prop_mtexts, get_imtext)
	(get_framesize_prop_numbers, get_framesize_prop_bools)
	(get_framesize_prop_chars, get_framesize_prop_mtexts)
	(set_imtext_frame_size, put_prop_numbers)
	(put_prop_bools, put_prop_chars)
	(put_prop_mtexts, put_imtext): Newly defined static functions.
	(IIIMPClient::send_issue_operations_reply): New function.
	(IIIMPClient::issue_operation): Ditto.
	(IIIMPClient::acknowledge_operation): Ditto.
	(IIIMPClient::getsymbol): Ditto.

	* IMdkit/iiimp/IIIMPClientCB.cpp (IIIMPClient::imtext_size):
	Disable the code that manipulate IMAttribute because it's invalid.
	(IIIMPClient::req_put_imtext): Likewise.
	(IIIMPClient::req_put_imtext_s): Likewise.
	(IIIMPClient::preedit_draw_text): Likewise.

	* IMdkit/iiimp/IIIMPClient.hh (class IIIMPClient):
	Add member functions, GetCharStringFromFrame() and
	GetUTFStringFromFrame(), serialize_object_descriptor(), 
	si_get_icvalues(), issue_operation(), send_issue_operations_reply(),
	acknowledge_operation, getsymbol().
	(IIIM_PROTOCOL): Add IM_ISSUE_OPERATION, IM_ISSUE_OPERATION_REPLY,
	IM_GETSYMBOL, and IM_GETSYMBOL_REPLY.
	(IIIMP_PADDING_REQUIRED_P, IIIMP_PADDING_SIZE): New macros.
	(CARD32, CARD16, CARD8): Define them by using CARD32BIT, CARD16BIT, and
	CARD8BIT if DEFINED_INTEGER_TYPES is enabled.

	* IMdkit/iiimp/IIIMPClient.cpp (IIIMPClient::dispatch): Add the code for
	IM_ISSUE_OPERATION, IM_ISSUE_OPERATION_REPLY, and IM_GETSYMBOL.

	* IMdkit/iiimp/FrameMgr.h: Include config.h if possible.
	(CARD32, CARD16, CARD8): Define them by using CARD32BIT, CARD16BIT, and
	CARD8BIT if DEFINED_INTEGER_TYPES is enabled.
	(_FrameMgrGetToken): We must not use static variables because it breaks
	MT-safety.
	(FrameMgrGetCurrent): New macro.

	* Makefile.in (SUBDIRS): EIMIL is added.

2001-11-30  MIYASHITA Hisashi  <himi@m17n.org>

	* IMdkit/common/XIMPublic.cpp: Include stdlib.h for putenv().
	(XIMPublic::OpenIM): Unset XMODIFIERS, and call XSetLocaleModifiers()
	to clear XLC's modifier configuration.  (In detail, see comments)

2001-10-23  HideToshi Tajima  <tajima@eng.sun.com>

	* XSunIM_Adapter/LEHandler.cpp:
	* XSunIM_Adapter/Utility.cpp:
	* XSunIM_Adapter/XSunIMIml.cpp:
	* XSunIM_Adapter/XSunIMManager.cpp:
	* XSunIM_Adapter/XSunIMSubr.c:
	  - remove the reference to SystemMessage.h
	  - surpress a compile warning message

	* XSunIM_Adapter/HotKey.cpp:
	  surpress a compile warning message
	  
	* VM_Separator/VM_Driver.cpp:
	  surpress a compile warning message
	  
	* LE_Interface/SunIM.c:
	* LE_Interface/SunIMConf.c:
	* LE_Interface/SunIMSubr.c:
	* LE_Interface/sunim_wrapper.cpp:
	  - remove the reference to SystemMessage.h
	  - remove #ifdef notdef for cleanup

	* LE_Interface/LELookup.hh, LELookup.cpp
	  - remove #ifdef notdef for cleanup
	  - add IsNeeded method to class LELookup
	  - add GetSubString method to class LELookup
	
	* LE_Interface/InterfaceModule.cpp:
	  - remove #ifdef notdef for cleanup
	  - remove the reference to imutil.h
	
	* xsunim/Makefile.in:
	* LE_Interface/Makefile.in:
	* XSunIM_Adapter/Makefile.in:
	* VM_Separator/Makefile.in:
	  remove reference to imutil
	
	* IMdkit/r6im/i18nPtHdr.c:
	* IMdkit/r6im/i18nIc.c:
	  - fix memory leaks

	* IMdkit/r6im/XInputContext.cpp:
	  - need to check if XmbResetIC is making NULL return
	  - follow kinput2's behaviour when ic is destroyed while preediting
	
	* IMdkit/r6im/R6IMProtocol.cpp:
	  Fix a few memory leak/access problems
	
	* IMdkit/public/IMTrans.hh, IMdkit/solaris/IMTransP.cpp:
	  - check fd resource limit
	  - use snprintf to avoid stack overflow
	
	* IMdkit/iiimp/IIIMPClientDispatcher3.cpp:
	  IMdkit/iiimp/IIIMProtocol.cpp:
	* IMdkit/iiimp/IIIMPClientAuxSetValues.cpp (aux_set_values): 
	  swap enginename correctly
	
	* IMdkit/common/XIMPublic.cpp:
	  take care of the case when ifname == NULL

	* IMdkit/common/IMLanguageList.cpp:
	  add "zh_HK" in language list
	
	* IMdkit/Makefile.in (HAVE_XICCALLBACK):
	  - refer to @HAVE_XICCALLBACK@
	  - remove SUBDIRS
	  - remove the reference to imutil
	  - remove SunWS_cache when make clean
	
	* Makefile.in: correct SUBDIRS
	
	* imutil: remove from the repository
	* KeyConv: add a new repository
	
2001-10-04  MIYASHITA Hisashi  <himi@m17n.org>

	* imutil/solaris/SystemMessage.c (use_syslog_setup):
	When _POSIX_C_SOURCE or _POSIX_PTHREAD_SEMANTICS is
	defined, call getpwuid_r() in POSIX fashion.

	* VM_Separator/VM_Driver.cpp (__EXTENSIONS__): When USE_DOOR is
	defined, define it.

	* VM_Separator/VMAdapterStub.cpp: If HAVE_CONFIG_H is defined,
	include config.h.  And if HAVE_FORK1 is defined, define __EXTENSIONS__
	for Solaris.
	(FORKFUNC): Define it to fork1() if HAVE_FORK1 is defined.  Otherwise,
	define it to fork().

2001-09-29  MIYASHITA Hisashi  <himi@m17n.org>

	* imutil/mapfile.libimutil.so: Added.
	This file is required for the compilation on Solaris.
	* XSunIM_Adapter/mapfile.xsunimadapter.so: Ditto.
	* VM_Separator/mapfile.libVMSep.so: Ditto.
	* IMdkit/mapfile.libIMd.so: Ditto.

	* XSunIM_Adapter/Makefile.in (SHLIBCFLAGS): Remove a duplicated definition.
	(SHLIBLDFLAGS): Likewise.
	(REQUIREDCPPLIB): Likewise.

2001-07-18  MIYASHITA Hisashi  <himi@m17n.org>

	* IMdkit/iiimp/IIIMPClientDispatcher.cpp
	(IIIMPClient::connect): Call Authenticate with accept_fd.

	* IMdkit/public/IMProtoHandler.hh (Authenticate): Add a new argument,
	IMTransAccept *ta.

2001-07-12  MIYASHITA Hisashi  <himi@m17n.org>

	* IMdkit/public/IMThread.hh: Remove invalid token at the tail.
	Add comment on the macro for preventing double includings instead.

	* IMdkit/public/IMProtocol.hh: include IMTrans.hh.
	(class IMProtocol): New method, getIMTransAccept().

	* IMdkit/public/IMProtoHandler.hh (class IMProtoHandler): 
	New method getIMTransAccept() and Authenticate().

	* IMdkit/iiimp/IIIMProtocol.cpp (accept_loop): To obtain a new
	IMTransAccept object, call getIMTransAccept() instead of directly
	calling accept() method of IMTransListen().
	(accept_loop_local): Likewise.

	* IMdkit/iiimp/IIIMPClientDispatcher.cpp
	(IIIMPClient::connect): If the result of Authenticate(), which
	is the member function of IMProtoHandler, is false, destruct
	this object immediately.

	* IMdkit/common/IMProtocol.cpp (IMProtocol::getIMTransAccept):
	New function.

	* IMdkit/common/CompoundString.cpp: If HAVE_CONFIG_H is defined,
	include config.h.

2001-05-16  MIYASHITA Hisashi  <himi@m17n.org>

	* IMdkit/Makefile.in (install): New target.
	* LE_Interface/Makefile.in (install): Likewise.
	* VM_Separator/Makefile.in (install): Likewise.
	* XSunIM_Adapter/Makefile.in (install): Likewise.
	* imutil/Makefile.in (install): Likewise.

2001-03-18  MIYASHITA Hisashi  <himi@li18nux.org>

	* IMdkit/r6im/XInputContext.cpp: Apply the patch of 4398001.
	(XInputContext::~XInputContext): Delete cb related objects.
	(XInputContext::set_client_window): Call unselect_destroy_clientwin_emask
	and unregister_clientwin_destroy_filter if new window is not the current
	client window.
	(XInputContext::select_destroy_clientwin_emask): New function.
	(XInputContext::unselect_destroy_clientwin_emask): New function.

	* IMdkit/r6im/XInputContext.hh:Apply the patch of 4398001.
	(XInputContext):Add a new member
	unselect_destroy_clientwin_emask() and
	select_destroy_clientwin_emask().  It's from Sun's workspace.

2001-03-15  MIYASHITA Hisashi  <himi@li18nux.org>

	* imutil/win32/SystemMessage.c: 
	* imutil/solaris/SystemMessage.c: 
	* imutil/linux/SystemMessage.c: 
	* imutil/KeyConverter.cpp: 
	* imutil/KeyConverter.hh:
	* imutil/Makefile.in:
	* imutil/SystemError.cpp:
	* imutil/SystemError.hh:
	* imutil/SystemMessage.h:
	* imutil/util.cpp:
	* imutil/util.hh:
	* XSunIM_Adapter/HotKey.cpp: 
	* XSunIM_Adapter/HotKey.hh:
	* XSunIM_Adapter/LEHandler.cpp:
	* XSunIM_Adapter/LEHandler.hh:
	* XSunIM_Adapter/Makefile.in:
	* XSunIM_Adapter/Old_Interface.h:
	* XSunIM_Adapter/Public.h:
	* XSunIM_Adapter/README:
	* XSunIM_Adapter/Utility.cpp:
	* XSunIM_Adapter/Utility.hh:
	* XSunIM_Adapter/XSunIMAdapter.cpp:
	* XSunIM_Adapter/XSunIMAdapter.hh:
	* XSunIM_Adapter/XSunIMIml.cpp:
	* XSunIM_Adapter/XSunIMLookup.c:
	* XSunIM_Adapter/XSunIMLookup.h:
	* XSunIM_Adapter/XSunIMManager.cpp:
	* XSunIM_Adapter/XSunIMManager.hh:
	* XSunIM_Adapter/XSunIMSubr.c:
	* XSunIM_Adapter/XSunIMWrapper.cpp:
	* VM_Separator/DataRep.cpp: 
	* VM_Separator/DataRep.hh:
	* VM_Separator/DrvManager.cpp:
	* VM_Separator/DrvManager.hh:
	* VM_Separator/Makefile.in:
	* VM_Separator/VMAdapterStub.cpp:
	* VM_Separator/VMAdapterStub.hh:
	* VM_Separator/VMPublic.h:
	* VM_Separator/VMSharedMemory.cpp:
	* VM_Separator/VMSharedMemory.hh:
	* VM_Separator/VM_Driver.cpp:
	* VM_Separator/VM_Driver.hh:
	* LE_Interface/InterfaceModule.cpp: 
	* LE_Interface/InterfaceModule.hh:
	* LE_Interface/LELookup.cpp:
	* LE_Interface/LELookup.hh:
	* LE_Interface/Makefile.in:
	* LE_Interface/README:
	* LE_Interface/SunIM.c:
	* LE_Interface/SunIM.h:
	* LE_Interface/SunIMConf.c:
	* LE_Interface/SunIMConf2.c:
	* LE_Interface/SunIMCore.h:
	* LE_Interface/SunIMMMan.c:
	* LE_Interface/SunIMMMan.h:
	* LE_Interface/SunIMMthd.h:
	* LE_Interface/SunIMPriv.h:
	* LE_Interface/SunIMProt.h:
	* LE_Interface/SunIMPub.h:
	* LE_Interface/SunIMSubr.c:
	* LE_Interface/sample.cpp:
	* LE_Interface/sunim.hh:
	* LE_Interface/sunim_wrapper.cpp:
	* IMdkit/ximp/XIMPInputContext.cpp: 
	* IMdkit/ximp/XIMPInputContext.hh:
	* IMdkit/ximp/XIMPPreeditIC.cpp:
	* IMdkit/ximp/XIMPStatusIC.cpp:
	* IMdkit/ximp/XIMProtocol.cpp:
	* IMdkit/win32/CompoundStringP.cpp: 
	* IMdkit/win32/IMThreadP.cpp:
	* IMdkit/win32/IMTransP.cpp:
	* IMdkit/win32/IMTriggerKeyListP.cpp:
	* IMdkit/solaris/CompoundStringP.cpp: 
	* IMdkit/solaris/IMThreadP.cpp:
	* IMdkit/solaris/IMTransP.cpp:
	* IMdkit/solaris/IMTriggerKeyListP.cpp:
	* IMdkit/solaris/IMTriggerKeyListP.l:
	* IMdkit/r6im/R6IMProtocol.cpp: 
	* IMdkit/r6im/XIC_Interface.h:
	* IMdkit/r6im/XInputContext.cpp:
	* IMdkit/r6im/XInputContext.hh:
	* IMdkit/public/CompoundString.hh: 
	* IMdkit/public/IIIMProtocol.hh:
	* IMdkit/public/IMEditorDescriptorList.hh:
	* IMdkit/public/IMLanguageList.hh:
	* IMdkit/public/IMObjectDescriptorList.hh:
	* IMdkit/public/IMProtoHandler.hh:
	* IMdkit/public/IMProtocol.hh:
	* IMdkit/public/IMProtocolManager.hh:
	* IMdkit/public/IMThread.hh:
	* IMdkit/public/IMTrans.hh:
	* IMdkit/public/IMTriggerKeyList.hh:
	* IMdkit/public/InputContext.hh:
	* IMdkit/public/R6IMProtocol.hh:
	* IMdkit/public/X11R6IMProtoData.h:
	* IMdkit/public/XIMProtocol.hh:
	* IMdkit/public/XIMPublic.hh:
	* IMdkit/public/XIMTriggerKey.h:
	* IMdkit/private/Xfactory.hh: 
	* IMdkit/private/IMProtocolStructP.hh: 
	* IMdkit/private/ICAttribute.hh: 
	* IMdkit/linux/IMThreadP.cpp: 
	* IMdkit/iiimp/FrameMgr.h: 
	* IMdkit/iiimp/IIIMPClient.cpp:
	* IMdkit/iiimp/IIIMPClient.hh:
	* IMdkit/iiimp/IIIMPClientAuxSetValues.cpp:
	* IMdkit/iiimp/IIIMPClientCB.cpp:
	* IMdkit/iiimp/IIIMPClientDispatcher.cpp:
	* IMdkit/iiimp/IIIMPClientDispatcher2.cpp:
	* IMdkit/iiimp/IIIMPClientDispatcher3.cpp:
	* IMdkit/iiimp/IIIMPInputContext.cpp:
	* IMdkit/iiimp/IIIMPInputContext.hh:
	* IMdkit/iiimp/IIIMProtocol.cpp:
	* IMdkit/iiimp/IIimp.cpp:
	* IMdkit/common/CompoundString.cpp: 
	* IMdkit/common/IMEditorDescriptorList.cpp:
	* IMdkit/common/IMLanguageList.cpp:
	* IMdkit/common/IMObjectDescriptorList.cpp:
	* IMdkit/common/IMProtocol.cpp:
	* IMdkit/common/IMProtocolManager.cpp:
	* IMdkit/common/IMTriggerKeyList.cpp:
	* IMdkit/common/InputContext.cpp:
	* IMdkit/common/XIMPublic.cpp:
	* IMdkit/common/Xfactory.cpp:
	* IMdkit/Makefile.in: 
	* Makefile.in: 
	Change copyright notice.

2000-12-13  MIYASHITA Hisashi  <himi@m17n.org>

	* xsunim/XSunIMPub.h: New include config.h instead of directly
	defining bcopy, bzero, and so on.

	* Makefile.in:
	* IMdkit/Makefile.in:
	* LE_Interface/Makefile.in: 
	* VM_Separator/Makefile.in: 
	* XSunIM_Adapter/Makefile.in: 
	* imutil/Makefile.in: 
	Rewrite almost all of it, corresponding to the new
	configure.in.

	* xsunim/Makefile.in: Add comments why I leave this Makefile.in.

2000-11-20  Masaki Katakai <katakai@sun.co.jp>

	* IMdkit/r6im/R6IMProtocol.cpp (GetICValues):
	Set the input style to icp->value if icp->name is XNInputStyle,
	because Tcl/Tk ja patch requires XNInputStyle.

	* IMdkit/r6im/XInputContext.hh (XInputContext::get_input_style):
	New function for the above change.

2000-11-01  MIYASHITA Hisashi  <himi@m17n.org>

	* imutil/util.cpp (getFirstWord): Removed.

2000-10-31  MIYASHITA Hisashi  <himi@m17n.org>

	* imutil/util.hh: Remove getFirstWord() because this function
	returns a pointer that points the given char string at some time,
	and newly allocated heap at another time, this specification is
	very dangerous.

	* VM_Separator/VM_Driver.cpp: Include stdio.h even when
	DEBUG is not defined because sprintf() require it.

	* ChangeLog: For CVS development, put this ChangeLog.

