Revision: 7252
Author: deton.kih
Date: Tue Aug 2 23:51:30 2011
Log: * Change to be able to select bushu conversion algorithm.
* scm/tutcode-custom.scm
- (tutcode-bushu-conversion-algorithm): New custom.
- (tutcode-bushu-index2-filename,
tutcode-bushu-expand-filename):
Change to depend on tutcode-bushu-conversion-algorithm.
* scm/tutcode.scm
- (tutcode-check-bushu-prediction):
Change to be wrapper for some bushu conversion algorithms.
- (tutcode-check-bushu-prediction-tc21):
Rename from tutcode-check-bushu-prediction.
- (tutcode-check-bushu-prediction-tc23): New.
- (tutcode-bushu-convert):
Change to be wrapper for some bushu conversion algorithms.
- (tutcode-bushu-convert-tc21): Rename from tutcode-bushu-convert.
- (tutcode-auto-help-bushu-decompose):
Change to be wrapper for some bushu conversion algorithms.
- (tutcode-auto-help-bushu-decompose-tc21):
Rename from tutcode-auto-help-bushu-decompose.
Follow the rename.
- (tutcode-get-candidate-handler):
Support empty word for tc-2.3.1-22.6 bushu conversion algorithm.
* scm/tutcode-bushu.scm
- (tutcode-bushu-compose-tc23):
Rename from tutcode-bushu-compose-interactively.
Add argument to specify whether to return when one candidate is found
for performance on non-interactive bushu conversion.
- (tutcode-bushu-compose-interactively):
Change to call tutcode-bushu-compose-tc23.
- (tutcode-bushu-convert-tc23): New.
- (tutcode-bushu-decompose-to-two-char,
tutcode-bushu-composed,
tutcode-auto-help-bushu-decompose-tc23): New.
http://code.google.com/p/uim/source/detail?r=7252
Modified:
/trunk/scm/tutcode-bushu.scm
/trunk/scm/tutcode-custom.scm
/trunk/scm/tutcode.scm
=======================================
--- /trunk/scm/tutcode-bushu.scm Sun Jul 31 16:32:11 2011
+++ /trunk/scm/tutcode-bushu.scm Tue Aug 2 23:51:30 2011
@@ -33,7 +33,7 @@
;;; tc-2.3.1¤Îtc-bushu.el¤ò°Ü¿¢(sort¤Ç¤ÎÂǤÁ¤ä¤¹¤µ¤Î¹Íθ¤Ï̤Âбþ)¡£
;;; (»²¹Í:Éô¼ó¹çÀ®¥¢¥ë¥´¥ê¥º¥à¤Ï[tcode-ml:1942]¤¢¤¿¤ê)
-(require-extension (srfi 1 8 95))
+(require-extension (srfi 1 2 8 95))
(require "fileio.scm")
(require-dynlib "look")
@@ -633,29 +633,267 @@
;;; ÂÐÏÃŪ¤ÊÉô¼ó¹çÀ®ÊÑ´¹ÍѤˡ¢»ØÄꤵ¤ì¤¿Éô¼ó¤Î¥ê¥¹¥È¤«¤éÉô¼ó¹çÀ®²Äǽ¤Ê
;;; ´Á»ú¤Î¥ê¥¹¥È¤òÊÖ¤¹¡£
;;; @param char-list ÆþÎϤµ¤ì¤¿Éô¼ó¤Î¥ê¥¹¥È
+;;; @param exit-on-found?
´Á»ú¤¬1ʸ»ú¤Ç¤â¹çÀ®¤Ç¤¤¿¤é¤½¤ì°Ê¾å¤Î¹çÀ®¤ÏÃæ»ß¤¹¤ë
;;; @return ¹çÀ®²Äǽ¤Ê´Á»ú¤Î¥ê¥¹¥È
-(define (tutcode-bushu-compose-interactively char-list)
+(define (tutcode-bushu-compose-tc23 char-list exit-on-found?)
(let*
((bushu-list (append-map! tutcode-bushu-for-char char-list))
- (explicit (tutcode-bushu-compose-explicitly char-list))
- (complete-compose-set
- (tutcode-bushu-complete-compose-set char-list bushu-list))
- (complete-diff-set (tutcode-bushu-complete-diff-set char-list))
- (strong-compose-set
- (tutcode-bushu-strong-compose-set char-list bushu-list))
- (strong-diff-set (tutcode-bushu-strong-diff-set char-list))
- (weak-diff-set (tutcode-bushu-weak-diff-set char-list
strong-diff-set))
- (weak-compose-set (tutcode-bushu-weak-compose-set char-list bushu-list
- strong-compose-set)))
- (delete-duplicates!
- (filter!
- (lambda (elem)
- (not (member elem tutcode-bushu-inhibited-output-chars)))
- (append!
- explicit
- complete-compose-set
- complete-diff-set
- strong-compose-set
- strong-diff-set
- weak-diff-set
- weak-compose-set)))))
+ (update-res!
+ (lambda (res lst)
+ (append! res
+ (filter!
+ (lambda (elem)
+ (not (member elem tutcode-bushu-inhibited-output-chars)))
+ lst))))
+ (resall
+ (let
+ ((r0 (update-res! () (tutcode-bushu-compose-explicitly
char-list))))
+ (if (and exit-on-found? (pair? r0))
+ r0
+ (let
+ ((r1 (update-res! r0
+ (tutcode-bushu-complete-compose-set char-list
bushu-list))))
+ (if (and exit-on-found? (pair? r1))
+ r1
+ (let
+ ((r2 (update-res! r1
+ (tutcode-bushu-complete-diff-set char-list))))
+ (if (and exit-on-found? (pair? r2))
+ r2
+ (let*
+ ((strong-compose-set
+ (tutcode-bushu-strong-compose-set char-list
bushu-list))
+ (r3 (update-res! r2 strong-compose-set)))
+ (if (and exit-on-found? (pair? r3))
+ r3
+ (let*
+ ((strong-diff-set
+ (tutcode-bushu-strong-diff-set char-list))
+ (r4 (update-res! r3 strong-diff-set)))
+ (if (and exit-on-found? (pair? r4))
+ r4
+ (let
+ ((r5 (update-res! r4
+ (tutcode-bushu-weak-diff-set char-list
+ strong-diff-set))))
+ (if (and exit-on-found? (pair? r5))
+ r5
+ (let
+ ((r6 (update-res! r5
+ (tutcode-bushu-weak-compose-set
char-list
+ bushu-list strong-compose-set))))
+ r6)))))))))))))))
+ (delete-duplicates! resall)))
+
+;;; ÂÐÏÃŪ¤ÊÉô¼ó¹çÀ®ÊÑ´¹ÍѤˡ¢»ØÄꤵ¤ì¤¿Éô¼ó¤Î¥ê¥¹¥È¤«¤éÉô¼ó¹çÀ®²Äǽ¤Ê
+;;; ´Á»ú¤Î¥ê¥¹¥È¤òÊÖ¤¹¡£
+;;; @param char-list ÆþÎϤµ¤ì¤¿Éô¼ó¤Î¥ê¥¹¥È
+;;; @return ¹çÀ®²Äǽ¤Ê´Á»ú¤Î¥ê¥¹¥È
+(define (tutcode-bushu-compose-interactively char-list)
+ (tutcode-bushu-compose-tc23 char-list #f))
+
+;;; Éô¼ó¹çÀ®ÊÑ´¹¤ò¹Ô¤¦¡£
+;;; tc-2.3.1-22.6¤ÎÉô¼ó¹çÀ®¥¢¥ë¥´¥ê¥º¥à¤ò»ÈÍÑ¡£
+;;; @param c1 1ÈÖÌܤÎÉô¼ó
+;;; @param c2 2ÈÖÌܤÎÉô¼ó
+;;; @return ¹çÀ®¸å¤Îʸ»ú¡£¹çÀ®¤Ç¤¤Ê¤«¤Ã¤¿¤È¤¤Ï#f
+(define (tutcode-bushu-convert-tc23 c1 c2)
+ (let ((res (tutcode-bushu-compose-tc23 (list c1 c2) #t)))
+ (if (null? res)
+ #f
+ (car res))))
+
+;; tc-2.3.1¤Îtc-help.el¤«¤é¤Î°Ü¿¢
+(define (tutcode-bushu-decompose-to-two-char char)
+ (let ((b1 (tutcode-bushu-for-char char)))
+ (let loop
+ ((b1 (cdr b1))
+ (b2 (list (car b1))))
+ (if (null? b1)
+ #f
+ (let*
+ ((cl1t (tutcode-bushu-char-list-for-bushu b2))
+ (cl1
+ (if (pair? cl1t)
+ cl1t
+ (if (= (length b2) 1)
+ b2
+ ())))
+ (cl2t (tutcode-bushu-char-list-for-bushu b1))
+ (cl2
+ (if (pair? cl2t)
+ cl2t
+ (if (= (length b1) 1)
+ b1
+ ()))))
+ (let c1loop
+ ((cl1 cl1))
+ (if (null? cl1)
+ (loop (cdr b1) (append b2 (list (car b1))))
+ (let c2loop
+ ((cl2 cl2))
+ (if (null? cl2)
+ (c1loop (cdr cl1))
+ (if
+ (equal?
+ (tutcode-bushu-convert-tc23 (car cl1) (car cl2))
+ char)
+ (cons (car cl1) (car cl2))
+ (c2loop (cdr cl2))))))))))))
+
+;;; CHAR¤¬Ä¾ÀÜÆþÎϲÄǽ¤ÊBUSHU1¤ÈBUSHU2¤Ç¹çÀ®¤Ç¤¤ë¾ì¹ç¡¢
+;;; BUSHU1¤ÈBUSHU2¤Î¥¹¥È¥í¡¼¥¯¤ò´Þ¤à¥ê¥¹¥È¤òÊÖ¤¹¡£
+;;; Îã: "·Ò" => (((("," "o"))("·â")) ((("f" "q"))("»å")))
+;;; @param char ¹çÀ®¸å¤Îʸ»ú
+;;; @param bushu1 Éô¼ó1
+;;; @param bushu2 Éô¼ó2
+;;; @param rule tutcode-rule
+;;; @return ÂоÝʸ»ú¤ÎÉô¼ó¹çÀ®¤ËɬÍפÊ2¤Ä¤Îʸ»ú¤È¥¹¥È¥í¡¼¥¯¤Î¥ê¥¹¥È¡£
+;;; ¹çÀ®¤Ç¤¤Ê¤¤¾ì¹ç¤Ï#f
+(define (tutcode-bushu-composed char bushu1 bushu2 rule)
+ (and-let*
+ ((seq1 (tutcode-auto-help-get-stroke bushu1 rule))
+ (seq2 (tutcode-auto-help-get-stroke bushu2 rule))
+ (composed (tutcode-bushu-convert-tc23 bushu1 bushu2)))
+ (and
+ (string=? composed char)
+ (list seq1 seq2))))
+
+;;; ¼«Æ°¥Ø¥ë¥×:ÂоÝʸ»ú¤òÉô¼ó¹çÀ®¤¹¤ë¤Î¤ËɬÍפȤʤ롢
+;;; ³°»ú¤Ç¤Ê¤¤2¤Ä¤Îʸ»ú¤Î¥ê¥¹¥È¤òÊÖ¤¹
+;;; Îã: "·Ò" => (((("," "o"))("·â")) ((("f" "q"))("»å")))
+;;; @param kanji ÂоÝʸ»ú
+;;; @param rule tutcode-rule
+;;; @param stime ³«»ÏÆü»þ
+;;; @return ÂоÝʸ»ú¤ÎÉô¼ó¹çÀ®¤ËɬÍפÊ2¤Ä¤Îʸ»ú¤È¥¹¥È¥í¡¼¥¯¤Î¥ê¥¹¥È¡£
+;;; ¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï#f
+(define (tutcode-auto-help-bushu-decompose-tc23 kanji rule stime)
+ (if (> (string->number (difftime (time) stime))
tutcode-auto-help-time-limit)
+ #f
+ (let ((decomposed (tutcode-bushu-decompose-to-two-char kanji)))
+ (if decomposed
+ (let*
+ ((char1 (car decomposed))
+ (char2 (cdr decomposed))
+ (seq1 (tutcode-auto-help-get-stroke char1 rule))
+ (seq2 (tutcode-auto-help-get-stroke char2 rule)))
+ (cond
+ (seq1
+ (if seq2
+ (list seq1 seq2)
+ (let*
+ ((bushu-list (tutcode-bushu-for-char char2))
+ (find-loop
+ (lambda (set)
+ (let loop
+ ((lis
+ (sort! set
+ (lambda (a b)
+ (tutcode-bushu-less? a b bushu-list)))))
+ (if (null? lis)
+ #f
+ (let
+ ((res (tutcode-bushu-composed
+ kanji char1 (car lis) rule)))
+ (or res
+ (loop (cdr lis)))))))))
+ (or
+ ;; ¶¯¹çÀ®½¸¹ç¤òõ¤¹
+ (find-loop (tutcode-bushu-subset bushu-list))
+ ;; ¼å¹çÀ®½¸¹ç¤òõ¤¹
+ (find-loop (tutcode-bushu-superset bushu-list))
+ ;; ºÆµ¢Åª¤Ëõ¤¹
+ (let
+ ((dec2
+ (tutcode-auto-help-bushu-decompose-tc23 char2
+ rule stime)))
+ (and dec2
+ (list seq1 dec2)))))))
+ (seq2
+ (let*
+ ((bushu-list (tutcode-bushu-for-char char1))
+ (find-loop
+ (lambda (set)
+ (let loop
+ ((lis
+ (sort! set
+ (lambda (a b)
+ (tutcode-bushu-less? a b bushu-list)))))
+ (if (null? lis)
+ #f
+ (let
+ ((res (tutcode-bushu-composed
+ kanji (car lis) char2 rule)))
+ (or res
+ (loop (cdr lis)))))))))
+ (or
+ ;; ¶¯¹çÀ®½¸¹ç¤òõ¤¹
+ (find-loop (tutcode-bushu-subset bushu-list))
+ ;; ¼å¹çÀ®½¸¹ç¤òõ¤¹
+ (find-loop (tutcode-bushu-superset bushu-list))
+ ;; ºÆµ¢Åª¤Ëõ¤¹
+ (let
+ ((dec1
+ (tutcode-auto-help-bushu-decompose-tc23 char1
+ rule stime)))
+ (and dec1
+ (list dec1 seq2))))))
+ (else
+ (let*
+ ((bushu1 (tutcode-bushu-for-char char1))
+ (bushu2 (tutcode-bushu-for-char char2))
+ (bushu-list (append bushu1 bushu2))
+ (mkcl
+ (lambda (bushu)
+ (sort!
+ (delete-duplicates!
+ (append!
+ (tutcode-bushu-subset bushu)
+ (tutcode-bushu-superset bushu)))
+ (lambda (a b)
+ (tutcode-bushu-less? a b bushu-list)))))
+ (cl1 (mkcl bushu1))
+ (cl2 (mkcl bushu2)))
+ (let loop1
+ ((cl1 cl1))
+ (if (null? cl1)
+ #f
+ (let loop2
+ ((cl2 cl2))
+ (if (null? cl2)
+ (loop1 (cdr cl1))
+ (let
+ ((res (tutcode-bushu-composed
+ kanji (car cl1) (car cl2) rule)))
+ (or res
+ (loop2 (cdr cl2))))))))))))
+ ;; Æó¤Ä¤Ëʬ³ä¤Ç¤¤Ê¤¤¾ì¹ç
+ ;; ¶¯º¹¹çÀ®½¸¹ç¤òõ¤¹
+ (let*
+ ((bushu-list (tutcode-bushu-for-char kanji))
+ (superset
+ (sort!
+ (tutcode-bushu-superset bushu-list)
+ (lambda (a b)
+ (tutcode-bushu-less? a b bushu-list)))))
+ (let loop1
+ ((lis superset))
+ (if (null? lis)
+ #f
+ (let*
+ ((seq1 (tutcode-auto-help-get-stroke (car lis) rule))
+ (diff (if seq1
+ (tutcode-bushu-subtract-set
+ (tutcode-bushu-for-char (car lis) bushu-list))
+ ())))
+ (if seq1
+ (let loop2
+ ((lis2 (tutcode-bushu-subset diff)))
+ (if (null? lis2)
+ (loop1 (cdr lis))
+ (let
+ ((res (tutcode-bushu-composed
+ kanji (car lis) (car lis2) rule)))
+ (or res
+ (loop2 (cdr lis2))))))
+ (loop1 (cdr lis)))))))))))
=======================================
--- /trunk/scm/tutcode-custom.scm Tue Jul 19 03:54:31 2011
+++ /trunk/scm/tutcode-custom.scm Tue Aug 2 23:51:30 2011
@@ -140,6 +140,15 @@
(N_ "Maximum length of yomi suffix for mazegaki conversion")
(N_ "long description will be here."))
+(define-custom 'tutcode-bushu-conversion-algorithm 'tc-2.1+ml1925
+ '(tutcode tutcode-bushu)
+ (list 'choice
+ (list 'tc-2.1+ml1925
+ (N_ "tc-2.1+[tcode-ml:1925]") (N_ "tc-2.1+[tcode-ml:1925]"))
+ (list 'tc-2.3.1-22.6 (N_ "tc-2.3.1-22.6") (N_ "tc-2.3.1-22.6")))
+ (N_ "Bushu conversion algorithm")
+ (N_ "long description will be here."))
+
(define-custom 'tutcode-use-interactive-bushu-conversion? #f
'(tutcode tutcode-bushu)
'(boolean)
@@ -365,9 +374,13 @@
(custom-add-hook 'tutcode-bushu-index2-filename
'custom-activity-hooks
(lambda ()
- tutcode-use-interactive-bushu-conversion?))
+ (or
+ tutcode-use-interactive-bushu-conversion?
+ (eq?
tutcode-bushu-conversion-algorithm 'tc-2.3.1-22.6))))
(custom-add-hook 'tutcode-bushu-expand-filename
'custom-activity-hooks
(lambda ()
- tutcode-use-interactive-bushu-conversion?))
+ (or
+ tutcode-use-interactive-bushu-conversion?
+ (eq?
tutcode-bushu-conversion-algorithm 'tc-2.3.1-22.6))))
=======================================
--- /trunk/scm/tutcode.scm Fri Jul 22 17:10:06 2011
+++ /trunk/scm/tutcode.scm Tue Aug 2 23:51:30 2011
@@ -2406,6 +2406,15 @@
;;; Éô¼ó¹çÀ®ÊÑ´¹Ãæ¤Ëͽ¬ÆþÎϸõÊä¤ò¸¡º÷¤·¤Æ¸õÊ䥦¥£¥ó¥É¥¦¤Ëɽ¼¨¤¹¤ë
;;; @param char ÆþÎϤµ¤ì¤¿Éô¼ó1
(define (tutcode-check-bushu-prediction pc char)
+ (case tutcode-bushu-conversion-algorithm
+ ((tc-2.3.1-22.6)
+ (tutcode-check-bushu-prediction-tc23 pc char))
+ (else ; 'tc-2.1+ml1925
+ (tutcode-check-bushu-prediction-tc21 pc char))))
+
+;;; Éô¼ó¹çÀ®ÊÑ´¹Ãæ¤Ëͽ¬ÆþÎϸõÊä¤ò¸¡º÷¤·¤Æ¸õÊ䥦¥£¥ó¥É¥¦¤Ëɽ¼¨¤¹¤ë
+;;; @param char ÆþÎϤµ¤ì¤¿Éô¼ó1
+(define (tutcode-check-bushu-prediction-tc21 pc char)
(if (eq? (tutcode-context-predicting pc) 'tutcode-predicting-off)
(let* ((res (tutcode-bushu-predict char tutcode-bushudic))
(alt (assoc char tutcode-bushudic-altchar))
@@ -2417,6 +2426,20 @@
(tutcode-context-set-prediction-bushu! pc resall)
(tutcode-bushu-prediction-show-page pc 0))))
+;;; Éô¼ó¹çÀ®ÊÑ´¹Ãæ¤Ëͽ¬ÆþÎϸõÊä¤ò¸¡º÷¤·¤Æ¸õÊ䥦¥£¥ó¥É¥¦¤Ëɽ¼¨¤¹¤ë
+;;; @param char ÆþÎϤµ¤ì¤¿Éô¼ó1
+(define (tutcode-check-bushu-prediction-tc23 pc char)
+ (if (eq? (tutcode-context-predicting pc) 'tutcode-predicting-off)
+ (let*
+ ((gosei (tutcode-bushu-compose-tc23 (list char) #f))
+ (res
+ (map
+ (lambda (elem)
+ (list #f elem))
+ gosei)))
+ (tutcode-context-set-prediction-bushu! pc res)
+ (tutcode-bushu-prediction-show-page pc 0))))
+
;;;
Éô¼ó¹çÀ®ÊÑ´¹¤Îͽ¬ÆþÎϸõÊä¤Î¤¦¤Á¡¢»ØÄꤵ¤ì¤¿Èֹ椫¤é»Ï¤Þ¤ë¸õÊä¤òɽ¼¨¤¹¤ë¡£
;;; @param start-index ³«»ÏÈÖ¹æ
(define (tutcode-bushu-prediction-show-page pc start-index)
@@ -3801,9 +3824,20 @@
;;; @param c2 2ÈÖÌܤÎÉô¼ó
;;; @return ¹çÀ®¸å¤Îʸ»ú¡£¹çÀ®¤Ç¤¤Ê¤«¤Ã¤¿¤È¤¤Ï#f
(define (tutcode-bushu-convert c1 c2)
+ (case tutcode-bushu-conversion-algorithm
+ ((tc-2.3.1-22.6)
+ (tutcode-bushu-convert-tc23 c1 c2))
+ (else ; 'tc-2.1+ml1925
+ (tutcode-bushu-convert-tc21 c1 c2))))
+
+;;; Éô¼ó¹çÀ®ÊÑ´¹¤ò¹Ô¤¦¡£
+;;; tc-2.1+[tcode-ml:1925]¤ÎÉô¼ó¹çÀ®¥¢¥ë¥´¥ê¥º¥à¤ò»ÈÍÑ¡£
+;;; @param c1 1ÈÖÌܤÎÉô¼ó
+;;; @param c2 2ÈÖÌܤÎÉô¼ó
+;;; @return ¹çÀ®¸å¤Îʸ»ú¡£¹çÀ®¤Ç¤¤Ê¤«¤Ã¤¿¤È¤¤Ï#f
+(define (tutcode-bushu-convert-tc21 c1 c2)
(if (null? tutcode-bushu-help)
(set! tutcode-bushu-help (tutcode-bushu-help-load)))
- ;; tc-2.1+[tcode-ml:1925]¤ÎÉô¼ó¹çÀ®¥¢¥ë¥´¥ê¥º¥à¤ò»ÈÍÑ
(and c1 c2
(or
(and tutcode-bushu-help (tutcode-bushu-compose c1 c2
tutcode-bushu-help))
@@ -3937,6 +3971,21 @@
;;; @return ÂоÝʸ»ú¤ÎÉô¼ó¹çÀ®¤ËɬÍפÊ2¤Ä¤Îʸ»ú¤È¥¹¥È¥í¡¼¥¯¤Î¥ê¥¹¥È¡£
;;; ¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï#f
(define (tutcode-auto-help-bushu-decompose c rule stime)
+ (case tutcode-bushu-conversion-algorithm
+ ((tc-2.3.1-22.6)
+ (tutcode-auto-help-bushu-decompose-tc23 c rule stime))
+ (else ; 'tc-2.1+ml1925
+ (tutcode-auto-help-bushu-decompose-tc21 c rule stime))))
+
+;;; ¼«Æ°¥Ø¥ë¥×:ÂоÝʸ»ú¤òÉô¼ó¹çÀ®¤¹¤ë¤Î¤ËɬÍפȤʤ롢
+;;; ³°»ú¤Ç¤Ê¤¤2¤Ä¤Îʸ»ú¤Î¥ê¥¹¥È¤òÊÖ¤¹
+;;; Îã: "·Ò" => (((("," "o"))("·â")) ((("f" "q"))("»å")))
+;;; @param c ÂоÝʸ»ú
+;;; @param rule tutcode-rule
+;;; @param stime ³«»ÏÆü»þ
+;;; @return ÂоÝʸ»ú¤ÎÉô¼ó¹çÀ®¤ËɬÍפÊ2¤Ä¤Îʸ»ú¤È¥¹¥È¥í¡¼¥¯¤Î¥ê¥¹¥È¡£
+;;; ¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï#f
+(define (tutcode-auto-help-bushu-decompose-tc21 c rule stime)
(if (> (string->number (difftime (time) stime))
tutcode-auto-help-time-limit)
#f
(let*
@@ -3964,7 +4013,9 @@
(tutcode-auto-help-get-stroke-list-with-right-part
c b1 b2 seq1 rule elem)))
;; Éô¼ó2¤Ç¤Ï¹çÀ®ÉÔǽ¢ªÉô¼ó2¤ò¤µ¤é¤Ëʬ²ò
- (let ((b2dec (tutcode-auto-help-bushu-decompose b2 rule
stime)))
+ (let
+ ((b2dec
+ (tutcode-auto-help-bushu-decompose-tc21 b2 rule stime)))
(and b2dec
(list seq1 b2dec)))))
;; Éô¼ó2¤¬Ä¾ÀÜÆþÎϲÄǽ
@@ -3977,14 +4028,16 @@
(tutcode-auto-help-get-stroke-list-with-left-part
c b1 b2 seq2 rule elem)))
;; Éô¼ó1¤Ç¤Ï¹çÀ®ÉÔǽ¢ªÉô¼ó1¤ò¤µ¤é¤Ëʬ²ò
- (let ((b1dec (tutcode-auto-help-bushu-decompose b1 rule
stime)))
+ (let
+ ((b1dec
+ (tutcode-auto-help-bushu-decompose-tc21 b1 rule stime)))
(and b1dec
(list b1dec seq2)))))
;; Éô¼ó1¤âÉô¼ó2¤âľÀÜÆþÎÏÉԲĢª¤µ¤é¤Ëʬ²ò
(and b1 b2
(let
- ((b1dec (tutcode-auto-help-bushu-decompose b1 rule stime))
- (b2dec (tutcode-auto-help-bushu-decompose b2 rule stime)))
+ ((b1dec (tutcode-auto-help-bushu-decompose-tc21 b1 rule
stime))
+ (b2dec (tutcode-auto-help-bushu-decompose-tc21 b2 rule
stime)))
(and b1dec b2dec
(list b1dec b2dec))))
;; XXX: ÉôÉʤɤ¦¤·¤Î¹çÀ®¤Ï̤Âбþ
@@ -4374,11 +4427,12 @@
(p-idx (+ idx-in-page (* pages nr-in-page)))
(i (remainder p-idx nr-predictions))
(cand (tutcode-lib-get-nth-prediction tc i))
+ (word (and (eq? (tutcode-context-predicting tc)
+ 'tutcode-predicting-bushu)
+ (tutcode-lib-get-nth-word tc i)))
(cand-guide
- (if (eq? (tutcode-context-predicting tc)
- 'tutcode-predicting-bushu)
- (string-append
- cand "(" (tutcode-lib-get-nth-word tc i) ")")
+ (if word
+ (string-append cand "(" word ")")
cand))
(n (remainder p-idx
(length
tutcode-heading-label-char-list-for-prediction)))