996 |
struct font_info *font_info; |
struct font_info *font_info; |
997 |
int * two_byte_p; |
int * two_byte_p; |
998 |
{ |
{ |
999 |
int charset = CHAR_CHARSET (c); |
struct charset *charset = CHAR_CHARSET (c); |
1000 |
int codepage; |
int codepage; |
1001 |
int unicode_p = 0; |
int unicode_p = 0; |
1002 |
int internal_two_byte_p = 0; |
int internal_two_byte_p = 0; |
1015 |
|
|
1016 |
if (CHARSET_DIMENSION (charset) == 1) |
if (CHARSET_DIMENSION (charset) == 1) |
1017 |
{ |
{ |
1018 |
ccl->reg[0] = charset; |
ccl->reg[0] = CHARSET_ID (charset); |
1019 |
ccl->reg[1] = XCHAR2B_BYTE2 (char2b); |
ccl->reg[1] = XCHAR2B_BYTE2 (char2b); |
1020 |
ccl->reg[2] = -1; |
ccl->reg[2] = -1; |
1021 |
} |
} |
1022 |
else |
else |
1023 |
{ |
{ |
1024 |
ccl->reg[0] = charset; |
ccl->reg[0] = CHARSET_ID (charset); |
1025 |
ccl->reg[1] = XCHAR2B_BYTE1 (char2b); |
ccl->reg[1] = XCHAR2B_BYTE1 (char2b); |
1026 |
ccl->reg[2] = XCHAR2B_BYTE2 (char2b); |
ccl->reg[2] = XCHAR2B_BYTE2 (char2b); |
1027 |
} |
} |
1028 |
|
|
1029 |
ccl_driver (ccl, NULL, NULL, 0, 0, NULL); |
ccl_driver (ccl, NULL, NULL, 0, 0, Qnil); |
1030 |
|
|
1031 |
/* We assume that MSBs are appropriately set/reset by CCL |
/* We assume that MSBs are appropriately set/reset by CCL |
1032 |
program. */ |
program. */ |
1050 |
STORE_XCHAR2B (char2b, XCHAR2B_BYTE1 (char2b), XCHAR2B_BYTE2 (char2b) | 0x80); |
STORE_XCHAR2B (char2b, XCHAR2B_BYTE1 (char2b), XCHAR2B_BYTE2 (char2b) | 0x80); |
1051 |
else if (enc == 4) |
else if (enc == 4) |
1052 |
{ |
{ |
1053 |
int sjis1, sjis2; |
int code = (int) char2b; |
1054 |
|
|
1055 |
ENCODE_SJIS (XCHAR2B_BYTE1 (char2b), XCHAR2B_BYTE2 (char2b), |
JIS_TO_SJIS (code); |
1056 |
sjis1, sjis2); |
STORE_XCHAR2B (char2b, (code >> 8), (code & 0xFF)); |
|
STORE_XCHAR2B (char2b, sjis1, sjis2); |
|
1057 |
} |
} |
1058 |
} |
} |
1059 |
codepage = font_info->codepage; |
codepage = font_info->codepage; |
1061 |
/* If charset is not ASCII or Latin-1, may need to move it into |
/* If charset is not ASCII or Latin-1, may need to move it into |
1062 |
Unicode space. */ |
Unicode space. */ |
1063 |
if ( font && !font->bdf && w32_use_unicode_for_codepage (codepage) |
if ( font && !font->bdf && w32_use_unicode_for_codepage (codepage) |
1064 |
&& charset != CHARSET_ASCII && charset != charset_latin_iso8859_1 |
&& c >= 0x100) |
|
&& charset != CHARSET_8_BIT_CONTROL && charset != CHARSET_8_BIT_GRAPHIC) |
|
1065 |
{ |
{ |
1066 |
char temp[3]; |
char temp[3]; |
1067 |
temp[0] = XCHAR2B_BYTE1 (char2b); |
temp[0] = XCHAR2B_BYTE1 (char2b); |
5229 |
register char *fontname; |
register char *fontname; |
5230 |
{ |
{ |
5231 |
struct font_info *fontp |
struct font_info *fontp |
5232 |
= FS_LOAD_FONT (f, 0, fontname, -1); |
= FS_LOAD_FONT (f, fontname); |
5233 |
|
|
5234 |
if (!fontp) |
if (!fontp) |
5235 |
return Qnil; |
return Qnil; |