Author: iratqq
Date: Thu Feb 14 21:57:18 2008
New Revision: 5171
Modified:
trunk/scm/sj3.scm
Log:
* scm/sj3.scm (sj3-lib-resize-segment):
- Check str = "" case.
Modified: trunk/scm/sj3.scm
==============================================================================
--- trunk/scm/sj3.scm (original)
+++ trunk/scm/sj3.scm Thu Feb 14 21:57:18 2008
@@ -76,10 +76,15 @@
(sj3-get-nr-douon
(car (list-ref sc-ctx seg)))) ;; yomi
(define (sj3-lib-resize-segment sc seg cnt)
+ (define (split-kana str)
+ (let ((kana (reverse (string-to-list str))))
+ (if (null? kana)
+ (list "")
+ kana)))
(let ((sc-ctx (sj3-context-sc-ctx sc)))
(cond ((< cnt 0) ;; shrink segment
(let* ((str (car (list-ref sc-ctx seg)))
- (kana-list (reverse (string-to-list str)))
+ (kana-list (split-kana str))
(left (apply string-append (take kana-list (+
(length kana-list) cnt))))
(right (apply string-append (take-right kana-list (*
cnt -1))))
(left-douon (sj3-getdouon left))
@@ -109,7 +114,7 @@
((and (< 0 cnt) ;; extend segment
(< (+ seg 1) (length sc-ctx)))
(let* ((right-str (car (list-ref sc-ctx (+ seg 1))))
- (kana-list (reverse (string-to-list right-str)))
+ (kana-list (split-kana right-str))
(left (string-append (car (list-ref sc-ctx seg))
(car kana-list)))
(right (apply string-append (cdr kana-list)))
(left-douon (sj3-getdouon left))