aerc/filters/hldiff
EdOverflow 5ea5f914bf Escape plus symbol in hldiff filter.
I was getting errors when using the hldiff filter with aerc
because the plus symbol on line 28 wasn't escaped. This commit
escapes the plus symbol in the regex on line 28.
2019-07-13 12:28:49 -04:00

40 lines
797 B
Awk
Executable file

# vim: set ft=awk :
BEGIN {
bright = "\x1B[1m"
red = "\x1B[31m"
green = "\x1B[32m"
cyan = "\x1B[36m"
reset = "\x1B[0m"
hit_diff = 0
}
{
if (hit_diff == 0) {
if ($0 ~ /^diff /) {
hit_diff = 1;
print bright $0 reset
} else if ($0 ~ /^.*\|.*(\+|-)/) {
left = substr($0, 0, index($0, "|")-1)
right = substr($0, index($0, "|"))
gsub(/-+/, red "&" reset, right)
gsub(/\++/, green "&" reset, right)
print left right
} else {
print $0
}
} else {
if ($0 ~ /^-/) {
print red $0 reset
} else if ($0 ~ /^\+/) {
print green $0 reset
} else if ($0 ~ /^ /) {
print $0
} else if ($0 ~ /^@@ (-[0-9]+,[0-9]+ \+[0-9]+,[0-9]+) @@.*/) {
sub(/^@@ (-[0-9]+,[0-9]+ \+[0-9]+,[0-9]+) @@/, cyan "&" reset)
print $0
} else {
print bright $0 reset
}
}
}