Mercurial > hg > xemacs-beta
diff src/data.c @ 207:e45d5e7c476e r20-4b2
Import from CVS: tag r20-4b2
author | cvs |
---|---|
date | Mon, 13 Aug 2007 10:03:52 +0200 |
parents | 3d6bfa290dbd |
children | 41ff10fd062f |
line wrap: on
line diff
--- a/src/data.c Mon Aug 13 10:02:48 2007 +0200 +++ b/src/data.c Mon Aug 13 10:03:52 2007 +0200 @@ -87,7 +87,7 @@ { if (((CHARP (obj1) && INTP (obj2)) || (CHARP (obj2) && INTP (obj1))) && (debug_issue_ebola_notices >= 2 - || XREALINT (obj1) == XREALINT (obj2))) + || XCHAR_OR_INT (obj1) == XCHAR_OR_INT (obj2))) { stderr_out("Comparison between integer and character is constant nil ("); Fprinc (obj1, Qexternal_debugging_output); @@ -166,8 +166,12 @@ make_int (EMACS_INT num) { Lisp_Object val; +#ifdef USE_MINIMAL_TAGBITS + XSETINT(val, num); +#else /* Don't use XSETINT here -- it's defined in terms of make_int (). */ XSETOBJ (val, Lisp_Type_Int, num); +#endif return val; } #endif /* ! defined (make_int) */ @@ -191,13 +195,19 @@ /* characters do not need to sign extend so there's no need for special futzing like with ints. */ +#ifndef make_char Lisp_Object make_char (Emchar num) { Lisp_Object val; +#ifdef USE_MINIMAL_TAGBITS + XSETCHAR (val, num); +#else XSETOBJ (val, Lisp_Type_Char, num); +#endif return val; } +#endif /* ! make_char */ /* Data type predicates */ @@ -1641,7 +1651,8 @@ { int C_count = XINT (count); - EMACS_UINT C_value = (EMACS_UINT) XUINT (value); + /* EMACS_UINT C_value = (EMACS_UINT) XUINT (value);*/ + EMACS_UINT C_value = (EMACS_UINT) XINT (value); XSETINT (val, C_count > 0 ? C_value << C_count : C_value >> -C_count); } return val;