mblaze

Unix utilities to deal with Maildir - my mirror
git clone https://pi.duncano.de/git/mblaze.git
Log | Files | Refs | README | COPYING

commit eb4e2c171d07bc39812e16cef969e5ea79e3c9d8
parent 3d88b3e6384e8cb9bdece59e00651c83795e39c1
Author: Christian Neukirchen <chneukirchen@gmail.com>
Date:   Tue,  2 Aug 2016 22:50:45 +0200

mcolor: extract from mless

Diffstat:
mcolor | 22++++++++++++++++++++++
mless | 25+++----------------------
2 files changed, 25 insertions(+), 22 deletions(-)

diff --git a/mcolor b/mcolor @@ -0,0 +1,22 @@ +#!/bin/sh +# mcolor - colorize rendered mail + +# restart as awk script +true + /; exec awk -f "$0"; exit; / {} + +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 } +/^$/ { hdr = 0 } +/^-- $/ { ftr = 1 } +/^--- .* ---/ { print fg(co("SEP",242), $0); ftr = 0; sig = 0; next } +/^-----BEGIN .* SIGNATURE-----/ { sig = 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("QUOTE",151), $0); next } +{ print } diff --git a/mless b/mless @@ -3,25 +3,6 @@ PATH="${0%/*}:$PATH" -colormsg() { -awk ' -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 } -/^$/ { hdr = 0 } -/^-- $/ { ftr = 1 } -/^--- .* ---/ { print fg(242, $0); ftr = 0; sig = 0; next } -/^-----BEGIN .* SIGNATURE-----/ { sig = 1 } -hdr && /^From:/ { print so(fg(119, $0)); next } -hdr { print fg(120, $0); next } -ftr { print fg(244, $0); next } -/^-----BEGIN .* MESSAGE-----/ || -/^-----END .* SIGNATURE-----/ { print fg(244, $0); sig = 0; next } -sig { print fg(244, $0); next } -/^>/ { print fg(151, $0); next } -{ print }' -} - colorscan() { awk ' function fg(c, s) { return sprintf("\033[38;5;%03dm%s\033[0m", c, s) } @@ -51,7 +32,7 @@ if [ "$1" = --filter ]; then mshow -A text/html "$2" else mshow "$2" - fi | colormsg + fi | mcolor else mseq -r $2 echo @@ -72,10 +53,10 @@ fi case "$0" in *mnext) set -- +;; *mprev) set -- -;; - *) set -- ${1:-.};; + *) [ "$#" -eq 1 ] && set -- ${1:-.};; esac -if [ "$#" -eq 1 ]; then +if [ "$#" -ge 1 ]; then mseq -C "$1" fi