commit - d43c29463da4ed478723a69056f54115f5355978
commit + 7bb89f78cac36bec5cc0ade89e3e98a115f302e0
blob - d70c7b9f3b934eeaa805a2d7bca9beb201676075
blob + 43438e323fb288c806dddba832adcce276da5466
--- painlist
+++ painlist
if(npost) printf(", %d postponed", npost)
print reset()
}
+ }
+'
+
+# awk program to summarize totals
+summarize='
+ function context(s, arr) {
+ delete arr
+ while(match(s, /[[:space:]][#@][a-zA-Z0-9]+/)) {
+ t = substr(s, RSTART+2, RLENGTH-2)
+ s = substr(s, RSTART+RLENGTH)
+ arr[t] = 1;
+ }
+ }
+
+ {
+ if(substr($0,7,1) == "^") { next }
+ total += $1
+
+ context($0, ctx)
+ for(t in ctx) { sum[t] += $1 }
}
+
+ END {
+ printf("%5.1f total", total)
+ for(t in sum)
+ printf(" %.1f %s", sum[t], t)
+ print ""
+ }
'
if test -t 1 # is stdout a tty?
maxitems=$(($(tput li) - 5))
fi
-args=`getopt npvt:l: $*`
+args=`getopt npsvt:l: $*`
if [ $? -ne 0 ]; then
- echo "usage: $0 [-npv] [-t THRESHOLD] [-l MAX] [pattern]"
+ echo "usage: $0 [-npsv] [-t THRESHOLD] [-l MAX] [pattern]"
exit 1
fi
set -- $args
case "$1" in
-n) nocolor=1; shift;;
-p) format='{print}'; shift;;
+ -s) format="$summarize"; shift;;
-t) theta="$2"; shift; shift;;
-v) invert=1; shift;;
-l) maxitems="$2"; shift; shift;;