I suppose I could try, but I've not used a C debugger Hmm, on a hunch I just discovered that somehow the call to mhstore in mime-add-hook's for loop is the trigger... of course that's the raison d'etre of the script :-/
Hopefully it's not too hard to follow: #!/bin/sh VERSION=0.05 #Diagnostic messages DEBUG=0 #Backup message suffix BAK=`mhparam mimehook-bak` SLOCAL=`mhparam mimehook-slocal` [ $DEBUG = 1 ] && echo -n "Processing message $1"; if grep -q -E '^MIME' $1 ; then [ $DEBUG = 1 ] && echo " ...is MIME" SRCDIR=`dirname $1` MSG=`basename $1` #Don't clobber main context if [ -n $SLOCAL ]; then export MHCONTEXT=`$SLOCAL` [ $DEBUG = 1 ] && echo "slocal context $MHCONTEXT" folder -fast +$SRCDIR >/dev/null fi for PART in `mhstore $MSG 2>&1 | awk 'match($0,/as file .+/){print substr($0,RSTART+8,RLENGTH)}'`; do [ $DEBUG = 1 ] && echo "Processing part $PART"; #Tweak -auto name to match message number PARTDIR=`dirname $PART` PARTFILE=`basename $PART` if `echo $PARTFILE | awk "/^$MSG\./ { exit 1 }"` ; then NEWPART="$PARTDIR/$MSG.$PARTFILE" [ $DEBUG = 1 ] && echo "Renaming -auto part $PART to $NEWPART"; mv $PART $NEWPART PART=$NEWPART fi mv -i $PART $SRCDIR done #DEFANG plain text if [ ! -e "$1.$BAK" ]; then [ $DEBUG = 1 ] && echo "Defanging MIME with mhfixmsg: backup in $1.$BAK"; cp -i $1 $1.$BAK mhfixmsg $1 fi #Remark as unread UNSEEN=`mhparam Unseen-Sequence` if [ -n $UNSEEN ]; then mark $MSG -nozero -add -seq $UNSEEN fi else [ $DEBUG = 1 ] && echo " ...is NOT MIME" fi _______________________________________________ Nmh-workers mailing list Nmh-workers@nongnu.org https://lists.nongnu.org/mailman/listinfo/nmh-workers