#ifdef MULE
{
- int i;
+ Charset_ID i;
for (i = MIN_LEADING_BYTE; i < MIN_LEADING_BYTE + NUM_LEADING_BYTES;
i++)
outrange->charset = Fget_charset (elts[0]);
CHECK_INT (elts[1]);
outrange->row = XINT (elts[1]);
- switch (XCHARSET_TYPE (outrange->charset))
+ if (XCHARSET_DIMENSION (outrange->charset) >= 2)
{
- case CHARSET_TYPE_94:
- case CHARSET_TYPE_96:
- signal_simple_error ("Charset in row vector must be multi-byte",
- outrange->charset);
- case CHARSET_TYPE_94X94:
- check_int_range (outrange->row, 33, 126);
- break;
- case CHARSET_TYPE_96X96:
- check_int_range (outrange->row, 32, 127);
- break;
- default:
- abort ();
+ switch (XCHARSET_CHARS (outrange->charset))
+ {
+ case 94:
+ check_int_range (outrange->row, 33, 126);
+ break;
+ case 96:
+ check_int_range (outrange->row, 32, 127);
+ break;
+ default:
+ abort ();
+ }
}
+ else
+ signal_simple_error ("Charset in row vector must be multi-byte",
+ outrange->charset);
}
else
{
/* called from CHAR_TABLE_VALUE(). */
Lisp_Object
-get_non_ascii_char_table_value (Lisp_Char_Table *ct, int leading_byte,
+get_non_ascii_char_table_value (Lisp_Char_Table *ct, Charset_ID leading_byte,
Emchar c)
{
Lisp_Object val;
+#ifdef UTF2000
+ Lisp_Object charset;
+#else
Lisp_Object charset = CHARSET_BY_LEADING_BYTE (leading_byte);
+#endif
int byte1, byte2;
+#ifdef UTF2000
+ BREAKUP_CHAR (c, charset, byte1, byte2);
+#else
BREAKUP_CHAR_1_UNSAFE (c, charset, byte1, byte2);
+#endif
val = ct->level1[leading_byte - MIN_LEADING_BYTE];
if (CHAR_TABLE_ENTRYP (val))
{
static int
-map_over_other_charset (Lisp_Char_Table *ct, int lb,
+map_over_other_charset (Lisp_Char_Table *ct, Charset_ID lb,
int (*fn) (struct chartab_range *range,
Lisp_Object val, void *arg),
void *arg)
if (retval)
return retval;
{
- int i;
- int start = MIN_LEADING_BYTE;
- int stop = start + NUM_LEADING_BYTES;
+ Charset_ID i;
+ Charset_ID start = MIN_LEADING_BYTE;
+ Charset_ID stop = start + NUM_LEADING_BYTES;
for (i = start, retval = 0; i < stop && retval == 0; i++)
{
case CHARTAB_RANGE_ROW:
{
- Lisp_Object val = ct->level1[XCHARSET_LEADING_BYTE (range->charset) - MIN_LEADING_BYTE];
+ Lisp_Object val = ct->level1[XCHARSET_LEADING_BYTE (range->charset)
+ - MIN_LEADING_BYTE];
if (!CHAR_TABLE_ENTRYP (val))
{
struct chartab_range rainj;