Revision: 6477
Author: deton.kih
Date: Sat Jun 26 20:34:41 2010
Log: * scm/tutcode.scm
- (tutcode-heading-label-char-list-for-stroke-help): Remove
- (tutcode-check-stroke-help-window-begin):
Rewrite to use rk-lib-find-partial-seqs
- (tutcode-check-auto-help-window-begin):
Add null check of label-cands-alist before map
http://code.google.com/p/uim/source/detail?r=6477
Modified:
/trunk/scm/tutcode.scm
=======================================
--- /trunk/scm/tutcode.scm Fri Jun 25 21:13:30 2010
+++ /trunk/scm/tutcode.scm Sat Jun 26 20:34:41 2010
@@ -148,13 +148,6 @@
"U" "V" "W" "X" "Y" "Z"
"=" "~" "|" "`" "{" "+" "*" "}" "<" ">" "?" "_"))
-;;; ¥¹¥È¥í¡¼¥¯É½¤Î¥¡¼¥ê¥¹¥È
-(define tutcode-heading-label-char-list-for-stroke-help
- '("1" "2" "3" "4" "5" "6" "7" "8" "9" "0"
- "q" "w" "e" "r" "t" "y" "u" "i" "o" "p"
- "a" "s" "d" "f" "g" "h" "j" "k" "l" ";"
- "z" "x" "c" "v" "b" "n" "m" "," "." "/"))
-
;;; ¼«Æ°¥Ø¥ë¥×¤Ç¤Îʸ»ú¤ÎÂǤÁÊýɽ¼¨¤ÎºÝ¤Ë¸õÊäʸ»úÎó¤È¤·¤Æ»È¤¦Ê¸»ú¤Î¥ê¥¹¥È
(define tutcode-auto-help-cand-str-list
; Âè1,2,3,4ÂǸ°¤ò¼¨¤¹Ê¸»ú
@@ -549,43 +542,43 @@
'tutcode-candidate-window-off)
tutcode-use-stroke-help-window?)
(let* ((rkc (tutcode-context-rk-context pc))
- (seq (rk-context-seq rkc)))
- (tutcode-context-set-stroke-help! pc
- ; rk-expect¤Î³Æ¥á¥ó¥Ð¤Ë¤Ä¤¤¤Æ¡¢
- ; rk-lib-find-seq¤·¤Æ¡¢labelʸ»ú¤È¸õÊä¤Î¥ê¥¹¥È¤òºîÀ®¡£
- ; #f¤Î¾ì¹ç¤Ï¥¹¥È¥í¡¼¥¯ÅÓÃæ¤Ê¤Î¤Ç¸õÊä¤È¤·¤Æ¢¢¤ò»ÈÍÑ¡£
- (map
- (lambda (elem)
- (let* ((res
- (rk-lib-find-seq (reverse (cons elem seq))
tutcode-rule))
- (candlist (and res (cadr res)))
- (cand
- (if res
- (or
- (and (tutcode-context-katakana-mode? pc)
- (not (null? (cdr candlist)))
- (cadr candlist))
- (car candlist))
- "¢¢"))
- (candstr
- (case cand
- ((tutcode-mazegaki-start) "¡þ")
- ((tutcode-bushu-start) "¢¡")
- (else cand)))
- (labeledcand
- (list candstr elem "")))
- labeledcand))
- (filter
- (lambda (elem)
- (member elem
tutcode-heading-label-char-list-for-stroke-help))
- (delete-duplicates (rk-expect rkc)))))
- (if (not (null? (tutcode-context-stroke-help pc)))
- (begin
+ (seq (rk-context-seq rkc))
+ (seqlen (length seq))
+ (ret (rk-lib-find-partial-seqs (reverse seq) tutcode-rule))
+ (label-cand-alist ())) ; Îã:(("k" "¤¢") ("i" "¤¤") ("v" "¢¢"))
+ (for-each
+ (lambda (elem) ; Îã: ((("r" "v" "y")) ("±î"))
+ (let* ((label (nth seqlen (caar elem)))
+ (candlist (cadr elem))
+ (cand
+ (or
+ (and (not (null? (cdr candlist)))
+ (tutcode-context-katakana-mode? pc)
+ (cadr candlist))
+ (car candlist)))
+ (candstr
+ (case cand
+ ((tutcode-mazegaki-start) "¡þ")
+ ((tutcode-bushu-start) "¢¡")
+ (else cand)))
+ (label-cand (assoc label label-cand-alist)))
+ (if label-cand
+ (set-cdr! label-cand
(list "¢¢")) ;Ʊ°ìÂǸ°¤Î¾¤Î¸õÊäÍ¢ªÂǸ°ÅÓÃæ
+ (set! label-cand-alist
+ (cons (list label candstr) label-cand-alist)))))
+ ret)
+ (if (not (null? label-cand-alist))
+ (let
+ ((stroke-help
+ (map
+ (lambda (elem)
+ (list (cadr elem) (car elem) ""))
+ label-cand-alist)))
+ (tutcode-context-set-stroke-help! pc stroke-help)
(tutcode-context-set-candidate-window! pc
'tutcode-candidate-window-stroke-help)
(im-activate-candidate-selector pc
- (length (tutcode-context-stroke-help pc))
- (length tutcode-heading-label-char-list-for-stroke-help)))))))
+ (length stroke-help) (length stroke-help)))))))
;;; Éô¼ó¹çÀ®ÊÑ´¹¡¦¸ò¤¼½ñ¤ÊÑ´¹¤Ç³ÎÄꤷ¤¿Ê¸»ú¤ÎÂǤÁÊý¤òɽ¼¨¤¹¤ë¡£
;;; ɽ·Á¼°¤Î¸õÊ䥦¥£¥ó¥É¥¦¤òÁÛÄꤷ¤Æ¡¢°Ê²¼¤Î¤è¤¦¤Ëɽ¼¨¤¹¤ë¡£
@@ -628,18 +621,18 @@
(help-one kanji (car cand-str-list))
(set! cand-str-list (cdr cand-str-list)))))
(lset-difference string=? (reverse strlist) yomilist))
- (tutcode-context-set-stroke-help! pc
- (map
- (lambda (elem)
- (list (tutcode-make-string (cdr elem)) (car elem) ""))
- label-cands-alist))
- (if (not (null? (tutcode-context-stroke-help pc)))
- (begin
+ (if (not (null? label-cands-alist))
+ (let
+ ((stroke-help
+ (map
+ (lambda (elem)
+ (list (tutcode-make-string (cdr elem)) (car elem) ""))
+ label-cands-alist)))
+ (tutcode-context-set-stroke-help! pc stroke-help)
(tutcode-context-set-candidate-window! pc
'tutcode-candidate-window-auto-help)
(im-activate-candidate-selector pc
- (length (tutcode-context-stroke-help pc))
- (length tutcode-heading-label-char-list-for-stroke-help)))))))
+ (length stroke-help) (length stroke-help)))))))
;;; preeditɽ¼¨¤ò¹¹¿·¤¹¤ë¡£
;;; @param pc ¥³¥ó¥Æ¥¥¹¥È¥ê¥¹¥È