Mercurial > hg > xemacs-beta
comparison src/lisp.h @ 404:2f8bb876ab1d r21-2-32
Import from CVS: tag r21-2-32
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:16:07 +0200 |
parents | a86b2b5e0111 |
children | b8cc9ab3f761 |
comparison
equal
deleted
inserted
replaced
403:9f011ab08d48 | 404:2f8bb876ab1d |
---|---|
508 #define GCBITS 2 | 508 #define GCBITS 2 |
509 #define INT_GCBITS 1 | 509 #define INT_GCBITS 1 |
510 | 510 |
511 #define INT_VALBITS (BITS_PER_EMACS_INT - INT_GCBITS) | 511 #define INT_VALBITS (BITS_PER_EMACS_INT - INT_GCBITS) |
512 #define VALBITS (BITS_PER_EMACS_INT - GCBITS) | 512 #define VALBITS (BITS_PER_EMACS_INT - GCBITS) |
513 #define EMACS_INT_MAX ((1UL << INT_VALBITS) -1UL) | 513 #define EMACS_INT_MAX ((EMACS_INT) ((1UL << INT_VALBITS) -1UL)) |
514 #define EMACS_INT_MIN (-(EMACS_INT_MAX) - 1) | |
514 | 515 |
515 #ifdef USE_UNION_TYPE | 516 #ifdef USE_UNION_TYPE |
516 # include "lisp-union.h" | 517 # include "lisp-union.h" |
517 #else /* !USE_UNION_TYPE */ | 518 #else /* !USE_UNION_TYPE */ |
518 # include "lisp-disunion.h" | 519 # include "lisp-disunion.h" |
853 (key = XCAR (tail), tail = XCDR (tail), \ | 854 (key = XCAR (tail), tail = XCDR (tail), \ |
854 value = XCAR (tail), tail = XCDR (tail), 1); \ | 855 value = XCAR (tail), tail = XCDR (tail), 1); \ |
855 ) | 856 ) |
856 | 857 |
857 /* Return 1 if LIST is properly acyclic and nil-terminated, else 0. */ | 858 /* Return 1 if LIST is properly acyclic and nil-terminated, else 0. */ |
858 INLINE int TRUE_LIST_P (Lisp_Object object); | 859 INLINE_HEADER int TRUE_LIST_P (Lisp_Object object); |
859 INLINE int | 860 INLINE_HEADER int |
860 TRUE_LIST_P (Lisp_Object object) | 861 TRUE_LIST_P (Lisp_Object object) |
861 { | 862 { |
862 Lisp_Object hare, tortoise; | 863 Lisp_Object hare, tortoise; |
863 EMACS_INT len; | 864 EMACS_INT len; |
864 | 865 |
945 | 946 |
946 void resize_string (Lisp_String *s, Bytecount pos, Bytecount delta); | 947 void resize_string (Lisp_String *s, Bytecount pos, Bytecount delta); |
947 | 948 |
948 #ifdef MULE | 949 #ifdef MULE |
949 | 950 |
950 INLINE Charcount string_char_length (Lisp_String *s); | 951 INLINE_HEADER Charcount string_char_length (Lisp_String *s); |
951 INLINE Charcount | 952 INLINE_HEADER Charcount |
952 string_char_length (Lisp_String *s) | 953 string_char_length (Lisp_String *s) |
953 { | 954 { |
954 return bytecount_to_charcount (string_data (s), string_length (s)); | 955 return bytecount_to_charcount (string_data (s), string_length (s)); |
955 } | 956 } |
956 | 957 |
1038 } while (0) | 1039 } while (0) |
1039 | 1040 |
1040 #define bit_vector_length(v) ((v)->size) | 1041 #define bit_vector_length(v) ((v)->size) |
1041 #define bit_vector_next(v) ((v)->next) | 1042 #define bit_vector_next(v) ((v)->next) |
1042 | 1043 |
1043 INLINE int bit_vector_bit (Lisp_Bit_Vector *v, size_t n); | 1044 INLINE_HEADER int bit_vector_bit (Lisp_Bit_Vector *v, size_t n); |
1044 INLINE int | 1045 INLINE_HEADER int |
1045 bit_vector_bit (Lisp_Bit_Vector *v, size_t n) | 1046 bit_vector_bit (Lisp_Bit_Vector *v, size_t n) |
1046 { | 1047 { |
1047 return ((v->bits[n >> LONGBITS_LOG2] >> (n & (LONGBITS_POWER_OF_2 - 1))) | 1048 return ((v->bits[n >> LONGBITS_LOG2] >> (n & (LONGBITS_POWER_OF_2 - 1))) |
1048 & 1); | 1049 & 1); |
1049 } | 1050 } |
1050 | 1051 |
1051 INLINE void set_bit_vector_bit (Lisp_Bit_Vector *v, size_t n, int value); | 1052 INLINE_HEADER void set_bit_vector_bit (Lisp_Bit_Vector *v, size_t n, int value); |
1052 INLINE void | 1053 INLINE_HEADER void |
1053 set_bit_vector_bit (Lisp_Bit_Vector *v, size_t n, int value) | 1054 set_bit_vector_bit (Lisp_Bit_Vector *v, size_t n, int value) |
1054 { | 1055 { |
1055 if (value) | 1056 if (value) |
1056 v->bits[n >> LONGBITS_LOG2] |= (1UL << (n & (LONGBITS_POWER_OF_2 - 1))); | 1057 v->bits[n >> LONGBITS_LOG2] |= (1UL << (n & (LONGBITS_POWER_OF_2 - 1))); |
1057 else | 1058 else |
1155 | 1156 |
1156 #define CHARP(x) (XTYPE (x) == Lisp_Type_Char) | 1157 #define CHARP(x) (XTYPE (x) == Lisp_Type_Char) |
1157 | 1158 |
1158 #ifdef ERROR_CHECK_TYPECHECK | 1159 #ifdef ERROR_CHECK_TYPECHECK |
1159 | 1160 |
1160 INLINE Emchar XCHAR (Lisp_Object obj); | 1161 INLINE_HEADER Emchar XCHAR (Lisp_Object obj); |
1161 INLINE Emchar | 1162 INLINE_HEADER Emchar |
1162 XCHAR (Lisp_Object obj) | 1163 XCHAR (Lisp_Object obj) |
1163 { | 1164 { |
1164 assert (CHARP (obj)); | 1165 assert (CHARP (obj)); |
1165 return XCHARVAL (obj); | 1166 return XCHARVAL (obj); |
1166 } | 1167 } |
1234 | 1235 |
1235 #define ZEROP(x) EQ (x, Qzero) | 1236 #define ZEROP(x) EQ (x, Qzero) |
1236 | 1237 |
1237 #ifdef ERROR_CHECK_TYPECHECK | 1238 #ifdef ERROR_CHECK_TYPECHECK |
1238 | 1239 |
1239 INLINE EMACS_INT XINT (Lisp_Object obj); | 1240 INLINE_HEADER EMACS_INT XINT (Lisp_Object obj); |
1240 INLINE EMACS_INT | 1241 INLINE_HEADER EMACS_INT |
1241 XINT (Lisp_Object obj) | 1242 XINT (Lisp_Object obj) |
1242 { | 1243 { |
1243 assert (INTP (obj)); | 1244 assert (INTP (obj)); |
1244 return XREALINT (obj); | 1245 return XREALINT (obj); |
1245 } | 1246 } |
1246 | 1247 |
1247 INLINE EMACS_INT XCHAR_OR_INT (Lisp_Object obj); | 1248 INLINE_HEADER EMACS_INT XCHAR_OR_INT (Lisp_Object obj); |
1248 INLINE EMACS_INT | 1249 INLINE_HEADER EMACS_INT |
1249 XCHAR_OR_INT (Lisp_Object obj) | 1250 XCHAR_OR_INT (Lisp_Object obj) |
1250 { | 1251 { |
1251 assert (INTP (obj) || CHARP (obj)); | 1252 assert (INTP (obj) || CHARP (obj)); |
1252 return CHARP (obj) ? XCHAR (obj) : XINT (obj); | 1253 return CHARP (obj) ? XCHAR (obj) : XINT (obj); |
1253 } | 1254 } |
2016 size_t malloced_storage_size (void *, size_t, struct overhead_stats *); | 2017 size_t malloced_storage_size (void *, size_t, struct overhead_stats *); |
2017 size_t fixed_type_block_overhead (size_t); | 2018 size_t fixed_type_block_overhead (size_t); |
2018 #endif | 2019 #endif |
2019 #ifdef PDUMP | 2020 #ifdef PDUMP |
2020 void pdump (void); | 2021 void pdump (void); |
2021 int pdump_load (void); | 2022 int pdump_load (const char *); |
2022 | 2023 |
2023 extern char *pdump_start, *pdump_end; | 2024 extern char *pdump_start, *pdump_end; |
2024 #define DUMPEDP(adr) ((((char *)(adr)) < pdump_end) && (((char *)(adr)) >= pdump_start)) | 2025 #define DUMPEDP(adr) ((((char *)(adr)) < pdump_end) && (((char *)(adr)) >= pdump_start)) |
2025 #else | 2026 #else |
2026 #define DUMPEDP(adr) 0 | 2027 #define DUMPEDP(adr) 0 |
2405 void clear_message (void); | 2406 void clear_message (void); |
2406 | 2407 |
2407 /* Defined in print.c */ | 2408 /* Defined in print.c */ |
2408 void write_string_to_stdio_stream (FILE *, struct console *, | 2409 void write_string_to_stdio_stream (FILE *, struct console *, |
2409 const Bufbyte *, Bytecount, Bytecount, | 2410 const Bufbyte *, Bytecount, Bytecount, |
2410 Lisp_Object); | 2411 Lisp_Object, int); |
2411 void debug_print (Lisp_Object); | 2412 void debug_print (Lisp_Object); |
2412 void debug_short_backtrace (int); | 2413 void debug_short_backtrace (int); |
2413 void temp_output_buffer_setup (Lisp_Object); | 2414 void temp_output_buffer_setup (Lisp_Object); |
2414 void temp_output_buffer_show (Lisp_Object, Lisp_Object); | 2415 void temp_output_buffer_show (Lisp_Object, Lisp_Object); |
2415 /* NOTE: Do not call this with the data of a Lisp_String. Use princ. | 2416 /* NOTE: Do not call this with the data of a Lisp_String. Use princ. |
2548 EXFUN (Fcar_safe, 1); | 2549 EXFUN (Fcar_safe, 1); |
2549 EXFUN (Fcdr, 1); | 2550 EXFUN (Fcdr, 1); |
2550 EXFUN (Fchar_after, 2); | 2551 EXFUN (Fchar_after, 2); |
2551 EXFUN (Fchar_to_string, 1); | 2552 EXFUN (Fchar_to_string, 1); |
2552 EXFUN (Fcheck_valid_plist, 1); | 2553 EXFUN (Fcheck_valid_plist, 1); |
2554 EXFUN (Fvalid_plist_p, 1); | |
2553 EXFUN (Fclear_range_table, 1); | 2555 EXFUN (Fclear_range_table, 1); |
2554 EXFUN (Fcoding_category_list, 0); | 2556 EXFUN (Fcoding_category_list, 0); |
2555 EXFUN (Fcoding_category_system, 1); | 2557 EXFUN (Fcoding_category_system, 1); |
2556 EXFUN (Fcoding_priority_list, 0); | 2558 EXFUN (Fcoding_priority_list, 0); |
2557 EXFUN (Fcoding_system_charset, 2); | 2559 EXFUN (Fcoding_system_charset, 2); |