Author: iratqq
Date: Sun Feb 17 05:09:43 2008
New Revision: 5184
Modified:
trunk/scm/sj3.scm
Log:
* scm/sj3.scm
(sj3-get-nth-yomi): New function.
(sj3-lib-get-nth-candidate): Use sj3-get-nth-yomi.
(sj3-lib-get-nr-candidates): Ditto.
(sj3-lib-resize-segment): Ditto.
(sj3-lib-commit-segment): Ditto.
(sj3-lib-get-unconv-candidate):
Implement. sj3-transpose-* key press works fine now.
Modified: trunk/scm/sj3.scm
==============================================================================
--- trunk/scm/sj3.scm (original)
+++ trunk/scm/sj3.scm Sun Feb 17 05:09:43 2008
@@ -62,24 +62,23 @@
(define (sj3-get-nth-douon str nth)
(let ((douon (sj3-getdouon str)))
(car (list-ref douon nth))))
+(define (sj3-get-nth-yomi sc-ctx nth)
+ (car (list-ref sc-ctx nth)))
(define (sj3-lib-get-nth-candidate sc-ctx seg nth)
- (sj3-get-nth-douon
- (car (list-ref sc-ctx seg)) ;; yomi
- nth))
+ (sj3-get-nth-douon (sj3-get-nth-yomi sc-ctx seg) nth))
(define (sj3-lib-release-context sc)
#t)
(define (sj3-lib-get-unconv-candidate sc-ctx seg-idx)
- #f)
+ (sj3-get-nth-yomi sc-ctx seg-idx))
(define (sj3-lib-get-nr-segments sc-ctx)
(length sc-ctx))
(define (sj3-get-nr-douon str)
(length (sj3-getdouon str)))
(define (sj3-lib-get-nr-candidates sc-ctx seg)
- (sj3-get-nr-douon
- (car (list-ref sc-ctx seg)))) ;; yomi
+ (sj3-get-nr-douon (sj3-get-nth-yomi sc-ctx seg)))
(define (sj3-lib-resize-segment sc seg cnt)
(let* ((sc-ctx (sj3-context-sc-ctx sc))
- (kana-str (car (list-ref sc-ctx seg)))
+ (kana-str (sj3-get-nth-yomi sc-ctx seg))
(kana-list (reverse (string-to-list kana-str))))
(cond ((and (< cnt 0) ;; shrink segment
(< 1 (length kana-list)))
@@ -90,7 +89,7 @@
(edited-tail (if (= (+ 1 seg) (length sc-ctx)) ;;
end of segments
(list (take-right kana-list (* -1 cnt)))
(let* ((next-char (car (take-right
kana-list (* -1 cnt))))
- (kana-next-str (car
(list-ref sc-ctx (+ 1 seg)))))
+ (kana-next-str
(sj3-get-nth-yomi sc-ctx (+ 1 seg))))
(list (list (string-append
next-char kana-next-str))))))
(not-edited-tail (if (= (+ 1 seg) (length sc-ctx))
'()
@@ -101,8 +100,8 @@
#t)
((and (< 0 cnt) ;; stretch segment
(< (+ seg 1) (length sc-ctx))
- (< 0 (length (string-to-list (car (list-ref sc-ctx (+
seg 1)))))))
- (let* ((next-str (car (list-ref sc-ctx (+ seg 1))))
+ (< 0 (length (string-to-list (sj3-get-nth-yomi sc-ctx
(+ seg 1))))))
+ (let* ((next-str (sj3-get-nth-yomi sc-ctx (+ seg 1)))
(next-kana-list (reverse (string-to-list next-str)))
(not-edited-head (if (< 0 seg)
(take sc-ctx seg)
@@ -130,7 +129,7 @@
(else
#f))))
(define (sj3-lib-commit-segment sc-ctx seg delta)
- (let ((douon (sj3-getdouon (car (list-ref sc-ctx seg)))))
+ (let ((douon (sj3-getdouon (sj3-get-nth-yomi sc-ctx seg))))
(if (< delta (length douon))
(let ((entry (list-ref douon delta)))
(if (= 2 (length entry))