Mercurial > hg > xemacs-beta
diff src/fns.c @ 4910:6bc1f3f6cf0d
Make canoncase visible to Lisp; use it with chars in internal_equalp.
src/ChangeLog addition:
2010-02-01 Aidan Kehoe <kehoea@parhasard.net>
* fns.c (internal_equalp):
Use bytecode_arithcompare, which takes two args, instead of
passing a stack pointer to Feqlsign.
Use CANONCASE(), not DOWNCASE(), for case-insensitive character
comparison.
Correct a comment here.
* casefiddle.c (casify_object): New operation in this function,
CASE_CANONICALIZE.
(Fcanoncase): New function, used for case-insensitive comparison.
* lisp.h:
Make Fcanoncase, bytecode_arithcompare visible here.
* bytecode.c (bytecode_arithcompare):
Make this visible to other files.
lisp/ChangeLog addition:
2010-02-01 Aidan Kehoe <kehoea@parhasard.net>
* cl-macs.el (equalp):
Remove special treatment for an #'equalp with a single character
constant argument, it was incorrect (it used #'downcase instead of
#'canoncase).
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Mon, 01 Feb 2010 17:57:04 +0000 |
parents | 6ef8256a020a |
children | 48b63cd88a21 c17c857e20bf |
line wrap: on
line diff
--- a/src/fns.c Mon Feb 01 06:20:05 2010 -0600 +++ b/src/fns.c Mon Feb 01 17:57:04 2010 +0000 @@ -2888,15 +2888,12 @@ /* 2. If both numbers, compare with `='. */ if (NUMBERP (obj1) && NUMBERP (obj2)) { - Lisp_Object args[2]; - args[0] = obj1; - args[1] = obj2; - return !NILP (Feqlsign (2, args)); + return (0 == bytecode_arithcompare (obj1, obj2)); } /* 3. If characters, compare case-insensitively. */ if (CHARP (obj1) && CHARP (obj2)) - return DOWNCASE (0, XCHAR (obj1)) == DOWNCASE (0, XCHAR (obj2)); + return CANONCASE (0, XCHAR (obj1)) == CANONCASE (0, XCHAR (obj2)); /* 4. If arrays of different types, compare their lengths, and then compare element-by-element. */ @@ -2909,7 +2906,7 @@ EMACS_INT i; EMACS_INT l1 = XINT (Flength (obj1)); EMACS_INT l2 = XINT (Flength (obj2)); - /* Both arrays, but of different types */ + /* Both arrays, but of different lengths */ if (l1 != l2) return 0; for (i = 0; i < l1; i++)