summaryrefslogtreecommitdiff
path: root/src/chartab.c
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>2002-07-26 04:05:29 +0000
committerKenichi Handa <handa@m17n.org>2002-07-26 04:05:29 +0000
commitd151f9f0727839b07463086783c93848975d4120 (patch)
treee6b58f19008278cfd18aca4ac4301600341aca38 /src/chartab.c
parent3473f37705f17e8fab611f1e8a396f799248e950 (diff)
downloademacs-d151f9f0727839b07463086783c93848975d4120.tar.gz
(Fmake_char_table): Doc fixed. If PURPOSE doesn't
have property char-table-extra-slots, make no extra slot.
Diffstat (limited to 'src/chartab.c')
-rw-r--r--src/chartab.c29
1 files changed, 14 insertions, 15 deletions
diff --git a/src/chartab.c b/src/chartab.c
index 54ffc8055e0..3f9a9b8e00c 100644
--- a/src/chartab.c
+++ b/src/chartab.c
@@ -56,32 +56,31 @@ const int chartab_bits[4] =
DEFUN ("make-char-table", Fmake_char_table, Smake_char_table, 1, 2, 0,
- doc: /* Return a newly created char-table.
+ doc: /* Return a newly created char-table, with purpose PURPOSE.
Each element is initialized to INIT, which defaults to nil.
-Optional second argument PURPOSE, if non-nil, should be a symbol
-which has a `char-table-extra-slots' property.
-The property's value should be an integer between 0 and 10
-that specify how many extra slots the char-table has.
-By default, the char-table has no extra slot. */)
+PURPOSE should be a symbol. If it has a `char-table-extra-slots'
+property, the property's value should be an integer between 0 and 10
+that specifies how many extra slots the char-table has. Otherwise,
+the char-table has no extra slot. */)
(purpose, init)
register Lisp_Object purpose, init;
{
Lisp_Object vector;
Lisp_Object n;
- int n_extras = 0;
+ int n_extras;
int size;
CHECK_SYMBOL (purpose);
- if (! NILP (purpose))
+ n = Fget (purpose, Qchar_table_extra_slots);
+ if (NILP (n))
+ n_extras = 0;
+ else
{
- n = Fget (purpose, Qchar_table_extra_slots);
- if (INTEGERP (n))
- {
- if (XINT (n) < 0 || XINT (n) > 10)
- args_out_of_range (n, Qnil);
- n_extras = XINT (n);
- }
+ CHECK_NATNUM (n);
+ n_extras = XINT (n);
+ if (n_extras > 10)
+ args_out_of_range (n, Qnil);
}
size = VECSIZE (struct Lisp_Char_Table) - 1 + n_extras;