XEmacs 21.2.14.
[chise/xemacs-chise.git.1] / lisp / cl-extra.el
index e419fe3..8c97ea0 100644 (file)
@@ -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))