diff options
Diffstat (limited to '.local/bin')
-rwxr-xr-x | .local/bin/subdiff | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/.local/bin/subdiff b/.local/bin/subdiff index 6bc7db3..92a3a78 100755 --- a/.local/bin/subdiff +++ b/.local/bin/subdiff @@ -1,6 +1,20 @@ #!/bin/bash -sed \ - -e 's|^\(\x1b\[[0-9;]\+m\)\?+\(\x1b\[m\x1b\[[0-9;]\+m\)\?+|\x1b\[1;36m++|g' \ - -e 's|^\(\x1b\[[0-9;]\+m\)\?+\(\x1b\[m\x1b\[[0-9;]\+m\)\?-|\x1b\[1;35m+-|g' \ - -e 's|^\(\x1b\[[0-9;]\+m\)\?-+|\x1b\[36m-+|g' \ - -e 's|^\(\x1b\[[0-9;]\+m\)\?--|\x1b\[35m--|g' + +# should also work reasonably well with git diff --word-diff + +sed -n \ + -e ":start" \ + -e "/^\(\x1b\[[0-9;]\+m\)\?diff .*patch\(\(\x1b\[m\)\?$\| \)/bpatch" \ + -e "p;n" \ + -e "#s|.*|NONPATCH|" \ + -e "bstart" \ + -e ":patch" \ + -e "p;n" \ + -e "/^\(\x1b\[[0-9;]\+m\)\?diff /bstart" \ + -e "/^\(\x1b\[[0-9;]\+m\)\?\([-+]\)\2\2 /bpatch" \ + -e "#s|.*|PATCH|" \ + -e 's|^\(\x1b\[[0-9;]\+m\)\([{]\?[+]\)\(\x1b\[m\1\)\?[+]|\x1b\[1;36m\2+|' \ + -e 's|^\(\x1b\[[0-9;]\+m\)\([{]\?[+]\)\(\x1b\[m\1\)\?[-]|\x1b\[1;35m\2-|' \ + -e 's|^\(\x1b\[[0-9;]\+m\)\([[]\?[-]\)\(\x1b\[m\1\)\?[+]|\x1b\[36m\2+|' \ + -e 's|^\(\x1b\[[0-9;]\+m\)\([[]\?[-]\)\(\x1b\[m\1\)\?[-]|\x1b\[35m\2-|' \ + -e "bpatch" |