8119 |
If Nth element is a list of charset IDs, N is the first byte |
If Nth element is a list of charset IDs, N is the first byte |
8120 |
of one of them. The list is sorted by dimensions of the |
of one of them. The list is sorted by dimensions of the |
8121 |
charsets. A charset of smaller dimension comes firtst. */ |
charsets. A charset of smaller dimension comes firtst. */ |
|
Lisp_Object list; |
|
|
int maybe_ascii_compatible = 1; |
|
|
|
|
|
for (list = Qnil, tail = charset_list; CONSP (tail); tail = XCDR (tail)) |
|
|
{ |
|
|
struct charset *charset = CHARSET_FROM_ID (XFASTINT (XCAR (tail))); |
|
|
|
|
|
if (charset->method == CHARSET_METHOD_SUPERSET) |
|
|
{ |
|
|
val = CHARSET_SUPERSET (charset); |
|
|
for (; CONSP (val); val = XCDR (val)) |
|
|
list = Fcons (XCAR (XCAR (val)), list); |
|
|
maybe_ascii_compatible = 0; |
|
|
} |
|
|
else |
|
|
list = Fcons (XCAR (tail), list); |
|
|
} |
|
|
|
|
8122 |
val = Fmake_vector (make_number (256), Qnil); |
val = Fmake_vector (make_number (256), Qnil); |
8123 |
|
|
8124 |
for (tail = Fnreverse (list); CONSP (tail); tail = XCDR (tail)) |
for (tail = charset_list; CONSP (tail); tail = XCDR (tail)) |
8125 |
{ |
{ |
8126 |
struct charset *charset = CHARSET_FROM_ID (XFASTINT (XCAR (tail))); |
struct charset *charset = CHARSET_FROM_ID (XFASTINT (XCAR (tail))); |
8127 |
int dim = CHARSET_DIMENSION (charset); |
int dim = CHARSET_DIMENSION (charset); |
8128 |
int idx = (dim - 1) * 4; |
int idx = (dim - 1) * 4; |
8129 |
|
|
8130 |
if (CHARSET_ASCII_COMPATIBLE_P (charset) |
if (CHARSET_ASCII_COMPATIBLE_P (charset)) |
|
&& maybe_ascii_compatible) |
|
8131 |
CODING_ATTR_ASCII_COMPAT (attrs) = Qt; |
CODING_ATTR_ASCII_COMPAT (attrs) = Qt; |
8132 |
|
|
8133 |
for (i = charset->code_space[idx]; |
for (i = charset->code_space[idx]; |