Lisp_Object Vcharset_hash_table;
+#ifdef UTF2000
+static Charset_ID next_allocated_leading_byte;
+#else
static Charset_ID next_allocated_1_byte_leading_byte;
static Charset_ID next_allocated_2_byte_leading_byte;
+#endif
/* Composite characters are characters constructed by overstriking two
or more regular characters.
{
Charset_ID lb;
+#ifdef UTF2000
+ if (next_allocated_leading_byte > MAX_LEADING_BYTE_PRIVATE)
+ lb = 0;
+ else
+ lb = next_allocated_leading_byte++;
+#else
if (dimension == 1)
{
if (next_allocated_1_byte_leading_byte > MAX_LEADING_BYTE_PRIVATE_1)
else
lb = next_allocated_2_byte_leading_byte++;
}
+#endif
if (!lb)
signal_simple_error
Lisp_Object ccl_program = Qnil;
Lisp_Object short_name = Qnil, long_name = Qnil;
#ifdef UTF2000
+ Emchar code_offset = 0;
unsigned char byte_offset = 0;
#endif
{
if (chars == 94)
{
- /* id = CHARSET_ID_OFFSET_94 + final; */
- id = get_unallocated_leading_byte (dimension);
+ if (code_offset == 0)
+ id = CHARSET_ID_OFFSET_94 + final;
+ else
+ id = get_unallocated_leading_byte (dimension);
}
else if (chars == 96)
{
- id = get_unallocated_leading_byte (dimension);
+ if (code_offset == 0)
+ id = CHARSET_ID_OFFSET_96 + final;
+ else
+ id = get_unallocated_leading_byte (dimension);
}
else
{
{
if (chars == 94)
{
- id = get_unallocated_leading_byte (dimension);
+ if (code_offset == 0)
+ id = CHARSET_ID_OFFSET_94x94 + final;
+ else
+ id = get_unallocated_leading_byte (dimension);
}
else if (chars == 96)
{
charset_by_attributes[i][j][k] = Qnil;
#endif
- next_allocated_1_byte_leading_byte = MIN_LEADING_BYTE_PRIVATE_1;
#ifdef UTF2000
- next_allocated_2_byte_leading_byte = LEADING_BYTE_CHINESE_BIG5_2 + 1;
+ next_allocated_leading_byte = MIN_LEADING_BYTE_PRIVATE;
#else
+ next_allocated_1_byte_leading_byte = MIN_LEADING_BYTE_PRIVATE_1;
next_allocated_2_byte_leading_byte = MIN_LEADING_BYTE_PRIVATE_2;
#endif