Support for the new world format API for comp and forw.
[mmh] / man / msh.man
1 .TH MSH %manext1% "November 6, 2012" "%nmhversion%"
2 .\"
3 .\" %nmhwarning%
4 .\"
5 .SH NAME
6 msh \- nmh shell (and BBoard reader)
7 .SH SYNOPSIS
8 .HP 5
9 .na
10 .B msh
11 .RB [ \-prompt
12 .IR string ]
13 .RB [ \-scan " | " \-noscan ]
14 .RB [ \-topcur " | " \-notopcur ]
15 .RI [ file ]
16 .RB [ \-version ]
17 .RB [ \-help ]
18 .ad
19 .SH DESCRIPTION
20 .B msh
21 is an interactive program that implements a subset of the normal
22 .B nmh
23 commands operating on a single file in
24 .BR packf 'd format.
25 That is,
26 .B msh
27 is used to read a file that contains a number
28 of messages, as opposed to the standard
29 .B nmh
30 style of reading
31 a number of files, each file being a separate message in a folder.
32 .BR msh 's
33 chief advantage is that the normal
34 .B nmh
35 style does not
36 allow a file to have more than one message in it.  Hence,
37 .B msh
38 is
39 ideal for reading BBoards, as these files are delivered by the
40 transport system in this format.  In addition,
41 .B msh
42 can be used on
43 other files, such as message archives which have been
44 .BR pack ed
45 (see
46 .IR packf (1)).
47 Finally,
48 .B msh
49 is an excellent
50 .B nmh
51 tutor.
52 As the only commands available to the user are
53 .B nmh
54 commands, this
55 allows
56 .B nmh
57 beginners to concentrate on how commands to
58 .B nmh
59 are formed and (more or less) what they mean.
60 .PP
61 When invoked,
62 .B msh
63 reads the named file, and enters a command loop.
64 The user may type most of the normal
65 .B nmh
66 commands.  The syntax and
67 semantics of these commands typed to
68 .B msh
69 are identical to their
70 .B nmh
71 counterparts.  In cases where the nature of
72 .B msh
73 would be
74 inconsistent (e.g., specifying a
75 .I +folder
76 with some commands),
77 .B msh
78 will duly inform the user.  The commands that
79 .B msh
80 currently supports
81 (in some slightly modified or restricted forms) are:
82 .PP
83 .RS 5
84 .nf
85 ali
86 burst
87 comp
88 dist
89 folder
90 forw
91 inc
92 mark
93 mhmail
94 mhn
95 msgchk
96 next
97 packf
98 pick
99 prev
100 refile
101 repl
102 rmm
103 scan
104 send
105 show
106 sortm
107 whatnow
108 whom
109 .fi
110 .RE
111 .PP
112 In addition,
113 .B msh
114 has a
115 .B help
116 command which gives a
117 brief overview.  To terminate
118 .BR msh ,
119 type CTRL\-D, or use the
120 .B quit
121 command.
122 .PP
123 If the file is writable and has been modified, then using
124 .B quit
125 will query the user if the file should be updated.
126 .PP
127 The
128 .B \-prompt
129 .I string
130 switch sets the prompting string for
131 .BR msh .
132 .PP
133 You may wish to use an alternate
134 .B nmh
135 profile for the commands that
136 .B msh
137 executes; see
138 .IR mh-profile (5)
139 for details about the
140 .B $MH
141 environment variable.
142 .PP
143 The
144 .B exit
145 command is identical to the
146 .B quit
147 command in
148 .BR msh .
149 .PP
150 .B msh
151 supports an output redirection facility.  Commands may be
152 followed by one of
153 .PP
154 .RS 5
155 .nf
156 .ta \w'| \fIcommand\fR  'u
157 ^> \fIfile\fR~^write output to \fIfile\fR
158 ^>> \fIfile\fR~^append output to \fIfile\fR
159 ^| \fIcommand\fR~^pipe output to UNIX \fIcommand\fR
160 .fi
161 .RE
162 .PP
163 If
164 .I file
165 starts with a \*(lq\~\*(rq (tilde), then a
166 .BR csh \-like
167 expansion
168 takes place.  Note that
169 .I command
170 is interpreted by
171 .BR sh .
172 Also note that
173 .B msh
174 does NOT support history substitutions, variable
175 substitutions, or alias substitutions.
176 .PP
177 When parsing commands to the left of any redirection symbol,
178 .B msh
179 will honor `\\' (backslash) as the quote next\-character symbol, and
180 `\*(lq' (double\-quote) as quote\-word delimiters.  All other input tokens
181 are separated by whitespace (spaces and tabs).
182 .SH FILES
183 .fc ^ ~
184 .nf
185 .ta \w'%etcdir%/ExtraBigFileName  'u
186 ^$HOME/\&.mh\(ruprofile~^The user profile
187 ^%etcdir%/mts.conf~^nmh mts configuration file
188 .fi
189 .SH "PROFILE COMPONENTS"
190 .fc ^ ~
191 .nf
192 .ta 2.4i
193 .ta \w'ExtraBigProfileName  'u
194 ^Path:~^To determine the user's nmh directory
195 ^Msg\-Protect:~^To set mode when creating a new `file'
196 ^fileproc:~^Program to file messages
197 ^showproc:~^Program to show messages
198 .fi
199 .SH "SEE ALSO"
200 .IR packf (1)
201 .SH DEFAULTS
202 .nf
203 .RB ` file "' defaults to \*(lq./msgbox\*(rq"
204 .RB ` "\-prompt\ (msh)\ "'
205 .RB ` \-noscan '
206 .RB ` \-notopcur '
207 .fi
208 .SH CONTEXT
209 None
210 .SH BUGS
211 .PP
212 There is a strict limit of messages per file in
213 .BR packf 'd
214 format which
215 .B msh
216 can handle.  Usually, this limit is 1000 messages.
217 .PP
218 Please remember that
219 .B msh
220 is not the C\-Shell, and that a lot of
221 the nice facilities provided by the latter are not present in the former.
222 .PP
223 In particular,
224 .B msh
225 does not understand backquoting, so the only
226 effective way to use
227 .B pick
228 inside
229 .B msh
230 is to always use the
231 .B \-seq
232 .I select
233 switch.  Clever users of
234 .B nmh
235 will put the line
236 .P
237 .RS 5
238 pick:\0\-seq\0select\0\-list
239 .RE
240 .PP
241 in their
242 .I \&.mh\(ruprofile
243 file so that
244 .B pick
245 works equally well from both the shell and
246 .BR msh .
247 .PP
248 .B sortm
249 always uses
250 .B \-noverbose
251 and if
252 .B \-textfield
253 .I field
254 is used,
255 .B \-limit
256 .IR 0 .
257 .PP
258 The
259 .B msh
260 program inherits most (if not all) of the bugs from the
261 .B nmh
262 commands it implements.