/[emacs]/emacs/src/lisp.h
ViewVC logotype

Diff of /emacs/src/lisp.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.407 by monnier, Thu Feb 7 20:22:19 2002 UTC revision 1.407.2.1 by handa, Fri Mar 1 01:44:13 2002 UTC
# Line 298  enum pvec_type Line 298  enum pvec_type
298    PVEC_BOOL_VECTOR = 0x10000,    PVEC_BOOL_VECTOR = 0x10000,
299    PVEC_BUFFER = 0x20000,    PVEC_BUFFER = 0x20000,
300    PVEC_HASH_TABLE = 0x40000,    PVEC_HASH_TABLE = 0x40000,
301    PVEC_TYPE_MASK = 0x7fe00    PVEC_SUB_CHAR_TABLE = 0x80000,
302      PVEC_TYPE_MASK = 0x0ffe00
303        
304  #if 0 /* This is used to make the value of PSEUDOVECTOR_FLAG available to  #if 0 /* This is used to make the value of PSEUDOVECTOR_FLAG available to
305           GDB.  It doesn't work on OS Alpha.  Moved to a variable in           GDB.  It doesn't work on OS Alpha.  Moved to a variable in
# Line 499  extern Lisp_Object make_number (); Line 500  extern Lisp_Object make_number ();
500  #define XSUBR(a) (eassert (GC_SUBRP(a)),(struct Lisp_Subr *) XPNTR(a))  #define XSUBR(a) (eassert (GC_SUBRP(a)),(struct Lisp_Subr *) XPNTR(a))
501  #define XBUFFER(a) (eassert (GC_BUFFERP(a)),(struct buffer *) XPNTR(a))  #define XBUFFER(a) (eassert (GC_BUFFERP(a)),(struct buffer *) XPNTR(a))
502  #define XCHAR_TABLE(a) ((struct Lisp_Char_Table *) XPNTR(a))  #define XCHAR_TABLE(a) ((struct Lisp_Char_Table *) XPNTR(a))
503    #define XSUB_CHAR_TABLE(a) ((struct Lisp_Sub_Char_Table *) XPNTR(a))
504  #define XBOOL_VECTOR(a) ((struct Lisp_Bool_Vector *) XPNTR(a))  #define XBOOL_VECTOR(a) ((struct Lisp_Bool_Vector *) XPNTR(a))
505    
506  /* Construct a Lisp_Object from a value or address.  */  /* Construct a Lisp_Object from a value or address.  */
# Line 528  extern Lisp_Object make_number (); Line 530  extern Lisp_Object make_number ();
530  #define XSETBUFFER(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_BUFFER))  #define XSETBUFFER(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_BUFFER))
531  #define XSETCHAR_TABLE(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_CHAR_TABLE))  #define XSETCHAR_TABLE(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_CHAR_TABLE))
532  #define XSETBOOL_VECTOR(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_BOOL_VECTOR))  #define XSETBOOL_VECTOR(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_BOOL_VECTOR))
533    #define XSETSUB_CHAR_TABLE(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_SUB_CHAR_TABLE))
534    
535  /* Convenience macros for dealing with Lisp arrays.  */  /* Convenience macros for dealing with Lisp arrays.  */
536    
# Line 701  struct Lisp_Vector Line 704  struct Lisp_Vector
704      Lisp_Object contents[1];      Lisp_Object contents[1];
705    };    };
706    
707  /* A char table is a kind of vectorlike, with contents are like a  /* A char-table is a kind of vectorlike, with contents are like a
708     vector but with a few other slots.  For some purposes, it makes     vector but with a few other slots.  For some purposes, it makes
709     sense to handle a chartable with type struct Lisp_Vector.  An     sense to handle a char-table with type struct Lisp_Vector.  An
710     element of a char table can be any Lisp objects, but if it is a sub     element of a char table can be any Lisp objects, but if it is a sub
711     char-table, we treat it a table that contains information of a     char-table, we treat it a table that contains information of a
712     group of characters of the same charsets or a specific character of     specific range of characters.  A sub char-table has the same
713     a charset.  A sub char-table has the same structure as a char table     structure as a vector.  A sub char table appears only in an element
714     except for that the former omits several slots at the tail.  A sub     of a char-table, and there's no way to access it directly from
715     char table appears only in an element of a char table, and there's     Emacs Lisp program.  */
    no way to access it directly from Emacs Lisp program.  */  
   
 /* This is the number of slots that apply to characters or character  
    sets.  The first 128 are for ASCII, the next 128 are for 8-bit  
    European characters, and the last 128 are for multibyte characters.  
    The first 256 are indexed by the code itself, but the last 128 are  
    indexed by (charset-id + 128).  */  
 #define CHAR_TABLE_ORDINARY_SLOTS 384  
   
 /* This is the number of slots that apply to characters of ASCII and  
    8-bit Europeans only.  */  
 #define CHAR_TABLE_SINGLE_BYTE_SLOTS 256  
716    
717  /* This is the number of slots that every char table must have.  This  /* This is the number of slots that every char table must have.  This
718     counts the ordinary slots and the top, defalt, parent, and purpose     counts the ordinary slots and the top, defalt, parent, and purpose
719     slots.  */     slots.  */
720  #define CHAR_TABLE_STANDARD_SLOTS (CHAR_TABLE_ORDINARY_SLOTS + 4)  #define CHAR_TABLE_STANDARD_SLOTS (VECSIZE (struct Lisp_Char_Table) - 1)
   
 /* This is the number of slots that apply to position-code-1 and  
    position-code-2 of a multibyte character at the 2nd and 3rd level  
    sub char tables respectively.  */  
 #define SUB_CHAR_TABLE_ORDINARY_SLOTS 128  
   
 /* This is the number of slots that every sub char table must have.  
    This counts the ordinary slots and the top and defalt slot.  */  
 #define SUB_CHAR_TABLE_STANDARD_SLOTS (SUB_CHAR_TABLE_ORDINARY_SLOTS + 2)  
721    
722  /* Return the number of "extra" slots in the char table CT.  */  /* Return the number of "extra" slots in the char table CT.  */
723    
# Line 743  struct Lisp_Vector Line 725  struct Lisp_Vector
725    (((CT)->size & PSEUDOVECTOR_SIZE_MASK) - CHAR_TABLE_STANDARD_SLOTS)    (((CT)->size & PSEUDOVECTOR_SIZE_MASK) - CHAR_TABLE_STANDARD_SLOTS)
726    
727  /* Almost equivalent to Faref (CT, IDX) with optimization for ASCII  /* Almost equivalent to Faref (CT, IDX) with optimization for ASCII
728     and 8-bit Europeans characters.  For these characters, do not check     characters.  Do not check validity of CT.  */
729     validity of CT.  Do not follow parent.  */  #define CHAR_TABLE_REF(CT, IDX)                                          \
730  #define CHAR_TABLE_REF(CT, IDX)                         \    (((IDX) >= 0 && ASCII_CHAR_P (IDX)                                     \
731    ((IDX) >= 0 && (IDX) < CHAR_TABLE_SINGLE_BYTE_SLOTS   \      && SUB_CHAR_TABLE_P (XCHAR_TABLE (CT)->ascii)                        \
732     ? (!NILP (XCHAR_TABLE (CT)->contents[IDX])           \      && !NILP (XSUB_CHAR_TABLE (XCHAR_TABLE (CT)->ascii)->contents[IDX])) \
733        ? XCHAR_TABLE (CT)->contents[IDX]                 \     ? XSUB_CHAR_TABLE (XCHAR_TABLE (CT)->ascii)->contents[IDX]            \
734        : XCHAR_TABLE (CT)->defalt)                       \     : char_table_ref ((CT), (IDX)))
    : Faref (CT, make_number (IDX)))  
735    
736  /* Almost equivalent to Faref (CT, IDX) with optimization for ASCII  /* Almost equivalent to Faref (CT, IDX) with optimization for ASCII
737     and 8-bit Europeans characters.  However, if the result is nil,     and 8-bit Europeans characters.  However, if the result is nil,
# Line 758  struct Lisp_Vector Line 739  struct Lisp_Vector
739    
740     For these characters, do not check validity of CT     For these characters, do not check validity of CT
741     and do not follow parent.  */     and do not follow parent.  */
742  #define CHAR_TABLE_TRANSLATE(CT, IDX)                   \  #define CHAR_TABLE_TRANSLATE(CT, IDX)   \
743    ((IDX) < CHAR_TABLE_SINGLE_BYTE_SLOTS                 \    char_table_translate (CT, IDX)
    ? (!NILP (XCHAR_TABLE (CT)->contents[IDX])           \  
       ? XINT (XCHAR_TABLE (CT)->contents[IDX])          \  
       : IDX)                                            \  
    : char_table_translate (CT, IDX))  
744    
745  /* Equivalent to Faset (CT, IDX, VAL) with optimization for ASCII and  /* Equivalent to Faset (CT, IDX, VAL) with optimization for ASCII and
746     8-bit Europeans characters.  Do not check validity of CT.  */     8-bit Europeans characters.  Do not check validity of CT.  */
747  #define CHAR_TABLE_SET(CT, IDX, VAL)                    \  #define CHAR_TABLE_SET(CT, IDX, VAL)                                    \
748    do {                                                  \    (((IDX) >= 0 && ASCII_CHAR_P (IDX)                                    \
749      if (XFASTINT (IDX) < CHAR_TABLE_SINGLE_BYTE_SLOTS)  \      && SUB_CHAR_TABLE_P (XCHAR_TABLE (CT)->ascii))                      \
750        XCHAR_TABLE (CT)->contents[XFASTINT (IDX)] = VAL; \     ? XSUB_CHAR_TABLE (XCHAR_TABLE (CT)->ascii)->contents[IDX] = VAL     \
751      else                                                \     : char_table_set (CT, IDX, VAL))
752        Faset (CT, IDX, VAL);                             \  
753    } while (0)  
754    #define CHARTAB_SIZE_BITS_0 6
755    #define CHARTAB_SIZE_BITS_1 4
756    #define CHARTAB_SIZE_BITS_2 5
757    #define CHARTAB_SIZE_BITS_3 7
758    
759    extern const int chartab_size[4];
760    
761    struct Lisp_Sub_Char_Table;
762    
763  struct Lisp_Char_Table  struct Lisp_Char_Table
764    {  {
765      /* This is the vector's size field, which also holds the    /* This is the vector's size field, which also holds the
766         pseudovector type information.  It holds the size, too.       pseudovector type information.  It holds the size, too.  The size
767         The size counts the top, defalt, purpose, and parent slots.       counts the defalt, parent, purpose, ascii, contents, and extras
768         The last three are not counted if this is a sub char table.  */       slots.  */
769      EMACS_INT size;    EMACS_INT size;
770      struct Lisp_Vector *next;    struct Lisp_Vector *next;
771      /* This holds a flag to tell if this is a top level char table (t)  
772         or a sub char table (nil).  */    /* This holds a default value,
773      Lisp_Object top;       which is used whenever the value for a specific character is nil.  */
774      /* This holds a default value,    Lisp_Object defalt;
775         which is used whenever the value for a specific character is nil.  */  
776      Lisp_Object defalt;    /* This points to another char table, which we inherit from when the
777      /* This holds an actual value of each element.  A sub char table       value for a specific character is nil.  The `defalt' slot takes
778         has only SUB_CHAR_TABLE_ORDINARY_SLOTS number of elements.  */       precedence over this.  */
779      Lisp_Object contents[CHAR_TABLE_ORDINARY_SLOTS];    Lisp_Object parent;
780    
781      /* A sub char table doesn't has the following slots.  */    /* This is a symbol which says what kind of use this char-table is
782         meant for.  */
783      /* This points to another char table, which we inherit from    Lisp_Object purpose;
784         when the value for a specific character is nil.  
785         The `defalt' slot takes precedence over this.  */    /* The bottom sub char-table for characters of the range 0..127.  It
786      Lisp_Object parent;       is nil if none of ASCII character has a specific value.  */
787      /* This should be a symbol which says what kind of use    Lisp_Object ascii;
788         this char-table is meant for.  
789         Typically now the values can be `syntax-table' and `display-table'.  */    Lisp_Object contents[(1 << CHARTAB_SIZE_BITS_0)];
790      Lisp_Object purpose;  
791      /* These hold additional data.  */    /* These hold additional data.  It is a vector.  */
792      Lisp_Object extras[1];    Lisp_Object extras[1];
793    };  };
794    
795    struct Lisp_Sub_Char_Table
796    {
797      /* This is the vector's size field, which also holds the
798         pseudovector type information.  It holds the size, too.  */
799      EMACS_INT size;
800      struct Lisp_Vector *next;
801    
802      /* Depth of this sub char-table.  It should be 1, 2, or 3.  A sub
803         char-table of depth 1 contains 16 elments, and each element
804         covers 4096 (128*32) characters.  A sub char-table of depth 2
805         contains 32 elements, and each element covers 128 characters.  A
806         sub char-table of depth 3 contains 128 elements, and each element
807         is for one character.  */
808      Lisp_Object depth;
809    
810      /* Minimum character covered by the sub char-table.  */
811      Lisp_Object min_char;
812    
813      Lisp_Object contents[1];
814    };
815    
816  /* A boolvector is a kind of vectorlike, with contents are like a string.  */  /* A boolvector is a kind of vectorlike, with contents are like a string.  */
817  struct Lisp_Bool_Vector  struct Lisp_Bool_Vector
# Line 1025  struct Lisp_Hash_Table Line 1031  struct Lisp_Hash_Table
1031    
1032  #define DEFAULT_REHASH_SIZE 1.5  #define DEFAULT_REHASH_SIZE 1.5
1033    
1034    /* Value is the key part of entry IDX in hash table H.  */
1035    
1036    #define HASH_KEY(H, IDX)   AREF ((H)->key_and_value, 2 * (IDX))
1037    
1038    /* Value is the value part of entry IDX in hash table H.  */
1039    
1040    #define HASH_VALUE(H, IDX) AREF ((H)->key_and_value, 2 * (IDX) + 1)
1041    
1042    
1043  /* These structures are used for various misc types.  */  /* These structures are used for various misc types.  */
1044    
# Line 1247  typedef unsigned char UCHAR; Line 1261  typedef unsigned char UCHAR;
1261    (CHAR_ALT | CHAR_SUPER | CHAR_HYPER  | CHAR_SHIFT | CHAR_CTL | CHAR_META)    (CHAR_ALT | CHAR_SUPER | CHAR_HYPER  | CHAR_SHIFT | CHAR_CTL | CHAR_META)
1262    
1263    
1264  /* Actually, the current Emacs uses 19 bits for the character value  /* Actually, the current Emacs uses 22 bits for the character value
1265     itself.  */     itself.  */
1266  #define CHARACTERBITS 19  #define CHARACTERBITS 22
1267    
1268  /* The maximum byte size consumed by push_key_description.  /* The maximum byte size consumed by push_key_description.
1269     All callers should assure that at least this size of memory is     All callers should assure that at least this size of memory is
# Line 1305  typedef unsigned char UCHAR; Line 1319  typedef unsigned char UCHAR;
1319  #define GLYPH int  #define GLYPH int
1320    
1321  /* Mask bits for face.  */  /* Mask bits for face.  */
1322  #define GLYPH_MASK_FACE    0x7FF80000  #define GLYPH_MASK_FACE    0x7FC00000
1323   /* Mask bits for character code.  */   /* Mask bits for character code.  */
1324  #define GLYPH_MASK_CHAR    0x0007FFFF /* The lowest 19 bits */  #define GLYPH_MASK_CHAR    0x003FFFFF /* The lowest 19 bits */
1325    
1326  /* The FAST macros assume that we already know we're in an X window.  */  /* The FAST macros assume that we already know we're in an X window.  */
1327    
# Line 1406  typedef unsigned char UCHAR; Line 1420  typedef unsigned char UCHAR;
1420  #define GC_BUFFERP(x) GC_PSEUDOVECTORP (x, PVEC_BUFFER)  #define GC_BUFFERP(x) GC_PSEUDOVECTORP (x, PVEC_BUFFER)
1421  #define CHAR_TABLE_P(x) PSEUDOVECTORP (x, PVEC_CHAR_TABLE)  #define CHAR_TABLE_P(x) PSEUDOVECTORP (x, PVEC_CHAR_TABLE)
1422  #define GC_CHAR_TABLE_P(x) GC_PSEUDOVECTORP (x, PVEC_CHAR_TABLE)  #define GC_CHAR_TABLE_P(x) GC_PSEUDOVECTORP (x, PVEC_CHAR_TABLE)
1423    #define SUB_CHAR_TABLE_P(x) PSEUDOVECTORP (x, PVEC_SUB_CHAR_TABLE)
1424    #define GC_SUB_CHAR_TABLE_P(x) GC_PSEUDOVECTORP (x, PVEC_SUB_CHAR_TABLE)
1425  #define BOOL_VECTOR_P(x) PSEUDOVECTORP (x, PVEC_BOOL_VECTOR)  #define BOOL_VECTOR_P(x) PSEUDOVECTORP (x, PVEC_BOOL_VECTOR)
1426  #define GC_BOOL_VECTOR_P(x) GC_PSEUDOVECTORP (x, PVEC_BOOL_VECTOR)  #define GC_BOOL_VECTOR_P(x) GC_PSEUDOVECTORP (x, PVEC_BOOL_VECTOR)
1427  #define FRAMEP(x) PSEUDOVECTORP (x, PVEC_FRAME)  #define FRAMEP(x) PSEUDOVECTORP (x, PVEC_FRAME)
1428  #define GC_FRAMEP(x) GC_PSEUDOVECTORP (x, PVEC_FRAME)  #define GC_FRAMEP(x) GC_PSEUDOVECTORP (x, PVEC_FRAME)
1429    
 #define SUB_CHAR_TABLE_P(x) (CHAR_TABLE_P (x) && NILP (XCHAR_TABLE (x)->top))  
1430    
1431  #define EQ(x, y) (XFASTINT (x) == XFASTINT (y))  #define EQ(x, y) (XFASTINT (x) == XFASTINT (y))
1432  #define GC_EQ(x, y) (XGCTYPE (x) == XGCTYPE (y) && XPNTR (x) == XPNTR (y))  #define GC_EQ(x, y) (XGCTYPE (x) == XGCTYPE (y) && XPNTR (x) == XPNTR (y))
# Line 2088  EXFUN (Fread_coding_system, 2); Line 2103  EXFUN (Fread_coding_system, 2);
2103  EXFUN (Fread_non_nil_coding_system, 1);  EXFUN (Fread_non_nil_coding_system, 1);
2104  EXFUN (Ffind_operation_coding_system, MANY);  EXFUN (Ffind_operation_coding_system, MANY);
2105  EXFUN (Fupdate_coding_systems_internal, 0);  EXFUN (Fupdate_coding_systems_internal, 0);
2106  EXFUN (Fencode_coding_string, 3);  EXFUN (Fencode_coding_string, 4);
2107  EXFUN (Fdecode_coding_string, 3);  EXFUN (Fdecode_coding_string, 4);
2108  extern Lisp_Object detect_coding_system P_ ((unsigned char *, int, int, int));  extern Lisp_Object detect_coding_system P_ ((unsigned char *, int, int, int,
2109  Lisp_Object code_convert_string_norecord P_ ((Lisp_Object, Lisp_Object, int));                                               Lisp_Object));
2110  extern void init_coding P_ ((void));  extern void init_coding P_ ((void));
2111  extern void init_coding_once P_ ((void));  extern void init_coding_once P_ ((void));
2112  extern void syms_of_coding P_ ((void));  extern void syms_of_coding P_ ((void));
2113  extern Lisp_Object code_convert_string_norecord P_ ((Lisp_Object, Lisp_Object,  
2114                                                       int));  /* Defined in character.c */
2115    extern void init_character_once P_ ((void));
2116    extern void syms_of_character P_ ((void));
2117    
2118  /* Defined in charset.c */  /* Defined in charset.c */
2119  extern int nonascii_insert_offset;  extern int nonascii_insert_offset;
# Line 2109  extern int multibyte_chars_in_text P_ (( Line 2126  extern int multibyte_chars_in_text P_ ((
2126  extern int unibyte_char_to_multibyte P_ ((int));  extern int unibyte_char_to_multibyte P_ ((int));
2127  extern int multibyte_char_to_unibyte P_ ((int, Lisp_Object));  extern int multibyte_char_to_unibyte P_ ((int, Lisp_Object));
2128  extern Lisp_Object Qcharset;  extern Lisp_Object Qcharset;
2129    extern void init_charset P_ ((void));
2130  extern void init_charset_once P_ ((void));  extern void init_charset_once P_ ((void));
2131  extern void syms_of_charset P_ ((void));  extern void syms_of_charset P_ ((void));
2132    
2133    /* Defined in composite.c */
2134    extern void syms_of_composite P_ ((void));
2135    
2136  /* Defined in syntax.c */  /* Defined in syntax.c */
2137  EXFUN (Fforward_word, 1);  EXFUN (Fforward_word, 1);
2138  EXFUN (Fskip_chars_forward, 2);  EXFUN (Fskip_chars_forward, 2);
# Line 2128  extern int next_almost_prime P_ ((int)); Line 2149  extern int next_almost_prime P_ ((int));
2149  extern Lisp_Object larger_vector P_ ((Lisp_Object, int, Lisp_Object));  extern Lisp_Object larger_vector P_ ((Lisp_Object, int, Lisp_Object));
2150  extern void sweep_weak_hash_tables P_ ((void));  extern void sweep_weak_hash_tables P_ ((void));
2151  extern Lisp_Object Qstring_lessp;  extern Lisp_Object Qstring_lessp;
 EXFUN (Foptimize_char_table, 1);  
2152  extern Lisp_Object Vfeatures;  extern Lisp_Object Vfeatures;
2153  extern Lisp_Object QCtest, QCweakness, Qequal;  extern Lisp_Object QCtest, QCweakness, Qequal, Qeq;
2154  unsigned sxhash P_ ((Lisp_Object, int));  unsigned sxhash P_ ((Lisp_Object, int));
2155  Lisp_Object make_hash_table P_ ((Lisp_Object, Lisp_Object, Lisp_Object,  Lisp_Object make_hash_table P_ ((Lisp_Object, Lisp_Object, Lisp_Object,
2156                                   Lisp_Object, Lisp_Object, Lisp_Object,                                   Lisp_Object, Lisp_Object, Lisp_Object,
# Line 2145  void remove_hash_entry P_ ((struct Lisp_ Line 2165  void remove_hash_entry P_ ((struct Lisp_
2165  extern void init_fns P_ ((void));  extern void init_fns P_ ((void));
2166  EXFUN (Fsxhash, 1);  EXFUN (Fsxhash, 1);
2167  EXFUN (Fmake_hash_table, MANY);  EXFUN (Fmake_hash_table, MANY);
2168    EXFUN (Fmakehash, 1);
2169  EXFUN (Fcopy_hash_table, 1);  EXFUN (Fcopy_hash_table, 1);
2170  EXFUN (Fhash_table_count, 1);  EXFUN (Fhash_table_count, 1);
2171  EXFUN (Fhash_table_rehash_size, 1);  EXFUN (Fhash_table_rehash_size, 1);
# Line 2209  extern Lisp_Object string_make_unibyte P Line 2230  extern Lisp_Object string_make_unibyte P
2230  EXFUN (Fcopy_alist, 1);  EXFUN (Fcopy_alist, 1);
2231  EXFUN (Fplist_get, 2);  EXFUN (Fplist_get, 2);
2232  EXFUN (Fplist_put, 3);  EXFUN (Fplist_put, 3);
 EXFUN (Fset_char_table_parent, 2);  
 EXFUN (Fchar_table_extra_slot, 2);  
 EXFUN (Fset_char_table_extra_slot, 3);  
2233  EXFUN (Frassoc, 2);  EXFUN (Frassoc, 2);
2234  EXFUN (Fstring_equal, 2);  EXFUN (Fstring_equal, 2);
2235  EXFUN (Fcompare_strings, 7);  EXFUN (Fcompare_strings, 7);
2236  EXFUN (Fstring_lessp, 2);  EXFUN (Fstring_lessp, 2);
 extern int char_table_translate P_ ((Lisp_Object, int));  
 extern void map_char_table P_ ((void (*) (Lisp_Object, Lisp_Object, Lisp_Object),  
                                 Lisp_Object, Lisp_Object, Lisp_Object, int,  
                                 Lisp_Object *));  
 extern Lisp_Object char_table_ref_and_index P_ ((Lisp_Object, int, int *));  
2237  extern void syms_of_fns P_ ((void));  extern void syms_of_fns P_ ((void));
2238    
2239  /* Defined in floatfns.c */  /* Defined in floatfns.c */
# Line 2243  extern void insert P_ ((unsigned char *, Line 2256  extern void insert P_ ((unsigned char *,
2256  extern void insert_and_inherit P_ ((unsigned char *, int));  extern void insert_and_inherit P_ ((unsigned char *, int));
2257  extern void insert_1 P_ ((unsigned char *, int, int, int, int));  extern void insert_1 P_ ((unsigned char *, int, int, int, int));
2258  extern void insert_1_both P_ ((unsigned char *, int, int, int, int, int));  extern void insert_1_both P_ ((unsigned char *, int, int, int, int, int));
2259    extern void insert_from_gap P_ ((int, int));
2260  extern void insert_from_string P_ ((Lisp_Object, int, int, int, int, int));  extern void insert_from_string P_ ((Lisp_Object, int, int, int, int, int));
2261  extern void insert_from_buffer P_ ((struct buffer *, int, int, int));  extern void insert_from_buffer P_ ((struct buffer *, int, int, int));
2262  extern void insert_char P_ ((int));  extern void insert_char P_ ((int));
# Line 2361  extern Lisp_Object make_pure_vector P_ ( Line 2375  extern Lisp_Object make_pure_vector P_ (
2375  EXFUN (Fgarbage_collect, 0);  EXFUN (Fgarbage_collect, 0);
2376  EXFUN (Fmake_byte_code, MANY);  EXFUN (Fmake_byte_code, MANY);
2377  EXFUN (Fmake_bool_vector, 2);  EXFUN (Fmake_bool_vector, 2);
 EXFUN (Fmake_char_table, 2);  
 extern Lisp_Object make_sub_char_table P_ ((Lisp_Object));  
2378  extern Lisp_Object Qchar_table_extra_slots;  extern Lisp_Object Qchar_table_extra_slots;
2379  extern struct Lisp_Vector *allocate_vector P_ ((EMACS_INT));  extern struct Lisp_Vector *allocate_vector P_ ((EMACS_INT));
2380  extern struct Lisp_Vector *allocate_other_vector P_ ((EMACS_INT));  extern struct Lisp_Vector *allocate_other_vector P_ ((EMACS_INT));
# Line 2381  extern void init_alloc P_ ((void)); Line 2393  extern void init_alloc P_ ((void));
2393  extern void syms_of_alloc P_ ((void));  extern void syms_of_alloc P_ ((void));
2394  extern struct buffer * allocate_buffer P_ ((void));  extern struct buffer * allocate_buffer P_ ((void));
2395    
2396    /* Defined in chartab.c */
2397    EXFUN (Fmake_char_table, 2);
2398    EXFUN (Fchar_table_parent, 1);
2399    EXFUN (Fset_char_table_parent, 2);
2400    EXFUN (Fchar_table_extra_slot, 2);
2401    EXFUN (Fset_char_table_extra_slot, 3);
2402    EXFUN (Fchar_table_range, 2);
2403    EXFUN (Fset_char_table_range, 3);
2404    EXFUN (Fset_char_table_default, 3);
2405    EXFUN (Foptimize_char_table, 1);
2406    EXFUN (Fmap_char_table, 2);
2407    extern Lisp_Object copy_char_table P_ ((Lisp_Object));
2408    extern Lisp_Object sub_char_table_ref P_ ((Lisp_Object, int));
2409    extern Lisp_Object char_table_ref P_ ((Lisp_Object, int));
2410    extern Lisp_Object char_table_ref_and_range P_ ((Lisp_Object, int,
2411                                                     int *, int *));
2412    extern Lisp_Object char_table_set P_ ((Lisp_Object, int, Lisp_Object));
2413    extern Lisp_Object char_table_set_range P_ ((Lisp_Object, int, int,
2414                                                 Lisp_Object));
2415    extern int char_table_translate P_ ((Lisp_Object, int));
2416    extern void map_char_table P_ ((void (*) (Lisp_Object, Lisp_Object,
2417                                              Lisp_Object),
2418                                    Lisp_Object, Lisp_Object, Lisp_Object, int,
2419                                    Lisp_Object *));
2420    extern void map_charset_chars P_ ((void (*) (Lisp_Object, Lisp_Object,
2421                                                 Lisp_Object),
2422                                       Lisp_Object, Lisp_Object, Lisp_Object));
2423    extern void syms_of_chartab P_ ((void));
2424    
2425  /* Defined in print.c */  /* Defined in print.c */
2426  extern Lisp_Object Vprin1_to_string_buffer;  extern Lisp_Object Vprin1_to_string_buffer;
2427  extern void debug_print P_ ((Lisp_Object));  extern void debug_print P_ ((Lisp_Object));
# Line 3006  extern void init_sound P_ ((void)); Line 3047  extern void init_sound P_ ((void));
3047    
3048  /* Defined in category.c */  /* Defined in category.c */
3049  extern void init_category_once P_ ((void));  extern void init_category_once P_ ((void));
3050    extern Lisp_Object char_category_set P_ ((int));
3051  extern void syms_of_category P_ ((void));  extern void syms_of_category P_ ((void));
3052    
3053  /* Defined in ccl.c */  /* Defined in ccl.c */

Legend:
Removed from v.1.407  
changed lines
  Added in v.1.407.2.1

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26