Author: iratqq
Date: Sun Feb 17 01:33:00 2008
New Revision: 5182
Modified:
trunk/scm/sj3.scm
Log:
* scm/sj3.scm (sj3-getdouon)
- Force to insert hiragana/katakana/halfkana.
Modified: trunk/scm/sj3.scm
==============================================================================
--- trunk/scm/sj3.scm (original)
+++ trunk/scm/sj3.scm Sun Feb 17 01:33:00 2008
@@ -50,15 +50,25 @@
(define (sj3-lib-alloc-context)
#t)
(define (sj3-getdouon str)
- (let ((douon (sj3-lib-getdouon str)))
- (if (find (lambda (l)
- (if (and (list? l)
- (equal? str (car l)))
- #t
- #f))
- douon)
- douon
- (append douon (list (list str))))))
+ (define (make-map-from-kana-string str)
+ (map (lambda (x) (apply string-append x))
+ (apply zip (map (lambda (c)
+ (ja-find-kana-list-from-rule
ja-rk-rule-basic c))
+ (reverse (string-to-list str))))))
+ (let ((douon (sj3-lib-getdouon str))
+ (kana-list (make-map-from-kana-string str)))
+ (define (find-douon str)
+ (find (lambda (l)
+ (and (list? l)
+ (equal? str (car l))))
+ douon))
+ (append douon
+ (reverse (fold (lambda (kana-str e)
+ (if (not (find-douon kana-str))
+ (cons (list kana-str) e)
+ e))
+ '()
+ kana-list)))))
(define (sj3-get-nth-douon str nth)
(let ((douon (sj3-getdouon str)))
(car (list-ref douon nth))))
@@ -439,7 +449,7 @@
(if (= rule sj3-input-rule-kana)
(ja-make-kana-str
(ja-make-kana-str-list
- (string-to-list
+ (string-to-list
(string-append
(string-append-map-ustr-former extract-kana preconv-str)
(if convert-pending-into-kana?