Mercurial > emacs
changeset 20688:16c458803c32
(Fchar_equal): Fix case-conversion code.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Tue, 20 Jan 1998 06:05:53 +0000 |
parents | cd31a4ab72de |
children | 10a3afa36ed2 |
files | src/editfns.c |
diffstat | 1 files changed, 11 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/editfns.c Tue Jan 20 04:56:52 1998 +0000 +++ b/src/editfns.c Tue Jan 20 06:05:53 1998 +0000 @@ -2424,14 +2424,21 @@ (c1, c2) register Lisp_Object c1, c2; { + int i1, i2; CHECK_NUMBER (c1, 0); CHECK_NUMBER (c2, 1); - if (XINT (c1) == XINT (c2) - && (NILP (current_buffer->case_fold_search) - || DOWNCASE (XFASTINT (c1)) == DOWNCASE (XFASTINT (c2)))) + if (XINT (c1) == XINT (c2)) return Qt; - return Qnil; + if (NILP (current_buffer->case_fold_search)) + return Qnil; + + /* Do these in separate statements, + then compare the variables. + because of the way DOWNCASE uses temp variables. */ + i1 = DOWNCASE (XFASTINT (c1)); + i2 = DOWNCASE (XFASTINT (c2)); + return (i1 == i2 ? Qt : Qnil); } /* Transpose the markers in two regions of the current buffer, and