changeset 88900:d6c50ac00394

(Fmake_char_table): Doc fixed. If PURPOSE doesn't have property char-table-extra-slots, make no extra slot.
author Kenichi Handa <handa@m17n.org>
date Fri, 26 Jul 2002 04:05:29 +0000
parents 9bc86c0d4a67
children bcf253c370e8
files src/chartab.c
diffstat 1 files changed, 14 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/src/chartab.c	Fri Jul 26 04:05:16 2002 +0000
+++ b/src/chartab.c	Fri Jul 26 04:05:29 2002 +0000
@@ -56,32 +56,31 @@
 
 
 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;