Enabled all groff warnings, with -ww, in manpages test. Fixed a bunch
[mmh] / man / repl.man
1 .\"
2 .\" %nmhwarning%
3 .\"
4 .TH REPL %manext1% "%nmhdate%" MH.6.8 [%nmhversion%]
5 .SH NAME
6 repl \- reply to a message
7 .SH SYNOPSIS
8 .HP 5
9 .na
10 .B repl
11 .RI [ +folder ]
12 .RI [ msgs ]
13 .RB [ \-annotate " | " \-noannotate ] 
14 .RB [ \-group " | " \-nogroup ]
15 .RB [ \-cc
16 all/to/cc/me]
17 .RB [ \-nocc
18 all/to/cc/me]
19 .RB [ \-query " | " \-noquery ]
20 .RB [ \-form
21 .IR formfile ]
22 .RB [ \-format " | " \-noformat ]
23 .RB [ \-filter
24 .IR filterfile ]
25 .RB [ \-inplace " | " \-noinplace ]
26 .RB [ \-mime " | " \-nomime ]
27 .RB [ \-fcc
28 .IR +folder ]
29 .RB [ \-width
30 .IR columns ]
31 .RB [ \-draftfolder
32 .IR +folder ]
33 .RB [ \-draftmessage
34 .IR msg ]
35 .RB [ \-nodraftfolder ]
36 .RB [ \-editor
37 .IR editor ]
38 .RB [ \-noedit ]
39 .RB [ \-whatnowproc
40 .IR program ]
41 .RB [ \-nowhatnowproc ]
42 .RB [ \-build ]
43 .RB [ \-file
44 .IR msgfile ]
45 .RB [ \-version ]
46 .RB [ \-help ]
47 .ad
48 .SH DESCRIPTION
49 .B Repl
50 may be used to produce a reply to an existing message.
51 .PP
52 In its simplest form (with no arguments),
53 .B repl
54 will set up a
55 message\-form skeleton in reply to the current message in the current
56 folder, and invoke the whatnow shell.
57 .PP
58 In order to construct the message draft of the reply,
59 .B repl
60 uses
61 a reply template to guide its actions.  A reply template is simply a
62 .B mhl
63 format file (see
64 .BR mh\-format (5)
65 for details).
66 .PP
67 If the switch
68 .B \-nogroup
69 is given (it is on by default), then
70 .B repl
71 will use the standard forms file \*(lqreplcomps\*(rq.  This will construct
72 a draft message that is intended to be sent only to the author of the
73 message to which you are replying.  If a file named \*(lqreplcomps\*(rq
74 exists in the user's
75 .B nmh
76 directory, it will be used instead of this
77 default forms file.
78 .PP
79 The default reply template \*(lqreplcomps\*(rq will direct
80 .B repl
81 to construct the reply message draft as follows:
82 .PP
83 .RS 5
84 .nf
85 To: <Mail\-Reply\-To> or <Reply\-To> or <From>
86 cc: <To> and <cc> and <personal address>
87 Fcc: {fcc switch} or +outbox
88 Subject: Re: <Subject>
89 In\-Reply\-To: <Message\-Id>
90 References: <Message\-Id>
91 Comments: In\-Reply\-To <From> or <apparently from> or <Sender>
92 .ti +3 
93 message dated <date>
94 --------
95 .fi
96 .RE
97 .PP
98 where field names enclosed in angle brackets (<\ >) indicate the
99 contents of the named field from the message to which the reply is
100 being made.
101 .PP
102 By default, the \*(lqcc:\*(rq field is empty.  You may selectively add
103 addresses to this default with the
104 .B \-cc
105 .I type
106 switch.  This switch takes an
107 argument (
108 .IR all / to / cc / me )
109 which specifies who gets added to the default
110 \*(lqcc:\*(rq list of the reply.  You may give this switch multiple times (with
111 different arguments) if you wish to add multiple types of addresses.
112 .PP
113 If the switch
114 .B \-group
115 is given, then
116 .B repl
117 will use the the
118 standard forms file \*(lqreplgroupcomps\*(rq.  This will construct a
119 draft message that is intended as a group or followup reply.  If a file
120 named \*(lqreplgroupcomps\*(rq exists in the user's nmh directory, it
121 will be used instead of this default forms file.
122 .PP
123 The default group reply template \*(lqreplgroupcomps\*(rq will direct
124 .B repl
125 to construct the reply message draft as follows:
126 .PP
127 .RS 5
128 .nf
129 To: <Mail\-Followup\-To>
130 Subject: Re: <Subject>
131 In\-Reply\-To: Message from <From> of <Date>.
132 .ti +\w'In\-Reply\-To: 'u
133 <Message\-Id>
134 --------
135 .fi
136 .RE
137 .PP
138 or if the field <Mail\-Followup\-To> is not available:
139 .PP
140 .RS 5
141 .nf
142 To: <Mail\-Reply\-To> or <Reply\-To> or <From>
143 cc: <To> and <cc> and <personal address>
144 Subject: Re: <Subject>
145 In\-Reply\-To: Message from <From> of <Date>.
146 .ti +\w'In\-Reply\-To: 'u
147 <Message\-Id>
148 --------
149 .fi
150 .RE
151 .PP
152 By default, the \*(lqcc:\*(rq contains all the addresses shown.  You may
153 selectively remove addresses from this default with the
154 .B \-nocc
155 .I type
156 switch.
157 This switch takes an argument (
158 .IR all / to / cc / me )
159 which specifies who gets removed
160 from the default \*(lqcc:\*(rq list of the reply.  You may give this switch
161 multiple times (with different arguments) if you wish to remove multiple types
162 of addresses.
163 .PP
164 In any case, you may specify an alternate forms file with the switch
165 .B \-form
166 .IR formfile .
167 .PP
168 The
169 .B \-query
170 switch modifies the action of
171 .B \-nocc
172 .I type
173 switch by
174 interactively asking you if each address that normally would be placed in
175 the \*(lqTo:\*(rq and \*(lqcc:\*(rq list should actually be sent a copy.
176 This is useful for special\-purpose replies.  Note that the position of
177 the
178 .B \-cc
179 and
180 .B \-nocc
181 switches, like all other switches which take a
182 positive and negative form, is important.
183 .PP
184 Lines beginning with the fields \*(lqTo:\*(rq, \*(lqcc:\*(rq, and
185 \*(rqBcc:\*(rq will be standardized and have duplicate addresses removed.
186 In addition, the
187 .B \-width
188 .I columns
189 switch will guide
190 .BR repl 's
191 formatting of these fields.
192 .PP
193 If the draft already exists,
194 .B repl
195 will ask you as to the disposition
196 of the draft.  A reply of
197 .B quit
198 will abort
199 .BR repl ,
200 leaving the
201 draft intact;
202 .B replace
203 will replace the existing draft with a blank
204 skeleton; and
205 .B list
206 will display the draft.
207 .PP
208 See
209 .BR comp (1)
210 for a description of the
211 .B \-editor
212 and
213 .B \-noedit
214 switches.  Note that while in the editor, the message being replied
215 to is available through a link named \*(lq@\*(rq (assuming the default
216 .IR whatnowproc ).
217 In addition, the actual pathname of the message is
218 stored in the environment variable
219 .BR $editalt ,
220 and the pathname of
221 the folder containing the message is stored in the environment variable
222 .BR $mhfolder .
223 .PP
224 Although
225 .B repl
226 uses a forms file to direct it how to construct
227 the beginning of the draft, it uses a message filter file to direct
228 it as to how the message to which you are replying should be filtered
229 (re\-formatted) in the body of the draft.  The filter file for
230 .B repl
231 should be a standard form file for
232 .BR mhl ,
233 as
234 .B repl
235 will invoke
236 .B mhl
237 to format the message to which you are replying.
238 .PP
239 The switches
240 .BR \-noformat ,
241 .BR \-format ,
242 and
243 .B \-filter
244 .I filterfile
245 specify
246 which message filter file to use.
247 .PP
248 If the switch
249 .B \-noformat
250 is given (it is the default), then the message
251 to which you are replying is not included in the body of the draft.
252 .PP
253 If the switch
254 .B \-format
255 is given, then a default message filter file
256 is used.  This default message filter should be adequate for most users.
257 This default filter
258 .RI \*(lq mhl.reply \*(rq
259 is:
260 .PP
261 .RS 5
262 .nf
263 %mhl_reply%
264 .fi
265 .RE
266 .PP
267 which outputs each line of the body of the message prefaced with the
268 \*(lq>\*(rq character and a space.
269 .PP
270 If a file named
271 .RI \*(lq mhl.reply \*(rq
272 exists in the user's
273 .B nmh
274 directory,
275 it will be used instead of this form.  You may specify an alternate
276 message filter file with the switch
277 .B \-filter
278 .IR filterfile .
279 .PP
280 Other reply filters are commonly used, such as:
281 .PP
282 .RS 5
283 .nf
284 :
285 body:nocomponent,compwidth=9,offset=9
286 .fi
287 .RE
288 .PP
289 which says to output a blank line and then the body of the message
290 being replied\-to, indented by one tab\-stop.  Another popular format
291 is:
292 .PP
293 .RS 5
294 .nf
295 message-id:nocomponent,\|nonewline,\\
296 formatfield=\*(lqIn message %{text},\ \*(rq
297 from:nocomponent,\|formatfield=\*(lq%(decode(friendly{text})) writes:\*(rq
298 body:component=\*(lq>\*(rq,\|overflowtext=\*(lq>\*(rq,\|overflowoffset=0
299 .fi
300 .RE
301 .PP
302 This message filter file cites the Message-ID and author of the message
303 being replied\-to, and then outputs each line of the body prefaced with
304 the \*(lq>\*(rq character.
305 .PP
306 You can also use an external format program to format the message body.
307 The format program is specified by the
308 .IR formatproc
309 profile entry, and is enabled by the \*(lqformat\*(rq flag.  A message
310 filter using an external format program would look like this:
311 .PP
312 .RS 5
313 .nf
314 body:component=\*(lq>\*(rq,\|nowrap,\|format
315 .fi
316 .RE
317 .PP
318 See the
319 .BR mhl(1)
320 documentation for more information.
321 .PP
322 To use the MIME rules for encapsulation, specify the
323 .B \-mime
324 switch.
325 This directs
326 .B repl
327 to generate an
328 .B mhbuild
329 composition file.
330 Note that
331 .B nmh
332 will not invoke
333 .B mhbuild
334 automatically, unless you
335 add this line to your
336 .I \&.mh\(ruprofile
337 file:
338 .PP
339 .RS 5
340 automimeproc: 1
341 .RE
342 .PP
343 Otherwise, you must specifically give the command
344 .PP
345 .RS 5
346 What now? mime
347 .RE
348 .PP
349 prior to sending the draft.
350 .PP
351 If the
352 .B \-annotate
353 switch is given, the message being replied\-to will
354 be annotated with the lines
355 .PP
356 .RS 5
357 Replied:\ date
358 Replied:\ addrs
359 .RE
360 .PP
361 where the address list contains one line for each addressee.
362 The annotation will be done only if the message is sent directly from
363 .BR repl .
364 If the message is not sent immediately from
365 .BR repl ,
366 .RB \*(lq "comp\ \-use" \*(rq
367 may be used to re\-edit and send the constructed
368 message, but the annotations won't take place.  Normally annotations are
369 done inplace in order to preserve any links to the message.  You may use
370 the
371 .B \-noinplace
372 switch to change this.
373 .PP
374 Although the default template specifies that a copy of the reply will be
375 put in
376 the folder 'outbox',
377 if the
378 .B \-fcc
379 .I +folder
380 switch is given it will override the default value.
381 More than one folder, each preceded by
382 .B \-fcc
383 can
384 be named.
385 .PP
386 In addition to the standard
387 .BR mh\-format (5)
388 escapes,
389 .B repl
390 also recognizes the following additional
391 .I component
392 escape:
393 .PP
394 .RS 5
395 .nf
396 .ta \w'Escape  'u +\w'Returns  'u
397 .I "Escape      Returns Description"
398 fcc     string  Any folders specified with `\-fcc\ folder'
399 .fi
400 .RE
401 .PP
402 To avoid reiteration,
403 .B repl
404 strips any leading `Re: ' strings from
405 the
406 .I subject
407 component.
408 .PP
409 The
410 .B \-draftfolder
411 .I +folder
412 and
413 .B \-draftmessage
414 .I msg
415 switches invoke
416 the
417 .B nmh
418 draft folder facility.  This is an advanced (and highly
419 useful) feature.  Consult the
420 .BR mh-draft (5)
421 man page for more
422 information.
423 .PP
424 Upon exiting from the editor,
425 .B repl
426 will invoke the
427 .B whatnow
428 program.  See
429 .BR whatnow (1)
430 for a discussion of available
431 options.  The invocation of this program can be inhibited by using the
432 .B \-nowhatnowproc
433 switch.  (In truth of fact, it is the
434 .B whatnow
435 program which starts the initial edit.  Hence,
436 .B \-nowhatnowproc
437 will
438 prevent any edit from occurring.)
439 .PP
440 The
441 .B \-build
442 switch is intended to be used by the Emacs mh-e interface
443 to
444 .BR nmh .
445 It implies
446 .BR \-nowhatnowproc .
447 It causes a file
448 .I <mh\-dir>/reply
449 to be created, containing the draft message that would normally be presented
450 to the user for editing.
451 No mail is actually sent.
452 .PP
453 The
454 .B \-file
455 .I msgfile
456 switch specifies the message to be replied to as an 
457 exact filename rather than as an
458 .B nmh
459 folder and message number. It is 
460 intended to be used by the
461 .B msh
462 interface to
463 .BR nmh . 
464 The same caveats apply to this option as to the
465 .B \-build
466 switch.
467
468 .SH FILES
469 .fc ^ ~
470 .nf
471 .ta \w'%etcdir%/ExtraBigFileName  'u
472 ^%etcdir%/replcomps~^The standard reply template
473 ^or <mh\-dir>/replcomps~^Rather than the standard template
474 ^%etcdir%/replgroupcomps~^The standard `reply -group' template
475 ^or <mh\-dir>/replgroupcomps~^Rather than the standard template
476 ^%etcdir%/mhl.reply~^The standard message filter
477 ^or <mh\-dir>/mhl.reply~^Rather than the standard filter
478 ^$HOME/\&.mh\(ruprofile~^The user profile
479 ^<mh\-dir>/draft~^The draft file
480 .fi
481
482 .SH "PROFILE COMPONENTS"
483 .fc ^ ~
484 .nf
485 .ta 2.4i
486 .ta \w'ExtraBigProfileName  'u
487 ^Path:~^To determine the user's nmh directory
488 ^Alternate\-Mailboxes:~^To determine the user's mailboxes
489 ^Current\-Folder:~^To find the default current folder
490 ^Draft\-Folder:~^To find the default draft\-folder
491 ^Editor:~^To override the default editor
492 ^Msg\-Protect:~^To set mode when creating a new message (draft)
493 ^fileproc:~^Program to refile the message
494 ^mhlproc:~^Program to filter message being replied\-to
495 ^whatnowproc:~^Program to ask the \*(lqWhat now?\*(rq questions
496 .fi
497
498 .SH "SEE ALSO"
499 mhbuild(1), comp(1), forw(1), send(1), whatnow(1), mh\-format(5)
500
501 .SH DEFAULTS
502 .nf
503 .RB ` +folder "' defaults to the current folder"
504 .RB ` msg "' defaults to cur"
505 .RB ` \-nogroup '
506 .RB ` "\-nocc\ all" "' with `\-nogroup', `\-cc\ all' with `\-group'"
507 .RB ` \-noannotate '
508 .RB ` \-nodraftfolder '
509 .RB ` \-noformat '
510 .RB ` \-inplace '
511 .RB ` \-nomime '
512 .RB ` \-noquery '
513 .RB ` "\-width\ 72" '
514 .fi
515
516 .SH CONTEXT
517 If a folder is given, it will become the current folder.  The message
518 replied\-to will become the current message.
519
520 .SH BUGS
521 If any addresses occur in the reply template, addresses in the template
522 that do not contain hosts are defaulted incorrectly.  Instead of using
523 the localhost for the default,
524 .B repl
525 uses the sender's host.
526 Moral of the story: if you're going to include addresses in a reply
527 template, include the host portion of the address.
528 .PP
529 The
530 .B \-width
531 .I columns
532 switch is only used to do address-folding; other
533 headers are not line\-wrapped.
534 .PP
535 If
536 .I whatnowproc
537 is
538 .BR whatnow ,
539 then
540 .B repl
541 uses a built\-in
542 .BR whatnow ,
543 it does not actually run the
544 .B whatnow
545 program.
546 Hence, if you define your own
547 .IR whatnowproc ,
548 don't call it
549 .B whatnow
550 since
551 .B repl
552 won't run it.
553 .PP
554 If your current working directory is not writable, the link named
555 \*(lq@\*(rq is not available.