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