Revision: 7367
Author:   deton.kih
Date:     Sat Nov 12 04:53:02 2011
Log:      * scm/tutcode.scm
  - (tutcode-begin-postfix-katakana-conversion): Simplify.
  - (tutcode-kanji-list->sequence):
    Fix error when tutcode-postfix-kanji2seq-3-start-sequence
    is typed on top of text field.
  - (tutcode-begin-postfix-kanji2seq-conversion): Simplify.
  - (tutcode-proc-state-postfix-kanji2seq): Simplify.

http://code.google.com/p/uim/source/detail?r=7367

Modified:
 /trunk/scm/tutcode.scm

=======================================
--- /trunk/scm/tutcode.scm      Fri Nov 11 15:35:20 2011
+++ /trunk/scm/tutcode.scm      Sat Nov 12 04:53:02 2011
@@ -3441,19 +3441,13 @@
         (take-while
           (lambda (elem)
             (not (kanji? elem))) ; ´Á»ú¤¬¤¢¤Ã¤¿¤é¡¢¤½¤³¤ÇÃæÃÇ
-          former-all)))
-     (former-len (length former-seq)))
+          former-all))))
     (if yomi-len
-      (let*
-        ((yomi (if (> former-len yomi-len)
-                (take former-seq yomi-len)
-                former-seq))
-         (katakana
-          (tutcode-katakana-convert yomi
-            (not (tutcode-context-katakana-mode? pc)))))
-        (tutcode-postfix-katakana-commit pc yomi katakana #t))
+      (let ((katakana (tutcode-katakana-convert former-seq
+                        (not (tutcode-context-katakana-mode? pc)))))
+        (tutcode-postfix-katakana-commit pc former-seq katakana #t))
       ;; ÆÉ¤ß¤Îʸ»ú¿ô¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤
-      (if (> former-len 0)
+      (if (pair? former-seq)
         (begin
           (tutcode-context-set-mazegaki-yomi-all! pc former-all)
           (tutcode-context-set-head! pc
@@ -3514,7 +3508,8 @@
     ;; ºÇ¸å¤Îverbose-stroke-key(Îã:":")¤Ï´Á»úÆþÎϤò½ªÃ¼¤¹¤ë¤¿¤á
     ;; ;ʬ¤ËÆþÎϤµ¤ì¤¿²ÄǽÀ­¤¬¤¢¤ë¤Î¤Çºï¤ë
     ;; Îã: "undo:"¢ª"¼ño"¢ª("o" "¼ñ")¡¢"code:"¢ª"±é³Æ:"¢ª(":" "³Æ" "±é")
-    (if (tutcode-verbose-stroke-key? (string->ichar (safe-car allseq)) 0)
+    (if (and (pair? allseq)
+             (tutcode-verbose-stroke-key? (string->ichar (car allseq)) 0))
       (cdr allseq)
       allseq)))

@@ -3545,20 +3540,15 @@
               rest)))
           (if first-verbose-key?
(cons first seq) ; delete-text¤¹¤ëŤµ¤ò¹ç¤ï¤»¤ë¤¿¤áfirst¤ÏÆþ¤ì¤ë
-            seq))))
-     (former-len (length former-seq)))
+            seq)))))
     (if yomi-len
-      (let*
-        ((yomi (if (> former-len yomi-len)
-                (take former-seq yomi-len)
-                former-seq))
-         (seq (tutcode-kanji-list->sequence pc yomi)))
-        (tutcode-postfix-commit pc (string-list-concat seq) yomi))
+      (let ((seq (tutcode-kanji-list->sequence pc former-seq)))
+        (tutcode-postfix-commit pc (string-list-concat seq) former-seq))
       ;; ÆÉ¤ß¤Îʸ»ú¿ô¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤
-      (if (> former-len 0)
+      (if (pair? former-seq)
         (begin
           (tutcode-context-set-mazegaki-yomi-all! pc former-all)
-          (tutcode-context-set-postfix-yomi-len! pc former-len)
+          (tutcode-context-set-postfix-yomi-len! pc (length former-seq))
           (tutcode-context-set-head! pc
             (tutcode-kanji-list->sequence pc former-seq))
(tutcode-context-set-state! pc 'tutcode-state-postfix-kanji2seq))))))
@@ -3587,14 +3577,14 @@
                   (+ yomi-len 1)
                   yomi-len))
            (yomi (take yomi-all len)))
-        (tutcode-postfix-commit pc (string-list-concat head) yomi)))))
+          (tutcode-postfix-commit pc (string-list-concat head) yomi)
+          (tutcode-flush pc)))))
     (cond
       ((tutcode-cancel-key? key key-state)
         (tutcode-flush pc))
       ((or (tutcode-commit-key? key key-state)
            (tutcode-return-key? key key-state))
-        (commit)
-        (tutcode-flush pc))
+        (commit))
       ((tutcode-mazegaki-relimit-right-key? key key-state)
         (if (> yomi-len 1)
           (update-context! (- yomi-len 1))))
@@ -3603,7 +3593,6 @@
           (update-context! (+ yomi-len 1))))
       (else
         (commit)
-        (tutcode-flush pc)
         (tutcode-proc-state-on pc key key-state)))))

 ;;; ľÀÜÆþÎϾõÂ֤ΤȤ­¤Î¥­¡¼ÆþÎϤò½èÍý¤¹¤ë¡£

Reply via email to