#!/bin/sh # (1) master mutt creates a temporary file to use as the "postponed" # mailbox, then postpones a reply to the current message. Note # that it needs to reset "postponed" when it has finished. # # (2) master mutt creates $HOME/.xmutt_reply_yucky which contains # filename for reply (this is horrible) # # (3) master mutt runs xmutt_reply # Minor race condition here postponed=`cat $HOME/.xmutt_reply_yucky` || exit 1 rm -f $HOME/.xmutt_reply_yucky # Daemonize this process... ( # Get the In-Reply-To line so we can update the answered flag # afterward msgid=`awk '/^In-Reply-To:/{print $2;end}' $postponed` || true case "$msgid" in \<*@*\>) ;; # looks good *) msgid='' ;; # don't take chances esac # DEBUG echo "$msgid" >/dev/console # Run mutt in a terminal run_term -e "sh -c 'mutt -e \"set postponed=$postponed;macro compose P \\\":set postponed=$HOME/mail/mutt.postponed\\r\\\"\" -p'" # $postponed should be empty at this point [ -s $postponed ] || rm -f $postponed # Quit if we don't have a Message-ID [ -n "$msgid" ] || exit 0 # Check if the message was postponed; this depends on knowing # where the postponed file lives fgrep -qe "$msgid" $HOME/mail/mutt.postponed && exit 0 # If the message wasn't postponed, then try to find the original # message so we can update the answered flag # export msgid # insert perl script here to update the X-Status: header ) &