… | |
… | |
1364 | rxvt_font_xft::has_char (unicode_t unicode, const rxvt_fontprop *prop, bool &careful) const |
1364 | rxvt_font_xft::has_char (unicode_t unicode, const rxvt_fontprop *prop, bool &careful) const |
1365 | { |
1365 | { |
1366 | careful = false; |
1366 | careful = false; |
1367 | |
1367 | |
1368 | #if ENABLE_COMBINING && !UNICODE_3 |
1368 | #if ENABLE_COMBINING && !UNICODE_3 |
|
|
1369 | // handle non-BMP characters when our storage uses 16 bit |
1369 | if (ecb_expect_false (IS_COMPOSE (unicode))) |
1370 | if (ecb_expect_false (IS_COMPOSE (unicode))) |
1370 | if (compose_char *cc = rxvt_composite[unicode]) |
1371 | if (compose_char *cc = rxvt_composite[unicode]) |
1371 | if (cc->c2 == NOCHAR) |
1372 | if (cc->c2 == NOCHAR) |
1372 | unicode = cc->c1; |
1373 | unicode = cc->c1; |
1373 | #endif |
1374 | #endif |
… | |
… | |
1432 | { |
1433 | { |
1433 | int cwidth = term->fwidth; |
1434 | int cwidth = term->fwidth; |
1434 | FcChar32 fc = *text++; len--; |
1435 | FcChar32 fc = *text++; len--; |
1435 | |
1436 | |
1436 | #if ENABLE_COMBINING && !UNICODE_3 |
1437 | #if ENABLE_COMBINING && !UNICODE_3 |
|
|
1438 | // handle non-BMP characters when our storage uses 16 bit |
1437 | if (ecb_expect_false (IS_COMPOSE (fc))) |
1439 | if (ecb_expect_false (IS_COMPOSE (fc))) |
1438 | if (compose_char *cc = rxvt_composite[fc]) // should always be true, but better be safe than sorry |
1440 | if (compose_char *cc = rxvt_composite[fc]) // should always be true, but better be safe than sorry |
1439 | fc = cc->c1; // c2 must be NOCHAR, as has_char handles it that way |
1441 | fc = cc->c1; // c2 must be NOCHAR, as has_char handles it that way |
1440 | #endif |
1442 | #endif |
1441 | |
1443 | |