711 lines
32 KiB
C++
711 lines
32 KiB
C++
/***********************************************************************
|
||
* fcharmap.cpp - Character mapping and encoding *
|
||
* *
|
||
* This file is part of the FINAL CUT widget toolkit *
|
||
* *
|
||
* Copyright 2015-2020 Markus Gans *
|
||
* *
|
||
* FINAL CUT is free software; you can redistribute it and/or modify *
|
||
* it under the terms of the GNU Lesser General Public License as *
|
||
* published by the Free Software Foundation; either version 3 of *
|
||
* the License, or (at your option) any later version. *
|
||
* *
|
||
* FINAL CUT is distributed in the hope that it will be useful, but *
|
||
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||
* GNU Lesser General Public License for more details. *
|
||
* *
|
||
* You should have received a copy of the GNU Lesser General Public *
|
||
* License along with this program. If not, see *
|
||
* <http://www.gnu.org/licenses/>. *
|
||
***********************************************************************/
|
||
|
||
#include <array>
|
||
|
||
#include "final/fc.h"
|
||
#include "final/ftypes.h"
|
||
#include "final/fcharmap.h"
|
||
|
||
namespace finalcut
|
||
{
|
||
|
||
namespace fc
|
||
{
|
||
|
||
std::array<CharEncodeMap, 115> character =
|
||
{{
|
||
// .--------------------- Unicode (UTF-8)
|
||
// | .--------------- VT100
|
||
// | | .--------- PC (IBM-437)
|
||
// | | | .---- ASCII (7-Bit)
|
||
// | | | |
|
||
{0x20ac, 0, 0xee, 'E'}, // € - Euro
|
||
{0x00a3, '}', 0x9c, 'P'}, // £ - Pound
|
||
{0x00a7, '$', 0x15, '$'}, // § - Section
|
||
{0x25d8, '*', 0x08, '*'}, // ◘ - InverseBullet
|
||
{0x25d9, '*', 0x0a, '*'}, // ◙ - InverseWhiteCircle
|
||
{0x203c, '!', 0x13, '!'}, // ‼ - DoubleExclamationMark
|
||
{0x2195, 'I', 0x12, 'I'}, // ↕ - UpDownArrow
|
||
{0x2194, '-', 0x1d, '-'}, // ↔ - LeftRightArrow
|
||
{0x25ac, '_', 0x16, '_'}, // ▬ - BlackRectangle
|
||
{0x2191, '^', 0x18, '^'}, // ↑ - UpwardsArrow
|
||
{0x2193, 'v', 0x19, 'v'}, // ↓ - DownwardsArrow
|
||
{0x2192, '>', 0x1a, '>'}, // → - RightwardsArrow
|
||
{0x2190, '<', 0x1b, '<'}, // ← - LeftwardsArrow
|
||
{0x203a, '>', 0xaf, '>'}, // › - SingleRightAngleQuotationMark
|
||
{0x2039, '<', 0xae, '<'}, // ‹ - SingleLeftAngleQuotationMark
|
||
{0x2026, '.', '.', '.'}, // … - HorizontalEllipsis
|
||
{0x03c0, '{', 0xe3, 'n'}, // π - Pi
|
||
{0x207F, 'I', 0xfc, ' '}, // ⁿ - SuperscriptLatinSmallLetterN
|
||
{0x2265, 'z', 0xf2, '>'}, // ≥ - GreaterThanOrEqualTo
|
||
{0x2264, 'y', 0xf3, '<'}, // ≤ - LessThanOrEqualTo
|
||
{0x2260, 0, 0xd8, '#'}, // ≠ - NotEqualTo
|
||
{0x00b1, 'g', 0xf1, '#'}, // ± - PlusMinus
|
||
{0x00f7, '/', 0xf6, '/'}, // ÷ - Division sign
|
||
{0x00d7, 0, 'x', 'x'}, // × - Multiplication sign
|
||
{0x02e3, '~', 0xfc, '`'}, // ˣ - Modifier letter small x
|
||
{0x00b0, 'f', 0xb0, 'o'}, // ° - Degree
|
||
{0x2022, '`', 0x04, '*'}, // • - Bullet
|
||
{0x00b7, '`', 0xfa, '.'}, // · - small Bullet
|
||
{0x25cf, '`', 0x04, '*'}, // ● - BlackCircle
|
||
{0x2666, '`', 0x04, '*'}, // ◆ - BlackDiamondSuit
|
||
{0x2424, 'h', ' ', ' '}, //  - SymbolForNewline (1)
|
||
{0x240b, 'i', ' ', ' '}, // ␋ - SymbolForVerticalTab (1)
|
||
{0x2409, 'b', ' ', ' '}, // ␉ - SymbolForHorizontalTab (1)
|
||
{0x240c, 'c', ' ', ' '}, // ␌ - SymbolForFormFeed (1)
|
||
{0x240d, 'd', ' ', ' '}, // ␍ - SymbolForCarriageReturn (1)
|
||
{0x240a, 'e', ' ', ' '}, // ␊ - SymbolForLineFeed (1)
|
||
{0x2592, 'a', 0xb0, '#'}, // ▒ - MediumShade
|
||
{0x2588, '0', 0xdb, '#'}, // █ - FullBlock
|
||
{0x25ae, '_', 0xfe, '#'}, // ▮ - BlackVerticalRectangle (1)
|
||
{0x258c, 0, 0xdd, ' '}, // ▌ - LeftHalfBlock
|
||
{0x2590, 0, 0xde, ' '}, // ▐ - RightHalfBlock
|
||
{0x2584, 0, 0xdc, ' '}, // ▄ - LowerHalfBlock
|
||
{0x2580, 0, 0xdf, ' '}, // ▀ - UpperHalfBlock
|
||
{0x2500, 'q', 0xc4, '-'}, // ─ - BoxDrawingsHorizontal
|
||
{0x2502, 'x', 0xb3, '|'}, // │ - BoxDrawingsVertical
|
||
{0x250c, 'l', 0xda, '.'}, // ┌ - BoxDrawingsDownAndRight
|
||
{0x2510, 'k', 0xbf, '.'}, // ┐ - BoxDrawingsDownAndLeft
|
||
{0x2514, 'm', 0xc0, '`'}, // └ - BoxDrawingsUpAndRight
|
||
{0x2518, 'j', 0xd9, '\''}, // ┘ - BoxDrawingsUpAndLeft
|
||
{0x253c, 'n', 0xc5, '+'}, // ┼ - BoxDrawingsCross
|
||
{0x252c, 'w', 0xc2, '+'}, // ┬ - BoxDrawingsDownAndHorizontal
|
||
{0x2524, 'u', 0xb4, '+'}, // ┤ - BoxDrawingsVerticalAndLeft
|
||
{0x251c, 't', 0xc3, '+'}, // ├ - BoxDrawingsVerticalAndRight
|
||
{0x2534, 'v', 0xc1, '+'}, // ┴ - BoxDrawingsUpAndHorizontal
|
||
{0x23ba, 'o', '~', '~'}, // ⎺ - HorizontalScanLine1 (1)
|
||
{0x23bb, 'p', 0xc4, '-'}, // ⎻ - HorizontalScanLine3 (1)
|
||
{0x23bc, 'r', 0xc4, '-'}, // ⎼ - HorizontalScanLine7 (1)
|
||
{0x23bd, 's', '_', '_'}, // ⎽ - HorizontalScanLine9 (1)
|
||
{0x25b2, '-', 0x1e, '^'}, // ▲ - BlackUpPointingTriangle
|
||
{0x25bc, '.', 0x1f, 'v'}, // ▼ - BlackDownPointingTriangle
|
||
{0x25b6, '+', 0x10, '>'}, // ▶ - BlackRightPointingTriangle
|
||
{0x25c0, ',', 0x11, '<'}, // ◀ - BlackLeftPointingTriangle (1)
|
||
{0x25ba, '+', 0x10, '>'}, // ► - BlackRightPointingPointer (1)
|
||
{0x25c4, ',', 0x11, '<'}, // ◄ - BlackLeftPointingPointer
|
||
{0xe1b3, 'x', 0xb3, '|'}, // │ - NF_border_line_vertical (2)
|
||
{0xe1b4, 0, 0xb4, 0}, // ⊐ - NF_rev_left_arrow2 (2)
|
||
{0xe1b5, 0, 0xb5, 0}, // ► - NF_rev_right_arrow2 (2)
|
||
{0xe1b6, 0, 0xb6, 0}, // ╵ - NF_border_line_left_up (2)
|
||
{0xe1b7, 0, 0xb7, 0}, // ) - NF_radio_button3 (2)
|
||
{0xe1b8, 0, 0xb8, 0}, // ⎤ - NF_rev_border_corner_upper_right (2)
|
||
{0xe1b9, 0, 0xb9, 0}, // ⎹ - NF_rev_border_line_right (2)
|
||
{0xe1ba, 0, 0xba, 0}, // ┤ - NF_rev_border_line_vertical_left (2)
|
||
{0xe1bb, 0, 0xbb, 0}, // ⎦ - NF_rev_border_corner_lower_right (2)
|
||
{0xe1bc, 0, 0xbc, 0}, // ⎸ - NF_border_line_left (2)
|
||
{0xe1bd, 0, 0xbd, 0}, //⎹◣ - NF_rev_up_arrow2 (2)
|
||
{0xe1be, 0, 0xbe, 0}, //⎹◤ - NF_rev_down_arrow2 (2)
|
||
{0xe1bf, 0, 0xbf, 0}, // ╷ - NF_border_line_left_down (2)
|
||
{0xe1c0, 0, 0xc0, 0}, // └ - NF_border_corner_middle_lower_left (2)
|
||
{0xe1c1, 0, 0xc1, 0}, // ◢⎸ - NF_rev_up_arrow1 (2)
|
||
{0xe1c2, 0, 0xc2, 0}, // ◥⎸ - NF_rev_down_arrow1 (2)
|
||
{0xe1c3, 0, 0xc3, 0}, // ├ - NF_border_line_vertical_right (2)
|
||
{0xe1c4, 'q', 0xc4, '-'}, // ─ - NF_border_line_horizontal (2)
|
||
{0xe1c5, 0, 0xc5, 0}, // = - NF_border_line_up_and_down (2)
|
||
{0xe1c6, 0, 0xc6, 0}, // = - NF_shadow_box_middle (2)
|
||
{0xe1c7, 0, 0xc7, 0}, // = - NF_shadow_box_hdd (2)
|
||
{0xe1c8, 0, 0xc8, 0}, // ◄ - NF_rev_left_arrow1 (2)
|
||
{0xe1c9, 0, 0xc9, 0}, // ⊏ - NF_rev_right_arrow1 (2)
|
||
{0xe1ca, 0, 0xca, 0}, // [ - NF_rev_menu_button1 (2)
|
||
{0xe1cb, 0, 0xcb, 0}, // - - NF_rev_menu_button2 (2)
|
||
{0xe1cc, 0, 0xcc, 0}, // ┌ - NF_border_corner_middle_upper_left (2)
|
||
{0xe1cd, 0, 0xcd, 0}, // = - NF_shadow_box_cd (2)
|
||
{0xe1ce, 0, 0xce, 0}, // [ - NF_shadow_box_left (2)
|
||
{0xe1cf, 0, 0xcf, 0}, // ┌ - NF_border_line_middle_left_down (2)
|
||
{0xe1d0, 0, 0xd0, 0}, // └ - NF_border_line_middle_right_up (2)
|
||
{0xe1d1, 0, 0xd1, 0}, // = - NF_shadow_box_net (2)
|
||
{0xe1d2, 0, 0xd2, 0}, // ◢ - NF_rev_up_pointing_triangle1 (2)
|
||
{0xe1d3, 0, 0xd3, 0}, // ⎣ - NF_border_corner_lower_left (2)
|
||
{0xe1d4, 0, 0xd4, 0}, // _ - NF_border_line_bottom (2)
|
||
{0xe1d5, 0, 0xd5, 0}, // O - NF_radio_button2 (2)
|
||
{0xe1d6, 0, 0xd6, 0}, // ● - NF_radio_button2_checked (2)
|
||
{0xe1d7, 0, 0xd7, 0}, // ◥ - NF_rev_down_pointing_triangle1 (2)
|
||
{0xe1d8, 0, 0xd8, 0}, // ¯ - NF_border_line_upper (2)
|
||
{0xe1d9, 0, 0xd9, 0}, // ( - NF_radio_button1 (2)
|
||
{0xe1da, 0, 0xda, 0}, // ⎡ - NF_border_corner_upper_left (2)
|
||
{0xe1dc, 0, 0xdc, 0}, // ✓ - NF_shadow_box_checked (2)
|
||
{0xe1e7, 0, 0xe7, 0}, // ║ - NF_rev_border_line_right_and_left (2)
|
||
{0xe1e8, 0, 0xe8, 0}, // ◣ - NF_rev_up_pointing_triangle2 (2)
|
||
{0xe1e9, 0, 0xe9, 0}, // ◤ - NF_rev_down_pointing_triangle2 (2)
|
||
{0xe1ea, 0, 0xea, 0}, // ┘ - NF_border_corner_middle_lower_right (2)
|
||
{0xe1eb, 0, 0xeb, 0}, // ┐ - NF_border_corner_middle_upper_right (2)
|
||
{0xe1f4, 0, 0xf4, 0}, // ] - NF_rev_menu_button3 (2)
|
||
{0xe1f5, 0, 0xf5, 0}, // ] - NF_shadow_box_right (2)
|
||
{0xe1fb, 0, 0xfb, 0}, // ✓ - NF_check_mark (2)
|
||
{0xe1fc, '~', 0xfc, '`'}, // ˣ - NF_xsuperior (2)
|
||
{0x221a, 0, 0xfb, 'x'} // √ - square root
|
||
}};
|
||
|
||
/*
|
||
* (1) Not defined in Windows Glyph List 4 (WGL4)
|
||
* (2) Only supported in use with newfont
|
||
*/
|
||
|
||
|
||
constexpr std::array<DECSpecialGraphics, 39> dec_special_graphics =
|
||
{{
|
||
{VT100Key::rarrow , UniChar::BlackRightPointingPointer}, // ►
|
||
{VT100Key::larrow , UniChar::BlackLeftPointingPointer}, // ◄
|
||
{VT100Key::uarrow , UniChar::BlackUpPointingTriangle}, // ▲
|
||
{VT100Key::darrow , UniChar::BlackDownPointingTriangle}, // ▼
|
||
{VT100Key::block , UniChar::FullBlock}, // █
|
||
{VT100Key::nsup , UniChar::SuperscriptLatinSmallLetterN}, // ⁿ
|
||
{VT100Key::blackrect, UniChar::BlackVerticalRectangle}, // ▮
|
||
{VT100Key::diamond , UniChar::BlackDiamondSuit}, // ◆
|
||
{VT100Key::ckboard , UniChar::MediumShade}, // ▒
|
||
{VT100Key::htab , UniChar::SymbolForHorizontalTab}, // ␉
|
||
{VT100Key::ff , UniChar::SymbolForFormFeed}, // ␌
|
||
{VT100Key::cr , UniChar::SymbolForCarriageReturn}, // ␍
|
||
{VT100Key::lf , UniChar::SymbolForLineFeed}, // ␊
|
||
{VT100Key::degree , UniChar::Degree}, // °
|
||
{VT100Key::plminus , UniChar::PlusMinus}, // ±
|
||
{VT100Key::board , UniChar::SymbolForNewline}, // 
|
||
{VT100Key::lantern , UniChar::SymbolForVerticalTab}, // ␋
|
||
{VT100Key::lrcorner , UniChar::BoxDrawingsUpAndLeft}, // ┘
|
||
{VT100Key::urcorner , UniChar::BoxDrawingsDownAndLeft}, // ┐
|
||
{VT100Key::ulcorner , UniChar::BoxDrawingsDownAndRight}, // ┌
|
||
{VT100Key::llcorner , UniChar::BoxDrawingsUpAndRight}, // └
|
||
{VT100Key::plus , UniChar::BoxDrawingsCross}, // ┼
|
||
{VT100Key::s1 , UniChar::HorizontalScanLine1}, // ⎺
|
||
{VT100Key::s3 , UniChar::HorizontalScanLine3}, // ⎻
|
||
{VT100Key::hline , UniChar::BoxDrawingsHorizontal}, // ─
|
||
{VT100Key::s7 , UniChar::HorizontalScanLine7}, // ⎼
|
||
{VT100Key::s9 , UniChar::HorizontalScanLine9}, // ⎽
|
||
{VT100Key::ltee , UniChar::BoxDrawingsVerticalAndRight}, // ├
|
||
{VT100Key::rtee , UniChar::BoxDrawingsVerticalAndLeft}, // ┤
|
||
{VT100Key::btee , UniChar::BoxDrawingsUpAndHorizontal}, // ┴
|
||
{VT100Key::ttee , UniChar::BoxDrawingsDownAndHorizontal}, // ┬
|
||
{VT100Key::vline , UniChar::BoxDrawingsVertical}, // │
|
||
{VT100Key::lequal , UniChar::LessThanOrEqualTo}, // ≤
|
||
{VT100Key::gequal , UniChar::GreaterThanOrEqualTo}, // ≥
|
||
{VT100Key::pi , UniChar::Pi}, // π
|
||
{VT100Key::nequal , UniChar::NotEqualTo}, // ≠
|
||
{VT100Key::sterling , UniChar::Pound}, // £
|
||
{VT100Key::bullet , UniChar::SmallBullet}, // ·
|
||
{VT100Key::diamond , UniChar::Bullet} // ◆
|
||
}};
|
||
|
||
constexpr std::array<std::array<wchar_t, 2>, 256> cp437_ucs =
|
||
{{
|
||
{{0x00, 0x0000}}, // null
|
||
{{0x01, 0x263a}}, // white smiling face
|
||
{{0x02, 0x263b}}, // black smiling face
|
||
{{0x03, 0x2665}}, // black heart suit
|
||
{{0x04, 0x2666}}, // black diamond suit
|
||
{{0x05, 0x2663}}, // black club suit
|
||
{{0x06, 0x2660}}, // black spade suit
|
||
{{0x07, 0x2022}}, // bullet
|
||
{{0x08, 0x25d8}}, // inverse bullet
|
||
{{0x09, 0x25cb}}, // white circle
|
||
{{0x0a, 0x25d9}}, // inverse white circle
|
||
{{0x0b, 0x2642}}, // male sign
|
||
{{0x0c, 0x2640}}, // female sign
|
||
{{0x0d, 0x266a}}, // eighth note
|
||
{{0x0e, 0x266b}}, // beamed eighth notes
|
||
{{0x0f, 0x263c}}, // white sun with rays
|
||
{{0x10, 0x25ba}}, // black right-pointing pointer
|
||
{{0x11, 0x25c4}}, // black left-pointing pointer
|
||
{{0x12, 0x2195}}, // up down arrow
|
||
{{0x13, 0x203c}}, // double exclamation mark
|
||
{{0x14, 0x00b6}}, // pilcrow sign
|
||
{{0x15, 0x00a7}}, // section sign
|
||
{{0x16, 0x25ac}}, // black rectangle
|
||
{{0x17, 0x21a8}}, // up down arrow with base
|
||
{{0x18, 0x2191}}, // upwards arrow
|
||
{{0x19, 0x2193}}, // downwards arrow
|
||
{{0x1a, 0x2192}}, // rightwards arrow
|
||
{{0x1b, 0x2190}}, // leftwards arrow
|
||
{{0x1c, 0x221f}}, // right angle
|
||
{{0x1d, 0x2194}}, // left right arrow
|
||
{{0x1e, 0x25b2}}, // black up-pointing triangle
|
||
{{0x1f, 0x25bc}}, // black down-pointing triangle
|
||
{{0x20, 0x0020}}, // space
|
||
{{0x21, 0x0021}}, // exclamation mark
|
||
{{0x22, 0x0022}}, // quotation mark
|
||
{{0x23, 0x0023}}, // number sign
|
||
{{0x24, 0x0024}}, // dollar sign
|
||
{{0x25, 0x0025}}, // percent sign
|
||
{{0x26, 0x0026}}, // ampersand
|
||
{{0x27, 0x0027}}, // apostrophe
|
||
{{0x28, 0x0028}}, // left parenthesis
|
||
{{0x29, 0x0029}}, // right parenthesis
|
||
{{0x2a, 0x002a}}, // asterisk
|
||
{{0x2b, 0x002b}}, // plus sign
|
||
{{0x2c, 0x002c}}, // comma
|
||
{{0x2d, 0x002d}}, // hyphen-minus
|
||
{{0x2e, 0x002e}}, // full stop
|
||
{{0x2f, 0x002f}}, // solidus
|
||
{{0x30, 0x0030}}, // digit zero
|
||
{{0x31, 0x0031}}, // digit one
|
||
{{0x32, 0x0032}}, // digit two
|
||
{{0x33, 0x0033}}, // digit three
|
||
{{0x34, 0x0034}}, // digit four
|
||
{{0x35, 0x0035}}, // digit five
|
||
{{0x36, 0x0036}}, // digit six
|
||
{{0x37, 0x0037}}, // digit seven
|
||
{{0x38, 0x0038}}, // digit eight
|
||
{{0x39, 0x0039}}, // digit nine
|
||
{{0x3a, 0x003a}}, // colon
|
||
{{0x3b, 0x003b}}, // semicolon
|
||
{{0x3c, 0x003c}}, // less-than sign
|
||
{{0x3d, 0x003d}}, // equals sign
|
||
{{0x3e, 0x003e}}, // greater-than sign
|
||
{{0x3f, 0x003f}}, // question mark
|
||
{{0x40, 0x0040}}, // commercial at
|
||
{{0x41, 0x0041}}, // latin capital letter a
|
||
{{0x42, 0x0042}}, // latin capital letter b
|
||
{{0x43, 0x0043}}, // latin capital letter c
|
||
{{0x44, 0x0044}}, // latin capital letter d
|
||
{{0x45, 0x0045}}, // latin capital letter e
|
||
{{0x46, 0x0046}}, // latin capital letter f
|
||
{{0x47, 0x0047}}, // latin capital letter g
|
||
{{0x48, 0x0048}}, // latin capital letter h
|
||
{{0x49, 0x0049}}, // latin capital letter i
|
||
{{0x4a, 0x004a}}, // latin capital letter j
|
||
{{0x4b, 0x004b}}, // latin capital letter k
|
||
{{0x4c, 0x004c}}, // latin capital letter l
|
||
{{0x4d, 0x004d}}, // latin capital letter m
|
||
{{0x4e, 0x004e}}, // latin capital letter n
|
||
{{0x4f, 0x004f}}, // latin capital letter o
|
||
{{0x50, 0x0050}}, // latin capital letter p
|
||
{{0x51, 0x0051}}, // latin capital letter q
|
||
{{0x52, 0x0052}}, // latin capital letter r
|
||
{{0x53, 0x0053}}, // latin capital letter s
|
||
{{0x54, 0x0054}}, // latin capital letter t
|
||
{{0x55, 0x0055}}, // latin capital letter u
|
||
{{0x56, 0x0056}}, // latin capital letter v
|
||
{{0x57, 0x0057}}, // latin capital letter w
|
||
{{0x58, 0x0058}}, // latin capital letter x
|
||
{{0x59, 0x0059}}, // latin capital letter y
|
||
{{0x5a, 0x005a}}, // latin capital letter z
|
||
{{0x5b, 0x005b}}, // left square bracket
|
||
{{0x5c, 0x005c}}, // reverse solidus
|
||
{{0x5d, 0x005d}}, // right square bracket
|
||
{{0x5e, 0x005e}}, // circumflex accent
|
||
{{0x5f, 0x005f}}, // low line
|
||
{{0x60, 0x0060}}, // grave accent
|
||
{{0x61, 0x0061}}, // latin small letter a
|
||
{{0x62, 0x0062}}, // latin small letter b
|
||
{{0x63, 0x0063}}, // latin small letter c
|
||
{{0x64, 0x0064}}, // latin small letter d
|
||
{{0x65, 0x0065}}, // latin small letter e
|
||
{{0x66, 0x0066}}, // latin small letter f
|
||
{{0x67, 0x0067}}, // latin small letter g
|
||
{{0x68, 0x0068}}, // latin small letter h
|
||
{{0x69, 0x0069}}, // latin small letter i
|
||
{{0x6a, 0x006a}}, // latin small letter j
|
||
{{0x6b, 0x006b}}, // latin small letter k
|
||
{{0x6c, 0x006c}}, // latin small letter l
|
||
{{0x6d, 0x006d}}, // latin small letter m
|
||
{{0x6e, 0x006e}}, // latin small letter n
|
||
{{0x6f, 0x006f}}, // latin small letter o
|
||
{{0x70, 0x0070}}, // latin small letter p
|
||
{{0x71, 0x0071}}, // latin small letter q
|
||
{{0x72, 0x0072}}, // latin small letter r
|
||
{{0x73, 0x0073}}, // latin small letter s
|
||
{{0x74, 0x0074}}, // latin small letter t
|
||
{{0x75, 0x0075}}, // latin small letter u
|
||
{{0x76, 0x0076}}, // latin small letter v
|
||
{{0x77, 0x0077}}, // latin small letter w
|
||
{{0x78, 0x0078}}, // latin small letter x
|
||
{{0x79, 0x0079}}, // latin small letter y
|
||
{{0x7a, 0x007a}}, // latin small letter z
|
||
{{0x7b, 0x007b}}, // left curly bracket
|
||
{{0x7c, 0x007c}}, // vertical line
|
||
{{0x7d, 0x007d}}, // right curly bracket
|
||
{{0x7e, 0x007e}}, // tilde
|
||
{{0x7f, 0x007f}}, // house
|
||
{{0x80, 0x00c7}}, // latin capital letter c with cedilla
|
||
{{0x81, 0x00fc}}, // latin small letter u with diaeresis
|
||
{{0x82, 0x00e9}}, // latin small letter e with acute
|
||
{{0x83, 0x00e2}}, // latin small letter a with circumflex
|
||
{{0x84, 0x00e4}}, // latin small letter a with diaeresis
|
||
{{0x85, 0x00e0}}, // latin small letter a with grave
|
||
{{0x86, 0x00e5}}, // latin small letter a with ring above
|
||
{{0x87, 0x00e7}}, // latin small letter c with cedilla
|
||
{{0x88, 0x00ea}}, // latin small letter e with circumflex
|
||
{{0x89, 0x00eb}}, // latin small letter e with diaeresis
|
||
{{0x8a, 0x00e8}}, // latin small letter e with grave
|
||
{{0x8b, 0x00ef}}, // latin small letter i with diaeresis
|
||
{{0x8c, 0x00ee}}, // latin small letter i with circumflex
|
||
{{0x8d, 0x00ec}}, // latin small letter i with grave
|
||
{{0x8e, 0x00c4}}, // latin capital letter a with diaeresis
|
||
{{0x8f, 0x00c5}}, // latin capital letter a with ring above
|
||
{{0x90, 0x00c9}}, // latin capital letter e with acute
|
||
{{0x91, 0x00e6}}, // latin small ligature ae
|
||
{{0x92, 0x00c6}}, // latin capital ligature ae
|
||
{{0x93, 0x00f4}}, // latin small letter o with circumflex
|
||
{{0x94, 0x00f6}}, // latin small letter o with diaeresis
|
||
{{0x95, 0x00f2}}, // latin small letter o with grave
|
||
{{0x96, 0x00fb}}, // latin small letter u with circumflex
|
||
{{0x97, 0x00f9}}, // latin small letter u with grave
|
||
{{0x98, 0x00ff}}, // latin small letter y with diaeresis
|
||
{{0x99, 0x00d6}}, // latin capital letter o with diaeresis
|
||
{{0x9a, 0x00dc}}, // latin capital letter u with diaeresis
|
||
{{0x9b, 0x00a2}}, // cent sign
|
||
{{0x9c, 0x00a3}}, // pound sign
|
||
{{0x9d, 0x00a5}}, // yen sign
|
||
{{0x9e, 0x20a7}}, // peseta sign
|
||
{{0x9f, 0x0192}}, // latin small letter f with hook
|
||
{{0xa0, 0x00e1}}, // latin small letter a with acute
|
||
{{0xa1, 0x00ed}}, // latin small letter i with acute
|
||
{{0xa2, 0x00f3}}, // latin small letter o with acute
|
||
{{0xa3, 0x00fa}}, // latin small letter u with acute
|
||
{{0xa4, 0x00f1}}, // latin small letter n with tilde
|
||
{{0xa5, 0x00d1}}, // latin capital letter n with tilde
|
||
{{0xa6, 0x00aa}}, // feminine ordinal indicator
|
||
{{0xa7, 0x00ba}}, // masculine ordinal indicator
|
||
{{0xa8, 0x00bf}}, // inverted question mark
|
||
{{0xa9, 0x2310}}, // reversed not sign
|
||
{{0xaa, 0x00ac}}, // not sign
|
||
{{0xab, 0x00bd}}, // vulgar fraction one half
|
||
{{0xac, 0x00bc}}, // vulgar fraction one quarter
|
||
{{0xad, 0x00a1}}, // inverted exclamation mark
|
||
{{0xae, 0x00ab}}, // left-pointing double angle quotation mark
|
||
{{0xaf, 0x00bb}}, // right-pointing double angle quotation mark
|
||
{{0xb0, 0x2591}}, // light shade
|
||
{{0xb1, 0x2592}}, // medium shade
|
||
{{0xb2, 0x2593}}, // dark shade
|
||
{{0xb3, 0x2502}}, // box drawings light vertical
|
||
{{0xb4, 0x2524}}, // box drawings light vertical and left
|
||
{{0xb5, 0x2561}}, // box drawings vertical single and left double
|
||
{{0xb6, 0x2562}}, // box drawings vertical double and left single
|
||
{{0xb7, 0x2556}}, // box drawings down double and left single
|
||
{{0xb8, 0x2555}}, // box drawings down single and left double
|
||
{{0xb9, 0x2563}}, // box drawings double vertical and left
|
||
{{0xba, 0x2551}}, // box drawings double vertical
|
||
{{0xbb, 0x2557}}, // box drawings double down and left
|
||
{{0xbc, 0x255d}}, // box drawings double up and left
|
||
{{0xbd, 0x255c}}, // box drawings up double and left single
|
||
{{0xbe, 0x255b}}, // box drawings up single and left double
|
||
{{0xbf, 0x2510}}, // box drawings light down and left
|
||
{{0xc0, 0x2514}}, // box drawings light up and right
|
||
{{0xc1, 0x2534}}, // box drawings light up and horizontal
|
||
{{0xc2, 0x252c}}, // box drawings light down and horizontal
|
||
{{0xc3, 0x251c}}, // box drawings light vertical and right
|
||
{{0xc4, 0x2500}}, // box drawings light horizontal
|
||
{{0xc5, 0x253c}}, // box drawings light vertical and horizontal
|
||
{{0xc6, 0x255e}}, // box drawings vertical single and right double
|
||
{{0xc7, 0x255f}}, // box drawings vertical double and right single
|
||
{{0xc8, 0x255a}}, // box drawings double up and right
|
||
{{0xc9, 0x2554}}, // box drawings double down and right
|
||
{{0xca, 0x2569}}, // box drawings double up and horizontal
|
||
{{0xcb, 0x2566}}, // box drawings double down and horizontal
|
||
{{0xcc, 0x2560}}, // box drawings double vertical and right
|
||
{{0xcd, 0x2550}}, // box drawings double horizontal
|
||
{{0xce, 0x256c}}, // box drawings double vertical and horizontal
|
||
{{0xcf, 0x2567}}, // box drawings up single and horizontal double
|
||
{{0xd0, 0x2568}}, // box drawings up double and horizontal single
|
||
{{0xd1, 0x2564}}, // box drawings down single and horizontal double
|
||
{{0xd2, 0x2565}}, // box drawings down double and horizontal single
|
||
{{0xd3, 0x2559}}, // box drawings up double and right single
|
||
{{0xd4, 0x2558}}, // box drawings up single and right double
|
||
{{0xd5, 0x2552}}, // box drawings down single and right double
|
||
{{0xd6, 0x2553}}, // box drawings down double and right single
|
||
{{0xd7, 0x256b}}, // box drawings vertical double and horizontal single
|
||
{{0xd8, 0x256a}}, // box drawings vertical single and horizontal double
|
||
{{0xd9, 0x2518}}, // box drawings light up and left
|
||
{{0xda, 0x250c}}, // box drawings light down and right
|
||
{{0xdb, 0x2588}}, // full block
|
||
{{0xdc, 0x2584}}, // lower half block
|
||
{{0xdd, 0x258c}}, // left half block
|
||
{{0xde, 0x2590}}, // right half block
|
||
{{0xdf, 0x2580}}, // upper half block
|
||
{{0xe0, 0x03b1}}, // greek small letter alpha
|
||
{{0xe1, 0x00df}}, // latin small letter sharp s
|
||
{{0xe2, 0x0393}}, // greek capital letter gamma
|
||
{{0xe3, 0x03c0}}, // greek small letter pi
|
||
{{0xe4, 0x03a3}}, // greek capital letter sigma
|
||
{{0xe5, 0x03c3}}, // greek small letter sigma
|
||
{{0xe6, 0x00b5}}, // micro sign
|
||
{{0xe7, 0x03c4}}, // greek small letter tau
|
||
{{0xe8, 0x03a6}}, // greek capital letter phi
|
||
{{0xe9, 0x0398}}, // greek capital letter theta
|
||
{{0xea, 0x03a9}}, // greek capital letter omega
|
||
{{0xeb, 0x03b4}}, // greek small letter delta
|
||
{{0xec, 0x221e}}, // infinity
|
||
{{0xed, 0x03c6}}, // greek small letter phi
|
||
{{0xee, 0x03b5}}, // greek small letter epsilon
|
||
{{0xef, 0x2229}}, // intersection
|
||
{{0xf0, 0x2261}}, // identical to
|
||
{{0xf1, 0x00b1}}, // plus-minus sign
|
||
{{0xf2, 0x2265}}, // greater-than or equal to
|
||
{{0xf3, 0x2264}}, // less-than or equal to
|
||
{{0xf4, 0x2320}}, // top half integral
|
||
{{0xf5, 0x2321}}, // bottom half integral
|
||
{{0xf6, 0x00f7}}, // division sign
|
||
{{0xf7, 0x2248}}, // almost equal to
|
||
{{0xf8, 0x00b0}}, // degree sign
|
||
{{0xf9, 0x2219}}, // bullet operator
|
||
{{0xfa, 0x00b7}}, // middle dot
|
||
{{0xfb, 0x221a}}, // square root
|
||
{{0xfc, 0x207f}}, // superscript latin small letter n
|
||
{{0xfd, 0x00b2}}, // superscript two
|
||
{{0xfe, 0x25a0}}, // black square
|
||
{{0xff, 0x00a0}} // no-break space
|
||
}};
|
||
|
||
// Based on http://www.unicode.org/charts/PDF/UFF00.pdf
|
||
constexpr std::array<std::array<wchar_t, 2>, 227> halfwidth_fullwidth =
|
||
{{
|
||
// Fullwidth ASCII variants
|
||
{{0x0020, 0x3000}}, // ' ' -> ' '
|
||
{{0x0021, 0xff01}}, // ! -> !
|
||
{{0x0022, 0xff02}}, // " -> "
|
||
{{0x0023, 0xff03}}, // # -> #
|
||
{{0x0024, 0xff04}}, // $ -> $
|
||
{{0x0025, 0xff05}}, // % -> %
|
||
{{0x0026, 0xff06}}, // & -> &
|
||
{{0x0027, 0xff07}}, // ' -> '
|
||
{{0x0028, 0xff08}}, // ( -> (
|
||
{{0x0029, 0xff09}}, // ) -> )
|
||
{{0x002a, 0xff0a}}, // * -> *
|
||
{{0x002b, 0xff0b}}, // + -> +
|
||
{{0x002c, 0xff0c}}, // , -> ,
|
||
{{0x002d, 0xff0d}}, // - -> -
|
||
{{0x002e, 0xff0e}}, // . -> .
|
||
{{0x002f, 0xff0f}}, // / -> /
|
||
{{0x0030, 0xff10}}, // 0 -> 0
|
||
{{0x0031, 0xff11}}, // 1 -> 1
|
||
{{0x0032, 0xff12}}, // 2 -> 2
|
||
{{0x0033, 0xff13}}, // 3 -> 3
|
||
{{0x0034, 0xff14}}, // 4 -> 4
|
||
{{0x0035, 0xff15}}, // 5 -> 5
|
||
{{0x0036, 0xff16}}, // 6 -> 6
|
||
{{0x0037, 0xff17}}, // 7 -> 7
|
||
{{0x0038, 0xff18}}, // 8 -> 8
|
||
{{0x0039, 0xff19}}, // 9 -> 9
|
||
{{0x003a, 0xff1a}}, // : -> :
|
||
{{0x003b, 0xff1b}}, // ; -> ;
|
||
{{0x003c, 0xff1c}}, // < -> <
|
||
{{0x003d, 0xff1d}}, // = -> =
|
||
{{0x003e, 0xff1e}}, // > -> >
|
||
{{0x003f, 0xff1f}}, // ? -> ?
|
||
{{0x0040, 0xff20}}, // @ -> @
|
||
{{0x0041, 0xff21}}, // A -> A
|
||
{{0x0042, 0xff22}}, // B -> B
|
||
{{0x0043, 0xff23}}, // C -> C
|
||
{{0x0044, 0xff24}}, // D -> D
|
||
{{0x0045, 0xff25}}, // E -> E
|
||
{{0x0046, 0xff26}}, // F -> F
|
||
{{0x0047, 0xff27}}, // G -> G
|
||
{{0x0048, 0xff28}}, // H -> H
|
||
{{0x0049, 0xff29}}, // I -> I
|
||
{{0x004a, 0xff2a}}, // J -> J
|
||
{{0x004b, 0xff2b}}, // K -> K
|
||
{{0x004c, 0xff2c}}, // L -> L
|
||
{{0x004d, 0xff2d}}, // M -> M
|
||
{{0x004e, 0xff2e}}, // N -> N
|
||
{{0x004f, 0xff2f}}, // O -> O
|
||
{{0x0050, 0xff30}}, // P -> P
|
||
{{0x0051, 0xff31}}, // Q -> Q
|
||
{{0x0052, 0xff32}}, // R -> R
|
||
{{0x0053, 0xff33}}, // S -> S
|
||
{{0x0054, 0xff34}}, // T -> T
|
||
{{0x0055, 0xff35}}, // U -> U
|
||
{{0x0056, 0xff36}}, // V -> V
|
||
{{0x0057, 0xff37}}, // W -> W
|
||
{{0x0058, 0xff38}}, // X -> X
|
||
{{0x0059, 0xff39}}, // Y -> Y
|
||
{{0x005a, 0xff3a}}, // Z -> Z
|
||
{{0x005b, 0xff3b}}, // [ -> [
|
||
{{0x005c, 0xff3c}}, // \ -> \
|
||
{{0x005d, 0xff3c}}, // ] -> ]
|
||
{{0x005e, 0xff3e}}, // ^ -> ^
|
||
{{0x005f, 0xff3f}}, // _ -> _
|
||
{{0x0060, 0xff40}}, // ` -> `
|
||
{{0x0061, 0xff41}}, // a -> a
|
||
{{0x0062, 0xff42}}, // b -> b
|
||
{{0x0063, 0xff43}}, // c -> c
|
||
{{0x0064, 0xff44}}, // d -> d
|
||
{{0x0065, 0xff45}}, // e -> e
|
||
{{0x0066, 0xff46}}, // f -> f
|
||
{{0x0067, 0xff47}}, // g -> g
|
||
{{0x0068, 0xff48}}, // h -> h
|
||
{{0x0069, 0xff49}}, // i -> i
|
||
{{0x006a, 0xff4a}}, // j -> j
|
||
{{0x006b, 0xff4b}}, // k -> k
|
||
{{0x006c, 0xff4c}}, // l -> l
|
||
{{0x006d, 0xff4d}}, // m -> m
|
||
{{0x006e, 0xff4e}}, // n -> n
|
||
{{0x006f, 0xff4f}}, // o -> o
|
||
{{0x0070, 0xff50}}, // p -> p
|
||
{{0x0071, 0xff51}}, // q -> q
|
||
{{0x0072, 0xff52}}, // r -> r
|
||
{{0x0073, 0xff53}}, // s -> s
|
||
{{0x0074, 0xff54}}, // t -> t
|
||
{{0x0075, 0xff55}}, // u -> u
|
||
{{0x0076, 0xff56}}, // v -> v
|
||
{{0x0077, 0xff57}}, // w -> w
|
||
{{0x0078, 0xff58}}, // x -> x
|
||
{{0x0079, 0xff59}}, // y -> y
|
||
{{0x007a, 0xff5a}}, // z -> z
|
||
{{0x007b, 0xff5b}}, // { -> {
|
||
{{0x007c, 0xff5c}}, // | -> |
|
||
{{0x007d, 0xff5d}}, // } -> }
|
||
{{0x007e, 0xff5e}}, // ~ -> ~
|
||
{{0x007e, 0x0301}}, // ~ -> 〜
|
||
// Fullwidth brackets
|
||
{{0xff5f, 0x2e28}}, // ⦅ -> ⸨
|
||
{{0xff60, 0x2e29}}, // ⦆ -> ⸩
|
||
// Halfwidth CJK punctuation
|
||
{{0xff61, 0x3002}}, // 。 -> 。
|
||
{{0xff62, 0x300c}}, // 「 -> 「
|
||
{{0xff63, 0x300d}}, // 」 -> 」
|
||
{{0xff64, 0x3001}}, // 、 -> 、
|
||
// Halfwidth Katakana variants
|
||
{{0xff65, 0x30fb}}, // ・ -> ・
|
||
{{0xff66, 0x30f2}}, // ヲ -> ヲ
|
||
{{0xff67, 0x30a1}}, // ァ -> ァ
|
||
{{0xff68, 0x30a3}}, // ィ -> ィ
|
||
{{0xff69, 0x30a5}}, // ゥ -> ゥ
|
||
{{0xff6a, 0x30a7}}, // ェ -> ェ
|
||
{{0xff6b, 0x30a9}}, // ォ -> ォ
|
||
{{0xff6c, 0x30e3}}, // ャ -> ャ
|
||
{{0xff6d, 0x30e5}}, // ュ -> ュ
|
||
{{0xff6e, 0x30e7}}, // ョ -> ョ
|
||
{{0xff6f, 0x30c3}}, // ッ -> ッ
|
||
{{0xff70, 0x30fc}}, // ー -> ー
|
||
{{0xff71, 0x30a2}}, // ア -> ア
|
||
{{0xff72, 0x30a4}}, // イ -> イ
|
||
{{0xff73, 0x30a6}}, // ウ -> ウ
|
||
{{0xff74, 0x30a8}}, // エ -> エ
|
||
{{0xff75, 0x30aa}}, // オ -> オ
|
||
{{0xff76, 0x30ab}}, // カ -> カ
|
||
{{0xff77, 0x30ad}}, // キ -> キ
|
||
{{0xff78, 0x30af}}, // ク -> ク
|
||
{{0xff79, 0x30b1}}, // ケ -> ケ
|
||
{{0xff7a, 0x30b3}}, // コ -> コ
|
||
{{0xff7b, 0x30b5}}, // サ -> サ
|
||
{{0xff7c, 0x30b7}}, // シ -> シ
|
||
{{0xff7d, 0x30b9}}, // ス -> ス
|
||
{{0xff7e, 0x30bb}}, // セ -> セ
|
||
{{0xff7f, 0x30bd}}, // ソ -> ソ
|
||
{{0xff80, 0x30bf}}, // タ -> タ
|
||
{{0xff81, 0x30c1}}, // チ -> チ
|
||
{{0xff82, 0x30c4}}, // ツ -> ツ
|
||
{{0xff83, 0x30c6}}, // テ -> テ
|
||
{{0xff84, 0x30c8}}, // ト -> ト
|
||
{{0xff85, 0x30ca}}, // ナ -> ナ
|
||
{{0xff86, 0x30cb}}, // ニ -> ニ
|
||
{{0xff87, 0x30cc}}, // ヌ -> ヌ
|
||
{{0xff88, 0x30cd}}, // ネ -> ネ
|
||
{{0xff89, 0x30ce}}, // ノ -> ノ
|
||
{{0xff8a, 0x30cf}}, // ハ -> ハ
|
||
{{0xff8b, 0x30d2}}, // ヒ -> ヒ
|
||
{{0xff8c, 0x30d5}}, // フ -> フ
|
||
{{0xff8d, 0x30d8}}, // ヘ -> ヘ
|
||
{{0xff8e, 0x30db}}, // ホ -> ホ
|
||
{{0xff8f, 0x30de}}, // マ -> マ
|
||
{{0xff90, 0x30df}}, // ミ -> ミ
|
||
{{0xff91, 0x30e0}}, // ム -> ム
|
||
{{0xff92, 0x30e1}}, // メ -> メ
|
||
{{0xff93, 0x30e2}}, // モ -> モ
|
||
{{0xff94, 0x30e4}}, // ヤ -> ヤ
|
||
{{0xff95, 0x30e6}}, // ユ -> ユ
|
||
{{0xff96, 0x30e8}}, // ヨ -> ヨ
|
||
{{0xff97, 0x30e9}}, // ラ -> ラ
|
||
{{0xff98, 0x30ea}}, // リ -> リ
|
||
{{0xff99, 0x30eb}}, // ル -> ル
|
||
{{0xff9a, 0x30ec}}, // レ -> レ
|
||
{{0xff9b, 0x30ed}}, // ロ -> ロ
|
||
{{0xff9c, 0x30ef}}, // ワ -> ワ
|
||
{{0xff9d, 0x30f3}}, // ン -> ン
|
||
{{0xff9e, 0x3099}}, // ゙ -> ゙
|
||
{{0xff9f, 0x309a}}, // ゚ -> ゚
|
||
// Halfwidth Hangul variants
|
||
{{0xffa0, 0x3164}}, // ᅠ-> ᅠ
|
||
{{0xffa1, 0x3131}}, // ᄀ -> ㄱ
|
||
{{0xffa2, 0x3132}}, // ᄁ -> ㄲ
|
||
{{0xffa3, 0x3133}}, // ᆪ -> ㄳ
|
||
{{0xffa4, 0x3134}}, // ᄂ -> ㄴ
|
||
{{0xffa5, 0x3135}}, // ᆬ -> ㄵ
|
||
{{0xffa6, 0x3136}}, // ᆭ -> ㄶ
|
||
{{0xffa7, 0x3137}}, // ᄃ -> ㄷ
|
||
{{0xffa8, 0x3138}}, // ᄄ -> ㄸ
|
||
{{0xffa9, 0x3139}}, // ᄅ -> ㄹ
|
||
{{0xffaa, 0x313a}}, // ᆰ -> ㄺ
|
||
{{0xffab, 0x313b}}, // ᆱ -> ㄻ
|
||
{{0xffac, 0x313c}}, // ᆲ -> ㄼ
|
||
{{0xffad, 0x313d}}, // ᆳ -> ㄽ
|
||
{{0xffae, 0x313e}}, // ᆴ -> ㄾ
|
||
{{0xffaf, 0x313f}}, // ᆵ -> ㄿ
|
||
{{0xffb0, 0x3140}}, // ᄚ -> ㅀ
|
||
{{0xffb1, 0x3141}}, // ᄆ -> ㅁ
|
||
{{0xffb2, 0x3142}}, // ᄇ -> ㅂ
|
||
{{0xffb3, 0x3143}}, // ᄈ -> ㅃ
|
||
{{0xffb4, 0x3144}}, // ᄡ -> ㅄ
|
||
{{0xffb5, 0x3145}}, // ᄉ -> ㅅ
|
||
{{0xffb6, 0x3146}}, // ᄊ -> ㅆ
|
||
{{0xffb7, 0x3147}}, // ᄋ -> ㅇ
|
||
{{0xffb8, 0x3148}}, // ᄌ -> ㅈ
|
||
{{0xffb9, 0x3149}}, // ᄍ -> ㅉ
|
||
{{0xffba, 0x314a}}, // ᄎ -> ㅊ
|
||
{{0xffbb, 0x314b}}, // ᄏ -> ㅋ
|
||
{{0xffbc, 0x314c}}, // ᄐ -> ㅌ
|
||
{{0xffbd, 0x314d}}, // ᄑ -> ㅍ
|
||
{{0xffbe, 0x314e}}, // ᄒ -> ㅎ
|
||
{{0xffc2, 0x314f}}, // ᅡ -> ㅏ
|
||
{{0xffc3, 0x3150}}, // ᅢ -> ㅐ
|
||
{{0xffc4, 0x3151}}, // ᅣ -> ㅑ
|
||
{{0xffc5, 0x3152}}, // ᅤ -> ㅒ
|
||
{{0xffc6, 0x3153}}, // ᅥ -> ㅓ
|
||
{{0xffc7, 0x3154}}, // ᅦ -> ㅔ
|
||
{{0xffca, 0x3155}}, // ᅧ -> ㅕ
|
||
{{0xffcb, 0x3156}}, // ᅨ -> ㅖ
|
||
{{0xffcc, 0x3157}}, // ᅩ -> ㅗ
|
||
{{0xffcd, 0x3158}}, // ᅪ -> ㅘ
|
||
{{0xffce, 0x3159}}, // ᅫ -> ㅙ
|
||
{{0xffcf, 0x315a}}, // ᅬ -> ㅚ
|
||
{{0xffd2, 0x315b}}, // ᅭ -> ㅛ
|
||
{{0xffd3, 0x315c}}, // ᅮ -> ㅜ
|
||
{{0xffd4, 0x315d}}, // ᅯ -> ㅝ
|
||
{{0xffd5, 0x315e}}, // ᅰ -> ㅞ
|
||
{{0xffd6, 0x315f}}, // ᅱ -> ㅟ
|
||
{{0xffd7, 0x3160}}, // ᅲ -> ㅠ
|
||
{{0xffda, 0x3161}}, // ᅳ -> ㅡ
|
||
{{0xffdb, 0x3162}}, // ᅴ -> ㅢ
|
||
{{0xffdc, 0x3163}}, // ᅵ -> ㅣ
|
||
// Fullwidth symbol variants
|
||
{{0x00a2, 0xffe0}}, // ¢ -> ¢
|
||
{{0x00a3, 0xffe1}}, // £ -> £
|
||
{{0x00ac, 0xffe2}}, // ¬ -> ¬
|
||
{{0x00af, 0xffe3}}, // ¯ ->  ̄
|
||
{{0x00a6, 0xffe4}}, // ¦ -> ¦
|
||
{{0x00a5, 0xffe5}}, // ¥ -> ¥
|
||
{{0x20a9, 0xffe6}}, // ₩ -> ₩
|
||
// Halfwidth symbol variants
|
||
{{0xffe8, 0x2502}}, // │ -> │
|
||
{{0xffe9, 0x2190}}, // ← -> ←
|
||
{{0xffea, 0x2191}}, // ↑ -> ↑
|
||
{{0xffeb, 0x2192}}, // → -> →
|
||
{{0xffec, 0x2193}}, // ↓ -> ↓
|
||
{{0xffed, 0x25a0}}, // ■ -> ■
|
||
{{0xffee, 0x25cb}} // ○ -> ○
|
||
}};
|
||
|
||
} // namespace fc
|
||
|
||
} // namespace finalcut
|
||
|