[comp.sources.unix] v18i040: Mail user's shell version 6.4, Part18/19

rsalz@bbn.com (Rich Salz) (03/18/89)

Submitted-by: Dan Heller <island!argv@sun.com>
Posting-number: Volume 18, Issue 40
Archive-name: mush6.4/part18



#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 18 (of 19)."
# Contents:  mush.1.2
# Wrapped by rsalz@papaya.bbn.com on Mon Mar 13 19:25:24 1989
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'mush.1.2' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'mush.1.2'\"
else
echo shar: Extracting \"'mush.1.2'\" \(49816 characters\)
sed "s/^X//" >'mush.1.2' <<'END_OF_FILE'
X.sp
X.nf
X.ti +2
Xalias dan dheller@cory.berkeley.edu island!argv@sun.com
X.fi
X.sp
XThis defines the name \*Qdan\*U to be shorthand for two addresses,
Xboth of which happen to be Dan Heller.
X.sp
XThe command
X.B unalias
Xcan be used to remove an alias definition.
X.sp
XWith no arguments,
X.B alias
Xprints out all the current aliases.
XWith one argument, it prints the list associated with that name,
Xand with more than one argument, it creates a new alias.
X.TP
X.BR alternates " [host-list] [!path!login] [*]"
X.RB ( alts )
XThis command
Xis useful if you have accounts on several machines.
XIt can be used to inform
X.I Mush
Xthat your login name at each of the listed hosts is really you.
XWhen you
X.B reply
Xto messages,
X.I Mush
Xwill not send a copy of the message to your login name at any of the
Xhosts listed on the
X.B alternates
Xlist.  If the special symbox \*Q*\*U is used, then your login name is
Xmatched against all pathnames and local addresses.
X.sp
XIf you have another login name on the local or remote machine, then
Xthat login may be specified by preceding the login name or the path
Xto the login name by a `!' character.
X.sp
XFor example,
X.sp
X.nf
X.ti +2
Xalts island maui molokai ceylon !cory.berkeley.edu!dheller !root
X.fi
X.sp
Xare all either hostnames or pathnames to my other accounts.
XThe last item, \*Q!root\*U will match root that is only destined for my
Xworkstation.
XRoot accounts elsewhere are not considered to be me.
X.sp
XIf the
X.B alternates
Xcommand is given with no arguments, the current set of alternate
Xnames is displayed.
X.TP
X.BR bind " [string [command [parameters]]]"
X.ns
X.TP
X.BR unbind " string"
X.rs
XBind the sequence of keystrokes specified by
X.I string
Xto the curses-mode function,
X.IR command .
XThe
X.I string
Xis usually one or two characters, or a sequence sent by
Xone of the \*Qfunction keys\*U of a particular terminal.
XSee the CURSES INTERFACE section for a complete list of curses-mode
Xfunctions; this interface is not available on all systems.
XThe
X.I parameters
Xare currently recognized only for the special
X.B macro
Xfunction; see the
X.B bind-macro
Xcommand for details.
X.sp
XIf no arguments are given to
X.BR bind ,
Xthe current set of curses bindings are listed;
Xif only a
X.I string
Xargument is given, the binding for that string is listed;
Xand if both a
X.I string
Xand a
X.I command
Xare given, a curses binding is created such that when the
X.I string
Xis typed in curses mode, the function specified by
X.I command
Xwill be executed.
X.sp
XBindings can be removed by using the
X.B unbind
Xcommand.
X.TP
X.BR bind-macro " [string [expansion]]"
XThis command is an abbreviation, which invokes the
X.B bind
Xcommand with the special function
X.B macro
Xas the second argument.
XThe effect of binding a curses macro is that whenever the
X.I string
Xis typed in curses mode, the effect is the same as if the
X.I expansion
Xhad been typed instead.
XA special sytax is provided for including non-printing (control)
Xcharacters in both the
X.I string
Xand the
X.IR expansion ;
Xsee the CURSES INTERFACE section and the MACROS section for details.
X.sp
XIf no arguments are given,
X.B bind-macro
Xwill list the current curses mode macros.
XIt is otherwise identical to
X.in +4
X.B bind
X.I string
X.B macro
X.IR expansion .
X.in -4
X.TP
X.B cd
XChange the working directory to that specified, if given.
XIf no directory is given, then changes to the user's home directory.
X.TP
X.BR cmd " [name [command]]"
X.ns
X.TP
X.BR uncmd " name"
X.rs
XCommand line aliases are set and unset using these commands.
XMore extensive information is given in the LINE-MODE INTERFACE section.
X.B Uncmd
Xmay take `*' as an argument to uncmd everything set.
X.TP
X.BR debug " [N]"
XSet debugging level to N (1 by default).
XWhen in debug mode, the user can see some of the flow of
Xcontrol the program makes while executing.
XThe intent of the debug level is for tracking down
Xbugs with the program at specific locations.
XOccasionally, the program may segmentation fault and core dump.
XWhen this happens, the user can reenter the program,
Xset the debugging level and recreate the problem.
X.sp
XIf the user suspects memory allocation problems, a debugging
Xlevel of 2 or higher will prevent memory from being freed so that
Xmemory bounds won't get overwritten.
X.sp
XIf the user suspects sendmail errors,
Xa debugging level of 3 or higher will prevent sendmail from starting
Xand outgoing mail is directed to the standard output instead of actually
Xbeing sent.
X.TP
X.BR delete / undelete
X.RB ( d / u )
XTakes a message list as argument and marks them all as deleted.
XDeleted messages will not be saved in
X.IR mbox ,
Xnor will they be available for most other commands.
XIf the folder has not been updated, deleted messages can be recovered
Xwith
X.BR undelete .
X.TP
X.B dt
XDeletes the current message and prints the next message.
X.TP
X.BR echo " [-n] [-h | -p] arguments"
XEchoes all the arguments given on the command line, expanding variables
Xand history references.  If the -n flag is given, then no newline is appended.
XIf the -h flag is given, then echo looks for formatting parameters
Xas if the "from" command were given on the "current" message.
XIf the -p flag is given, then echo looks for formatting parameters
Xas if your prompt were changed temporarily.
X.sp
XExamples:
X.sp
X.nf
X.ti +2
Xecho -h This message is from %a and is dated %d.
X.br
Xmight produce:
X.ti +2
XThis message is from island!argv and is dated Dec 14, 1988.
X.sp
X.ti +2
Xecho -p There are %n new messages to read in %f.
X.br
Xmight produce:
X.ti +2
XThere are 5 new messages to read in /usr/spool/mail/argv.
X.fi
X.sp
XNote that -h and -p cannot be specified together.
X.TP
X.B edit
X.RB ( e ,
X.BR v )
XThis function lets you edit messages in your folder.  When editing messages,
Xbe careful not to remove certain message headers such as Date or From or
Xany others that looks important.  If you remove or change something you
Xshouldn't have, you will be notified and the temporary file used to edit
Xthe message will not be removed.
X.TP
X.BR eval " arg ..."
XAs in most shells, the list of arguments to
X.B eval
Xis re-parsed and then executed as a command.
XThis is useful primarily for causing multiple levels of variable expansion.
X.TP
X.B exit
X.RB ( x )
XReturns immediately to the login shell without
Xmodifying the current folder or system spool directory.
X.TP
X.BR expand " alias-list"
XAliases, given as arguments, are expanded as they would be if you
Xwere to send mail to each.
X.TP
X.BR fkey " [string [command]]"
X.ns
X.TP
X.BR unfkey " string"
X.rs
XWith no arguments,
X.B fkey
Xprints the values of the function keys.
XThe function keys are used in the graphics tool mode only.
XYou can set the values of function keys explicitly using the
X.B fkey
Xcommand, but the whole process is automated by using the function key
Xinterface provided by the graphics mode.
XBy default, the last key in each function key pad displays
Xthe values of all the function keys in that set.
XThere are the left, right and top set of keys.
X.sp
XFunction keys may be unset with the
X.B unfkey
Xcommand, or by using the function key interface.
X.TP
X.BR flags " [msg-list] [ [ + | \- ] [ D N O P R r S U ] ]"
XThis command modifies the flag bits set on the listed messages.
XIt should not normally be needed, but is provided to allow users, through
Xthe
X.B cmd
Xfacility, to alter the ways that certain conditions are recorded.
XMultiple flag bits may be set or modified at once.
XThe modifiable flag bits are:
X.sp
X.nf
X.ta 2i
X.in +4
XD	deleted
XN	new
XO	old
XP	preserved
XR	read
Xr	replied-to
XS	saved
XU	unread
X.in -4
X.fi
X.sp
XIf a `+' or `\-' precedes the list of bits, the specified bits are turned
Xon or off respectively, without modifying other bits.
XIf no `+' or `\-' is given, then the list of bits is set explicitly and
Xall other bits are lost.
X.sp
XMessage lists can be piped to the
X.B flags
Xcommand; for example, you may use
X.sp
X.nf
X.ti +4
Xcmd r 'reply \\!* | flags + r'
X.fi
X.sp
Xto mark as
X.I replied-to
Xall messages included in a reply,
X.TP
X.BR folder " [\-N] [\-r] [!] [ %[user] | # | & | file ]"
X.RB ( fo )
XChange current folder.
XWith no arguments, prints the name of the current folder.
XThe arguments are:
X.nf
X.ta 1i
X.in +2
X\-N	No headers are displayed upon entering new folder
X\-r	Set Read-Only mode (can't alter new folder)
X!	If specified, the current folder is not updated
X%[user]	Change to /usr/spool/mail/[user] (default is yours)
X#	Switch back to the previous folder
X&	Change folder to $mbox (default is ~/mbox)
X.in -2
X.fi
X.sp
XThis command can only appear in a pipeline if it is the first command;
Xit returns a list of all the messages in the new folder.
X.TP
X.B folders
XList the names of the folders in your folder directory.
XYour folder directory is the directory
X.I Mail
Xin your home directory.
XOr, you can set the variable
X.B folder
Xto specify another folder directory.
X.br
X.TP
X.BR from " [ + | \- ]"
X.RB ( f )
XWith no arguments,
X.I from
Xwill print the current message's header.
XIf given a message list,
X.I from
Xwill print the headers of those messages that are in the list.
X.sp
XThe special arguments `\-' and `+' can be given to move the
Xcurrent message pointer to the previous or next message,
Xrespectively, while also printing that message's header.
XIf a message list was given in addition to `\-' or `+', then
Xthe current message pointer will be set to the first or last
Xmessage, respectively, in the message list given.
XExamples:
X.sp
X.ti +2
Xpick \-f Dan | from +
X.sp
Xwill print the headers of all messages that contain \*QDan\*U in
Xin the author's name and set the current message pointer to
Xthe last one of that kind in the list.
X.sp
X.ti +2
Xfrom \- 10-30 {16}
X.sp
Xwill print the headers of messages 10 through 30 except for
Xmessage 16 and set the current message pointer to 10.
X.sp
X.ti +2
Xfrom +
X.sp
Xwill print the header of the message after the current message
Xand increment the current message pointer to the next message.
X.sp
X.ti +2
Xfrom $
X.sp
Xwill print the last message's header and not move the current
Xmessage pointer.
X.TP
X.BR headers " [ [\-H][:c] ] [ + | \- ]"
X.RB ( h ,
X.BR z )
XPrints a screenful of message headers listed in the
Xcurrent folder.
XIf a message number is given on the command line,
Xthe first message of the screenful of messages will be
Xthat message number.
XThe `z' command is identical to the \*Qh +\*U
Xcommand and remains for compatibility reasons.
XThe variable
X.B screen
Xmay be set to tell how many headers are in a screenful.
XIn the graphics tool mode, the variable
X.B screen_win
Xcontains the number of headers used in the headers subwindow.
X.sp
XA typical header may look like:
X.sp
X.ti +2
X5 >N  argv@spam.istc.sri.com Feb 19, (10/278) Test
X.sp
XThis line indicates that it is message number 5 and the
X.I >
Xindicates that the \*Qcurrent message pointer\*U is pointing to this
Xmessage.
XThe next two positions indicate the message status.
XThe first
Xmay be one of, \*QN\*U (new and unread), \*QU\*U (old, but still
Xunread), \*Q*\*U (deleted), \*QS\*U (saved), \*QP\*U (preserved),
Xor \*Q \*U (read).
XThe second position may have an \*Qr\*U if the message
Xhas been replied to.
X.sp
XThe author of the example message header is
X.IR argv@spam.istc.sri.com ,
Xthe date is
X.IR "Feb 19" ,
Xthe number of lines in the message is
X.IR 10 ,
Xthe number of characters is
X.I 278
Xand the subject of the message is
X.IR Test .
XThe format of the message header shown here is described by
Xthe string variable
X.BR hdr_format .
XThe example given above has a hdr_format of
X.sp
X.ti +2
Xset hdr_format = "%25f %7d (%l/%c) %25s"
X.sp
XSee the description of
X.B hdr_format
Xin the VARIABLES section for more information on header formats.
X.sp
XYou can print a special subset of message headers by using the
X.I \-H:c
Xoption, where `c' is one of:
X.nf
X.in +2
X.ta 1i
X.if t .ta 1.5i
Xa       all messages
Xd       deleted messages
Xn       new messages
Xo       old messages
Xr       replied to messages
Xs       saved messages
Xu       unread messages
X.fi
X.in -2
XNote that the \-H is not required; \*Qheaders :c\*U is valid.
X.sp
XMore options to the
X.B headers
Xcommand include
X.RI ` + '
Xand
X.RI ` \- '.
XEach will print the next or previous screenful of message headers.
XThe
X.B z
Xcommand can also be used; `z' alone will print the next
Xscreenful (thus, the `+' is optional)
Xand \*Qz \-\*U is equivalent to \*Qh \-\*U.
X.sp
XHeaders affects all the messages it displays, so piping may be done
Xfrom the headers command.
XPiping to the headers command causes the
Xmessage headers affected by the previous command to be printed.
XThis action is identical to piping to the
X.B from
Xcommand.
X.TP
X.BR help " [topic]"
XHelp is provided on a per topic basis and on a general basis.
XFor general help, just typing
X.I help
Xwill provide some general information as to how to get further help
Xand a list of topics suggested for more specific help.
XThere is also help provided for each command by using the \-?
Xoption to most commands.
XThis option will provide command line usage information as well as a
Xdescription of what the command does and how to use it.
X.TP
X.BR history " [\-h] [\-r] [N]"
XThis command displays the command history in chronological order; early
Xcommands are printed first followed by more recent commands displayed last.
XOption
X.I \-h
Xsuppresses printing of history event numbers with each history command.
XOption
X.I \-r
Xreverses the order of the history events displayed.
X.sp
XIf a number
X.I N
Xis given, then that number of previous commands is
Xechoed rather than the number set by the variable
X.BR history .
X.TP
X.BR ignore / unignore " [header-list]"
XDisplay or set a list of headers to be ignored when displaying messages.
XWhen reading messages, all the message headers are displayed with the text
Xbody of the message.
XSince these message identifier fields are cumbersome and uninteresting
Xin many cases, you can filter out unwanted headers by using this command.
XFor example,
X.sp
X.ti +2
Xignore Received Date Message-Id
X.sp
Xwill ignore the three specified fields.
XThe command
X.B unignore
Xis used to reverse the effects of
X.BR ignore .
X.TP
X.BR lpr " [\-Pname] [msg_list]"
XTakes a message list and sends those messages, one by one, to the printer,
Xeach separated by page feeds.
XA default printer name is supplied if one is not specified on the
Xcommand line (-Pprinter-name).
XIf you have the variable
X.B printer
Xset, that printer name will be used.
X.sp
XIf the variable
X.B print_cmd
Xis set, the command described by that variable will be used instead
Xof the default system command.
XIn such cases, the -P option and the
X.B printer
Xvariable are ignored and the command is simply executed as is.
X.TP
X.BR ls " [flags]"
XThis command duplicates the
X.IR UNIX (TM)
Xcommand
X.I /bin/ls.
XThe variable
X.B lister
Xdescribes flags to be passed to ls automatically.
XBy default,
X.I ls
Xalways uses the -C flag (column output).
X.TP
X.BR mail " [flags] [recipient ...]"
X.RB ( m )
XSend mail to a list of users.
XIf no recipient list is specified on the
X.I Mush
Xcommand line, then a \*QTo: \*U prompt will request one.
XA list of recipients must be supplied.
XThis implementation of
X.I Mush
Xsupports mailing to files and programs as recipients, but at least one
Xlegitimate user must be specified.
XFilenames must be full pathnames, thus, they must start with a `/' or there
Xis no way to know whether a recipient is a pathname or a real user.
XThe special characters `+' and `~' may precede pathnames since they are
Xexpanded first to the user's folder directory (+), as described by the variable
X.BR folder ,
Xand the user's home directory (~).
XMailing to programs is indicated by the pipe `|' character preceding the
Xprogram name.
XSince the user's path is searched, full pathnames are not required for
Xprograms that lie in the user's PATH environment variable.
X.sp
XExample:
X.sp
X.ti +2
Xmail username, /path/to/filename, "|program_name", +folder_name, ~user/mbox
X.sp
XOptions are:
X.nf
X.in +2
X.if n .ta 1.5i
X.if t .ta 1.8i
X\-b addr-list	set list of blind carbon recipients
X\-c addr-list	set list of carbon copy recipients
X\-e	immediately enter editor (autoedit)
X\-F	add random fortune to the end of message
X\-f [msg-list]	forward msg_list (not indented)
X\-h [msg-list]	include msg_list with headers
X\-i [msg-list]	include msg_list into letter
X\-s [subject]	prompt for subject [set subject explicitly]
X\-v	verbose (passed to mail delivery program)
X.in -2
X.fi
X.sp
XThe verbose option may not be available depending on the mail transport
Xagent on your system.
X.sp
XThe \-e flag causes you to enter the editor described by the variable
X.BR visual .
X.sp
XThe \-i flag will include the current message into the body of the
Xmessage you are about to send.
XThe included message is indented by
Xthe string \*Q> \*U or by the string described by the variables
X.BR indent_str ,
X.BR pre_indent_str ,
Xand
X.BR post_indent_str .
XSee the VARIABLES section for more information on these string values.
XIf a message list is given after the \-i option, then the messages
Xdescribed by that list are included.
XThe \-h option is identical to the \-i option except that the headers of
Xthe message are also included.
X.sp
XThe \-s flag looks at the next argument and sets the subject to that
Xstring.
XIf the string is to contain spaces, enclose the entire subject
Xin quotes.
XIf there is no following argument, then the subject will
Xbe prompted for.
XThis flag is useful if the user:
X.sp
X.in +2
X.nf
X\(bu does not have the variable \fBask\fR set, or
X\(bu wishes to change the subject used with \fBreply\fR
X.in -2
X.fi
X.sp
XThe subject is not prompted for and is ignored completely if the \-f flag
Xis specified (see below).
X.sp
XThe \-f flag is for message forwarding only.
XAn optional message list can be given just as the -i option has.
XThe forward option does not allow you to edit the message(s) being forwarded
Xunless the -e flag is also specified.
XThe subject of the message (if available) is the same as the \fIcurrent\f
Xmessage; it is not necessarily the subject of the message being forwarded.
XThe subject of forwarded mail cannot be changed.
XHowever, using the \-e flag
Xwill allow the user to change the subject once in editing mode using the
Xescape sequence, \*Q~s\*U.
X.sp
XForwarded mail that has not been edited by the user will contain special
Xheaders such as
X.sp
X.ti +2
XResent-To:
X.ti +2
XResent-From:
X.sp
Xand perhaps others, depending on your mail transport agent.
XSendmail, for example, may add a number of other \*QResent-*\*U headers.
X.TP
X.BR map [ ! "] [string [expansion]]"
X.ns
X.TP
X.BR unmap [ ! "] string"
X.rs
XThe
X.B map
Xcommand creates or lists macros for the line mode interface, and the
X.B map!
Xcommand creates or lists macros for the message composition mode.
XIn either mode, macros act in such a way that, when
X.I string
Xis typed, the effect is the same as if
X.I expansion
Xhad been typed instead.
XThe
X.I string
Xis usually one or two control characters, or a sequence sent by
Xone of the \*Qfunction keys\*U of a particular terminal.
XSee the MACROS section for the syntax used to specify the
X.I string
Xand the
X.IR expansion ,
Xand for comments on the interactions of macros in the same and in
Xdifferent modes.
X.sp
XIf no arguments are given, these commands will display the list of
Xmacros and expansions for the appropriate mode.
XIf only a
X.I string
Xis given, they will display the
X.I expansion
Xassociated with that string for the appropriate mode.
XOtherwise, they will create a macro, associating the given
X.I expansion
Xwith the specified
X.IR string .
X.sp
XLine mode macros are unset with the
X.B unmap
Xcommand, and composition mode macros are unset with the
X.B unmap!
Xcommand.
X.TP
X.BR merge " [-N] folder-name"
XMessages from the named folder are read into the current folder.
XThe header summaries of the merged messages are printed unless the \-N
Xoption is given (see the
X.B folder
Xcommand, above).
XThis command can only appear in a pipeline if it is the first command;
Xit returns a list of all the messages from the merged-in folder.
X.TP
X.BR my_hdr / un_hdr " [header]"
XYou can create personalized headers in your outgoing mail using this command.
X.sp
X.nf
XUsages:
X.in +2
X.ta 2.5i
Xmy_hdr	print all your headers
Xmy_hdr header	print value of header
Xmy_hdr header: string	set header to string
Xun_hdr header:	unset header
X.in -2
X.sp
X.fi
XTo set a header, the first argument must be a string
Xthat contains no whitespace (spaces or tabs) and must end with
Xa colon (:).
XThe rest of the command line is taken to be the
Xtext associated with the mail header specified.
XIf any quotes are used in the header and the header itself is not set in
Xquotes, then quotes should be escaped (preceded) by a backslash.
XThis holds true for semicolons, pipe characters
Xor any other metacharacter that
X.I Mush
Xmight interpret as a command line modifier.
X.sp
XIf the variable
X.B no_hdrs
Xis set, then your headers will not be added to outgoing messages,
Xbut no headers will be unset.
XThe
X.B un_hdr
Xcommand may take `*' as an argument to un_hdr everything set.
X.TP
X.BR pick " [flags] [<pattern>]"
XAllows the user to select particular messages from a folder.
XThe <pattern> is a \*Qregular expression\*U as described by
X.IR ed .
XIf no arguments are given, the previous expression searched for is used.
XYou can search for messages from a user, for a particular subject line,
Xbetween certain dates, and limit searches to a range of messages.
XYou can also find all messages that do not
Xmatch the same arguments mentioned above.
X.sp
X.nf
XOptions:
X.ta 1.5i
X.in +2
X\-ago <format>	search for messages relative to today's date.
X\-d [+|\-]date	messages sent on or [+ after] [`\-' before] date.
X\-f	search for pattern in \*QFrom\*U field only.
X\-h header	search for pattern in specified header only.
X\-i	ignore case of letters when searching.
X\-r msg_list	search only the listed messages.
X\-s	search for pattern in \*QSubject\*U field only.
X\-t	search for pattern in \*QTo\*U field only.
X\-x	select messages not containing the pattern.
X.in -2
X.fi
X.sp
XThe
X.I \-ago
Xoption can be abbreviated as
X.IR \-a .
XOnly one of \-a, \-d, \-f, \-h, \-s and \-t can be specified at once.
XEntire messages are scanned for the <pattern>
Xunless \-a, \-d, \-f, \-h, \-s or \-t is specified.
XMessages marked for deletion are also searched.
XNo patterns can be specified with the \-a or \-d options.
X.sp
XFor the \-d option, \*Qdate\*U is of the form:
X.sp
X.ti +2
Xmonth/day/year
X.sp
Xwith an optional `\-' to specify that the messages of interest are those
Xolder than that date.
XOmitted fields of the date default to today's values.
XExamples of selecting on date:
X.nf
X.in +2
X.ta 2.0i
X.sp
Xpick \-d 4/20	on April 20, this year.
Xpick \-d \-/2/85	on or before the 2nd, this month, 1985.
Xpick \-d +5/4	on or after May 4 of this year.
Xpick \-d /	today only.
X.fi
X.in -2
X.sp
XAt least one `/' char must be used in a date.
XThere is no strong date checking; 2/30 would be considered a valid date.
X.sp
XFor the \-ago option, the format is very simple.  Specify the number of
Xdays followed by the word \*Qdays\*U, or the number of weeks followed by
Xthe word \*Qweeks\*U, and so on with months and years.  Truncation is allowed,
Xsince only the first character is examined, so all of the following are
Xequivalent:
X.sp
X.in +2
X.nf
Xpick \-ago 1 day, 2 weeks
Xpick \-ago 2Weeks 1Day
Xpick \-ago 2w,1day
Xpick \-a 2w1d
X.fi
X.in -2
X.sp
XThese examples will find all messages that are exactly 2 weeks and 1 day
Xold.  All \*Qago\*U dates collapse into \*Qday\*U time segments.  This
Xmeans that months are 30.5 days long.  If more precise date selection is
Xrequired, use the \-d option and specify specific dates.
X.sp
XAlso note that the \-ago option allows
Xthe \*Qbefore\*U (\-) and \*Qafter\*U (+)
Xarguments.  Thus, you may pick all messages older than 1 week with:
X.sp
X.ti +2
Xpick \-ago \-1 week
X.sp
XOther examples of
X.B pick:
X.sp
X.ti +2
Xpick \-d 2/5/86 | pick \-d \-2/5/87 | pick \-s "mail stuff" | lpr
X.sp
Xwill find all the messages between the dates February 5, 1986, and
XFebruary 5, 1987, that contain the subject "mail stuff" and send them
Xto the printer.
X.sp
X.ti +2
Xpick -s Re: | delete
X.sp
Xdeletes messages that have \*QRe:\*U in the Subject header.
X.sp
X.ti +2
Xfolder +project | pick \-f frank
X.sp
XFinds all messages from frank in the folder described by +project.
X.sp
X.ti +2
Xpick \-h return-path ucbvax
X.sp
XSearches all messages that have the header "Return-Path:" and determines
Xif the string \*Qucbvax\*U is in the header.
XNote that case sensitivity
Xapplies only to the pattern searched, not the header itself.
X.sp
X.ti +2
Xpick \-ago +1w | save +current
X.sp
XThis finds all messages that are a week or less old and saves them in the file
Xcalled \fIcurrent\fR, which is found in the user's \fIfolder\fR variable.
X.TP
X.BR pipe " [msg-list] unix-command"
XAllows the user to send the texts of a list of messages to a
X.IR UNIX (TM)
Xcommand.
XThe list of messages may either be given explicitly or may come from
Xa mush pipeline (see \*QCommand Pipes\*U under FEATURES, and also the
XLINE-MODE INTERFACE section).
XIf a list is neither given nor piped, the current message is used.
XHeaders which have not been ignored are considered part of the message
Xtext for purposes of this command.
XFor example,
X.sp
X.in +4
X.nf
Xpipe 3 5 7 patch
X.fi
X.in -4
X.sp
Xsends the text of messages 3, 5 and 7 to the
X.I patch
Xutility.
X.sp
XThis command can also be invoked as
X.BR Pipe
X(note capitalization), in which case only the body of the messages,
Xand none of the message headers, are sent to the unix command.
X.sp
XWhen the variable
X.B unix
Xis set,
X.IR UNIX (TM)
Xcommands can appear anywhere
X.I except as the first command
Xin a mush pipeline without explicitly using
X.BR pipe .
XHowever, it is still necessary to specify
X.B Pipe
Xin order to exclude all headers.
X.TP
X.B preserve
X.RB ( pre )
XSaves a message list in your spool directory rather than
Xyour mailbox unless it has been explicitly deleted.
XThe variable
X.B hold
Xcauses all messages to be held in your spool directory automatically.
X.TP
X.B print
X.RB ( p ,
X.BR type ,
X.BR t )
XTakes a message list and displays each message on the user's terminal.
XIf the first letter of the command is a capital letter (`P' or `T')
Xthen \*Qignored\*U headers are not ignored
X.I provided
Xthat the variable
X.B alwaysignore
Xis not set.
XIf this variable is set, the ignored headers will be
Xignored regardless of the command used to display the message.
XSee the
X.B ignore
Xcommand for more information about ignored message headers.
X.sp
XThe `+' and the `\-' keys can be used to display the \*Qnext\*U
Xand \*Qprevious\*U messages respectively.
XThe `+' key has the caveat that the
Xmessage is not paged at all and none of the messages headers are displayed.
X.TP
X.B pwd
XPrints the current working directory.
X.TP
X.B quit
X.RB ( q )
XUpdates the current folder and exits from
X.IR Mush .
XIf the variable \*Qhold\*U is set, all messages not marked for deletion are
Xsaved in the spool directory.
XOtherwise, messages that have been read are saved to
X.I ~/mbox
Xor to the file described by the string variable
X.BR mbox .
XMessages marked for deletion are discarded.
XUnread messages go back to the spool directory in all cases.
X.TP
X.BR reply / replyall " [msg_list] [-r path] [flags] [users]"
X.RB ( r / R )
XMessages are replied to by sending mail to the sender of each message
Xin the given message list.
XThe command
X.B replysender
Xis equivalent to
X.BR reply .
X.B Replyall
Xresponds to all the recipients as well as the sender of the message.
XThese commands understand all the same flags as the
X.B mail
Xcommand.
X.sp
XWhen constructing a return mail address to the author of a message,
X.B reply
Xsearches for special mail headers in the author's message that
Xindicate the most efficient mail path for return mail.
X.I Mush
Xwill search for the \*QReply-To:\*U, \*QReturn-Path:\*U,
Xand \*QFrom:\*U headers, in that order, by default.
X.sp
XIf none of these fields are found in the message, the first line of the
Xmessage is parsed if possible;
Xthis \*QFrom \*U line is different from the \*QFrom: \*U line.
XIf the user wishes to change the order or the actual fields to search for
Xreturn paths, then the variable
X.B reply_to_hdr
Xmay be set to a list of headers to be used (in the order specified).
XIf it is set, but has no value, the first \*QFrom \*U line is used
Xregardless of what headers the author's message contains.
XThe \*QFrom \*U line may be specified explicitly as an item in the
Xlist of reply-to headers by specifying the header:
X.B From_.
XSee the VARIABLES section for more information about
X.B reply_to_hdr.
X.sp
XWhen replying to all recipients of the message using the
X.B replyall
X.RB ( R )
Xcommand, only the original author's address can be obtained from
Xthe message headers.
XThere is no way determine the best path to the
Xother recipients of the message from message headers aside from taking
Xtheir addresses directly from the \*QTo:\*U and \*QCc:\*U lines.
X.sp
XExample:
X.sp
X.ti +2
Xreplyall 3,4,5 -i 4,5 7 -s response mail-group
X.sp
XHere, messages 3, 4 and 5 are replied to (all the authors are obtained
Xfrom each of those messages as well as the recipients from those messages)
Xand the text from messages 4, 5 and 7 are included in the body of the reply.
XThe subject is set to "response" and the alias mail-group is appended to
Xthe list of recipients for this message.
X.sp
XThe -r flag will prepend the path to each recipient in the address list
Xwith the indicated path.  This overrides the value of \fBauto_route\fR,
Xbut has the exact same functionality.  See the explanation of the variable
Xin the VARIABLES section.  Also see the MAIL ADDRESSES section for more
Xinformation concerning replying to messages.
X.nf
X.TP
X.BR save / write / copy " [!] [-s | -a] [msg-list] [filename / directory]"
X.fi
X.RB ( s / w )
XWith no arguments,
X.B save
Xand
X.B write
Xwill save the current message to the file
X.I mbox
Xin the user's home directory (or the file specified by the
X.B mbox
Xvariable).
XIf a message list is given, then the messages specified by
Xthe list are saved.
XIf a filename is given, then that filename is used instead of mbox.
XThe -s options forces the filename used to be that of the subject of
Xthe message.  Similarly, the -a option causes the filename used to be
Xthat of the author of the message being saved.  If more than one message
Xis being saved, the subject or author name used is that of the smallest
Xmessage number (since message lists have no order of precedence).  With
Xthese two options, a directly name may be given to specify a directory
Xother than the current directory.
X.sp
XIf the file exists and is writable, the specified command
Xwill append each message to the end of the file.
XIf the `!' is given, then the file is overwritten causing whatever contents it
Xcontains to be lost.
XThe
X.B write
Xcommand differs from
X.B save
Xand
X.B copy
Xin that the message headers are
X.I not
Xsaved in the file along with the body of text.
X.sp
XIf the current folder is the system mailbox, then saved messages are
Xmarked for deletion when the user exits using the
X.B quit
Xcommand.
XIf the variable
X.I keepsave
Xis set or the current folder is not the system mailbox, then messages are
Xnot marked for deletion.
XThe
X.B copy
Xcommand is is like
X.B save
Xexcept that messages are never marked for deletion, whether or not
X.B keepsave
Xis set.
X.sp
XBecause message lists are used to determine the messages to be saved,
Xif the user wishes to save messages to a file that begins with a digit
Xor any other message list metacharacter, a backslash should precede
Xthe filename to escape the message list expansion routine.
XThe backslash will not become a part of the filename.
X.TP
X.BR saveopts " [file]"
XThe complement of
X.BR source ,
X.BR saveopts ,
Xwill save all settable variables, aliases
Xand cmd's in the initialization file.
X(See the INITIALIZATION
Xsection for more information on initialization files.)
XIf an argument is given, that file is used.
XBeware that this will overwrite files, so any \*Qif\*U expressions
Xwill be lost, as will settings that have changed since entering
X.IR Mush .
XUsing saveopts is highly discouraged
Xand is intended for the naive user only.
X.TP
X.BR set " [[?]variable [= value]]"
X.ns
X.TP
X.BR unset " variable"
X.rs
XWith no arguments, prints all variable values.
XOtherwise, sets option.
XArguments are of the form \*Qoption=value\*U (whitespace is allowed).
XBoolean expressions need not have \*Q=value\*U associated in the command.
X.sp
XThe special command
X.sp
X.ti +2
Xset ?all
X.sp
Xwill print all known variables utilized by the program and a brief
Xdescription of what they do.
XThe user may set and manipulate his own set of variables, but internal
Xvariables that are utilized by the program are the only ones displayed.
X.sp
XThe command
X.sp
X.ti +2
Xset ?variable_name
X.sp
Xwill print the same information for one variable instead of all variables.
XYou may unset everything by issuing the command \*Qunset *\*U.
X.sp
XIt is possible to set a variable to a list of messages returned by another
Xcommand by using the piping mechanism.  For example,
X.sp
X.ti +2
Xpick \-s Status Reports | set reports
X.sp
XThe variable, reports, now contains a message list which can be used
Xas the message list argument to any commands which accepts one.
X.sp
X.ti +2
Xmail \-i $reports boss
X.sp
XThis command will mail to \*Qboss\*U and include all the messages held
Xin the \fIreports\fP variable.
X.TP
X.BR sh " [command]"
XInvokes an interactive version of the shell.
XThe shell spawned is described by the variable
X.BR shell .
XIf the optional argument
X.B command
Xis given, then that command is executed under the Bourne Shell.
XIf the special character `&' is at the end of any shell command,
Xthen the command will be executed in background.
X.TP
X.BR source " [file]"
XRead
X.I Mush
Xcommands from a file.
XIf no filename is specified, the files searched
Xfor are .mushrc or .mailrc in the user's home directory.
XIf the environment variable MAILRC is set, then that file is sourced.
XIf a filename is given on the command line, that file is sourced.
XSee the INITIALIZATION heading and the
X.B home
Xvariable descriptions for more information.
X.TP
X.BR sort " [\-] [a | d | s | S | R]"
XThis command
Xwill sort messages according to author, date, status or subject
X(with or without considering the "Re: ", in replied messages).
XIn addition, the messages can be sorted in reverse order (same arguments).
X.sp
X.nf
XOptions:
X.in +2
X.ta 1i
X\-	reverse sort order
Xa	sort by author (alphabetical)
Xd	sort by date
Xs	sort by subject ignoring \*QRe:\*U
XR	sort by subject (alphabetical)
XS	sort by message status
X.in -2
X.fi
X.sp
XNote that only one argument (except for the `\-'), may be used.
XBy default (no arguments),
X.B sort
Xsorts messages by
X.IR status .
XNew, unread messages are first, followed by preserved messages,
Xand finally deleted messages are placed at the end of the list.
X.sp
XWhen sorting by date, the boolean variable
X.B date_received
Xis checked.  If it is set, then sorting goes by date received.
XOtherwise (default), sorting is by date sent by the original author.
X.sp
XIf the variable
X.I sort
Xis set, messages are sorted each time the user's system mailbox is
Xread as the current folder.
XThe
X.I sort
Xvariable can be set either to nothing or to legal "sort" arguments.
X.sp
XSubsorting can be achieved by using the piping mechanism intrinsic to
Xthe line mode interface;
Xno other interface allows subsorting \*Qdirectly\*U.
XEach interface may allow subsorting if appropriate actions are taken,
Xas discussed below.
X.sp
XTo subsort messages, the folder must be in a particular order to begin
Xwith.
XTo sort mail by author and then by subject heading, you would
Xhave to first sort by author:
X.sp
X.ti +2
Xsort a
X.sp
XNow that the messages are in order according to author, sorting a
Xsublist of messages is done using pipes:
X.sp
X.ti +2
Xpick \-f island!argv@sun.com | sort s
X.sp
XThis finds all messages from the user \*Qisland!argv@sun.com\*U
Xand sorts them by subject.
XSince these messages are already grouped together via the
Xprevious sort command, the sorting by subject (s) will restrict itself
Xto such messages.
XYou may specify the exact message list by specifying
Xthat message list on the command line and using a pipe:
X.sp
X.ti +2
X10\-. | sort d
X.sp
XThis command means to sort the messages from 10 to the current message
Xaccording to the date.
X.sp
XTo specify subsorting from with the curses interface, the temporary
Xcurses escape key must be used (the colon `:') and the command issued
Xat the `:' prompt (as if giving an \*Qex\*U command to \*Qvi\*U).
XWhen the command is finished, the \*Q...continue...\*U prompt is given and
Xthe user may continue or return to the top level of the curses mode.
X.sp
XIn the tool interface, the user must map a function key to the desired
Xcommand.
XSelect the \*QOpts\*U icon with the right mouse button, choose
Xthe menu item labeled \*Qfunction keys\*U and use the interface provided
Xto set a function key to the desired piped mechanism.
X.TP
X.B stop
XFor systems with job control, stop will cause
X.I Mush
Xto send a SIGTSTP to itself.
XThe command was introduced to facilitate
Xthe stop-job action from a complex command line alias rather than the user
Xhaving to type his stop character explicitly.
X.TP
X.B top
XTakes a message list and prints the top few lines of each.
XThe number of lines printed is controlled by the variable
X.B toplines
Xand defaults to the size of the value of the variable
X.B crt.
XThis command is ignored in the tool mode.
X.TP
X.BR undigest " [-m] [msg_list] [filename]"
XA \*Qdigest\*U is a mail message which is a collection of other mail messages
Xmailed to a \*Qmoderator\*U by other users.  The moderator compiles all the
Xmessages into a folder and sends the result to all the subscribers of the
Xmailing list.  The
X.B undigest
Xcommand disassembles the entries into the set of messages which comprises
Xthe digest.
X.sp
XThe -m option will merge these messages into the current folder.  Otherwise,
Xif a filename is specified, a new folder is created and the user can change
Xfolders to read the messages separately.
X.sp
XIf a message list is specified, each digest is disassembled to the same
Xfilename (if given).  If no filename is given and the user did not request
Xa merge, then a temporary file is made.
X.sp
X.SH VARIABLES
XShell variables are controlled via the
X.B set
Xand
X.B unset
Xcommands.
XOptions may be either boolean, in which case it is only
Xsignificant to see whether or not they are set;
Xstring, in which case the actual value is of interest;
Xor numerical, in which case the numerical value is important.
XSome variables may have attributes
Xof boolean and string at the same time.
X.PP
XIf you or the program references a variable that is not explicitly set,
Xthen the environment variables are checked and a pointer to that data
Xis returned.
X.PP
XCertain variables that happen to be set to pathnames can be modified
Xby one of two variable modifiers.
XThe modifiers `:h' and `:t' may be applied to the variable names.
XThe current implementation allows only one `:' modifier on each `$' expansion.
X.TP
X:t
XThe variable is treated as a file path name, and the name of the file
X(the \*Qtail\*U of the path) is substituted for the variable.
XThat is, everything to the right of the last `/'
Xis returned.
X.TP
X:h
XThe variable is treated as a path name, and the \*Qhead\*U of the pathname
Xis substituted for the variable.
XThat is, everything up to, but not including, the last `/' is returned.
X.PP
XThus, you could set your prompt:
X.sp
X.nf
X.ti +2
Xcmd fo 'fo \!*; set prompt = "! [$thisfolder:t] "'
X.fi
X.sp
XHere, whenever you change folders, your prompt will tell you the name
Xof the folder you're in.
X.PP
XFollowing is a list of all predefined variables.
X.TP
X.B alwaysignore
X(Boolean)
XIf set, the mail headers set by the
X.B ignore
Xcommand are always ignored.
XNormally, ignored headers are not ignored when sending messages to
Xthe printer, when interpolating messages into letters with ~f or ~H,
Xwhen the `P' or `T' command is given (see the \fBprint\f command),
Xor with the \-h flag to the
X.B mail
Xor
X.B reply
Xcommands.
XSetting
X.B alwaysignore
Xwill ignore those headers even in the situations mentioned here.
XNo headers can be ignored during updates and when using the
X.B save
Xcommand since the user may ignore headers that are required by
X.I Mush
Xor any other mail system to read those folders.
X.sp
XAlso see the
X.B ignore
Xcommand for more information.
X.TP
X.B ask
X(Boolean)
XIf set, you will be prompted for a subject header for outgoing mail.
XIf not set, the Subject header will be displayed as a blank header.
XUse the tilde escape \*Q~s\*U to set the header once in the message
Xor specify the \-s option on the
X.B mail
Xcommand line at the
X.I Mush
Xprompt.
X.TP
X.B askcc
X(Boolean)
XIf set, you will be prompted for a Cc (carbon copy) list when you are
Xfinished editing a letter to be sent.
XIn the tool mode, this is ignored; the Cc list
Xis always prompted for after the Subject prompt.
X.TP
X.B autodelete
X(Boolean)
XWhen exiting mail, all messages that have been read
X.I "regardless of whether they have been marked for deletion"
Xare removed.
XOnly messages that haven't been read or that have been marked as
X.B preserved
Xare not removed.
X.TP
X.B autoedit
X(Boolean)
XIf set, you are automatically put into your editor whenever you
Xsend or reply to mail.
X.TP
X.B autoinclude
X(Boolean)
XWhen replying to any mail, a copy of the message being replied to
Xis automatically inserted into your message body indented by
Xthe string described by the variable
X.BR indent_str .
X.TP
X.B autoprint
X(Boolean)
XAfter you delete a message, the next message is printed automatically.
X.TP
X.B auto_route
X(String)
XIf set boolean (not to a string), all the recipients in a message that
Xis being replied to (via \fBreplyall\fR), will be routed through the path
Xback to the original author.
X.sp
XFor example, if the original sender of a message came from the remote host
X.B c3p0
Xand the list of recipients looked like
X.sp
X.nf
X.in +2
XFrom: c3p0!user1
XTo: yourhost!you
XCc: r2d2!user2, r2d2!user3
X.in -2
X.fi
X.sp
Xthen clearly, \*Quser1\*U on the machine c3p0 can talk to your machine
Xand the machine named r2d2.
XHowever, you would not be able to respond to those users if your machine
Xdid not exchange UUCP mail with the host r2d2.
X.sp
X.I Mush
Xwill attempt to solve this problem by reconstructing the addresses
Xfor \*Quser2\*U and \*Quser3\*U according to the address of the original
Xsender, \*Qc3p0\*U.
XThe new addresses for \*Quser2\*U and \*Quser3\*U should therefore become
X.sp
X.ti +2
Xc3p0!r2d2!user2, c3p0!r2d2!user3.
X.sp
XIf your machine not only talks to c3p0,
Xbut talks to r2d2 as well, it becomes unnecessary to route the mail
Xthrough both c3p0 and r2d2.
XSo, the variable
X.B known_hosts
Xmay be set to a list of hosts which you know your machine to have
XUUCP mail connections with.
XThis list is checked when constructing mail addresses for replies only and
Xthe shortest path is made by removing from the UUCP path those hosts
Xthat do not need to be called or are redundant.
XSee the entry for
X.B known_hosts
Xfor more information.
X.sp
XIf
X.B auto_route
Xis set to a specific \fBpathname\fR (host names separated by !'s),
Xall addresses in the reply will have this route prepended to their addresses.
XThis ignores the original path of the author.  This is quite useful for
Xhosts which talk uucp to a node which is connected to the internet or uunet
Xsince both of those machines tend to be one-hop away from all other hosts
X(or reroute accordingly).  For example, if a message was addressed like so:
X.sp
X.in +2
X.nf
XTo: root@ucbvax.berkeley.edu, argv@island.uucp
XCc: ucbcad!foo!bar
X.sp
X.fi
X.in -2
XIf auto_route were set to "ucbcad", then replies to this address would be
Xdirected addressed like so:
X.sp
X.in +2
X.nf
XTo: ucbcad!ucbvax.berkeley.edu!root, ucbcad!island.uucp!argv
XCc: ucbcad!foo!bar
X.sp
X.fi
X.in -2
X.sp
XThis assumes that the host in question talks uucp with ucbcad.  This example
Xdemonstrates several things.  First, notice that all addresses are converted
Xto uucp-style format.  Whenever routing is changed, the format is converted
Xlike this.  Secondly, note that the Cc: line did not change.  This is because
Xall redundant hostnames from UUCP pathnames are removed
Xto avoid unnecessary UUCP connections and speed up mail delivery.
X.sp
XAnother example of how auto_route truncates UUCP paths:
X.sp
X.ti +2
Xpixar!island!sun!island!argv
X.sp
XHere, mail was probably originally sent to users at pixar and sun from
Xsomewhere undetermined now.
XSince sun and pixar do not talk to each other, the users on those machines may
Xhave responded to mail creating the type of addresses stated above.
XHere, it can be seen that we can reduce the path to the host
X.IR island :
X.sp
X.ti +2
Xpixar!island!argv
X.sp
XSee the MAIL ADDRESSES section for more detailed information
Xabout legal mail addresses.
X.sp
XNote that the -r flag to \fBreply\fR and \fRreplyall\fR overrides the
Xvalue of \fBauto_route\fR.
X.TP
X.B autosign
X(Boolean/string)
XAppend a signature to outgoing mail.
XIf this variable is set, but not to a string (e.g., boolean-true)
Xthen the file ~/.signature is used.
X.sp
XOtherwise, the variable is interpreted in one of three ways.
XBy default, the string is interpreted as a pathname relative to the
X.I current
Xdirectory.
XFor this reason, it is advisable to use full pathnames here.
XAs usual, the special characters `~' and `+' are expanded.
XIf a file is found, it is opened and its contents are read into the
Xmessage buffer.
X.sp
XIf the variable is set to a string that begins with `$', then that string
Xis interpreted as a user-definable variable and is expanded and appended
Xto the letter.
X.sp
XFinally, if the variable is set to a string that begins with a backslash (\\)
Xthen the string itself (minus the `\\' character) is used; no expansion
Xis done and no files are read.
X.sp
XIn the latter two cases, it is advisable to set the variable using single
Xquotes to avoid expanding the variable beforehand or eliminating the
Xbackslash.
XExamples:
X.sp
X.nf
X.ti +2
Xset autosign = '$foo'
X.ti +2
Xset autosign = '\\  Dan Heller island!argv@ucbcad.berkeley.edu'
X.fi
X.sp
X.BR Warning :
Xif redirection from the calling shell is used,
Xno signature or fortune will be added to outgoing mail.
XFor example,
X.sp
X.ti +2
X% mush \-s report manager < report_file
X.sp
XIn this command, mail is being sent to the user \*Qmanager\*U and the
Xsubject is set to \*Qreport\*U and the file \*Qreport_file\*U is being
Xredirected as input.  In this case, there will be \fIno\fR signature
Xappended.
X.TP
X.B autosign2
X(String)
XThis alternate signature is available for special cases where the default
Xsignature is not desired or if no signature is desired for special addresses
Xor if only special addresses require a signature.
XThe format for this variable is:
X.sp
X.ti +2
Xautosign2 = \*Qaddress1, address2, ... : <signature>\*U
X.sp
XEach address can be one of these types:
X.TP
X1)  address
XLegal mailing addresses that do not contain comment
Xfields (see the sections MAIL ADDRESSES for more information on legitimate
Xmail addresses).
X.TP
X2)  *username
XIf the username is present on the recipient list, regardless of what
Xremove site the user may reside (including locally), the pattern matches.
X.TP
X3)  !hostname !host1!host2...
XAny user can be specified as long as he resides on the specified hostname.
XIf a path of hosts is specified, then the user must reside on the end of
Xthe specified path.
X.TP
X4)  @dom.ain
XThe user must reside on any host within the domain specified.  Neither
Xthe user or the hostname needs to match; only the domain name must be
Xrequired to match.
X.sp
XExample:
X.sp
X.nf
X.ti +2
Xset autosign2 = \*Q!island @berkeley.edu @mit.edu *schaefer root: \--dan\*U
X.fi
X.sp
XThis means that any mail sent to 1) anyone at island, 2) anyone within
Xthe berkeley domain, 3) anyone within the mit domain, 4) Bart Schaefer
X(at any host anywhere -- even locally),
Xand 4) root on my local machine only (or, root@my-machine-name)
Xwill be signed  by my "alternate" signature.  If any address on the
Xrecipient list fails to satisfy these four matches, the mail will be
Xsigned by my regular signature.
X.sp
XOne can have a local signature and a remote signature by specifying
Xthe autosign2 to include the hostname of the home machine the user
Xis logged into.  Note the \*Qisland\*U example above.
X.sp
XThe list of recipients, after alias expansion and comment removal, is
Xthen scanned and the following patterns are matched against those addresses
Xspecified in the autosign2 or fortunates variable according to these rules.
X.sp
XThe signature description is the same as described by
X.B autosign
Xvariable.  The colon (:) separates the list of addresses from the signature
Xdescription.  If there is no colon or the address list is missing, the
Xentire string is considered the signature (except for the colon).
X.sp
XIf
X.B autosign
Xis not set, then autosign2 will ONLY work if the tilde command \*Q~S\*U
Xis specified.  In this way, a user may never have autosign set and just
Xset autosign2 to be some signature value.  The user may then issue the
Xtilde command to automatically sign the letter.
XIf a list of addresses is given (terminated by a colon), then all
Xrecipients of the message must be in the list of addresses in autosign2;
Xotherwise, the signature in \fBautosign\fR (if set) is used instead.
XA null signature in autosign2 will not sign the letter.
X.sp
XExample:
X.sp
X.nf
X.ti +2
Xset autosign2 = "fred, barney, wilma, betty: ~/flintstone.sig"
X.fi
X.sp
XIf a message is sent to:
X.sp
X.ti +2
XTo: fred, wilma
X.sp
XThen the file ~/flinstone.sig will be used.
XHowever, if the address were:
X.sp
X.ti +2
XTo: barney, betty, bambam
X.sp
XThen autosign2 will not be used because bambam is not in the list.
X.sp
XNote that mail sent via redirection from the calling shell will not
Xsign letters or append fortunes.
X.TP
X.B cdpath
X(String)
XSet to a string of pathnames separated by spaces to use when searching
Xfor a directory when the
X.B cd
Xcommand is issued.
XIf this variable is used, it is recommended that the path `.' be included.
XNote that this differs from the
X.IR csh ,
Xwhich does not require that `.' be present.
X.TP
X.B crt
X(Numeric)
XSet to a value that describes the number of lines a message
Xmust have before invoking the
X.B pager
Xto view a message.
X.TP
X.B cwd
X(String)
XThe
X.B "current working directory"
Xstring is automatically set upon startup of
X.I Mush
END_OF_FILE
if test 49816 -ne `wc -c <'mush.1.2'`; then
    echo shar: \"'mush.1.2'\" unpacked with wrong size!
fi
# end of 'mush.1.2'
fi
echo shar: End of archive 18 \(of 19\).
cp /dev/null ark18isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 19 archives.
    rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0
-- 
Please send comp.sources.unix-related mail to rsalz@uunet.uu.net.