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);
 }

Reply via email to