Re: notmuch-emacs won't display correctly quoted-printable iso-8859-1 mails

Subject: Re: notmuch-emacs won't display correctly quoted-printable iso-8859-1 mails

Date: Sun, 18 Dec 2011 18:08:55 +0200

To: Olivier Berger, David Bremner,


From: Tomi Ollila

On Sun, 18 Dec 2011 15:53:26 +0100, Olivier Berger <> wrote:
> On Sun, 18 Dec 2011 10:11:37 -0400, David Bremner <> wrote:
> > Hi Olivier;
> > 
> > Can you try the following patch? If you apply it to git, you can use
> > "make debian-snapshot" to build new packages (assuming you have the
> > pre-reqs).
> > 
> > Or just patch the notmuch-query.el installed by notmuch-emacs and reload
> > it.
> > 
> I did that over notmuch-emacs 0.10.2-1 Debian package's version of
> notmuch-query.el, but that doesn't seem change anything, unfortunately :
> the modeline still is '-1:%*-' for the notmuch-show buffer, after
> hitting RET over a message's line in a search result list :-(

I tested the same on terminal configured for latin9 and LC_ALL=fi_FI@euro
and the change worked for me.

The buffer modeline is not supposed to change -- the change makes emacs
read incoming data encoded in utf-8 format (notmuch outputs everything
in utf-8). Before the change emacs expected (in your case) input data being
in latin1 format ("guessed" from your locale), but as input was in utf-8 the
conversion to emacs internal format went wrong.

When emacs displays something (buffer content, that is) it converts the
internal format to the encoding emacs window is using. 

So, my guess is you did something wrong when trying David's patch and
you did not get the change evaluated.

This what I did:

I opened emacs/notmuch-query.el to another emacs window while 
notmuch-hello open in another window.

Then I added line (coding-system-for-read 'utf-8) in line 35:

  (let  ((args '("show" "--format=json"))
         (json-object-type 'plist)
         (json-array-type 'list)
         (coding-system-for-read 'utf-8)
         (json-false 'nil))

then moved cursor to the end of line 44 which shows: (json-read)))))
(last line of that function) and entered c-x c-e
(eval-last-sexp) -- that re-evaluates the function definition.

And, as said, after that change my emails render correctly on
latin1 -terminal (as opposed those did not render correctly before)

> Hope this helps.

I hope that I'm right in my guess so we get forward easier... :)

> Best regards,
> -- 
> Olivier BERGER