Mercurial > emacs
comparison src/alloc.c @ 17328:e2a6f31ee014
(Fmake_char_table): Adjusted for the new structure of
Lisp_Char_Table.
(make_sub_char_table): New function.
| author | Kenichi Handa <handa@m17n.org> |
|---|---|
| date | Mon, 07 Apr 1997 07:12:13 +0000 |
| parents | 571d0c136e48 |
| children | 4e11e27ce1f1 |
comparison
equal
deleted
inserted
replaced
| 17327:0cb065f8702e | 17328:e2a6f31ee014 |
|---|---|
| 776 register Lisp_Object purpose, init; | 776 register Lisp_Object purpose, init; |
| 777 { | 777 { |
| 778 Lisp_Object vector; | 778 Lisp_Object vector; |
| 779 Lisp_Object n; | 779 Lisp_Object n; |
| 780 CHECK_SYMBOL (purpose, 1); | 780 CHECK_SYMBOL (purpose, 1); |
| 781 /* For a deeper char-table, PURPOSE can be nil. */ | 781 n = Fget (purpose, Qchar_table_extra_slots); |
| 782 n = NILP (purpose) ? 0 : Fget (purpose, Qchar_table_extra_slots); | |
| 783 CHECK_NUMBER (n, 0); | 782 CHECK_NUMBER (n, 0); |
| 784 if (XINT (n) < 0 || XINT (n) > 10) | 783 if (XINT (n) < 0 || XINT (n) > 10) |
| 785 args_out_of_range (n, Qnil); | 784 args_out_of_range (n, Qnil); |
| 786 /* Add 2 to the size for the defalt and parent slots. */ | 785 /* Add 2 to the size for the defalt and parent slots. */ |
| 787 vector = Fmake_vector (make_number (CHAR_TABLE_STANDARD_SLOTS + XINT (n)), | 786 vector = Fmake_vector (make_number (CHAR_TABLE_STANDARD_SLOTS + XINT (n)), |
| 788 init); | 787 init); |
| 788 XCHAR_TABLE (vector)->top = Qt; | |
| 789 XCHAR_TABLE (vector)->parent = Qnil; | 789 XCHAR_TABLE (vector)->parent = Qnil; |
| 790 XCHAR_TABLE (vector)->purpose = purpose; | 790 XCHAR_TABLE (vector)->purpose = purpose; |
| 791 XSETCHAR_TABLE (vector, XCHAR_TABLE (vector)); | |
| 792 return vector; | |
| 793 } | |
| 794 | |
| 795 /* Return a newly created sub char table with default value DEFALT. | |
| 796 Since a sub char table does not appear as a top level Emacs Lisp | |
| 797 object, we don't need a Lisp interface to make it. */ | |
| 798 | |
| 799 Lisp_Object | |
| 800 make_sub_char_table (defalt) | |
| 801 Lisp_Object defalt; | |
| 802 { | |
| 803 Lisp_Object vector | |
| 804 = Fmake_vector (make_number (SUB_CHAR_TABLE_STANDARD_SLOTS), Qnil); | |
| 805 XCHAR_TABLE (vector)->top = Qnil; | |
| 806 XCHAR_TABLE (vector)->defalt = defalt; | |
| 791 XSETCHAR_TABLE (vector, XCHAR_TABLE (vector)); | 807 XSETCHAR_TABLE (vector, XCHAR_TABLE (vector)); |
| 792 return vector; | 808 return vector; |
| 793 } | 809 } |
| 794 | 810 |
| 795 DEFUN ("vector", Fvector, Svector, 0, MANY, 0, | 811 DEFUN ("vector", Fvector, Svector, 0, MANY, 0, |
