[prev in list] [next in list] [prev in thread] [next in thread] 

List:       mutt-users
Subject:    Re: Dynamic macro
From:       Christian Brabandt <cblists () 256bit ! org>
Date:       2007-07-23 15:17:42
Message-ID: 20070723151742.GD14387 () 256bit ! org
[Download RAW message or body]

Hi Ben!

On Mon, 23 Jul 2007, Ben Gladwell wrote:

> dumps them all into the same mbox, which is the way I like it. I want to
> create a macro that creates a limit based on the host of the sender of
> the current email in the index - in my case its the name of the server
> that emailed me. This way, I could quickly see all the emails from each
> server.
> 
> So, if the current email iss from root@server.something.com i'd like a
> limit like:
> ~L server

I created once a quick and dirty mapping, that would limit the view to
all the mails from the author of the mail which was selected.  Since I
tend to remember mails by the name of the author which sent it.

,----[ $ grep -m1 -B3 .mutt/macros.conf ]-
> macro index A "<enter-command>unset wait_key<enter><pipe-message>\
> ~/bin/mutt_address.sh ~/temp/mutt_source.txt<enter><enter-command>\
> set wait_key<enter><enter-command>source ~/temp/mutt_source.txt<enter>" "limit \
> message view by selected author"
`----

And mutt_address.sh looks like this:

#!/bin/sh

FORM=`which formail`
ARGS="`cat`"

# The sed statement will cut out only the relevant part from
# the e-mail address between <> (e.g. for "Foo" <foo.bar@foobar.xyz> it 
# will only print foo\.bar@foobar\.xyz) and will also translate
# allowed characters like "." or "+" by escaping them
OUTPUT=`echo "${ARGS}"|"${FORM}" -tzx "From:" | sed \
's/.*<//;s/>//;s/\./\\\\\\\\&/g;s/+/\\\\\\\\\\\\\\\\&/g'`   if [ -n "$1" ]; then
    TEMP="$1"
    exec >"${TEMP}" || { echo "Could not output to $1, exiting..." &&  exit 1; }

    cat <<EOF
    push "<limit>~f \"${OUTPUT}\"<enter>"'
EOF
else
    echo "You must supply a filename in which to store the result!" && exit 2
fi

This is probably pretty ugly, especially the escaping was hard to
figure out. But so far, I have not had any problems. 


regards,
Christian
-- 
hundred-and-one symptoms of being an internet addict:
175. You send yourself e-mail before you go to bed to remind you
     what to do when you wake up.


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic