summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>1997-04-07 07:12:13 +0000
committerKenichi Handa <handa@m17n.org>1997-04-07 07:12:13 +0000
commita6097d504b0ad7acbc048186754bb95a0d9c446c (patch)
tree6574cde74db0a94a99ce4b6bb8f815656915c2b4 /src
parent843cb13db9ce55ab134d27940455c7949e5a494c (diff)
downloademacs-a6097d504b0ad7acbc048186754bb95a0d9c446c.tar.gz
(Fmake_char_table): Adjusted for the new structure of
Lisp_Char_Table. (make_sub_char_table): New function.
Diffstat (limited to 'src')
-rw-r--r--src/alloc.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/alloc.c b/src/alloc.c
index 0e0241124bf..ad9e2dd1401 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -778,20 +778,36 @@ The property's value should be an integer between 0 and 10.")
Lisp_Object vector;
Lisp_Object n;
CHECK_SYMBOL (purpose, 1);
- /* For a deeper char-table, PURPOSE can be nil. */
- n = NILP (purpose) ? 0 : Fget (purpose, Qchar_table_extra_slots);
+ n = Fget (purpose, Qchar_table_extra_slots);
CHECK_NUMBER (n, 0);
if (XINT (n) < 0 || XINT (n) > 10)
args_out_of_range (n, Qnil);
/* Add 2 to the size for the defalt and parent slots. */
vector = Fmake_vector (make_number (CHAR_TABLE_STANDARD_SLOTS + XINT (n)),
init);
+ XCHAR_TABLE (vector)->top = Qt;
XCHAR_TABLE (vector)->parent = Qnil;
XCHAR_TABLE (vector)->purpose = purpose;
XSETCHAR_TABLE (vector, XCHAR_TABLE (vector));
return vector;
}
+/* Return a newly created sub char table with default value DEFALT.
+ Since a sub char table does not appear as a top level Emacs Lisp
+ object, we don't need a Lisp interface to make it. */
+
+Lisp_Object
+make_sub_char_table (defalt)
+ Lisp_Object defalt;
+{
+ Lisp_Object vector
+ = Fmake_vector (make_number (SUB_CHAR_TABLE_STANDARD_SLOTS), Qnil);
+ XCHAR_TABLE (vector)->top = Qnil;
+ XCHAR_TABLE (vector)->defalt = defalt;
+ XSETCHAR_TABLE (vector, XCHAR_TABLE (vector));
+ return vector;
+}
+
DEFUN ("vector", Fvector, Svector, 0, MANY, 0,
"Return a newly created vector with specified arguments as elements.\n\
Any number of arguments, even zero arguments, are allowed.")