Muttprofile was developed using Perl version 5.005 and it also runs nicely with Perl 5.6.0 and Perl 5.6.1. However, I got some bug reports that muttprofile does not work with Perl 5.8.0. So, I investigated the problem and here's what I found and how to fix it. Please note that the problem is now history: muttprofile works fine with Perl 5.8.1!
The symptons are that muttprofile gives a nasty looking error message (similar to the one below) and messes up the terminal by loosing the line breaks.
/bin/stty: invalid argument `2d00:5:bf:8a3b:3:1c:7f:15:4:0:1:0:11:13:1a:ff:12:f:17:16:ff:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0 ' Try `/bin/stty --help' for more information. |
It turned out that the problem was related to Perl-module Term::Complete which comes with all Perl5 distributions. Muttprofile uses this module for taking care of the interactive selection of profiles. However, muttprofile actually works despite the error!
I managed to find the bug in Term::Complete and, luckily, it was easy to fix. I contacted the Perl maintainers with a fixed version and it was included in the Perl development tree. Fixed version is now available with perl 5.8.1 and later.
You have at least three options for making muttprofile work with Perl 5.8.0:
Option 1:
Look for Perl 5.8.1 and install it. It includes a new version of the Term::Complete module
which does not have the stty-problem anymore.
Option 2:
If you're stuck with 5.8.0 for some reason, you may use the following quick-and-dirty
workaround:
In your macro for calling muttprofile, add the command 'stty -raw echo' after the muttprofile command. This will get the line breaks back. If you want to get rid of the stty error too, redirect stderr to /dev/null when calling muttprofile. In other words use macro defition such as this:
macro index <F9> "<enter-command>set wait_key\n!~/bin/muttprofile 2> /dev/null;stty -raw echo\n:source ~/.mutt/profile.active\n<enter-command>unset wait_key\n" "Call muttprofile without stty error" |
Option 3:
Upgrade the Term::Complete-module manually. The fixed version is available here. Remember to make a backup of the original version, just in case.
I have tested these solutions with Debian but I see no reason why they wouldn't work on RedHat 8 or other unix systems with perl 5.8.0.
Thanks to Marco Fioretti of the RULE Project for informing me about the problem and noticing the typo on my quick'n'dirty fix :-)
Jarkko Hietaniemi deserves credit for helping out with the fix as well as his huge contributions to the Perl community.