link_font(unitab_xterm, unitab_oemcp, ATTR_OEMCP);
}
+ if (dbcs_screenfont && font_codepage != line_codepage) {
+ /* F***ing Microsoft fonts, Japanese and Korean codepage fonts
+ * have a currency symbol at 0x5C but their unicode value is
+ * still given as U+005C not the correct U+00A5. */
+ unitab_line['\\'] = ATTR_OEMCP + '\\';
+ }
+
/* Last chance, if !unicode then try poorman links. */
if (cfg.vtmode != VT_UNICODE) {
static char poorman_scoacs[] =
static void link_font(WCHAR * line_tbl, WCHAR * font_tbl, WCHAR attr)
{
- int i, j, k;
- for (k = 0; k < 256; k++) {
- i = ((k + 32) & 0xFF);
- if (DIRECT_FONT(line_tbl[i]))
+ int font_index, line_index, i;
+ for (line_index = 0; line_index < 256; line_index++) {
+ if (DIRECT_FONT(line_tbl[line_index]))
continue;
- for (j = 0; j < 256; j++) {
- if (line_tbl[i] == font_tbl[j]) {
- line_tbl[i] = (WCHAR) (attr + j);
+ for(i = 0; i < 256; i++) {
+ font_index = ((32 + i) & 0xFF);
+ if (line_tbl[line_index] == font_tbl[font_index]) {
+ line_tbl[line_index] = (WCHAR) (attr + font_index);
break;
}
}
0x43, 0x2f, 0x00a2}, {
0x43, 0x7c, 0x00a2}, {
0x4c, 0x2d, 0x00a3}, {
- 0x4c, 0x3d, 0x00a3}, {
+ 0x4c, 0x3d, 0x20a4}, {
0x58, 0x4f, 0x00a4}, {
0x58, 0x30, 0x00a4}, {
0x59, 0x2d, 0x00a5}, {