On Mon, 16 Aug 2010 16:02:59 +0200, Michal Sojka <sojkam1@fel.cvut.cz> wrote: > On Mon, 16 Aug 2010, Ladislav Lhotka wrote: > > I am experiencing a problem with a specific type of messages, namely > > announcements of new Internet drafts. One such message is shown below > > with all headers. > > > > In a search buffer, if I press [RET], the message is shown but the echo > > line says "Couldn't find access type". The [SPC] key then doesn't work, > > only "Beginning of buffer" is displayed in the echo area. Other > > commands, such as adding tags, work as usual. > > Greetings to another czech notmuch user :-) > > I can confirm the behavior you describe. It seems the error message is > generated by mm-extern-cache-contents in gnus/mm-extern.el. According to > comments in that file, it works with something called > "message/external-body". Currently, I have no clue what external-body > means but your message contains such thing. > > My poor Elisp knowledge doesn't allow me to debug the problem, but you > may want to check whether the same problem appears in Gnus and if so, > consult it with Gnus developers. With my faint Elisp expertise, I tried to investigate the problem a bit and it seems it is in the notmuch elisp part. The 'mm-extern-cache-contents' function you mentioned initializes the 'access-type' variable like this: (let* ((access-type (cdr (assq 'access-type (cdr (mm-handle-type handle))))) The 'handle' argument for the problematic message looks like this: (#<buffer *temp*> ("message/external-body") nil nil nil nil nil nil) Now, 'mm-handle-type' function extracts the second member from 'handle', which is ("message/external-body"). Applying 'cdr' to this list yields necessarily nil and so access-type is always initialized to nil and consequently the error "Couldn't find access type" is reported. The ("message/external-body") list is constructed originally in 'notmuch-show-insert-bodypart' function and passed - as 'content-type' argument - through several stack frames. The use of 'cdr' and 'assq' functions in the above initialization expression however indicates that 'mm-extern-cache-contents' expects something more complex than just a simple list. Perhaps someone with deeper knowledge of notmuch elisp internals could fix this bug? Cheers, Lada > > Cheers, > Michal -- Ladislav Lhotka, CESNET PGP Key ID: E74E8C0C