MSH(1)		      [mh.6] (MH.6.8)			MSH(1)

     NAME
	  msh -	MH shell (and BBoard reader)

     SYNOPSIS
	  msh [-prompt string] [-scan] [-noscan] [-topcur] [-notopcur]
	       [file] [-help]

     DESCRIPTION
	  msh is an interactive	program	that implements	a subset of
	  the normal MH	commands operating on a	single file in packf'd
	  format.  That	is, msh	is used	to read	a file that contains a
	  number of messages, as opposed to the	standard MH style of
	  reading a number of files, each file being a separate
	  message in a folder.	msh's chief advantage is that the
	  normal MH style does not allow a file	to have	more than one
	  message in it.  Hence, msh is	ideal for reading BBoards, as
	  these	files are delivered by the transport system in this
	  format.  In addition,	msh can	be used	on other files,	such
	  as message archives which have been packed (see packf	(1)).
	  Finally, msh is an excellent MH tutor.  As the only commands
	  available to the user	are MH commands, this allows MH
	  beginners to concentrate on how commands to MH are formed
	  and (more or less) what they mean.

	  When invoked,	msh reads the named file, and enters a command
	  loop.	 The user may type most	of the normal MH commands.
	  The syntax and semantics of these commands typed to msh are
	  identical to their MH	counterparts.  In cases	where the
	  nature of msh	would be inconsistent (e.g., specifying	a
	  `+folder' with some commands), msh will duly inform the
	  user.	 The commands that msh currently supports (in some
	  slightly modified or restricted forms) are:

	       ali
	       burst
	       comp
	       dist
	       folder
	       forw
	       inc
	       mark
	       mhmail
	       msgchk
	       next
	       packf
	       pick
	       prev
	       refile
	       repl
	       rmm
	       scan
	       send

     Page 1					     (printed 9/30/94)

     MSH(1)		      [mh.6] (MH.6.8)			MSH(1)

	       show
	       sortm
	       whatnow
	       whom

	  In addition, msh has a help command which gives a brief
	  overview.  To	terminate msh, type CTRL-D, or use the quit
	  command.  If msh is being invoked from bbc, then typing
	  CTRL-D will also tell	bbc to exit as well, while using the
	  quit command will return control to bbc, and bbc will
	  continue examining the list of BBoards that it is scanning.

	  If the file is writable and has been modified, then using
	  quit will query the user if the file should be updated.

	  The `-prompt string' switch sets the prompting string	for
	  msh.

	  You may wish to use an alternate MH profile for the commands
	  that msh executes; see mh-profile (5)	for details about the
	  $MH envariable.

	  When invoked from bbc, two special features are enabled:
	  First, the `-scan' switch directs msh	to do a	`scan unseen'
	  on start-up if new items are present in the BBoard.  This
	  feature is best used from bbc, which correctly sets the
	  stage.  Second, the mark command in msh acts specially when
	  you are reading a BBoard, since msh will consult the
	  sequence unseen in determining what messages you have
	  actually read.  When msh exits, it reports this information
	  to bbc.  In addition,	if you give the	mark command with no
	  arguments, msh will interpret	it as
	  `mark	-sequence unseen -delete -nozero all' Hence, to
	  discard all of the messages in the current BBoard you're
	  reading, just	use the	mark command with no arguments.

	  Normally, the	exit command is	identical to the quit command
	  in msh.  When	run under bbc however, exit directs msh	to
	  mark all messages as seen and	then quit.  For	speedy
	  type-in, this	command	is often abbreviated as	just e.

	  When invoked from vmh, another special feature is enabled:
	  The `topcur' switch directs msh to have the current message
	  track	the top	line of	the vmh	scan window.  Normally,	msh
	  has the current message track	the center of the window
	  (under `-notopcur', which is the default).

	  msh supports an output redirection facility.	Commands may
	  be followed by one of

	       > file	  write	output to file
	       >> file	  append output	to file

     Page 2					     (printed 9/30/94)

     MSH(1)		      [mh.6] (MH.6.8)			MSH(1)

	       | command  pipe output to UNIX command

	  If file starts with a	`~' (tilde), then a csh-like expansion
	  takes	place.	Note that command is interpreted by sh (1).
	  Also note that msh does NOT support history substitutions,
	  variable substitutions, or alias substitutions.

	  When parsing commands	to the left of any redirection symbol,
	  msh will honor `\' (back-slash) as the quote next-character
	  symbol, and `"' (double-quote) as quote-word delimiters.
	  All other input tokens are separated by whitespace (spaces
	  and tabs).

     FILES
	  $HOME/.mh_profile		      The user profile
	  /usr/local/lib/mh/mtstailor	      tailor file

     PROFILE COMPONENTS
	  Path:		       To determine the	user's MH directory
	  Msg-Protect:	       To set mode when	creating a new `file'
	  fileproc:	       Program to file messages
	  showproc:	       Program to show messages

     SEE ALSO
	  bbc(1)

     DEFAULTS
	  `file' defaults to ./msgbox
	  `-prompt (msh) '
	  `-noscan'
	  `-notopcur'

     CONTEXT
	  None

     BUGS
	  The argument to the `-prompt'	switch must be interpreted as
	  a single token by the	shell that invokes msh.	 Therefore,
	  one must usually place the argument to this switch inside
	  double-quotes.

	  There	is a strict limit of messages per file in packf'd
	  format which msh can handle.	Usually, this limit is 1000
	  messages.

	  Please remember that msh is not the CShell, and that a lot
	  of the nice facilities provided by the latter	are not
	  present in the former.

	  In particular, msh does not understand back-quoting, so the
	  only effective way to	use pick inside	msh is to always use
	  the `-seq select' switch.  Clever users of MH	will put the

     Page 3					     (printed 9/30/94)

     MSH(1)		      [mh.6] (MH.6.8)			MSH(1)

	  line

	       pick: -seq select -list

	  in their .mh_profile file so that pick works equally well
	  from both the	shell and msh.

	  sortm	always uses -noverbose and if -textfield field is
	  used,	-limit 0.

	  The msh program inherits most	(if not	all) of	the bugs from
	  the MH commands it implements.

     Page 4					     (printed 9/30/94)