Author: yamakenz
Date: Tue Jul 10 03:22:10 2007
New Revision: 4681

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

Log:
* uim/uim-util.c
  - (shift_elems, iterate_lists): Removed
  - (uim_init_util_subrs): Remove iterate-lists definition
* test/test-util.scm
  - Remove tests for iterate-lists
  - Update the "passed revision" comment
* doc/COMPATIBILITY
  - Update "SRFI-1 procedures replacement"


Modified: trunk/doc/COMPATIBILITY
==============================================================================
--- trunk/doc/COMPATIBILITY     (original)
+++ trunk/doc/COMPATIBILITY     Tue Jul 10 03:22:10 2007
@@ -61,13 +61,14 @@
 Affects: uim developers, IM developers
 Updates: Scheme API
 Version: 1.5.0
-Revision: ac4680
+Revision: ac4680, ac4681
 Date: 2007-07-10
 Modifier: YamaKen
 Related: 
 URL:
 Changes:
   (changed) iota
+  (removed) iterate-lists
 Description:
   Various SRFI-1 procedures implemented in util.scm have been replaced
   with the SRFI-1 feature provided by SigScheme 0.8. And the

Modified: trunk/test/test-uim-util.scm
==============================================================================
--- trunk/test/test-uim-util.scm        (original)
+++ trunk/test/test-uim-util.scm        Tue Jul 10 03:22:10 2007
@@ -29,7 +29,7 @@
 ;;; SUCH DAMAGE.
 ;;;;
 
-;; These tests are passed at revision 4679 (new repository)
+;; These tests are passed at revision 4681 (new repository)
 
 (use test.unit)
 
@@ -274,70 +274,6 @@
    ;; for [EMAIL PROTECTED]
    (assert-equal "134217727" (uim '(digit->string 134217727)))
    )
-
-  ("test iterate-lists"
-   ;; single list cases (fast path)
-   (assert-equal '(4 3 2 1 0)
-                (uim '(iterate-lists (lambda (state elms)
-                                       (if (null? elms)
-                                           (cons #t state)
-                                           (cons #f (cons (car elms)
-                                                          state))))
-                                     ()
-                                     '((0 1 2 3 4)))))
-   (assert-equal '()
-                (uim '(iterate-lists (lambda (state elms)
-                                       (if (null? elms)
-                                           (cons #t state)
-                                           (cons #f (cons (car elms)
-                                                          state))))
-                                     ()
-                                     '(()))))
-   (assert-equal 'empty
-                (uim '(iterate-lists (lambda (state elms)
-                                       (if (null? elms)
-                                           (cons #t state)
-                                           (cons #f (cons (car elms)
-                                                          state))))
-                                     'empty
-                                     '(()))))
-   ;; multiple lists cases (normal path)
-   (assert-equal '(("o" . "O") ("l" . "L") ("l" . "L") ("e" . "E") ("h" . "H"))
-                (uim '(iterate-lists (lambda (state elms)
-                                       (if (null? elms)
-                                           (cons #t state)
-                                           (cons #f (cons (apply cons elms)
-                                                          state))))
-                                     ()
-                                     '(("h" "e" "l" "l" "o")
-                                       ("H" "E" "L" "L" "O" "!")))))
-   (assert-equal '(("o" "O" 4) ("l" "L" 3) ("l" "L" 2) ("e" "E" 1) ("h" "H" 0))
-                (uim '(iterate-lists (lambda (state elms)
-                                       (if (null? elms)
-                                           (cons #t state)
-                                           (cons #f (cons elms state))))
-                                     ()
-                                     '(("h" "e" "l" "l" "o")
-                                       ("H" "E" "L" "L" "O" "!")
-                                       (0 1 2 3 4)))))
-   (assert-equal ()
-                (uim '(iterate-lists (lambda (state elms)
-                                       (if (null? elms)
-                                           (cons #t state)
-                                           (cons #f (cons elms state))))
-                                     ()
-                                     '(("h" "e" "l" "l" "o")
-                                       ()
-                                       (0 1 2 3 4)))))
-   (assert-equal 'empty
-                (uim '(iterate-lists (lambda (state elms)
-                                       (if (null? elms)
-                                           (cons #t state)
-                                           (cons #f (cons elms state))))
-                                     'empty
-                                     '(("h" "e" "l" "l" "o")
-                                       ()
-                                       (0 1 2 3 4))))))
 
   ;; compare string sequence
   ("test str-seq-equal?"

Modified: trunk/uim/uim-util.c
==============================================================================
--- trunk/uim/uim-util.c        (original)
+++ trunk/uim/uim-util.c        Tue Jul 10 03:22:10 2007
@@ -350,73 +350,6 @@
   return string_prefixp_internal(prefix_, str_, strncasecmp);
 }
 
-static uim_lisp
-shift_elems(uim_lisp lists)
-{
-  uim_lisp elms, rests, list;
-
-  if (uim_scm_nullp(lists))
-    return uim_scm_f();
-
-  elms = rests = uim_scm_null_list();
-  for (; !uim_scm_nullp(lists); lists = uim_scm_cdr(lists)) {
-    list = uim_scm_car(lists);
-    if (uim_scm_nullp(list))
-      return uim_scm_f();
-
-    elms = uim_scm_cons(uim_scm_car(list), elms);
-    rests = uim_scm_cons(uim_scm_cdr(list), rests);
-  }
-
-  return uim_scm_cons(uim_scm_callf("reverse", "o", elms),
-                      uim_scm_callf("reverse", "o", rests));
-}
-
-static uim_lisp
-iterate_lists(uim_lisp mapper, uim_lisp seed, uim_lisp lists)
-{
-  uim_lisp elms, rest, rests, mapped, res, termp, pair, form;
-  uim_bool single_listp;
-
-  single_listp = uim_scm_nullp(uim_scm_cdr(lists));
-  rest = rests = uim_scm_null_list();
-  res = seed;
-
-  if (single_listp) {
-    rest = uim_scm_car(lists);
-  } else {
-    rests = lists;
-  }
-  do {
-    if (single_listp) {
-      /* fast path */
-      if (uim_scm_nullp(rest)) {
-       elms = uim_scm_null_list();
-      } else {
-       elms = uim_scm_list1(uim_scm_car(rest));
-       rest = uim_scm_cdr(rest);
-      }
-    } else {
-      pair = shift_elems(rests);
-      if (UIM_SCM_FALSEP(pair)) {
-       elms = rests = uim_scm_null_list();
-      } else {
-       elms = uim_scm_car(pair);
-       rests = uim_scm_cdr(pair);
-      }
-    }
-
-    form = uim_scm_list3(mapper,
-                        uim_scm_quote(res),
-                        uim_scm_quote(elms));
-    mapped = uim_scm_eval(form);
-    termp = uim_scm_car(mapped);
-    res = uim_scm_cdr(mapped);
-  } while (UIM_SCM_FALSEP(termp));
-
-  return res;
-}
-
 const char *
 uim_get_language_name_from_locale(const char *locale)
 {
@@ -486,5 +419,4 @@
   uim_scm_init_subr_1("string-to-list", eucjp_string_to_list);
   uim_scm_init_subr_2("string-prefix?", string_prefixp);
   uim_scm_init_subr_2("string-prefix-ci?", string_prefix_cip);
-  uim_scm_init_subr_3("iterate-lists", iterate_lists);
 }

Reply via email to