summaryrefslogtreecommitdiffstats
path: root/src/Make_mvc.mak
diff options
context:
space:
mode:
authorYegappan Lakshmanan <yegappan@yahoo.com>2022-01-29 13:06:40 +0000
committerBram Moolenaar <Bram@vim.org>2022-01-29 13:06:40 +0000
commit4dc0dd869972ddafc7d9ee5ea765645b818a6dc9 (patch)
tree1b59dc8582e8236af2059d4bc640d48a0f9d8285 /src/Make_mvc.mak
parent97c554d5149c2aa4a43d689c59563e77277265d4 (diff)
patch 8.2.4252: generating the normal command table at runtime is inefficientv8.2.4252
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)
Diffstat (limited to 'src/Make_mvc.mak')
-rw-r--r--src/Make_mvc.mak12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak
index 3100d38f60..7852150563 100644
--- a/src/Make_mvc.mak
+++ b/src/Make_mvc.mak
@@ -1446,6 +1446,16 @@ clean: testclean
cmdidxs: ex_cmds.h
vim --clean -X --not-a-term -u create_cmdidxs.vim
+# Run vim script to generate the normal/visual mode command lookup table.
+# This only needs to be run when a new normal/visual mode command has been
+# added. If this fails because you don't have Vim yet:
+# - change nv_cmds[] in normal.c to add the new normal/visual mode command.
+# - build Vim
+# - run "make nvcmdidxs" using the new Vim to generate nv_cmdidxs.h
+# - rebuild Vim to use the newly generated nv_cmdidxs.h file.
+nvcmdidxs: normal.c
+ .\$(VIM) --clean -X --not-a-term -u create_nvcmdidxs.vim
+
test:
cd testdir
$(MAKE) /NOLOGO -f Make_dos.mak
@@ -1709,7 +1719,7 @@ $(OUTDIR)/netbeans.obj: $(OUTDIR) netbeans.c $(NBDEBUG_SRC) $(INCL) version.h
$(OUTDIR)/channel.obj: $(OUTDIR) channel.c $(INCL)
-$(OUTDIR)/normal.obj: $(OUTDIR) normal.c $(INCL)
+$(OUTDIR)/normal.obj: $(OUTDIR) normal.c $(INCL) nv_cmdidxs.h
$(OUTDIR)/option.obj: $(OUTDIR) option.c $(INCL) optiondefs.h