From 50b6ec5f5800d9430b87bc519235c44f14d98a68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Thu, 16 Oct 2025 00:43:07 +0100 Subject: [PATCH 1/2] =?UTF-8?q?With=20view=20we=20always=20use=20filterdif?= =?UTF-8?q?f,=20even=20if=20we=20don=E2=80=99t=20have=20any=20arguments.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- patchview/patchview-wrapper | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patchview/patchview-wrapper b/patchview/patchview-wrapper index efdbeea2..7d922e1d 100755 --- a/patchview/patchview-wrapper +++ b/patchview/patchview-wrapper @@ -61,7 +61,7 @@ if tool_cmd.endswith("view"): # pipeline: first_pipe | second_pipe | editor tool_cmd = tool_cmd[:-4] # remove "view" git_cmd = [tool, tool_cmd] + largs - patchview_cmd = ["patchview"] + rargs + unknown + patchview_cmd = ["filterdiff"] + rargs + unknown p1 = Popen(git_cmd, stdout=PIPE, env=enviro, cwd='.') p2 = Popen(patchview_cmd, stdin=p1.stdout, stdout=PIPE, env=enviro, cwd=workdir) From 315f146d347c451f8f2bb8cf48ab33f0756a2f41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Thu, 16 Oct 2025 01:29:05 +0100 Subject: [PATCH 2/2] Automatically generate symlinks for patchview-wrapper Instead of including them directly in the source code, this commit generates symlinks for gitdiff, gitdiffview, gitshow, gitshowview, svndiff, and svndiffview automatically via Makefile.am. Add install-exec-hook and uninstall-local to manage the symlinks, using loops to automatically create/remove them and avoid repetition of individual ln -sf and rm -f commands. --- Makefile.am | 68 +++++++++++++++++++++++-------------- patchview/gitdiff | 1 - patchview/gitdiffview | 1 - patchview/gitshow | 1 - patchview/gitshowview | 1 - patchview/patchview-wrapper | 3 ++ patchview/svndiff | 1 - patchview/svndiffview | 1 - 8 files changed, 46 insertions(+), 31 deletions(-) delete mode 120000 patchview/gitdiff delete mode 120000 patchview/gitdiffview delete mode 120000 patchview/gitshow delete mode 120000 patchview/gitshowview delete mode 120000 patchview/svndiff delete mode 120000 patchview/svndiffview diff --git a/Makefile.am b/Makefile.am index 28bd5518..97d4a805 100644 --- a/Makefile.am +++ b/Makefile.am @@ -14,12 +14,7 @@ bin_SCRIPTS = \ scripts/espdiff dist_bin_SCRIPTS = \ - patchview/gitdiff \ - patchview/gitdiffview \ - patchview/gitshow \ - patchview/gitshowview \ - patchview/svndiff \ - patchview/svndiffview + patchview/patchview-wrapper$(EXEEXT) # Bash completion files bashcompletiondir = $(datadir)/bash-completion/completions @@ -56,27 +51,46 @@ endif # Special rules for combinediff, flipdiff, lsdiff, grepdiff and patchview, which are # just symlinks. -src/combinediff$(EXEEXT): src/interdiff$(EXEEXT) - ln -sf $(notdir $<) $@ -src/flipdiff$(EXEEXT): src/interdiff$(EXEEXT) - ln -sf $(notdir $<) $@ +interdiff_links = \ + src/combinediff$(EXEEXT) \ + src/flipdiff$(EXEEXT) + +filterdiff_links = \ + src/lsdiff$(EXEEXT) \ + src/grepdiff$(EXEEXT) \ + src/patchview$(EXEEXT) -src/lsdiff$(EXEEXT): src/filterdiff$(EXEEXT) +patchview_links = \ + patchview/gitdiff$(EXEEXT) \ + patchview/gitdiffview$(EXEEXT) \ + patchview/gitshow$(EXEEXT) \ + patchview/gitshowview$(EXEEXT) \ + patchview/svndiff$(EXEEXT) \ + patchview/svndiffview$(EXEEXT) + +$(interdiff_links): src/interdiff$(EXEEXT) ln -sf $(notdir $<) $@ -src/grepdiff$(EXEEXT): src/filterdiff$(EXEEXT) +$(filterdiff_links): src/filterdiff$(EXEEXT) ln -sf $(notdir $<) $@ -src/patchview$(EXEEXT): src/filterdiff$(EXEEXT) +$(patchview_links): patchview/patchview-wrapper$(EXEEXT) ln -sf $(notdir $<) $@ install-exec-hook: - ln -sf "`echo interdiff|sed '$(transform)'`" $(DESTDIR)$(bindir)/"`echo combinediff|sed '$(transform)'`" - ln -sf "`echo interdiff|sed '$(transform)'`" $(DESTDIR)$(bindir)/"`echo flipdiff|sed '$(transform)'`" - ln -sf "`echo filterdiff|sed '$(transform)'`" $(DESTDIR)$(bindir)/"`echo lsdiff|sed '$(transform)'`" - ln -sf "`echo filterdiff|sed '$(transform)'`" $(DESTDIR)$(bindir)/"`echo grepdiff|sed '$(transform)'`" - ln -sf "`echo filterdiff|sed '$(transform)'`" $(DESTDIR)$(bindir)/"`echo patchview|sed '$(transform)'`" + @for f in $(interdiff_links); do \ + ln -sf "`echo interdiff$(EXEEXT) | sed '$(transform)'`" \ + "$(DESTDIR)$(bindir)/`basename $$f | sed '$(transform)'`"; \ + done + @for f in $(filterdiff_links); do \ + ln -sf "`echo filterdiff$(EXEEXT) | sed '$(transform)'`" \ + "$(DESTDIR)$(bindir)/`basename $$f | sed '$(transform)'`"; \ + done + @for f in $(patchview_links); do \ + ln -sf "`echo patchview-wrapper$(EXEEXT) | sed '$(transform)'`" \ + "$(DESTDIR)$(bindir)/`basename $$f | sed '$(transform)'`"; \ + done install-data-hook: if [ -d "$(DESTDIR)$(bashcompletiondir)" ]; then \ @@ -89,12 +103,16 @@ install-data-hook: done; \ fi -uninstall-hook: - rm -f $(DESTDIR)$(bindir)/"`echo combinediff|sed '$(transform)'`" - rm -f $(DESTDIR)$(bindir)/"`echo flipdiff|sed '$(transform)'`" - rm -f $(DESTDIR)$(bindir)/"`echo lsdiff|sed '$(transform)'`" - rm -f $(DESTDIR)$(bindir)/"`echo grepdiff|sed '$(transform)'`" - rm -f $(DESTDIR)$(bindir)/"`echo patchview|sed '$(transform)'`" +uninstall-local: + @for f in $(interdiff_links); do \ + rm -f "$(DESTDIR)$(bindir)/`basename $$f | sed '$(transform)'`"; \ + done + @for f in $(filterdiff_links); do \ + rm -f "$(DESTDIR)$(bindir)/`basename $$f | sed '$(transform)'`"; \ + done + @for f in $(patchview_links); do \ + rm -f "$(DESTDIR)$(bindir)/`basename $$f | sed '$(transform)'`"; \ + done if [ -d "$(DESTDIR)$(bashcompletiondir)" ]; then \ cd "$(DESTDIR)$(bashcompletiondir)" && \ for cmd in filterdiff lsdiff grepdiff interdiff combinediff flipdiff rediff \ @@ -105,7 +123,7 @@ uninstall-hook: rm -f patchutils; \ fi -CLEANFILES=src/combinediff src/flipdiff src/lsdiff src/grepdiff src/patchview +CLEANFILES = $(interdiff_links) $(filterdiff_links) $(patchview_links) MAINTAINERCLEANFILES=$(man_MANS) # Regression tests. diff --git a/patchview/gitdiff b/patchview/gitdiff deleted file mode 120000 index c9f2389f..00000000 --- a/patchview/gitdiff +++ /dev/null @@ -1 +0,0 @@ -patchview-wrapper \ No newline at end of file diff --git a/patchview/gitdiffview b/patchview/gitdiffview deleted file mode 120000 index c9f2389f..00000000 --- a/patchview/gitdiffview +++ /dev/null @@ -1 +0,0 @@ -patchview-wrapper \ No newline at end of file diff --git a/patchview/gitshow b/patchview/gitshow deleted file mode 120000 index c9f2389f..00000000 --- a/patchview/gitshow +++ /dev/null @@ -1 +0,0 @@ -patchview-wrapper \ No newline at end of file diff --git a/patchview/gitshowview b/patchview/gitshowview deleted file mode 120000 index c9f2389f..00000000 --- a/patchview/gitshowview +++ /dev/null @@ -1 +0,0 @@ -patchview-wrapper \ No newline at end of file diff --git a/patchview/patchview-wrapper b/patchview/patchview-wrapper index 7d922e1d..89ce5c8a 100755 --- a/patchview/patchview-wrapper +++ b/patchview/patchview-wrapper @@ -22,6 +22,9 @@ # "git show", "svn diff") piped into patchview, optionally also piped into # an editor +# Note: gitdiff, gitdiffview, gitshow, gitshowview, svndiff, svndiffview +# are symbolic links pointing to this wrapper. +# They are automatically created by Makefile.am. import os import sys diff --git a/patchview/svndiff b/patchview/svndiff deleted file mode 120000 index c9f2389f..00000000 --- a/patchview/svndiff +++ /dev/null @@ -1 +0,0 @@ -patchview-wrapper \ No newline at end of file diff --git a/patchview/svndiffview b/patchview/svndiffview deleted file mode 120000 index c9f2389f..00000000 --- a/patchview/svndiffview +++ /dev/null @@ -1 +0,0 @@ -patchview-wrapper \ No newline at end of file