On Sun, Aug 18 2013, Austin Clements <amdragon@MIT.EDU> wrote: > RFC 2047 states that the encoding and charset in an encoded word are > case-insensitive, so force them to lower case in the reply test. This > fixes an issue caused by GMime versions (somewhere between 2.6.10 and > 2.6.16), which changed the capitalization of the encoding. > --- > test/reply | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/test/reply b/test/reply > index d4389cf..a078927 100755 > --- a/test/reply > +++ b/test/reply > @@ -201,12 +201,14 @@ add_message '[subject]="=?iso-8859-1?q?=e0=df=e7?="' \ > '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ > '[body]="Encoding"' > > -output=$(notmuch reply id:${gen_msg_id}) > -# Note that GMime changes from Q- to B-encoding > +# GMime happens to change from Q- to B-encoding. We canonicalize the > +# case of the encoding and charset because different versions of GMime > +# capitalize the encoding differently. > +output=$(notmuch reply id:${gen_msg_id} | sed 's/=?[^?]*?[bB]?/\L&/g') The sed expression looks fancy enough to be GNU sed extension (\L& doing tolower to the matching part?). A more portable alternative could be: output=$(notmuch reply id:${gen_msg_id} | sed -e 's/?UTF-8?/?utf-8?/g' \ -e 's/?ISO-88591-1?/?iso-88591-1?/g' -e 's/?B?/?b?/g') or alternatively (some bashism): output=$(notmuch reply id:${gen_msg_id}) output=${output//\?UTF-8\?/?utf-8?} output=${output//\?ISO-8859-1\?/?iso-8859-1?} output=${output//\?B\?/?b?} Tomi > test_expect_equal "$output" "\ > From: Notmuch Test Suite <test_suite@notmuchmail.org> > Subject: Re: =?iso-8859-1?b?4N/n?= > -To: =?UTF-8?b?4piD?= <snowman@example.com> > +To: =?utf-8?b?4piD?= <snowman@example.com> > In-Reply-To: <${gen_msg_id}> > References: <${gen_msg_id}> > > -- > 1.7.10.4 > > _______________________________________________ > notmuch mailing list > notmuch@notmuchmail.org > http://notmuchmail.org/mailman/listinfo/notmuch