summaryrefslogtreecommitdiffstats
path: root/src/create_nvcmdidxs.c
diff options
context:
space:
mode:
authorichizok <gclient.gaap@gmail.com>2022-01-31 12:27:18 +0000
committerBram Moolenaar <Bram@vim.org>2022-01-31 12:27:18 +0000
commit672776dbe8427876ef4bfce84520712df87b6eb1 (patch)
tree96bd350e3654192104bfa9480fa2056a2e94c40f /src/create_nvcmdidxs.c
parent48a604845e33399893d6bf293e71bcd2a412800d (diff)
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twicev8.2.4270
Problem: Generating nv_cmdidxs.h requires building Vim twice. Solution: Move the table into a separate file and use a separate executable to extract the command characters. (Ozaki Kiichi, closes #9669)
Diffstat (limited to 'src/create_nvcmdidxs.c')
-rw-r--r--src/create_nvcmdidxs.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/create_nvcmdidxs.c b/src/create_nvcmdidxs.c
new file mode 100644
index 0000000000..1d084f5657
--- /dev/null
+++ b/src/create_nvcmdidxs.c
@@ -0,0 +1,38 @@
+/* vi:set ts=8 sts=4 sw=4 noet:
+ *
+ * VIM - Vi IMproved by Bram Moolenaar et al.
+ *
+ * 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.
+ */
+
+/*
+ * create_nvcmdidxs.c: helper program for `make nvcmdidxs`
+ *
+ * This outputs the list of command characters from the nv_cmds table in
+ * decimal form, one per line.
+ */
+
+#include "vim.h"
+
+// Declare nv_cmds[].
+#include "nv_cmds.h"
+
+#include <stdio.h>
+
+int main(void)
+{
+ size_t i;
+
+ for (i = 0; i < NV_CMDS_SIZE; i++)
+ {
+ int cmdchar = nv_cmds[i];
+
+ // Special keys are negative, use the negated value for sorting.
+ if (cmdchar < 0)
+ cmdchar = -cmdchar;
+ printf("%d\n", cmdchar);
+ }
+ return 0;
+}