On 2008-02-03, Mun Johl <[EMAIL PROTECTED]> wrote: > (Sorry, I didn't provide a sufficient subject on the original post.) > > Hi, > > I was wondering if there is a way to highlight a mulit-line regex in the > body of a message? I am trying to use "color body ..." to highlight a > multi-line description in our bug tracking tool but I'm not certain if > mutt's highlighting feature even supports such an option. And I didn't > see anything one way or the other in the manual.
What I have done to achieve this is to create a display_filter using Perl to add ANSI color escape sequences around the text I wanted to highlight. I also add "set allow_ansi" in my muttrc so that mutt will pass these escape sequences through to the terminal. I use message-hooks to enable the various display_filters. Here's part of one display_filter. perl -00 -pe 's/^(IN THIS ISSUE)/\e[1m\1\e[0m/s; s/^(LOCAL NEWS)/\e[1m\1\e[0m/s; if (m/^((\(.*\))?[^a-z]*?[a-z]?[^a-z]*?)(\s--\s.*)/s) { $heading = $1; $part2 = $3; # Save this for printing later. $heading =~ s/^/\e[1m/s; # Turn on highlighting at start of heading. $heading =~ s/$/\e[0m/s; # Turn off highlighting at end of heading. $heading =~ s/\n/\n\e[1m/gs; # Turn on highlighting at start of every line within heading. $_ = $heading . $part2; }' This highlights a few section headings in a newsletter, including in-line headings from the start of a paragraph to the first occurrence of "--", provided there is no more than one lower-case letter in that interval. I wrote this when I had built mutt with slang. It seemed at the time that either mutt or slang turned off highlighting at the end of every line, so I had to turn it on at the start of every line within the highlighted region. I now use ncurses instead of slang, and the script still works, but I haven't checked to see whether turning on highlighting at the start of every highlighted line is still necessary. HTH, Gary