diff options
Diffstat (limited to 'src/digraph.c')
-rw-r--r-- | src/digraph.c | 2513 |
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', '.', 0x1e02}, + {'b', '.', 0x1e03}, + {'B', '_', 0x1e06}, + {'b', '_', 0x1e07}, + {'D', '.', 0x1e0a}, + {'d', '.', 0x1e0b}, + {'D', '_', 0x1e0e}, + {'d', '_', 0x1e0f}, + {'D', ',', 0x1e10}, + {'d', ',', 0x1e11}, + {'F', '.', 0x1e1e}, + {'f', '.', 0x1e1f}, + {'G', '-', 0x1e20}, + {'g', '-', 0x1e21}, + {'H', '.', 0x1e22}, + {'h', '.', 0x1e23}, + {'H', ':', 0x1e26}, + {'h', ':', 0x1e27}, + {'H', ',', 0x1e28}, + {'h', ',', 0x1e29}, + {'K', '\'', 0x1e30}, + {'k', '\'', 0x1e31}, + {'K', '_', 0x1e34}, + {'k', '_', 0x1e35}, + {'L', '_', 0x1e3a}, + {'l', '_', 0x1e3b}, + {'M', '\'', 0x1e3e}, + {'m', '\'', 0x1e3f}, + {'M', '.', 0x1e40}, + {'m', '.', 0x1e41}, + {'N', '.', 0x1e44}, + {'n', '.', 0x1e45}, + {'N', '_', 0x1e48}, |