X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fxemacs-chise.git.1;a=blobdiff_plain;f=src%2Fdata.c;h=197842ef800a3d23578bd700c0776ff9b961b20b;hp=09cc4fd0c2b83afa84122783c57828ccca22190f;hb=f7019bf646d0d4e750e0186d6e912ec7a3b9da90;hpb=3198ed8319f99e19a14447745f4f93e4b4522961 diff --git a/src/data.c b/src/data.c index 09cc4fd..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; @@ -71,7 +74,7 @@ Lisp_Object Qfloatp; int debug_issue_ebola_notices; -int debug_ebola_backtrace_length; +Fixnum debug_ebola_backtrace_length; int eq_with_ebola_notice (Lisp_Object obj1, Lisp_Object obj2) @@ -80,7 +83,7 @@ eq_with_ebola_notice (Lisp_Object obj1, Lisp_Object obj2) && ((CHARP (obj1) && INTP (obj2)) || (CHARP (obj2) && INTP (obj1)))) { /* #### It would be really nice if this were a proper warning - instead of brain-dead print ro Qexternal_debugging_output. */ + instead of brain-dead print to Qexternal_debugging_output. */ write_c_string ("Comparison between integer and character is constant nil (", Qexternal_debugging_output); Fprinc (obj1, Qexternal_debugging_output); @@ -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); } @@ -246,7 +249,7 @@ Return t if OBJECT is not a list. `nil' is a list. } DEFUN ("true-list-p", Ftrue_list_p, 1, 1, 0, /* -Return t if OBJECT is a non-dotted, i.e. nil-terminated, list. +Return t if OBJECT is an acyclic, nil-terminated (ie, not dotted), list. */ (object)) { @@ -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);