Author: iratqq
Date: Fri Feb 15 02:59:16 2008
New Revision: 5173

Modified:
  trunk/scm/sj3.scm

Log:
* scm/sj3.scm (sj3-lib-resize-segment):
 - Don't shrink segment length is 1. pointed out by ek.kato@


Modified: trunk/scm/sj3.scm
==============================================================================
--- trunk/scm/sj3.scm   (original)
+++ trunk/scm/sj3.scm   Fri Feb 15 02:59:16 2008
@@ -76,15 +76,11 @@
  (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
+    (cond ((and (< cnt 0) ;; shrink segment
+                (< 1 (length (string-to-list (car (list-ref sc-ctx seg))))))
           (let* ((str (car (list-ref sc-ctx seg)))
-                  (kana-list (split-kana str))
+                  (kana-list (reverse (string-to-list 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))
@@ -111,10 +107,11 @@
                sc
                (append not-edited-head edited-head edited-tail 
not-edited-tail)))
             #t))
-          ((and (< 0 cnt) ;; extend segment
-                (< (+ seg 1) (length sc-ctx)))
+          ((and (< 0 cnt) ;; stretch segment
+                (< (+ seg 1) (length sc-ctx))
+ (< 0 (length (string-to-list (car (list-ref sc-ctx (+ seg 1)))))))
           (let* ((right-str (car (list-ref sc-ctx (+ seg 1))))
-                  (kana-list (split-kana right-str))
+                  (kana-list (reverse (string-to-list 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))

Reply via email to