X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Fcl-extra.el;h=8c97ea096dcaab11a64550ab24ae6eb587b5e28d;hb=2cf9f4bc6edb561e2bd9a7016f22c8e1b479da8e;hp=e419fe32eeae41fe089b8a6f610df96df535f514;hpb=77dcef404dc78635f6ffa8f71a803d2bc7cc8921;p=chise%2Fxemacs-chise.git diff --git a/lisp/cl-extra.el b/lisp/cl-extra.el index e419fe3..8c97ea0 100644 --- a/lisp/cl-extra.el +++ b/lisp/cl-extra.el @@ -76,6 +76,8 @@ TYPE is a Common Lisp type specifier." ((eq type 'array) (if (arrayp x) x (vconcat x))) ((and (eq type 'character) (stringp x) (= (length x) 1)) (aref x 0)) ((and (eq type 'character) (symbolp x)) (coerce (symbol-name x) type)) + ((and (eq type 'character) (numberp x) (char-or-char-int-p x) + (int-char x))) ((eq type 'float) (float x)) ((eq type 'bit-vector) (if (bit-vector-p x) x (apply 'bit-vector (append x nil)))) @@ -108,7 +110,8 @@ strings case-insensitively." (and (numberp y) (= x y))) ((consp x) ;; XEmacs change - (while (and (consp x) (consp y) (equalp (cl-pop x) (cl-pop y)))) + (while (and (consp x) (consp y) (equalp (car x) (car y))) + (cl-pop x) (cl-pop y)) (and (not (consp x)) (equalp x y))) ((vectorp x) (and (vectorp y) (= (length x) (length y))