Subject: Re: Undefined macros during compilation in mm-util

From: Luca Capello <[email-masked]>
Date: Thu, 24 Mar 2011 17:09:46 +0100

severity 8330 important
thanks

Hi there!

On Wed, 23 Mar 2011 18:58:09 +0100, Stefan Monnier wrote:
> Package: Emacs,Gnus
> Version: 24.0.50
>
> mm-til uses the mm-handle-type macro from mm-decode but doesn't require
> mm-decode, so the macro call is compiled as a function call, leading to
> runtime errors about invalid function.

Severity: to important given that this causes most of the email in Gnus
to not be available (latest Debian emacs-snapshot package, version
20110323-1), for example with a post on [email-masked]:

  <http://lists.debian.org/msgid-search/%3c20110324144017.GD8136%40michelle1%3e>

=====
Debugger entered--Lisp error: (invalid-function mm-handle-type)
  mm-handle-type((#<buffer  *mm*<2>> ("text/plain" (charset . "iso-8859-1")) quoted-printable nil ("inline") nil nil nil))
  mm-handle-filename((#<buffer  *mm*<2>> ("text/plain" (charset . "iso-8859-1")) quoted-printable nil ("inline") nil nil nil))
  mm-display-inline-fontify((#<buffer  *mm*<2>> ("text/plain" (charset . "iso-8859-1")) quoted-printable nil ("inline") nil ni$
  mm-inline-text((#<buffer  *mm*<2>> ("text/plain" (charset . "iso-8859-1")) quoted-printable nil ("inline") nil nil nil))
  mm-display-inline((#<buffer  *mm*<2>> ("text/plain" (charset . "iso-8859-1")) quoted-printable nil ("inline") nil nil nil))
  mm-display-part((#<buffer  *mm*<2>> ("text/plain" (charset . "iso-8859-1")) quoted-printable nil ("inline") nil nil nil) t)
  byte-code("^H\203^W^@\306^H\211A^P@   \"\203^@^@\307\300\310\"\210\202^@^@\n\211^[\205\"^@\311\312^K!!)\203/^@r\nq\210\f)\20$
  gnus-mime-display-single((#<buffer  *mm*<2>> ("text/plain" (charset . "iso-8859-1")) quoted-printable nil ("inline") nil nil$
  gnus-mime-display-part((#<buffer  *mm*<2>> ("text/plain" (charset . "iso-8859-1")) quoted-printable nil ("inline") nil nil n$
  gnus-mime-display-security((#("multipart/signed" 0 16 (boundary "=_samba3-13102-1300977618-0001-2" protocol "application/pgp$
  gnus-mime-display-part((#("multipart/signed" 0 16 (boundary "=_samba3-13102-1300977618-0001-2" protocol "application/pgp-sig$
  gnus-display-mime()
  gnus-article-prepare-display()
  gnus-article-prepare(11517 nil)
  gnus-summary-display-article(11517 nil)
  gnus-summary-select-article(nil nil pseudo)
  gnus-summary-scroll-up(1)
  call-interactively(gnus-summary-scroll-up nil nil)
=====

FWIW, re-loading mm-util.el.gz (from Debian emacs-snapshot-el) solves it:

  (load-file "/usr/share/emacs/24.0.50/lisp/gnus/mm-util.el.gz")

> Adding a (require 'mm-decode) seems to lead to a circular require loop,
> so I'm not sure what's the best fix.

I guess because mm-decode requires mm-bodies which requires mm-util...

Thx, bye,
Gismo / Luca
                                    
In GNU Emacs 24.0.50.1 (x86_64-pc-linux-gnu, GTK+ Version 2.24.3)
 of 2011-03-23 on cigue, modified by Debian
 (emacs-snapshot package, version 1:20110323-1)
configured using `configure  '--build' 'x86_64-linux-gnu' '--host' 'x86_64-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/24.0.50/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.0.50/site-lisp:/usr/share/emacs/site-lisp' '--without-compress-info' '--with-x=yes' '--with-x-toolkit=gtk' '--with-imagemagick=yes' 'build_alias=x86_64-linux-gnu' 'host_alias=x86_64-linux-gnu' 'CFLAGS=-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000 -g -O2' 'LDFLAGS=-g -Wl,--as-needed' 'CPPFLAGS=''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: en_US.UTF-8
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: en_US.UTF-8
  value of $LC_TIME: nil
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Summary

Minor modes in effect:
  gpm-mouse-mode: t
  display-battery-mode: t
  display-time-mode: t
  show-paren-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t