Author: yamakenz
Date: Tue Jul 10 17:33:47 2007
New Revision: 4690

Modified:
   trunk/scm/util.scm
   trunk/test/test-uim-util.scm
   trunk/uim/uim-util.c

Log:
* uim/uim-util.c
  - (charcode2string, string2charcode): Removed
  - (uim_init_util_subrs): Remove definitions for charcode->string and
    string->charcode
* scm/util.scm
  - (charcode->string, string->charcode): New procedure
* test/test-uim-util.scm
  - Update the "passed revision" comment


Modified: trunk/scm/util.scm
==============================================================================
--- trunk/scm/util.scm  (original)
+++ trunk/scm/util.scm  Tue Jul 10 17:33:47 2007
@@ -31,6 +31,7 @@
 (use srfi-1)
 (use srfi-6)
 (use srfi-34)
+(use srfi-60)
 
 ;;;;
 
@@ -297,6 +298,19 @@
 (define numeral-char? char-numeric?)
 (define usual-char? char-graphic?)
 (define to-lower-char char-downcase)
+
+(define charcode->string
+  (lambda (c)
+    (list->string (list (integer->char (bitwise-and 255 c))))))
+
+(define string->charcode
+  (lambda (s)
+    (let ((sl (with-char-codec "ISO-8859-1"
+               (lambda ()
+                 (string->list s)))))
+      (if (null? sl)
+         0
+         (char->integer (car sl))))))
 
 (define symbolconc symbol-append)
 

Modified: trunk/test/test-uim-util.scm
==============================================================================
--- trunk/test/test-uim-util.scm        (original)
+++ trunk/test/test-uim-util.scm        Tue Jul 10 17:33:47 2007
@@ -29,7 +29,7 @@
 ;;; SUCH DAMAGE.
 ;;;;
 
-;; These tests are passed at revision 4681 (new repository)
+;; These tests are passed at revision 4690 (new repository)
 
 (use test.unit)
 

Modified: trunk/uim/uim-util.c
==============================================================================
--- trunk/uim/uim-util.c        (original)
+++ trunk/uim/uim-util.c        Tue Jul 10 17:33:47 2007
@@ -135,30 +135,6 @@
 }
 
 static uim_lisp
-charcode2string(uim_lisp x)
-{
-  char buf[2];
-  if (uim_scm_integerp(x)) {
-    buf[0] = uim_scm_c_int(x);
-  } else {
-    buf[0] = 0;
-  }
-  buf[1] = 0;
-  return uim_scm_make_str(buf);
-}
-
-static uim_lisp
-string2charcode(uim_lisp x)
-{
-  const char *buf = uim_scm_refer_c_str(x);
-
-  if (buf) {
-    return uim_scm_make_int(*buf);
-  }
-  return uim_scm_f();
-}
-
-static uim_lisp
 c_getenv(uim_lisp str_)
 {
   const char *str = uim_scm_refer_c_str(str_);
@@ -413,8 +389,6 @@
   uim_scm_init_subr_1("unsetenv", c_unsetenv);
 
   /* these procedures should be replaced with standard ones of R5RS or SRFIs */
-  uim_scm_init_subr_1("charcode->string", charcode2string);
-  uim_scm_init_subr_1("string->charcode", string2charcode);
   uim_scm_init_subr_2("string-split", uim_split_string);
   uim_scm_init_subr_1("string-to-list", eucjp_string_to_list);
   uim_scm_init_subr_2("string-prefix?", string_prefixp);

Reply via email to