#!/usr/local/plan9/bin/rc fn read9p { srv=$1; shift 9p read $srv >[2=1]|grep -v '^9p\:' } fn dir9p { srv=$1; shift 9p ls $srv >[2=1]|grep -v '^9p\:' } fn catmesg { # hold on for a second TMP=/tmp/$USER.`{date -n}; sleep 1 msg=$1; read9p $msg/body >$TMP.body t=`{read9p $msg/type} switch($t){ case text/html echo ' ,x// c// ,x/<[^>]+>/d ,p u ,y/<[^>]+>/d ,p '| sam -d $TMP.body|[2] sed '1d;/^\?/d' case text/* cat $TMP.body case message/* cat $TMP.body case multipart/related if (~ `{read9p $msg/1/type} text/plain) catmesg $msg/1 if not if (~ `{read9p $msg/2/type} text/plain) catmesg $msg/2 if not { for (i in `{dir9p $msg|awk '$10 ~ /[0-9][0-9]*/ {print $10}'}) catmesg $msg/$i } case * echo $t # should there be more? } rm -f $TMP.body } if (~ $#* 0) echo usage: msgcat mail/mbox/msgn && exit 1 mesg=$1 if (~ `{read9p $mesg/lines} '') echo no such message $mesg && exit 2 read9p $mesg/unixheader; read9p $mesg/header echo catmesg $mesg echo