Skip to content
Snippets Groups Projects
Commit 173e3be6 authored by rswindell's avatar rswindell
Browse files

A few more code point to CP437 char mappings.

unicode_width() now correctly returns 2 for the CJK and other code points that
are typically displayed in 2 columns with non-proportional fonts.
parent 0db814c3
No related branches found
No related tags found
No related merge requests found
......@@ -333,8 +333,17 @@ size_t unicode_width(enum unicode_codepoint u)
case UNICODE_VARIATION_SELECTOR_16:
case UNICODE_ZERO_WIDTH_NO_BREAK_SPACE:
return 0;
/* TODO: return 2 for "fullwdith" chars */
default:
if( (u >= UNICODE_BLOCK_CJK_RADICALS_SUPPLEMENT_BEGIN && u <= UNICIDE_BLOCK_YI_RADICALS_END)
|| (u >= UNICIDE_BLOCK_HANGUL_SYLLABLES_BEGIN && u <= UNICIDE_BLOCK_HANGUL_SYLLABLES_END)
|| (u >= UNICODE_BLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_BEGIN && u <= UNICODE_BLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_END)
|| (u >= UNICODE_BLOCK_VERTICAL_FORMS_BEGIN && u <= UNICODE_BLOCK_VERTICAL_FORMS_END)
|| (u >= UNICODE_BLOCK_CJK_COMPATIBILITY_FORMS_BEGIN && u <= UNICODE_BLOCK_CJK_COMPATIBILITY_FORMS_END)
|| (u >= UNICODE_BLOCK_SMALL_FORM_VARIANTS_BEGIN && u <= UNICODE_BLOCK_SMALL_FORM_VARIANTS_END)
|| (u >= UNICODE_SUBBLOCK_FULLWIDTH_CHARS_BEGIN && u <= UNICODE_SUBBLOCK_FULLWIDTH_CHARS_END)
|| (u >= UNICODE_SUBBLOCK_FULLWIDTH_SYMBOLS_BEGIN && u <= UNICODE_SUBBLOCK_FULLWIDTH_SYMBOLS_END)
)
return 2;
return 1;
}
}
......@@ -359,6 +368,10 @@ char unicode_to_cp437(enum unicode_codepoint codepoint)
case UNICODE_INVERTED_QUESTION_MARK: return CP437_INVERTED_QUESTION_MARK;
case UNICODE_INVERTED_EXCLAMATION_MARK: return CP437_INVERTED_EXCLAMATION_MARK;
case UNICODE_DOUBLE_EXCLAMATION_MARK: return CP437_DOUBLE_EXCLAMATION_MARK;
case UNICODE_LEFT_POINTING_ANGLE_BRACKET: return '<';
case UNICODE_RIGHT_POINTING_ANGLE_BRACKET: return '>';
case UNICODE_COUNTERSINK: return 'v';
case UNICODE_APL_FUNCTIONAL_SYMBOL_I_BEAM: return 'I';
// Perform Upper -> Lower case mapping where an upper case equivalent doesn't exist in CP437:
case UNICODE_LATIN_CAPITAL_LETTER_A_WITH_GRAVE: return CP437_LATIN_SMALL_LETTER_A_WITH_GRAVE;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment