X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fchartab.h;h=38666401d1eb443c4d71e7cb2d04fefd5365ae85;hb=762383636a99307282c2d93d26c35c046ec24da1;hp=f720dad009e6aed62aa02b80e2beb5723e09ff62;hpb=33c8db8e2477d62fd8734f65475f2ed516167532;p=chise%2Fxemacs-chise.git diff --git a/src/chartab.h b/src/chartab.h index f720dad..3866640 100644 --- a/src/chartab.h +++ b/src/chartab.h @@ -24,8 +24,8 @@ Boston, MA 02111-1307, USA. */ This file was written independently of the FSF implementation, and is not compatible. */ -#ifndef _MULE_CHARTAB_H -#define _MULE_CHARTAB_H +#ifndef INCLUDED_chartab_h_ +#define INCLUDED_chartab_h_ /************************************************************************/ /* Char Tables */ @@ -37,15 +37,6 @@ Boston, MA 02111-1307, USA. */ #ifdef MULE -DECLARE_LRECORD (char_table_entry, struct Lisp_Char_Table_Entry); -#define XCHAR_TABLE_ENTRY(x) \ - XRECORD (x, char_table_entry, struct Lisp_Char_Table_Entry) -#define XSETCHAR_TABLE_ENTRY(x, p) XSETRECORD (x, p, char_table_entry) -#define CHAR_TABLE_ENTRYP(x) RECORDP (x, char_table_entry) -#define GC_CHAR_TABLE_ENTRYP(x) GC_RECORDP (x, char_table_entry) -/* #define CHECK_CHAR_TABLE_ENTRY(x) CHECK_RECORD (x, char_table_entry) - char table entries should never escape to Lisp */ - struct Lisp_Char_Table_Entry { struct lcrecord_header header; @@ -55,20 +46,17 @@ struct Lisp_Char_Table_Entry variable-size and add an offset value into this structure. */ Lisp_Object level2[96]; }; +typedef struct Lisp_Char_Table_Entry Lisp_Char_Table_Entry; -#endif /* MULE */ - -DECLARE_LRECORD (char_table, struct Lisp_Char_Table); -#define XCHAR_TABLE(x) \ - XRECORD (x, char_table, struct Lisp_Char_Table) -#define XSETCHAR_TABLE(x, p) XSETRECORD (x, p, char_table) -#define CHAR_TABLEP(x) RECORDP (x, char_table) -#define GC_CHAR_TABLEP(x) GC_RECORDP (x, char_table) -#define CHECK_CHAR_TABLE(x) CHECK_RECORD (x, char_table) -#define CONCHECK_CHAR_TABLE(x) CONCHECK_RECORD (x, char_table) +DECLARE_LRECORD (char_table_entry, Lisp_Char_Table_Entry); +#define XCHAR_TABLE_ENTRY(x) \ + XRECORD (x, char_table_entry, Lisp_Char_Table_Entry) +#define XSETCHAR_TABLE_ENTRY(x, p) XSETRECORD (x, p, char_table_entry) +#define CHAR_TABLE_ENTRYP(x) RECORDP (x, char_table_entry) +/* #define CHECK_CHAR_TABLE_ENTRY(x) CHECK_RECORD (x, char_table_entry) + char table entries should never escape to Lisp */ -#define CHAR_TABLE_TYPE(ct) ((ct)->type) -#define XCHAR_TABLE_TYPE(ct) CHAR_TABLE_TYPE (XCHAR_TABLE (ct)) +#endif /* MULE */ enum char_table_type { @@ -129,17 +117,28 @@ struct Lisp_Char_Table Lisp_Object mirror_table; Lisp_Object next_table; /* DO NOT mark through this. */ }; +typedef struct Lisp_Char_Table Lisp_Char_Table; + +DECLARE_LRECORD (char_table, Lisp_Char_Table); +#define XCHAR_TABLE(x) XRECORD (x, char_table, Lisp_Char_Table) +#define XSETCHAR_TABLE(x, p) XSETRECORD (x, p, char_table) +#define CHAR_TABLEP(x) RECORDP (x, char_table) +#define CHECK_CHAR_TABLE(x) CHECK_RECORD (x, char_table) +#define CONCHECK_CHAR_TABLE(x) CONCHECK_RECORD (x, char_table) + +#define CHAR_TABLE_TYPE(ct) ((ct)->type) +#define XCHAR_TABLE_TYPE(ct) CHAR_TABLE_TYPE (XCHAR_TABLE (ct)) #ifdef MULE -Lisp_Object get_non_ascii_char_table_value (struct Lisp_Char_Table *ct, - int leading_byte, - Emchar c); +Lisp_Object get_non_ascii_char_table_value (Lisp_Char_Table *ct, + int leading_byte, + Emchar c); -INLINE Lisp_Object -CHAR_TABLE_NON_ASCII_VALUE_UNSAFE (struct Lisp_Char_Table *ct, Emchar ch); -INLINE Lisp_Object -CHAR_TABLE_NON_ASCII_VALUE_UNSAFE (struct Lisp_Char_Table *ct, Emchar ch) +INLINE_HEADER Lisp_Object +CHAR_TABLE_NON_ASCII_VALUE_UNSAFE (Lisp_Char_Table *ct, Emchar ch); +INLINE_HEADER Lisp_Object +CHAR_TABLE_NON_ASCII_VALUE_UNSAFE (Lisp_Char_Table *ct, Emchar ch) { unsigned char lb = CHAR_LEADING_BYTE (ch); if (!CHAR_TABLE_ENTRYP ((ct)->level1[lb - MIN_LEADING_BYTE])) @@ -159,6 +158,9 @@ CHAR_TABLE_NON_ASCII_VALUE_UNSAFE (struct Lisp_Char_Table *ct, Emchar ch) #endif /* not MULE */ +#define XCHAR_TABLE_VALUE_UNSAFE(ct, ch) \ + CHAR_TABLE_VALUE_UNSAFE (XCHAR_TABLE (ct), ch) + enum chartab_range_type { CHARTAB_RANGE_ALL, @@ -177,16 +179,16 @@ struct chartab_range int row; }; -void fill_char_table (struct Lisp_Char_Table *ct, Lisp_Object value); -void put_char_table (struct Lisp_Char_Table *ct, struct chartab_range *range, +void fill_char_table (Lisp_Char_Table *ct, Lisp_Object value); +void put_char_table (Lisp_Char_Table *ct, struct chartab_range *range, Lisp_Object val); -Lisp_Object get_char_table (Emchar, struct Lisp_Char_Table *); -int map_char_table (struct Lisp_Char_Table *ct, +Lisp_Object get_char_table (Emchar, Lisp_Char_Table *); +int map_char_table (Lisp_Char_Table *ct, struct chartab_range *range, int (*fn) (struct chartab_range *range, Lisp_Object val, void *arg), void *arg); -void prune_syntax_tables (int (*obj_marked_p) (Lisp_Object)); +void prune_syntax_tables (void); EXFUN (Fcopy_char_table, 1); EXFUN (Fmake_char_table, 1); @@ -231,4 +233,4 @@ extern Lisp_Object Vstandard_category_table; #endif /* MULE */ -#endif /* _MULE_CHARTAB_H */ +#endif /* INCLUDED_chartab_h_ */