diff src/create_nvcmdidxs.c @ 27484:ee1019e59bef v8.2.4270

patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice Commit: https://github.com/vim/vim/commit/672776dbe8427876ef4bfce84520712df87b6eb1 Author: ichizok <gclient.gaap@gmail.com> Date: Mon Jan 31 12:27:18 2022 +0000 patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice 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)
author Bram Moolenaar <Bram@vim.org>
date Mon, 31 Jan 2022 13:30:05 +0100
parents
children
line wrap: on
line diff
new file mode 100644
--- /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;
+}