update.
[chise/ids.git] / ids-find.el
index 0e0e7be..9c3ab87 100644 (file)
@@ -1,11 +1,11 @@
 ;;; ids-find.el --- search utility based on Ideographic-structures
 
-;; Copyright (C) 2002,2003,2005 MORIOKA Tomohiko
+;; Copyright (C) 2002,2003,2005,2006 MORIOKA Tomohiko
 
 ;; Author: MORIOKA Tomohiko <tomo@kanji.zinbun.kyoto-u.ac.jp>
 ;; Keywords: Kanji, Ideographs, search, IDS, CHISE, UCS, Unicode
 
-;; This file is a part of Tomoyo-Tools.
+;; This file is a part of CHISE IDS.
 
 ;; This program is free software; you can redistribute it and/or
 ;; modify it under the terms of the GNU General Public License as
@@ -42,8 +42,8 @@
             (ids-index-store-char product cell))
            ((setq ret (assq 'ideographic-structure cell))
             (ids-index-store-structure product (cdr ret)))
-            ;; ((setq ret (find-char cell))
-            ;;  (ids-index-store-char product ret))
+           ((setq ret (find-char cell))
+            (ids-index-store-char product ret))
            ))))
 
 ;;;###autoload
 (defun char-component-variants (char)
   (let ((dest (list char))
        ret uchr)
+    (dolist (feature (to-component-features))
+      (if (setq ret (get-char-attribute char feature))
+         (dolist (c ret)
+           (setq dest (union dest (char-component-variants c))))))
     (cond
-     ((setq ret (some (lambda (feature)
-                       (get-char-attribute char feature))
-                     (to-component-features)))
-      (dolist (c ret)
-       (setq dest (union dest (char-component-variants c))))
-      )
+     ;; ((setq ret (some (lambda (feature)
+     ;;                    (get-char-attribute char feature))
+     ;;                  (to-component-features)))
+     ;;  (dolist (c ret)
+     ;;    (setq dest (union dest (char-component-variants c))))
+     ;;  )
      ((setq ret (get-char-attribute char '->ucs-unified))
       (setq dest (cons char ret))
       (dolist (c dest)
   (unless level
     (setq level 0))
   (let (is dis i as bs)
-    (dolist (c (sort (ideographic-products-find components)
+    (dolist (c (sort (copy-tree (ideographic-products-find components))
                     (lambda (a b)
                       (if (setq as (char-total-strokes a))
                           (if (setq bs (char-total-strokes b))