選択できるのは25トピックまでです。
トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
25 行
1.1 KiB
25 行
1.1 KiB
#!/usr/bin/awk -f |
|
# mcolor - colorize rendered mail |
|
|
|
function co(n, c) { e = ENVIRON["MCOLOR_" n]; return e ? e : c } |
|
function fg(c, s) { return sprintf("\033[38;5;%03dm%s\033[0m", c, s) } |
|
function so(s) { return sprintf("\033[1m%s\033[0m", s) } |
|
BEGIN { hdr = 1; if ("NO_COLOR" in ENVIRON || match(ENVIRON["TERM"], "^(dumb|network|9term)")) no_color = 1 } |
|
no_color { print; next } |
|
/\r$/ { sub(/\r$/, "") } |
|
/^\014$/ { nextmail = 1; next } |
|
/^$/ { hdr = 0 } |
|
/^-- $/ { ftr = 1 } |
|
/^--- .* ---/ { print fg(co("SEP",242), $0); ftr = 0; sig = 0; next } |
|
/^-----BEGIN .* SIGNATURE-----/ { sig = 1 } |
|
nextmail && /^From:/ { hdr = 1 } |
|
hdr && /^From:/ { print so(fg(co("FROM",119), $0)); next } |
|
hdr { print fg(co("HEADER",120), $0); next } |
|
ftr { print fg(co("FOOTER",244), $0); next } |
|
/^-----BEGIN .* MESSAGE-----/ || |
|
/^-----END .* SIGNATURE-----/ { print fg(co("SIG",244), $0); sig = 0; next } |
|
sig { print fg(co("SIG",244), $0); next } |
|
/^> *> *>/ { print fg(co("QQQUOTE",152), $0); next } |
|
/^> *>/ { print fg(co("QQUOTE",149), $0); next } |
|
/^>/ { print fg(co("QUOTE",151), $0); next } |
|
{ nextmail = 0; print }
|
|
|