]> code.delx.au - gnu-emacs/blobdiff - src/chartab.c
Check for some overflows in vertical-motion
[gnu-emacs] / src / chartab.c
index 35362e32a03a01bcb997526a8b7b9a543f0e0fd3..acaabce54a7ec12c8a5a01f12ad6540fa675a8af 100644 (file)
@@ -57,9 +57,6 @@ static const int chartab_bits[4] =
 /* Preamble for uniprop (Unicode character property) tables.  See the
    comment of "Unicode character property tables".  */
 
-/* Purpose of uniprop tables. */
-static Lisp_Object Qchar_code_property_table;
-
 /* Types of decoder and encoder functions for uniprop values.  */
 typedef Lisp_Object (*uniprop_decoder_t) (Lisp_Object, Lisp_Object);
 typedef Lisp_Object (*uniprop_encoder_t) (Lisp_Object, Lisp_Object);
@@ -1258,8 +1255,10 @@ uniprop_encode_value_numeric (Lisp_Object table, Lisp_Object value)
       break;
   value = make_number (i);
   if (i == size)
-    set_char_table_extras (table, 4, Fvconcat (2, ((Lisp_Object []) {
-      XCHAR_TABLE (table)->extras[4], Fmake_vector (make_number (1), value) })));
+    set_char_table_extras (table, 4,
+                          CALLN (Fvconcat,
+                                 XCHAR_TABLE (table)->extras[4],
+                                 Fmake_vector (make_number (1), value)));
   return make_number (i);
 }
 
@@ -1302,8 +1301,8 @@ uniprop_table (Lisp_Object prop)
     {
       struct gcpro gcpro1;
       GCPRO1 (val);
-      result = Fload (concat2 (SCOPED_STRING ("international/"), table),
-                     Qt, Qt, Qt, Qt);
+      AUTO_STRING (intl, "international/");
+      result = Fload (concat2 (intl, table), Qt, Qt, Qt, Qt);
       UNGCPRO;
       if (NILP (result))
        return Qnil;
@@ -1378,6 +1377,7 @@ CHAR-TABLE must be what returned by `unicode-property-table-internal'. */)
 void
 syms_of_chartab (void)
 {
+  /* Purpose of uniprop tables. */
   DEFSYM (Qchar_code_property_table, "char-code-property-table");
 
   defsubr (&Smake_char_table);