diff src/nv_cmdidxs.h @ 27447:4050f0554902 v8.2.4252

patch 8.2.4252: generating the normal command table at runtime is inefficient Commit: https://github.com/vim/vim/commit/4dc0dd869972ddafc7d9ee5ea765645b818a6dc9 Author: Yegappan Lakshmanan <yegappan@yahoo.com> Date: Sat Jan 29 13:06:40 2022 +0000 patch 8.2.4252: generating the normal command table at runtime is inefficient Problem: Generating the normal command table at runtime is inefficient. Solution: Generate the table with a Vim script and put it in a header file. (Yegappan Lakshmanan, closes #9648)
author Bram Moolenaar <Bram@vim.org>
date Sat, 29 Jan 2022 14:15:04 +0100
parents
children
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/src/nv_cmdidxs.h
@@ -0,0 +1,209 @@
+/*
+ * Automatically generated code by the create_nvcmdidxs.vim script.
+ *
+ * Table giving the index in nv_cmds[] to lookup based on
+ * the command character.
+ */
+
+// nv_cmd_idx[<normal mode command character>] => nv_cmds[] index
+static const unsigned short nv_cmd_idx[] =
+{
+  /*     0 */   0,
+  /*     1 */   1,
+  /*     2 */   2,
+  /*     3 */   3,
+  /*     4 */   4,
+  /*     5 */   5,
+  /*     6 */   6,
+  /*     7 */   7,
+  /*     8 */   8,
+  /*     9 */   9,
+  /*    10 */  10,
+  /*    11 */  11,
+  /*    12 */  12,
+  /*    13 */  13,
+  /*    14 */  14,
+  /*    15 */  15,
+  /*    16 */  16,
+  /*    17 */  17,
+  /*    18 */  18,
+  /*    19 */  19,
+  /*    20 */  20,
+  /*    21 */  21,
+  /*    22 */  22,
+  /*    23 */  23,
+  /*    24 */  24,
+  /*    25 */  25,
+  /*    26 */  26,
+  /*    27 */  27,
+  /*    28 */  28,
+  /*    29 */  29,
+  /*    30 */  30,
+  /*    31 */  31,
+  /*    32 */  32,
+  /*    33 */  33,
+  /*    34 */  34,
+  /*    35 */  35,
+  /*    36 */  36,
+  /*    37 */  37,
+  /*    38 */  38,
+  /*    39 */  39,
+  /*    40 */  40,
+  /*    41 */  41,
+  /*    42 */  42,
+  /*    43 */  43,
+  /*    44 */  44,
+  /*    45 */  45,
+  /*    46 */  46,
+  /*    47 */  47,
+  /*    48 */  48,
+  /*    49 */  49,
+  /*    50 */  50,
+  /*    51 */  51,
+  /*    52 */  52,
+  /*    53 */  53,
+  /*    54 */  54,
+  /*    55 */  55,
+  /*    56 */  56,
+  /*    57 */  57,
+  /*    58 */  58,
+  /*    59 */  59,
+  /*    60 */  60,
+  /*    61 */  61,
+  /*    62 */  62,
+  /*    63 */  63,
+  /*    64 */  64,
+  /*    65 */  65,
+  /*    66 */  66,
+  /*    67 */  67,
+  /*    68 */  68,
+  /*    69 */  69,
+  /*    70 */  70,
+  /*    71 */  71,
+  /*    72 */  72,
+  /*    73 */  73,
+  /*    74 */  74,
+  /*    75 */  75,
+  /*    76 */  76,
+  /*    77 */  77,
+  /*    78 */  78,
+  /*    79 */  79,
+  /*    80 */  80,
+  /*    81 */  81,
+  /*    82 */  82,
+  /*    83 */  83,
+  /*    84 */  84,
+  /*    85 */  85,
+  /*    86 */  86,
+  /*    87 */  87,
+  /*    88 */  88,
+  /*    89 */  89,
+  /*    90 */  90,
+  /*    91 */  91,
+  /*    92 */  92,
+  /*    93 */  93,
+  /*    94 */  94,
+  /*    95 */  95,
+  /*    96 */  96,
+  /*    97 */  97,
+  /*    98 */  98,
+  /*    99 */  99,
+  /*   100 */ 100,
+  /*   101 */ 101,
+  /*   102 */ 102,
+  /*   103 */ 103,
+  /*   104 */ 104,
+  /*   105 */ 105,
+  /*   106 */ 106,
+  /*   107 */ 107,
+  /*   108 */ 108,
+  /*   109 */ 109,
+  /*   110 */ 110,
+  /*   111 */ 111,
+  /*   112 */ 112,
+  /*   113 */ 113,
+  /*   114 */ 114,
+  /*   115 */ 115,
+  /*   116 */ 116,
+  /*   117 */ 117,
+  /*   118 */ 118,
+  /*   119 */ 119,
+  /*   120 */ 120,
+  /*   121 */ 121,
+  /*   122 */ 122,
+  /*   123 */ 123,
+  /*   124 */ 124,
+  /*   125 */ 125,
+  /*   126 */ 126,
+  /*   163 */ 127,
+  /*  1277 */ 156,
+  /*  1533 */ 158,
+  /* 11517 */ 132,
+  /* 11773 */ 134,
+  /* 12029 */ 135,
+  /* 12285 */ 138,
+  /* 12541 */ 139,
+  /* 12581 */ 180,
+  /* 12619 */ 174,
+  /* 12651 */ 181,
+  /* 12797 */ 140,
+  /* 12835 */ 175,
+  /* 13053 */ 141,
+  /* 13131 */ 166,
+  /* 13309 */ 142,
+  /* 13347 */ 160,
+  /* 13387 */ 170,
+  /* 13565 */ 143,
+  /* 13643 */ 168,
+  /* 13821 */ 150,
+  /* 14122 */ 171,
+  /* 14144 */ 169,
+  /* 14374 */ 179,
+  /* 14845 */ 182,
+  /* 16966 */ 188,
+  /* 17515 */ 177,
+  /* 17917 */ 133,
+  /* 18173 */ 136,
+  /* 18795 */ 152,
+  /* 19453 */ 129,
+  /* 19709 */ 128,
+  /* 19965 */ 130,
+  /* 20075 */ 167,
+  /* 20221 */ 131,
+  /* 20477 */ 153,
+  /* 20587 */ 165,
+  /* 20733 */ 178,
+  /* 21328 */ 191,
+  /* 22013 */ 161,
+  /* 22269 */ 164,
+  /* 22525 */ 176,
+  /* 22767 */ 187,
+  /* 22768 */ 186,
+  /* 22773 */ 183,
+  /* 22776 */ 185,
+  /* 22777 */ 184,
+  /* 22781 */ 172,
+  /* 23037 */ 144,
+  /* 23293 */ 145,
+  /* 23549 */ 146,
+  /* 23805 */ 147,
+  /* 24061 */ 148,
+  /* 24317 */ 149,
+  /* 24573 */ 189,
+  /* 24829 */ 190,
+  /* 25085 */ 151,
+  /* 25195 */ 154,
+  /* 25707 */ 157,
+  /* 25853 */ 137,
+  /* 26621 */ 192,
+  /* 26731 */ 173,
+  /* 26877 */ 193,
+  /* 26917 */ 163,
+  /* 27755 */ 159,
+  /* 29291 */ 162,
+  /* 30059 */ 155,
+};
+
+// The highest index for which
+// nv_cmds[idx].cmd_char == nv_cmd_idx[nv_cmds[idx].cmd_char]
+static const int nv_max_linear = 126;