#endif /* LISP_FLOAT_TYPE */
Lisp_Object Qnil, Qt, Qquote, Qlambda, Qunbound;
+#ifdef UTF2000
+Lisp_Object Qunloaded;
+#endif
Lisp_Object Qerror_conditions, Qerror_message;
Lisp_Object Qerror, Qquit, Qsyntax_error, Qinvalid_read_syntax;
Lisp_Object Qlist_formation_error;
EMACS_INT
sign_extend_lisp_int (EMACS_INT num)
{
- if (num & (1L << (VALBITS - 1)))
- return num | ((-1L) << VALBITS);
+ if (num & (1L << (INT_VALBITS - 1)))
+ return num | ((-1L) << INT_VALBITS);
else
- return num & ((1L << VALBITS) - 1);
+ return num & (EMACS_INT) ((1UL << INT_VALBITS) - 1);
}
\f
{
return CHAR_OR_CHAR_INTP (object) || STRINGP (object) ? Qt : Qnil;
}
+
+DEFUN ("char-ref-p", Fchar_ref_p, 1, 1, 0, /*
+Return t if OBJECT is a character-reference.
+*/
+ (object))
+{
+ return CONSP (object) && KEYWORDP (XCAR (object)) ? Qt : Qnil;
+}
\f
DEFUN ("integerp", Fintegerp, 1, 1, 0, /*
Return t if OBJECT is an integer.
break;
default:
- abort ();
+ ABORT ();
}
if (need_to_mark_elem && ! marked_p (elem))
case WEAK_LIST_VALUE_ASSOC: return Qvalue_assoc;
case WEAK_LIST_FULL_ASSOC: return Qfull_assoc;
default:
- abort ();
+ ABORT ();
}
return Qnil; /* not reached */
DEFSUBR (Fchar_to_int);
DEFSUBR (Fint_to_char);
DEFSUBR (Fchar_or_char_int_p);
+ DEFSUBR (Fchar_ref_p);
DEFSUBR (Fintegerp);
DEFSUBR (Finteger_or_marker_p);
DEFSUBR (Finteger_or_char_p);