aboutsummaryrefslogtreecommitdiff
path: root/src/digraph.c
diff options
context:
space:
mode:
authorEliseo Martínez <eliseomarmol@gmail.com>2014-05-12 02:25:17 +0200
committerEliseo Martínez <eliseomarmol@gmail.com>2014-05-15 20:46:01 +0200
commitda51dc9cf202772f60bd2da975dbef257bd9237c (patch)
tree5c16b93238a153f55634e9323077f30c8133970c /src/digraph.c
parentffe61e5ba1721340ca51d56bae3ddaca415fb5bc (diff)
downloadrneovim-da51dc9cf202772f60bd2da975dbef257bd9237c.tar.gz
rneovim-da51dc9cf202772f60bd2da975dbef257bd9237c.tar.bz2
rneovim-da51dc9cf202772f60bd2da975dbef257bd9237c.zip
Introduce nvim namespace: Move files.
Move files from src/ to src/nvim/. - src/nvim/ becomes the new root dir for nvim executable sources. - src/libnvim/ is planned to become root dir of the neovim library.
Diffstat (limited to 'src/digraph.c')
-rw-r--r--src/digraph.c1881
1 files changed, 0 insertions, 1881 deletions
diff --git a/src/digraph.c b/src/digraph.c
deleted file mode 100644
index 7ab8bd181d..0000000000
--- a/src/digraph.c
+++ /dev/null
@@ -1,1881 +0,0 @@
-/// @file digraph.c
-///
-/// code for digraphs
-
-#include "vim.h"
-#include "digraph.h"
-#include "charset.h"
-#include "ex_cmds2.h"
-#include "ex_docmd.h"
-#include "ex_getln.h"
-#include "getchar.h"
-#include "mbyte.h"
-#include "message.h"
-#include "misc2.h"
-#include "memory.h"
-#include "garray.h"
-#include "normal.h"
-#include "screen.h"
-#include "ui.h"
-
-typedef int result_T;
-
-typedef struct digraph {
- char_u char1;
- char_u char2;
- result_T result;
-} digr_T;
-
-static int getexactdigraph(int char1, int char2, int meta_char);
-static void printdigraph(digr_T *dp);
-
-// digraphs added by the user
-static garray_T user_digraphs = {0, 0, (int)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).
-static digr_T digraphdefault[] =
-
-// digraphs for Unicode from RFC1345
-// (also work for ISO-8859-1 aka latin1)
-{
- { '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 },
-
- { '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 },
- { 'n', '_', 0x1e49 },
- { 'P', '\'', 0x1e54 },
- { 'p', '\'', 0x1e55 },
- { 'P', '.', 0x1e56 },
- { 'p', '.', 0x1e57 },
- { 'R', '.', 0x1e58 },
- { 'r', '.', 0x1e59 },
- { 'R', '_', 0x1e5e },
- { 'r', '_', 0x1e5f },
- { 'S', '.', 0x1e60 },
- { 's', '.', 0x1e61 },
- { 'T', '.', 0x1e6a },
- { 't', '.', 0x1e6b },
- { 'T', '_', 0x1e6e },
- { 't', '_', 0x1e6f },
- { 'V', '?', 0x1e7c },
- { 'v', '?', 0x1e7d },
- { 'W', '!', 0x1e80 },
- { 'w', '!', 0x1e81 },
- { 'W', '\'', 0x1e82 },
- { 'w', '\'', 0x1e83 },
- { 'W', ':', 0x1e84 },
- { 'w', ':', 0x1e85 },
- { 'W', '.', 0x1e86 },
- { 'w', '.', 0x1e87 },
- { 'X', '.', 0x1e8a },
- { 'x', '.', 0x1e8b },
- { 'X', ':', 0x1e8c },
- { 'x', ':', 0x1e8d },
- { 'Y', '.', 0x1e8e },
- { 'y', '.', 0x1e8f },
- { 'Z', '>', 0x1e90 },
- { 'z', '>', 0x1e91 },
- { 'Z', '_', 0x1e94 },
- { 'z', '_', 0x1e95 },
- { 'h', '_', 0x1e96 },
- { 't', ':', 0x1e97 },
- { 'w', '0', 0x1e98 },
- { 'y', '0', 0x1e99 },
- { 'A', '2', 0x1ea2 },
- { 'a', '2', 0x1ea3 },
- { 'E', '2', 0x1eba },
- { 'e', '2', 0x1ebb },
- { 'E', '?', 0x1ebc },
- { 'e', '?', 0x1ebd },
- { 'I', '2', 0x1ec8 },
- { 'i', '2', 0x1ec9 },
- { 'O', '2', 0x1ece },
- { 'o', '2', 0x1ecf },
- { 'U', '2', 0x1ee6 },
- { 'u', '2', 0x1ee7 },
- { 'Y', '!', 0x1ef2 },
- { 'y', '!', 0x1ef3 },
- { 'Y', '2', 0x1ef6 },
- { 'y', '2', 0x1ef7 },
- { 'Y', '?', 0x1ef8 },
- { 'y', '?', 0x1ef9 },
- { ';', '\'', 0x1f00 },
- { ',', '\'', 0x1f01 },
- { ';', '!', 0x1f02 },
- { ',', '!', 0x1f03 },
- { '?', ';', 0x1f04 },
- { '?', ',', 0x1f05 },
- { '!', ':', 0x1f06 },
- { '?', ':', 0x1f07 },
- { '1', 'N', 0x2002 },
- { '1', 'M', 0x2003 },
- { '3', 'M', 0x2004 },
- { '4', 'M', 0x2005 },
- { '6', 'M', 0x2006 },
- { '1', 'T', 0x2009 },
- { '1', 'H', 0x200a },
- { '-', '1', 0x2010 },
- { '-', 'N', 0x2013 },
- { '-', 'M', 0x2014 },
- { '-', '3', 0x2015 },
- { '!', '2', 0x2016 },
- { '=', '2', 0x2017 },
- { '\'', '6', 0x2018 },
- { '\'', '9', 0x2019 },
- { '.', '9', 0x201a },
- { '9', '\'', 0x201b },
- { '"', '6', 0x201c },
- { '"', '9', 0x201d },
- { ':', '9', 0x201e },
- { '9', '"', 0x201f },
- { '/', '-', 0x2020 },
- { '/', '=', 0x2021 },
- { '.', '.', 0x2025 },
- { '%', '0', 0x2030 },
- { '1', '\'', 0x2032 },
- { '2', '\'', 0x2033 },
- { '3', '\'', 0x2034 },
- { '1', '"', 0x2035 },
- { '2', '"', 0x2036 },
- { '3', '"', 0x2037 },
- { 'C', 'a', 0x2038 },
- { '<', '1', 0x2039 },
- { '>', '1', 0x203a },
- { ':', 'X', 0x203b },
- { '\'', '-', 0x203e },
- { '/', 'f', 0x2044 },
- { '0', 'S', 0x2070 },
- { '4', 'S', 0x2074 },
- { '5', 'S', 0x2075 },
- { '6', 'S', 0x2076 },
- { '7', 'S', 0x2077 },
- { '8', 'S', 0x2078 },
- { '9', 'S', 0x2079 },
- { '+', 'S', 0x207a },
- { '-', 'S', 0x207b },
- { '=', 'S', 0x207c },
- { '(', 'S', 0x207d },
- { ')', 'S', 0x207e },
- { 'n', 'S', 0x207f },
- { '0', 's', 0x2080 },
- { '1', 's', 0x2081 },
- { '2', 's', 0x2082 },
- { '3', 's', 0x2083 },
- { '4', 's', 0x2084 },
- { '5', 's', 0x2085 },
- { '6', 's', 0x2086 },
- { '7', 's', 0x2087 },
- { '8', 's', 0x2088 },
- { '9', 's', 0x2089 },
- { '+', 's', 0x208a },
- { '-', 's', 0x208b },
- { '=', 's', 0x208c },
- { '(', 's', 0x208d },
- { ')', 's', 0x208e },
- { 'L', 'i', 0x20a4 },
- { 'P', 't', 0x20a7 },
- { 'W', '=', 0x20a9 },
- { '=', 'e', 0x20ac }, // euro
- { 'E', 'u', 0x20ac }, // euro
- { 'o', 'C', 0x2103 },
- { 'c', 'o', 0x2105 },
- { 'o', 'F', 0x2109 },
- { 'N', '0', 0x2116 },
- { 'P', 'O', 0x2117 },
- { 'R', 'x', 0x211e },
- { 'S', 'M', 0x2120 },
- { 'T', 'M', 0x2122 },
- { 'O', 'm', 0x2126 },
- { 'A', 'O', 0x212b },
- { '1', '3', 0x2153 },
- { '2', '3', 0x2154 },
- { '1', '5', 0x2155 },
- { '2', '5', 0x2156 },
- { '3', '5', 0x2157 },
- { '4', '5', 0x2158 },
- { '1', '6', 0x2159 },
- { '5', '6', 0x215a },
- { '1', '8', 0x215b },
- { '3', '8', 0x215c },
- { '5', '8', 0x215d },
- { '7', '8', 0x215e },
- { '1', 'R', 0x2160 },
- { '2', 'R', 0x2161 },
- { '3', 'R', 0x2162 },
- { '4', 'R', 0x2163 },
- { '5', 'R', 0x2164 },
- { '6', 'R', 0x2165 },
- { '7', 'R', 0x2166 },
- { '8', 'R', 0x2167 },
- { '9', 'R', 0x2168 },
- { 'a', 'R', 0x2169 },
- { 'b', 'R', 0x216a },
- { 'c', 'R', 0x216b },
- { '1', 'r', 0x2170 },
- { '2', 'r', 0x2171 },
- { '3', 'r', 0x2172 },
- { '4', 'r', 0x2173 },
- { '5', 'r', 0x2174 },
- { '6', 'r', 0x2175 },
- { '7', 'r', 0x2176 },
- { '8', 'r', 0x2177 },
- { '9', 'r', 0x2178 },
- { 'a', 'r', 0x2179 },
- { 'b', 'r', 0x217a },
- { 'c', 'r', 0x217b },
- { '<', '-', 0x2190 },
- { '-', '!', 0x2191 },
- { '-', '>', 0x2192 },
- { '-', 'v', 0x2193 },
- { '<', '>', 0x2194 },
- { 'U', 'D', 0x2195 },
- { '<', '=', 0x21d0 },
- { '=', '>', 0x21d2 },
- { '=', '=', 0x21d4 },
- { 'F', 'A', 0x2200 },
- { 'd', 'P', 0x2202 },
- { 'T', 'E', 0x2203 },
- { '/', '0', 0x2205 },
- { 'D', 'E', 0x2206 },
- { 'N', 'B', 0x2207 },
- { '(', '-', 0x2208 },
- { '-', ')', 0x220b },
- { '*', 'P', 0x220f },
- { '+', 'Z', 0x2211 },
- { '-', '2', 0x2212 },
- { '-', '+', 0x2213 },
- { '*', '-', 0x2217 },
- { 'O', 'b', 0x2218 },
- { 'S', 'b', 0x2219 },
- { 'R', 'T', 0x221a },
- { '0', '(', 0x221d },
- { '0', '0', 0x221e },
- { '-', 'L', 0x221f },
- { '-', 'V', 0x2220 },
- { 'P', 'P', 0x2225 },
- { 'A', 'N', 0x2227 },
- { 'O', 'R', 0x2228 },
- { '(', 'U', 0x2229 },
- { ')', 'U', 0x222a },
- { 'I', 'n', 0x222b },
- { 'D', 'I', 0x222c },
- { 'I', 'o', 0x222e },
- { '.', ':', 0x2234 },
- { ':', '.', 0x2235 },
- { ':', 'R', 0x2236 },
- { ':', ':', 0x2237 },
- { '?', '1', 0x223c },
- { 'C', 'G', 0x223e },
- { '?', '-', 0x2243 },
- { '?', '=', 0x2245 },
- { '?', '2', 0x2248 },
- { '=', '?', 0x224c },
- { 'H', 'I', 0x2253 },
- { '!', '=', 0x2260 },
- { '=', '3', 0x2261 },
- { '=', '<', 0x2264 },
- { '>', '=', 0x2265 },
- { '<', '*', 0x226a },
- { '*', '>', 0x226b },
- { '!', '<', 0x226e },
- { '!', '>', 0x226f },
- { '(', 'C', 0x2282 },
- { ')', 'C', 0x2283 },
- { '(', '_', 0x2286 },
- { ')', '_', 0x2287 },
- { '0', '.', 0x2299 },
- { '0', '2', 0x229a },
- { '-', 'T', 0x22a5 },
- { '.', 'P', 0x22c5 },
- { ':', '3', 0x22ee },
- { '.', '3', 0x22ef },
- { 'E', 'h', 0x2302 },
- { '<', '7', 0x2308 },
- { '>', '7', 0x2309 },
- { '7', '<', 0x230a },
- { '7', '>', 0x230b },
- { 'N', 'I', 0x2310 },
- { '(', 'A', 0x2312 },
- { 'T', 'R', 0x2315 },
- { 'I', 'u', 0x2320 },
- { 'I', 'l', 0x2321 },
- { '<', '/', 0x2329 },
- { '/', '>', 0x232a },
- { 'V', 's', 0x2423 },
- { '1', 'h', 0x2440 },
- { '3', 'h', 0x2441 },
- { '2', 'h', 0x2442 },
- { '4', 'h', 0x2443 },
- { '1', 'j', 0x2446 },
- { '2', 'j', 0x2447 },
- { '3', 'j', 0x2448 },
- { '4', 'j', 0x2449 },
- { '1', '.', 0x2488 },
- { '2', '.', 0x2489 },
- { '3', '.', 0x248a },
- { '4', '.', 0x248b },
- { '5', '.', 0x248c },
- { '6', '.', 0x248d },
- { '7', '.', 0x248e },
- { '8', '.', 0x248f },
- { '9', '.', 0x2490 },
- { 'h', 'h', 0x2500 },
- { 'H', 'H', 0x2501 },
- { 'v', 'v', 0x2502 },
- { 'V', 'V', 0x2503 },
- { '3', '-', 0x2504 },
- { '3', '_', 0x2505 },
- { '3', '!', 0x2506 },
- { '3', '/', 0x2507 },
- { '4', '-', 0x2508 },
- { '4', '_', 0x2509 },
- { '4', '!', 0x250a },
- { '4', '/', 0x250b },
- { 'd', 'r', 0x250c },
- { 'd', 'R', 0x250d },
- { 'D', 'r', 0x250e },
- { 'D', 'R', 0x250f },
- { 'd', 'l', 0x2510 },
- { 'd', 'L', 0x2511 },
- { 'D', 'l', 0x2512 },
- { 'L', 'D', 0x2513 },
- { 'u', 'r', 0x2514 },
- { 'u', 'R', 0x2515 },
- { 'U', 'r', 0x2516 },
- { 'U', 'R', 0x2517 },
- { 'u', 'l', 0x2518 },
- { 'u', 'L', 0x2519 },
- { 'U', 'l', 0x251a },
- { 'U', 'L', 0x251b },
- { 'v', 'r', 0x251c },
- { 'v', 'R', 0x251d },
- { 'V', 'r', 0x2520 },
- { 'V', 'R', 0x2523 },
- { 'v', 'l', 0x2524 },
- { 'v', 'L', 0x2525 },
- { 'V', 'l', 0x2528 },
- { 'V', 'L', 0x252b },
- { 'd', 'h', 0x252c },
- { 'd', 'H', 0x252f },
- { 'D', 'h', 0x2530 },
- { 'D', 'H', 0x2533 },
- { 'u', 'h', 0x2534 },
- { 'u', 'H', 0x2537 },
- { 'U', 'h', 0x2538 },
- { 'U', 'H', 0x253b },
- { 'v', 'h', 0x253c },
- { 'v', 'H', 0x253f },
- { 'V', 'h', 0x2542 },
- { 'V', 'H', 0x254b },
- { 'F', 'D', 0x2571 },
- { 'B', 'D', 0x2572 },
- { 'T', 'B', 0x2580 },
- { 'L', 'B', 0x2584 },
- { 'F', 'B', 0x2588 },
- { 'l', 'B', 0x258c },
- { 'R', 'B', 0x2590 },
- { '.', 'S', 0x2591 },
- { ':', 'S', 0x2592 },
- { '?', 'S', 0x2593 },
- { 'f', 'S', 0x25a0 },
- { 'O', 'S', 0x25a1 },
- { 'R', 'O', 0x25a2 },
- { 'R', 'r', 0x25a3 },
- { 'R', 'F', 0x25a4 },
- { 'R', 'Y', 0x25a5 },
- { 'R', 'H', 0x25a6 },
- { 'R', 'Z', 0x25a7 },
- { 'R', 'K', 0x25a8 },
- { 'R', 'X', 0x25a9 },
- { 's', 'B', 0x25aa },
- { 'S', 'R', 0x25ac },
- { 'O', 'r', 0x25ad },
- { 'U', 'T', 0x25b2 },
- { 'u', 'T', 0x25b3 },
- { 'P', 'R', 0x25b6 },
- { 'T', 'r', 0x25b7 },
- { 'D', 't', 0x25bc },
- { 'd', 'T', 0x25bd },
- { 'P', 'L', 0x25c0 },
- { 'T', 'l', 0x25c1 },
- { 'D', 'b', 0x25c6 },
- { 'D', 'w', 0x25c7 },
- { 'L', 'Z', 0x25ca },
- { '0', 'm', 0x25cb },
- { '0', 'o', 0x25ce },
- { '0', 'M', 0x25cf },
- { '0', 'L', 0x25d0 },
- { '0', 'R', 0x25d1 },
- { 'S', 'n', 0x25d8 },
- { 'I', 'c', 0x25d9 },
- { 'F', 'd', 0x25e2 },
- { 'B', 'd', 0x25e3 },
- { '*', '2', 0x2605 },
- { '*', '1', 0x2606 },
- { '<', 'H', 0x261c },
- { '>', 'H', 0x261e },
- { '0', 'u', 0x263a },
- { '0', 'U', 0x263b },
- { 'S', 'U', 0x263c },
- { 'F', 'm', 0x2640 },
- { 'M', 'l', 0x2642 },
- { 'c', 'S', 0x2660 },
- { 'c', 'H', 0x2661 },
- { 'c', 'D', 0x2662 },
- { 'c', 'C', 0x2663 },
- { 'M', 'd', 0x2669 },
- { 'M', '8', 0x266a },
- { 'M', '2', 0x266b },
- { 'M', 'b', 0x266d },
- { 'M', 'x', 0x266e },
- { 'M', 'X', 0x266f },
- { 'O', 'K', 0x2713 },
- { 'X', 'X', 0x2717 },
- { '-', 'X', 0x2720 },
- { 'I', 'S', 0x3000 },
- { ',', '_', 0x3001 },
- { '.', '_', 0x3002 },
- { '+', '"', 0x3003 },
- { '+', '_', 0x3004 },
- { '*', '_', 0x3005 },
- { ';', '_', 0x3006 },
- { '0', '_', 0x3007 },
- { '<', '+', 0x300a },
- { '>', '+', 0x300b },
- { '<', '\'', 0x300c },
- { '>', '\'', 0x300d },
- { '<', '"', 0x300e },
- { '>', '"', 0x300f },
- { '(', '"', 0x3010 },
- { ')', '"', 0x3011 },
- { '=', 'T', 0x3012 },
- { '=', '_', 0x3013 },
- { '(', '\'', 0x3014 },
- { ')', '\'', 0x3015 },
- { '(', 'I', 0x3016 },
- { ')', 'I', 0x3017 },
- { '-', '?', 0x301c },
- { 'A', '5', 0x3041 },
- { 'a', '5', 0x3042 },
- { 'I', '5', 0x3043 },
- { 'i', '5', 0x3044 },
- { 'U', '5', 0x3045 },
- { 'u', '5', 0x3046 },
- { 'E', '5', 0x3047 },
- { 'e', '5', 0x3048 },
- { 'O', '5', 0x3049 },
- { 'o', '5', 0x304a },
- { 'k', 'a', 0x304b },
- { 'g', 'a', 0x304c },
- { 'k', 'i', 0x304d },
- { 'g', 'i', 0x304e },
- { 'k', 'u', 0x304f },
- { 'g', 'u', 0x3050 },
- { 'k', 'e', 0x3051 },
- { 'g', 'e', 0x3052 },
- { 'k', 'o', 0x3053 },
- { 'g', 'o', 0x3054 },
- { 's', 'a', 0x3055 },
- { 'z', 'a', 0x3056 },
- { 's', 'i', 0x3057 },
- { 'z', 'i', 0x3058 },
- { 's', 'u', 0x3059 },
- { 'z', 'u', 0x305a },
- { 's', 'e', 0x305b },
- { 'z', 'e', 0x305c },
- { 's', 'o', 0x305d },
- { 'z', 'o', 0x305e },
- { 't', 'a', 0x305f },
- { 'd', 'a', 0x3060 },
- { 't', 'i', 0x3061 },
- { 'd', 'i', 0x3062 },
- { 't', 'U', 0x3063 },
- { 't', 'u', 0x3064 },
- { 'd', 'u', 0x3065 },
- { 't', 'e', 0x3066 },
- { 'd', 'e', 0x3067 },
- { 't', 'o', 0x3068 },
- { 'd', 'o', 0x3069 },
- { 'n', 'a', 0x306a },
- { 'n', 'i', 0x306b },
- { 'n', 'u', 0x306c },
- { 'n', 'e', 0x306d },
- { 'n', 'o', 0x306e },
- { 'h', 'a', 0x306f },
- { 'b', 'a', 0x3070 },
- { 'p', 'a', 0x3071 },
- { 'h', 'i', 0x3072 },
- { 'b', 'i', 0x3073 },
- { 'p', 'i', 0x3074 },
- { 'h', 'u', 0x3075 },
- { 'b', 'u', 0x3076 },
- { 'p', 'u', 0x3077 },
- { 'h', 'e', 0x3078 },
- { 'b', 'e', 0x3079 },
- { 'p', 'e', 0x307a },
- { 'h', 'o', 0x307b },
- { 'b', 'o', 0x307c },
- { 'p', 'o', 0x307d },
- { 'm', 'a', 0x307e },
- { 'm', 'i', 0x307f },
- { 'm', 'u', 0x3080 },
- { 'm', 'e', 0x3081 },
- { 'm', 'o', 0x3082 },
- { 'y', 'A', 0x3083 },
- { 'y', 'a', 0x3084 },
- { 'y', 'U', 0x3085 },
- { 'y', 'u', 0x3086 },
- { 'y', 'O', 0x3087 },
- { 'y', 'o', 0x3088 },
- { 'r', 'a', 0x3089 },
- { 'r', 'i', 0x308a },
- { 'r', 'u', 0x308b },
- { 'r', 'e', 0x308c },
- { 'r', 'o', 0x308d },
- { 'w', 'A', 0x308e },
- { 'w', 'a', 0x308f },
- { 'w', 'i', 0x3090 },
- { 'w', 'e', 0x3091 },
- { 'w', 'o', 0x3092 },
- { 'n', '5', 0x3093 },
- { 'v', 'u', 0x3094 },
- { '"', '5', 0x309b },
- { '0', '5', 0x309c },
- { '*', '5', 0x309d },
- { '+', '5', 0x309e },
- { 'a', '6', 0x30a1 },
- { 'A', '6', 0x30a2 },
- { 'i', '6', 0x30a3 },
- { 'I', '6', 0x30a4 },
- { 'u', '6', 0x30a5 },
- { 'U', '6', 0x30a6 },
- { 'e', '6', 0x30a7 },
- { 'E', '6', 0x30a8 },
- { 'o', '6', 0x30a9 },
- { 'O', '6', 0x30aa },
- { 'K', 'a', 0x30ab },
- { 'G', 'a', 0x30ac },
- { 'K', 'i', 0x30ad },
- { 'G', 'i', 0x30ae },
- { 'K', 'u', 0x30af },
- { 'G', 'u', 0x30b0 },
- { 'K', 'e', 0x30b1 },
- { 'G', 'e', 0x30b2 },
- { 'K', 'o', 0x30b3 },
- { 'G', 'o', 0x30b4 },
- { 'S', 'a', 0x30b5 },
- { 'Z', 'a', 0x30b6 },
- { 'S', 'i', 0x30b7 },
- { 'Z', 'i', 0x30b8 },
- { 'S', 'u', 0x30b9 },
- { 'Z', 'u', 0x30ba },
- { 'S', 'e', 0x30bb },
- { 'Z', 'e', 0x30bc },
- { 'S', 'o', 0x30bd },
- { 'Z', 'o', 0x30be },
- { 'T', 'a', 0x30bf },
- { 'D', 'a', 0x30c0 },
- { 'T', 'i', 0x30c1 },
- { 'D', 'i', 0x30c2 },
- { 'T', 'U', 0x30c3 },
- { 'T', 'u', 0x30c4 },
- { 'D', 'u', 0x30c5 },
- { 'T', 'e', 0x30c6 },
- { 'D', 'e', 0x30c7 },
- { 'T', 'o', 0x30c8 },
- { 'D', 'o', 0x30c9 },
- { 'N', 'a', 0x30ca },
- { 'N', 'i', 0x30cb },
- { 'N', 'u', 0x30cc },
- { 'N', 'e', 0x30cd },
- { 'N', 'o', 0x30ce },
- { 'H', 'a', 0x30cf },
- { 'B', 'a', 0x30d0 },
- { 'P', 'a', 0x30d1 },
- { 'H', 'i', 0x30d2 },
- { 'B', 'i', 0x30d3 },
- { 'P', 'i', 0x30d4 },
- { 'H', 'u', 0x30d5 },
- { 'B', 'u', 0x30d6 },
- { 'P', 'u', 0x30d7 },
- { 'H', 'e', 0x30d8 },
- { 'B', 'e', 0x30d9 },
- { 'P', 'e', 0x30da },
- { 'H', 'o', 0x30db },
- { 'B', 'o', 0x30dc },
- { 'P', 'o', 0x30dd },
- { 'M', 'a', 0x30de },
- { 'M', 'i', 0x30df },
- { 'M', 'u', 0x30e0 },
- { 'M', 'e', 0x30e1 },
- { 'M', 'o', 0x30e2 },
- { 'Y', 'A', 0x30e3 },
- { 'Y', 'a', 0x30e4 },
- { 'Y', 'U', 0x30e5 },
- { 'Y', 'u', 0x30e6 },
- { 'Y', 'O', 0x30e7 },
- { 'Y', 'o', 0x30e8 },
- { 'R', 'a', 0x30e9 },
- { 'R', 'i', 0x30ea },
- { 'R', 'u', 0x30eb },
- { 'R', 'e', 0x30ec },
- { 'R', 'o', 0x30ed },
- { 'W', 'A', 0x30ee },
- { 'W', 'a', 0x30ef },
- { 'W', 'i', 0x30f0 },
- { 'W', 'e', 0x30f1 },
- { 'W', 'o', 0x30f2 },
- { 'N', '6', 0x30f3 },
- { 'V', 'u', 0x30f4 },
- { 'K', 'A', 0x30f5 },
- { 'K', 'E', 0x30f6 },
- { 'V', 'a', 0x30f7 },
- { 'V', 'i', 0x30f8 },
- { 'V', 'e', 0x30f9 },
- { 'V', 'o', 0x30fa },
- { '.', '6', 0x30fb },
- { '-', '6', 0x30fc },
- { '*', '6', 0x30fd },
- { '+', '6', 0x30fe },
- { 'b', '4', 0x3105 },
- { 'p', '4', 0x3106 },
- { 'm', '4', 0x3107 },
- { 'f', '4', 0x3108 },
- { 'd', '4', 0x3109 },
- { 't', '4', 0x310a },
- { 'n', '4', 0x310b },
- { 'l', '4', 0x310c },
- { 'g', '4', 0x310d },
- { 'k', '4', 0x310e },
- { 'h', '4', 0x310f },
- { 'j', '4', 0x3110 },
- { 'q', '4', 0x3111 },
- { 'x', '4', 0x3112 },
- { 'z', 'h', 0x3113 },
- { 'c', 'h', 0x3114 },
- { 's', 'h', 0x3115 },
- { 'r', '4', 0x3116 },
- { 'z', '4', 0x3117 },
- { 'c', '4', 0x3118 },
- { 's', '4', 0x3119 },
- { 'a', '4', 0x311a },
- { 'o', '4', 0x311b },
- { 'e', '4', 0x311c },
- { 'a', 'i', 0x311e },
- { 'e', 'i', 0x311f },
- { 'a', 'u', 0x3120 },
- { 'o', 'u', 0x3121 },
- { 'a', 'n', 0x3122 },
- { 'e', 'n', 0x3123 },
- { 'a', 'N', 0x3124 },
- { 'e', 'N', 0x3125 },
- { 'e', 'r', 0x3126 },
- { 'i', '4', 0x3127 },
- { 'u', '4', 0x3128 },
- { 'i', 'u', 0x3129 },
- { 'v', '4', 0x312a },
- { 'n', 'G', 0x312b },
- { 'g', 'n', 0x312c },
- { '1', 'c', 0x3220 },
- { '2', 'c', 0x3221 },
- { '3', 'c', 0x3222 },
- { '4', 'c', 0x3223 },
- { '5', 'c', 0x3224 },
- { '6', 'c', 0x3225 },
- { '7', 'c', 0x3226 },
- { '8', 'c', 0x3227 },
- { '9', 'c', 0x3228 },
-
- // code points 0xe000 - 0xefff excluded, they have no assigned
- // characters, only used in proposals.
- { 'f', 'f', 0xfb00 },
- { 'f', 'i', 0xfb01 },
- { 'f', 'l', 0xfb02 },
- { 'f', 't', 0xfb05 },
- { 's', 't', 0xfb06 },
-
- // Vim 5.x compatible digraphs that don't conflict with the above
- { '~', '!', 161 }, //
- { 'c', '|', 162 }, //
- { '$', '$', 163 }, //
- { 'o', 'x', 164 }, // - currency symbol in ISO 8859-1
- { 'Y', '-', 165 }, //
- { '|', '|', 166 }, //
- { 'c', 'O', 169 }, //
- { '-', ',', 172 }, //
- { '-', '=', 175 }, //
- { '~', 'o', 176 }, //
- { '2', '2', 178 }, //
- { '3', '3', 179 }, //
- { 'p', 'p', 182 }, //
- { '~', '.', 183 }, //
- { '1', '1', 185 }, //
- { '~', '?', 191 }, //
- { 'A', '`', 192 }, //
- { 'A', '^', 194 }, //
- { 'A', '~', 195 }, //
- { 'A', '"', 196 }, //
- { 'A', '@', 197 }, //
- { 'E', '`', 200 }, //
- { 'E', '^', 202 }, //
- { 'E', '"', 203 }, //
- { 'I', '`', 204 }, //
- { 'I', '^', 206 }, //
- { 'I', '"', 207 }, //
- { 'N', '~', 209 }, //
- { 'O', '`', 210 }, //
- { 'O', '^', 212 }, //
- { 'O', '~', 213 }, //
- { '/', '\\', 215 }, // - multiplication symbol in ISO 8859-1
- { 'U', '`', 217 }, //
- { 'U', '^', 219 }, //
- { 'I', 'p', 222 }, //
- { 'a', '`', 224 }, //
- { 'a', '^', 226 }, //
- { 'a', '~', 227 }, //
- { 'a', '"', 228 }, //
- { 'a', '@', 229 }, //
- { 'e', '`', 232 }, //
- { 'e', '^', 234 }, //
- { 'e', '"', 235 }, //
- { 'i', '`', 236 }, //
- { 'i', '^', 238 }, //
- { 'n', '~', 241 }, //
- { 'o', '`', 242 }, //
- { 'o', '^', 244 }, //
- { 'o', '~', 245 }, //
- { 'u', '`', 249 }, //
- { 'u', '^', 251 }, //
- { 'y', '"', 255 }, // x XX
-
- { NUL, NUL, NUL }
-};
-
-/// handle digraphs after typing a character
-///
-/// @param c
-///
-/// @return The digraph.
-int do_digraph(int c)
-{
- static int backspaced; // character before K_BS
- static int lastchar; // last typed character
-
- if (c == -1) { // init values
- backspaced = -1;
- } else if (p_dg) {
- if (backspaced >= 0) {
- c = getdigraph(backspaced, c, FALSE);
- }
- backspaced = -1;
-
- if (((c == K_BS) || (c == Ctrl_H)) && (lastchar >= 0)) {
- backspaced = lastchar;
- }
- }
- lastchar = c;
- return c;
-}
-
-/// Get a digraph. Used after typing CTRL-K on the command line or in normal
-/// mode.
-///
-/// @param cmdline TRUE when called from the cmdline
-///
-/// @returns composed character, or NUL when ESC was used.
-int get_digraph(int cmdline)
-{
- int cc;
- no_mapping++;
- allow_keys++;
- int c = plain_vgetc();
- no_mapping--;
- allow_keys--;
-
- if (c != ESC) {
- // ESC cancels CTRL-K
- if (IS_SPECIAL(c)) {
- // insert special key code
- return c;
- }
-
- if (cmdline) {
- if ((char2cells(c) == 1) && (cmdline_star == 0)) {
- putcmdline(c, TRUE);
- }
- } else {
- add_to_showcmd(c);
- }
- no_mapping++;
- allow_keys++;
- cc = plain_vgetc();
- no_mapping--;
- allow_keys--;
-
- if (cc != ESC) {
- // ESC cancels CTRL-K
- return getdigraph(c, cc, TRUE);
- }
- }
- return NUL;
-}
-
-/// Lookup the pair "char1", "char2" in the digraph tables.
-///
-/// @param char1
-/// @param char2
-/// @param meta_char
-///
-/// @return If no match, return "char2". If "meta_char" is TRUE and "char1"
-// is a space, return "char2" | 0x80.
-static int getexactdigraph(int char1, int char2, int meta_char)
-{
- int retval = 0;
-
- if (IS_SPECIAL(char1) || IS_SPECIAL(char2)) {
- return char2;
- }
-
- // Search user digraphs first.
- digr_T *dp = (digr_T *)user_digraphs.ga_data;
- int i;
- for (i = 0; i < user_digraphs.ga_len; ++i) {
- if (((int) dp->char1 == char1) && ((int) dp->char2 == char2)) {
- retval = dp->result;
- break;
- }
- ++dp;
- }
-
- // Search default digraphs.
- if (retval == 0) {
- dp = digraphdefault;
-
- for (i = 0; dp->char1 != 0; ++i) {
- if (((int) dp->char1 == char1) && ((int) dp->char2 == char2)) {
- retval = dp->result;
- break;
- }
- ++dp;
- }
- }
-
- if ((retval != 0) && !enc_utf8) {
- char_u buf[6], *to;
- vimconv_T vc;
-
- // Convert the Unicode digraph to 'encoding'.
- i = utf_char2bytes(retval, buf);
- retval = 0;
- vc.vc_type = CONV_NONE;
-
- if (convert_setup(&vc, (char_u *)"utf-8", p_enc) == OK) {
- vc.vc_fail = TRUE;
- to = string_convert(&vc, buf, &i);
-
- if (to != NULL) {
- retval = (*mb_ptr2char)(to);
- free(to);
- }
- (void)convert_setup(&vc, NULL, NULL);
- }
- }
-
- // Ignore multi-byte characters when not in multi-byte mode.
- if (!has_mbyte && (retval > 0xff)) {
- retval = 0;
- }
-
- if (retval == 0) {
- // digraph deleted or not found
- if ((char1 == ' ') && meta_char) {
- // <space> <char> --> meta-char
- return char2 | 0x80;
- }
- return char2;
- }
- return retval;
-}
-
-/// Get digraph.
-/// Allow for both char1-char2 and char2-char1
-///
-/// @param char1
-/// @param char2
-/// @param meta_char
-///
-/// @return The digraph.
-int getdigraph(int char1, int char2, int meta_char)
-{
- int retval;
-
- if (((retval = getexactdigraph(char1, char2, meta_char)) == char2)
- && (char1 != char2)
- && ((retval = getexactdigraph(char2, char1, meta_char)) == char1)) {
- return char2;
- }
- return retval;
-}
-
-/// Add the digraphs in the argument to the digraph table.
-/// format: {c1}{c2} char {c1}{c2} char ...
-///
-/// @param str
-void putdigraph(char_u *str)
-{
- int char1, char2, n;
- int i;
- digr_T *dp;
-
- while (*str != NUL) {
- str = skipwhite(str);
-
- if (*str == NUL) {
- return;
- }
- char1 = *str++;
- char2 = *str++;
-
- if (char2 == 0) {
- EMSG(_(e_invarg));
- return;
- }
-
- if ((char1 == ESC) || (char2 == ESC)) {
- EMSG(_("E104: Escape not allowed in digraph"));
- return;
- }
- str = skipwhite(str);
-
- if (!VIM_ISDIGIT(*str)) {
- EMSG(_(e_number_exp));
- return;
- }
- n = getdigits(&str);
-
- // If the digraph already exists, replace the result.
- dp = (digr_T *)user_digraphs.ga_data;
-
- for (i = 0; i < user_digraphs.ga_len; ++i) {
- if (((int)dp->char1 == char1) && ((int)dp->char2 == char2)) {
- dp->result = n;
- break;
- }
- ++dp;
- }
-
- // Add a new digraph to the table.
- if (i == user_digraphs.ga_len) {
- ga_grow(&user_digraphs, 1);
- dp = (digr_T *)user_digraphs.ga_data + user_digraphs.ga_len;
- dp->char1 = char1;
- dp->char2 = char2;
- dp->result = n;
- ++user_digraphs.ga_len;
- }
- }
-}
-
-void listdigraphs(void)
-{
- int i;
- digr_T *dp;
-
- msg_putchar('\n');
-
- dp = digraphdefault;
-
- for (i = 0; dp->char1 != NUL && !got_int; ++i) {
- digr_T tmp;
-
- // May need to convert the result to 'encoding'.
- tmp.char1 = dp->char1;
- tmp.char2 = dp->char2;
- tmp.result = getexactdigraph(tmp.char1, tmp.char2, FALSE);
-
- if ((tmp.result != 0)
- && (tmp.result != tmp.char2)
- && (has_mbyte || (tmp.result <= 255))) {
- printdigraph(&tmp);
- }
- dp++;
- ui_breakcheck();
- }
-
- dp = (digr_T *)user_digraphs.ga_data;
- for (i = 0; i < user_digraphs.ga_len && !got_int; ++i) {
- printdigraph(dp);
- ui_breakcheck();
- dp++;
- }
- // clear screen, because some digraphs may be wrong, in which case we messed
- // up ScreenLines
- must_redraw = CLEAR;
-}
-
-static void printdigraph(digr_T *dp)
-{
- char_u buf[30];
- char_u *p;
-
- int list_width;
-
- if ((dy_flags & DY_UHEX) || has_mbyte) {
- list_width = 13;
- } else {
- list_width = 11;
- }
-
- if (dp->result != 0) {
- if (msg_col > Columns - list_width) {
- msg_putchar('\n');
- }
-
- if (msg_col) {
- while (msg_col % list_width != 0) {
- msg_putchar(' ');
- }
- }
-
- p = buf;
- *p++ = dp->char1;
- *p++ = dp->char2;
- *p++ = ' ';
-
- if (has_mbyte) {
- // add a space to draw a composing char on
- if (enc_utf8 && utf_iscomposing(dp->result)) {
- *p++ = ' ';
- }
- p += (*mb_char2bytes)(dp->result, p);
- } else {
- *p++ = (char_u)dp->result;
- }
-
- if (char2cells(dp->result) == 1) {
- *p++ = ' ';
- }
- vim_snprintf((char *)p, sizeof(buf) - (p - buf), " %3d", dp->result);
- msg_outtrans(buf);
- }
-}
-
-/// structure used for b_kmap_ga.ga_data
-typedef struct {
- char_u *from;
- char_u *to;
-} kmap_T;
-
-#define KMAP_MAXLEN 20 // maximum length of "from" or "to"
-
-static void keymap_unload(void);
-
-/// Set up key mapping tables for the 'keymap' option.
-///
-/// @return NULL if OK, an error message for failure. This only needs to be
-/// used when setting the option, not later when the value has already
-/// been checked.
-char_u* keymap_init(void)
-{
- curbuf->b_kmap_state &= ~KEYMAP_INIT;
-
- if (*curbuf->b_p_keymap == NUL) {
- // Stop any active keymap and clear the table. Also remove
- // b:keymap_name, as no keymap is active now.
- keymap_unload();
- do_cmdline_cmd((char_u *)"unlet! b:keymap_name");
- } else {
- char_u *buf;
- size_t buflen;
-
- // Source the keymap file. It will contain a ":loadkeymap" command
- // which will call ex_loadkeymap() below.
- buflen = STRLEN(curbuf->b_p_keymap) + STRLEN(p_enc) + 14;
- buf = alloc((unsigned)buflen);
-
- if (buf == NULL) {
- return e_outofmem;
- }
-
- // try finding "keymap/'keymap'_'encoding'.vim" in 'runtimepath'
- vim_snprintf((char *)buf, buflen, "keymap/%s_%s.vim",
- curbuf->b_p_keymap, p_enc);
-
- if (source_runtime(buf, FALSE) == FAIL) {
- // try finding "keymap/'keymap'.vim" in 'runtimepath'
- vim_snprintf((char *)buf, buflen, "keymap/%s.vim",
- curbuf->b_p_keymap);
-
- if (source_runtime(buf, FALSE) == FAIL) {
- free(buf);
- return (char_u *)N_("E544: Keymap file not found");
- }
- }
- free(buf);
- }
-
- return NULL;
-}
-
-/// ":loadkeymap" command: load the following lines as the keymap.
-///
-/// @param eap
-void ex_loadkeymap(exarg_T *eap)
-{
- char_u *line;
- char_u *p;
- char_u *s;
- kmap_T *kp;
-
-#define KMAP_LLEN 200 // max length of "to" and "from" together
- char_u buf[KMAP_LLEN + 11];
- int i;
- char_u *save_cpo = p_cpo;
-
- if (!getline_equal(eap->getline, eap->cookie, getsourceline)) {
- EMSG(_("E105: Using :loadkeymap not in a sourced file"));
- return;
- }
-
- // Stop any active keymap and clear the table.
- keymap_unload();
-
- curbuf->b_kmap_state = 0;
- ga_init(&curbuf->b_kmap_ga, (int)sizeof(kmap_T), 20);
-
- // Set 'cpoptions' to "C" to avoid line continuation.
- p_cpo = (char_u *)"C";
-
- // Get each line of the sourced file, break at the end.
- for (;;) {
- line = eap->getline(0, eap->cookie, 0);
-
- if (line == NULL) {
- break;
- }
-
- p = skipwhite(line);
-
- if ((*p != '"') && (*p != NUL)) {
- ga_grow(&curbuf->b_kmap_ga, 1);
- kp = (kmap_T *)curbuf->b_kmap_ga.ga_data + curbuf->b_kmap_ga.ga_len;
- s = skiptowhite(p);
- kp->from = vim_strnsave(p, (int)(s - p));
- p = skipwhite(s);
- s = skiptowhite(p);
- kp->to = vim_strnsave(p, (int)(s - p));
-
- if ((kp->from == NULL)
- || (kp->to == NULL)
- || (STRLEN(kp->from) + STRLEN(kp->to) >= KMAP_LLEN)
- || (*kp->from == NUL)
- || (*kp->to == NUL)) {
- if ((kp->to != NULL) && (*kp->to == NUL)) {
- EMSG(_("E791: Empty keymap entry"));
- }
- free(kp->from);
- free(kp->to);
- } else {
- ++curbuf->b_kmap_ga.ga_len;
- }
- }
- free(line);
- }
-
- // setup ":lnoremap" to map the keys
- for (i = 0; i < curbuf->b_kmap_ga.ga_len; ++i) {
- vim_snprintf((char *)buf, sizeof(buf), "<buffer> %s %s",
- ((kmap_T *)curbuf->b_kmap_ga.ga_data)[i].from,
- ((kmap_T *)curbuf->b_kmap_ga.ga_data)[i].to);
- (void)do_map(2, buf, LANGMAP, FALSE);
- }
-
- p_cpo = save_cpo;
-
- curbuf->b_kmap_state |= KEYMAP_LOADED;
- status_redraw_curbuf();
-}
-
-/// Stop using 'keymap'.
-static void keymap_unload(void)
-{
- char_u buf[KMAP_MAXLEN + 10];
- int i;
- char_u *save_cpo = p_cpo;
- kmap_T *kp;
-
- if (!(curbuf->b_kmap_state & KEYMAP_LOADED)) {
- return;
- }
-
- // Set 'cpoptions' to "C" to avoid line continuation.
- p_cpo = (char_u *)"C";
-
- // clear the ":lmap"s
- kp = (kmap_T *)curbuf->b_kmap_ga.ga_data;
-
- for (i = 0; i < curbuf->b_kmap_ga.ga_len; ++i) {
- vim_snprintf((char *)buf, sizeof(buf), "<buffer> %s", kp[i].from);
- (void)do_map(1, buf, LANGMAP, FALSE);
- free(kp[i].from);
- free(kp[i].to);
- }
-
- p_cpo = save_cpo;
-
- ga_clear(&curbuf->b_kmap_ga);
- curbuf->b_kmap_state &= ~KEYMAP_LOADED;
- status_redraw_curbuf();
-}