alias diff='diff --color=auto'
# Not to be confused with `splitdiff` from `patchutils`.
# Splits the hunks of a diff into separate files with names based on the first
# argument, making sure the file header is present in each one.
diffsplit()
(
prefix="$1"; shift
awk -v prefix="$prefix" '
/^diff/ { H = 1; h = $0; next; }
/^@@/ { H = 0; print h > (f = sprintf("%s%04d.patch", prefix, ++F)); }
H { h = h "\n" $0; }
!H { print $0 >> f; }
' "$@"
)