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