colorize: make it compatible with BSD awk
Fix the following error seen on MacOS: /usr/bin/awk: syntax error at source line 22 source file header_pattern = >>> @ <<< /^[A-Z][[:alnum:]-]+:/ The @ character in front of regular expressions to pre-compile them seems not in the POSIX specification. Replace them with regular strings and call match() instead of the ~ operator. Also, adjust the url_pattern expression for BSD awk which explicitly states: The awk utility is compliant with the IEEE Std 1003.1-2008 (“POSIX.1”) specification, except awk does not support {n,m} pattern matching. Use [[:lower:]]+ instead of [a-z]{2,6}. Tested with: GNU Awk 5.1.1 awk version 20121220 (FreeBSD) Link: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/awk.html Fixes: https://todo.sr.ht/~rjarry/aerc/96 Signed-off-by: Robin Jarry <robin@jarry.cc> Acked-by: Koni Marti <koni.marti@gmail.com>
This commit is contained in:
parent
8e37d16a32
commit
9d71da175a
1 changed files with 6 additions and 6 deletions
|
@ -23,9 +23,9 @@ BEGIN {
|
||||||
in_headers = 0
|
in_headers = 0
|
||||||
in_body = 0
|
in_body = 0
|
||||||
# patterns
|
# patterns
|
||||||
header_pattern = @/^[A-Z][[:alnum:]-]+:/
|
header_pattern = "^[A-Z][[:alnum:]-]+:"
|
||||||
url_pattern = @/[a-z]{2,6}:\/\/[[:graph:]]+|(mailto:)?[[:alnum:]_\+\.~\/-]*[[:alnum:]_]@[[:lower:]][[:alnum:]\.-]*[[:lower:]]/
|
url_pattern = "[[:lower:]]+://[[:graph:]]+|(mailto:)?[[:alnum:]_\\+\\.~/-]*[[:alnum:]_]@[[:lower:]][[:alnum:]\\.-]*[[:lower:]]"
|
||||||
meta_pattern = @/^(diff --git|(new|deleted) file|similarity index|(rename|copy) (to|from)|index|---|\+\+\+) /
|
meta_pattern = "^(diff --git|(new|deleted) file|similarity index|(rename|copy) (to|from)|index|---|\\+\\+\\+) "
|
||||||
}
|
}
|
||||||
function color_quote(line) {
|
function color_quote(line) {
|
||||||
level = 0
|
level = 0
|
||||||
|
@ -50,7 +50,7 @@ function color_quote(line) {
|
||||||
} else {
|
} else {
|
||||||
color = quote_x
|
color = quote_x
|
||||||
}
|
}
|
||||||
if (line ~ meta_pattern) {
|
if (match(line, meta_pattern)) {
|
||||||
return color quotes bold line reset
|
return color quotes bold line reset
|
||||||
} else if (line ~ /^\+/) {
|
} else if (line ~ /^\+/) {
|
||||||
return color quotes diff_add line reset
|
return color quotes diff_add line reset
|
||||||
|
@ -71,7 +71,7 @@ function color_quote(line) {
|
||||||
$0 = signature $0 reset
|
$0 = signature $0 reset
|
||||||
} else if ($0 ~ /^@@ /) {
|
} else if ($0 ~ /^@@ /) {
|
||||||
gsub(/^@@[^@]+@@/, diff_chunk "&" reset)
|
gsub(/^@@[^@]+@@/, diff_chunk "&" reset)
|
||||||
} else if ($0 ~ meta_pattern) {
|
} else if (match($0, meta_pattern)) {
|
||||||
$0 = diff_meta $0 reset
|
$0 = diff_meta $0 reset
|
||||||
} else if ($0 ~ /^\+/) {
|
} else if ($0 ~ /^\+/) {
|
||||||
$0 = diff_add $0 reset
|
$0 = diff_add $0 reset
|
||||||
|
@ -117,7 +117,7 @@ function color_quote(line) {
|
||||||
} else if ($0 ~ /^-- ?$/) {
|
} else if ($0 ~ /^-- ?$/) {
|
||||||
in_signature = 1
|
in_signature = 1
|
||||||
$0 = signature $0 reset
|
$0 = signature $0 reset
|
||||||
} else if ($0 ~ header_pattern) {
|
} else if (match($0, header_pattern)) {
|
||||||
in_headers = 1
|
in_headers = 1
|
||||||
sub(header_pattern, header "&" reset)
|
sub(header_pattern, header "&" reset)
|
||||||
gsub(url_pattern, url "&" reset)
|
gsub(url_pattern, url "&" reset)
|
||||||
|
|
Loading…
Reference in a new issue