Author: iratqq
Date: Thu Feb 14 21:21:01 2008
New Revision: 5170

Modified:
  trunk/scm/sj3.scm

Log:
* scm/sj3.scm (japanese-split-euc-kana, sj3-lib-resize-segment):
 - Remove stupid function japanese-split-euc-kana.
   string-to-list works fine with multibyte string.


Modified: trunk/scm/sj3.scm
==============================================================================
--- trunk/scm/sj3.scm   (original)
+++ trunk/scm/sj3.scm   Thu Feb 14 21:21:01 2008
@@ -75,33 +75,11 @@
(define (sj3-lib-get-nr-candidates sc-ctx seg)
  (sj3-get-nr-douon
   (car (list-ref sc-ctx seg)))) ;; yomi
-(define (japanese-split-euc-kana str)
-  (define kana-table
-    (append (apply append (map cdar ja-kana-hiragana-rule))
-            (apply append (map cadr ja-kana-hiragana-rule))))
-  (let loop ((str str)
-             (rest '()))
-    (cond ((equal? str "")
-           (if (null? rest)
-               (list "")
-               (reverse rest)))
-          ((< (string-length str) 2)
-           (loop "" (cons str rest)))
-          (else
-           (let ((len (string-length str))
-                 (word (substring str 0 2))) ;; XXX: assume 2byte euc
-             (if (find (lambda (x) (equal? x word)) kana-table)
-                 ;; put kana
-                 (loop (substring str 2 len) (cons word rest))
-                 ;; put unknown char (ascii?)
-                 ;; XXX: if char is unknown multibyte char,
-                 ;;      this process maybe crash next "string-append" step.
-                 (loop (substring str 1 len) (cons (substring str 0 1) 
rest))))))))
(define (sj3-lib-resize-segment sc seg cnt)
  (let ((sc-ctx (sj3-context-sc-ctx sc)))
    (cond ((< cnt 0) ;; shrink segment
           (let* ((str (car (list-ref sc-ctx seg)))
-                  (kana-list (japanese-split-euc-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))
@@ -131,7 +109,7 @@
          ((and (< 0 cnt) ;; extend segment
                (< (+ seg 1) (length sc-ctx)))
           (let* ((right-str (car (list-ref sc-ctx (+ seg 1))))
-                  (kana-list (japanese-split-euc-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))
@@ -163,7 +141,7 @@
        (let ((entry (list-ref douon delta)))
          (if (= 2 (length entry))
              (sj3-lib-gakusyuu (list-ref entry 1)))))))
-(define (sj3-lib-reset-conversion sc)
+(define (sj3-lib-reset-conversion sc-ctx)
  #f)


Reply via email to