home *** CD-ROM | disk | FTP | other *** search
Text File | 1988-04-12 | 37.8 KB | 1,267 lines |
- .sp
- .ti +2
- pick -f island!argv@sun.com | sort s
- .sp
- This finds all messages from the user \*Qisland!argv@sun.com\*U
- and sorts them by subject.
- Since these messages are already grouped together via the
- previous sort command, the sorting by subject (s) will restrict itself
- to such messages.
- You may specify the exact message list by specifying
- that message list on the command line and using a pipe:
- .sp
- .ti +2
- 10-. | sort d
- .sp
- This command means to sort the messages from 10 to the current message
- according to the date.
- .sp
- To specify subsorting from with the curses interface, the temporary
- curses escape key must be used (the colon `:') and the command issued
- at the command line given (as if giving an \*Qex\*U command to \*Qvi\*U).
- When the command is finished, the \*Q...continue...\*U prompt is given and
- the user may continue or return to the top level of the curses mode.
- .sp
- In the tool interface, the user must map a function key to the desired
- command.
- Select the \*QOpts\*U icon with the right mouse button, choose
- the menu item labeled \*Qfunction keys\*U and use the interface provided
- to set a function key to the desired piped mechanism.
- .TP
- .B stop
- For systems with job control, stop will cause
- .I Mush
- to send a SIGTSTP to itself.
- The command was introduced to facilitate
- the stop-job action from a complex command line alias rather than the user
- having to type his stop character explicitly.
- .TP
- .B top
- Takes a message list and prints the top few lines of each.
- The number of lines printed is controlled by the variable
- .B toplines
- and defaults to the size of the value of the variable
- .B crt.
- This command is ignored in the tool mode.
- .SH VARIABLES
- Shell variables are controlled via the
- .B set
- and
- .B unset
- commands.
- Options may be either boolean, in which case it is only
- significant to see whether or not they are set;
- string, in which case the actual value is of interest;
- or numerical, in which the numerical value is important.
- Some variables may have attributes
- of boolean and string at the same time.
- .sp
- If you or the program references a variable which is not explicitly set,
- then the environment variables are checked and a pointer to that data
- is returned.
- Following is a list of all predefined variables.
- .TP
- .B alwaysignore
- (Boolean)
- If set, the mail headers set by the
- .B ignore
- command are always ignored.
- Normally, ignored headers are not ignored when sending messages to
- the printer, when interpolating messages into letters with ~f or ~h,
- when the `P' or `T' command is given (see the \fBprint\f command),
- or with the -h flag to the
- .B mail
- or
- .B reply
- commands.
- Setting
- .B alwaysignore
- will ignore those headers even in the situations mentioned here.
- No headers can be ignored during updates and when using the
- .B save
- command since the user may ignore headers which are required by
- .I Mush
- or any other mail system to read those folders.
- .sp
- Also see the
- .B ignore
- command for more information.
- .TP
- .B ask
- (Boolean)
- If set, you will be prompted for a subject header for outgoing mail.
- If not set, the Subject header will be displayed as a blank header.
- Use the tilde escape \*Q~s\*U to set the header once in the message
- or specify the -s option on the
- .B mail
- command line at the
- .I Mush
- prompt.
- .TP
- .B askcc
- (Boolean)
- If set, you will be prompted for a Cc (carbon copy) list when you are
- finished editing a letter to be sent.
- In the tool mode, this is ignored; the Cc list
- is always prompted for after the Subject prompt.
- .TP
- .B autodelete
- (Boolean)
- When exiting mail, all messages which have been read
- .I "regardless of whether they have been marked for deletion"
- are removed.
- Only messages that haven't been read or marked as
- .BR preserved ,
- are not removed.
- .TP
- .B autoedit
- (Boolean)
- If set, you are automatically put into your editor whenever you
- send or reply to mail.
- .TP
- .B autoinclude
- (Boolean)
- When replying to any mail, a copy of the message being replied to
- is automatically inserted into your message body indented by
- the string described by the variable
- .BR indent_str .
- .TP
- .B autoprint
- (Boolean)
- After you delete a message, the next message is printed automatically.
- .TP
- .B auto_route
- (Boolean)
- This variable has two functions, both of which only concern the command,
- .BR replyall ,
- and is only important to users who use UUCP to mail to remote sites.
- The first function is to cause replyall to modify the return addresses
- of all recipients to route through the original sender's host.
- The problem with UUCP mail delivery is that mail delivery is frequently
- routed through other computers before the message finally gets to its
- destination.
- If the original sender of the message was on a remote
- machine which your machine does not exchange UUCP mail with, then a UUCP
- path containing hosts which you do talk to will have to be
- created to respond to the author.
- However, if he mailed to other people
- on machines which are also multi-hops away, the addresses he used for
- those recipients may differ from what you should specify if you were to
- try to reply to everyone on the listed in the original message.
- .sp
- For example, if the original sender came from remote host,
- .B pixar
- and the list of recipients looked like,
- .sp
- .nf
- .in +2
- From: pixar!user1
- To: yourhost!you
- Cc: r2d2!user2, r2d2!user3
- .in -2
- .fi
- .sp
- Clearly, \*Quser1\*U on the machine pixar can talk to your machine
- and the machine named r2d2.
- However, you would not be able to respond to those users if your machine
- did not exchange UUCP mail with the host r2d2.
- .sp
- .I Mush
- will attempt to solve this problem if
- .B auto_route
- is set.
- An attempt will be made to compensate by reconstructing the addresses
- for \*Quser2\*U and \*Quser3\*U according to the address of the original
- sender, \*Quser1\*U.
- The new addresses for \*Quser2\*U and \*Quser3\*U should therefore become,
- .sp
- .ti +2
- pixar!r2d2!user2, pixar!r2d2!user3.
- .sp
- If your machine not only talks to pixar,
- but talks to r2d2 as well, it becomes unnecessary to route the mail
- through both pixar and r2d2.
- The variable
- .B known_hosts
- may be set to a list of hosts which you know your machine to have
- UUCP mail connections with.
- This list is checked when constructing
- mail addresses and the shortest path is made by removing from the
- UUCP path those hosts which do not need to be called.
- See the entry for
- .B known_hosts
- for more information.
- .sp
- An additional feature of the
- .B auto_route
- variable is that all redundant hostnames from UUCP pathnames are removed
- to avoid unnecessary UUCP connections and speed up mail delivery.
- Normally, this is the responsibility of the
- .IR "Mail Transfer Agent" ,
- or MTA.
- But it might be the case where the MTA at your site is not
- smart enough to figure out such redundant paths.
- In either case, the algorithm for removing redundant hosts is simple and
- should probably be used.
- An example of how auto_route truncates UUCP paths:
- .sp
- .ti +2
- pixar!island!sun!island!argv
- .sp
- Here, mail was probably originally sent to users at pixar and sun from
- somewhere undetermined now.
- Since sun and pixar do not talk to each other, the users on those machines may
- have responded to mail creating the type of addresses stated above.
- Here, it can be seen that we can reduce the path to the host
- .IR island :
- .sp
- .ti +2
- pixar!island!argv
- .sp
- See the MAIL ADDRESSES section for more detailed information
- about legal mail addresses.
- .TP
- .B autosign
- (Boolean/string)
- Append a signature to outgoing mail.
- If this variable is set, but not to a string (e.g., boolean-true),
- then the file ~/.signature is used.
- .sp
- Otherwise, the variable is interpreted in one of three ways.
- By default, the string is interpreted as a pathname relative to the
- .I current
- directory.
- For this reason, it is advisable to use full pathnames here.
- As usual, the special characters `~' and `+' are expanded.
- If a file is found, it is opened and its contents are read into the
- message buffer.
- .sp
- If the variable is set to a string that begins with `$', then that string
- is interpreted as a user-definable variable and is expanded and appended
- to the letter.
- .sp
- Finally, if the variable is set to a string that begins with a backslash (\\),
- then the string itself (minus the `\\' character) is used; no expansion
- is done and no files are read.
- .sp
- In the latter two cases, it is advisable to set the variable using single
- quotes to avoid expanding the variable beforehand or eliminating the
- backslash.
- Examples,
- .sp
- .ti +2
- set autosign = '$foo'
- .ti +2
- set autosign = '\\ Dan Heller island!argv@ucbcad.berkeley.edu'
- .sp
- Warning: if redirection from the calling shell is used, there will be
- no signature or forutne added to outgoing mail. For example,
- .sp
- .ti +2
- % mush -s report manager < report_file
- .sp
- In this command, mail is being sent to the user \*Qmanager\*U and the
- subject is set to \*Qreport\*U and the file \*Qreport_file\*U is being
- redirected as input. In this case, there will be \fIno\fR signature
- appended.
- .TP
- .B autosign2
- (String)
- This alternate signature is available for special cases where the default
- signature is not desired or if no signture is desired for special addresses
- or if special addresses only require a signature.
- The format for this variable is:
- .sp
- .ti +2
- autosign2 = \*Qaddress1, address2, ... : <signature>\*U
- .sp
- The addresses are legal mailing addresses but do not contain comment
- fields (see the sections MAIL ADDRESSES for more information on legitimate
- mail addresses).
- The signature description is the same as described by
- .B autosign
- above. The colon (:) separates the list of addresses from the signature
- description. If there is no colon or the address list is missing, the
- entire string is considered the signature (except for the colon).
- .sp
- If
- .B autosign
- is not set, then autosign2 will ONLY work if the tilde command \*Q~S\*U
- is specified. In this way, a user may never have autosign set and just
- set autosign2 to be some signature value. The user may then issue the
- tilde command to automatically sign the letter.
- If a list of addresses is given (terminated by a colon), then all
- recipients of the message must be in the list of addresses in autosign2;
- otherwise, the signature in \fBautosign\fR (if set) is used instead.
- A null signature in autosign2 will not sign the letter.
- .sp
- Example:
- .ti +2
- set autosign2 = "fred, barney, wilma, betty: ~/flintstone.sig"
- .sp
- If a message is sent to:
- .sp
- .ti +2
- To: fred, wilma
- .sp
- Then the file ~/flinstone.sig will be used.
- However, if the address were:
- .sp
- .ti +2
- To: barney, betty, bambam
- .sp
- Then autosign2 will not be used because bambam is not in the list.
- .sp
- Note that mail sent via redirection from the calling shell will not
- sign letters or append fortunes.
- .TP
- .B cdpath
- (String)
- Set to a string of pathnames separated by spaces to use when searching
- for a directory when the
- .B cd
- command is issued.
- If this variable is used, it is recommended that the path `.' be included.
- Note that this differs from the
- .IR csh ,
- which does not require that `.' be present.
- .TP
- .B crt
- (Numeric)
- Set to a value which describes the number of lines a message
- must have before invoking the
- .B pager
- to view a message.
- .TP
- .B cwd
- (String)
- The
- .B "current working directory"
- string is automatically set upon startup of
- .I Mush
- and is reset each time the command
- .BR cd ,
- is called.
- It is referenced each time
- .B pwd
- is called and may be used as any other shell variable.
- .TP
- .B dead
- (String)
- File to use instead of dead.letter when interrupted mail is saved.
- For more information, see the variable,
- .B nosave.
- .TP
- .B dot
- (Boolean)
- Accepts a `.' on a line by itself, in addition to `^D', to terminate messages.
- .TP
- .B editor
- (String)
- Editor to use when \*Q~e\*U is specified.
- Default is the value of the variable
- .BR visual .
- .TP
- .B escape
- (Character)
- When typing in a letter (not in an editor), when the
- .B escape
- character is the first character on the line, the following character
- is examined and a corresponding function associated with that
- .B "escape command"
- is executed.
- See
- .B "tilde escapes"
- for more information.
- .TP
- .B folder
- (String)
- The folder variable is set to a path where folders are kept.
- \&~/Mail is the default value.
- .TP
- .B fortune
- (Boolean/string)
- If fortune is set, a random fortune is appended to the end of
- all outgoing mail using the
- .I UNIX
- command
- .B /usr/games/fortune
- (may vary from system to system).
- If fortune is set to something that starts with
- a `\-', then it is interpreted as a flag to fortune (e.g., \*Q\-o\*U).
- If
- .B fortune
- starts with a `/', then the program described by
- the string is executed (thus not doing fortune at all, if you want).
- By default,
- .I "fortune \-s"
- (short fortunes) is used.
- .TP
- .B fortunates
- (String)
- When fortunes are added to messages, sometimes it is desireable to
- make sure that only a selected group of people get a fortune since
- certain people may not understand the messages at the end of your
- mail. Therefore, you can set a list of addresses (either pure addresses
- or aliases which are expanded to addresses) to be the only people who
- receive fortunes if one is to be appended. Therefore,
- if the To: and Cc: lines contain only address listed in this string
- variable, then a fortune is appended to the message.
- If those lists contain names which are not on the fortunates
- list, then no fortune is added.
- This cannot be overriden; using the
- tilde command \*Q~F\*U does not force a fortune to be added unless the
- list of individuals on the recipient list are all included in the fortunates
- list. The list is made up of addresses or aliases separated by spaces or
- commas.
- .I "NOTE: fortune must be set in order for fortunates to work."
- .TP
- .B hdr_format
- (String)
- This variable controls the format of the headers displayed by the
- .B headers
- command and in the curses and graphics modes.
- The format style of this variable string is similar to printf in C.
- When printing the information, the variable is evaluated and each
- character in the string is echoed unless a `%' character is
- encountered.
- If one is found, the following string substitutions are made:
- .sp
- .in +2
- .nf
- .ta 0.5i
- %a address of the author
- %c number of characters (bytes) in the message
- %f entire \*QFrom:\*U field (author)
- %l number of lines in the message
- %n name of the author
- %s subject of the message
- %t \*QTo:\*U field (recipients)
- %d entire date of the message
- %T the time only of the message
- %N the day number of the month of the message
- %D the day or the week (Sun, Mon, etc.)
- %M the month name of the message
- %Y the year of the message
- \\n a newline
- \\t a tab
- .fi
- .in -2
- .sp
- A field width specifier may be used in all options.
- Thus, \*Q%20f\*U will print the
- first 20 characters of the from line.
- No matter what the formatting string, the message number
- followed by a `>' (for current message) is printed.
- .sp
- The \*Qaddress\*U and \*Qname\*U of the author
- are extracted from the \*QFrom:\*U field of the message.
- The name may be given in parentheses and
- the rest of the line is the address, or the address is given in angle
- brackets (`<' and `>') and the rest of the line is the name.
- Sometimes the address is the only thing on the line,
- in which case the name and address are the same.
- .sp
- .TP
- .B hold
- (Boolean)
- Normally, on termination of mail, read messages are saved in
- your mbox (except those marked as preserved).
- Setting
- .B hold
- prevents this from happening,
- and messages remain in /usr/spool/mail/user.
- This does not apply to folders, obviously.
- .TP
- .B home
- (String)
- This variable describes the user's home directory.
- The variable is initialized to the value of the environment variable HOME,
- but can be modified at any time during the
- .I Mush
- session.
- The home directory is the same directory where temporary
- files are kept for editing and so forth.
- If the home directory cannot be found or read/write access is denied, an
- alternate directory, typically /tmp, is used.
- .TP
- .B ignore_bang
- (Boolean)
- If set,
- .I Mush
- will ignore the `!' character as a history reference.
- .TP
- .B ignoreeof
- (Boolean/string)
- If set, `^D' will not exit from
- .IR Mush .
- If set to a string, that string is executed as a command
- when `^D' is typed.
- This does not effect termination of messages under the
- .B mail
- and
- .B reply
- commands.
- .TP
- .B in_reply_to
- (String)
- This variable may be set to a string which will complete the
- header \*QIn-Reply-To:\*U.
- The format of this string is identical to the options for the variable
- .BR hdr_format .
- .sp
- For example, if the user were to respond to a message
- from Dan Heller that was sent on October 21, 1987 at 10:39pm, with
- .B in_reply_to
- set to the string
- .in +2
- .sp
- %n's message as of %d.
- .sp
- .ti -2
- the header line
- .sp
- In-Reply-To: Dan Heller's message as of Oct 21, 1987 10:39pm.
- .in-2
- .sp
- would be added to the message.
- .TP
- .B indent_str
- (String)
- When including messages into the text of a letter you are editing,
- each line of the messages is preceded by the value of
- .BR indent_str .
- If it is unset, the message body is indented by the string \*Q> \*U.
- See also the variables
- .B pre_indent_str
- and
- .BR post_indent_str .
- .TP
- .B keepsave
- (Boolean)
- If set, the commands
- .B save
- and
- .B write
- will
- .I not
- mark messages for deletion.
- .TP
- .B known_hosts
- (String)
- Used in conjunction with the variable
- .BR auto_route ,
- this variable is set to a list of hosts, separated by spaces, tabs,
- and/or commas, and describes
- the hosts with whom you know your machine shares UUCP connections.
- When replying to mail, many times you will see that the return path
- constructed will have hostnames which your site could call, but instead
- the mail has been routed through a number of different machines first.
- .sp
- For example, if you respond to mail which would mail to the path,
- .sp
- .ti +2
- unicom!pixar!root
- .sp
- but your know your machine already calls pixar, then sending the mail
- to unicom first is unnecessary.
- If you have set your known_hosts string to include pixar in its list,
- the resulting address would look like,
- .sp
- .ti +2
- pixar!root
- .sp
- Also see the command
- .B replyall
- for more information on constructing correct return addresses.
- .TP
- .B lister
- (String)
- Default arguments to the \*Qls\*U command for printing the
- contents of a directory.
- .TP
- .B mbox
- (String)
- Set to the pathname of a file you'd like mush to use as the default
- holder for read mail.
- The default is ~/mbox.
- .TP
- .B metoo
- (Boolean)
- When replying to mail, you are normally deleted from the list of
- recipients.
- If metoo is set, you remain on the list.
- See the
- .B alternates
- command
- for information on determining whether or not you're even on the list.
- .TP
- .B mil_time
- (Boolean)
- Whenever the time is displayed in a message header or in the prompt,
- it can be displayed in either 12-hour am/pm format, or in 24 hour
- military time format.
- The default is the 12 hour format, but can be
- reset to use the 24 hour format by setting this variable.
- .TP
- .B newline
- (Boolean/string)
- If set, carriage returns are ignored.
- If set to a string, that string is executed as a command when a
- carriage return is typed.
- Otherwise, carriage return prints the next undeleted message.
- .TP
- .B no_expand
- (Boolean)
- When a
- .I Mush
- alias is used to reference a list of addresses, the list is expanded on
- the To: and Cc: lines to indicate the complete list of all the recipients of
- the message.
- When no_expand is set, aliases are not expanded and the headers
- reflect the same information as typed by the user.
- .TP
- .B no_hdr
- (Boolean)
- If set, this variable tells
- .I Mush
- not to include your personalized mail headers in messages.
- This does not unset your headers, it just disables them.
- .TP
- .B no_reverse
- (Boolean)
- In curses mode and in the tool mode, reverse video is not used to indicate the
- .I "current message"
- if this variable is set.
- In the tool mode, if reverse video is not in use,
- text is displayed in \*Qbold\*U.
- .TP
- .B nosave
- (Boolean)
- When composing a letter, the user can terminate the letter without
- sending it using the tidle escape \*Q~q\*U or by sending two \*Qinterrupt\*U
- signals.
- When the message is terminated, a copy of it is saved to the
- file \*Qdead.letter\*U in the user's home directory or to the file described
- by the variable,
- .BR dead .
- If the variable,
- .B nosave
- is set, then a backup copy of the message will not be saved.
- .TP
- .B pager
- (String)
- If a message is longer than the number of lines that the variable
- .B crt
- is set to, then this program is executed to view a message.
- If the user does not have this variable set, the user's environment PAGER
- is checked.
- If this isn't set, then the default value for pager (set up
- by the system manager) is used.
- This may or may not be the internal pager.
- To use the internal pager, you may set the variable pager to
- .I internal
- or to a null string.
- .TP
- .B pre_indent_str
- (String)
- If this variable is set, when including the body of a message into an outgoing
- mail message (using the \-i option to
- .I reply
- or
- .IR mail ,
- or when using the \*Q~i\*U escape),
- a line preceding the first line of
- included text is printed using the string value of the variable.
- This string uses the same printf style formatting characters as the
- .B hdr_format
- variable.
- For example, you could set
- .B pre_indent_str
- as follows:
- .sp
- .ti +2
- set pre_indent_str = '[In the message entitled "%s", on %7d\n %n writes:]'
- .sp
- You can then include a message body using \*Q~i\*U, and you might
- get something like this:
- .sp
- .in +2
- .nf
- [In the message entitled "This is a test.", on Jan 19,
- Dan Heller writes:]
- > This is a test message to show how
- > pre_indent_str might be used.
- .ti -2
- .sp
- .fi
- This example assumes that the string value of
- .B indent_str
- is not set.
- .TP
- .B post_indent_str
- (String)
- This variable has the same function as
- .B pre_indent_str
- except that the string is inserted into the message body
- .I after
- the text of the included message rather than before.
- The purpose of this variable is to complement the string described by
- the variables
- .B pre_indent_str
- and
- .BR indent_str .
- For example,
- .sp
- .in +2
- .nf
- set pre_indent_str = "/*"
- set indent_str = " * "
- set post_indent_str = " */"
- .sp
- .ti -2
- An included message might look something like this:
- .sp
- /*
- * This is a test message to show how
- * post_indent_str and pre_indent_str
- * can work together with indent_str.
- */
- .fi
- .in -2
- .TP
- .B printer
- (String)
- Used to set the default printer for the lpr command.
- .TP
- .B print_cmd
- (String)
- This string should describe UNIX command other than "lpr" for sending
- messages to the line printer.
- Some people may choose to use a device independent
- troff style program, but virtually any UNIX command will suffice.
- Common usage might include:
- .sp
- .ti +2
- set print_cmd = 'ptroff -ms -Plp'
- .ti +2
- lpr .-$
- .sp
- This command would send all messages from the current message to the last
- message through the ptroff command, supplying the appropriate arguments.
- Uncommon, but legal usage might include:
- .sp
- .ti +2
- set print_cmd = 'write frank ttyp0'
- .ti +2
- lpr *
- .sp
- This command will send all your messages through to the \*Qwrite\*U
- program and display them on Frank's terminal.
- .sp
- .TP
- .B prompt
- (String)
- You can set your prompt to tell you many different pieces of information.
- By default, the prompt is set to the string,
- .sp
- .ti +2
- \*QMsg %m of %t: \*U
- .sp
- If you have 10 messages and your current message is 5, then your prompt
- would look like:
- .sp
- .ti +2
- Msg 5 of 10:
- .sp
- The string value that prompt is set to will be printed as your prompt.
- If the string contains a `%', then that character is
- ignored, the next character is evaluated and an appropriate
- value is printed in its place:
- .sp
- .nf
- .in +2
- .ta 0.5i
- %d number of deleted messages
- %D today's day (Sun, Mon, Tue, ...)
- %f filename of the current folder
- %m \*Qcurrent message\*U number
- %n number of \*Qnew\*U messages
- %N today's date (Number of the day in the month)
- %T current time (hours and seconds)
- %t total number of messages
- %u number of unread messages
- %Y this year
- \\n a newline
- \\t a tab
- .fi
- .in -2
- .TP
- .B quiet
- (Boolean)
- If set, the currently running version of
- .I Mush
- is not printed on startup.
- .TP
- .B record
- (String)
- Set to the name of a file to record all outgoing mail.
- This should be a full pathname or the current directory is searched.
- The pathname may begin with `+' (indicating the user's ~/Mail directory
- or the value of the
- .B folder
- variable) or with a `~' (or \*Q~user\*U)
- indicating the user's home directory.
- .TP
- .B reply_to_hdr
- (String)
- When replying to mail,
- .I Mush
- searches for return paths from the message by searching for
- the message headings \*QReply-to\*U, \*QReturn-path\*U, and \*QFrom:\*U,
- in that order.
- If none are found, then the first line of the
- message created by the delivery system is parsed and the address
- given there is used.
- If the variable
- .B reply_to_hdr
- is set to a of headers (delimited by spaces or commas), then that list
- is searched.
- If none of the headers listed in the variable exist
- in the message, then a warning message is printed and the default
- headers are used.
- See the
- .B reply
- command for more details.
- .TP
- .B sendmail
- (String)
- If set, the program and arguments described by this variable will
- be executed to actually deliver mail sent by
- .I Mush.
- .TP
- .B screen
- (Numeric)
- May be set to the number of message headers to display at a time in the
- line and curses modes.
- .TP
- .B screen_win
- (Numeric)
- Man be set to the number of message headers to display in the tool mode.
- A subwindow is created for message headers, and its size is large
- enough to hold $screen_win headers.
- .TP
- .B show_deleted
- (Boolean)
- If true, deleted message headers are displayed along with
- other messages ('*' indicates a deleted message).
- In curses mode, this variable is ignored and deleted messages are always
- displayed with other messages to facilitate undeleting messages.
- .TP
- .B show_hdrs
- (String)
- Set to a list (space and/or comma separated) of headers which are to be the
- only headers displayed when viewing a message.
- This variable disables the headers supressed by the
- .B ignore
- command.
- For example,
- .sp
- .ti +2
- set show_hdrs = "from date subject to cc"
- .sp
- will only display the headers,
- .B From: Date: Subject: To: Cc:
- in their entirety.
- .TP
- .B sort
- (Boolean/string)
- The value of this variable is the same as the arguments to the
- .B sort
- command.
- This variable is used for the initialization file to presort
- mail in the system mailbox upon entering mush.
- See the COMMANDS section for more information.
- .TP
- .B squeeze
- (Boolean)
- Whenever messages are read, piped, or saved, if this variable is set,
- all consecutive blank lines are squeezed into one blank line.
- .TP
- .B toplines
- (Numeric)
- The number of lines of a message to print when the "top" command
- is issued.
- If unset, $crt lines are printed.
- .TP
- .B unix
- (Boolean)
- If set, commands which are not
- .I Mush
- commands are considered to be
- .I UNIX
- commands.
- This removes the inconvenience of requiring the user to do
- shell escapes to do quick UNIX commands.
- For systems that support job control, SIGTSTP will stop the entire shell as
- well as the process being executed.
- When SIGCONT is delivered, both will receive the
- signal and the shell will continue to wait for the job to finish.
- .sp
- Due to the lack of real job control, input/output redirection and UNIX command
- piping, this mode of the shell is not intended to be used as a login shell.
- .sp
- If a
- .I Mush
- command conflicts with a UNIX command, use the command
- .B sh
- to force execution as a shell command.
- .sp
- .I "WARNING: Be aware that Mush commands return message lists, NOT TEXT."
- You cannot pipe UNIX or shell commands to or from UNIX commands.
- UNIX commands should be simple commands without pipes or metacharacters.
- .sp
- This feature is not available for the graphics (tool-based) mode.
- .TP
- .B verbose
- (Boolean)
- Passes verbose flag to mail delivery systems when sending mail.
- .TP
- .B verify
- (Boolean)
- When through editing messages, just before sending,
- .B verify
- will ask you if you want to send, continue editing, or abort the
- whole message all together.
- .TP
- .B visual
- (String)
- May be set to the visual editor to use when ~v is specified.
- Default is vi.
- The visual editor is invoked by the \-e arguments to the
- commands,
- .B respond
- and
- .BR mail .
- .TP
- .B warning
- (Boolean)
- If set, warning messages are printed when:
- .in +4
- .ti -2
- \(bu a command line alias (\*Qcmd\*U) looks like a command.
- .br
- For example,
- .ti +2
- cmd mail 'set fortune; \\mail'
- .ti +2
- cmd respond 'unset fortune; \\respond;'
- .ti -2
- \(bu a variable is set differently from its default value.
- .br
- For example, if the escape character is set to something other
- that the tilde (~), then a warning message will be printed.
- .ti -2
- \(bu a date format from a message is unknown.
- .br
- The date of a message is taken from the \fBDate:\f header.
- If the date on that header is unknown, other headers are searched for a
- valid date format until a legal one is found.
- This date may not be
- correct in that it was the date the message was received, not sent.
- .in -4
- .sp
- The intent is so that users who are used to their own environments
- will be aware of changes in other environments should they be forced
- to use them.
- There may also be warning messages of failed routines
- or assertions which are not fatal enough to interrupt normal running
- of the program.
- .TP
- .B wrap
- (Boolean)
- Normally, when the last message is deleted, the current message
- pointer remains pointing to the last message and the user is done
- reviewing his mail.
- If the
- .B wrap
- variable is set, the current message pointer will wrap around to the
- beginning of the user's messages again to the next undeleted message.
- This also applies to the
- .B next
- command.
- .SH "MAIL ADDRESSES"
- Whenever a command which requires a user address or set of addresses
- is specified
- .RB ( mail ,
- .BR reply ,
- .BR alias ,
- .BR etc ),
- the addresses given must be separated by commas.
- Most casual users specify addresses that contain no comments or whitespace.
- The simplest addresses are just the login names of the users you wish to send
- your message to:
- .sp
- .ti +2
- \fBmail\fR fred barney wilma betty
- .sp
- In these cases,
- .I Mush
- can figure out that they are separate addresses and
- insert commas between addresses automatically.
- .sp
- .ti +2
- To: fred, barney, wilma, betty
- .sp
- Addresses may also contain `!', `@' and `%' characters which are used
- to separate hostnames and the final user name from each other.
- This is primarily used to mail to users on other machines.
- UUCP addresses are specified as
- .sp
- .ti +2
- host1!host2!user
- .sp
- where there may be as many hosts as necessary to route the message
- to the recipient user.
- Here, the user's account is on \*Qhost2\*U
- and that machine is connected to \*Qhost1\*U.
- .I Domain
- addresses (also called Arpanet and RFC822 addresses) are specified as
- .sp
- .ti +2
- user@host.domain
- .ti +2
- user%host2.domain@host1
- .sp
- where \*Qdomain\*U is a domain name such as \*Q.berkeley.edu\*U or \*Q.com\*U.
- As in the first example, the user is on \*Qhost2\*U, but that machine talks
- to \*Qhost1\*U.
- It is beyond the scope of this document to discuss in detail the ramifications
- of internetwork mailing.
- More information can be obtained through your system manager.
- .PP
- .I Mush
- understands addresses containing a comment field.
- Comment fields do not affect the destination address of mail being sent.
- These fields are purely for
- human legibility and may be specified according to the following constraints:
- .sp
- Anything within angle brackets is an address; whatever is outside of the
- address is considered a comment:
- .sp
- .ti +2
- Dan Heller <sun!island!argv>
- .ti +2
- Dan Heller <argv%island@sun.com>
- .sp
- Anything that has parentheses is a comment; whatever is outside of the
- parentheses is considered the address:
- .sp
- .ti +2
- sun!island!argv (Dan Heller)
- .ti +2
- argv%island@sun.com (Dan Heller)
- .sp
- Double quotes (") are treated just like parentheses:
- .sp
- .ti +2
- "Dan Heller" sun!island!argv
- .ti +2
- "Dan Heller" island!argv@sun.com
- .sp
- If the comment is to contain a comma, the first case above may not be used;
- you must use either the parenthesis or double-quote cases.
- .sp
- .ti +2
- fred@flintstone.bed.rock (Fred Flintstone, Cave Man)
- .sp
- If the comment contains unbalanced quotes, unpredictable results may occur
- (Mush won't deliver the mail).
- .sp
- Since the angle brackets have the highest precedence, quotes or parentheses
- may be used in conjunction with one another.
- .sp
- .ti +2
- Yabba Dabba Doo (Fred Flintstone) <fred>
- .ti +2
- Scoobie "Doobie" Doo <scooby@shaggys.mystery.machine>
- .PP
- Multiple addresses may appear on a line:
- .sp
- .in +2
- island!argv@sun.com argv@garp.mit.edu dheller
- .in -2
- .sp
- Because there is no indication of comments (parenthesis, angle bracket,
- or quotes), it is assumed that these are separate addresses and mush will
- insert commas between these addresses accordingly.
- It is for this reason that the user is encouraged to explicitly insert
- commas between all mail addresses and not depend on the automation of comma
- insertion to correctly separate addresses from one another.
- .PP
- Mail aliases may contain addresses of the form described above.
- .sp
- .nf
- .in +2
- .ta 1.5i
- alias george George Jetson <george@spacely.space.sprokets>
- alias jane Jane Jetson <jane@sky-high.appts>
- alias group george, jane
- .in -2
- .fi
- .sp
- You can mail using the alias as an address and it will be expanded
- accordingly.
- You can not, however, reference an alias and specify a
- comment or another address at the same time.
- .sp
- .ti +2
- To: The Jetsons <group>
- .sp
- The alias \*Qgroup\*U will not be expanded because the angle brackets
- causes it to be considered as another address entirely.
- .SH FILES
- .nf
- .ta 2.0i
- /usr/spool/mail/* Directory for incoming mail
- ~/Mail Default \fBfolder\fR directory
- ~/mbox File where old mail is saved
- ~/.mushrc File giving initial \fIMush\fR commands
- ~/.mailrc Alternate initialization file
- ~/.edXXXXXXX Temporary for file for outgoing messages
- ~/.mushXXXXXX Temporary mail file (copy of current folder)
- .fi
- .PP
- Temporary files which are created by the program are always
- created with read/write access to the owner only; group and other
- permissions are never set.
- This is also true for the /usr/spool/mail/* files.
- All other files created by the user via commands internal or external
- to the program have permissions set by the user's default umask.
- If the umask is reset within the program, the mask remains
- intact even after exiting.
- Remember to set the variable
- .B unix
- before attempting to set the umask value.
- .PP
- If your system is using Sun Microsystem's NFS, take special note to
- read the manual page for mount(1).
- Filesystems mounted for read/write
- access should be mounted as \*Qhard\*U NFS mounts or you may lose
- mailboxes during a timeout during a write or update.
- .PP
- Filesystems that use RFS still have bugs to be ironed out in the way
- of owners and permissions concerning utime(2).
- .SH "SEE ALSO"
- .IR Mail (1),
- .IR binmail (1),
- .IR csh (1),
- .IR aliases (5),
- .IR mount (1),
- .IR mailaddr (7),
- .IR sendmail (8),
- .IR printf (3),
- .IR execl (3),
- .IR umask (1),
- .IR utime (2).
- .SH AUTHOR
- This code was written entirely by Dan Heller and contains no UNIX sources.
- It is also not a modified version of any other mail user agent.
- Similarities
- with any other mailer may have been designed for compatibility reasons.
- .PP
- argv@spam.istc.sri.com sun!island!argv
- .SH BUGS
- The curses interface uses the curses library.
- The routines from the library that are used are the most basic and simple to
- avoid possible bugginess that different versions of UNIX might have.
- However, one unavoidable problem is the reverse video mode.
- Depending on your terminal,
- the termcap entry for it, and the version of curses you are running,
- the reverse video may makes things worse than desired.
- In such situations, the user should set the variable
- .B no_reverse
- to not get reverse video.
- \&`^R' may still be entered at runtime in the curses
- interface to toggle reverse video.
- .PP
- If the program is already running and the system [later] has to swap
- and there is no swap space left, there may be problems.
- One such problem is sending mail.
- If this happens, then sending mail
- will fail and a segmentation fault from the spawned forked child will occur
- unless the -v flag was given to mail.
- The unsent letter will not be removed from the editing file ($home/.edXXXXXX)
- and may be recovered.
- .PP
- Many functions available to the line oriented mode (shell mode)
- are not available to the tool mode.
- For example,
- .B pick
- may not be directly accessed although experienced users may find that
- typing pick commands within single backquotes in the \*Qrange\*U panel item
- in the header window will indeed pick messages.
- This is mostly for selecting the \*Qdelete range\*U item
- or the middle mouse button icon in the header panel.
- .PP
- Shell escapes (of any kind) may not be called from
- the tool/graphics mode.
- The reason for this is that there is no tty
- .I window
- to run commands from.
- It is impossible to determine whether or not the user wants to run an
- interactive program or not so it is best to disallow its usage all together.
- The experienced window user
- can figure out how to really do shell layers from within the tool mode.
- .PP
- Toggling from the curses mode to the line mode to get the full
- functionality of the shell/line mode is unfortunately necessary
- in the name of \*Quser friendliness.\*U
- Mostly, this is only necessary
- for piping of commands and using the pick command.
- .PP
- The function keys and their ability to
- .I work
- has been variable depending on the version of SunWindows/SunView
- your Sun Workstation has.
- From time to time, it works, but when it
- doesn't, it seems to be related to other user or system definable
- dot-files or whatever.
- I hardly use them, so I haven't had a chance
- to really debug that part much.
- My experiences have shown them to
- work in Sun versions 2.0, 2.2, and 3.3, but not any other version.
- .PP
- When using
- .B vi
- in the tool/graphics mode, periodically the window will be one
- line \*Qshort.\*U
- That is, scrolling will be off by one line and you may
- have to redraw the window (using \*Qz.\*U in vi) to get it in sync again.
- This is a known problem with SunWindows, but Sun refuses to fix it
- as SunWindows are \*Qobsolete.\*U
- .PP
- When running on full filesystems,
- .I Mush
- may complain or not even run since it needs temporary space with which
- to work.
- Instead of finding new filesystems on it's own,
- .I Mush
- leaves this task up to the user.
- The workaround is to set the variable
- .B home
- in the initialization file to be a writable place in a filesystem which
- has enough disk space.
- This will set the user's home directory to be
- set incorrectly, but resetting the home manually once in the shell
- will correct the problem.
- .PP
- Most of the other known and documented bugs
- are in the supplied README file accompanying the source.
- Of course, the source is an excellent place to look as most known bugs are
- documented right in the source code.
- A good way to track suspicious bugs is to use the
- .B debug
- command, but note that
- this command is very difficult to use in curses mode.
-