https://git.reactos.org/?p=reactos.git;a=commitdiff;h=3c82e46ef1fc058ac8237…
commit 3c82e46ef1fc058ac8237ef17706de7292df3319
Author: Ștefan Fulea <stefan.fulea(a)mail.com>
AuthorDate: Sat Sep 15 20:59:55 2018 +0300
Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)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) },