[Ttssh2-commit] [6514] ファイル名 / 変数名等を実態を表すわかりやすい物に変更

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2016年 10月 27日 (木) 12:06:43 JST


Revision: 6514
          http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6514
Author:   doda
Date:     2016-10-27 12:06:43 +0900 (Thu, 27 Oct 2016)
Log Message:
-----------
ファイル名 / 変数名等を実態を表すわかりやすい物に変更
HFS+ では NFD を使っているが、HFS+ のみで使う特別な処理というわけではなく、やっている事自体は結合文字の処理。
そういう意味では漢字コード設定の UTF-8m ってのもちょっと気になる

Modified Paths:
--------------
    trunk/teraterm/teraterm/vtterm.c

Added Paths:
-----------
    trunk/teraterm/teraterm/uni_combining.map

Removed Paths:
-------------
    trunk/teraterm/teraterm/hfs_plus.map

-------------- next part --------------
Deleted: trunk/teraterm/teraterm/hfs_plus.map
===================================================================
--- trunk/teraterm/teraterm/hfs_plus.map	2016-10-27 03:06:40 UTC (rev 6513)
+++ trunk/teraterm/teraterm/hfs_plus.map	2016-10-27 03:06:43 UTC (rev 6514)
@@ -1,686 +0,0 @@
-typedef struct hfsplus_codemap {
-	unsigned short illegal_code;
-	unsigned short first_code;
-	unsigned short second_code;
-} hfsplus_codemap_t;
-
-/*
- * cf. http://developer.apple.com/technotes/tn/tn1150table.html
- *
- */
-static hfsplus_codemap_t mapHFSPlusUnicode[] = {
-	 {0x00C0,   0x0041, 0x0300},
-	 {0x00C1,   0x0041, 0x0301},
-	 {0x00C2,   0x0041, 0x0302},
-	 {0x00C3,   0x0041, 0x0303},
-	 {0x00C4,   0x0041, 0x0308},
-	 {0x00C5,   0x0041, 0x030A},
-	 {0x0100,   0x0041, 0x0304},
-	 {0x0102,   0x0041, 0x0306},
-	 {0x0104,   0x0041, 0x0328},
-	 {0x01CD,   0x0041, 0x030C},
-	 {0x0200,   0x0041, 0x030F},
-	 {0x0202,   0x0041, 0x0311},
-	 {0x1E00,   0x0041, 0x0325},
-	 {0x1EA0,   0x0041, 0x0323},
-	 {0x1EA2,   0x0041, 0x0309},
-	 {0x1E02,   0x0042, 0x0307},
-	 {0x1E04,   0x0042, 0x0323},
-	 {0x1E06,   0x0042, 0x0331},
-	 {0x00C7,   0x0043, 0x0327},
-	 {0x0106,   0x0043, 0x0301},
-	 {0x0108,   0x0043, 0x0302},
-	 {0x010A,   0x0043, 0x0307},
-	 {0x010C,   0x0043, 0x030C},
-	 {0x010E,   0x0044, 0x030C},
-	 {0x1E0A,   0x0044, 0x0307},
-	 {0x1E0C,   0x0044, 0x0323},
-	 {0x1E0E,   0x0044, 0x0331},
-	 {0x1E10,   0x0044, 0x0327},
-	 {0x1E12,   0x0044, 0x032D},
-	 {0x00C8,   0x0045, 0x0300},
-	 {0x00C9,   0x0045, 0x0301},
-	 {0x00CA,   0x0045, 0x0302},
-	 {0x00CB,   0x0045, 0x0308},
-	 {0x0112,   0x0045, 0x0304},
-	 {0x0114,   0x0045, 0x0306},
-	 {0x0116,   0x0045, 0x0307},
-	 {0x0118,   0x0045, 0x0328},
-	 {0x011A,   0x0045, 0x030C},
-	 {0x0204,   0x0045, 0x030F},
-	 {0x0206,   0x0045, 0x0311},
-	 {0x1E18,   0x0045, 0x032D},
-	 {0x1E1A,   0x0045, 0x0330},
-	 {0x1EB8,   0x0045, 0x0323},
-	 {0x1EBA,   0x0045, 0x0309},
-	 {0x1EBC,   0x0045, 0x0303},
-	 {0x1E1E,   0x0046, 0x0307},
-	 {0x011C,   0x0047, 0x0302},
-	 {0x011E,   0x0047, 0x0306},
-	 {0x0120,   0x0047, 0x0307},
-	 {0x0122,   0x0047, 0x0327},
-	 {0x01E6,   0x0047, 0x030C},
-	 {0x01F4,   0x0047, 0x0301},
-	 {0x1E20,   0x0047, 0x0304},
-	 {0x0124,   0x0048, 0x0302},
-	 {0x1E22,   0x0048, 0x0307},
-	 {0x1E24,   0x0048, 0x0323},
-	 {0x1E26,   0x0048, 0x0308},
-	 {0x1E28,   0x0048, 0x0327},
-	 {0x1E2A,   0x0048, 0x032E},
-	 {0x00CC,   0x0049, 0x0300},
-	 {0x00CD,   0x0049, 0x0301},
-	 {0x00CE,   0x0049, 0x0302},
-	 {0x00CF,   0x0049, 0x0308},
-	 {0x0128,   0x0049, 0x0303},
-	 {0x012A,   0x0049, 0x0304},
-	 {0x012C,   0x0049, 0x0306},
-	 {0x012E,   0x0049, 0x0328},
-	 {0x0130,   0x0049, 0x0307},
-	 {0x01CF,   0x0049, 0x030C},
-	 {0x0208,   0x0049, 0x030F},
-	 {0x020A,   0x0049, 0x0311},
-	 {0x1E2C,   0x0049, 0x0330},
-	 {0x1EC8,   0x0049, 0x0309},
-	 {0x1ECA,   0x0049, 0x0323},
-	 {0x0134,   0x004A, 0x0302},
-	 {0x0136,   0x004B, 0x0327},
-	 {0x01E8,   0x004B, 0x030C},
-	 {0x1E30,   0x004B, 0x0301},
-	 {0x1E32,   0x004B, 0x0323},
-	 {0x1E34,   0x004B, 0x0331},
-	 {0x0139,   0x004C, 0x0301},
-	 {0x013B,   0x004C, 0x0327},
-	 {0x013D,   0x004C, 0x030C},
-	 {0x1E36,   0x004C, 0x0323},
-	 {0x1E3A,   0x004C, 0x0331},
-	 {0x1E3C,   0x004C, 0x032D},
-	 {0x1E3E,   0x004D, 0x0301},
-	 {0x1E40,   0x004D, 0x0307},
-	 {0x1E42,   0x004D, 0x0323},
-	 {0x00D1,   0x004E, 0x0303},
-	 {0x0143,   0x004E, 0x0301},
-	 {0x0145,   0x004E, 0x0327},
-	 {0x0147,   0x004E, 0x030C},
-	 {0x1E44,   0x004E, 0x0307},
-	 {0x1E46,   0x004E, 0x0323},
-	 {0x1E48,   0x004E, 0x0331},
-	 {0x1E4A,   0x004E, 0x032D},
-	 {0x00D2,   0x004F, 0x0300},
-	 {0x00D3,   0x004F, 0x0301},
-	 {0x00D4,   0x004F, 0x0302},
-	 {0x00D5,   0x004F, 0x0303},
-	 {0x00D6,   0x004F, 0x0308},
-	 {0x014C,   0x004F, 0x0304},
-	 {0x014E,   0x004F, 0x0306},
-	 {0x0150,   0x004F, 0x030B},
-	 {0x01A0,   0x004F, 0x031B},
-	 {0x01D1,   0x004F, 0x030C},
-	 {0x01EA,   0x004F, 0x0328},
-	 {0x020C,   0x004F, 0x030F},
-	 {0x020E,   0x004F, 0x0311},
-	 {0x1ECC,   0x004F, 0x0323},
-	 {0x1ECE,   0x004F, 0x0309},
-	 {0x1E54,   0x0050, 0x0301},
-	 {0x1E56,   0x0050, 0x0307},
-	 {0x0154,   0x0052, 0x0301},
-	 {0x0156,   0x0052, 0x0327},
-	 {0x0158,   0x0052, 0x030C},
-	 {0x0210,   0x0052, 0x030F},
-	 {0x0212,   0x0052, 0x0311},
-	 {0x1E58,   0x0052, 0x0307},
-	 {0x1E5A,   0x0052, 0x0323},
-	 {0x1E5E,   0x0052, 0x0331},
-	 {0x015A,   0x0053, 0x0301},
-	 {0x015C,   0x0053, 0x0302},
-	 {0x015E,   0x0053, 0x0327},
-	 {0x0160,   0x0053, 0x030C},
-	 {0x1E60,   0x0053, 0x0307},
-	 {0x1E62,   0x0053, 0x0323},
-	 {0x0162,   0x0054, 0x0327},
-	 {0x0164,   0x0054, 0x030C},
-	 {0x1E6A,   0x0054, 0x0307},
-	 {0x1E6C,   0x0054, 0x0323},
-	 {0x1E6E,   0x0054, 0x0331},
-	 {0x1E70,   0x0054, 0x032D},
-	 {0x00D9,   0x0055, 0x0300},
-	 {0x00DA,   0x0055, 0x0301},
-	 {0x00DB,   0x0055, 0x0302},
-	 {0x00DC,   0x0055, 0x0308},
-	 {0x0168,   0x0055, 0x0303},
-	 {0x016A,   0x0055, 0x0304},
-	 {0x016C,   0x0055, 0x0306},
-	 {0x016E,   0x0055, 0x030A},
-	 {0x0170,   0x0055, 0x030B},
-	 {0x0172,   0x0055, 0x0328},
-	 {0x01AF,   0x0055, 0x031B},
-	 {0x01D3,   0x0055, 0x030C},
-	 {0x0214,   0x0055, 0x030F},
-	 {0x0216,   0x0055, 0x0311},
-	 {0x1E72,   0x0055, 0x0324},
-	 {0x1E74,   0x0055, 0x0330},
-	 {0x1E76,   0x0055, 0x032D},
-	 {0x1EE4,   0x0055, 0x0323},
-	 {0x1EE6,   0x0055, 0x0309},
-	 {0x1E7C,   0x0056, 0x0303},
-	 {0x1E7E,   0x0056, 0x0323},
-	 {0x0174,   0x0057, 0x0302},
-	 {0x1E80,   0x0057, 0x0300},
-	 {0x1E82,   0x0057, 0x0301},
-	 {0x1E84,   0x0057, 0x0308},
-	 {0x1E86,   0x0057, 0x0307},
-	 {0x1E88,   0x0057, 0x0323},
-	 {0x1E8A,   0x0058, 0x0307},
-	 {0x1E8C,   0x0058, 0x0308},
-	 {0x00DD,   0x0059, 0x0301},
-	 {0x0176,   0x0059, 0x0302},
-	 {0x0178,   0x0059, 0x0308},
-	 {0x1E8E,   0x0059, 0x0307},
-	 {0x1EF2,   0x0059, 0x0300},
-	 {0x1EF4,   0x0059, 0x0323},
-	 {0x1EF6,   0x0059, 0x0309},
-	 {0x1EF8,   0x0059, 0x0303},
-	 {0x0179,   0x005A, 0x0301},
-	 {0x017B,   0x005A, 0x0307},
-	 {0x017D,   0x005A, 0x030C},
-	 {0x1E90,   0x005A, 0x0302},
-	 {0x1E92,   0x005A, 0x0323},
-	 {0x1E94,   0x005A, 0x0331},
-	 {0x00E0,   0x0061, 0x0300},
-	 {0x00E1,   0x0061, 0x0301},
-	 {0x00E2,   0x0061, 0x0302},
-	 {0x00E3,   0x0061, 0x0303},
-	 {0x00E4,   0x0061, 0x0308},
-	 {0x00E5,   0x0061, 0x030A},
-	 {0x0101,   0x0061, 0x0304},
-	 {0x0103,   0x0061, 0x0306},
-	 {0x0105,   0x0061, 0x0328},
-	 {0x01CE,   0x0061, 0x030C},
-	 {0x0201,   0x0061, 0x030F},
-	 {0x0203,   0x0061, 0x0311},
-	 {0x1E01,   0x0061, 0x0325},
-	 {0x1EA1,   0x0061, 0x0323},
-	 {0x1EA3,   0x0061, 0x0309},
-	 {0x1E03,   0x0062, 0x0307},
-	 {0x1E05,   0x0062, 0x0323},
-	 {0x1E07,   0x0062, 0x0331},
-	 {0x00E7,   0x0063, 0x0327},
-	 {0x0107,   0x0063, 0x0301},
-	 {0x0109,   0x0063, 0x0302},
-	 {0x010B,   0x0063, 0x0307},
-	 {0x010D,   0x0063, 0x030C},
-	 {0x010F,   0x0064, 0x030C},
-	 {0x1E0B,   0x0064, 0x0307},
-	 {0x1E0D,   0x0064, 0x0323},
-	 {0x1E0F,   0x0064, 0x0331},
-	 {0x1E11,   0x0064, 0x0327},
-	 {0x1E13,   0x0064, 0x032D},
-	 {0x00E8,   0x0065, 0x0300},
-	 {0x00E9,   0x0065, 0x0301},
-	 {0x00EA,   0x0065, 0x0302},
-	 {0x00EB,   0x0065, 0x0308},
-	 {0x0113,   0x0065, 0x0304},
-	 {0x0115,   0x0065, 0x0306},
-	 {0x0117,   0x0065, 0x0307},
-	 {0x0119,   0x0065, 0x0328},
-	 {0x011B,   0x0065, 0x030C},
-	 {0x0205,   0x0065, 0x030F},
-	 {0x0207,   0x0065, 0x0311},
-	 {0x1E19,   0x0065, 0x032D},
-	 {0x1E1B,   0x0065, 0x0330},
-	 {0x1EB9,   0x0065, 0x0323},
-	 {0x1EBB,   0x0065, 0x0309},
-	 {0x1EBD,   0x0065, 0x0303},
-	 {0x1E1F,   0x0066, 0x0307},
-	 {0x011D,   0x0067, 0x0302},
-	 {0x011F,   0x0067, 0x0306},
-	 {0x0121,   0x0067, 0x0307},
-	 {0x0123,   0x0067, 0x0327},
-	 {0x01E7,   0x0067, 0x030C},
-	 {0x01F5,   0x0067, 0x0301},
-	 {0x1E21,   0x0067, 0x0304},
-	 {0x0125,   0x0068, 0x0302},
-	 {0x1E23,   0x0068, 0x0307},
-	 {0x1E25,   0x0068, 0x0323},
-	 {0x1E27,   0x0068, 0x0308},
-	 {0x1E29,   0x0068, 0x0327},
-	 {0x1E2B,   0x0068, 0x032E},
-	 {0x1E96,   0x0068, 0x0331},
-	 {0x00EC,   0x0069, 0x0300},
-	 {0x00ED,   0x0069, 0x0301},
-	 {0x00EE,   0x0069, 0x0302},
-	 {0x00EF,   0x0069, 0x0308},
-	 {0x0129,   0x0069, 0x0303},
-	 {0x012B,   0x0069, 0x0304},
-	 {0x012D,   0x0069, 0x0306},
-	 {0x012F,   0x0069, 0x0328},
-	 {0x01D0,   0x0069, 0x030C},
-	 {0x0209,   0x0069, 0x030F},
-	 {0x020B,   0x0069, 0x0311},
-	 {0x1E2D,   0x0069, 0x0330},
-	 {0x1EC9,   0x0069, 0x0309},
-	 {0x1ECB,   0x0069, 0x0323},
-	 {0x0135,   0x006A, 0x0302},
-	 {0x01F0,   0x006A, 0x030C},
-	 {0x0137,   0x006B, 0x0327},
-	 {0x01E9,   0x006B, 0x030C},
-	 {0x1E31,   0x006B, 0x0301},
-	 {0x1E33,   0x006B, 0x0323},
-	 {0x1E35,   0x006B, 0x0331},
-	 {0x013A,   0x006C, 0x0301},
-	 {0x013C,   0x006C, 0x0327},
-	 {0x013E,   0x006C, 0x030C},
-	 {0x1E37,   0x006C, 0x0323},
-	 {0x1E3B,   0x006C, 0x0331},
-	 {0x1E3D,   0x006C, 0x032D},
-	 {0x1E3F,   0x006D, 0x0301},
-	 {0x1E41,   0x006D, 0x0307},
-	 {0x1E43,   0x006D, 0x0323},
-	 {0x00F1,   0x006E, 0x0303},
-	 {0x0144,   0x006E, 0x0301},
-	 {0x0146,   0x006E, 0x0327},
-	 {0x0148,   0x006E, 0x030C},
-	 {0x1E45,   0x006E, 0x0307},
-	 {0x1E47,   0x006E, 0x0323},
-	 {0x1E49,   0x006E, 0x0331},
-	 {0x1E4B,   0x006E, 0x032D},
-	 {0x00F2,   0x006F, 0x0300},
-	 {0x00F3,   0x006F, 0x0301},
-	 {0x00F4,   0x006F, 0x0302},
-	 {0x00F5,   0x006F, 0x0303},
-	 {0x00F6,   0x006F, 0x0308},
-	 {0x014D,   0x006F, 0x0304},
-	 {0x014F,   0x006F, 0x0306},
-	 {0x0151,   0x006F, 0x030B},
-	 {0x01A1,   0x006F, 0x031B},
-	 {0x01D2,   0x006F, 0x030C},
-	 {0x01EB,   0x006F, 0x0328},
-	 {0x020D,   0x006F, 0x030F},
-	 {0x020F,   0x006F, 0x0311},
-	 {0x1ECD,   0x006F, 0x0323},
-	 {0x1ECF,   0x006F, 0x0309},
-	 {0x1E55,   0x0070, 0x0301},
-	 {0x1E57,   0x0070, 0x0307},
-	 {0x0155,   0x0072, 0x0301},
-	 {0x0157,   0x0072, 0x0327},
-	 {0x0159,   0x0072, 0x030C},
-	 {0x0211,   0x0072, 0x030F},
-	 {0x0213,   0x0072, 0x0311},
-	 {0x1E59,   0x0072, 0x0307},
-	 {0x1E5B,   0x0072, 0x0323},
-	 {0x1E5F,   0x0072, 0x0331},
-	 {0x015B,   0x0073, 0x0301},
-	 {0x015D,   0x0073, 0x0302},
-	 {0x015F,   0x0073, 0x0327},
-	 {0x0161,   0x0073, 0x030C},
-	 {0x1E61,   0x0073, 0x0307},
-	 {0x1E63,   0x0073, 0x0323},
-	 {0x0163,   0x0074, 0x0327},
-	 {0x0165,   0x0074, 0x030C},
-	 {0x1E6B,   0x0074, 0x0307},
-	 {0x1E6D,   0x0074, 0x0323},
-	 {0x1E6F,   0x0074, 0x0331},
-	 {0x1E71,   0x0074, 0x032D},
-	 {0x1E97,   0x0074, 0x0308},
-	 {0x00F9,   0x0075, 0x0300},
-	 {0x00FA,   0x0075, 0x0301},
-	 {0x00FB,   0x0075, 0x0302},
-	 {0x00FC,   0x0075, 0x0308},
-	 {0x0169,   0x0075, 0x0303},
-	 {0x016B,   0x0075, 0x0304},
-	 {0x016D,   0x0075, 0x0306},
-	 {0x016F,   0x0075, 0x030A},
-	 {0x0171,   0x0075, 0x030B},
-	 {0x0173,   0x0075, 0x0328},
-	 {0x01B0,   0x0075, 0x031B},
-	 {0x01D4,   0x0075, 0x030C},
-	 {0x0215,   0x0075, 0x030F},
-	 {0x0217,   0x0075, 0x0311},
-	 {0x1E73,   0x0075, 0x0324},
-	 {0x1E75,   0x0075, 0x0330},
-	 {0x1E77,   0x0075, 0x032D},
-	 {0x1EE5,   0x0075, 0x0323},
-	 {0x1EE7,   0x0075, 0x0309},
-	 {0x1E7D,   0x0076, 0x0303},
-	 {0x1E7F,   0x0076, 0x0323},
-	 {0x0175,   0x0077, 0x0302},
-	 {0x1E81,   0x0077, 0x0300},
-	 {0x1E83,   0x0077, 0x0301},
-	 {0x1E85,   0x0077, 0x0308},
-	 {0x1E87,   0x0077, 0x0307},
-	 {0x1E89,   0x0077, 0x0323},
-	 {0x1E98,   0x0077, 0x030A},
-	 {0x1E8B,   0x0078, 0x0307},
-	 {0x1E8D,   0x0078, 0x0308},
-	 {0x00FD,   0x0079, 0x0301},
-	 {0x00FF,   0x0079, 0x0308},
-	 {0x0177,   0x0079, 0x0302},
-	 {0x1E8F,   0x0079, 0x0307},
-	 {0x1E99,   0x0079, 0x030A},
-	 {0x1EF3,   0x0079, 0x0300},
-	 {0x1EF5,   0x0079, 0x0323},
-	 {0x1EF7,   0x0079, 0x0309},
-	 {0x1EF9,   0x0079, 0x0303},
-	 {0x017A,   0x007A, 0x0301},
-	 {0x017C,   0x007A, 0x0307},
-	 {0x017E,   0x007A, 0x030C},
-	 {0x1E91,   0x007A, 0x0302},
-	 {0x1E93,   0x007A, 0x0323},
-	 {0x1E95,   0x007A, 0x0331},
-	 {0x0385,   0x00A8, 0x030D},
-	 {0x1FC1,   0x00A8, 0x0342},
-	 {0x1FED,   0x00A8, 0x0300},
-	 {0x1FEE,   0x00A8, 0x0301},
-	 {0x01E2,   0x00C6, 0x0304},
-	 {0x01FC,   0x00C6, 0x0301},
-	 {0x01FE,   0x00D8, 0x0301},
-	 {0x01E3,   0x00E6, 0x0304},
-	 {0x01FD,   0x00E6, 0x0301},
-	 {0x01FF,   0x00F8, 0x0301},
-	 {0x1E9B,   0x017F, 0x0307},
-	 {0x04DA,   0x018F, 0x0308},
-	 {0x04EA,   0x019F, 0x0308},
-	 {0x01EE,   0x01B7, 0x030C},
-	 {0x04DB,   0x0259, 0x0308},
-	 {0x04EB,   0x0275, 0x0308},
-	 {0x01EF,   0x0292, 0x030C},
-	 {0x0310,   0x0306, 0x0307},
-	 {0x0344,   0x0308, 0x030D},
-	 {0x0386,   0x0391, 0x030D},
-	 {0x1F08,   0x0391, 0x0313},
-	 {0x1F09,   0x0391, 0x0314},
-	 {0x1FB8,   0x0391, 0x0306},
-	 {0x1FB9,   0x0391, 0x0304},
-	 {0x1FBA,   0x0391, 0x0300},
-	 {0x1FBB,   0x0391, 0x0301},
-	 {0x1FBC,   0x0391, 0x0345},
-	 {0x0388,   0x0395, 0x030D},
-	 {0x1F18,   0x0395, 0x0313},
-	 {0x1F19,   0x0395, 0x0314},
-	 {0x1FC8,   0x0395, 0x0300},
-	 {0x1FC9,   0x0395, 0x0301},
-	 {0x0389,   0x0397, 0x030D},
-	 {0x1F28,   0x0397, 0x0313},
-	 {0x1F29,   0x0397, 0x0314},
-	 {0x1FCA,   0x0397, 0x0300},
-	 {0x1FCB,   0x0397, 0x0301},
-	 {0x1FCC,   0x0397, 0x0345},
-	 {0x038A,   0x0399, 0x030D},
-	 {0x03AA,   0x0399, 0x0308},
-	 {0x1F38,   0x0399, 0x0313},
-	 {0x1F39,   0x0399, 0x0314},
-	 {0x1FD8,   0x0399, 0x0306},
-	 {0x1FD9,   0x0399, 0x0304},
-	 {0x1FDA,   0x0399, 0x0300},
-	 {0x1FDB,   0x0399, 0x0301},
-	 {0x038C,   0x039F, 0x030D},
-	 {0x1F48,   0x039F, 0x0313},
-	 {0x1F49,   0x039F, 0x0314},
-	 {0x1FF8,   0x039F, 0x0300},
-	 {0x1FF9,   0x039F, 0x0301},
-	 {0x1FEC,   0x03A1, 0x0314},
-	 {0x038E,   0x03A5, 0x030D},
-	 {0x03AB,   0x03A5, 0x0308},
-	 {0x1F59,   0x03A5, 0x0314},
-	 {0x1FE8,   0x03A5, 0x0306},
-	 {0x1FE9,   0x03A5, 0x0304},
-	 {0x1FEA,   0x03A5, 0x0300},
-	 {0x1FEB,   0x03A5, 0x0301},
-	 {0x038F,   0x03A9, 0x030D},
-	 {0x1F68,   0x03A9, 0x0313},
-	 {0x1F69,   0x03A9, 0x0314},
-	 {0x1FFA,   0x03A9, 0x0300},
-	 {0x1FFB,   0x03A9, 0x0301},
-	 {0x1FFC,   0x03A9, 0x0345},
-	 {0x03AC,   0x03B1, 0x030D},
-	 {0x1F00,   0x03B1, 0x0313},
-	 {0x1F01,   0x03B1, 0x0314},
-	 {0x1F70,   0x03B1, 0x0300},
-	 {0x1F71,   0x03B1, 0x0301},
-	 {0x1FB0,   0x03B1, 0x0306},
-	 {0x1FB1,   0x03B1, 0x0304},
-	 {0x1FB3,   0x03B1, 0x0345},
-	 {0x1FB6,   0x03B1, 0x0342},
-	 {0x03AD,   0x03B5, 0x030D},
-	 {0x1F10,   0x03B5, 0x0313},
-	 {0x1F11,   0x03B5, 0x0314},
-	 {0x1F72,   0x03B5, 0x0300},
-	 {0x1F73,   0x03B5, 0x0301},
-	 {0x03AE,   0x03B7, 0x030D},
-	 {0x1F20,   0x03B7, 0x0313},
-	 {0x1F21,   0x03B7, 0x0314},
-	 {0x1F74,   0x03B7, 0x0300},
-	 {0x1F75,   0x03B7, 0x0301},
-	 {0x1FC3,   0x03B7, 0x0345},
-	 {0x1FC6,   0x03B7, 0x0342},
-	 {0x03AF,   0x03B9, 0x030D},
-	 {0x03CA,   0x03B9, 0x0308},
-	 {0x1F30,   0x03B9, 0x0313},
-	 {0x1F31,   0x03B9, 0x0314},
-	 {0x1F76,   0x03B9, 0x0300},
-	 {0x1F77,   0x03B9, 0x0301},
-	 {0x1FD0,   0x03B9, 0x0306},
-	 {0x1FD1,   0x03B9, 0x0304},
-	 {0x1FD6,   0x03B9, 0x0342},
-	 {0x03CC,   0x03BF, 0x030D},
-	 {0x1F40,   0x03BF, 0x0313},
-	 {0x1F41,   0x03BF, 0x0314},
-	 {0x1F78,   0x03BF, 0x0300},
-	 {0x1F79,   0x03BF, 0x0301},
-	 {0x1FE4,   0x03C1, 0x0313},
-	 {0x1FE5,   0x03C1, 0x0314},
-	 {0x03CB,   0x03C5, 0x0308},
-	 {0x03CD,   0x03C5, 0x030D},
-	 {0x1F50,   0x03C5, 0x0313},
-	 {0x1F51,   0x03C5, 0x0314},
-	 {0x1F7A,   0x03C5, 0x0300},
-	 {0x1F7B,   0x03C5, 0x0301},
-	 {0x1FE0,   0x03C5, 0x0306},
-	 {0x1FE1,   0x03C5, 0x0304},
-	 {0x1FE6,   0x03C5, 0x0342},
-	 {0x03CE,   0x03C9, 0x030D},
-	 {0x1F60,   0x03C9, 0x0313},
-	 {0x1F61,   0x03C9, 0x0314},
-	 {0x1F7C,   0x03C9, 0x0300},
-	 {0x1F7D,   0x03C9, 0x0301},
-	 {0x1FF3,   0x03C9, 0x0345},
-	 {0x1FF6,   0x03C9, 0x0342},
-	 {0x03D3,   0x03D2, 0x030D},
-	 {0x03D4,   0x03D2, 0x0308},
-	 {0x0407,   0x0406, 0x0308},
-	 {0x04D0,   0x0410, 0x0306},
-	 {0x04D2,   0x0410, 0x0308},
-	 {0x0403,   0x0413, 0x0301},
-	 {0x0401,   0x0415, 0x0308},
-	 {0x04D6,   0x0415, 0x0306},
-	 {0x04C1,   0x0416, 0x0306},
-	 {0x04DC,   0x0416, 0x0308},
-	 {0x04DE,   0x0417, 0x0308},
-	 {0x0419,   0x0418, 0x0306},
-	 {0x04E2,   0x0418, 0x0304},
-	 {0x04E4,   0x0418, 0x0308},
-	 {0x040C,   0x041A, 0x0301},
-	 {0x04E6,   0x041E, 0x0308},
-	 {0x040E,   0x0423, 0x0306},
-	 {0x04EE,   0x0423, 0x0304},
-	 {0x04F0,   0x0423, 0x0308},
-	 {0x04F2,   0x0423, 0x030B},
-	 {0x04F4,   0x0427, 0x0308},
-	 {0x04F8,   0x042B, 0x0308},
-	 {0x04D1,   0x0430, 0x0306},
-	 {0x04D3,   0x0430, 0x0308},
-	 {0x0453,   0x0433, 0x0301},
-	 {0x0451,   0x0435, 0x0308},
-	 {0x04D7,   0x0435, 0x0306},
-	 {0x04C2,   0x0436, 0x0306},
-	 {0x04DD,   0x0436, 0x0308},
-	 {0x04DF,   0x0437, 0x0308},
-	 {0x0439,   0x0438, 0x0306},
-	 {0x04E3,   0x0438, 0x0304},
-	 {0x04E5,   0x0438, 0x0308},
-	 {0x045C,   0x043A, 0x0301},
-	 {0x04E7,   0x043E, 0x0308},
-	 {0x045E,   0x0443, 0x0306},
-	 {0x04EF,   0x0443, 0x0304},
-	 {0x04F1,   0x0443, 0x0308},
-	 {0x04F3,   0x0443, 0x030B},
-	 {0x04F5,   0x0447, 0x0308},
-	 {0x04F9,   0x044B, 0x0308},
-	 {0x0457,   0x0456, 0x0308},
-	 {0x0476,   0x0474, 0x030F},
-	 {0x0477,   0x0475, 0x030F},
-	 {0xFB2E,   0x05D0, 0x05B7},
-	 {0xFB2F,   0x05D0, 0x05B8},
-	 {0xFB30,   0x05D0, 0x05BC},
-	 {0xFB31,   0x05D1, 0x05BC},
-	 {0xFB4C,   0x05D1, 0x05BF},
-	 {0xFB32,   0x05D2, 0x05BC},
-	 {0xFB33,   0x05D3, 0x05BC},
-	 {0xFB34,   0x05D4, 0x05BC},
-	 {0xFB35,   0x05D5, 0x05BC},
-	 {0xFB4B,   0x05D5, 0x05B9},
-	 {0xFB36,   0x05D6, 0x05BC},
-	 {0xFB38,   0x05D8, 0x05BC},
-	 {0xFB39,   0x05D9, 0x05BC},
-	 {0xFB3A,   0x05DA, 0x05BC},
-	 {0xFB3B,   0x05DB, 0x05BC},
-	 {0xFB4D,   0x05DB, 0x05BF},
-	 {0xFB3C,   0x05DC, 0x05BC},
-	 {0xFB3E,   0x05DE, 0x05BC},
-	 {0xFB40,   0x05E0, 0x05BC},
-	 {0xFB41,   0x05E1, 0x05BC},
-	 {0xFB43,   0x05E3, 0x05BC},
-	 {0xFB44,   0x05E4, 0x05BC},
-	 {0xFB4E,   0x05E4, 0x05BF},
-	 {0xFB46,   0x05E6, 0x05BC},
-	 {0xFB47,   0x05E7, 0x05BC},
-	 {0xFB48,   0x05E8, 0x05BC},
-	 {0xFB2A,   0x05E9, 0x05C1},
-	 {0xFB2B,   0x05E9, 0x05C2},
-	 {0xFB49,   0x05E9, 0x05BC},
-	 {0xFB4A,   0x05EA, 0x05BC},
-	 {0xFB1F,   0x05F2, 0x05B7},
-	 {0x0958,   0x0915, 0x093C},
-	 {0x0959,   0x0916, 0x093C},
-	 {0x095A,   0x0917, 0x093C},
-	 {0x095B,   0x091C, 0x093C},
-	 {0x095C,   0x0921, 0x093C},
-	 {0x095D,   0x0922, 0x093C},
-	 {0x0929,   0x0928, 0x093C},
-	 {0x095E,   0x092B, 0x093C},
-	 {0x095F,   0x092F, 0x093C},
-	 {0x0931,   0x0930, 0x093C},
-	 {0x0934,   0x0933, 0x093C},
-	 {0x09DC,   0x09A1, 0x09BC},
-	 {0x09DD,   0x09A2, 0x09BC},
-	 {0x09B0,   0x09AC, 0x09BC},
-	 {0x09DF,   0x09AF, 0x09BC},
-	 {0x09CB,   0x09C7, 0x09BE},
-	 {0x09CC,   0x09C7, 0x09D7},
-	 {0x0A59,   0x0A16, 0x0A3C},
-	 {0x0A5A,   0x0A17, 0x0A3C},
-	 {0x0A5B,   0x0A1C, 0x0A3C},
-	 {0x0A5C,   0x0A21, 0x0A3C},
-	 {0x0A5E,   0x0A2B, 0x0A3C},
-	 {0x0B5C,   0x0B21, 0x0B3C},
-	 {0x0B5D,   0x0B22, 0x0B3C},
-	 {0x0B5F,   0x0B2F, 0x0B3C},
-	 {0x0B48,   0x0B47, 0x0B56},
-	 {0x0B4B,   0x0B47, 0x0B3E},
-	 {0x0B4C,   0x0B47, 0x0B57},
-	 {0x0B94,   0x0B92, 0x0BD7},
-	 {0x0BCA,   0x0BC6, 0x0BBE},
-	 {0x0BCC,   0x0BC6, 0x0BD7},
-	 {0x0BCB,   0x0BC7, 0x0BBE},
-	 {0x0C48,   0x0C46, 0x0C56},
-	 {0x0CC0,   0x0CBF, 0x0CD5},
-	 {0x0CC7,   0x0CC6, 0x0CD5},
-	 {0x0CC8,   0x0CC6, 0x0CD6},
-	 {0x0CCA,   0x0CC6, 0x0CC2},
-	 {0x0D4A,   0x0D46, 0x0D3E},
-	 {0x0D4C,   0x0D46, 0x0D57},
-	 {0x0D4B,   0x0D47, 0x0D3E},
-	 {0x0E33,   0x0E4D, 0x0E32},
-	 {0x0EB3,   0x0ECD, 0x0EB2},
-	 {0x0F69,   0x0F40, 0x0FB5},
-	 {0x0F43,   0x0F42, 0x0FB7},
-	 {0x0F4D,   0x0F4C, 0x0FB7},
-	 {0x0F52,   0x0F51, 0x0FB7},
-	 {0x0F57,   0x0F56, 0x0FB7},
-	 {0x0F5C,   0x0F5B, 0x0FB7},
-	 {0x0F73,   0x0F72, 0x0F71},
-	 {0x0F75,   0x0F74, 0x0F71},
-	 {0x0F81,   0x0F80, 0x0F71},
-	 {0x0FB9,   0x0F90, 0x0FB5},
-	 {0x0F93,   0x0F92, 0x0FB7},
-	 {0x0F9D,   0x0F9C, 0x0FB7},
-	 {0x0FA2,   0x0FA1, 0x0FB7},
-	 {0x0FA7,   0x0FA6, 0x0FB7},
-	 {0x0FAC,   0x0FAB, 0x0FB7},
-	 {0x0F76,   0x0FB2, 0x0F80},
-	 {0x0F78,   0x0FB3, 0x0F80},
-	 {0x1FCD,   0x1FBF, 0x0300},
-	 {0x1FCE,   0x1FBF, 0x0301},
-	 {0x1FCF,   0x1FBF, 0x0342},
-	 {0x1FDD,   0x1FFE, 0x0300},
-	 {0x1FDE,   0x1FFE, 0x0301},
-	 {0x1FDF,   0x1FFE, 0x0342},
-	 {0x3094,   0x3046, 0x3099},
-	 {0x304C,   0x304B, 0x3099},
-	 {0x304E,   0x304D, 0x3099},
-	 {0x3050,   0x304F, 0x3099},
-	 {0x3052,   0x3051, 0x3099},
-	 {0x3054,   0x3053, 0x3099},
-	 {0x3056,   0x3055, 0x3099},
-	 {0x3058,   0x3057, 0x3099},
-	 {0x305A,   0x3059, 0x3099},
-	 {0x305C,   0x305B, 0x3099},
-	 {0x305E,   0x305D, 0x3099},
-	 {0x3060,   0x305F, 0x3099},
-	 {0x3062,   0x3061, 0x3099},
-	 {0x3065,   0x3064, 0x3099},
-	 {0x3067,   0x3066, 0x3099},
-	 {0x3069,   0x3068, 0x3099},
-	 {0x3070,   0x306F, 0x3099},
-	 {0x3071,   0x306F, 0x309A},
-	 {0x3073,   0x3072, 0x3099},
-	 {0x3074,   0x3072, 0x309A},
-	 {0x3076,   0x3075, 0x3099},
-	 {0x3077,   0x3075, 0x309A},
-	 {0x3079,   0x3078, 0x3099},
-	 {0x307A,   0x3078, 0x309A},
-	 {0x307C,   0x307B, 0x3099},
-	 {0x307D,   0x307B, 0x309A},
-	 {0x309E,   0x309D, 0x3099},
-	 {0x30F4,   0x30A6, 0x3099},
-	 {0x30AC,   0x30AB, 0x3099},
-	 {0x30AE,   0x30AD, 0x3099},
-	 {0x30B0,   0x30AF, 0x3099},
-	 {0x30B2,   0x30B1, 0x3099},
-	 {0x30B4,   0x30B3, 0x3099},
-	 {0x30B6,   0x30B5, 0x3099},
-	 {0x30B8,   0x30B7, 0x3099},
-	 {0x30BA,   0x30B9, 0x3099},
-	 {0x30BC,   0x30BB, 0x3099},
-	 {0x30BE,   0x30BD, 0x3099},
-	 {0x30C0,   0x30BF, 0x3099},
-	 {0x30C2,   0x30C1, 0x3099},
-	 {0x30C5,   0x30C4, 0x3099},
-	 {0x30C7,   0x30C6, 0x3099},
-	 {0x30C9,   0x30C8, 0x3099},
-	 {0x30D0,   0x30CF, 0x3099},
-	 {0x30D1,   0x30CF, 0x309A},
-	 {0x30D3,   0x30D2, 0x3099},
-	 {0x30D4,   0x30D2, 0x309A},
-	 {0x30D6,   0x30D5, 0x3099},
-	 {0x30D7,   0x30D5, 0x309A},
-	 {0x30D9,   0x30D8, 0x3099},
-	 {0x30DA,   0x30D8, 0x309A},
-	 {0x30DC,   0x30DB, 0x3099},
-	 {0x30DD,   0x30DB, 0x309A},
-	 {0x30F7,   0x30EF, 0x3099},
-	 {0x30F8,   0x30F0, 0x3099},
-	 {0x30F9,   0x30F1, 0x3099},
-	 {0x30FA,   0x30F2, 0x3099},
-	 {0x30FE,   0x30FD, 0x3099},
-};

Copied: trunk/teraterm/teraterm/uni_combining.map (from rev 6513, trunk/teraterm/teraterm/hfs_plus.map)
===================================================================
--- trunk/teraterm/teraterm/uni_combining.map	                        (rev 0)
+++ trunk/teraterm/teraterm/uni_combining.map	2016-10-27 03:06:43 UTC (rev 6514)
@@ -0,0 +1,686 @@
+typedef struct combining_map {
+	unsigned short precomposed;
+	unsigned short first_code;
+	unsigned short second_code;
+} combining_map_t;
+
+/*
+ * cf. http://developer.apple.com/technotes/tn/tn1150table.html
+ *
+ */
+static combining_map_t mapCombiningToPrecomposed[] = {
+	 {0x00C0,   0x0041, 0x0300},
+	 {0x00C1,   0x0041, 0x0301},
+	 {0x00C2,   0x0041, 0x0302},
+	 {0x00C3,   0x0041, 0x0303},
+	 {0x00C4,   0x0041, 0x0308},
+	 {0x00C5,   0x0041, 0x030A},
+	 {0x0100,   0x0041, 0x0304},
+	 {0x0102,   0x0041, 0x0306},
+	 {0x0104,   0x0041, 0x0328},
+	 {0x01CD,   0x0041, 0x030C},
+	 {0x0200,   0x0041, 0x030F},
+	 {0x0202,   0x0041, 0x0311},
+	 {0x1E00,   0x0041, 0x0325},
+	 {0x1EA0,   0x0041, 0x0323},
+	 {0x1EA2,   0x0041, 0x0309},
+	 {0x1E02,   0x0042, 0x0307},
+	 {0x1E04,   0x0042, 0x0323},
+	 {0x1E06,   0x0042, 0x0331},
+	 {0x00C7,   0x0043, 0x0327},
+	 {0x0106,   0x0043, 0x0301},
+	 {0x0108,   0x0043, 0x0302},
+	 {0x010A,   0x0043, 0x0307},
+	 {0x010C,   0x0043, 0x030C},
+	 {0x010E,   0x0044, 0x030C},
+	 {0x1E0A,   0x0044, 0x0307},
+	 {0x1E0C,   0x0044, 0x0323},
+	 {0x1E0E,   0x0044, 0x0331},
+	 {0x1E10,   0x0044, 0x0327},
+	 {0x1E12,   0x0044, 0x032D},
+	 {0x00C8,   0x0045, 0x0300},
+	 {0x00C9,   0x0045, 0x0301},
+	 {0x00CA,   0x0045, 0x0302},
+	 {0x00CB,   0x0045, 0x0308},
+	 {0x0112,   0x0045, 0x0304},
+	 {0x0114,   0x0045, 0x0306},
+	 {0x0116,   0x0045, 0x0307},
+	 {0x0118,   0x0045, 0x0328},
+	 {0x011A,   0x0045, 0x030C},
+	 {0x0204,   0x0045, 0x030F},
+	 {0x0206,   0x0045, 0x0311},
+	 {0x1E18,   0x0045, 0x032D},
+	 {0x1E1A,   0x0045, 0x0330},
+	 {0x1EB8,   0x0045, 0x0323},
+	 {0x1EBA,   0x0045, 0x0309},
+	 {0x1EBC,   0x0045, 0x0303},
+	 {0x1E1E,   0x0046, 0x0307},
+	 {0x011C,   0x0047, 0x0302},
+	 {0x011E,   0x0047, 0x0306},
+	 {0x0120,   0x0047, 0x0307},
+	 {0x0122,   0x0047, 0x0327},
+	 {0x01E6,   0x0047, 0x030C},
+	 {0x01F4,   0x0047, 0x0301},
+	 {0x1E20,   0x0047, 0x0304},
+	 {0x0124,   0x0048, 0x0302},
+	 {0x1E22,   0x0048, 0x0307},
+	 {0x1E24,   0x0048, 0x0323},
+	 {0x1E26,   0x0048, 0x0308},
+	 {0x1E28,   0x0048, 0x0327},
+	 {0x1E2A,   0x0048, 0x032E},
+	 {0x00CC,   0x0049, 0x0300},
+	 {0x00CD,   0x0049, 0x0301},
+	 {0x00CE,   0x0049, 0x0302},
+	 {0x00CF,   0x0049, 0x0308},
+	 {0x0128,   0x0049, 0x0303},
+	 {0x012A,   0x0049, 0x0304},
+	 {0x012C,   0x0049, 0x0306},
+	 {0x012E,   0x0049, 0x0328},
+	 {0x0130,   0x0049, 0x0307},
+	 {0x01CF,   0x0049, 0x030C},
+	 {0x0208,   0x0049, 0x030F},
+	 {0x020A,   0x0049, 0x0311},
+	 {0x1E2C,   0x0049, 0x0330},
+	 {0x1EC8,   0x0049, 0x0309},
+	 {0x1ECA,   0x0049, 0x0323},
+	 {0x0134,   0x004A, 0x0302},
+	 {0x0136,   0x004B, 0x0327},
+	 {0x01E8,   0x004B, 0x030C},
+	 {0x1E30,   0x004B, 0x0301},
+	 {0x1E32,   0x004B, 0x0323},
+	 {0x1E34,   0x004B, 0x0331},
+	 {0x0139,   0x004C, 0x0301},
+	 {0x013B,   0x004C, 0x0327},
+	 {0x013D,   0x004C, 0x030C},
+	 {0x1E36,   0x004C, 0x0323},
+	 {0x1E3A,   0x004C, 0x0331},
+	 {0x1E3C,   0x004C, 0x032D},
+	 {0x1E3E,   0x004D, 0x0301},
+	 {0x1E40,   0x004D, 0x0307},
+	 {0x1E42,   0x004D, 0x0323},
+	 {0x00D1,   0x004E, 0x0303},
+	 {0x0143,   0x004E, 0x0301},
+	 {0x0145,   0x004E, 0x0327},
+	 {0x0147,   0x004E, 0x030C},
+	 {0x1E44,   0x004E, 0x0307},
+	 {0x1E46,   0x004E, 0x0323},
+	 {0x1E48,   0x004E, 0x0331},
+	 {0x1E4A,   0x004E, 0x032D},
+	 {0x00D2,   0x004F, 0x0300},
+	 {0x00D3,   0x004F, 0x0301},
+	 {0x00D4,   0x004F, 0x0302},
+	 {0x00D5,   0x004F, 0x0303},
+	 {0x00D6,   0x004F, 0x0308},
+	 {0x014C,   0x004F, 0x0304},
+	 {0x014E,   0x004F, 0x0306},
+	 {0x0150,   0x004F, 0x030B},
+	 {0x01A0,   0x004F, 0x031B},
+	 {0x01D1,   0x004F, 0x030C},
+	 {0x01EA,   0x004F, 0x0328},
+	 {0x020C,   0x004F, 0x030F},
+	 {0x020E,   0x004F, 0x0311},
+	 {0x1ECC,   0x004F, 0x0323},
+	 {0x1ECE,   0x004F, 0x0309},
+	 {0x1E54,   0x0050, 0x0301},
+	 {0x1E56,   0x0050, 0x0307},
+	 {0x0154,   0x0052, 0x0301},
+	 {0x0156,   0x0052, 0x0327},
+	 {0x0158,   0x0052, 0x030C},
+	 {0x0210,   0x0052, 0x030F},
+	 {0x0212,   0x0052, 0x0311},
+	 {0x1E58,   0x0052, 0x0307},
+	 {0x1E5A,   0x0052, 0x0323},
+	 {0x1E5E,   0x0052, 0x0331},
+	 {0x015A,   0x0053, 0x0301},
+	 {0x015C,   0x0053, 0x0302},
+	 {0x015E,   0x0053, 0x0327},
+	 {0x0160,   0x0053, 0x030C},
+	 {0x1E60,   0x0053, 0x0307},
+	 {0x1E62,   0x0053, 0x0323},
+	 {0x0162,   0x0054, 0x0327},
+	 {0x0164,   0x0054, 0x030C},
+	 {0x1E6A,   0x0054, 0x0307},
+	 {0x1E6C,   0x0054, 0x0323},
+	 {0x1E6E,   0x0054, 0x0331},
+	 {0x1E70,   0x0054, 0x032D},
+	 {0x00D9,   0x0055, 0x0300},
+	 {0x00DA,   0x0055, 0x0301},
+	 {0x00DB,   0x0055, 0x0302},
+	 {0x00DC,   0x0055, 0x0308},
+	 {0x0168,   0x0055, 0x0303},
+	 {0x016A,   0x0055, 0x0304},
+	 {0x016C,   0x0055, 0x0306},
+	 {0x016E,   0x0055, 0x030A},
+	 {0x0170,   0x0055, 0x030B},
+	 {0x0172,   0x0055, 0x0328},
+	 {0x01AF,   0x0055, 0x031B},
+	 {0x01D3,   0x0055, 0x030C},
+	 {0x0214,   0x0055, 0x030F},
+	 {0x0216,   0x0055, 0x0311},
+	 {0x1E72,   0x0055, 0x0324},
+	 {0x1E74,   0x0055, 0x0330},
+	 {0x1E76,   0x0055, 0x032D},
+	 {0x1EE4,   0x0055, 0x0323},
+	 {0x1EE6,   0x0055, 0x0309},
+	 {0x1E7C,   0x0056, 0x0303},
+	 {0x1E7E,   0x0056, 0x0323},
+	 {0x0174,   0x0057, 0x0302},
+	 {0x1E80,   0x0057, 0x0300},
+	 {0x1E82,   0x0057, 0x0301},
+	 {0x1E84,   0x0057, 0x0308},
+	 {0x1E86,   0x0057, 0x0307},
+	 {0x1E88,   0x0057, 0x0323},
+	 {0x1E8A,   0x0058, 0x0307},
+	 {0x1E8C,   0x0058, 0x0308},
+	 {0x00DD,   0x0059, 0x0301},
+	 {0x0176,   0x0059, 0x0302},
+	 {0x0178,   0x0059, 0x0308},
+	 {0x1E8E,   0x0059, 0x0307},
+	 {0x1EF2,   0x0059, 0x0300},
+	 {0x1EF4,   0x0059, 0x0323},
+	 {0x1EF6,   0x0059, 0x0309},
+	 {0x1EF8,   0x0059, 0x0303},
+	 {0x0179,   0x005A, 0x0301},
+	 {0x017B,   0x005A, 0x0307},
+	 {0x017D,   0x005A, 0x030C},
+	 {0x1E90,   0x005A, 0x0302},
+	 {0x1E92,   0x005A, 0x0323},
+	 {0x1E94,   0x005A, 0x0331},
+	 {0x00E0,   0x0061, 0x0300},
+	 {0x00E1,   0x0061, 0x0301},
+	 {0x00E2,   0x0061, 0x0302},
+	 {0x00E3,   0x0061, 0x0303},
+	 {0x00E4,   0x0061, 0x0308},
+	 {0x00E5,   0x0061, 0x030A},
+	 {0x0101,   0x0061, 0x0304},
+	 {0x0103,   0x0061, 0x0306},
+	 {0x0105,   0x0061, 0x0328},
+	 {0x01CE,   0x0061, 0x030C},
+	 {0x0201,   0x0061, 0x030F},
+	 {0x0203,   0x0061, 0x0311},
+	 {0x1E01,   0x0061, 0x0325},
+	 {0x1EA1,   0x0061, 0x0323},
+	 {0x1EA3,   0x0061, 0x0309},
+	 {0x1E03,   0x0062, 0x0307},
+	 {0x1E05,   0x0062, 0x0323},
+	 {0x1E07,   0x0062, 0x0331},
+	 {0x00E7,   0x0063, 0x0327},
+	 {0x0107,   0x0063, 0x0301},
+	 {0x0109,   0x0063, 0x0302},
+	 {0x010B,   0x0063, 0x0307},
+	 {0x010D,   0x0063, 0x030C},
+	 {0x010F,   0x0064, 0x030C},
+	 {0x1E0B,   0x0064, 0x0307},
+	 {0x1E0D,   0x0064, 0x0323},
+	 {0x1E0F,   0x0064, 0x0331},
+	 {0x1E11,   0x0064, 0x0327},
+	 {0x1E13,   0x0064, 0x032D},
+	 {0x00E8,   0x0065, 0x0300},
+	 {0x00E9,   0x0065, 0x0301},
+	 {0x00EA,   0x0065, 0x0302},
+	 {0x00EB,   0x0065, 0x0308},
+	 {0x0113,   0x0065, 0x0304},
+	 {0x0115,   0x0065, 0x0306},
+	 {0x0117,   0x0065, 0x0307},
+	 {0x0119,   0x0065, 0x0328},
+	 {0x011B,   0x0065, 0x030C},
+	 {0x0205,   0x0065, 0x030F},
+	 {0x0207,   0x0065, 0x0311},
+	 {0x1E19,   0x0065, 0x032D},
+	 {0x1E1B,   0x0065, 0x0330},
+	 {0x1EB9,   0x0065, 0x0323},
+	 {0x1EBB,   0x0065, 0x0309},
+	 {0x1EBD,   0x0065, 0x0303},
+	 {0x1E1F,   0x0066, 0x0307},
+	 {0x011D,   0x0067, 0x0302},
+	 {0x011F,   0x0067, 0x0306},
+	 {0x0121,   0x0067, 0x0307},
+	 {0x0123,   0x0067, 0x0327},
+	 {0x01E7,   0x0067, 0x030C},
+	 {0x01F5,   0x0067, 0x0301},
+	 {0x1E21,   0x0067, 0x0304},
+	 {0x0125,   0x0068, 0x0302},
+	 {0x1E23,   0x0068, 0x0307},
+	 {0x1E25,   0x0068, 0x0323},
+	 {0x1E27,   0x0068, 0x0308},
+	 {0x1E29,   0x0068, 0x0327},
+	 {0x1E2B,   0x0068, 0x032E},
+	 {0x1E96,   0x0068, 0x0331},
+	 {0x00EC,   0x0069, 0x0300},
+	 {0x00ED,   0x0069, 0x0301},
+	 {0x00EE,   0x0069, 0x0302},
+	 {0x00EF,   0x0069, 0x0308},
+	 {0x0129,   0x0069, 0x0303},
+	 {0x012B,   0x0069, 0x0304},
+	 {0x012D,   0x0069, 0x0306},
+	 {0x012F,   0x0069, 0x0328},
+	 {0x01D0,   0x0069, 0x030C},
+	 {0x0209,   0x0069, 0x030F},
+	 {0x020B,   0x0069, 0x0311},
+	 {0x1E2D,   0x0069, 0x0330},
+	 {0x1EC9,   0x0069, 0x0309},
+	 {0x1ECB,   0x0069, 0x0323},
+	 {0x0135,   0x006A, 0x0302},
+	 {0x01F0,   0x006A, 0x030C},
+	 {0x0137,   0x006B, 0x0327},
+	 {0x01E9,   0x006B, 0x030C},
+	 {0x1E31,   0x006B, 0x0301},
+	 {0x1E33,   0x006B, 0x0323},
+	 {0x1E35,   0x006B, 0x0331},
+	 {0x013A,   0x006C, 0x0301},
+	 {0x013C,   0x006C, 0x0327},
+	 {0x013E,   0x006C, 0x030C},
+	 {0x1E37,   0x006C, 0x0323},
+	 {0x1E3B,   0x006C, 0x0331},
+	 {0x1E3D,   0x006C, 0x032D},
+	 {0x1E3F,   0x006D, 0x0301},
+	 {0x1E41,   0x006D, 0x0307},
+	 {0x1E43,   0x006D, 0x0323},
+	 {0x00F1,   0x006E, 0x0303},
+	 {0x0144,   0x006E, 0x0301},
+	 {0x0146,   0x006E, 0x0327},
+	 {0x0148,   0x006E, 0x030C},
+	 {0x1E45,   0x006E, 0x0307},
+	 {0x1E47,   0x006E, 0x0323},
+	 {0x1E49,   0x006E, 0x0331},
+	 {0x1E4B,   0x006E, 0x032D},
+	 {0x00F2,   0x006F, 0x0300},
+	 {0x00F3,   0x006F, 0x0301},
+	 {0x00F4,   0x006F, 0x0302},
+	 {0x00F5,   0x006F, 0x0303},
+	 {0x00F6,   0x006F, 0x0308},
+	 {0x014D,   0x006F, 0x0304},
+	 {0x014F,   0x006F, 0x0306},
+	 {0x0151,   0x006F, 0x030B},
+	 {0x01A1,   0x006F, 0x031B},
+	 {0x01D2,   0x006F, 0x030C},
+	 {0x01EB,   0x006F, 0x0328},
+	 {0x020D,   0x006F, 0x030F},
+	 {0x020F,   0x006F, 0x0311},
+	 {0x1ECD,   0x006F, 0x0323},
+	 {0x1ECF,   0x006F, 0x0309},
+	 {0x1E55,   0x0070, 0x0301},
+	 {0x1E57,   0x0070, 0x0307},
+	 {0x0155,   0x0072, 0x0301},
+	 {0x0157,   0x0072, 0x0327},
+	 {0x0159,   0x0072, 0x030C},
+	 {0x0211,   0x0072, 0x030F},
+	 {0x0213,   0x0072, 0x0311},
+	 {0x1E59,   0x0072, 0x0307},
+	 {0x1E5B,   0x0072, 0x0323},
+	 {0x1E5F,   0x0072, 0x0331},
+	 {0x015B,   0x0073, 0x0301},
+	 {0x015D,   0x0073, 0x0302},
+	 {0x015F,   0x0073, 0x0327},
+	 {0x0161,   0x0073, 0x030C},
+	 {0x1E61,   0x0073, 0x0307},
+	 {0x1E63,   0x0073, 0x0323},
+	 {0x0163,   0x0074, 0x0327},
+	 {0x0165,   0x0074, 0x030C},
+	 {0x1E6B,   0x0074, 0x0307},
+	 {0x1E6D,   0x0074, 0x0323},
+	 {0x1E6F,   0x0074, 0x0331},
+	 {0x1E71,   0x0074, 0x032D},
+	 {0x1E97,   0x0074, 0x0308},
+	 {0x00F9,   0x0075, 0x0300},
+	 {0x00FA,   0x0075, 0x0301},
+	 {0x00FB,   0x0075, 0x0302},
+	 {0x00FC,   0x0075, 0x0308},
+	 {0x0169,   0x0075, 0x0303},
+	 {0x016B,   0x0075, 0x0304},
+	 {0x016D,   0x0075, 0x0306},
+	 {0x016F,   0x0075, 0x030A},
+	 {0x0171,   0x0075, 0x030B},
+	 {0x0173,   0x0075, 0x0328},
+	 {0x01B0,   0x0075, 0x031B},
+	 {0x01D4,   0x0075, 0x030C},
+	 {0x0215,   0x0075, 0x030F},
+	 {0x0217,   0x0075, 0x0311},
+	 {0x1E73,   0x0075, 0x0324},
+	 {0x1E75,   0x0075, 0x0330},
+	 {0x1E77,   0x0075, 0x032D},
+	 {0x1EE5,   0x0075, 0x0323},
+	 {0x1EE7,   0x0075, 0x0309},
+	 {0x1E7D,   0x0076, 0x0303},
+	 {0x1E7F,   0x0076, 0x0323},
+	 {0x0175,   0x0077, 0x0302},
+	 {0x1E81,   0x0077, 0x0300},
+	 {0x1E83,   0x0077, 0x0301},
+	 {0x1E85,   0x0077, 0x0308},
+	 {0x1E87,   0x0077, 0x0307},
+	 {0x1E89,   0x0077, 0x0323},
+	 {0x1E98,   0x0077, 0x030A},
+	 {0x1E8B,   0x0078, 0x0307},
+	 {0x1E8D,   0x0078, 0x0308},
+	 {0x00FD,   0x0079, 0x0301},
+	 {0x00FF,   0x0079, 0x0308},
+	 {0x0177,   0x0079, 0x0302},
+	 {0x1E8F,   0x0079, 0x0307},
+	 {0x1E99,   0x0079, 0x030A},
+	 {0x1EF3,   0x0079, 0x0300},
+	 {0x1EF5,   0x0079, 0x0323},
+	 {0x1EF7,   0x0079, 0x0309},
+	 {0x1EF9,   0x0079, 0x0303},
+	 {0x017A,   0x007A, 0x0301},
+	 {0x017C,   0x007A, 0x0307},
+	 {0x017E,   0x007A, 0x030C},
+	 {0x1E91,   0x007A, 0x0302},
+	 {0x1E93,   0x007A, 0x0323},
+	 {0x1E95,   0x007A, 0x0331},
+	 {0x0385,   0x00A8, 0x030D},
+	 {0x1FC1,   0x00A8, 0x0342},
+	 {0x1FED,   0x00A8, 0x0300},
+	 {0x1FEE,   0x00A8, 0x0301},
+	 {0x01E2,   0x00C6, 0x0304},
+	 {0x01FC,   0x00C6, 0x0301},
+	 {0x01FE,   0x00D8, 0x0301},
+	 {0x01E3,   0x00E6, 0x0304},
+	 {0x01FD,   0x00E6, 0x0301},
+	 {0x01FF,   0x00F8, 0x0301},
+	 {0x1E9B,   0x017F, 0x0307},
+	 {0x04DA,   0x018F, 0x0308},
+	 {0x04EA,   0x019F, 0x0308},
+	 {0x01EE,   0x01B7, 0x030C},
+	 {0x04DB,   0x0259, 0x0308},
+	 {0x04EB,   0x0275, 0x0308},
+	 {0x01EF,   0x0292, 0x030C},
+	 {0x0310,   0x0306, 0x0307},
+	 {0x0344,   0x0308, 0x030D},
+	 {0x0386,   0x0391, 0x030D},
+	 {0x1F08,   0x0391, 0x0313},
+	 {0x1F09,   0x0391, 0x0314},
+	 {0x1FB8,   0x0391, 0x0306},
+	 {0x1FB9,   0x0391, 0x0304},
+	 {0x1FBA,   0x0391, 0x0300},
+	 {0x1FBB,   0x0391, 0x0301},
+	 {0x1FBC,   0x0391, 0x0345},
+	 {0x0388,   0x0395, 0x030D},
+	 {0x1F18,   0x0395, 0x0313},
+	 {0x1F19,   0x0395, 0x0314},
+	 {0x1FC8,   0x0395, 0x0300},
+	 {0x1FC9,   0x0395, 0x0301},
+	 {0x0389,   0x0397, 0x030D},
+	 {0x1F28,   0x0397, 0x0313},
+	 {0x1F29,   0x0397, 0x0314},
+	 {0x1FCA,   0x0397, 0x0300},
+	 {0x1FCB,   0x0397, 0x0301},
+	 {0x1FCC,   0x0397, 0x0345},
+	 {0x038A,   0x0399, 0x030D},
+	 {0x03AA,   0x0399, 0x0308},
+	 {0x1F38,   0x0399, 0x0313},
+	 {0x1F39,   0x0399, 0x0314},
+	 {0x1FD8,   0x0399, 0x0306},
+	 {0x1FD9,   0x0399, 0x0304},
+	 {0x1FDA,   0x0399, 0x0300},
+	 {0x1FDB,   0x0399, 0x0301},
+	 {0x038C,   0x039F, 0x030D},
+	 {0x1F48,   0x039F, 0x0313},
+	 {0x1F49,   0x039F, 0x0314},
+	 {0x1FF8,   0x039F, 0x0300},
+	 {0x1FF9,   0x039F, 0x0301},
+	 {0x1FEC,   0x03A1, 0x0314},
+	 {0x038E,   0x03A5, 0x030D},
+	 {0x03AB,   0x03A5, 0x0308},
+	 {0x1F59,   0x03A5, 0x0314},
+	 {0x1FE8,   0x03A5, 0x0306},
+	 {0x1FE9,   0x03A5, 0x0304},
+	 {0x1FEA,   0x03A5, 0x0300},
+	 {0x1FEB,   0x03A5, 0x0301},
+	 {0x038F,   0x03A9, 0x030D},
+	 {0x1F68,   0x03A9, 0x0313},
+	 {0x1F69,   0x03A9, 0x0314},
+	 {0x1FFA,   0x03A9, 0x0300},
+	 {0x1FFB,   0x03A9, 0x0301},
+	 {0x1FFC,   0x03A9, 0x0345},
+	 {0x03AC,   0x03B1, 0x030D},
+	 {0x1F00,   0x03B1, 0x0313},
+	 {0x1F01,   0x03B1, 0x0314},
+	 {0x1F70,   0x03B1, 0x0300},
+	 {0x1F71,   0x03B1, 0x0301},
+	 {0x1FB0,   0x03B1, 0x0306},
+	 {0x1FB1,   0x03B1, 0x0304},
+	 {0x1FB3,   0x03B1, 0x0345},
+	 {0x1FB6,   0x03B1, 0x0342},
+	 {0x03AD,   0x03B5, 0x030D},
+	 {0x1F10,   0x03B5, 0x0313},
+	 {0x1F11,   0x03B5, 0x0314},
+	 {0x1F72,   0x03B5, 0x0300},
+	 {0x1F73,   0x03B5, 0x0301},
+	 {0x03AE,   0x03B7, 0x030D},
+	 {0x1F20,   0x03B7, 0x0313},
+	 {0x1F21,   0x03B7, 0x0314},
+	 {0x1F74,   0x03B7, 0x0300},
+	 {0x1F75,   0x03B7, 0x0301},
+	 {0x1FC3,   0x03B7, 0x0345},
+	 {0x1FC6,   0x03B7, 0x0342},
+	 {0x03AF,   0x03B9, 0x030D},
+	 {0x03CA,   0x03B9, 0x0308},
+	 {0x1F30,   0x03B9, 0x0313},
+	 {0x1F31,   0x03B9, 0x0314},
+	 {0x1F76,   0x03B9, 0x0300},
+	 {0x1F77,   0x03B9, 0x0301},
+	 {0x1FD0,   0x03B9, 0x0306},
+	 {0x1FD1,   0x03B9, 0x0304},
+	 {0x1FD6,   0x03B9, 0x0342},
+	 {0x03CC,   0x03BF, 0x030D},
+	 {0x1F40,   0x03BF, 0x0313},
+	 {0x1F41,   0x03BF, 0x0314},
+	 {0x1F78,   0x03BF, 0x0300},
+	 {0x1F79,   0x03BF, 0x0301},
+	 {0x1FE4,   0x03C1, 0x0313},
+	 {0x1FE5,   0x03C1, 0x0314},
+	 {0x03CB,   0x03C5, 0x0308},
+	 {0x03CD,   0x03C5, 0x030D},
+	 {0x1F50,   0x03C5, 0x0313},
+	 {0x1F51,   0x03C5, 0x0314},
+	 {0x1F7A,   0x03C5, 0x0300},
+	 {0x1F7B,   0x03C5, 0x0301},
+	 {0x1FE0,   0x03C5, 0x0306},
+	 {0x1FE1,   0x03C5, 0x0304},
+	 {0x1FE6,   0x03C5, 0x0342},
+	 {0x03CE,   0x03C9, 0x030D},
+	 {0x1F60,   0x03C9, 0x0313},
+	 {0x1F61,   0x03C9, 0x0314},
+	 {0x1F7C,   0x03C9, 0x0300},
+	 {0x1F7D,   0x03C9, 0x0301},
+	 {0x1FF3,   0x03C9, 0x0345},
+	 {0x1FF6,   0x03C9, 0x0342},
+	 {0x03D3,   0x03D2, 0x030D},
+	 {0x03D4,   0x03D2, 0x0308},
+	 {0x0407,   0x0406, 0x0308},
+	 {0x04D0,   0x0410, 0x0306},
+	 {0x04D2,   0x0410, 0x0308},
+	 {0x0403,   0x0413, 0x0301},
+	 {0x0401,   0x0415, 0x0308},
+	 {0x04D6,   0x0415, 0x0306},
+	 {0x04C1,   0x0416, 0x0306},
+	 {0x04DC,   0x0416, 0x0308},
+	 {0x04DE,   0x0417, 0x0308},
+	 {0x0419,   0x0418, 0x0306},
+	 {0x04E2,   0x0418, 0x0304},
+	 {0x04E4,   0x0418, 0x0308},
+	 {0x040C,   0x041A, 0x0301},
+	 {0x04E6,   0x041E, 0x0308},
+	 {0x040E,   0x0423, 0x0306},
+	 {0x04EE,   0x0423, 0x0304},
+	 {0x04F0,   0x0423, 0x0308},
+	 {0x04F2,   0x0423, 0x030B},
+	 {0x04F4,   0x0427, 0x0308},
+	 {0x04F8,   0x042B, 0x0308},
+	 {0x04D1,   0x0430, 0x0306},
+	 {0x04D3,   0x0430, 0x0308},
+	 {0x0453,   0x0433, 0x0301},
+	 {0x0451,   0x0435, 0x0308},
+	 {0x04D7,   0x0435, 0x0306},
+	 {0x04C2,   0x0436, 0x0306},
+	 {0x04DD,   0x0436, 0x0308},
+	 {0x04DF,   0x0437, 0x0308},
+	 {0x0439,   0x0438, 0x0306},
+	 {0x04E3,   0x0438, 0x0304},
+	 {0x04E5,   0x0438, 0x0308},
+	 {0x045C,   0x043A, 0x0301},
+	 {0x04E7,   0x043E, 0x0308},
+	 {0x045E,   0x0443, 0x0306},
+	 {0x04EF,   0x0443, 0x0304},
+	 {0x04F1,   0x0443, 0x0308},
+	 {0x04F3,   0x0443, 0x030B},
+	 {0x04F5,   0x0447, 0x0308},
+	 {0x04F9,   0x044B, 0x0308},
+	 {0x0457,   0x0456, 0x0308},
+	 {0x0476,   0x0474, 0x030F},
+	 {0x0477,   0x0475, 0x030F},
+	 {0xFB2E,   0x05D0, 0x05B7},
+	 {0xFB2F,   0x05D0, 0x05B8},
+	 {0xFB30,   0x05D0, 0x05BC},
+	 {0xFB31,   0x05D1, 0x05BC},
+	 {0xFB4C,   0x05D1, 0x05BF},
+	 {0xFB32,   0x05D2, 0x05BC},
+	 {0xFB33,   0x05D3, 0x05BC},
+	 {0xFB34,   0x05D4, 0x05BC},
+	 {0xFB35,   0x05D5, 0x05BC},
+	 {0xFB4B,   0x05D5, 0x05B9},
+	 {0xFB36,   0x05D6, 0x05BC},
+	 {0xFB38,   0x05D8, 0x05BC},
+	 {0xFB39,   0x05D9, 0x05BC},
+	 {0xFB3A,   0x05DA, 0x05BC},
+	 {0xFB3B,   0x05DB, 0x05BC},
+	 {0xFB4D,   0x05DB, 0x05BF},
+	 {0xFB3C,   0x05DC, 0x05BC},
+	 {0xFB3E,   0x05DE, 0x05BC},
+	 {0xFB40,   0x05E0, 0x05BC},
+	 {0xFB41,   0x05E1, 0x05BC},
+	 {0xFB43,   0x05E3, 0x05BC},
+	 {0xFB44,   0x05E4, 0x05BC},
+	 {0xFB4E,   0x05E4, 0x05BF},
+	 {0xFB46,   0x05E6, 0x05BC},
+	 {0xFB47,   0x05E7, 0x05BC},
+	 {0xFB48,   0x05E8, 0x05BC},
+	 {0xFB2A,   0x05E9, 0x05C1},
+	 {0xFB2B,   0x05E9, 0x05C2},
+	 {0xFB49,   0x05E9, 0x05BC},
+	 {0xFB4A,   0x05EA, 0x05BC},
+	 {0xFB1F,   0x05F2, 0x05B7},
+	 {0x0958,   0x0915, 0x093C},
+	 {0x0959,   0x0916, 0x093C},
+	 {0x095A,   0x0917, 0x093C},
+	 {0x095B,   0x091C, 0x093C},
+	 {0x095C,   0x0921, 0x093C},
+	 {0x095D,   0x0922, 0x093C},
+	 {0x0929,   0x0928, 0x093C},
+	 {0x095E,   0x092B, 0x093C},
+	 {0x095F,   0x092F, 0x093C},
+	 {0x0931,   0x0930, 0x093C},
+	 {0x0934,   0x0933, 0x093C},
+	 {0x09DC,   0x09A1, 0x09BC},
+	 {0x09DD,   0x09A2, 0x09BC},
+	 {0x09B0,   0x09AC, 0x09BC},
+	 {0x09DF,   0x09AF, 0x09BC},
+	 {0x09CB,   0x09C7, 0x09BE},
+	 {0x09CC,   0x09C7, 0x09D7},
+	 {0x0A59,   0x0A16, 0x0A3C},
+	 {0x0A5A,   0x0A17, 0x0A3C},
+	 {0x0A5B,   0x0A1C, 0x0A3C},
+	 {0x0A5C,   0x0A21, 0x0A3C},
+	 {0x0A5E,   0x0A2B, 0x0A3C},
+	 {0x0B5C,   0x0B21, 0x0B3C},
+	 {0x0B5D,   0x0B22, 0x0B3C},
+	 {0x0B5F,   0x0B2F, 0x0B3C},
+	 {0x0B48,   0x0B47, 0x0B56},
+	 {0x0B4B,   0x0B47, 0x0B3E},
+	 {0x0B4C,   0x0B47, 0x0B57},
+	 {0x0B94,   0x0B92, 0x0BD7},
+	 {0x0BCA,   0x0BC6, 0x0BBE},
+	 {0x0BCC,   0x0BC6, 0x0BD7},
+	 {0x0BCB,   0x0BC7, 0x0BBE},
+	 {0x0C48,   0x0C46, 0x0C56},
+	 {0x0CC0,   0x0CBF, 0x0CD5},
+	 {0x0CC7,   0x0CC6, 0x0CD5},
+	 {0x0CC8,   0x0CC6, 0x0CD6},
+	 {0x0CCA,   0x0CC6, 0x0CC2},
+	 {0x0D4A,   0x0D46, 0x0D3E},
+	 {0x0D4C,   0x0D46, 0x0D57},
+	 {0x0D4B,   0x0D47, 0x0D3E},
+	 {0x0E33,   0x0E4D, 0x0E32},
+	 {0x0EB3,   0x0ECD, 0x0EB2},
+	 {0x0F69,   0x0F40, 0x0FB5},
+	 {0x0F43,   0x0F42, 0x0FB7},
+	 {0x0F4D,   0x0F4C, 0x0FB7},
+	 {0x0F52,   0x0F51, 0x0FB7},
+	 {0x0F57,   0x0F56, 0x0FB7},
+	 {0x0F5C,   0x0F5B, 0x0FB7},
+	 {0x0F73,   0x0F72, 0x0F71},
+	 {0x0F75,   0x0F74, 0x0F71},
+	 {0x0F81,   0x0F80, 0x0F71},
+	 {0x0FB9,   0x0F90, 0x0FB5},
+	 {0x0F93,   0x0F92, 0x0FB7},
+	 {0x0F9D,   0x0F9C, 0x0FB7},
+	 {0x0FA2,   0x0FA1, 0x0FB7},
+	 {0x0FA7,   0x0FA6, 0x0FB7},
+	 {0x0FAC,   0x0FAB, 0x0FB7},
+	 {0x0F76,   0x0FB2, 0x0F80},
+	 {0x0F78,   0x0FB3, 0x0F80},
+	 {0x1FCD,   0x1FBF, 0x0300},
+	 {0x1FCE,   0x1FBF, 0x0301},
+	 {0x1FCF,   0x1FBF, 0x0342},
+	 {0x1FDD,   0x1FFE, 0x0300},
+	 {0x1FDE,   0x1FFE, 0x0301},
+	 {0x1FDF,   0x1FFE, 0x0342},
+	 {0x3094,   0x3046, 0x3099},
+	 {0x304C,   0x304B, 0x3099},
+	 {0x304E,   0x304D, 0x3099},
+	 {0x3050,   0x304F, 0x3099},
+	 {0x3052,   0x3051, 0x3099},
+	 {0x3054,   0x3053, 0x3099},
+	 {0x3056,   0x3055, 0x3099},
+	 {0x3058,   0x3057, 0x3099},
+	 {0x305A,   0x3059, 0x3099},
+	 {0x305C,   0x305B, 0x3099},
+	 {0x305E,   0x305D, 0x3099},
+	 {0x3060,   0x305F, 0x3099},
+	 {0x3062,   0x3061, 0x3099},
+	 {0x3065,   0x3064, 0x3099},
+	 {0x3067,   0x3066, 0x3099},
+	 {0x3069,   0x3068, 0x3099},
+	 {0x3070,   0x306F, 0x3099},
+	 {0x3071,   0x306F, 0x309A},
+	 {0x3073,   0x3072, 0x3099},
+	 {0x3074,   0x3072, 0x309A},
+	 {0x3076,   0x3075, 0x3099},
+	 {0x3077,   0x3075, 0x309A},
+	 {0x3079,   0x3078, 0x3099},
+	 {0x307A,   0x3078, 0x309A},
+	 {0x307C,   0x307B, 0x3099},
+	 {0x307D,   0x307B, 0x309A},
+	 {0x309E,   0x309D, 0x3099},
+	 {0x30F4,   0x30A6, 0x3099},
+	 {0x30AC,   0x30AB, 0x3099},
+	 {0x30AE,   0x30AD, 0x3099},
+	 {0x30B0,   0x30AF, 0x3099},
+	 {0x30B2,   0x30B1, 0x3099},
+	 {0x30B4,   0x30B3, 0x3099},
+	 {0x30B6,   0x30B5, 0x3099},
+	 {0x30B8,   0x30B7, 0x3099},
+	 {0x30BA,   0x30B9, 0x3099},
+	 {0x30BC,   0x30BB, 0x3099},
+	 {0x30BE,   0x30BD, 0x3099},
+	 {0x30C0,   0x30BF, 0x3099},
+	 {0x30C2,   0x30C1, 0x3099},
+	 {0x30C5,   0x30C4, 0x3099},
+	 {0x30C7,   0x30C6, 0x3099},
+	 {0x30C9,   0x30C8, 0x3099},
+	 {0x30D0,   0x30CF, 0x3099},
+	 {0x30D1,   0x30CF, 0x309A},
+	 {0x30D3,   0x30D2, 0x3099},
+	 {0x30D4,   0x30D2, 0x309A},
+	 {0x30D6,   0x30D5, 0x3099},
+	 {0x30D7,   0x30D5, 0x309A},
+	 {0x30D9,   0x30D8, 0x3099},
+	 {0x30DA,   0x30D8, 0x309A},
+	 {0x30DC,   0x30DB, 0x3099},
+	 {0x30DD,   0x30DB, 0x309A},
+	 {0x30F7,   0x30EF, 0x3099},
+	 {0x30F8,   0x30F0, 0x3099},
+	 {0x30F9,   0x30F1, 0x3099},
+	 {0x30FA,   0x30F2, 0x3099},
+	 {0x30FE,   0x30FD, 0x3099},
+};

Modified: trunk/teraterm/teraterm/vtterm.c
===================================================================
--- trunk/teraterm/teraterm/vtterm.c	2016-10-27 03:06:40 UTC (rev 6513)
+++ trunk/teraterm/teraterm/vtterm.c	2016-10-27 03:06:43 UTC (rev 6514)
@@ -5187,12 +5187,12 @@
 
 
 //
-// UTF-8 for Mac OS X(HFS plus)
+// Unicode Combining Character Support
 //
-#include "hfs_plus.map"
+#include "uni_combining.map"
 
-unsigned short GetIllegalUnicode(int start_index, unsigned short first_code, unsigned short code,
-								 hfsplus_codemap_t *table, int tmax)
+unsigned short GetPrecomposedChar(int start_index, unsigned short first_code, unsigned short code,
+								 combining_map_t *table, int tmax)
 {
 	unsigned short result = 0;
 	int i;
@@ -5203,7 +5203,7 @@
 		}
 
 		if (table[i].second_code == code) {
-			result = table[i].illegal_code;
+			result = table[i].precomposed;
 			break;
 		}
 	}
@@ -5211,7 +5211,7 @@
 	return (result);
 }
 
-int GetIndexOfHFSPlusFirstCode(unsigned short code, hfsplus_codemap_t *table, int tmax)
+int GetIndexOfCombiningFirstCode(unsigned short code, combining_map_t *table, int tmax)
 {
 	int low, mid, high;
 	int index = -1;
@@ -5296,13 +5296,13 @@
 }
 
 // UTF-8\x82Ŏ\xF3\x90M\x83f\x81[\x83^\x82\xF0\x8F\x88\x97\x9D\x82\xB7\x82\xE9
-BOOL ParseFirstUTF8(BYTE b, int hfsplus_mode)
+BOOL ParseFirstUTF8(BYTE b, int proc_combining)
 // returns TRUE if b is processed
 //  (actually allways returns TRUE)
 {
 	static BYTE buf[3];
 	static int count = 0;
-	static int maybe_hfsplus = 0;
+	static int can_combining = 0;
 	static unsigned int first_code;
 	static int first_code_index;
 
@@ -5317,9 +5317,9 @@
 		// 1\x83o\x83C\x83g\x96ڂ\xA8\x82\xE6\x82\xD12\x83o\x83C\x83g\x96ڂ\xAAASCII\x82̏ꍇ\x82́A\x82\xB7\x82ׂ\xC4ASCII\x8Fo\x97͂Ƃ\xB7\x82\xE9\x81B
 		// 1\x83o\x83C\x83g\x96ڂ\xAAC1\x90\xA7\x8C䕶\x8E\x9A(0x80-0x9f)\x82̏ꍇ\x82\xE0\x93\xAF\x97l\x81B
 		if (count == 0 || count == 1) {
-			if (hfsplus_mode == 1 && maybe_hfsplus == 1) {
+			if (proc_combining == 1 && can_combining == 1) {
 				UnicodeToCP932(first_code);
-				maybe_hfsplus = 0;
+				can_combining = 0;
 			}
 
 			if (count == 1) {
@@ -5343,9 +5343,9 @@
 	if ((buf[0] & 0xe0) == 0xc0) {
 		if ((buf[1] & 0xc0) == 0x80) {
 
-			if (hfsplus_mode == 1 && maybe_hfsplus == 1) {
+			if (proc_combining == 1 && can_combining == 1) {
 				UnicodeToCP932(first_code);
-				maybe_hfsplus = 0;
+				can_combining = 0;
 			}
 
 			code = ((buf[0] & 0x1f) << 6);
@@ -5378,32 +5378,32 @@
 		code |= ((buf[1] & 0x3f) << 6);
 		code |= ((buf[2] & 0x3f));
 
-		if (hfsplus_mode == 1) {
-			if (maybe_hfsplus == 0) {
-				if ((first_code_index = GetIndexOfHFSPlusFirstCode(
-						code, mapHFSPlusUnicode, MAPSIZE(mapHFSPlusUnicode)
+		if (proc_combining == 1) {
+			if (can_combining == 0) {
+				if ((first_code_index = GetIndexOfCombiningFirstCode(
+						code, mapCombiningToPrecomposed, MAPSIZE(mapCombiningToPrecomposed)
 						)) != -1) {
-					maybe_hfsplus = 1;
+					can_combining = 1;
 					first_code = code;
 					count = 0;
 					return (TRUE);
 				}
 			} else {
-				maybe_hfsplus = 0;
-				cset = GetIllegalUnicode(first_code_index, first_code, code, mapHFSPlusUnicode, MAPSIZE(mapHFSPlusUnicode));
+				can_combining = 0;
+				cset = GetPrecomposedChar(first_code_index, first_code, code, mapCombiningToPrecomposed, MAPSIZE(mapCombiningToPrecomposed));
 				if (cset != 0) { // success
 					code = cset;
 
 				} else { // error
 					// 2\x82‚߂̕\xB6\x8E\x9A\x82\xAA\x94\xBC\x91\xF7\x93_\x82\xCC1\x95\xB6\x8E\x9A\x96ڂɑ\x8A\x93\x96\x82\xB7\x82\xE9\x8Fꍇ\x82́A\x8Dēx\x8C\x9F\x8D\xF5\x82𑱂\xAF\x82\xE9\x81B(2005.10.15 yutaka)
-					if ((first_code_index = GetIndexOfHFSPlusFirstCode(
-							code, mapHFSPlusUnicode, MAPSIZE(mapHFSPlusUnicode)
+					if ((first_code_index = GetIndexOfCombiningFirstCode(
+							code, mapCombiningToPrecomposed, MAPSIZE(mapCombiningToPrecomposed)
 							)) != -1) {
 
 						// 1\x82‚߂̕\xB6\x8E\x9A\x82͂\xBB\x82̂܂܏o\x97͂\xB7\x82\xE9
 						UnicodeToCP932(first_code);
 
-						maybe_hfsplus = 1;
+						can_combining = 1;
 						first_code = code;
 						count = 0;
 						return (TRUE);



Ttssh2-commit メーリングリストの案内
Back to archive index