Author: yamakenz
Date: Fri Jul 20 12:06:46 2007
New Revision: 4764
Modified:
trunk/doc/COMPATIBILITY
trunk/uim/uim-scm-abbrev.h
trunk/uim/uim-scm.c
trunk/uim/uim-scm.h
Log:
* uim/uim-scm.h
- (uim_scm_make_str_directly): New function decl
* uim/uim-scm.c
- (uim_scm_make_str_directly): New function
- (uim_scm_make_str_directly_internal): New static function
* uim/uim-scm-abbrev.h
- (MAKE_STR_DIRECTLY): New macro
* doc/COMPATIBILITY
- Update
Modified: trunk/doc/COMPATIBILITY
==============================================================================
--- trunk/doc/COMPATIBILITY (original)
+++ trunk/doc/COMPATIBILITY Fri Jul 20 12:06:46 2007
@@ -312,7 +312,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
+Revision: ac4333, ac4334, ac4339, ac4347, ac4351-ac4353, ac4355, ac4444,
ac4446, ac4751, ac4761, ac4764
Date: 2007-01-09 -
Modifier: YamaKen
Related: SigScheme introduction to uim
@@ -329,6 +329,7 @@
(new) uim_scm_callf()
(new) uim_scm_callf_with_guard()
(new) uim_scm_null()
+ (new) uim_scm_make_str_directly()
(new) MAKE_BOOL()
(new) MAKE_INT()
(new) MAKE_STR()
Modified: trunk/uim/uim-scm-abbrev.h
==============================================================================
--- trunk/uim/uim-scm-abbrev.h (original)
+++ trunk/uim/uim-scm-abbrev.h Fri Jul 20 12:06:46 2007
@@ -41,6 +41,7 @@
#define MAKE_BOOL uim_scm_make_bool
#define MAKE_INT uim_scm_make_int
#define MAKE_STR uim_scm_make_str
+#define MAKE_STR_DIRECTLY make_str_directly
#define MAKE_SYM uim_scm_make_symbol
#define MAKE_PTR uim_scm_make_ptr
#define MAKE_FPTR uim_scm_make_func_ptr
Modified: trunk/uim/uim-scm.c
==============================================================================
--- trunk/uim/uim-scm.c (original)
+++ trunk/uim/uim-scm.c Fri Jul 20 12:06:46 2007
@@ -97,6 +97,7 @@
static void *uim_scm_make_int_internal(void *integer);
static const char *uim_scm_refer_c_str_internal(void *uim_lisp_str);
static void *uim_scm_make_str_internal(const char *str);
+static void *uim_scm_make_str_directly_internal(char *str);
static void *uim_scm_make_symbol_internal(const char *name);
static void *uim_scm_make_ptr_internal(void *ptr);
static void *uim_scm_make_func_ptr_internal(uim_func_ptr func_ptr);
@@ -270,6 +271,21 @@
uim_scm_make_str_internal(const char *str)
{
return (void *)SCM_MAKE_STRING_COPYING(str, SCM_STRLEN_UNKNOWN);
+}
+
+uim_lisp
+uim_scm_make_str_directly(char *str)
+{
+ assert(uim_scm_gc_any_contextp());
+ assert(str);
+
+ return
(uim_lisp)uim_scm_call_with_gc_ready_stack((uim_gc_gate_func_ptr)uim_scm_make_str_directly_internal,
(void *)str);
+}
+
+static void *
+uim_scm_make_str_directly_internal(char *str)
+{
+ return (void *)SCM_MAKE_STRING(str, SCM_STRLEN_UNKNOWN);
}
char *
Modified: trunk/uim/uim-scm.h
==============================================================================
--- trunk/uim/uim-scm.h (original)
+++ trunk/uim/uim-scm.h Fri Jul 20 12:06:46 2007
@@ -146,6 +146,7 @@
uim_scm_refer_c_str(uim_lisp str);
uim_lisp
uim_scm_make_str(const char *str);
+uim_lisp uim_scm_make_str_directly(char *str);
char *
uim_scm_c_symbol(uim_lisp str);