From 5ff229f7a23f44eee941c2127edd30037a5201ec Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Tue, 24 Mar 2026 20:08:03 +0100 Subject: add git-cdiff MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- git/Makefile | 4 ++++ git/git-cdiff | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100755 git/git-cdiff diff --git a/git/Makefile b/git/Makefile index 1794675..cca3bd0 100644 --- a/git/Makefile +++ b/git/Makefile @@ -16,9 +16,12 @@ install: test ! -d ~/.config/bash/aliases.d/git ln -sf -- ~/.dotfiles/git/bash-aliases ~/.config/bash/aliases.d/git ../check-installed-shebang ge + ../check-installed-shebang git-cdiff + ../check-in-path diff mkdir -p -- ~/.local/bin ln -sf -- ~/.dotfiles/git/ge ~/.local/bin/ ln -sf -- ~/.dotfiles/git/new-c-proj ~/.local/bin/ + ln -sf -- ~/.dotfiles/git/git-cdiff ~/.local/bin/ uninstall: +! ../check-installed git @@ -28,6 +31,7 @@ uninstall: -rmdir -- ~/.config/bash/aliases.d -unlink -- ~/.local/bin/ge -unlink -- ~/.local/bin/new-c-proj + -unlink -- ~/.local/bin/git-cdiff clean: -rm -f -- .config diff --git a/git/git-cdiff b/git/git-cdiff new file mode 100755 index 0000000..bd4ae31 --- /dev/null +++ b/git/git-cdiff @@ -0,0 +1,20 @@ +#!/bin/dash +if test -z "${GIT_CDIFF_CONTEXT}"; then + git difftool -y -x "diff -c --color=always" "$@" +elif echo "${GIT_CDIFF_CONTEXT}" | grep -q '^-'; then + git difftool -y -x "diff ${GIT_CDIFF_CONTEXT} --color=always" "$@" +else + git difftool -y -x "diff -C${GIT_CDIFF_CONTEXT} --color=always" "$@" +fi | { + if test "$TERM" = linux; then + sed '/^\(\x1b\[[0-9;]*m\)* /s/\x1b\[[0-9;]*m//g' + else + sed '/^\(\x1b\[[0-9;]*m\)* /s/^/\x1b\[2m/g' + fi +} | { + if test -t 1; then + less -R + else + cat + fi +} -- cgit v1.2.3-70-g09d2