GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
#include "lisp.h"
#include "character.h"
#include "charset.h"
-#include "ccl.h"
/* 64/16/32/128 */
/* 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);
int lim = CHARTAB_IDX (to, 0, 0);
int i, c;
- for (i = CHARTAB_IDX (from, 0, 0), c = 0; i <= lim;
+ for (i = CHARTAB_IDX (from, 0, 0), c = i * chartab_chars[0]; i <= lim;
i++, c += chartab_chars[0])
{
if (c > to)
Lisp_Object function, Lisp_Object table, Lisp_Object arg)
{
Lisp_Object range, val, parent;
- struct gcpro gcpro1, gcpro2, gcpro3, gcpro4;
uniprop_decoder_t decoder = UNIPROP_GET_DECODER (table);
range = Fcons (make_number (0), make_number (MAX_CHAR));
parent = XCHAR_TABLE (table)->parent;
- GCPRO4 (table, arg, range, parent);
val = XCHAR_TABLE (table)->ascii;
if (SUB_CHAR_TABLE_P (val))
val = XSUB_CHAR_TABLE (val)->contents[0];
}
}
}
-
- UNGCPRO;
}
DEFUN ("map-char-table", Fmap_char_table, Smap_char_table,
{
Lisp_Object range;
int c, i;
- struct gcpro gcpro1;
range = Fcons (Qnil, Qnil);
- GCPRO1 (range);
for (i = 0, c = 0; i < chartab_size[0]; i++, c += chartab_chars[0])
{
else
call2 (function, range, arg);
}
-
- UNGCPRO;
}
\f
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);
}
table = XCDR (val);
if (STRINGP (table))
{
- struct gcpro gcpro1;
- GCPRO1 (val);
AUTO_STRING (intl, "international/");
result = Fload (concat2 (intl, table), Qt, Qt, Qt, Qt);
- UNGCPRO;
if (NILP (result))
return Qnil;
table = XCDR (val);
void
syms_of_chartab (void)
{
+ /* Purpose of uniprop tables. */
DEFSYM (Qchar_code_property_table, "char-code-property-table");
defsubr (&Smake_char_table);