Author: yamakenz
Date: Fri Aug 24 08:02:56 2007
New Revision: 4884

Modified:
   trunk/doc/COMPATIBILITY
   trunk/uim/uim-internal.h
   trunk/uim/uim-scm.c
   trunk/uim/uim-scm.h
   trunk/uim/uim.h

Log:
* This commit make uim-scm.[hc] independent of other part of libuim

* uim/uim.h
  - (UIM_BOOL_DEFINED): New macro
  - Add duplicate definition guard for uim_bool, UIM_FALSE and
    UIM_TRUE by UIM_BOOL_DEFINED
* uim/uim-internal.h
  - (uim_scm_init, uim_scm_quit, uim_scm_set_fatal_error_hook): Move to
    from uim-scm.h
* uim/uim-scm.h
  - (UIM_BOOL_DEFINED): New macro
  - (uim_bool): New type
  - (UIM_FALSE, UIM_TRUE): New macro
  - Add duplicate definition guard for uim_bool, UIM_FALSE and
    UIM_TRUE by UIM_BOOL_DEFINED
  - Exclude unneeded stdio.h
  - Include stdlib.h for size_t
  - Exclude uim.h
  - (uim_scm_init, uim_scm_quit, uim_scm_set_fatal_error_hook): Moved
    from uim-internal.h
* uim/uim-scm.c
  - Exclude uim-internal.h
* doc/COMPATIBILITY
  - Update


Modified: trunk/doc/COMPATIBILITY
==============================================================================
--- trunk/doc/COMPATIBILITY     (original)
+++ trunk/doc/COMPATIBILITY     Fri Aug 24 08:02:56 2007
@@ -430,7 +430,7 @@
 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
+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
 Date: 2007-01-09 -
 Modifier: YamaKen
 Related: uim-scm API truth predicates reorganization in uim 1.5.0
@@ -452,6 +452,8 @@
       (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()

Modified: trunk/uim/uim-internal.h
==============================================================================
--- trunk/uim/uim-internal.h    (original)
+++ trunk/uim/uim-internal.h    Fri Aug 24 08:02:56 2007
@@ -147,10 +147,6 @@
 /* throw recoverable error */
 void    uim_throw_error(const char *msg);
 
-void uim_scm_init(const char *system_load_path);
-void uim_scm_quit(void);
-void uim_scm_set_fatal_error_hook(void (*hook)(void));
-
 void uim_init_plugin(void);
 void uim_quit_plugin(void);
 

Modified: trunk/uim/uim-scm.c
==============================================================================
--- trunk/uim/uim-scm.c (original)
+++ trunk/uim/uim-scm.c Fri Aug 24 08:02:56 2007
@@ -53,7 +53,6 @@
 #include <assert.h>
 
 #include "uim-scm.h"
-#include "uim-internal.h"
 /* To avoid macro name conflict with SigScheme, uim-scm-abbrev.h should not
  * be included. */
 

Modified: trunk/uim/uim-scm.h
==============================================================================
--- trunk/uim/uim-scm.h (original)
+++ trunk/uim/uim-scm.h Fri Aug 24 08:02:56 2007
@@ -47,12 +47,10 @@
 */
 
 
-/* API and ABI are unstable */
 #ifndef _uim_scm_h_included_
 #define _uim_scm_h_included_
 
-#include <stdio.h>
-#include "uim.h"
+#include <stdlib.h>
 
 #ifdef __cplusplus
 extern "C" {
@@ -60,6 +58,24 @@
 
 #define UIM_SCM_USE_DEPRECATED_API 1
 
+#ifndef UIM_BOOL_DEFINED
+/*
+ * A boolean type for uim to explicitly indicate intention about values.
+ *
+ *                           *** IMPORTANT ***
+ *
+ * Do not test a value with (val == UIM_TRUE). The UIM_TRUE is only A TYPICAL
+ * VALUE FOR TRUE. Use (val) or (val != UIM_FALSE) instead.
+ *
+ */
+typedef int uim_bool;
+
+#define UIM_FALSE 0
+#define UIM_TRUE 1
+
+#define UIM_BOOL_DEFINED 1
+#endif /* UIM_BOOL_DEFINED */
+
 /*
   uim companion tools should treat lisp object as opaque. struct
   uim_opaque exists only for type check and has no actual definition.
@@ -70,7 +86,12 @@
 
 
 /* subsystem interfaces */
+/* uim_scm_init(), uim_scm_quit() and uim_scm_set_fatal_error_hook() are
+ * called from libuim internal. Ordinary user must not call it directly. */
+void uim_scm_init(const char *system_load_path);
+void uim_scm_quit(void);
 uim_bool uim_scm_is_initialized(void);
+void uim_scm_set_fatal_error_hook(void (*hook)(void));
 void
 uim_scm_set_lib_path(const char *path);
 

Modified: trunk/uim/uim.h
==============================================================================
--- trunk/uim/uim.h     (original)
+++ trunk/uim/uim.h     Fri Aug 24 08:02:56 2007
@@ -50,6 +50,7 @@
    || ((major) == UIM_VERSION_MAJOR && (minor) == UIM_VERSION_MINOR         \
        && (patchlevel) <= UIM_VERSION_PATCHLEVEL))
 
+#ifndef UIM_BOOL_DEFINED
 /*
  * A boolean type for uim to explicitly indicate intention about values
  *
@@ -63,6 +64,9 @@
 
 #define UIM_FALSE 0
 #define UIM_TRUE 1
+
+#define UIM_BOOL_DEFINED 1
+#endif /* UIM_BOOL_DEFINED */
 
 
 typedef struct uim_context_ *uim_context;

Reply via email to