]> diplodocus.org Git - nmh/blobdiff - man/mhshow.man
Migrated show_content_aux2() to argsplit().
[nmh] / man / mhshow.man
index 37172025cb756b418a792daf67f04d6e63f09a31..d25e6ebc5f3b7b2c9461c64af0c188179457b572 100644 (file)
@@ -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-<charset>~^Template for environment to render character sets
 ^mhshow-show-<type>*~^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.