docs/master

diff discussion.roff @ 114:92cbd3fa1c40

Wrote text about displaying mime messages.
author markus schnalke <meillo@marmaro.de>
date Mon, 25 Jun 2012 12:37:26 +0200
parents 4e6a9ae1b53c
children 4fbd14dc5e91
line diff
     1.1 --- a/discussion.roff	Mon Jun 25 10:07:33 2012 +0200
     1.2 +++ b/discussion.roff	Mon Jun 25 12:37:26 2012 +0200
     1.3 @@ -2241,7 +2241,134 @@
     1.4  
     1.5  .U3 "Showing MIME Messages
     1.6  .P
     1.7 -FIXME
     1.8 +The program
     1.9 +.Pn mhshow
    1.10 +had been written to display MIME messages.
    1.11 +It implemented the conceptional view of the MIME RFCs.
    1.12 +Nmh's
    1.13 +.Pn mhshow
    1.14 +handled each MIME part independently, presenting them separately
    1.15 +to the user.
    1.16 +This does not match today's understanding of email attachments,
    1.17 +where displaying a message is seen to be a single, integrated operation.
    1.18 +Today, email messages are expected to consist of a main text part
    1.19 +plus possibly attachments.
    1.20 +They are not any more seen to be arbitrary MIME hierarchies with
    1.21 +information on how to display the individual parts.
    1.22 +I adjusted
    1.23 +.Pn mhshow 's
    1.24 +behavior to the modern view on the topic.
    1.25 +.P
    1.26 +Note that this section completely ignores the original
    1.27 +.Pn show
    1.28 +program, because it was not capable to display MIME messages
    1.29 +and is no longer part of mmh.
    1.30 +Although
    1.31 +.Pn mhshow
    1.32 +was renamed to
    1.33 +.Pn show
    1.34 +in mmh, this section uses the name
    1.35 +.Pn mhshow ,
    1.36 +in order to avoid confusion.
    1.37 +.P
    1.38 +In mmh, the basic idea is that
    1.39 +.Pn mhshow
    1.40 +should display a message in one single pager session.
    1.41 +Therefore,
    1.42 +.Pn mhshow
    1.43 +invokes a pager session for all its output,
    1.44 +whenever it prints to a terminal.
    1.45 +.Ci a4197ea6ffc5c1550e8b52d5a654bcaaaee04a4e
    1.46 +In consequence,
    1.47 +.Pn mhl
    1.48 +does no more invoke a pager.
    1.49 +.Ci 0e46503be3c855bddaeae3843e1b659279c35d70
    1.50 +With
    1.51 +.Pn mhshow
    1.52 +replacing the original
    1.53 +.Pn show ,
    1.54 +output from
    1.55 +.Pn mhl
    1.56 +does not go to the terminal directly, but through
    1.57 +.Pn mhshow .
    1.58 +Hence,
    1.59 +.Pn mhl
    1.60 +does not need to invoke a pager.
    1.61 +The one and only job of
    1.62 +.Pn mhl
    1.63 +is to format messages or parts of them.
    1.64 +The only place in mmh, where a pager is invoked is
    1.65 +.Pn mhshow .
    1.66 +.P
    1.67 +.Pe mhshow-show-*
    1.68 +profile entries can be used to display MIME parts in a specific way.
    1.69 +For instance, PDF and Postscript files could be converted to plain text
    1.70 +to display them in the terminal.
    1.71 +In mmh, the displaying of MIME parts will always be done serially.
    1.72 +The request to display the MIME type `multipart/parallel' in parallel
    1.73 +is ignored.
    1.74 +It is simply treated as `multipart/mixed'.
    1.75 +.Ci d0581ba306a7299113a346f9b4c46ce97bc4cef6
    1.76 +This could already be requested with the, now removed,
    1.77 +.Sw -serialonly
    1.78 +switch of
    1.79 +.Pn mhshow .
    1.80 +As MIME parts are always processed exclusively , i.e. serially,
    1.81 +the `%e' escape in
    1.82 +.Pe mhshow-show-*
    1.83 +profile entries became useless and was thus removed.
    1.84 +.Ci a20d405db09b7ccca74d3e8c57550883da49e1ae
    1.85 +.P
    1.86 +In the intended setup, only text content would be displayed.
    1.87 +Non-text content would be converted to text by appropriate
    1.88 +.Pe mhshow-show-*
    1.89 +profile entries before, if possible and wanted.
    1.90 +All output would be displayed in a single pager session.
    1.91 +Other kinds of attachments are ignored.
    1.92 +With
    1.93 +.Pe mhshow-show-*
    1.94 +profile entries for them, they can be displayed serially along
    1.95 +the message.
    1.96 +For parallel display, the attachments need to be stored to disk first.
    1.97 +.P
    1.98 +To display text content in foreign charsets, they need to be converted
    1.99 +to the native charset.
   1.100 +Therefore,
   1.101 +.Pe mhshow-charset-*
   1.102 +profile entries used to be needed.
   1.103 +In mmh, the convertion is done automatically by piping the text through
   1.104 +the
   1.105 +.Pn iconv
   1.106 +command, if necessary.
   1.107 +.Ci 2433122c20baccb10b70b49c04c6b0497b5b3b60
   1.108 +Custom
   1.109 +.Pe mhshow-show-*
   1.110 +rules for textual content might need a
   1.111 +.Cl "iconv -f %c %f |
   1.112 +prefix to have the text converted to the native charset.
   1.113 +.P
   1.114 +Although the convertion of foreign charsets to the native one
   1.115 +has improved, it is not consistent enough.
   1.116 +Further work needs to be done and
   1.117 +the basic concepts in this field need to be re-thought.
   1.118 +Though, the default setup of mmh displays message in foreign charsets
   1.119 +correctly without the need to configure anything.
   1.120 +
   1.121 +
   1.122 +.ig
   1.123 +
   1.124 +.P
   1.125 +mhshow/mhstore: Removed support for retrieving message/external-body parts.
   1.126 +These tools won't download the contents automatically anymore. Instead,
   1.127 +they print the information needed to get the contents. If someone should
   1.128 +really receive one of those rare message/external-body messages, he can
   1.129 +do the job manually. We save nearly a thousand lines of code. That's worth
   1.130 +it!
   1.131 +(The profile entry `nmh-access-ftp' and sbr/ruserpass.c for reading
   1.132 +~/.netrc are gone now.)
   1.133 +.Ci 55e1d8c654ee0f7c45b9361ce34617983b454c32
   1.134 +
   1.135 +..
   1.136  
   1.137  
   1.138