From 7c2debc0f9903c0b3980134856c4cd0825bc43b1 Mon Sep 17 00:00:00 2001 From: tomo Date: Sun, 11 Jan 2004 15:32:59 +0000 Subject: [PATCH] (total-strokes-string<): Abolished. (chise-string<): New function. --- lisp/utf-2000/ideograph-util.el | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/lisp/utf-2000/ideograph-util.el b/lisp/utf-2000/ideograph-util.el index c435990..38ccc19 100644 --- a/lisp/utf-2000/ideograph-util.el +++ b/lisp/utf-2000/ideograph-util.el @@ -404,26 +404,35 @@ 'ideographic-structure))) ;;;###autoload -(defun total-strokes-string< (string1 string2 &optional preferred-domains) +(defun chise-string< (string1 string2 accessors) (let ((len1 (length string1)) (len2 (length string2)) len (i 0) c1 c2 - s1 s2) + rest func + v1 v2) (setq len (min len1 len2)) (catch 'tag (while (< i len) (setq c1 (aref string1 i) c2 (aref string2 i)) - (setq s1 (or (char-total-strokes c1 preferred-domains) - 0) - s2 (or (char-total-strokes c2 preferred-domains) - 0)) - (cond ((< s1 s2) - (throw 'tag t)) - ((> s1 s2) - (throw 'tag nil))) + (setq rest accessors) + (while (and rest + (setq func (car rest)) + (setq v1 (funcall func c1) + v2 (funcall func c2)) + (eq v1 v2)) + (setq rest (cdr rest))) + (if v1 + (if v2 + (cond ((< v1 v2) + (throw 'tag t)) + ((> v1 v2) + (throw 'tag nil))) + (throw 'tag nil)) + (if v2 + (throw 'tag t))) (setq i (1+ i))) (< len1 len2)))) -- 1.7.10.4