patch 8.1.0360: using an external diff program is slow and inflexible
Problem: Using an external diff program is slow and inflexible.
Solution: Include the xdiff library. (Christian Brabandt, closes #2732)
Use it by default.
diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak
index f329033..1131f2b 100644
--- a/src/Make_mvc.mak
+++ b/src/Make_mvc.mak
@@ -813,6 +813,24 @@
!endif
SUBSYSTEM_TOOLS = console
+XDIFF_OBJ = $(OBJDIR)/xdiffi.obj \
+ $(OBJDIR)/xemit.obj \
+ $(OBJDIR)/xprepare.obj \
+ $(OBJDIR)/xutils.obj \
+ $(OBJDIR)/xhistogram.obj \
+ $(OBJDIR)/xpatience.obj
+
+XDIFF_DEPS = \
+ xdiff/xdiff.h \
+ xdiff/xdiffi.h \
+ xdiff/xemit.h \
+ xdiff/xinclude.h \
+ xdiff/xmacros.h \
+ xdiff/xprepare.h \
+ xdiff/xtypes.h \
+ xdiff/xutils.h
+
+
!if "$(SUBSYSTEM_VER)" != ""
SUBSYSTEM = $(SUBSYSTEM),$(SUBSYSTEM_VER)
SUBSYSTEM_TOOLS = $(SUBSYSTEM_TOOLS),$(SUBSYSTEM_VER)
@@ -1204,12 +1222,12 @@
tee/tee.exe \
GvimExt/gvimext.dll
-$(VIM).exe: $(OUTDIR) $(OBJ) $(GUI_OBJ) $(CUI_OBJ) $(OLE_OBJ) $(OLE_IDL) $(MZSCHEME_OBJ) \
+$(VIM).exe: $(OUTDIR) $(OBJ) $(XDIFF_OBJ) $(GUI_OBJ) $(CUI_OBJ) $(OLE_OBJ) $(OLE_IDL) $(MZSCHEME_OBJ) \
$(LUA_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(PYTHON3_OBJ) $(RUBY_OBJ) $(TCL_OBJ) \
$(CSCOPE_OBJ) $(TERM_OBJ) $(NETBEANS_OBJ) $(CHANNEL_OBJ) $(XPM_OBJ) \
version.c version.h
$(CC) $(CFLAGS_OUTDIR) version.c
- $(link) $(LINKARGS1) -out:$(VIM).exe $(OBJ) $(GUI_OBJ) $(CUI_OBJ) $(OLE_OBJ) \
+ $(link) $(LINKARGS1) -out:$(VIM).exe $(OBJ) $(XDIFF_OBJ) $(GUI_OBJ) $(CUI_OBJ) $(OLE_OBJ) \
$(LUA_OBJ) $(MZSCHEME_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(PYTHON3_OBJ) $(RUBY_OBJ) \
$(TCL_OBJ) $(CSCOPE_OBJ) $(TERM_OBJ) $(NETBEANS_OBJ) $(CHANNEL_OBJ) \
$(XPM_OBJ) $(OUTDIR)\version.obj $(LINKARGS2)
@@ -1304,6 +1322,7 @@
$(MAKE) /NOLOGO -f Make_dos.mak nolog
$(MAKE) /NOLOGO -f Make_dos.mak $@.res
$(MAKE) /NOLOGO -f Make_dos.mak report
+ cat messages
cd ..
###########################################################################
@@ -1344,6 +1363,24 @@
$(OUTDIR)/diff.obj: $(OUTDIR) diff.c $(INCL)
+$(OUTDIR)/xdiffi.obj: $(OUTDIR) xdiff/xdiffi.c $(XDIFF_DEPS)
+ $(CC) $(CFLAGS_OUTDIR) xdiff/xdiffi.c
+
+$(OUTDIR)/xemit.obj: $(OUTDIR) xdiff/xemit.c $(XDIFF_DEPS)
+ $(CC) $(CFLAGS_OUTDIR) xdiff/xemit.c
+
+$(OUTDIR)/xprepare.obj: $(OUTDIR) xdiff/xprepare.c $(XDIFF_DEPS)
+ $(CC) $(CFLAGS_OUTDIR) xdiff/xprepare.c
+
+$(OUTDIR)/xutils.obj: $(OUTDIR) xdiff/xutils.c $(XDIFF_DEPS)
+ $(CC) $(CFLAGS_OUTDIR) xdiff/xutils.c
+
+$(OUTDIR)/xhistogram.obj: $(OUTDIR) xdiff/xhistogram.c $(XDIFF_DEPS)
+ $(CC) $(CFLAGS_OUTDIR) xdiff/xhistogram.c
+
+$(OUTDIR)/xpatience.obj: $(OUTDIR) xdiff/xpatience.c $(XDIFF_DEPS)
+ $(CC) $(CFLAGS_OUTDIR) xdiff/xpatience.c
+
$(OUTDIR)/digraph.obj: $(OUTDIR) digraph.c $(INCL)
$(OUTDIR)/edit.obj: $(OUTDIR) edit.c $(INCL)