]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fmake_char_table): Doc fixed. If PURPOSE doesn't
authorKenichi Handa <handa@m17n.org>
Fri, 26 Jul 2002 04:05:29 +0000 (04:05 +0000)
committerKenichi Handa <handa@m17n.org>
Fri, 26 Jul 2002 04:05:29 +0000 (04:05 +0000)
have property char-table-extra-slots, make no extra slot.

src/chartab.c

index 54ffc8055e02b56554ee6ced013740f3fd84b964..3f9a9b8e00c58fbac7fa5246b0c7a6ebe84c2917 100644 (file)
@@ -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;