Updated the TODO file.
[mmh] / man / show.man
1 .TH SHOW %manext1% "June 6, 2012" "%nmhversion%"
2 .\"
3 .\" %nmhwarning%
4 .\"
5 .SH NAME
6 show \- show (display) messages
7 .SH SYNOPSIS
8 .HP 5
9 .na
10 .B show
11 .RI [ +folder ]
12 .RI [ msgs ]
13 .RB [ \-draft ]
14 .RB [\-showproc
15 .IR program ]
16 .RB [ \-showmimeproc
17 .IR program ]
18 .RB [ \-header " | " \-noheader ]
19 .RB [ \-checkmime " | " \-nocheckmime ]
20 [switches\ for
21 .I showproc
22 or
23 .IR showmimeproc ]
24 .RB [ \-version ]
25 .RB [ \-help ]
26 .ad
27 .SH DESCRIPTION
28 .B Show
29 lists each of the specified messages to the standard output
30 (typically, the terminal).
31 .PP
32 By default, text (non-MIME) messages are filtered and displayed by
33 the
34 .B nmh
35 command
36 .BR mhl .
37 This command will display text
38 messages in a nice, uniform format.  It also allows you to configure
39 the format of the displayed messages and which headers fields are
40 shown.  See the
41 .IR mhl (1)
42 manual page for the details about this
43 command.  This default can be changed by defining the
44 .I showproc
45 profile component.  Any switches not recognized by
46 .B show
47 are
48 passed along to that program.  To override the default and the
49 .I showproc
50 profile component, use the
51 .B \-showproc
52 .I program
53 switch.  For example,
54 .B \-showproc
55 .I more
56 will cause the
57 .B more
58 program to list the messages with no reformatting.  Normally, this
59 program is specified as the
60 .I showproc
61 in the user's
62 .IR \&.mh\(ruprofile ,
63 rather than using a command line switch.
64 .PP
65 By default, non-text messages (MIME messages with multi-media
66 contents) are processed and displayed by the
67 .B nmh
68 command
69 .BR mhshow .
70 See the
71 .IR mhshow (1)
72 manual page for details
73 about this command.  This default can changed by defining the
74 .I showmimeproc
75 profile component.  Any switches not recognized
76 by
77 .B show
78 are passed along to that program.  To override this
79 default and the
80 .B showmimeproc
81 profile component, use the
82 .B \-showmimeproc
83 .I program
84 switch.
85 .PP
86 Note that in some cases,
87 .B show
88 may invoke the
89 .I showmimeproc
90 even for textual contents.  This will happen for text messages that
91 specify a transfer encoding (such as MIME quoted-printable or
92 base64) or specify a character set that
93 .B show
94 doesn't believe
95 can be displayed natively.  The environment variable
96 .B $MM_CHARSET
97 should be set to the terminal's native character set to avoid
98 gratuitous invocations of the
99 .IR showmimeproc .
100 See the
101 .IR mh-profile (5)
102 man page for details about this environment variable.
103 .PP
104 The option
105 .B \-checkmime
106 (set by default) instructs
107 .B show
108 to
109 test if any of the messages to be displayed are non-text (MIME)
110 messages.  If any are non-text, they are displayed by the program
111 .IR showmimeproc ,
112 else they are displayed by the program
113 .IR showproc .
114 The option
115 .B \-nocheckmime
116 disables this test and instructs
117 .B show
118 to use
119 .IR showproc ,
120 regardless of whether
121 any of the messages are non-text (MIME) messages.
122 .P
123 The
124 .B \-noshowproc
125 switch will disable any formatting or paging of
126 messages.  It is equivalent to
127 .B \-nocheckmime
128 .B \-showproc
129 .IR cat .
130 It is still accepted, but should be considered (somewhat) obsolete.
131 .PP
132 The
133 .B \-header
134 switch tells
135 .B show
136 to display a one\-line
137 description of the message being shown.  This description includes
138 the folder and the message number.
139 .PP
140 If no `msgs' are specified, the current message is used.  Although
141 it depends on the specific
142 .I showproc
143 or
144 .IR showmimeproc ,
145 in the default setup when more than one message is specified, you
146 will be prompted for a <RETURN> prior to listing each message.
147 Each message will be listed a page at a time, and when the end of
148 page is reached, the program will wait for a <SPACE> or <RETURN>.
149 If a <RETURN> is entered, it will print the next line, whereas
150 <SPACE> will print the next screenful.
151 .PP
152 If the standard output is not a terminal, no queries are made, and
153 each file is listed with a one\-line header and two lines of
154 separation.
155 .PP
156 .RB \*(lq "show \-draft" \*(rq
157 will list the file <mh\-dir>/draft if it
158 exists.
159 .PP
160 If the profile entry \*(lqUnseen\-Sequence\*(rq is present and
161 non\-empty, then
162 .B show
163 will remove each of the messages shown
164 from each sequence named by the profile entry.
165 .SH FILES
166 .fc ^ ~
167 .nf
168 .ta \w'%etcdir%/ExtraBigFileName  'u
169 ^$HOME/\&.mh\(ruprofile~^The user profile
170 .fi
171 .SH "PROFILE COMPONENTS"
172 .fc ^ ~
173 .nf
174 .ta 2.4i
175 .ta \w'ExtraBigProfileName  'u
176 ^Path:~^To determine the user's nmh directory
177 ^Current\-Folder:~^To find the default current folder
178 ^Unseen\-Sequence:~^To name sequences denoting unseen messages
179 ^showproc:~^Program to show text (non-MIME) messages
180 ^showmimeproc:~^Program to show non-text (MIME) messages
181 .fi
182 .SH "SEE ALSO"
183 .IR mhl (1),
184 .IR mhshow (1),
185 .IR next (1),
186 .IR prev (1),
187 .IR scan (1)
188 .SH DEFAULTS
189 .nf
190 .RB ` +folder "' defaults to the current folder"
191 .RB ` msgs "' defaults to cur"
192 .RB ` \-checkmime '
193 .RB ` \-header '
194 .fi
195 .SH CONTEXT
196 If a folder is given, it will become the current folder.  The last
197 message selected will become the current message.
198 .SH BUGS
199 The
200 .B \-header
201 switch doesn't work when `msgs' expands to more than
202 one message.  If the
203 .I showproc
204 is
205 .BR mhl ,
206 then this problem can
207 be circumvented by referencing the \*(lqmessagename\*(rq field in the
208 .B mhl
209 format file.
210 .PP
211 .B Show
212 updates the user's context before showing the message.
213 Hence
214 .B show
215 will mark messages as seen prior to the user actually
216 seeing them.  This is generally not a problem, unless the user relies
217 on the \*(lqunseen\*(rq messages mechanism, and interrupts
218 .B show
219 while it is showing \*(lqunseen\*(rq messages.
220 .PP
221 If your
222 .I showproc
223 is
224 .B mhl
225 (the default), then
226 .B show
227 uses
228 a built\-in
229 .BR mhl :
230 it does not actually run the
231 .B mhl
232 program.
233 Hence, if you define your own
234 .B showproc ,
235 don't call it
236 .B mhl
237 since
238 .B show
239 won't run it.
240 .PP
241 If your
242 .I showproc
243 is the pager
244 .BR more ,
245 then avoid running
246 .B show
247 in the background with only its standard output piped to
248 another process, as in
249 .PP
250 .RS 5
251 show | imprint &
252 .RE
253 .PP
254 Due to a bug in
255 .BR more ,
256 show will go into a \*(lqtty input\*(rq state.
257 To avoid this problem, re\-direct
258 .BR show 's
259 diagnostic output as well.
260 For users of
261 .BR csh :
262 .PP
263 .RS 5
264 show |& imprint &
265 .RE
266 .PP
267 For users of
268 .BR sh :
269 .PP
270 .RS 5
271 show 2>&1 | imprint &
272 .RE