X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fdata.c;h=197842ef800a3d23578bd700c0776ff9b961b20b;hb=b073ad3949bbab4cf51e6c5de4725bb150b3ad11;hp=b2ef666e9d9bde4ae13bdb1b9f1af17001d550da;hpb=79d2db7d65205bc85d471590726d0cf3af5598e0;p=chise%2Fxemacs-chise.git.1 diff --git a/src/data.c b/src/data.c index b2ef666..197842e 100644 --- a/src/data.c +++ b/src/data.c @@ -39,6 +39,9 @@ Boston, MA 02111-1307, USA. */ #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; @@ -170,10 +173,10 @@ EMACS_INT sign_extend_lisp_int (EMACS_INT num); 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); } @@ -458,6 +461,14 @@ confoundedness in older versions of E-Lisp. { 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; +} DEFUN ("integerp", Fintegerp, 1, 1, 0, /* Return t if OBJECT is an integer. @@ -1769,7 +1780,7 @@ finish_marking_weak_lists (void) break; default: - abort (); + ABORT (); } if (need_to_mark_elem && ! marked_p (elem)) @@ -1925,7 +1936,7 @@ encode_weak_list_type (enum weak_list_type type) case WEAK_LIST_VALUE_ASSOC: return Qvalue_assoc; case WEAK_LIST_FULL_ASSOC: return Qfull_assoc; default: - abort (); + ABORT (); } return Qnil; /* not reached */ @@ -2156,6 +2167,7 @@ syms_of_data (void) 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);