X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/1b5a1bd2244d3e1c12b7c9e1f48e445de5ad2ea2..7559e1ebf:/man/mhshow.man?ds=sidebyside diff --git a/man/mhshow.man b/man/mhshow.man index 37172025..d25e6ebc 100644 --- a/man/mhshow.man +++ b/man/mhshow.man @@ -1,8 +1,7 @@ +.TH MHSHOW %manext1% "February 18, 2014" "%nmhversion%" .\" .\" %nmhwarning% -.\" $Id$ .\" -.TH MHSHOW %manext1% "%nmhdate%" MH.6.8 [%nmhversion%] .SH NAME mhshow \- display MIME messages .SH SYNOPSIS @@ -39,11 +38,11 @@ message or collection of messages. .PP .B mhshow manipulates multi-media messages as specified in -RFC\-2045 thru RFC\-2049. Currently +RFC 2045 to RFC 2049. Currently .B mhshow only supports encodings in message bodies, and does not support the encoding of -message headers as specified in RFC\-2047. +message headers as specified in RFC 2047. .PP By default .B mhshow @@ -77,7 +76,7 @@ be in mail drop format (to convert a file in mail drop format to a folder of .B nmh messages, see -.BR inc (1)). +.IR inc (1)). .PP A part specification consists of a series of numbers separated by dots. For example, in a multipart content containing three parts, these @@ -93,7 +92,7 @@ switch will not prevent the content from being acted upon. .PP A content specification consists of a content type and a subtype. The initial list of \*(lqstandard\*(rq content types and subtypes can -be found in RFC\-2046. +be found in RFC 2046. .PP A list of commonly used contents is briefly reproduced here: .PP @@ -225,16 +224,17 @@ The display string may contain the following escapes: .PP .RS 5 .nf -.ta \w'%F 'u -%a Insert parameters from Content-Type field -%e exclusive execution -%f Insert filename containing content -%F %e, %f, and stdin is terminal not content -%l display listing prior to displaying content -%p %l, and ask for confirmation -%s Insert content subtype -%d Insert content description -%% Insert the character % +.ta \w'%F 'u +%a Insert parameters from Content-Type field +%{charset} Insert the charset value from the Content-Type field +%e exclusive execution +%f Insert filename containing content +%F %e, %f, and stdin is terminal not content +%l display listing prior to displaying content +%p %l, and ask for confirmation +%s Insert content subtype +%d Insert content description +%% Insert the character % .fi .RE .PP @@ -258,6 +258,20 @@ control-\\) will tell .B mhshow to wrap things up immediately. .PP +The {charset} escape is typically used in a command line argument that +should only be present if it has a non-null value. Shell parameter +expansion can construct the argument only when it is non-null, e.g., +.PP +.RS 5 +.nf +mhshow-show-text/html: charset="%{charset}"; + w3m ${charset:+-I $charset} -T text/html %F +.fi +.RE +.PP +That example also shows the use of indentation to signify continuation: +the two text lines combine to form a single entry. +.PP Note that if the content being displayed is multipart, but not one of the subtypes listed above, then the f- and F-escapes expand to multiple filenames, one for each subordinate content. Further, stdin is not @@ -265,15 +279,18 @@ redirected from the terminal to the content. .PP If a display string is not found, .B mhshow -has several default values: +behaves as if these profile entries were supplied and supported: .PP .RS 5 .nf -mhshow-show-text/plain: %pmoreproc '%F' -mhshow-show-message/rfc822: %pshow -file '%F' +mhshow-show-text/plain: %pmoreproc %F +mhshow-show-message/rfc822: %pshow -file %F .fi .RE .PP +Note that \*(lqmoreproc\*(rq is not supported in user profile display +strings. +.PP If a subtype of type text doesn't have a profile entry, it will be treated as text/plain. .PP @@ -297,14 +314,13 @@ Example entries might be: .RS 5 .nf mhshow-show-audio/basic: raw2audio 2>/dev/null | play -mhshow-show-image: xv '%f' +mhshow-show-image: xv %f mhshow-show-application/PostScript: lpr -Pps .fi .RE .PP -Note that when using the f- or F-escape, it's a good idea to use -single-quotes around the escape. This prevents misinterpretation by -the shell of any funny characters that might be present in the filename. +If an f- or F-escape is not quoted with single quotes, double quotes, +or backticks, its expansion will be wrapped with single quotes. .PP Finally, .B mhshow @@ -319,6 +335,18 @@ switch can be given to tell .B mhshow to never display parts in parallel. .SS "Showing Alternate Character Sets" +If +.B mhshow +was built with +.IR iconv (3), +then all text/plain parts of the message(s) will be displayed using +the character set of the current locale. To convert text parts other +than text/plain, or if +.B mhshow +was not built with +.IR iconv , +an external program can be used, as described next. +.PP Because a content of type text might be in a non-ASCII character set, when .B mhshow @@ -326,15 +354,15 @@ encounters a \*(lqcharset\*(rq parameter for this content, it checks if your terminal can display this character set natively. .B mhn -checks this by examining the the environment -variable -.BR $MM_CHARSET . -If the value of this environment variable is equal +checks this by examining the current character set defined by the +.IR locale (1) +environment variables. +If the value of the locale character set is equal to the value of the charset parameter, then .B mhshow assumes it can -display this content without any additional setup. If this environment -variable is not set, +display this content without any additional setup. If the locale is not +set properly, .B mhshow will assume a value of \*(lqUS-ASCII\*(rq. If the character set cannot be displayed natively, then @@ -377,29 +405,24 @@ needed beforehand. Note that many pagers strip off the high-order bit or have problems displaying text with the high-order bit set. However, the pager .B less -has support for single-octet character sets. The source -to -.B less -is available on many ftp sites carrying free software. -In order to view messages sent in the ISO-8859-1 character set using +has support for single-octet character sets. For example, messages +encoded in the ISO-8859-1 character set can be view using .BR less , -.PP -put these lines in your -.I \&.login -file: +with these environment variable settings: .PP .RS 5 .nf -setenv LESSCHARSET latin1 -setenv LESS "-f" +.ta \w'%F 'u +LESSCHARSET latin1 +LESS -f .fi .RE .PP -The first line tells +The first setting tells .B less to use the ISO-8859-1 definition for determining whether a character is \*(lqnormal\*(rq, \*(lqcontrol\*(lq, -or \*(lqbinary\*(rq. The second line tells +or \*(lqbinary\*(rq. The second setting tells .B less not to warn you if it encounters a file that has non-ASCII characters. Then, simply @@ -410,7 +433,7 @@ profile entry to and it will get called automatically. (To handle other single-octet character sets, look at the -.BR less (1) +.IR less (1) manual entry for information about the .B $LESSCHARDEF environment variable.) @@ -420,7 +443,7 @@ cannot directly display messages of type partial. You must reassemble them first into a normal message using .BR mhstore . Check the man page for -.BR mhstore (1) +.IR mhstore (1) for details. .SS "External Access" For contents of type message/external-body, @@ -437,6 +460,8 @@ ftp local-file .IP \(bu 4 mail-server +.IP \(bu 4 +url .PP For the \*(lqanon-ftp\*(rq and \*(lqftp\*(rq access types, .B mhshow @@ -466,10 +491,13 @@ local filename The program should terminate with an exit status of zero if the retrieval is successful, and a non-zero exit status otherwise. .PP -If this entry is not provided, then +For the \*(lqurl\*(rq access\-type, .B mhshow -will use a simple -built-in FTP client to perform the retrieval. +will look for the \*(lqnmh-access-url\*(rq +profile entry. See +.IR mhstore (1) +for more details. +.PP .SS "The Content Cache" When .B mhshow @@ -529,7 +557,7 @@ operates may vary for different machines, .B mhshow will look for the environment variable -.BE $MHSHOW . +.BR $MHSHOW . If present, this specifies the name of an additional user profile which should be read. Hence, when a user logs in on a particular display device, this environment variable should be set to @@ -556,8 +584,16 @@ e.g., which is created automatically during .B nmh installation. - .SH FILES +.B mhshow +looks for all format files and mhn.defaults in multiple locations: +absolute pathnames are accessed directly, tilde expansion is done on +usernames, and files are searched for in the user's +.I Mail +directory as specified in their profile. If not found there, the directory +.RI \*(lq %etcdir% \*(rq +is checked. +.PP .fc ^ ~ .nf .ta \w'%etcdir%/ExtraBigFileName 'u @@ -566,7 +602,6 @@ installation. ^%etcdir%/mhn.defaults~^System default MIME profile entries ^%etcdir%/mhl.headers~^The headers template .fi - .SH "PROFILE COMPONENTS" .fc ^ ~ .nf @@ -577,30 +612,31 @@ installation. ^Unseen\-Sequence:~^To name sequences denoting unseen messages ^mhlproc:~^Default program to display message headers ^nmh-access-ftp:~^Program to retrieve contents via FTP +^nmh-access-url:~^Program to retrieve contents via HTTP ^nmh-cache~^Public directory to store cached external contents ^nmh-private-cache~^Personal directory to store cached external contents ^mhshow-charset-~^Template for environment to render character sets ^mhshow-show-*~^Template for displaying contents ^moreproc:~^Default program to display text/plain content .fi - .SH "SEE ALSO" -mhbuild(1), mhl(1), mhlist(1), mhstore(1), sendfiles(1) - +.IR iconv (3), +.IR mhbuild (1), +.IR mhl (1), +.IR mhlist (1), +.IR mhstore (1), +.IR sendfiles (1) .SH DEFAULTS .nf .RB ` +folder "' defaults to the current folder" .RB ` msgs "' defaults to cur" .RB ` \-nocheck ' -.RB ` \-form mhl.headers ' +.RB ` \-form\ mhl.headers ' .RB ` \-pause ' -.RB ` \-rcache ask ' -.RB ` \-realsize ' +.RB ` \-rcache\ ask ' .RB ` \-noserialonly ' -.RB ` \-noverbose ' -.RB ` \-wcache ask ' +.RB ` \-wcache\ ask ' .fi - .SH CONTEXT If a folder is given, it will become the current folder. The last message selected will become the current message.