https://git.reactos.org/?p=reactos.git;a=commitdiff;h=3c82e46ef1fc058ac8237e...
commit 3c82e46ef1fc058ac8237ef17706de7292df3319 Author: Ștefan Fulea stefan.fulea@mail.com AuthorDate: Sat Sep 15 20:59:55 2018 +0300 Commit: Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org CommitDate: Sat Dec 8 18:50:47 2018 +0100
[DLL:KEYBOARD] Add a dead keys transformations collection. (#861)
It contains all the Unicode characters that can be formed with a given dead key (i.e. combining character). Keyboard layouts with dead keys may find these useful.
CORE-15056 --- dll/keyboard/kbdrost/deadkeys/acute_acc | 40 +++++++++++++++++++++++++ dll/keyboard/kbdrost/deadkeys/breve | 22 ++++++++++++++ dll/keyboard/kbdrost/deadkeys/caron | 40 +++++++++++++++++++++++++ dll/keyboard/kbdrost/deadkeys/circumflex | 32 ++++++++++++++++++++ dll/keyboard/kbdrost/deadkeys/comma_below | 10 +++++++ dll/keyboard/kbdrost/deadkeys/dbl_acute_acc | 10 +++++++ dll/keyboard/kbdrost/deadkeys/dot_above | 45 +++++++++++++++++++++++++++++ dll/keyboard/kbdrost/deadkeys/grave_acc | 22 ++++++++++++++ dll/keyboard/kbdrost/deadkeys/ogonek | 16 ++++++++++ dll/keyboard/kbdrost/deadkeys/ring_above | 14 +++++++++ dll/keyboard/kbdrost/deadkeys/tilde | 22 ++++++++++++++ 11 files changed, 273 insertions(+)
diff --git a/dll/keyboard/kbdrost/deadkeys/acute_acc b/dll/keyboard/kbdrost/deadkeys/acute_acc new file mode 100644 index 0000000000..af7bc5b0ff --- /dev/null +++ b/dll/keyboard/kbdrost/deadkeys/acute_acc @@ -0,0 +1,40 @@ +/* + * COMBINING ACUTE ACCENT + * The dead key transformation set was defined by checking the availability of + * the resulting letters in Unicode character table: https://unicode-table.com + */ + + { DEADTRANS(L'a', 0x0301, 0x00E1, 0x00) }, + { DEADTRANS(L'A', 0x0301, 0x00C1, 0x00) }, + { DEADTRANS(L'c', 0x0301, 0x0107, 0x00) }, + { DEADTRANS(L'C', 0x0301, 0x0106, 0x00) }, + { DEADTRANS(L'e', 0x0301, 0x00E9, 0x00) }, + { DEADTRANS(L'E', 0x0301, 0x00C9, 0x00) }, + { DEADTRANS(L'g', 0x0301, 0x01F4, 0x00) }, + { DEADTRANS(L'G', 0x0301, 0x01F5, 0x00) }, + { DEADTRANS(L'i', 0x0301, 0x00ED, 0x00) }, + { DEADTRANS(L'I', 0x0301, 0x00CD, 0x00) }, + { DEADTRANS(L'k', 0x0301, 0x1E31, 0x00) }, + { DEADTRANS(L'K', 0x0301, 0x1E30, 0x00) }, + { DEADTRANS(L'l', 0x0301, 0x013A, 0x00) }, + { DEADTRANS(L'L', 0x0301, 0x0139, 0x00) }, + { DEADTRANS(L'm', 0x0301, 0x1E3F, 0x00) }, + { DEADTRANS(L'M', 0x0301, 0x1E3E, 0x00) }, + { DEADTRANS(L'n', 0x0301, 0x0144, 0x00) }, + { DEADTRANS(L'N', 0x0301, 0x0143, 0x00) }, + { DEADTRANS(L'o', 0x0301, 0x00F3, 0x00) }, + { DEADTRANS(L'O', 0x0301, 0x00D3, 0x00) }, + { DEADTRANS(L'p', 0x0301, 0x1E55, 0x00) }, + { DEADTRANS(L'P', 0x0301, 0x1E54, 0x00) }, + { DEADTRANS(L'r', 0x0301, 0x0155, 0x00) }, + { DEADTRANS(L'R', 0x0301, 0x0154, 0x00) }, + { DEADTRANS(L's', 0x0301, 0x015B, 0x00) }, + { DEADTRANS(L'S', 0x0301, 0x015A, 0x00) }, + { DEADTRANS(L'u', 0x0301, 0x00FA, 0x00) }, + { DEADTRANS(L'U', 0x0301, 0x00DA, 0x00) }, + { DEADTRANS(L'w', 0x0301, 0x1E83, 0x00) }, + { DEADTRANS(L'W', 0x0301, 0x1E82, 0x00) }, + { DEADTRANS(L'y', 0x0301, 0x00FD, 0x00) }, + { DEADTRANS(L'Y', 0x0301, 0x00DD, 0x00) }, + { DEADTRANS(L'z', 0x0301, 0x017A, 0x00) }, + { DEADTRANS(L'Z', 0x0301, 0x0179, 0x00) }, diff --git a/dll/keyboard/kbdrost/deadkeys/breve b/dll/keyboard/kbdrost/deadkeys/breve new file mode 100644 index 0000000000..f6ec412c16 --- /dev/null +++ b/dll/keyboard/kbdrost/deadkeys/breve @@ -0,0 +1,22 @@ +/* + * COMBINING BREVE + * The dead key transformation set was defined by checking the availability of + * the resulting letters in Unicode character table: https://unicode-table.com + */ + + { DEADTRANS(L'a', 0x0306, 0x0103, 0x00) }, + { DEADTRANS(L'A', 0x0306, 0x0102, 0x00) }, + { DEADTRANS(L'e', 0x0306, 0x0115, 0x00) }, + { DEADTRANS(L'E', 0x0306, 0x0114, 0x00) }, + { DEADTRANS(L'g', 0x0306, 0x011F, 0x00) }, + { DEADTRANS(L'G', 0x0306, 0x011E, 0x00) }, + { DEADTRANS(L'i', 0x0306, 0x012D, 0x00) }, + { DEADTRANS(L'I', 0x0306, 0x012C, 0x00) }, + { DEADTRANS(L'i', 0x0306, 0x012D, 0x00) }, + { DEADTRANS(L'I', 0x0306, 0x012C, 0x00) }, + { DEADTRANS(L'o', 0x0306, 0x014F, 0x00) }, + { DEADTRANS(L'O', 0x0306, 0x014E, 0x00) }, + { DEADTRANS(L'u', 0x0306, 0x016D, 0x00) }, + { DEADTRANS(L'U', 0x0306, 0x016C, 0x00) }, + { DEADTRANS(L'u', 0x0306, 0x016D, 0x00) }, + { DEADTRANS(L'U', 0x0306, 0x016C, 0x00) }, diff --git a/dll/keyboard/kbdrost/deadkeys/caron b/dll/keyboard/kbdrost/deadkeys/caron new file mode 100644 index 0000000000..2e73970dfb --- /dev/null +++ b/dll/keyboard/kbdrost/deadkeys/caron @@ -0,0 +1,40 @@ +/* + * COMBINING CARON + * The dead key transformation set was defined by checking the availability of + * the resulting letters in Unicode character table: https://unicode-table.com + */ + + { DEADTRANS(L'a', 0x030C, 0x01CE, 0x00) }, + { DEADTRANS(L'A', 0x030C, 0x01CD, 0x00) }, + { DEADTRANS(L'c', 0x030C, 0x010D, 0x00) }, + { DEADTRANS(L'C', 0x030C, 0x010C, 0x00) }, + { DEADTRANS(L'd', 0x030C, 0x010F, 0x00) }, + { DEADTRANS(L'D', 0x030C, 0x010E, 0x00) }, + { DEADTRANS(L'e', 0x030C, 0x011B, 0x00) }, + { DEADTRANS(L'E', 0x030C, 0x011A, 0x00) }, + { DEADTRANS(L'g', 0x030C, 0x01E7, 0x00) }, + { DEADTRANS(L'G', 0x030C, 0x01E6, 0x00) }, + { DEADTRANS(L'h', 0x030C, 0x021F, 0x00) }, + { DEADTRANS(L'H', 0x030C, 0x021E, 0x00) }, + { DEADTRANS(L'i', 0x030C, 0x01D0, 0x00) }, + { DEADTRANS(L'I', 0x030C, 0x01CF, 0x00) }, + { DEADTRANS(L'j', 0x030C, 0x01F0, 0x00) }, + /* no Unicode capital J with caron */ + { DEADTRANS(L'k', 0x030C, 0x01E9, 0x00) }, + { DEADTRANS(L'K', 0x030C, 0x01E8, 0x00) }, + { DEADTRANS(L'l', 0x030C, 0x013E, 0x00) }, + { DEADTRANS(L'L', 0x030C, 0x013D, 0x00) }, + { DEADTRANS(L'n', 0x030C, 0x0148, 0x00) }, + { DEADTRANS(L'N', 0x030C, 0x0147, 0x00) }, + { DEADTRANS(L'o', 0x030C, 0x01D2, 0x00) }, + { DEADTRANS(L'O', 0x030C, 0x01D1, 0x00) }, + { DEADTRANS(L'r', 0x030C, 0x0159, 0x00) }, + { DEADTRANS(L'R', 0x030C, 0x0158, 0x00) }, + { DEADTRANS(L's', 0x030C, 0x0161, 0x00) }, + { DEADTRANS(L'S', 0x030C, 0x0160, 0x00) }, + { DEADTRANS(L't', 0x030C, 0x0165, 0x00) }, + { DEADTRANS(L'T', 0x030C, 0x0164, 0x00) }, + { DEADTRANS(L'u', 0x030C, 0x01D4, 0x00) }, + { DEADTRANS(L'U', 0x030C, 0x01D3, 0x00) }, + { DEADTRANS(L'z', 0x030C, 0x017E, 0x00) }, + { DEADTRANS(L'Z', 0x030C, 0x017D, 0x00) }, diff --git a/dll/keyboard/kbdrost/deadkeys/circumflex b/dll/keyboard/kbdrost/deadkeys/circumflex new file mode 100644 index 0000000000..142a7faaed --- /dev/null +++ b/dll/keyboard/kbdrost/deadkeys/circumflex @@ -0,0 +1,32 @@ +/* + * COMBINING CIRCUMFLEX + * The dead key transformation set was defined by checking the availability of + * the resulting letters in Unicode character table: https://unicode-table.com + */ + + { DEADTRANS(L'a', 0x0302, 0x00E2, 0x00) }, + { DEADTRANS(L'A', 0x0302, 0x00C2, 0x00) }, + { DEADTRANS(L'c', 0x0302, 0x0109, 0x00) }, + { DEADTRANS(L'C', 0x0302, 0x0108, 0x00) }, + { DEADTRANS(L'e', 0x0302, 0x00EA, 0x00) }, + { DEADTRANS(L'E', 0x0302, 0x00CA, 0x00) }, + { DEADTRANS(L'g', 0x0302, 0x011D, 0x00) }, + { DEADTRANS(L'G', 0x0302, 0x011C, 0x00) }, + { DEADTRANS(L'h', 0x0302, 0x0125, 0x00) }, + { DEADTRANS(L'H', 0x0302, 0x0124, 0x00) }, + { DEADTRANS(L'i', 0x0302, 0x00EE, 0x00) }, + { DEADTRANS(L'I', 0x0302, 0x00CE, 0x00) }, + { DEADTRANS(L'j', 0x0302, 0x0135, 0x00) }, + { DEADTRANS(L'J', 0x0302, 0x0134, 0x00) }, + { DEADTRANS(L'o', 0x0302, 0x00F4, 0x00) }, + { DEADTRANS(L'O', 0x0302, 0x00D4, 0x00) }, + { DEADTRANS(L's', 0x0302, 0x015D, 0x00) }, + { DEADTRANS(L'S', 0x0302, 0x015C, 0x00) }, + { DEADTRANS(L'u', 0x0302, 0x00FB, 0x00) }, + { DEADTRANS(L'U', 0x0302, 0x00DB, 0x00) }, + { DEADTRANS(L'w', 0x0302, 0x0175, 0x00) }, + { DEADTRANS(L'W', 0x0302, 0x0174, 0x00) }, + { DEADTRANS(L'y', 0x0302, 0x0177, 0x00) }, + { DEADTRANS(L'Y', 0x0302, 0x0176, 0x00) }, + { DEADTRANS(L'z', 0x0302, 0x1E91, 0x00) }, + { DEADTRANS(L'Z', 0x0302, 0x1E90, 0x00) }, diff --git a/dll/keyboard/kbdrost/deadkeys/comma_below b/dll/keyboard/kbdrost/deadkeys/comma_below new file mode 100644 index 0000000000..d63625003c --- /dev/null +++ b/dll/keyboard/kbdrost/deadkeys/comma_below @@ -0,0 +1,10 @@ +/* + * COMBINING COMMA BELOW + * The dead key transformation set was defined by checking the availability of + * the resulting letters in Unicode character table: https://unicode-table.com + */ + + { DEADTRANS(L's', 0x0326, 0x0219, 0x00) }, + { DEADTRANS(L'S', 0x0326, 0x0218, 0x00) }, + { DEADTRANS(L't', 0x0326, 0x021B, 0x00) }, + { DEADTRANS(L'T', 0x0326, 0x021A, 0x00) }, diff --git a/dll/keyboard/kbdrost/deadkeys/dbl_acute_acc b/dll/keyboard/kbdrost/deadkeys/dbl_acute_acc new file mode 100644 index 0000000000..772d92e37e --- /dev/null +++ b/dll/keyboard/kbdrost/deadkeys/dbl_acute_acc @@ -0,0 +1,10 @@ +/* + * COMBINING DOUBLE ACUTE ACCENT + * The dead key transformation set was defined by checking the availability of + * the resulting letters in Unicode character table: https://unicode-table.com + */ + + { DEADTRANS(L'o', 0x030B, 0x0151, 0x00) }, + { DEADTRANS(L'O', 0x030B, 0x0150, 0x00) }, + { DEADTRANS(L'u', 0x030B, 0x0171, 0x00) }, + { DEADTRANS(L'U', 0x030B, 0x0170, 0x00) }, diff --git a/dll/keyboard/kbdrost/deadkeys/dot_above b/dll/keyboard/kbdrost/deadkeys/dot_above new file mode 100644 index 0000000000..ced75d45ca --- /dev/null +++ b/dll/keyboard/kbdrost/deadkeys/dot_above @@ -0,0 +1,45 @@ +/* + * COMBINING DOT ABOVE + * The dead key transformation set was defined by checking the availability of + * the resulting letters in Unicode character table: https://unicode-table.com + */ + + { DEADTRANS(L'a', 0x0307, 0x0227, 0x00) }, + { DEADTRANS(L'A', 0x0307, 0x0226, 0x00) }, + { DEADTRANS(L'b', 0x0307, 0x1E03, 0x00) }, + { DEADTRANS(L'B', 0x0307, 0x1E02, 0x00) }, + { DEADTRANS(L'c', 0x0307, 0x010B, 0x00) }, + { DEADTRANS(L'C', 0x0307, 0x010A, 0x00) }, + { DEADTRANS(L'd', 0x0307, 0x1E0B, 0x00) }, + { DEADTRANS(L'D', 0x0307, 0x1E0A, 0x00) }, + { DEADTRANS(L'e', 0x0307, 0x0117, 0x00) }, + { DEADTRANS(L'E', 0x0307, 0x0116, 0x00) }, + { DEADTRANS(L'f', 0x0307, 0x1E1F, 0x00) }, + { DEADTRANS(L'F', 0x0307, 0x1E1E, 0x00) }, + { DEADTRANS(L'g', 0x0307, 0x0121, 0x00) }, + { DEADTRANS(L'G', 0x0307, 0x0120, 0x00) }, + { DEADTRANS(L'h', 0x0307, 0x1E23, 0x00) }, + { DEADTRANS(L'H', 0x0307, 0x1E22, 0x00) }, + { DEADTRANS(L'I', 0x0307, 0x0130, 0x00) }, + { DEADTRANS(L'm', 0x0307, 0x1E41, 0x00) }, + { DEADTRANS(L'M', 0x0307, 0x1E40, 0x00) }, + { DEADTRANS(L'n', 0x0307, 0x1E45, 0x00) }, + { DEADTRANS(L'N', 0x0307, 0x1E44, 0x00) }, + { DEADTRANS(L'o', 0x0307, 0x022F, 0x00) }, + { DEADTRANS(L'O', 0x0307, 0x022E, 0x00) }, + { DEADTRANS(L'p', 0x0307, 0x1E57, 0x00) }, + { DEADTRANS(L'P', 0x0307, 0x1E56, 0x00) }, + { DEADTRANS(L'r', 0x0307, 0x1E59, 0x00) }, + { DEADTRANS(L'R', 0x0307, 0x1E58, 0x00) }, + { DEADTRANS(L's', 0x0307, 0x1E61, 0x00) }, + { DEADTRANS(L'S', 0x0307, 0x1E60, 0x00) }, + { DEADTRANS(L't', 0x0307, 0x1E6B, 0x00) }, + { DEADTRANS(L'T', 0x0307, 0x1E6A, 0x00) }, + { DEADTRANS(L'w', 0x0307, 0x1E87, 0x00) }, + { DEADTRANS(L'W', 0x0307, 0x1E86, 0x00) }, + { DEADTRANS(L'x', 0x0307, 0x1E8B, 0x00) }, + { DEADTRANS(L'X', 0x0307, 0x1E8A, 0x00) }, + { DEADTRANS(L'y', 0x0307, 0x1E8F, 0x00) }, + { DEADTRANS(L'Y', 0x0307, 0x1E8E, 0x00) }, + { DEADTRANS(L'z', 0x0307, 0x017C, 0x00) }, + { DEADTRANS(L'Z', 0x0307, 0x017B, 0x00) }, diff --git a/dll/keyboard/kbdrost/deadkeys/grave_acc b/dll/keyboard/kbdrost/deadkeys/grave_acc new file mode 100644 index 0000000000..467a482e3d --- /dev/null +++ b/dll/keyboard/kbdrost/deadkeys/grave_acc @@ -0,0 +1,22 @@ +/* + * COMBINING GRAVE ACCENT + * The dead key transformation set was defined by checking the availability of + * the resulting letters in Unicode character table: https://unicode-table.com + */ + + { DEADTRANS(L'a', 0x0300, 0x00E0, 0x00) }, + { DEADTRANS(L'A', 0x0300, 0x00C0, 0x00) }, + { DEADTRANS(L'e', 0x0300, 0x00E8, 0x00) }, + { DEADTRANS(L'E', 0x0300, 0x00C8, 0x00) }, + { DEADTRANS(L'i', 0x0300, 0x00EC, 0x00) }, + { DEADTRANS(L'I', 0x0300, 0x00CC, 0x00) }, + { DEADTRANS(L'n', 0x0300, 0x01F9, 0x00) }, + { DEADTRANS(L'N', 0x0300, 0x01F8, 0x00) }, + { DEADTRANS(L'o', 0x0300, 0x00F2, 0x00) }, + { DEADTRANS(L'O', 0x0300, 0x00D2, 0x00) }, + { DEADTRANS(L'u', 0x0300, 0x00F9, 0x00) }, + { DEADTRANS(L'U', 0x0300, 0x00D9, 0x00) }, + { DEADTRANS(L'w', 0x0300, 0x1E81, 0x00) }, + { DEADTRANS(L'W', 0x0300, 0x1E80, 0x00) }, + { DEADTRANS(L'y', 0x0300, 0x1EF3, 0x00) }, + { DEADTRANS(L'Y', 0x0300, 0x1EF2, 0x00) }, diff --git a/dll/keyboard/kbdrost/deadkeys/ogonek b/dll/keyboard/kbdrost/deadkeys/ogonek new file mode 100644 index 0000000000..f33dbecad2 --- /dev/null +++ b/dll/keyboard/kbdrost/deadkeys/ogonek @@ -0,0 +1,16 @@ +/* + * COMBINING OGONEK + * The dead key transformation set was defined by checking the availability of + * the resulting letters in Unicode character table: https://unicode-table.com + */ + + { DEADTRANS(L'a', 0x0328, 0x0105, 0x00) }, + { DEADTRANS(L'A', 0x0328, 0x0104, 0x00) }, + { DEADTRANS(L'e', 0x0328, 0x0119, 0x00) }, + { DEADTRANS(L'E', 0x0328, 0x0118, 0x00) }, + { DEADTRANS(L'i', 0x0328, 0x012F, 0x00) }, + { DEADTRANS(L'I', 0x0328, 0x012E, 0x00) }, + { DEADTRANS(L'o', 0x0328, 0x01EB, 0x00) }, + { DEADTRANS(L'O', 0x0328, 0x01EA, 0x00) }, + { DEADTRANS(L'u', 0x0328, 0x0173, 0x00) }, + { DEADTRANS(L'U', 0x0328, 0x0172, 0x00) }, diff --git a/dll/keyboard/kbdrost/deadkeys/ring_above b/dll/keyboard/kbdrost/deadkeys/ring_above new file mode 100644 index 0000000000..e4a451991c --- /dev/null +++ b/dll/keyboard/kbdrost/deadkeys/ring_above @@ -0,0 +1,14 @@ +/* + * COMBINING RING ABOVE + * The dead key transformation set was defined by checking the availability of + * the resulting letters in Unicode character table: https://unicode-table.com + */ + + { DEADTRANS(L'a', 0x030A, 0x00E5, 0x00) }, + { DEADTRANS(L'A', 0x030A, 0x00C5, 0x00) }, + { DEADTRANS(L'u', 0x030A, 0x016F, 0x00) }, + { DEADTRANS(L'U', 0x030A, 0x016E, 0x00) }, + { DEADTRANS(L'w', 0x030A, 0x1E98, 0x00) }, + /* no Unicode capital W with ring above */ + { DEADTRANS(L'y', 0x030A, 0x1E99, 0x00) }, + /* no Unicode capital Y with ring above */ diff --git a/dll/keyboard/kbdrost/deadkeys/tilde b/dll/keyboard/kbdrost/deadkeys/tilde new file mode 100644 index 0000000000..e7ee716ddc --- /dev/null +++ b/dll/keyboard/kbdrost/deadkeys/tilde @@ -0,0 +1,22 @@ +/* + * COMBINING TILDE + * The dead key transformation set was defined by checking the availability of + * the resulting letters in Unicode character table: https://unicode-table.com + */ + + { DEADTRANS(L'a', 0x0303, 0x00E3, 0x00) }, + { DEADTRANS(L'A', 0x0303, 0x00C3, 0x00) }, + { DEADTRANS(L'e', 0x0303, 0x1EBD, 0x00) }, + { DEADTRANS(L'E', 0x0303, 0x1EBC, 0x00) }, + { DEADTRANS(L'i', 0x0303, 0x0129, 0x00) }, + { DEADTRANS(L'I', 0x0303, 0x0128, 0x00) }, + { DEADTRANS(L'n', 0x0303, 0x00F1, 0x00) }, + { DEADTRANS(L'N', 0x0303, 0x00D1, 0x00) }, + { DEADTRANS(L'o', 0x0303, 0x00F5, 0x00) }, + { DEADTRANS(L'O', 0x0303, 0x00D5, 0x00) }, + { DEADTRANS(L'u', 0x0303, 0x0169, 0x00) }, + { DEADTRANS(L'U', 0x0303, 0x0168, 0x00) }, + { DEADTRANS(L'v', 0x0303, 0x1E7D, 0x00) }, + { DEADTRANS(L'V', 0x0303, 0x1E7C, 0x00) }, + { DEADTRANS(L'y', 0x0303, 0x1EF9, 0x00) }, + { DEADTRANS(L'Y', 0x0303, 0x1EF8, 0x00) },