X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fchartab.h;h=f96aa7d6181402dd3890fac5395e5046a335a414;hb=44ea030ec31ae441e59974eb9f6b2a9404611cd8;hp=98901fa27a125071b34d22efeb61fb6d3b1bb62d;hpb=716cfba952c1dc0d2cf5c968971f3780ba728a89;p=chise%2Fxemacs-chise.git.1 diff --git a/src/chartab.h b/src/chartab.h index 98901fa..ac23e00 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 INCLUDED_chartab_h_ -#define INCLUDED_chartab_h_ +#ifndef _MULE_CHARTAB_H +#define _MULE_CHARTAB_H /************************************************************************/ /* Char Tables */ @@ -37,6 +37,15 @@ 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; @@ -46,18 +55,21 @@ 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; - -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 */ #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) + +#define CHAR_TABLE_TYPE(ct) ((ct)->type) +#define XCHAR_TABLE_TYPE(ct) CHAR_TABLE_TYPE (XCHAR_TABLE (ct)) + enum char_table_type { CHAR_TABLE_TYPE_GENERIC, @@ -117,28 +129,17 @@ 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 (Lisp_Char_Table *ct, - int leading_byte, - Emchar c); +Lisp_Object get_non_ascii_char_table_value (struct Lisp_Char_Table *ct, + int leading_byte, + Emchar c); INLINE Lisp_Object -CHAR_TABLE_NON_ASCII_VALUE_UNSAFE (Lisp_Char_Table *ct, Emchar ch); +CHAR_TABLE_NON_ASCII_VALUE_UNSAFE (struct Lisp_Char_Table *ct, Emchar ch); INLINE Lisp_Object -CHAR_TABLE_NON_ASCII_VALUE_UNSAFE (Lisp_Char_Table *ct, Emchar ch) +CHAR_TABLE_NON_ASCII_VALUE_UNSAFE (struct Lisp_Char_Table *ct, Emchar ch) { unsigned char lb = CHAR_LEADING_BYTE (ch); if (!CHAR_TABLE_ENTRYP ((ct)->level1[lb - MIN_LEADING_BYTE])) @@ -176,21 +177,19 @@ struct chartab_range int row; }; -void fill_char_table (Lisp_Char_Table *ct, Lisp_Object value); -void put_char_table (Lisp_Char_Table *ct, struct chartab_range *range, +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, Lisp_Object val); -Lisp_Object get_char_table (Emchar, Lisp_Char_Table *); -int map_char_table (Lisp_Char_Table *ct, +int map_char_table (struct 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 (void); +void prune_syntax_tables (int (*obj_marked_p) (Lisp_Object)); EXFUN (Fcopy_char_table, 1); EXFUN (Fmake_char_table, 1); EXFUN (Fput_char_table, 3); -EXFUN (Fget_char_table, 2); extern Lisp_Object Vall_syntax_tables; @@ -230,4 +229,4 @@ extern Lisp_Object Vstandard_category_table; #endif /* MULE */ -#endif /* INCLUDED_chartab_h_ */ +#endif /* _MULE_CHARTAB_H */