diff -ru uim-1.0.1.orig/scm/mana.scm uim-1.0.1/scm/mana.scm --- uim-1.0.1.orig/scm/mana.scm 2005-12-07 21:39:30.000000000 +0900 +++ uim-1.0.1/scm/mana.scm 2006-05-01 17:48:31.000000000 +0900 @@ -68,6 +68,10 @@ (lambda (yomi state pos mrph-len len) (mana-eval (list 'mana-list-candidates yomi state pos mrph-len len)))) +(define mana-learn + (lambda (yomi state pos len path) + (mana-eval (list 'mana-learn yomi state pos len (list 'quote path))))) + (define mana-add-new-word (lambda (kaki yomi) (mana-eval (list 'mana-add-new-word kaki yomi)))) @@ -86,6 +90,8 @@ (string-escape elem)) ((number? elem) (number->string elem)) + ((list? elem) + (mana-list->string elem)) (else ""))) lst))) @@ -916,7 +922,23 @@ (define mana-commit-string (lambda (mc) - '())) + (let* ((yomi (mana-context-yomi mc)) + (yomi-len (mana-context-yomi-len mc)) + (segment-list (mana-context-segment-list mc)) + (segments (mana-context-segments mc)) + (path (map (lambda (segment cand-idx) + (let ((candidate + (if (= cand-idx 0) + (mana-segment-first-candidate segment) + (list-ref + (mana-segment-candidate-list segment) + cand-idx))) + (pos (mana-segment-pos segment)) + (len (mana-segment-len segment))) + (list candidate pos len))) + segment-list + (ustr-whole-seq segments)))) + (mana-learn yomi 0 0 yomi-len path)))) (define mana-do-commit (lambda (mc)