summaryrefslogtreecommitdiffstats
path: root/src/digraph.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2004-06-13 20:20:40 +0000
committerBram Moolenaar <Bram@vim.org>2004-06-13 20:20:40 +0000
commit071d4279d6ab81b7187b48f3a0fc61e587b6db6c (patch)
tree221cbe3c40e043163c06f61c52a7ba2eb41e12ce /src/digraph.c
parentb4210b3bc14e2918f153a7307530fbe6eba659e1 (diff)
updated for version 7.0001v7.0001
Diffstat (limited to 'src/digraph.c')
-rw-r--r--src/digraph.c2513
1 files changed, 2513 insertions, 0 deletions
diff --git a/src/digraph.c b/src/digraph.c
new file mode 100644
index 0000000000..de61ce2c7b
--- /dev/null
+++ b/src/digraph.c
@@ -0,0 +1,2513 @@
+/* vi:set ts=8 sts=4 sw=4:
+ *
+ * VIM - Vi IMproved by Bram Moolenaar
+ *
+ * Do ":help uganda" in Vim to read copying and usage conditions.
+ * Do ":help credits" in Vim to see a list of people who contributed.
+ * See README.txt for an overview of the Vim source code.
+ */
+
+/*
+ * digraph.c: code for digraphs
+ */
+
+#include "vim.h"
+
+#if defined(FEAT_DIGRAPHS) || defined(PROTO)
+
+#ifdef FEAT_MBYTE
+typedef int result_T;
+#else
+typedef char_u result_T;
+#endif
+
+typedef struct digraph
+{
+ char_u char1;
+ char_u char2;
+ result_T result;
+} digr_T;
+
+static int getexactdigraph __ARGS((int, int, int));
+static void printdigraph __ARGS((digr_T *));
+
+/* digraphs added by the user */
+static garray_T user_digraphs = {0, 0, sizeof(digr_T), 10, NULL};
+
+/*
+ * Note: Characters marked with XX are not included literally, because some
+ * compilers cannot handle them (Amiga SAS/C is the most picky one).
+ */
+#if defined(MSDOS) || defined(OS2)
+ /*
+ * MSDOS digraphs.
+ */
+digr_T digraphdefault[] =
+ {{'C', ',', 128}, /* ~@ XX */
+ {'u', '"', 129}, /* */
+ {'e', '\'', 130}, /* */
+ {'a', '^', 131}, /* */
+ {'a', '"', 132}, /* */
+ {'a', '`', 133}, /* */
+ {'a', '@', 134}, /* */
+ {'c', ',', 135}, /* ~G XX */
+ {'e', '^', 136}, /* ~H XX */
+ {'e', '"', 137}, /* */
+ {'e', '`', 138}, /* */
+ {'i', '"', 139}, /* */
+ {'i', '^', 140}, /* */
+ {'i', '`', 141}, /* */
+ {'A', '"', 142}, /* ~N XX */
+ {'A', '@', 143}, /* */
+ {'E', '\'', 144}, /* */
+ {'a', 'e', 145}, /* */
+ {'A', 'E', 146}, /* */
+ {'o', '^', 147}, /* */
+ {'o', '"', 148}, /* */
+ {'o', '`', 149}, /* */
+ {'u', '^', 150}, /* */
+ {'u', '`', 151}, /* */
+ {'y', '"', 152}, /* */
+ {'O', '"', 153}, /* */
+ {'U', '"', 154}, /* */
+ {'c', '|', 155}, /* */
+ {'$', '$', 156}, /* */
+ {'Y', '-', 157}, /* ~] XX */
+ {'P', 't', 158}, /* */
+ {'f', 'f', 159}, /* */
+ {'a', '\'', 160}, /* */
+ {'i', '\'', 161}, /* */
+ {'o', '\'', 162}, /* */
+ {'u', '\'', 163}, /* x XX */
+ {'n', '~', 164}, /* */
+ {'N', '~', 165}, /* */
+ {'a', 'a', 166}, /* */
+ {'o', 'o', 167}, /* */
+ {'~', '?', 168}, /* */
+ {'-', 'a', 169}, /* */
+ {'a', '-', 170}, /* */
+ {'1', '2', 171}, /* */
+ {'1', '4', 172}, /* */
+ {'~', '!', 173}, /* */
+ {'<', '<', 174}, /* */
+ {'>', '>', 175}, /* */
+
+ {'s', 's', 225}, /* */
+ {'j', 'u', 230}, /* */
+ {'o', '/', 237}, /* */
+ {'+', '-', 241}, /* */
+ {'>', '=', 242}, /* */
+ {'<', '=', 243}, /* */
+ {':', '-', 246}, /* */
+ {'~', '~', 247}, /* */
+ {'~', 'o', 248}, /* */
+ {'2', '2', 253}, /* */
+ {NUL, NUL, NUL}
+ };
+
+#else /* !MSDOS && !OS2 */
+# ifdef __MINT__
+
+ /*
+ * ATARI digraphs
+ */
+digr_T digraphdefault[] =
+ {{'C', ',', 128}, /* ~@ XX */
+ {'u', '"', 129}, /* */
+ {'e', '\'', 130}, /* */
+ {'a', '^', 131}, /* */
+ {'a', '"', 132}, /* */
+ {'a', '`', 133}, /* */
+ {'a', '@', 134}, /* */
+ {'c', ',', 135}, /* ~G XX */
+ {'e', '^', 136}, /* ~H XX */
+ {'e', '"', 137}, /* */
+ {'e', '`', 138}, /* */
+ {'i', '"', 139}, /* */
+ {'i', '^', 140}, /* */
+ {'i', '`', 141}, /* */
+ {'A', '"', 142}, /* */
+ {'A', '@', 143}, /* */
+ {'E', '\'', 144}, /* */
+ {'a', 'e', 145}, /* */
+ {'A', 'E', 146}, /* */
+ {'o', '^', 147}, /* */
+ {'o', '"', 148}, /* */
+ {'o', '`', 149}, /* */
+ {'u', '^', 150}, /* */
+ {'u', '`', 151}, /* */
+ {'y', '"', 152}, /* */
+ {'O', '"', 153}, /* */
+ {'U', '"', 154}, /* */
+ {'c', '|', 155}, /* */
+ {'$', '$', 156}, /* */
+ {'Y', '-', 157}, /* ~] XX */
+ {'s', 's', 158}, /* */
+ {'f', 'f', 159}, /* */
+ {'a', '\'', 160}, /* */
+ {'i', '\'', 161}, /* */
+ {'o', '\'', 162}, /* */
+ {'u', '\'', 163}, /* */
+ {'n', '~', 164}, /* */
+ {'N', '~', 165}, /* */
+ {'a', 'a', 166}, /* */
+ {'o', 'o', 167}, /* */
+ {'~', '?', 168}, /* */
+ {'-', 'a', 169}, /* */
+ {'a', '-', 170}, /* */
+ {'1', '2', 171}, /* */
+ {'1', '4', 172}, /* */
+ {'~', '!', 173}, /* */
+ {'<', '<', 174}, /* */
+ {'>', '>', 175}, /* */
+ {'j', 'u', 230}, /* */
+ {'o', '/', 237}, /* */
+ {'+', '-', 241}, /* */
+ {'>', '=', 242}, /* */
+ {'<', '=', 243}, /* */
+ {':', '-', 246}, /* */
+ {'~', '~', 247}, /* */
+ {'~', 'o', 248}, /* */
+ {'2', '2', 253}, /* */
+ {NUL, NUL, NUL}
+ };
+
+# else /* !__MINT__ */
+# ifdef HPUX_DIGRAPHS
+
+ /*
+ * different HPUX digraphs
+ */
+digr_T digraphdefault[] =
+ {{'A', '`', 161}, /* */
+ {'A', '^', 162}, /* */
+ {'E', '`', 163}, /* */
+ {'E', '^', 164}, /* */
+ {'E', '"', 165}, /* */
+ {'I', '^', 166}, /* */
+ {'I', '"', 167}, /* */
+ {'\'', '\'', 168}, /* */
+ {'`', '`', 169}, /* */
+ {'^', '^', 170}, /* */
+ {'"', '"', 171}, /* */
+ {'~', '~', 172}, /* */
+ {'U', '`', 173}, /* */
+ {'U', '^', 174}, /* */
+ {'L', '=', 175}, /* */
+ {'~', '_', 176}, /* */
+ {'Y', '\'', 177}, /* */
+ {'y', '\'', 178}, /* */
+ {'~', 'o', 179}, /* */
+ {'C', ',', 180}, /* */
+ {'c', ',', 181}, /* */
+ {'N', '~', 182}, /* */
+ {'n', '~', 183}, /* */
+ {'~', '!', 184}, /* */
+ {'~', '?', 185}, /* */
+ {'o', 'x', 186}, /* */
+ {'L', '-', 187}, /* */
+ {'Y', '=', 188}, /* */
+ {'p', 'p', 189}, /* */
+ {'f', 'l', 190}, /* */
+ {'c', '|', 191}, /* */
+ {'a', '^', 192}, /* */
+ {'e', '^', 193}, /* */
+ {'o', '^', 194}, /* */
+ {'u', '^', 195}, /* */
+ {'a', '\'', 196}, /* */
+ {'e', '\'', 197}, /* */
+ {'o', '\'', 198}, /* */
+ {'u', '\'', 199}, /* */
+ {'a', '`', 200}, /* */
+ {'e', '`', 201}, /* */
+ {'o', '`', 202}, /* */
+ {'u', '`', 203}, /* */
+ {'a', '"', 204}, /* */
+ {'e', '"', 205}, /* */
+ {'o', '"', 206}, /* */
+ {'u', '"', 207}, /* */
+ {'A', 'o', 208}, /* */
+ {'i', '^', 209}, /* */
+ {'O', '/', 210}, /* */
+ {'A', 'E', 211}, /* */
+ {'a', 'o', 212}, /* */
+ {'i', '\'', 213}, /* */
+ {'o', '/', 214}, /* */
+ {'a', 'e', 215}, /* */
+ {'A', '"', 216}, /* */
+ {'i', '`', 217}, /* */
+ {'O', '"', 218}, /* */
+ {'U', '"', 219}, /* */
+ {'E', '\'', 220}, /* */
+ {'i', '"', 221}, /* */
+ {'s', 's', 222}, /* */
+ {'O', '^', 223}, /* */
+ {'A', '\'', 224}, /* */
+ {'A', '~', 225}, /* */
+ {'a', '~', 226}, /* */
+ {'D', '-', 227}, /* */
+ {'d', '-', 228}, /* */
+ {'I', '\'', 229}, /* */
+ {'I', '`', 230}, /* */
+ {'O', '\'', 231}, /* */
+ {'O', '`', 232}, /* */
+ {'O', '~', 233}, /* */
+ {'o', '~', 234}, /* */
+ {'S', '~', 235}, /* */
+ {'s', '~', 236}, /* */
+ {'U', '\'', 237}, /* */
+ {'Y', '"', 238}, /* */
+ {'y', '"', 239}, /* */
+ {'p', '-', 240}, /* */
+ {'p', '~', 241}, /* */
+ {'~', '.', 242}, /* */
+ {'j', 'u', 243}, /* */
+ {'P', 'p', 244}, /* */
+ {'3', '4', 245}, /* */
+ {'-', '-', 246}, /* */
+ {'1', '4', 247}, /* */
+ {'1', '2', 248}, /* */
+ {'a', '_', 249}, /* */
+ {'o', '_', 250}, /* */
+ {'<', '<', 251}, /* */
+ {'x', 'x', 252}, /* */
+ {'>', '>', 253}, /* */
+ {'+', '-', 254}, /* */
+ {'n', 'u', 255}, /* x XX */
+ {NUL, NUL, NUL}
+ };
+
+# else /* !HPUX_DIGRAPHS */
+
+# ifdef EBCDIC
+
+ /*
+ * EBCDIC - ISO digraphs
+ * TODO: EBCDIC Table is Code-Page 1047
+ */
+digr_T digraphdefault[] =
+ {{'a', '^', 66}, /* */
+ {'a', '"', 67}, /* */
+ {'a', '`', 68}, /* */
+ {'a', '\'', 69}, /* */
+ {'a', '~', 70}, /* */
+ {'a', '@', 71}, /* */
+ {'a', 'a', 71}, /* */
+ {'c', ',', 72}, /* */
+ {'n', '~', 73}, /* */
+ {'c', '|', 74}, /* */
+ {'e', '\'', 81}, /* */
+ {'e', '^', 82}, /* */
+ {'e', '"', 83}, /* */
+ {'e', '`', 84}, /* */
+ {'i', '\'', 85}, /* */
+ {'i', '^', 86}, /* */
+ {'i', '"', 87}, /* */
+ {'i', '`', 88}, /* */
+ {'s', 's', 89}, /* */
+ {'A', '^', 98}, /* */
+ {'A', '"', 99}, /* */
+ {'A', '`', 100}, /* */
+ {'A', '\'', 101}, /* */
+ {'A', '~', 102}, /* */
+ {'A', '@', 103}, /* */
+ {'A', 'A', 103}, /* */
+ {'C', ',', 104}, /* */
+ {'N', '~', 105}, /* */
+ {'|', '|', 106}, /* */
+ {'o', '/', 112}, /* */
+ {'E', '\'', 113}, /* */
+ {'E', '^', 114}, /* */
+ {'E', '"', 115}, /* */
+ {'E', '`', 116}, /* */
+ {'I', '\'', 117}, /* */
+ {'I', '^', 118}, /* */
+ {'I', '"', 119}, /* */
+ {'I', '`', 120}, /* */
+ {'O', '/', 128}, /* 0/ XX */
+ {'<', '<', 138}, /* */
+ {'>', '>', 139}, /* */
+ {'d', '-', 140}, /* */
+ {'y', '\'', 141}, /* */
+ {'i', 'p', 142}, /* */
+ {'+', '-', 143}, /* */
+ {'~', 'o', 144}, /* */
+ {'a', '-', 154}, /* */
+ {'o', '-', 155}, /* */
+ {'a', 'e', 156}, /* */
+ {',', ',', 157}, /* , XX */
+ {'A', 'E', 158}, /* */
+ {'o', 'x', 159}, /* - currency symbol in ISO 8859-1 */
+ {'e', '=', 159}, /* - euro symbol in ISO 8859-15 */
+ {'j', 'u', 160}, /* */
+ {'y', '"', 167}, /* x XX */
+ {'~', '!', 170}, /* */
+ {'~', '?', 171}, /* */
+ {'D', '-', 172}, /* */
+ {'I', 'p', 174}, /* */
+ {'r', 'O', 175}, /* */
+ {'-', ',', 176}, /* */
+ {'$', '$', 177}, /* */
+ {'Y', '-', 178}, /* */
+ {'~', '.', 179}, /* */
+ {'c', 'O', 180}, /* */
+ {'p', 'a', 181}, /* */
+ {'p', 'p', 182}, /* */
+ {'1', '4', 183}, /* */
+ {'1', '2', 184}, /* */
+ {'3', '4', 185}, /* */
+ {'Y', '\'', 186}, /* */
+ {'"', '"', 187}, /* */
+ {'-', '=', 188}, /* */
+ {'\'', '\'', 190}, /* */
+ {'O', 'E', 191}, /* - OE in ISO 8859-15 */
+ {'/', '\\', 191}, /* - multiplication symbol in ISO 8859-1 */
+ {'-', '-', 202}, /* */
+ {'o', '^', 203}, /* */
+ {'o', '"', 204}, /* */
+ {'o', '`', 205}, /* */
+ {'o', '\'', 206}, /* */
+ {'o', '~', 207}, /* */
+ {'1', '1', 218}, /* */
+ {'u', '^', 219}, /* */
+ {'u', '"', 220}, /* */
+ {'u', '`', 221}, /* */
+ {'u', '\'', 222}, /* */
+ {':', '-', 225}, /* - division symbol in ISO 8859-1 */
+ {'o', 'e', 225}, /* - oe in ISO 8859-15 */
+ {'2', '2', 234}, /* */
+ {'O', '^', 235}, /* */
+ {'O', '"', 236}, /* */
+ {'O', '`', 237}, /* */
+ {'O', '\'', 238}, /* */
+ {'O', '~', 239}, /* */
+ {'3', '3', 250}, /* */
+ {'U', '^', 251}, /* */
+ {'U', '"', 252}, /* */
+ {'U', '`', 253}, /* */
+ {'U', '\'', 254}, /* */
+ {NUL, NUL, NUL}
+ };
+
+# else
+# if defined(MACOS) && !defined(FEAT_MBYTE)
+
+ /*
+ * Macintosh digraphs
+ */
+digr_T digraphdefault[] =
+ {{'a', 't', 64}, /* @ */
+ {'A', '"', 128}, /* ~@ XX */
+ {'A', 'o', 129}, /* */
+ {'C', ',', 130}, /* */
+ {'E', '\'', 131}, /* */
+ {'N', '~', 132}, /* */
+ {'O', '"', 133}, /* */
+ {'U', '"', 134}, /* */
+ {'a', '\'', 135}, /* ~G XX */
+ {'a', '`', 136}, /* ~H XX */
+ {'a', '^', 137}, /* */
+ {'a', '"', 138}, /* */
+ {'a', '~', 139}, /* */
+ {'a', 'o', 140}, /* */
+ {'c', ',', 141}, /* */
+ {'e', '\'', 142}, /* */
+ {'e', '`', 143}, /* */
+ {'e', '^', 144}, /* */
+ {'e', '"', 145}, /* */
+ {'i', '\'', 146}, /* */
+ {'i', '`', 147}, /* */
+ {'i', '^', 148}, /* */
+ {'i', '"', 149}, /* */
+ {'n', '~', 150}, /* */
+ {'o', '\'', 151}, /* */
+ {'o', '`', 152}, /* */
+ {'o', '^', 153}, /* */
+ {'o', '"', 154}, /* */
+ {'o', '~', 155}, /* o */
+ {'u', '\'', 156}, /* */
+ {'u', '`', 157}, /* ~] XX */
+ {'u', '^', 158}, /* */
+ {'u', '"', 159}, /* */
+ {'+', '_', 160}, /* */
+ {'~', 'o', 161}, /* */
+ {'c', '|', 162}, /* */
+ {'$', '$', 163}, /* */
+ {'p', 'a', 164}, /* */
+ {'.', '.', 165}, /* * */
+ {'P', 'P', 166}, /* */
+ {'s', 's', 167}, /* */
+ {'r', 'O', 168}, /* */
+ {'c', 'O', 169}, /* */
+ {'T', 'M', 170}, /* */
+ {'=', '/', 173}, /* */
+ {'A', 'E', 174}, /* */
+ {'O', '/', 175}, /* */
+ {'0', '0', 176}, /* */
+ {'+', '-', 177}, /* */
+ {'<', '=', 178}, /* */
+ {'>', '=', 179}, /* */
+ {'Y', '-', 180}, /* */
+ {'j', 'u', 181}, /* */
+ {'m', 'u', 181}, /* */
+ {'d', 'd', 182}, /* */
+ {'S', 'S', 183}, /* */
+ {'S', 'I', 183}, /* */
+ {'P', 'I', 184}, /* */
+ {'p', 'i', 185}, /* */
+ {'I', 'I', 186}, /* */
+ {'a', '-', 187}, /* */
+ {'o', '-', 188}, /* */
+ {'O', 'M', 189}, /* */
+ {'a', 'e', 190}, /* */
+ {'o', '/', 191}, /* */
+ {'~', '?', 192}, /* */
+ {'~', '!', 193}, /* */
+ {'-', ',', 194}, /* */
+ {'v', '-', 195}, /* ~H XX */
+ {'f', '-', 196}, /* */
+ {'~', '~', 197}, /* */
+ {'D', 'E', 198}, /* */
+ {'<', '<', 199}, /* */
+ {'>', '>', 200}, /* */
+ {'.', ':', 201}, /* */
+ {'A', '`', 203}, /* */
+ {'A', '~', 204}, /* */
+ {'O', '~', 205}, /* */
+ {'O', 'E', 206}, /* */
+ {'o', 'e', 207}, /* */
+ {'-', '.', 208}, /* - */
+ {'-', '-', 209}, /* - */
+ {'`', '`', 210}, /* " */
+ {'\'', '\'', 211}, /* " */
+ {'`', ' ', 212}, /* ' */
+ {'\'', ' ', 213}, /* ' */
+ {'-', ':', 214}, /* */
+ {'D', 'I', 215}, /* */
+ {'y', ':', 216}, /* */
+ {'Y', ':', 217}, /* */
+ {'/', '/', 218}, /* */
+ {'E', '=', 219}, /* Euro System >=8.5 */
+ {'o', 'x', 219}, /* Currency System <=8.1*/
+ {'<', ' ', 220}, /* */
+ {'>', ' ', 221}, /* */
+ {'f', 'i', 222}, /* */
+ {'f', 'l', 223}, /* */
+ {'+', '+', 224}, /* */
+ {'~', '.', 225}, /* */
+ {',', ' ', 226}, /* */
+ {',', ',', 227}, /* */
+ {'%', '.', 228}, /* */
+ {'%', '0', 228}, /* */
+ {'A', '^', 229}, /* */
+ {'E', '^', 230}, /* */
+ {'A', '\'', 231}, /* */
+ {'E', '"', 232}, /* */
+ {'E', '`', 233}, /* */
+ {'I', '\'', 234}, /* */
+ {'I', '^', 235}, /* */
+ {'I', '"', 236}, /* */
+ {'I', '`', 237}, /* */
+ {'O', '\'', 238}, /* */
+ {'O', '^', 239}, /* */
+ {'A', 'P', 240}, /* */
+ {'O', '`', 241}, /* */
+ {'U', '\'', 242}, /* */
+ {'U', '^', 243}, /* */
+ {'U', '`', 244}, /* */
+ {'i', '.', 245}, /* */
+ {NUL, NUL, NUL}
+ };
+
+# else /* !MACOS */
+
+# ifdef OLD_DIGRAPHS
+
+ /*
+ * digraphs compatible with Vim 5.x
+ */
+digr_T digraphdefault[] =
+ {{'~', '!', 161}, /* */
+ {'c', '|', 162}, /* */
+ {'$', '$', 163}, /* */
+ {'o', 'x', 164}, /* - currency symbol in ISO 8859-1 */
+ {'e', '=', 164}, /* - euro symbol in ISO 8859-15 */
+ {'Y', '-', 165}, /* */
+ {'|', '|', 166}, /* */
+ {'p', 'a', 167}, /* */
+ {'"', '"', 168}, /* */
+ {'c', 'O', 169}, /* */
+ {'a', '-', 170}, /* */
+ {'<', '<', 171}, /* */
+ {'-', ',', 172}, /* */
+ {'-', '-', 173}, /* */
+ {'r', 'O', 174}, /* */
+ {'-', '=', 175}, /* */
+ {'~', 'o', 176}, /* */
+ {'+', '-', 177}, /* */
+ {'2', '2', 178}, /* */
+ {'3', '3', 179}, /* */
+ {'\'', '\'', 180}, /* */
+ {'j', 'u', 181}, /* */
+ {'p', 'p', 182}, /* */
+ {'~', '.', 183}, /* */
+ {',', ',', 184}, /* */
+ {'1', '1', 185}, /* */
+ {'o', '-', 186}, /* */
+ {'>', '>', 187}, /* */
+ {'1', '4', 188}, /* */
+ {'1', '2', 189}, /* */
+ {'3', '4', 190}, /* */
+ {'~', '?', 191}, /* */
+ {'A', '`', 192}, /* */
+ {'A', '\'', 193}, /* */
+ {'A', '^', 194}, /* */
+ {'A', '~', 195}, /* */
+ {'A', '"', 196}, /* */
+ {'A', '@', 197}, /* */
+ {'A', 'A', 197}, /* */
+ {'A', 'E', 198}, /* */
+ {'C', ',', 199}, /* */
+ {'E', '`', 200}, /* */
+ {'E', '\'', 201}, /* */
+ {'E', '^', 202}, /* */
+ {'E', '"', 203}, /* */
+ {'I', '`', 204}, /* */
+ {'I', '\'', 205}, /* */
+ {'I', '^', 206}, /* */
+ {'I', '"', 207}, /* */
+ {'D', '-', 208}, /* */
+ {'N', '~', 209}, /* */
+ {'O', '`', 210}, /* */
+ {'O', '\'', 211}, /* */
+ {'O', '^', 212}, /* */
+ {'O', '~', 213}, /* */
+ {'O', '"', 214}, /* */
+ {'/', '\\', 215}, /* - multiplication symbol in ISO 8859-1 */
+ {'O', 'E', 215}, /* - OE in ISO 8859-15 */
+ {'O', '/', 216}, /* */
+ {'U', '`', 217}, /* */
+ {'U', '\'', 218}, /* */
+ {'U', '^', 219}, /* */
+ {'U', '"', 220}, /* */
+ {'Y', '\'', 221}, /* */
+ {'I', 'p', 222}, /* */
+ {'s', 's', 223}, /* */
+ {'a', '`', 224}, /* */
+ {'a', '\'', 225}, /* */
+ {'a', '^', 226}, /* */
+ {'a', '~', 227}, /* */
+ {'a', '"', 228}, /* */
+ {'a', '@', 229}, /* */
+ {'a', 'a', 229}, /* */
+ {'a', 'e', 230}, /* */
+ {'c', ',', 231}, /* */
+ {'e', '`', 232}, /* */
+ {'e', '\'', 233}, /* */
+ {'e', '^', 234}, /* */
+ {'e', '"', 235}, /* */
+ {'i', '`', 236}, /* */
+ {'i', '\'', 237}, /* */
+ {'i', '^', 238}, /* */
+ {'i', '"', 239}, /* */
+ {'d', '-', 240}, /* */
+ {'n', '~', 241}, /* */
+ {'o', '`', 242}, /* */
+ {'o', '\'', 243}, /* */
+ {'o', '^', 244}, /* */
+ {'o', '~', 245}, /* */
+ {'o', '"', 246}, /* */
+ {':', '-', 247}, /* - division symbol in ISO 8859-1 */
+ {'o', 'e', 247}, /* - oe in ISO 8859-15 */
+ {'o', '/', 248}, /* */
+ {'u', '`', 249}, /* */
+ {'u', '\'', 250}, /* */
+ {'u', '^', 251}, /* */
+ {'u', '"', 252}, /* */
+ {'y', '\'', 253}, /* */
+ {'i', 'p', 254}, /* */
+ {'y', '"', 255}, /* x XX */
+ {NUL, NUL, NUL}
+ };
+# else /* OLD_DIGRAPHS */
+
+ /*
+ * digraphs for Unicode from RFC1345
+ * (also work for ISO-8859-1 aka latin1)
+ */
+digr_T digraphdefault[] =
+ {
+ {'N', 'U', 0x0a}, /* LF for NUL */
+ {'S', 'H', 0x01},
+ {'S', 'X', 0x02},
+ {'E', 'X', 0x03},
+ {'E', 'T', 0x04},
+ {'E', 'Q', 0x05},
+ {'A', 'K', 0x06},
+ {'B', 'L', 0x07},
+ {'B', 'S', 0x08},
+ {'H', 'T', 0x09},
+ {'L', 'F', 0x0a},
+ {'V', 'T', 0x0b},
+ {'F', 'F', 0x0c},
+ {'C', 'R', 0x0d},
+ {'S', 'O', 0x0e},
+ {'S', 'I', 0x0f},
+ {'D', 'L', 0x10},
+ {'D', '1', 0x11},
+ {'D', '2', 0x12},
+ {'D', '3', 0x13},
+ {'D', '4', 0x14},
+ {'N', 'K', 0x15},
+ {'S', 'Y', 0x16},
+ {'E', 'B', 0x17},
+ {'C', 'N', 0x18},
+ {'E', 'M', 0x19},
+ {'S', 'B', 0x1a},
+ {'E', 'C', 0x1b},
+ {'F', 'S', 0x1c},
+ {'G', 'S', 0x1d},
+ {'R', 'S', 0x1e},
+ {'U', 'S', 0x1f},
+ {'S', 'P', 0x20},
+ {'N', 'b', 0x23},
+ {'D', 'O', 0x24},
+ {'A', 't', 0x40},
+ {'<', '(', 0x5b},
+ {'/', '/', 0x5c},
+ {')', '>', 0x5d},
+ {'\'', '>', 0x5e},
+ {'\'', '!', 0x60},
+ {'(', '!', 0x7b},
+ {'!', '!', 0x7c},
+ {'!', ')', 0x7d},
+ {'\'', '?', 0x7e},
+ {'D', 'T', 0x7f},
+ {'P', 'A', 0x80},
+ {'H', 'O', 0x81},
+ {'B', 'H', 0x82},
+ {'N', 'H', 0x83},
+ {'I', 'N', 0x84},
+ {'N', 'L', 0x85},
+ {'S', 'A', 0x86},
+ {'E', 'S', 0x87},
+ {'H', 'S', 0x88},
+ {'H', 'J', 0x89},
+ {'V', 'S', 0x8a},
+ {'P', 'D', 0x8b},
+ {'P', 'U', 0x8c},
+ {'R', 'I', 0x8d},
+ {'S', '2', 0x8e},
+ {'S', '3', 0x8f},
+ {'D', 'C', 0x90},
+ {'P', '1', 0x91},
+ {'P', '2', 0x92},
+ {'T', 'S', 0x93},
+ {'C', 'C', 0x94},
+ {'M', 'W', 0x95},
+ {'S', 'G', 0x96},
+ {'E', 'G', 0x97},
+ {'S', 'S', 0x98},
+ {'G', 'C', 0x99},
+ {'S', 'C', 0x9a},
+ {'C', 'I', 0x9b},
+ {'S', 'T', 0x9c},
+ {'O', 'C', 0x9d},
+ {'P', 'M', 0x9e},
+ {'A', 'C', 0x9f},
+ {'N', 'S', 0xa0},
+ {'!', 'I', 0xa1},
+ {'C', 't', 0xa2},
+ {'P', 'd', 0xa3},
+ {'C', 'u', 0xa4},
+ {'Y', 'e', 0xa5},
+ {'B', 'B', 0xa6},
+ {'S', 'E', 0xa7},
+ {'\'', ':', 0xa8},
+ {'C', 'o', 0xa9},
+ {'-', 'a', 0xaa},
+ {'<', '<', 0xab},
+ {'N', 'O', 0xac},
+ {'-', '-', 0xad},
+ {'R', 'g', 0xae},
+ {'\'', 'm', 0xaf},
+ {'D', 'G', 0xb0},
+ {'+', '-', 0xb1},
+ {'2', 'S', 0xb2},
+ {'3', 'S', 0xb3},
+ {'\'', '\'', 0xb4},
+ {'M', 'y', 0xb5},
+ {'P', 'I', 0xb6},
+ {'.', 'M', 0xb7},
+ {'\'', ',', 0xb8},
+ {'1', 'S', 0xb9},
+ {'-', 'o', 0xba},
+ {'>', '>', 0xbb},
+ {'1', '4', 0xbc},
+ {'1', '2', 0xbd},
+ {'3', '4', 0xbe},
+ {'?', 'I', 0xbf},
+ {'A', '!', 0xc0},
+ {'A', '\'', 0xc1},
+ {'A', '>', 0xc2},
+ {'A', '?', 0xc3},
+ {'A', ':', 0xc4},
+ {'A', 'A', 0xc5},
+ {'A', 'E', 0xc6},
+ {'C', ',', 0xc7},
+ {'E', '!', 0xc8},
+ {'E', '\'', 0xc9},
+ {'E', '>', 0xca},
+ {'E', ':', 0xcb},
+ {'I', '!', 0xcc},
+ {'I', '\'', 0xcd},
+ {'I', '>', 0xce},
+ {'I', ':', 0xcf},
+ {'D', '-', 0xd0},
+ {'N', '?', 0xd1},
+ {'O', '!', 0xd2},
+ {'O', '\'', 0xd3},
+ {'O', '>', 0xd4},
+ {'O', '?', 0xd5},
+ {'O', ':', 0xd6},
+ {'*', 'X', 0xd7},
+ {'O', '/', 0xd8},
+ {'U', '!', 0xd9},
+ {'U', '\'', 0xda},
+ {'U', '>', 0xdb},
+ {'U', ':', 0xdc},
+ {'Y', '\'', 0xdd},
+ {'T', 'H', 0xde},
+ {'s', 's', 0xdf},
+ {'a', '!', 0xe0},
+ {'a', '\'', 0xe1},
+ {'a', '>', 0xe2},
+ {'a', '?', 0xe3},
+ {'a', ':', 0xe4},
+ {'a', 'a', 0xe5},
+ {'a', 'e', 0xe6},
+ {'c', ',', 0xe7},
+ {'e', '!', 0xe8},
+ {'e', '\'', 0xe9},
+ {'e', '>', 0xea},
+ {'e', ':', 0xeb},
+ {'i', '!', 0xec},
+ {'i', '\'', 0xed},
+ {'i', '>', 0xee},
+ {'i', ':', 0xef},
+ {'d', '-', 0xf0},
+ {'n', '?', 0xf1},
+ {'o', '!', 0xf2},
+ {'o', '\'', 0xf3},
+ {'o', '>', 0xf4},
+ {'o', '?', 0xf5},
+ {'o', ':', 0xf6},
+ {'-', ':', 0xf7},
+ {'o', '/', 0xf8},
+ {'u', '!', 0xf9},
+ {'u', '\'', 0xfa},
+ {'u', '>', 0xfb},
+ {'u', ':', 0xfc},
+ {'y', '\'', 0xfd},
+ {'t', 'h', 0xfe},
+ {'y', ':', 0xff},
+
+# ifdef FEAT_MBYTE
+# define USE_UNICODE_DIGRAPHS
+
+ {'A', '-', 0x0100},
+ {'a', '-', 0x0101},
+ {'A', '(', 0x0102},
+ {'a', '(', 0x0103},
+ {'A', ';', 0x0104},
+ {'a', ';', 0x0105},
+ {'C', '\'', 0x0106},
+ {'c', '\'', 0x0107},
+ {'C', '>', 0x0108},
+ {'c', '>', 0x0109},
+ {'C', '.', 0x010a},
+ {'c', '.', 0x010b},
+ {'C', '<', 0x010c},
+ {'c', '<', 0x010d},
+ {'D', '<', 0x010e},
+ {'d', '<', 0x010f},
+ {'D', '/', 0x0110},
+ {'d', '/', 0x0111},
+ {'E', '-', 0x0112},
+ {'e', '-', 0x0113},
+ {'E', '(', 0x0114},
+ {'e', '(', 0x0115},
+ {'E', '.', 0x0116},
+ {'e', '.', 0x0117},
+ {'E', ';', 0x0118},
+ {'e', ';', 0x0119},
+ {'E', '<', 0x011a},
+ {'e', '<', 0x011b},
+ {'G', '>', 0x011c},
+ {'g', '>', 0x011d},
+ {'G', '(', 0x011e},
+ {'g', '(', 0x011f},
+ {'G', '.', 0x0120},
+ {'g', '.', 0x0121},
+ {'G', ',', 0x0122},
+ {'g', ',', 0x0123},
+ {'H', '>', 0x0124},
+ {'h', '>', 0x0125},
+ {'H', '/', 0x0126},
+ {'h', '/', 0x0127},
+ {'I', '?', 0x0128},
+ {'i', '?', 0x0129},
+ {'I', '-', 0x012a},
+ {'i', '-', 0x012b},
+ {'I', '(', 0x012c},
+ {'i', '(', 0x012d},
+ {'I', ';', 0x012e},
+ {'i', ';', 0x012f},
+ {'I', '.', 0x0130},
+ {'i', '.', 0x0131},
+ {'I', 'J', 0x0132},
+ {'i', 'j', 0x0133},
+ {'J', '>', 0x0134},
+ {'j', '>', 0x0135},
+ {'K', ',', 0x0136},
+ {'k', ',', 0x0137},
+ {'k', 'k', 0x0138},
+ {'L', '\'', 0x0139},
+ {'l', '\'', 0x013a},
+ {'L', ',', 0x013b},
+ {'l', ',', 0x013c},
+ {'L', '<', 0x013d},
+ {'l', '<', 0x013e},
+ {'L', '.', 0x013f},
+ {'l', '.', 0x0140},
+ {'L', '/', 0x0141},
+ {'l', '/', 0x0142},
+ {'N', '\'', 0x0143},
+ {'n', '\'', 0x0144},
+ {'N', ',', 0x0145},
+ {'n', ',', 0x0146},
+ {'N', '<', 0x0147},
+ {'n', '<', 0x0148},
+ {'\'', 'n', 0x0149},
+ {'N', 'G', 0x014a},
+ {'n', 'g', 0x014b},
+ {'O', '-', 0x014c},
+ {'o', '-', 0x014d},
+ {'O', '(', 0x014e},
+ {'o', '(', 0x014f},
+ {'O', '"', 0x0150},
+ {'o', '"', 0x0151},
+ {'O', 'E', 0x0152},
+ {'o', 'e', 0x0153},
+ {'R', '\'', 0x0154},
+ {'r', '\'', 0x0155},
+ {'R', ',', 0x0156},
+ {'r', ',', 0x0157},
+ {'R', '<', 0x0158},
+ {'r', '<', 0x0159},
+ {'S', '\'', 0x015a},
+ {'s', '\'', 0x015b},
+ {'S', '>', 0x015c},
+ {'s', '>', 0x015d},
+ {'S', ',', 0x015e},
+ {'s', ',', 0x015f},
+ {'S', '<', 0x0160},
+ {'s', '<', 0x0161},
+ {'T', ',', 0x0162},
+ {'t', ',', 0x0163},
+ {'T', '<', 0x0164},
+ {'t', '<', 0x0165},
+ {'T', '/', 0x0166},
+ {'t', '/', 0x0167},
+ {'U', '?', 0x0168},
+ {'u', '?', 0x0169},
+ {'U', '-', 0x016a},
+ {'u', '-', 0x016b},
+ {'U', '(', 0x016c},
+ {'u', '(', 0x016d},
+ {'U', '0', 0x016e},
+ {'u', '0', 0x016f},
+ {'U', '"', 0x0170},
+ {'u', '"', 0x0171},
+ {'U', ';', 0x0172},
+ {'u', ';', 0x0173},
+ {'W', '>', 0x0174},
+ {'w', '>', 0x0175},
+ {'Y', '>', 0x0176},
+ {'y', '>', 0x0177},
+ {'Y', ':', 0x0178},
+ {'Z', '\'', 0x0179},
+ {'z', '\'', 0x017a},
+ {'Z', '.', 0x017b},
+ {'z', '.', 0x017c},
+ {'Z', '<', 0x017d},
+ {'z', '<', 0x017e},
+ {'O', '9', 0x01a0},
+ {'o', '9', 0x01a1},
+ {'O', 'I', 0x01a2},
+ {'o', 'i', 0x01a3},
+ {'y', 'r', 0x01a6},
+ {'U', '9', 0x01af},
+ {'u', '9', 0x01b0},
+ {'Z', '/', 0x01b5},
+ {'z', '/', 0x01b6},
+ {'E', 'D', 0x01b7},
+ {'A', '<', 0x01cd},
+ {'a', '<', 0x01ce},
+ {'I', '<', 0x01cf},
+ {'i', '<', 0x01d0},
+ {'O', '<', 0x01d1},
+ {'o', '<', 0x01d2},
+ {'U', '<', 0x01d3},
+ {'u', '<', 0x01d4},
+ {'A', '1', 0x01de},
+ {'a', '1', 0x01df},
+ {'A', '7', 0x01e0},
+ {'a', '7', 0x01e1},
+ {'A', '3', 0x01e2},
+ {'a', '3', 0x01e3},
+ {'G', '/', 0x01e4},
+ {'g', '/', 0x01e5},
+ {'G', '<', 0x01e6},
+ {'g', '<', 0x01e7},
+ {'K', '<', 0x01e8},
+ {'k', '<', 0x01e9},
+ {'O', ';', 0x01ea},
+ {'o', ';', 0x01eb},
+ {'O', '1', 0x01ec},
+ {'o', '1', 0x01ed},
+ {'E', 'Z', 0x01ee},
+ {'e', 'z', 0x01ef},
+ {'j', '<', 0x01f0},
+ {'G', '\'', 0x01f4},
+ {'g', '\'', 0x01f5},
+ {';', 'S', 0x02bf},
+ {'\'', '<', 0x02c7},
+ {'\'', '(', 0x02d8},
+ {'\'', '.', 0x02d9},
+ {'\'', '0', 0x02da},
+ {'\'', ';', 0x02db},
+ {'\'', '"', 0x02dd},
+ {'A', '%', 0x0386},
+ {'E', '%', 0x0388},
+ {'Y', '%', 0x0389},
+ {'I', '%', 0x038a},
+ {'O', '%', 0x038c},
+ {'U', '%', 0x038e},
+ {'W', '%', 0x038f},
+ {'i', '3', 0x0390},
+ {'A', '*', 0x0391},
+ {'B', '*', 0x0392},
+ {'G', '*', 0x0393},
+ {'D', '*', 0x0394},
+ {'E', '*', 0x0395},
+ {'Z', '*', 0x0396},
+ {'Y', '*', 0x0397},
+ {'H', '*', 0x0398},
+ {'I', '*', 0x0399},
+ {'K', '*', 0x039a},
+ {'L', '*', 0x039b},
+ {'M', '*', 0x039c},
+ {'N', '*', 0x039d},
+ {'C', '*', 0x039e},
+ {'O', '*', 0x039f},
+ {'P', '*', 0x03a0},
+ {'R', '*', 0x03a1},
+ {'S', '*', 0x03a3},
+ {'T', '*', 0x03a4},
+ {'U', '*', 0x03a5},
+ {'F', '*', 0x03a6},
+ {'X', '*', 0x03a7},
+ {'Q', '*', 0x03a8},
+ {'W', '*', 0x03a9},
+ {'J', '*', 0x03aa},
+ {'V', '*', 0x03ab},
+ {'a', '%', 0x03ac},
+ {'e', '%', 0x03ad},
+ {'y', '%', 0x03ae},
+ {'i', '%', 0x03af},
+ {'u', '3', 0x03b0},
+ {'a', '*', 0x03b1},
+ {'b', '*', 0x03b2},
+ {'g', '*', 0x03b3},
+ {'d', '*', 0x03b4},
+ {'e', '*', 0x03b5},
+ {'z', '*', 0x03b6},
+ {'y', '*', 0x03b7},
+ {'h', '*', 0x03b8},
+ {'i', '*', 0x03b9},
+ {'k', '*', 0x03ba},
+ {'l', '*', 0x03bb},
+ {'m', '*', 0x03bc},
+ {'n', '*', 0x03bd},
+ {'c', '*', 0x03be},
+ {'o', '*', 0x03bf},
+ {'p', '*', 0x03c0},
+ {'r', '*', 0x03c1},
+ {'*', 's', 0x03c2},
+ {'s', '*', 0x03c3},
+ {'t', '*', 0x03c4},
+ {'u', '*', 0x03c5},
+ {'f', '*', 0x03c6},
+ {'x', '*', 0x03c7},
+ {'q', '*', 0x03c8},
+ {'w', '*', 0x03c9},
+ {'j', '*', 0x03ca},
+ {'v', '*', 0x03cb},
+ {'o', '%', 0x03cc},
+ {'u', '%', 0x03cd},
+ {'w', '%', 0x03ce},
+ {'\'', 'G', 0x03d8},
+ {',', 'G', 0x03d9},
+ {'T', '3', 0x03da},
+ {'t', '3', 0x03db},
+ {'M', '3', 0x03dc},
+ {'m', '3', 0x03dd},
+ {'K', '3', 0x03de},
+ {'k', '3', 0x03df},
+ {'P', '3', 0x03e0},
+ {'p', '3', 0x03e1},
+ {'\'', '%', 0x03f4},
+ {'j', '3', 0x03f5},
+ {'I', 'O', 0x0401},
+ {'D', '%', 0x0402},
+ {'G', '%', 0x0403},
+ {'I', 'E', 0x0404},
+ {'D', 'S', 0x0405},
+ {'I', 'I', 0x0406},
+ {'Y', 'I', 0x0407},
+ {'J', '%', 0x0408},
+ {'L', 'J', 0x0409},
+ {'N', 'J', 0x040a},
+ {'T', 's', 0x040b},
+ {'K', 'J', 0x040c},
+ {'V', '%', 0x040e},
+ {'D', 'Z', 0x040f},
+ {'A', '=', 0x0410},
+ {'B', '=', 0x0411},
+ {'V', '=', 0x0412},
+ {'G', '=', 0x0413},
+ {'D', '=', 0x0414},
+ {'E', '=', 0x0415},
+ {'Z', '%', 0x0416},
+ {'Z', '=', 0x0417},
+ {'I', '=', 0x0418},
+ {'J', '=', 0x0419},
+ {'K', '=', 0x041a},
+ {'L', '=', 0x041b},
+ {'M', '=', 0x041c},
+ {'N', '=', 0x041d},
+ {'O', '=', 0x041e},
+ {'P', '=', 0x041f},
+ {'R', '=', 0x0420},
+ {'S', '=', 0x0421},
+ {'T', '=', 0x0422},
+ {'U', '=', 0x0423},
+ {'F', '=', 0x0424},
+ {'H', '=', 0x0425},
+ {'C', '=', 0x0426},
+ {'C', '%', 0x0427},
+ {'S', '%', 0x0428},
+ {'S', 'c', 0x0429},
+ {'=', '"', 0x042a},
+ {'Y', '=', 0x042b},
+ {'%', '"', 0x042c},
+ {'J', 'E', 0x042d},
+ {'J', 'U', 0x042e},
+ {'J', 'A', 0x042f},
+ {'a', '=', 0x0430},
+ {'b', '=', 0x0431},
+ {'v', '=', 0x0432},
+ {'g', '=', 0x0433},
+ {'d', '=', 0x0434},
+ {'e', '=', 0x0435},
+ {'z', '%', 0x0436},
+ {'z', '=', 0x0437},
+ {'i', '=', 0x0438},
+ {'j', '=', 0x0439},
+ {'k', '=', 0x043a},
+ {'l', '=', 0x043b},
+ {'m', '=', 0x043c},
+ {'n', '=', 0x043d},
+ {'o', '=', 0x043e},
+ {'p', '=', 0x043f},
+ {'r', '=', 0x0440},
+ {'s', '=', 0x0441},
+ {'t', '=', 0x0442},
+ {'u', '=', 0x0443},
+ {'f', '=', 0x0444},
+ {'h', '=', 0x0445},
+ {'c', '=', 0x0446},
+ {'c', '%', 0x0447},
+ {'s', '%', 0x0448},
+ {'s', 'c', 0x0449},
+ {'=', '\'', 0x044a},
+ {'y', '=', 0x044b},
+ {'%', '\'', 0x044c},
+ {'j', 'e', 0x044d},
+ {'j', 'u', 0x044e},
+ {'j', 'a', 0x044f},
+ {'i', 'o', 0x0451},
+ {'d', '%', 0x0452},
+ {'g', '%', 0x0453},
+ {'i', 'e', 0x0454},
+ {'d', 's', 0x0455},
+ {'i', 'i', 0x0456},
+ {'y', 'i', 0x0457},
+ {'j', '%', 0x0458},
+ {'l', 'j', 0x0459},
+ {'n', 'j', 0x045a},
+ {'t', 's', 0x045b},
+ {'k', 'j', 0x045c},
+ {'v', '%', 0x045e},
+ {'d', 'z', 0x045f},
+ {'Y', '3', 0x0462},
+ {'y', '3', 0x0463},
+ {'O', '3', 0x046a},
+ {'o', '3', 0x046b},
+ {'F', '3', 0x0472},
+ {'f', '3', 0x0473},
+ {'V', '3', 0x0474},
+ {'v', '3', 0x0475},
+ {'C', '3', 0x0480},
+ {'c', '3', 0x0481},
+ {'G', '3', 0x0490},
+ {'g', '3', 0x0491},
+ {'A', '+', 0x05d0},
+ {'B', '+', 0x05d1},
+ {'G', '+', 0x05d2},
+ {'D', '+', 0x05d3},
+ {'H', '+', 0x05d4},
+ {'W', '+', 0x05d5},
+ {'Z', '+', 0x05d6},
+ {'X', '+', 0x05d7},
+ {'T', 'j', 0x05d8},
+ {'J', '+', 0x05d9},
+ {'K', '%', 0x05da},
+ {'K', '+', 0x05db},
+ {'L', '+', 0x05dc},
+ {'M', '%', 0x05dd},
+ {'M', '+', 0x05de},
+ {'N', '%', 0x05df},
+ {'N', '+', 0x05e0},
+ {'S', '+', 0x05e1},
+ {'E', '+', 0x05e2},
+ {'P', '%', 0x05e3},
+ {'P', '+', 0x05e4},
+ {'Z', 'j', 0x05e5},
+ {'Z', 'J', 0x05e6},
+ {'Q', '+', 0x05e7},
+ {'R', '+', 0x05e8},
+ {'S', 'h', 0x05e9},
+ {'T', '+', 0x05ea},
+ {',', '+', 0x060c},
+ {';', '+', 0x061b},
+ {'?', '+', 0x061f},
+ {'H', '\'', 0x0621},
+ {'a', 'M', 0x0622},
+ {'a', 'H', 0x0623},
+ {'w', 'H', 0x0624},
+ {'a', 'h', 0x0625},
+ {'y', 'H', 0x0626},
+ {'a', '+', 0x0627},
+ {'b', '+', 0x0628},
+ {'t', 'm', 0x0629},
+ {'t', '+', 0x062a},
+ {'t', 'k', 0x062b},
+ {'g', '+', 0x062c},
+ {'h', 'k', 0x062d},
+ {'x', '+', 0x062e},
+ {'d', '+', 0x062f},
+ {'d', 'k', 0x0630},
+ {'r', '+', 0x0631},
+ {'z', '+', 0x0632},
+ {'s', '+', 0x0633},
+ {'s', 'n', 0x0634},
+ {'c', '+', 0x0635},
+ {'d', 'd', 0x0636},
+ {'t', 'j', 0x0637},
+ {'z', 'H', 0x0638},
+ {'e', '+', 0x0639},
+ {'i', '+', 0x063a},
+ {'+', '+', 0x0640},
+ {'f', '+', 0x0641},
+ {'q', '+', 0x0642},
+ {'k', '+', 0x0643},
+ {'l', '+', 0x0644},
+ {'m', '+', 0x0645},
+ {'n', '+', 0x0646},
+ {'h', '+', 0x0647},
+ {'w', '+', 0x0648},
+ {'j', '+', 0x0649},
+ {'y', '+', 0x064a},
+ {':', '+', 0x064b},
+ {'"', '+', 0x064c},
+ {'=', '+', 0x064d},
+ {'/', '+', 0x064e},
+ {'\'', '+', 0x064f},
+ {'1', '+', 0x0650},
+ {'3', '+', 0x0651},
+ {'0', '+', 0x0652},
+ {'a', 'S', 0x0670},
+ {'p', '+', 0x067e},
+ {'v', '+', 0x06a4},
+ {'g', 'f', 0x06af},
+ {'0', 'a', 0x06f0},
+ {'1', 'a', 0x06f1},
+ {'2', 'a', 0x06f2},
+ {'3', 'a', 0x06f3},
+ {'4', 'a', 0x06f4},
+ {'5', 'a', 0x06f5},
+ {'6', 'a', 0x06f6},
+ {'7', 'a', 0x06f7},
+ {'8', 'a', 0x06f8},
+ {'9', 'a', 0x06f9},
+ {'B', '.', 0