This document tracks API/ABI compatibility changes for convenience of
developers.

Each change consist of following fields. All fields are required.

  - Summary
    Short description of the change

  - Affects
    Who will be suffered
    * IM developers
    * Bridge developers
    * Helper program developers
    * uim developers

  - Updates
    What has been broken, added or removed
    * libuim ABI
    * C API
    * Scheme API
    * Helper protocol

  - Version
    Which version number of source release performs the change

  - Revision
    Which revision(s) performs the change. Enumerate as comma separated
    revision numbers if performed by several commit

    When freedesktop.org had been compromised, we had reset the
    repository. Because this had also reset revision number, we
    describe such new revision numbers as 'ac40' to distinguish from
    old one. 'ac' stands for 'after compromised'.

  - Date
    When the change committed into the repository

  - Modifier
    Who had applied the change

  - Related
    What issues are related to this change. Describe in free format. But if
    you refer items in the bug tracking system, describe them as "bug #1450,
    #1451"

  - URL
    Write URL(s). Use subsequent line(s) with 2 space prefix to describe
    multiple URLs (i.e. describe one URL per line)

  - Changes
    Which functions or structs have been changed. Describe one item per line
    with 2 space prefix for clear view

  - Description
    Detailed description of the change


The changes are described below in most recently updated order.
------------------------------------------------------------------------------
Summary: Add an internal variable to count uim_init() and uim_quit()
Affects: None
Updates: libuim ABI
Version: 1.7.0
Revision: ac7020
Date: 2011-05-07
Modifier: Etsushi
Related:
URL:
Changes:
  (added) uim_init_count
Description:
  An internal variable to count uim_init() and uim_quit() has been added.
  Normally, this variable has no meaning for normal libuim users.  It's
  only used in libuim-counted-init.a convenience library.
------------------------------------------------------------------------------
Summary: Support multiple paths by LIBUIM_SCM_FILES
Affects: uim developers
Updates: Scheme API
Version: 1.6.0
Revision: ac6603
Date: 2010-07-28
Modifier: Etsushi
Related:
URL:
Changes:
  (changed) make-scm-pathname
Description:
  Change the return type as a list to support multiple paths.
------------------------------------------------------------------------------
Summary: New custom API to save custom variable.
Affects: Helper program developers
Updates: C API
Version: 1.6.0
Revision: ac6505
Date: 2010-07-15
Modifier: Etsushi
Related:
URL:
Changes:
  (added) uim_custom_save_custom
Description:
  Save a primary custom group file of which the selected custum
  variable belongs.
------------------------------------------------------------------------------
Summary: New helper protocol messages for uim-im-switcher
Affects: Helper program developers
Updates: Helper protocol
Version: 1.6.0
Revision: ac6364, ac6365
Date: 2010-05-06
Modifier: Muneyuki Noguchi
Related: bug #2112
URL:
Changes:
  (new) im_switcher_start
  (new) im_switcher_quit
Description:
  Add messages to make uim-im-switcher single instance by quitting
  a newly started uim-im-switcher when another uim-im-switcher exists.
------------------------------------------------------------------------------
Summary: rk-expect-key? is added in rk.scm
Affects: IM developers
Updates: Scheme API
Version: 1.6.0
Revision: ac6332, ac6335
Date: 2010-04-22
Modifier: Etsushi Kato
Related: uim-tutcode
URL:
Changes:
  (new) rk-expect-key?
Description:
  Since rk-expect used in tutcode.scm is relatively slow,
  rk-expect-key? is added.
------------------------------------------------------------------------------
Summary: Update helper-candwin protocol for sending message
Affects: Helper program developers
Updates: Helper-candwin protocol
Version: 1.6.0
Revision: ac6331, ac6339
Date: 2010-04-21
Modifier: Etsushi Kato
Related: uim-prime, annotation
URL:
Changes:
  (update) "activate"
  (update) "select"
  (update) "move"
  (update) "show"
  (update) "hide"
  (update) "deactivate"
  (update) "set_nr_candidates"
  (update) "set_page_candidates"
  (update) "show_caret_state"
  (update) "update_caret_state"
  (update) "hide_caret_state"
Description:
  Modify helper-candwin message from uim-xim to uim-candwin-{gtk,qt} to
  cope with uim-prime's candidate string that may contain '\t'. Also
  sepeartor of messages has been modified to use '\f' instead of '\n'.
------------------------------------------------------------------------------
Summary: New helper-candwin protocol about setting the candidates
Affects: Helper program developers
Updates: Helper-candwin protocol
Version: 1.5.4
Revision: ac5584
Date: 2008-10-07
Modifier: Etsushi Kato
Related:
URL:
Changes:
  (new) "set_nr_candidates"
  (new) "set_page_candidates"
  (new) "show_page"
Description:
  New helper-candwin message from uim-xim to uim-candwin-{gtk,qt} for 
  the light weight page handling.
------------------------------------------------------------------------------
Summary: Plugin loding and unloading schemes are changed
Affects: uim developers, IM developers
Updates: libuim ABI, Scheme API
Version: 1.6.0
Revision: ac5424, ac5456, ac5457, ac6371
Date: 2008-04-17 - 2010-05-07
Modifier: Masahito Omote, YamaKen, Etsushi
Related:
URL: http://www.mail-archive.com/uim-en@googlegroups.com/msg00104.html, http://www.mail-archive.com/uim-en@googlegroups.com/msg00110.html
Changes:
     (added) module-load
     (added) require-dynlib
     (added) dynlib-unload
     (added) %%dynlib-bind
     (added) %%dynlib-unbind
     (removed) load-plugin
     (removed) unload-plugin
Description:
  New API for loding/unloading modules (see below) and dynlib
  rewritten in C and Scheme. module-load is the
  same ones as obsoleted load-plugin, which is now
  written in Scheme.  require-dynlib and dynlib-unload are written in
  Scheme for the purpose of loading dynlib from Scheme code.
  %%dynlibe-bind and %%dynlib-unbind are written in C for the purpose
  of binding/unbinding library pointer bounded by dlopen and C
  function pointers.

  module-load is intended to be used for loading modules (Scheme
  and dynlib pair of input method module, or Scheme only module) from
  internal Scheme code, require-module.
  require-dynlib and dynlib-unload are encouraged when you want to
  load/unload dynlib from any Scheme code.
  ------------------------------------------------------------------------------
Summary: Feature provision of 'uim'
Affects: uim developers, IM developers
Updates:
Version: 1.5.0
Revision: ac5370, ac5464
Date: 2008-03-31, 2008-04-29
Modifier: YamaKen
Related:
URL:
Changes:
Description:
  To allow (provided? "uim") and (cond-expand (uim ...)), init_uim()
  calls (provide "uim").
------------------------------------------------------------------------------
Summary: Responsibility migration of gettext() invocation
Affects: Helper program developers, Bridge developers
Updates: Scheme API, C API
Version: 1.5.0
Revision: ac4336, ac4337, ac4352, ac4394
Date: 2007-01-09, 2007-01-12
Modifier: YamaKen
Related: uim-scm API reorganization in uim 1.5.0
URL:
Changes:
     (changed) custom-label
     (changed) custom-desc
     (changed) custom-group-label
     (changed) custom-group-desc
     (changed) custom-choice-label
     (changed) custom-choice-desc
     (changed) lang-code->lang-name
     (changed) uim_get_language_name_from_locale()
Description:
  gettext()ing strings returned by above APIs in libuim or Scheme
  codes was a design error since it assumes existence of the concept
  "system-wide character encoding". But on current uim API, character
  encoding is not a system-wide property but per-IM-context one. So
  above APIs cannot determine appropriate encoding for the result
  since some IM contexts may have different character encoding. To
  avoid this problem, they now return raw untranslated strings. Client
  codes are responsible to translate them. But to remain legacy
  uim-custom codes unchanged, API functions exported via uim-custom.h
  are still returns TRANSLATED strings.
------------------------------------------------------------------------------
Summary: Experimental user notification facility (uim-notify)
Affects: uim developers, IM developers
Updates: C API, Scheme API
Version: 1.5.0
Revision: ac5061-ac5067, ac5073-ac5084, ac5093-ac5094, ac5107,
          ac5126-ac5138, ac5147, ac5150, ac5153-ac5156, ac5159-ac5163
Date: 2007-09-29 - 2008-02-12
Modifier: Iwata, YamaKen, Etsushi Kato
Related: Exception-based libuim error handling
URL:
  http://www.mail-archive.com/uim-en@googlegroups.com/msg00048.html
Changes:
      (new) uim_notify_init()
      (new) uim_notify_quit()
      (new) uim_notify_load()
      (new) uim_notify_get_desc()
      (new) uim_notify_info()
      (new) uim_notify_fatal()
      (new) uim_notify_plugin_init()
      (new) uim_notify_plugin_quit()
      (new) uim_notify_plugin_get_desc()
      (new) uim_notify_plugin_info()
      (new) uim_notify_plugin_fatal()
      (new) uim-notify-get-plugins
      (new) uim-notify-load
      (new) uim-notify-info
      (new) uim-notify-fatal
Description:
  To notify users important messages from IM and libuim such as
  "Opening dictionary file 'foo.dic' failed.", uim need some
  sophisticated mechanism to achieve it. This API set and
  implementation provides an experimental solution for it. The API and
  the notification agent plugins, and module and code organizations
  are all experimental although working well. We should redesign the
  mechanism once well experienced.
------------------------------------------------------------------------------
Summary: New utility procedures in uim 1.5.0
Affects: uim developers, IM developers
Updates: Scheme API
Version: 1.5.0
Revision: ac5264, ac5276, ac5294
Date: 2008-03-02
Modifier: Iwata
Related: uim-sj3
URL:
Changes:
      (new) user-name
      (new) home-directory
      (new) sleep
      (new) time
      (new) difftime
Description:
------------------------------------------------------------------------------
Summary: Change API to know operations are success or not
Affects: uim developers, Helper program developers
Updates: C API, libuim ABI
Version: 1.5.0
Revision: ac5264
Date: 2008-03-02
Modifier: Iwata
Related:
URL:
Changes:
  (changed) uim_helper_get_pathname()
Description:
------------------------------------------------------------------------------
Summary: New API for client encoding change
Affects: bridge developers
Updates: C API, libuim ABI
Version: 1.5.0
Revision: ac5069, ac5071
Date: 2007-12-29
Modifier: Etsushi, YamaKen
Related: bug #13622
URL:
Changes:
      (new) uim_set_client_encoding()
Description:
  Some bridges such as uim.el need to change its client-side encoding
  in response to an IM-side encoding change caused by an IM-switching
  and notified via the configuration_changed callback. This API
  provides the proper way for it.
------------------------------------------------------------------------------
Summary: uim-scm API truth predicates reorganization in uim 1.5.0
Affects: uim developers, IM developers
Updates: C API (uim-scm), libuim ABI
Version: 1.5.0
Revision: ac4876
Date: 2007-08-20
Modifier: YamaKen
Related: uim-scm API reorganization in uim 1.5.0
	 Deprecate truth predicates for uim-scm
URL:
Changes:
         (new) uim_scm_truep()
         (new) uim_scm_falsep()
     (changed) FALSEP()
     (changed) TRUEP()
  (deprecated) UIM_SCM_FALSEP()
  (deprecated) UIM_SCM_NFALSEP()
     (removed) NFALSEP()
     (removed) NTRUEP()
Description:
  - uim-scm truth predicates are now function-based. uim_scm_falsep(obj) as
    (not obj), and uim_scm_truep(obj) as (if obj #t #f). Don't misunderstand
    uim_scm_truep(obj) as if (eq? obj #t)
  - Former main predicates UIM_SCM_FALSEP() and UIM_SCM_NFALSEP() are
    deprecated
  - FALSEP() is removed from uim-scm.h, but can be used via uim-scm-abbrev.h
  - TRUEP() is previously defined as (eq? obj #t) in uim-scm.h. It is now
    redefined as (if obj #t #f) in uim-scm-abbrev.h and removed from uim-scm.h
  - NFALSEP() and NTRUEP() are removed from uim-scm.h
------------------------------------------------------------------------------
Summary: Fix invalid type assumption on PIDs
Affects: IM developers, uim developers
Updates: C API, libuim ABI
Version: 1.5.0
Revision: ac4840
Date: 2007-08-13
Modifier: YamaKen
Related: 
URL:
Changes:
  (changed) uim_ipc_open_command()
  (changed) uim_ipc_open_command_with_option()
  (changed) uim_ipc_send_command()
Description:
  Fixed invalid type int for PIDs with pid_t. 64-bit systems are
  possibly (sizeof(int) < sizeof(pid_t))
------------------------------------------------------------------------------
Summary: Bit width extension of uim_scm_c_bool() and uim_scm_make_bool()
Affects: uim developers
Updates: C API (uim-scm), libuim ABI
Version: 1.5.0
Revision: ac4820
Date: 2007-08-11
Modifier: YamaKen
Related: uim-scm API reorganization in uim 1.5.0
         uim_scm_array2list()
         uim_scm_list2array()
URL:
Changes:
  (changed) uim_scm_c_bool()
  (changed) uim_scm_make_bool()
Description:
  To make passing these 2 functions to the array<->list conversion
  functions directly, the C side of bool representation is changed
  from int to long. This change is required for 64-bit platforms.
------------------------------------------------------------------------------
Summary: Exception-based libuim error handling
Affects: uim developers
Updates: internal C API
Version: 1.5.0
Revision: ac4814, ac4815, ac4829
Date: 2007-08-11, 2007-08-12
Modifier: YamaKen
Related: Fatal error handling helpers for plugin developers
	 uim-scm API reorganization in uim 1.5.0
         uim_scm_error()
         uim_scm_error_obj()
         uim_scm_set_fatal_error_hook()
URL:
Changes:
      (new) uim_catch_error_begin()
      (new) uim_catch_error_end()
      (new) uim_throw_error()
Description:
------------------------------------------------------------------------------
Summary: Fatal error handling helpers for plugin developers
Affects: IM developers, uim developers
Updates: C API, libuim ABI
Version: 1.5.0
Revision: ac4814, ac4816
Date: 2007-08-11
Modifier: YamaKen
Related: Exception-based libuim error handling
	 uim-scm API reorganization in uim 1.5.0
         uim_scm_error()
         uim_scm_error_obj()
URL:
Changes:
      (new) uim_fatal_error()
      (new) uim_malloc()
      (new) uim_realloc()
      (new) uim_calloc()
      (new) uim_strdup()
Description:
------------------------------------------------------------------------------
Summary: New utility procedures in uim 1.5.0
Affects: uim developers, IM developers
Updates: Scheme API
Version: 1.5.0
Revision: ac4704
Date: 2007-07-11, 2007-07-22
Modifier: YamaKen
Related: 
URL:
Changes:
      (new) writeln
      (new) uim-version
Description:
------------------------------------------------------------------------------
Summary: Renaming of integer-based char procedures
Affects: uim developers, IM developers
Updates: Scheme API
Version: 1.5.0
Revision: ac4708, ac4709, ac4710
Date: 2007-07-11
Modifier: YamaKen
Related: 
URL:
Changes:
  (renamed) char-control?
  (renamed) char-upper-case?
  (renamed) char-lower-case?
  (renamed) char-alphabetic?
  (renamed) char-numeric?
  (renamed) char-printable?
  (renamed) char-graphic?
  (renamed) char-vowel?
  (renamed) char-consonant?
  (renamed) char-downcase
  (renamed) char-upcase
      (new) ichar-control?
      (new) ichar-upper-case?
      (new) ichar-lower-case?
      (new) ichar-alphabetic?
      (new) ichar-numeric?
      (new) ichar-printable?
      (new) ichar-graphic?
      (new) ichar-vowel?
      (new) ichar-consonant?
      (new) ichar-downcase
      (new) ichar-upcase
  (renamed) string->char
      (new) string->ichar
  (renamed) string->printable-char
      (new) string->printable-ichar
  (renamed) string->letter
      (new) string->alphabetic-ichar
  (renamed) numeral-char->number
      (new) numeric-ichar->integer
  (removed) control-char?
  (removed) alphabet-char?
  (removed) numeral-char?
  (removed) usual-char?
  (removed) to-lower-char
Description:
  The integer-based char-* procedures have been renamed to ichar-* to
  distinguish from and coexist with R5RS ones
------------------------------------------------------------------------------
Summary: Specification changes of utility procedures
Affects: uim developers, IM developers
Updates: Scheme API
Version: 1.5.0
Revision: ac4693, ac4694, ac4698, ac4699, ac4703, ac4915
Date: 2007-07-11, 2007-09-16
Modifier: YamaKen
Related: 
URL:
Changes:
  (removed) join
      (new) list-join
  (changed) string-prefix?
  (changed) string-prefix-ci?
  (changed) string-split
  (changed) string-join
  (changed) sublist
  (changed) sublist-rel
  (changed) file-mtime
Description:
  - 'join' has been replaced with 'list-join'. The args are swapped
  - 'string-prefix?' and 'string-prefix-ci?' now rejects non-string
    args as error instead of returning #f
  - Now string-split produces empty strings as follows. See
    test-uim-utils.scm for further information.
      uim 1.4: (string-split "hhh" "h")  ==> ()
      uim 1.5: (string-split "hhh" "h")  ==> ("" "" "" "")
  - The 2 arguments of string-join has been swapped to be compatible
    with SRFI-13 string-join.
  - The meaning of 'end' arg of sublist and 'len' arg of sublist-rel has
    been changed to correct one. See test-util.scm for further
    information.
      uim 1.4: (sublist     '(1) 0 0)  ==> (1)
               (sublist-rel '(1) 0 0)  ==> (1)
      uim 1.5: (sublist     '(1) 0 0)  ==> ()
               (sublist-rel '(1) 0 0)  ==> ()
  - file-mtime has been changed as raising an error instead of
    returning #f if stat(3) is failed
------------------------------------------------------------------------------
Summary: SRFI-1 procedures replacement
Affects: uim developers, IM developers
Updates: Scheme API
Version: 1.5.0
Revision: ac4680, ac4681
Date: 2007-07-10
Modifier: YamaKen
Related: 
URL:
Changes:
  (changed) iota
  (removed) iterate-lists
Description:
  Various SRFI-1 procedures implemented in util.scm have been replaced
  with the SRFI-1 feature provided by SigScheme 0.8. And the
  misunderstood second arg meaning of 'iota' has been fixed to the
  standard one.
------------------------------------------------------------------------------
Summary: Stricter argument precondition requirements
Affects: IM developers, Bridge developers
Updates: C API
Version: 1.5.0
Revision: ac4519, ac4520
Date: 2007-03-26
Modifier: YamaKen
Related: uim-scm API reorganization in uim 1.5.0
URL:
Changes:
  (changed) uim_scm_load_file()
  (changed) uim_scm_require_file()
  (changed) uim_scm_symbol_value()
  (changed) uim_scm_symbol_value_int()
  (changed) uim_scm_symbol_value_str()
  (changed) uim_scm_symbol_value_bool()
Description:
  The arguments now requires non-NULL string
------------------------------------------------------------------------------
Summary: Change return type of uim_set_candidate_selector_cb() to void
Affects: Bridge developers
Updates: C API, libuim ABI
Version: 1.5.0
Revision: ac4388
Date: 2007-01-11
Modifier: YamaKen
Related:
URL:
Changes:
  (changed) uim_set_candidate_selector_cb()
Description:
  The previous return type 'int' is useless and probably a logical typo.
------------------------------------------------------------------------------
Summary: Non-core API move to uim-util.h
Affects: IM developers, Bridge developers
Updates: C API
Version: 1.5.0
Revision: ac4386
Date: 2007-01-11
Modifier: YamaKen
Related:
URL:
Changes:
  (moved) uim_ipc_open_command()
  (moved) uim_ipc_open_command_with_option()
  (moved) uim_ipc_send_command()
  (moved) uim_iconv
Description:
  Declarations for these functions and global variable uim_iconv have been
  moved to uim-util.h from uim.h since they are not core uim API.
------------------------------------------------------------------------------
Summary: Deprecation of UKey_Shift_key and so on
Affects: Bridge developers
Updates: C API, libuim ABI
Version: 1.5.0
Revision: ac4380
Date: 2007-01-11
Modifier: YamaKen
Related: "Add new key definition" in uim 1.3.0
URL:
Changes:
  (changed) enum UKey
Description:
  Add UKey_Shift, UKey_Control, UKey_Alt, UKey_Meta, UKey_Super, UKey_Hyper
  to replace legacy UKey_Shift_key and so on. Bridges should replace these
  keys although *_key is still also defined as backward compatibility.
------------------------------------------------------------------------------
Summary: uim_iconv_open() privatization
Affects: Bridge developers
Updates: C API, libuim ABI
Version: 1.5.0
Revision: ac4377
Date: 2007-01-11
Modifier: YamaKen
Related: iconv.c separation on ac4376
URL:
Changes:
  (removed) uim_iconv_open()
Description:
  Direct access to the default uim_code_converter implementation from libuim
  users has been inhibited. It should be used as an abstract object via
  uim_code_converter interface, such as uim_iconv->create(). Please rewrite
  the direct use of the implementation. This is required to isolate platform
  dependency from libuim core. Although libuim is still depending on iconv,
  it will be a bridge-dependent optional module.
------------------------------------------------------------------------------
Summary: Language strings fallback to "-"
Affects: Bridge developers, Helper program developers
Updates: C API
Version: 1.5.0
Revision: ac4375
Date: 2007-01-11
Modifier: YamaKen
Related: iso-639-1.def removal
URL:
Changes:
  (changed) uim_get_language_name_from_locale()
  (changed) uim_get_language_code_from_language_name()
Description:
  These functions previously return NULL if no language is matched. But since
  no program is checking it, I changed it returning "-" instead of NULL. It
  is safer than previous behavior, and will not cause compatibility problems.
------------------------------------------------------------------------------
Summary: IM and context management concentration into Scheme
Affects: uim developers, IM developers
Updates: Scheme API
Version: 1.5.0
Revision: ac4354, ac4359, ac4382, ac4385
Date: 2007-01-10 - 2007-01-11
Modifier: YamaKen
Related: 
URL:
Changes:
         (new) im-retrieve-context
         (new) im-raise-configuration-change
         (new) uim-switch-im
         (new) context-uc
         (new) context-set-uc!
  (deprecated) context-id
  (deprecated) context-set-id!
     (changed) create-context
     (changed) im-switch-im
     (removed) find-context
     (removed) im-register-im
Description:
  The complex and problematic IM registration and context management divided
  in C has been resolved. Now all IM and context management data is
  concentrated into Scheme as one-source management. This has been resolved
  C-data and Scheme-data synchronization problem on im-switching and so on.
  
  - create-context now returns created context
  - The member 'id' of context record has been replaced with 'uc'. Each IMs
    should follow the renaming although backward compatiblity procedure is
    provided
  - im-switch-im has been replaced with Scheme-implemented one. This resolved
    the context inconsistency problem between C and Scheme
------------------------------------------------------------------------------
Summary: uim_symbol_value_str removal
Affects: IM developers, Bridge developers
Updates: C API, libuim ABI
Version: 1.5.0
Revision: ac4349
Date: 2007-01-09
Modifier: YamaKen
Related: uim-scm API reorganization in uim 1.5.0
URL:
Changes:
  (removed) uim_symbol_value_str()
Description:
  Use uim_scm_symbol_value_str() instead.
------------------------------------------------------------------------------
Summary: uim-scm API reorganization in uim 1.5.0
Affects: uim developers, IM developers
Updates: C API, libuim ABI
Version: 1.5.0
Revision: ac4333, ac4334, ac4339, ac4347, ac4351-ac4353, ac4355, ac4444, ac4446, ac4751, ac4761, ac4764, ac4788, ac4808, ac4812, ac4813, ac4815, ac4817, ac4819, ac4821, ac4830, ac4870, ac4871, ac4873, ac4875, ac4877, ac4878, ac4881, ac4882, ac4884, ac4885, ac4907, ac4914, ac4920, ac4969
Date: 2007-01-09 - 2007-09-16
Modifier: YamaKen
Related: uim-scm API truth predicates reorganization in uim 1.5.0
	 SigScheme introduction to uim
	 Bit width extension of uim_scm_c_bool() and uim_scm_make_bool()
URL:
Changes:
      (new) uim_scm_is_initialized()
      (new) uim_scm_symbolp()
      (new) uim_scm_gc_protectedp()
      (new) uim_scm_gc_protected_contextp()
      (new) uim_scm_gc_any_contextp()
      (new) uim_scm_call()
      (new) uim_scm_call_with_guard()
      (new) uim_scm_callf()
      (new) uim_scm_callf_with_guard()
      (new) uim_scm_null()
      (new) uim_scm_make_str_directly()
      (new) uim_scm_error()
      (new) uim_scm_error_obj()
      (new) uim_scm_init()
      (new) uim_scm_quit()
      (new) uim_scm_set_fatal_error_hook()
      (new) uim_scm_nullify_c_ptr()
      (new) uim_scm_eof()
      (new) uim_scm_array2list()
      (new) uim_scm_list2term_array()
      (new) uim_scm_c_char()
      (new) uim_scm_make_char()
      (new) uim_scm_charp()
      (new) uim_scm_array2vector()
      (new) uim_scm_vector2array()
      (new) uim_scm_vectorp()
      (new) uim_scm_vector_ref()
      (new) uim_scm_vector_set()
      (new) uim_scm_vector_length()
      (new) uim_scm_set_car()
      (new) uim_scm_set_cdr()
      (new) uim_scm_intp()
      (new) uim_scm_strp()
      (new) uim_scm_listp()
      (new) uim_scm_init_proc0()
      (new) uim_scm_init_proc1()
      (new) uim_scm_init_proc2()
      (new) uim_scm_init_proc3()
      (new) uim_scm_init_proc4()
      (new) uim_scm_init_proc5()
      (new) UIM_SCM_FOR_EACH()
      (new) FOR_EACH()
      (new) ERROR()
      (new) ERROR_OBJ()
      (new) ENSURE()
      (new) ENSURE_OBJ()
      (new) ENSURE_TYPE()
      (new) C_BOOL()
      (new) C_INT()
      (new) C_CHAR()
      (new) C_STR()
      (new) REFER_C_STR()
      (new) C_SYM()
      (new) C_PTR()
      (new) C_FPTR()
      (new) MAKE_BOOL()
      (new) MAKE_INT()
      (new) MAKE_CHAR()
      (new) MAKE_STR()
      (new) MAKE_SYM()
      (new) MAKE_PTR()
      (new) MAKE_FPTR()
      (new) INTP()
      (new) CHARP()
      (new) VECTORP()
      (new) STRP()
      (new) SYMP()
      (new) PTRP()
      (new) FPTRP()
      (new) NULLP()
      (new) CONSP()
      (new) LISTP()
      (new) EQ()
      (new) CAR()
      (new) CDR()
      (new) SET_CAR()
      (new) SET_CDR()
      (new) CONS()
      (new) LIST1()
      (new) LIST2()
      (new) LIST3()
      (new) LIST4()
      (new) LIST5()
      (new) QUOTE()
      (new) VECTOR_REF()
      (new) VECTOR_SET()
  (changed) uim_scm_length()
  (changed) uim_scm_symbol_value_int()
  (deprecated) uim_scm_null_list()
  (deprecated) uim_scm_integerp()
  (deprecated) uim_scm_stringp()
  (deprecated) uim_scm_init_subr_0()
  (deprecated) uim_scm_init_subr_1()
  (deprecated) uim_scm_init_subr_2()
  (deprecated) uim_scm_init_subr_3()
  (deprecated) uim_scm_init_subr_4()
  (deprecated) uim_scm_init_subr_5()
  (removed) uim_scm_init_fsubr()
  (removed) uim_scm_cadr()
  (removed) uim_scm_caar()
  (removed) uim_scm_cdar()
  (removed) uim_scm_cddr()
  (removed) uim_scm_reverse()
  (removed) uim_scm_return_value()
  (removed) uim_scm_c_list_conv_func
  (removed) uim_scm_c_list_free_func
  (removed) uim_scm_c_list()
  (removed) uim_scm_c_str_failsafe()
  (removed) uim_scm_c_str_list()
  (removed) uim_scm_c_list_free()
  (removed) uim_get_c_string()
  (removed) uim_scm_repl_c_string()
  (removed) uim_scm_int_from_c_int()
  (removed) uim_scm_str_from_c_str()
  (removed) uim_scm_intern_c_str()
  (removed) uim_scm_qintern_c_str()
  (removed) uim_scm_nth()
  (removed) uim_scm_nreverse()
  (removed) uim_scm_provide()
  (removed) uim_scm_get_verbose_level()
  (removed) uim_scm_set_verbose_level()
  (removed) uim_scm_get_output()
  (removed) uim_scm_set_output()
  (removed) uim_scm_is_alive()
  (removed) uim_scm_c_strs_into_list()
  (removed) uim_scm_string_equal()
  (removed) struct uim_api_tbl
  (removed) im-return-str
  (removed) im-return-str-list
Description:
  - uim-scm has been separated from libuim as libuim-scm
  - uim-scm-abbrev.h is introduced
  - Scheme integer type has been changed to long from int
  - Return type of uim_scm_symbol_value_int() has been changed to long
  - return type of uim_scm_length() is changed to long from uim_lisp
  - uim_scm_null_list() is renamed to uim_scm_null(). The old name is
    defined as an alias macro (deprecated)
  - uim_scm_integerp() is renamed to uim_scm_intp(). The old name is
    defined as an alias macro (deprecated)
  - uim_scm_stringp() is renamed to uim_scm_strp(). The old name is
    defined as an alias macro (deprecated)
  - uim_scm_init_subr_*() are renamed to uim_scm_init_proc*(). The old
    name is defined as an alias macro (deprecated)
  - uim_scm_c_list() and other list-related functions are moved into
    uim-custom.c and made static
  - uim_scm_make_int(), uim_scm_make_str(), uim_scm_make_symbol(),
    uim_scm_make_ptr(), uim_scm_make_func_ptr(), uim_scm_quote(),
    uim_scm_cons(), uim_list1(), uim_list2(), uim_list3(), uim_list4(),
    uim_list5() have been callable from non-Scheme context, to use with
    uim_scm_call*()
  - uim_scm_init_fsubr() has been removed. Use define-macro instead
  - If you want to access the verbose-level, use uim_scm_callf() instead
  - If you want to redirect stderr, use %%set-current-error-port!
------------------------------------------------------------------------------
Summary: GC protection API change
Affects: uim developers, IM developers
Updates: C API, libuim ABI
Version: 1.4.0
Revision: ac4182, ac4184, ac4345, ac4346, ac4356
Date: 2006-12-23, 2007-01-10
Modifier: YamaKen
Related: libgcroots introduction to SigScheme
URL:
Changes:
      (new) uim_scm_gc_unprotect()
      (new) uim_scm_call_with_gc_ready_stack()
  (removed) UIM_SCM_GC_PROTECTED_CALL()
  (removed) UIM_SCM_GC_PROTECTED_CALL_VOID()
  (removed) uim_scm_gc_protect_stack()
  (removed) uim_scm_gc_unprotect_stack()
Description:
  The new API is introduced to resolve corrupted GC problem on
  register windows on SPARC and register stack backing store on
  IA-64. It needs API change. Although !UIM_SCM_GCC4_READY_GC enables
  the old APIs, it will be removed on uim 1.5.0. Please use new API.
------------------------------------------------------------------------------
Summary: Focus activity and input position relocation notifications
Affects: Bridge developers, IM developers
Updates: C API, Scheme API
Version: 1.3.0
Revision: ac3966, ac3968-ac3970, ac4001-4005, ac4008-4016, ac4025, ac4027
Date: 2006-10-09 - 2006-12-01
Modifier: YamaKen, Etsushi
Related: bug #7729
URL:
  http://lists.freedesktop.org/archives/uim/2006-October/001548.html
  http://lists.freedesktop.org/archives/uim/2006-October/001559.html
  http://lists.freedesktop.org/archives/uim/2006-October/001566.html
  http://lists.freedesktop.org/archives/uim/2006-November/001573.html
  http://lists.freedesktop.org/archives/uim/2006-November/001576.html
  http://lists.freedesktop.org/archives/uim/2006-November/001581.html
  http://lists.freedesktop.org/archives/uim/2006-November/001584.html
  http://lists.freedesktop.org/archives/uim/2006-November/001591.html
  http://lists.freedesktop.org/archives/uim/2006-November/001602.html
  http://lists.freedesktop.org/archives/uim/2006-November/001606.html
  http://lists.freedesktop.org/archives/uim/2006-November/001609.html
  http://lists.freedesktop.org/archives/uim/2006-November/001613.html
  http://lists.freedesktop.org/archives/uim/2006-November/001614.html
  http://lists.freedesktop.org/archives/uim/2006-November/001626.html
  http://lists.freedesktop.org/archives/uim/2006-November/001628.html
  http://lists.freedesktop.org/archives/uim/2006-November/001633.html
  http://lists.sourceforge.jp/mailman/archives/anthy-dev/2005-October/002571.html (Japanese)
Changes:
   (update) uim_reset_context()
      (new) uim_focus_in_context()
      (new) uim_focus_out_context()
      (new) uim_place_context()
      (new) uim_displace_context()
      (new) focus-in-handler
      (new) focus-out-handler
      (new) place-handler
      (new) displace-handler
Description:
  The focus activity and input position relocation notifications are
  required to handle some IM-specific convenient behaviors, such as
  reset context at focus-out (latin IMs), auto-commit pending preedit
  string at cursor relocation (Hangul IMs), and preedit relocation
  between textareas (Japanese IMs). See the discussions of URL: for
  further information. The requirements for the reset handler is also
  redefined to be matched with the other new handlers.
------------------------------------------------------------------------------
Summary: Text acquisition and injection API
Affects: Bridge developers, IM developers
Updates: C API, Scheme API, libuim ABI
Version: 1.3.0
Revision: ac3907, ac3910-ac3922, ac3967, ac3971-ac3989, ac4026
Date: 2006-10-02 - 2006-10-11, 2006-11-10 - 2006-11-16, 2006-12-01
Modifier: YamaKen, Etsushi
Related: surrounding text API
URL:
  http://lists.freedesktop.org/archives/uim/2006-October/001535.html
  http://lists.freedesktop.org/archives/uim/2006-October/001542.html
  http://lists.freedesktop.org/archives/uim/2006-October/001544.html
  http://lists.freedesktop.org/archives/uim/2006-October/001547.html
  http://lists.freedesktop.org/archives/uim/2006-October/001551.html
  http://lists.freedesktop.org/archives/uim/2006-October/001553.html
  http://lists.freedesktop.org/archives/uim/2006-November/001583.html
  http://lists.freedesktop.org/archives/uim/2006-November/001605.html
  http://lists.freedesktop.org/archives/uim/2006-November/001608.html
  http://lists.sourceforge.jp/mailman/archives/scim-imengine-dev/2006-November/001412.html (Japanese)
Changes:
      (new) enum UTextArea
      (new) enum UTextOrigin
      (new) enum UTextExtent
      (new) uim_set_text_acquisition_cb()
      (new) uim_input_string()
  (removed) uim_set_surrounding_text_cb()
  (removed) uim_set_surrounding_text()
      (new) input-string-handler
      (new) im-acquire-text
      (new) im-delete-text
  (removed) im-request-surrounding
  (removed) im-delete-surrounding
Description:
  The experimental surrounding text API (never used until now) has
  been replaced with general text acquisition API. It allows to
  acquire arbitrary length string of the entire text of the textarea
  which input context is placed, clipboard, and selection text. The
  feature can be used as surrounding text processing, re-conversion of
  Japanese text, pasting clipboard text into preedit, and possibly
  pluggable full-screen editor for applications.
  
  Since the obsoleted surrounding text API was never used, The removal
  of the API is not regarded as a backward-compatibility break of the ABI.
------------------------------------------------------------------------------
Summary: Add new key definition
Affects: Bridge developers, Helper program developers
Updates: libuim ABI
Version: 1.3.0
Revision: ac3923, ac3936, ac3937, ac4063
Date: 2006-10-21, 2006-10-23
Modifier: Etsushi, YamaKen
Related:
URL: http://lists.freedesktop.org/archives/uim/2006-October/001567.html
Changes:
  (update) UKey
  (update) key_tab
Description:
  Add dead keys, kana keys, and some keys on international keyboard.
  These keys are added at the bottom of enum UKey to avoid backward ABI
  incompatibility.
------------------------------------------------------------------------------
Summary: Add new key definition
Affects: Bridge developers, Helper program developers
Updates: libuim ABI
Version: 1.2.0
Revision: ac3765
Date: 2006-07-21
Modifier: Etsushi
Related:
URL:
Changes:
  (update) UKey
Description:
  Add some key definitions and symbols for Japanese keyboard.
------------------------------------------------------------------------------
Summary: Version numbers for conditional compilation
Affects: Bridge developers, Helper program developers
Updates: C API
Version: 1.1.0
Revision: ac3460
Date: 2006-05-21
Modifier: YamaKen
Related:
URL:
Changes:
  (new) UIM_VERSION_MAJOR
  (new) UIM_VERSION_MINOR
  (new) UIM_VERSION_PATCHLEVEL
  (new) UIM_VERSION_REQUIRE()
Description:
  To absorb API and helper protocol incompatibility, provide the version
  numbers to allow conditional compilation for 3rd party uim-related
  softwares.
------------------------------------------------------------------------------
Summary: Deprecate truth predicates for uim-scm
Affects: uim developers, IM developers
Updates: C API (uim-scm)
Version: 1.1.0
Revision: ac3218, ac3219
Date: 2006-04-02
Modifier: YamaKen
Related: Introduction of combined-source version of SigScheme on r5rs branch
URL:
Changes:
         (new) UIM_SCM_FALSEP
         (new) UIM_SCM_NFALSEP
  (deprecated) FALSEP
  (deprecated) NFALSEP
  (deprecated) TRUEP
  (deprecated) NTRUEP
Description:
  The non-prefixed version macros conflict with SigScheme's internal ones when
  the uim-scm.c include the combined-source version of SigScheme. And they may
  also conflict with other headers on uim plugins that link with non-uim
  libraries. So it should be prefixed. Although the old macros are still
  available, it should be replaced with the new ones until the r5rs branch is
  merged into trunk.
------------------------------------------------------------------------------
Summary: Rename uim-switch-im to im-switch-im
Affects: uim developers
Updates: Scheme API
Version: 1.1.0
Revision: ac3151
Date: 2006-03-02
Modifier: YamaKen
Related:
URL:
Changes:
  (removed) uim-switch-im
      (new) im-switch-im
Description:
  Rename the inappropriate procedure name. And make the argument
  raw-context acceptable with retrieve_uim_context(), likewise other
  im-* procedures.
------------------------------------------------------------------------------
Summary: Context-originated IM switching of other contexts
Affects: Bridge developers
Updates: C API, Scheme API
Version: 1.1.0
Revision: ac3147, ac3148, ac3150, ac3151
Date: 2006-02-24
Modifier: YamaKen, Etsushi
Related: action-based IM switcher
         "Version numbers for conditional compilation"
URL:
Changes:
  (new) uim_set_im_switch_request_cb()
  (new) im-switch-app-global-im
  (new) im-switch-system-global-im
Description:
  These APIs are used for IM switching of specific set of contexts other than
  currently focused context. It ordinarily issued in response to
  action_imsw_*, and can be used for switching by keystroke.
------------------------------------------------------------------------------
Summary: Obsolete prop_label handlings
Affects: Helper program developers, Bridge developers
Updates: Helper protocol, Scheme API
Version: 1.1.0
Revision: ac3122, ac3123, ac3125, ac3131
Date: 2006-02-20
Modifier: Etsushi, YamaKen
Related: "Add icon support to helper protocol"
         "Version numbers for conditional compilation"
URL:
Changes:
    (removed) "prop_label_get"
    (removed) "prop_label_update"
    (removed) im-update-prop-label
  (obsoleted) uim_set_prop_label_update_cb
  (obsoleted) uim_prop_label_update
Description:
  The prop_label messages had already lost its original role by revised
  prop_list message (particularly 'activity' field). Because format revision
  of prop_list_update broke the protocol compatibility, it is good opportunity
  to remove the unusable message.
  
  Although C API/ABI is kept to be backward compatible with uim 1.0, bridges
  and helper programs should remove prop_label handlings.
------------------------------------------------------------------------------
Summary: Add icon support to helper protocol
Affects: Helper program developers
Updates: Helper protocol
Version: 1.1.0
Revision: ac3110
Date: 2006-02-18
Modifier: YamaKen
Related: "Version numbers for conditional compilation"
URL:
  http://lists.freedesktop.org/archives/uim/2006-February/001434.html
Changes:
  (update) "prop_list_update"
Description:
  Add 'indication_id' attribute to the message to support icons on
  toolbars. And a special indication_id "separator" is also defined.
  
  The message format have been incompatible with former one. Helper program
  developers, please read doc/HELPER-PROTOCOL and follow the change.
------------------------------------------------------------------------------
Summary: Rename is-set-ugid? to follow the Scheme naming convention
Affects: IM developers, uim developers
Updates: Scheme API
Version: 1.1.0
Revision: ac2953
Date: 2006-01-21
Modifier: YamaKen
Related:
URL:
Changes:
 (removed) is-set-ugid?
     (new) setugid?
Description:
  Ordinary Scheme predicate does not have 'is' prefix. And to indicate
  its function similarity to the issetugid(3), the '_' separator
  should be removed.
------------------------------------------------------------------------------
Summary: Hide unintentionally exposed is_setugid()
Affects: uim developers
Updates: C API
Version: 1.1.0
Revision: ac2952
Date: 2006-01-21
Modifier: YamaKen
Related:
URL:
  http://lists.sourceforge.jp/mailman/archives/anthy-dev/2006-January/002799.html (Japanese)
Changes:
 (removed) is_setugid
Description:
  is_setugid() was supposed to be an internal function, but was
  exposed as global symbol in libuim unintentionally. The libtool
  option -export-symbols-regex was expected to hide the symbol, but
  did not.

  And it was inappropriately listed in the public header file
  uim-util.h. So the function has been hidden as internal function,
  and prefixed with 'uim_' to avoid symbol conflict.

  Although this is an API/ABI change, the libtool version is not
  changed since it was virtually an internal function. The change does
  not affect the compatibility.
------------------------------------------------------------------------------
Summary: File type information of pathname custom type
Affects: IM developers, Helper program developers
Updates: Scheme API, C API (uim-custom)
Version: 1.1.0
Revision: ac2946, ac2947, ac2948
Date: 2006-01-21
Modifier: YamaKen
Related: bug #5666
URL:
  http://lists.freedesktop.org/archives/uim-commit/2005-December/002457.html
Changes:
 (affected) define-custom
   (update) custom-pathname?
      (new) custom-pathname-type
   (update) struct uim_custom_value
      (new) struct uim_custom_pathname
      (new) enum UCustomPathnameType
Description:
  To enable appropriate GUI widget handling, 'pathname' custom
  variable should provide the information whether the path is regular
  file or directory.

  Valid form for the pathname type on define-custom has been
  changed. 4th argument for it must contain the type information. See
  the real example of skk-custom.scm and im-custom.scm.

  And since the changes break the uim-custom API, all programs using
  libuim-custom must follow it. Although it broke uim-custom API, the
  uim API and ABI (libuim) is not changed.
------------------------------------------------------------------------------
Summary: Update helper protocol about commit_string.
Affects: Bridge developers, Helper program developers
Updates: Helper protocol
Version: 1.0.0
Revision: ac2314
Date: 2005-12-02
Modifier: Etsushi Kato
Related:
URL:
Changes:
  (update) "commit_string"
Description:
  Charset is now required to be specified with "commit_string"
  message.  For backward compatibility, each bridge should handle the
  message as UTF-8 if charset specifier is not available.
------------------------------------------------------------------------------
Summary: Removal of obsolete constant definitions
Affects: Bridge developers, Helper program developers
Updates: C API
Version: 0.5.1
Revision: ac2262
Date: 2005-11-27
Modifier: YamaKen
Related: 
URL:
Changes:
  (removed) UKey_Shift
  (removed) UKey_Control
  (removed) UKey_Alt
  (removed) UKey_Meta
  (removed) UKey_Pseudo0
  (removed) UKey_Pseudo1
  (removed) UPeAttr_None
  (removed) UPeAttr_UnderLine
  (removed) UPeAttr_Reverse
  (removed) UPeAttr_Cursor
  (removed) UPeAttr_Separator
Description:
  The constants for backward compatibility have been removed. Use new ones.
------------------------------------------------------------------------------
Summary: Verbose level of backtrace has been changed
Affects: uim developers, bridge developers
Updates: Internal behavior of libuim
Version: 0.5.1
Revision: ac2004
Date: 2005-11-05
Modifier: YamaKen
Related: 
URL:
Changes:
Description:
  To fix unstable result of the testing framework, backtrace printing
  has been suppressed at verbose level 1. Now verbose level 2 is
  required to print backtrace, and libuim's default is also changed to
  2. So ordinary users and developers don't needed to mind it.
------------------------------------------------------------------------------
Summary: Notification of changes in input context configuration
Affects: Bridge developers
Updates: C API
Version: 0.5.1
Revision: ac1866
Date: 2005-10-23
Modifier: Etsushi Kato
Related: IM switch by hot keys
URL:
  http://lists.sourceforge.jp/mailman/archives/anthy-dev/2005-October/002577.html (Japanese)
Changes:
  (new) uim_set_configuration_changed_cb
Description:
  API for setting a callback function for notifying some configuration
  changes in input context.  The callback is typically called when IM
  of a context is changed.
------------------------------------------------------------------------------
Summary: Obsolete some misc Scheme APIs
Affects: IM developers
Updates: Scheme API
Version: 0.5, 0.4.9
Revision: ac1413
Date: 2005-09-05
Modifier: YamaKen
Related:
URL:
Changes:
  (removed) bitwise-or
      (new) bitwise-ior
  (removed) enclose-another-env
      (new) %%enclose-another-env
  (removed) toplevel-env
      (new) interaction-environment
Description:
  Obsolete inappropriate or wrong API with new appropriate ones.
------------------------------------------------------------------------------
Summary: An experimental custom variable reloading API
Affects: Helper program developers, Bridge developers
Updates: C API, Helper protocol
Version: 0.5
Revision: ac1160, ac1161, ac1162
Date: 2005-08-09
Modifier: TOKUNAGA Hiroyuki, YamaKen
Related: bug #3620
URL:
Changes:
  (new) uim_custom_broadcast_reload_request()
Description:
------------------------------------------------------------------------------
Summary: default IM switching responsibility separation from uim_switch_im()
Affects: Bridge developers
Updates: C API
Version: 0.4.8
Revision: 971
Date: 2005-07-14
Modifier: YamaKen
Related: IM switcher
URL:
  http://lists.sourceforge.jp/mailman/archives/anthy-dev/2005-July/002130.html (Japanese)
  http://lists.sourceforge.jp/mailman/archives/anthy-dev/2005-July/002135.html (Japanese)
Changes:
  uim_switch_im()
Description:
  The responsibility about switching default IM has been separated
  from uim_switch_im() and moved into each bridges. This is required
  to handle im_change_this_text_area_only message properly.
------------------------------------------------------------------------------
Summary: New helper-candwin protocol about showing input state
Affects: Helper program developers
Updates: Helper-candwin protocol
Version: 0.4.7
Revision: ac744
Date: 2004-03-04
Modifier: Etsushi Kato
Related: 'bridge-show-input-state? of im-custom.scm
URL:
Changes:
  (new) "show_caret_state"
Description:
  New helper-candwin message from uim-xim to uim-candwin-{gtk,qt} for 
  showing caret state.  The string must be UTF-8 encoded and its
  format is as same as the format of "prop_label_update" message in
  generic helper protocol.
------------------------------------------------------------------------------
Summary: A boolean type for uim
Affects: Helper program developers, Bridge developers, uim developers
Updates: C API
Version: 0.4.6
Revision: ac40, ac53, ac163
Date: 2004-12-17 - 2005-01-08
Modifier: YamaKen
Related: custom API
URL:
  http://lists.freedesktop.org/pipermail/uim/2005-January/000831.html
  http://lists.freedesktop.org/pipermail/uim/2005-January/000878.html
Changes:
  (new) uim_bool
  (new) UIM_TRUE
  (new) UIM_FALSE
Description:
  A boolean type for uim to explicitly indicate intention about values.  A
  true value is represented as (val != UIM_FALSE). i.e. Don't test a value
  with (val == UIM_TRUE).
------------------------------------------------------------------------------
Summary: New action handling framework
Affects: IM developers
Updates: Scheme API
Version: 0.4.6
Revision: 1427, 1433, 1516, 1558, 1577, 1580, 1583, 1584, 1586, 1587, 1588, 1589, 1590, 1592, 1593
Date: 2004-10-08 - 2004-11-08
Modifier: YamaKen
Related: property.scm
URL:
  http://freedesktop.org/pipermail/uim/2004-October/000676.html
  http://freedesktop.org/pipermail/uim/2004-October/000677.html
  http://freedesktop.org/pipermail/uim/2004-October/000681.html
  http://freedesktop.org/pipermail/uim/2004-October/000682.html
  http://freedesktop.org/pipermail/uim/2004-October/000685.html
  http://freedesktop.org/pipermail/uim/2004-October/000700.html
  http://freedesktop.org/pipermail/uim/2004-October/000706.html
  http://freedesktop.org/pipermail/uim/2004-October/000707.html
  http://freedesktop.org/pipermail/uim/2004-October/000720.html
  http://freedesktop.org/pipermail/uim/2004-October/000729.html
  http://freedesktop.org/pipermail/uim/2004-October/000732.html
  http://freedesktop.org/pipermail/uim/2004-November/000733.html
  http://freedesktop.org/pipermail/uim/2004-November/000736.html
Changes:
  (new) register-action
  (new) register-widget
  (new) indicator-new
  (new) activity-indicator-new
  (new) actions-new
  (new) context-prop-activate-handler
  (new) context-mode-handler
Description:
  This user-operable action handling framework have eliminated all of
  property related handlings such as im-update-prop-list or
  im-update-prop-label from each input method. Input method developer
  can forget about the property (and legacy 'mode') feature except for
  context creation process.
  
  Users can configure widgets and actions as their preferable forms.
  
  The term 'widget' used in this framework is still under
  discussion. It may be renamed in accordance with result of the
  discussion.
  http://freedesktop.org/pipermail/uim/2004-November/000736.html
------------------------------------------------------------------------------
Summary: rk-push-key-last! without side effect
Affects: IM developers
Updates: Scheme API
Version: 0.4.6
Revision: 1542
Date: 2004-10-25
Modifier: YamaKen
Related:
URL:
  http://lists.sourceforge.jp/mailman/archives/anthy-dev/2004-October/001253.html (Japanese)
  http://lists.sourceforge.jp/mailman/archives/anthy-dev/2004-October/001254.html (Japanese)
  http://lists.sourceforge.jp/mailman/archives/anthy-dev/2004-October/001255.html (Japanese)
Changes:
  (new) rk-peek-terminal-match
Description:
  rk-peek-terminal-match returns the rule entry that exactly matches with
  current pending key sequence. rkc will not be
  altered. i.e. rk-push-key-last! without side effect
------------------------------------------------------------------------------
Summary: New logical order string API for Scheme (ustr)
Affects: IM developers, uim developers
Updates: Scheme API
Version: 0.4.6
Revision: 1483, 1496, 1520, 1539
Date: 2004-10-14 - 2004-10-24
Modifier: YamaKen
Related:
URL:
  http://freedesktop.org/pipermail/uim/2004-October/000666.html
  http://freedesktop.org/pipermail/uim/2004-October/000680.html
Changes:
  (new) ustr-rec-spec
  (new) record ustr
  (new) ustr-new
  (new) ustr-whole-seq
  (new) ustr-former-seq
  (new) ustr-latter-seq
  (new) ustr-set-whole-seq!
  (new) ustr-set-former-seq!
  (new) ustr-set-latter-seq!
  (new) ustr-empty?
  (new) ustr-clear!
  (new) ustr-clear-former!
  (new) ustr-clear-latter!
  (new) ustr-copy!
  (new) ustr=
  (new) ustr-length
  (new) ustr-nth
  (new) ustr-set-nth!
  (new) ustr-append!
  (new) ustr-prepend!
  (new) map-ustr-whole
  (new) map-ustr-former
  (new) map-ustr-latter
  (new) append-map-ustr-whole
  (new) append-map-ustr-former
  (new) append-map-ustr-latter
  (new) string-append-map-ustr-whole
  (new) string-append-map-ustr-former
  (new) string-append-map-ustr-latter
  (new) ustr-cursor-at-beginning?,
  (new) ustr-cursor-at-end?
  (new) ustr-cursor-pos
  (new) ustr-set-cursor-pos!
  (new) ustr-cursor-move!
  (new) ustr-cursor-move-backward!
  (new) ustr-cursor-move-forward!
  (new) ustr-cursor-move-beginning!
  (new) ustr-cursor-move-end!
  (new) ustr-cursor-frontside
  (new) ustr-cursor-backside
  (new) ustr-cursor-delete-frontside!
  (new) ustr-cursor-delete-backside!
  (new) ustr-insert-elem!
  (new) ustr-insert-seq!
Description:
  'ustr' stands for 'universal (editable) string'. It represents a logical
  order string of abstract elements for general purpose. Since it does not
  assume any specific type of the elements, we can reuse it against several
  generations of composition table architectures such as rk or hk. It should
  be isolated from composition table architecture to keep flexibility,
  reusability and simplicity. ustr provides only basic string operations.
  
  See test/test-ustr.scm to understand how it works.
------------------------------------------------------------------------------
Summary: New locale based IM-name retrieving API
Affects: Bridge developers
Updates: C API
Version: 0.4.6
Revision: 1522
Date: 2004-10-21
Modifier: YamaKen
Related:
URL:
  http://freedesktop.org/pipermail/uim/2004-October/000692.html
  http://freedesktop.org/pipermail/uim/2004-October/000695.html
Changes:
  (new) uim_get_im_name_for_locale()
Description:
  uim-xim requires that language of selected IM strictly match with
  client locale when the client runs on other than UTF-8 locales. This
  requirement needs the another im-name retrieving function to select
  most suitable IM.
------------------------------------------------------------------------------
Summary: romaji-kana conversion table has been split into two parts
Affects: IM developers
Updates: Scheme API
Version: 0.4.4
Revision: 1299, 1370, 1439
Date: 2004-09-27, 2004-09-30, 2004-10-10
Modifier: OHASHI Hideya
Related:
URL:
  http://lists.sourceforge.jp/mailman/archives/anthy-dev/2004-September/001100.html (Japanese)
Changes:
  (new) ja-rk-rule-basic
  (new) ja-rk-rule-additional
        ja-rk-rule
Description:
  The Japanese romaji-kana conversion table ja-rk-rule has been split into
  ja-rk-rule-basic and ja-rk-rule-additional. This is required to support the
  AZIK kana-input method properly. ja-rk-rule has been comprised of the 2
  tables.
------------------------------------------------------------------------------
Summary: uim_helper_fd_readable() has been exported
Affects: Bridge developers
Updates: C API
Version: 0.4.4
Revision: 1436
Date: 2004-10-10
Modifier: YamaKen
Related:
URL:
Changes:
  (new) uim_helper_fd_readable()
Description:
------------------------------------------------------------------------------
Summary: New IM-switching related API (still under discussion)
Affects: Bridge developers
Updates: C API
Version: 0.4.4
Revision: 1190, 1271, 1374
Date: 2004-09-12 - 2004-10-09
Modifier: TOKUNAGA Hiroyuki, YamaKen
Related: bug #610
URL:
  http://freedesktop.org/pipermail/uim/2004-September/000646.html
  http://freedesktop.org/pipermail/uim/2004-October/000648.html
  http://freedesktop.org/pipermail/uim/2004-October/000655.html
Changes:
  (new) uim_switch_im()
  (new) uim_get_current_im_name()
Description:
------------------------------------------------------------------------------
Summary: New gettext API for Scheme
Affects: uim developers, IM developers
Updates: Scheme API
Version: 0.4.4
Revision: 1144, 1368, 1425
Date: 2004-09-06 - 2004-10-08
Modifier: Kouhei Sutou, YamaKen
Related: bug #529
URL:
Changes:
  (new) gettext-package
  (new) textdomain
  (new) bindtextdomain
  (new) bind-textdomain-codeset
  (new) gettext
  (new) dgettext
  (new) dcgettext
  (new) ngettext
  (new) dngettext
  (new) dcngettext
  (new) ugettext
  (new) _
  (new) N_
Description:
------------------------------------------------------------------------------
Summary: New information retrival API
Affects: Bridge developers, Helper program developers
Updates: C API
Version: 0.4.4
Revision: 1190, 1199, 1201, 1348, 1368, 1420
Date: 2004-09-12 - 2004-10-06
Modifier: TOKUNAGA Hiroyuki, YamaKen
Related: bug #627
URL:
  http://freedesktop.org/pipermail/uim/2004-October/000650.html
  http://freedesktop.org/pipermail/uim/2004-October/000651.html
  http://freedesktop.org/pipermail/uim/2004-October/000653.html
Changes:
  (new) uim_get_im_short_desc()
  (new) uim_get_default_im_name()
  (new) uim_get_language_name_from_locale()
Description:
------------------------------------------------------------------------------
Summary: New i18n-related API for Scheme
Affects: uim developers, IM developers
Updates: Scheme API
Version: 0.4.4
Revision: 1368, 1404, 1420
Date: 2004-09-30 - 2004-10-06
Modifier: YamaKen
Related:
URL:
Changes:
  (new) locale-new
  (new) locale-lang
  (new) locale-set-lang!
  (new) locale-territory
  (new) locale-set-territory!
  (new) locale-codeset
  (new) locale-set-codeset!
  (new) locale-lang-territory-str
  (new) locale-str
  (new) locale-zh-awared-lang
  (new) langgroup-covers?
  (new) lang-code->lang-name
  (new) lang-code->lang-name-raw
Description:
------------------------------------------------------------------------------
Summary: Format extension of language attribute of IM
Affects: Bridge developers
Updates: C API
Version: 0.4.4
Revision: 1404
Date: 2004-10-05
Modifier: YamaKen
Related:
URL:
  http://lists.sourceforge.jp/mailman/archives/anthy-dev/2004-October/001117.html (Japanese)
  http://lists.sourceforge.jp/mailman/archives/anthy-dev/2004-October/001120.html (Japanese)
Changes:
  uim_get_im_language()
Description:
  This change make uim "zh_TW:zh_HK:en:de:fr" style colon-separated language
  acceptable. It may affect bridge implementations. Please check.
------------------------------------------------------------------------------
Summary: Deprecation of preliminary uim-scm API
Affects: uim developers
Updates: C API
Version: 0.4.4
Revision: 1389
Date: 2004-10-03
Modifier: YamaKen
Related: bug #481
URL:
  http://lists.sourceforge.jp/mailman/archives/anthy-dev/2004-October/001112.html (Japanese)
Changes:
  Deprecates almost uim_scm_*() functions
Description:
------------------------------------------------------------------------------
Summary: short-desc argument has been added to register-im
Affects: IM developers
Updates: Scheme API
Version: 0.4.4
Revision: 1190, 1230, 1377
Date: 2004-09-12 - 2004-10-01
Modifier: TOKUNAGA Hiroyuki, YamaKen
Related:
URL:
  http://freedesktop.org/pipermail/uim/2004-September/000646.html
Changes:
  register-im
Description:
------------------------------------------------------------------------------
Summary: New IM selection API for Scheme
Affects: IM developers
Updates: Scheme API
Version: 0.4.4
Revision: 1348, 1379
Date: 2004-09-28
Modifier: YamaKen
Related:
URL:
Changes:
  (removed) current-im
  (removed) select-im
      (new) retrieve-im
      (new) default-im-for-debug
      (new) find-im-for-locale
      (new) find-default-im
            find-im
Description:
------------------------------------------------------------------------------
Summary: Context object integration
Affects: IM developers
Updates: Scheme API
Version: 0.4.4
Revision: 1304
Date: 2004-09-27
Modifier: YamaKen
Related: bug #1450
URL:
  http://freedesktop.org/pipermail/uim/2004-September/000641.html
Changes:
  (removed) context-data
  (removed) set-context-data!
  im-commit
  im-commit-raw
  im-set-encoding
  im-clear-preedit
  im-pushback-preedit
  im-update-preedit
  im-clear-mode-list
  im-pushback-mode-list
  im-update-mode-list
  im-update-prop-label
  im-update-prop-list
  im-update-mode
  im-activate-candidate-selector
  im-select-candidate
  im-shift-page-candidate
  im-deactivate-candidate-selector
  im-request-surrounding
  im-delete-surrounding
  *-init-handler
  *-release-handler
  *-mode-handler
  *-press-key-handler
  *-release-key-handler
  *-reset-handler
  *-get-candidate-handler
  *-set-candidate-index-handler
  *-prop-handler
Description:
  This change integrates following 3 context objects into one.

  - id
  - context
  - im-specific-context

  Although some reasons to distinguish the objects exist for API implementor,
  all 3 context objects semantically mean same 'this input context' for
  IM-implementors. So we should show the context object as unified one for
  IM-implementors to eliminate complexity and confusion.

  Scheme procedures has been changed as follows.

  - To generate the integrated context object, use define-record with pseudo
    inheritance (i.e. concatenate context-rec-spec with your own context
    rec-spec). See anthy.scm for example

  - im-* procedures now accepts the integrated Scheme-side context object as
    first argument. It also accepts 'id' as backward compatibility, but not
    recommended

  - *-init-handler (such as anthy-init-handler) now accepts additional 'im'
    argument. And it must return an integrated context object. The object must
    be initialized with 'id' and 'im' arguments which passed to this
    handler. See anthy-init-handler for example

  - All other *-*-handler has been changed to accept the integrated context
    object as first argument instead of 'id'
------------------------------------------------------------------------------
Summary: Replace IM-specific context object definition by define-record
Affects: IM developers
Updates: Scheme API
Version: 0.4.4
Revision: 1228
Date: 2004-09-20
Modifier: YamaKen
Related: 'Context object integration'
URL: 
Changes:
  (removed) IM-specific context object accessors defined by hand
    (added) IM-specific context object accessors defined by define-record
  (removed) IM-specific context object creator (*-context-new) defined by hand
    (added) IM-specific context object creator (*-context-new) defined by
            define-record
Description:
  This change replaces boring context definitions in all IMs with
  define-record procedure to make maintenance easy, avoid human errors and
  know what members are defined at a glance.

  Developers, remove unused members in define-record definitions which is
  named as "unused-nth" if truely unused. They are temporarily existing as
  comment to preserve original definition information

  define-record performs safe definition of a list that has member accessors
  and creator (*-new) with default value initialization.

  Evaluating following S-exp will

  (define-record 'foo
    '((member1 ())     ;; second element means 'default value'
      (member2 "2")
      (member3 3)))

  cause definition of following procedures.

  foo-new
  foo-member1
  foo-set-member1!
  foo-member2
  foo-set-member2!
  foo-member3
  foo-set-member3!

  See following example to understand what define-record does.

  $ uim-sh
  uim> (define-record 'foo
         '((member1 ())
           (member2 "2")
           (member3 3)))
  uim> (foo-new)
  (() "2" 3)
  uim> (foo-new 'one 'two 'three)
  (one two three)
  uim> (foo-new 1)
  (1 "2" 3)
  uim> (define foo-obj (foo-new))
  (() "2" 3)
  uim> (foo-member2 foo-obj)
  "2"
  uim> (foo-set-member2! foo-obj 'two)
  two
  uim> foo-obj
  (() two 3)
------------------------------------------------------------------------------
Summary: Fix a typo of an API function name
Affects: uim developers, Helper program developers
Updates: C API, libuim ABI
Version: 0.4.4
Revision: 1223
Date: 2004-09-19
Modifier: YamaKen
Related: 
URL:
Changes:
  (removed) uim_helpler_fd_writable()
    (added) uim_helper_fd_writable()
Description:
------------------------------------------------------------------------------
Summary: New helper protocol messages for IM management
Affects: Bridge developers, Helper program developers
Updates: Helper protocol
Version: 0.4.4
Revision: 
Date: 2004-09-12?
Modifier: TOKUNAGA Hiroyuki
Related:
URL:
Changes:
  (new) im_list
  (new) im_list_get
  (new) im_change_this_text_area_only
  (new) im_change_this_application_only
  (new) im_change_whole_desktop
Description:
------------------------------------------------------------------------------
Summary: New surrounding text API (still experimental)
Affects: Bridge developers
Updates: C API
Version: 0.4.4
Revision: 1187
Date: 2004-09-12
Modifier: Yusuke Tabata
Related: bug #1450
URL:
Changes:
  (new) uim_set_surrounding_text_cb()
  (new) uim_set_surrounding_text()
Description:
------------------------------------------------------------------------------
Summary: Flag field has been added to prop_list_update message
Affects: IM developers, Bridge developers, Helper program developers
Updates: Helper protocol, Scheme API
Version: 0.4.4
Revision: 1140, 1141, 1148, 1150
Date: 2004-09-05 - 2004-09-07
Modifier: Kazuki Ohta
Related: should be recorded if open discussion exists
URL:
Changes:
  prop_list_update
  *-update-prop-list
Description:
  This changes role of prop_list_update from 'notifies whole configuration
  information for properties' to 'notifies whole configuration information for
  properties, and also notifies status update'. The status update feature
  added makes the role of the message ambiguous. We should reorganize it in
  accordance with existence of prop_label_update.
------------------------------------------------------------------------------

Local Variables:
mode: indented-text
fill-column: 78
End:
