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/Makefile b/src/Makefile
index f2fafa4..d0cf956 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1400,6 +1400,32 @@
TERM_SRC = libvterm/src/*.c
+XDIFF_SRC = \
+ xdiff/xdiffi.c \
+ xdiff/xemit.c \
+ xdiff/xprepare.c \
+ xdiff/xutils.c \
+ xdiff/xhistogram.c \
+ xdiff/xpatience.c \
+
+XDIFF_OBJS = \
+ objects/xdiffi.o \
+ objects/xemit.o \
+ objects/xprepare.o \
+ objects/xutils.o \
+ objects/xhistogram.o \
+ objects/xpatience.o \
+
+XDIFF_INCL = \
+ xdiff/xdiff.h \
+ xdiff/xdiffi.h \
+ xdiff/xemit.h \
+ xdiff/xinclude.h \
+ xdiff/xmacros.h \
+ xdiff/xprepare.h \
+ xdiff/xtypes.h \
+ xdiff/xutils.h \
+
### Command to create dependencies based on #include "..."
### prototype headers are ignored due to -DPROTO, system
### headers #include <...> are ignored if we use the -MM option, as
@@ -1611,6 +1637,7 @@
SRC = $(BASIC_SRC) \
$(GUI_SRC) \
$(TERM_SRC) \
+ $(XDIFF_SRC) \
$(HANGULIN_SRC) \
$(LUA_SRC) \
$(MZSCHEME_SRC) \
@@ -1728,6 +1755,7 @@
$(WORKSHOP_OBJ) \
$(NETBEANS_OBJ) \
$(CHANNEL_OBJ) \
+ $(XDIFF_OBJS) \
$(WSDEBUG_OBJ)
# The files included by tests are not in OBJ_COMMON.
@@ -2731,7 +2759,7 @@
shadow: runtime pixmaps
$(MKDIR_P) $(SHADOWDIR)
- cd $(SHADOWDIR); ln -s ../*.[chm] ../*.in ../*.sh ../*.xs ../*.xbm ../gui_gtk_res.xml ../toolcheck ../proto ../libvterm ../vimtutor ../gvimtutor ../install-sh ../Make_all.mak .
+ cd $(SHADOWDIR); ln -s ../*.[chm] ../*.in ../*.sh ../*.xs ../*.xbm ../gui_gtk_res.xml ../toolcheck ../proto ../xdiff ../libvterm ../vimtutor ../gvimtutor ../install-sh ../Make_all.mak .
mkdir $(SHADOWDIR)/auto
cd $(SHADOWDIR)/auto; ln -s ../../auto/configure .
$(MKDIR_P) $(SHADOWDIR)/po
@@ -2915,7 +2943,7 @@
objects/dict.o: dict.c
$(CCC) -o $@ dict.c
-objects/diff.o: diff.c
+objects/diff.o: diff.c $(XDIFF_INCL)
$(CCC) -o $@ diff.c
objects/digraph.o: digraph.c
@@ -3229,6 +3257,27 @@
objects/term_vterm.o: libvterm/src/vterm.c $(TERM_DEPS)
$(CCCTERM) -o $@ libvterm/src/vterm.c
+CCCDIFF = $(CCC_NF) $(ALL_CFLAGS)
+
+objects/xdiffi.o: xdiff/xdiffi.c $(XDIFF_INCL)
+ $(CCCDIFF) -o $@ xdiff/xdiffi.c
+
+objects/xprepare.o: xdiff/xprepare.c $(XDIFF_INCL)
+ $(CCCDIFF) -o $@ xdiff/xprepare.c
+
+objects/xutils.o: xdiff/xutils.c $(XDIFF_INCL)
+ $(CCCDIFF) -o $@ xdiff/xutils.c
+
+objects/xemit.o: xdiff/xemit.c $(XDIFF_INCL)
+ $(CCCDIFF) -o $@ xdiff/xemit.c
+
+objects/xhistogram.o: xdiff/xhistogram.c $(XDIFF_INCL)
+ $(CCCDIFF) -o $@ xdiff/xhistogram.c
+
+objects/xpatience.o: xdiff/xpatience.c $(XDIFF_INCL)
+ $(CCCDIFF) -o $@ xdiff/xpatience.c
+
+
###############################################################################
### MacOS X installation
###