Author: yamakenz
Date: Mon Aug 27 19:24:38 2007
New Revision: 4908
Modified:
trunk/uim/uim-util.c
Log:
* uim/uim-util.c
- (vector_copy): New static function
- (uim_init_util_subrs): Add initialization for 'vector-copy'
Modified: trunk/uim/uim-util.c
==============================================================================
--- trunk/uim/uim-util.c (original)
+++ trunk/uim/uim-util.c Mon Aug 27 19:24:38 2007
@@ -238,6 +238,23 @@
return string_prefixp_internal(prefix_, str_, strncasecmp);
}
+/* Limited version of SRFI-43 vector-copy. Only accepts 1st arg. */
+static uim_lisp
+vector_copy(uim_lisp src)
+{
+ long len, i;
+ uim_lisp elm, copied;
+
+ len = uim_scm_vector_length(src);
+ copied = uim_scm_callf("make-vector", "l", len);
+ for (i = 0; i < len; i++) {
+ elm = VECTOR_REF(src, i);
+ VECTOR_SET(copied, i, elm);
+ }
+
+ return copied;
+}
+
const char *
uim_get_language_name_from_locale(const char *locale)
{
@@ -322,4 +339,7 @@
uim_scm_init_subr_3("string-contains", string_contains);
uim_scm_init_subr_2("string-prefix?", string_prefixp);
uim_scm_init_subr_2("string-prefix-ci?", string_prefix_cip);
+
+ /* SRFI-43 */
+ uim_scm_init_subr_1("vector-copy", vector_copy);
}