Subject: 23.2.91; Rmail doesn't allow displaying text attachments conveniently

From: Eli Zaretskii <[email-masked]>
Date: Thu, 16 Dec 2010 01:15:46 -0500

The new Rmail-MIME feature is nice, but it has some rough edges.  One
of them is that I lost an easy way of displaying many text
attachments.

Specifically, it looks like we display text attachments by default,
but only if content-disposition is "inline".  Maybe that's what the
various RFCs mandate, but why isn't there at least a button to display
the text (in the same or another buffer) if the user decides to do
that?  Previously, if I trusted the sender and the contents, I could
type `e', then decode the attachment manually, and "C-c C-c" to read
it as part of the message.  Now I can only save the attachment to a
file and visit it -- an inconvenience.  For someone who gets to review
patches, this is a serious inconvenience, especially since `v' does
not seem to work anymore in the Rmail buffer.

Also, there's something strange in the way we treat text/x-patch
attachments as text.  rmailmm.el has these 2 lines:

    ("text/.*" rmail-mime-text-handler)
    ("text/\\(x-\\)?patch" rmail-mime-bulk-handler)

which to my interpretation mean that the second line will never be
used, right?

In GNU Emacs 23.2.91.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.12.9)
 of 2010-12-11 on fencepost
configured using `configure  '--with-jpeg=no' '--with-gif=no' '--with-tiff=no''

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

Major mode: RMAIL

Minor modes in effect:
  display-time-mode: t
  show-paren-mode: t
  savehist-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t

Recent input:
ESC O A ESC O A ESC O A ESC O A ESC O A ESC O A ESC 
O A ESC O A ESC O A ESC O A ESC O B ESC O C ESC O C 
ESC O C ESC O C ESC O C ESC O C ESC O C C-r C-w C-w 
C-w C-w C-r C-x C-x C-s C-s C-s ESC O A C-x C-x C-r 
C-r ESC O A ESC O A ESC O D ESC O D ESC O D ESC O D 
C-s C-w C-w C-w C-w C-w C-w C-s C-s C-s C-x C-x C-s 
C-s C-s ESC O q ESC O A ESC O A C-x C-_ ESC O A C-_ 
C-x b RET ESC p ESC p ESC p ESC p ESC p ESC p ESC p 
ESC p ESC p ESC p ESC p ESC p ESC p ESC p SPC SPC SPC 
SPC ESC p ESC p SPC ESC p ESC n ESC p ESC p SPC ESC 
p ESC p ESC p ESC p SPC ESC p SPC ESC p SPC ESC p SPC 
SPC ESC p ESC p ESC p ESC p SPC ESC p SPC ESC p ESC 
p ESC p ESC p SPC SPC ESC p ESC p SPC SPC ESC p ESC 
p ESC p ESC p SPC SPC ESC p SPC SPC SPC ESC p ESC p 
SPC ESC p SPC SPC SPC ESC p ESC p SPC SPC ESC p ESC 
p ESC p ESC p ESC p ESC p ESC p n d ESC p p p SPC p 
p SPC p SPC p p p p p p p SPC C-x o ESC > C-x o ESC 
x r e p o r t - e m TAB RET

Recent messages:
Making completion list...
Mark set
Mark saved where search started [9 times]
Undo!
call-interactively: End of buffer [3 times]
Showing message 1124
Showing message 1124...done
Showing message 1124
Showing message 1124...done
Mark set

Load-path shadows:
None found.

Features:
(shadow emacsbug help-mode view two-column dabbrev newcomment flyspell
ispell etags ring vc-bzr cc-mode cc-fonts cc-menus cc-cmds cc-styles
cc-align cc-engine cc-vars cc-defs multi-isearch rmailsum rmailmm
message sendmail regexp-opt ecomplete rfc822 mml easymenu mml-sec
password-cache mm-decode mm-bodies mm-encode mailcap mailabbrev
nnheader gnus-util netrc gmm-utils wid-edit mailheader canlock sha1
hex-util hashcash mail-parse rfc2231 rmail rfc2047 rfc2045 ietf-drums
time-date qp mm-util mail-prsvr mail-utils time paren cus-start
cus-load savehist saveplace tooltip ediff-hook vc-hooks
lisp-float-type mwheel x-win x-dnd font-setting tool-bar dnd fontset
image fringe lisp-mode register page menu-bar rfn-eshadow timer select
scroll-bar mldrag mouse jit-lock font-lock syntax facemenu font-core
frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai
tai-viet lao korean japanese hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev loaddefs button minibuffer faces
cus-face files text-properties overlay md5 base64 format env
code-pages mule custom widget hashtable-print-readable backquote
make-network-process font-render-setting gtk x-toolkit x multi-tty
emacs)