Revision: 7242
Author: deton.kih
Date: Mon Jul 25 15:14:10 2011
Log: * scm/tutcode-bushu.scm
- (tutcode-bushu-help-load):
Support bushu.help file that has two or more bushu composition at a
line.
http://code.google.com/p/uim/source/detail?r=7242
Modified:
/trunk/scm/tutcode-bushu.scm
=======================================
--- /trunk/scm/tutcode-bushu.scm Mon Jul 25 15:11:13 2011
+++ /trunk/scm/tutcode-bushu.scm Mon Jul 25 15:14:10 2011
@@ -440,24 +440,34 @@
(file-open-flags-number '($O_RDONLY)) 0))
(parse
(lambda (line)
- ;; Îã: "ëÚ¸ÀÁè*"¢ª(((("¸À" "Áè"))("ëÚ"))((("Áè" "¸À"))("ëÚ")))
+ ;; Îã: "Ñ£¥¤Àì* ÅÁ¡¦"
+ ;; ¢ª(((("¥¤" "Àì"))("Ñ£"))((("Àì" "¥¤"))("Ñ£"))((("ÅÁ" "¡¦"))("Ñ£")))
(let*
- ((lst (tutcode-bushu-parse-entry line))
- (len (length lst)))
- (if (< len 3)
- ()
- (let*
- ((kanji (list-ref lst 0))
- (bushu1 (list-ref lst 1))
- (bushu2 (list-ref lst 2))
- (rule (list (list (list bushu1 bushu2)) (list kanji)))
- (rev
- (and
- (and (> len 3) (string=? (list-ref lst 3) "*"))
- (list (list (list bushu2 bushu1)) (list kanji)))))
- (if rev
- (list rule rev)
- (list rule)))))))
+ ((comps (string-split line " "))
+ (kanji-lcomps (map tutcode-bushu-parse-entry comps))
+ (kanji (and (pair? (car kanji-lcomps)) (caar kanji-lcomps)))
+ ;;
¹ÔƬ¤Î¹çÀ®¸å¤Î´Á»ú¤ò½ü¤¤¤¿¥ê¥¹¥È¡£Îã:(("¥¤" "Àì" "*")("ÅÁ" "¡¦"))
+ (lcomps
+ (if kanji
+ (cons (cdar kanji-lcomps) (cdr kanji-lcomps))
+ ())))
+ (append-map!
+ (lambda (elem)
+ (let ((len (length elem)))
+ (if (< len 2)
+ ()
+ (let*
+ ((bushu1 (list-ref elem 0))
+ (bushu2 (list-ref elem 1))
+ (rule (list (list (list bushu1 bushu2)) (list kanji)))
+ (rev
+ (and
+ (and (>= len 3) (string=? (list-ref elem 2) "*"))
+ (list (list (list bushu2 bushu1)) (list kanji)))))
+ (if rev
+ (list rule rev)
+ (list rule))))))
+ lcomps))))
(res
(call-with-open-file-port fd
(lambda (port)