home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume18 / mush6.4 / part18 / mush.1.2
Text File  |  1989-03-12  |  50KB  |  1,629 lines

  1. .sp
  2. .nf
  3. .ti +2
  4. alias dan dheller@cory.berkeley.edu island!argv@sun.com
  5. .fi
  6. .sp
  7. This defines the name \*Qdan\*U to be shorthand for two addresses,
  8. both of which happen to be Dan Heller.
  9. .sp
  10. The command
  11. .B unalias
  12. can be used to remove an alias definition.
  13. .sp
  14. With no arguments,
  15. .B alias
  16. prints out all the current aliases.
  17. With one argument, it prints the list associated with that name,
  18. and with more than one argument, it creates a new alias.
  19. .TP
  20. .BR alternates " [host-list] [!path!login] [*]"
  21. .RB ( alts )
  22. This command
  23. is useful if you have accounts on several machines.
  24. It can be used to inform
  25. .I Mush
  26. that your login name at each of the listed hosts is really you.
  27. When you
  28. .B reply
  29. to messages,
  30. .I Mush
  31. will not send a copy of the message to your login name at any of the
  32. hosts listed on the
  33. .B alternates
  34. list.  If the special symbox \*Q*\*U is used, then your login name is
  35. matched against all pathnames and local addresses.
  36. .sp
  37. If you have another login name on the local or remote machine, then
  38. that login may be specified by preceding the login name or the path
  39. to the login name by a `!' character.
  40. .sp
  41. For example,
  42. .sp
  43. .nf
  44. .ti +2
  45. alts island maui molokai ceylon !cory.berkeley.edu!dheller !root
  46. .fi
  47. .sp
  48. are all either hostnames or pathnames to my other accounts.
  49. The last item, \*Q!root\*U will match root that is only destined for my
  50. workstation.
  51. Root accounts elsewhere are not considered to be me.
  52. .sp
  53. If the
  54. .B alternates
  55. command is given with no arguments, the current set of alternate
  56. names is displayed.
  57. .TP
  58. .BR bind " [string [command [parameters]]]"
  59. .ns
  60. .TP
  61. .BR unbind " string"
  62. .rs
  63. Bind the sequence of keystrokes specified by
  64. .I string
  65. to the curses-mode function,
  66. .IR command .
  67. The
  68. .I string
  69. is usually one or two characters, or a sequence sent by
  70. one of the \*Qfunction keys\*U of a particular terminal.
  71. See the CURSES INTERFACE section for a complete list of curses-mode
  72. functions; this interface is not available on all systems.
  73. The
  74. .I parameters
  75. are currently recognized only for the special
  76. .B macro
  77. function; see the
  78. .B bind-macro
  79. command for details.
  80. .sp
  81. If no arguments are given to
  82. .BR bind ,
  83. the current set of curses bindings are listed;
  84. if only a
  85. .I string
  86. argument is given, the binding for that string is listed;
  87. and if both a
  88. .I string
  89. and a
  90. .I command
  91. are given, a curses binding is created such that when the
  92. .I string
  93. is typed in curses mode, the function specified by
  94. .I command
  95. will be executed.
  96. .sp
  97. Bindings can be removed by using the
  98. .B unbind
  99. command.
  100. .TP
  101. .BR bind-macro " [string [expansion]]"
  102. This command is an abbreviation, which invokes the
  103. .B bind
  104. command with the special function
  105. .B macro
  106. as the second argument.
  107. The effect of binding a curses macro is that whenever the
  108. .I string
  109. is typed in curses mode, the effect is the same as if the
  110. .I expansion
  111. had been typed instead.
  112. A special sytax is provided for including non-printing (control)
  113. characters in both the
  114. .I string
  115. and the
  116. .IR expansion ;
  117. see the CURSES INTERFACE section and the MACROS section for details.
  118. .sp
  119. If no arguments are given,
  120. .B bind-macro
  121. will list the current curses mode macros.
  122. It is otherwise identical to
  123. .in +4
  124. .B bind
  125. .I string
  126. .B macro
  127. .IR expansion .
  128. .in -4
  129. .TP
  130. .B cd
  131. Change the working directory to that specified, if given.
  132. If no directory is given, then changes to the user's home directory.
  133. .TP
  134. .BR cmd " [name [command]]"
  135. .ns
  136. .TP
  137. .BR uncmd " name"
  138. .rs
  139. Command line aliases are set and unset using these commands.
  140. More extensive information is given in the LINE-MODE INTERFACE section.
  141. .B Uncmd
  142. may take `*' as an argument to uncmd everything set.
  143. .TP
  144. .BR debug " [N]"
  145. Set debugging level to N (1 by default).
  146. When in debug mode, the user can see some of the flow of
  147. control the program makes while executing.
  148. The intent of the debug level is for tracking down
  149. bugs with the program at specific locations.
  150. Occasionally, the program may segmentation fault and core dump.
  151. When this happens, the user can reenter the program,
  152. set the debugging level and recreate the problem.
  153. .sp
  154. If the user suspects memory allocation problems, a debugging
  155. level of 2 or higher will prevent memory from being freed so that
  156. memory bounds won't get overwritten.
  157. .sp
  158. If the user suspects sendmail errors,
  159. a debugging level of 3 or higher will prevent sendmail from starting
  160. and outgoing mail is directed to the standard output instead of actually
  161. being sent.
  162. .TP
  163. .BR delete / undelete
  164. .RB ( d / u )
  165. Takes a message list as argument and marks them all as deleted.
  166. Deleted messages will not be saved in
  167. .IR mbox ,
  168. nor will they be available for most other commands.
  169. If the folder has not been updated, deleted messages can be recovered
  170. with
  171. .BR undelete .
  172. .TP
  173. .B dt
  174. Deletes the current message and prints the next message.
  175. .TP
  176. .BR echo " [-n] [-h | -p] arguments"
  177. Echoes all the arguments given on the command line, expanding variables
  178. and history references.  If the -n flag is given, then no newline is appended.
  179. If the -h flag is given, then echo looks for formatting parameters
  180. as if the "from" command were given on the "current" message.
  181. If the -p flag is given, then echo looks for formatting parameters
  182. as if your prompt were changed temporarily.
  183. .sp
  184. Examples:
  185. .sp
  186. .nf
  187. .ti +2
  188. echo -h This message is from %a and is dated %d.
  189. .br
  190. might produce:
  191. .ti +2
  192. This message is from island!argv and is dated Dec 14, 1988.
  193. .sp
  194. .ti +2
  195. echo -p There are %n new messages to read in %f.
  196. .br
  197. might produce:
  198. .ti +2
  199. There are 5 new messages to read in /usr/spool/mail/argv.
  200. .fi
  201. .sp
  202. Note that -h and -p cannot be specified together.
  203. .TP
  204. .B edit
  205. .RB ( e ,
  206. .BR v )
  207. This function lets you edit messages in your folder.  When editing messages,
  208. be careful not to remove certain message headers such as Date or From or
  209. any others that looks important.  If you remove or change something you
  210. shouldn't have, you will be notified and the temporary file used to edit
  211. the message will not be removed.
  212. .TP
  213. .BR eval " arg ..."
  214. As in most shells, the list of arguments to
  215. .B eval
  216. is re-parsed and then executed as a command.
  217. This is useful primarily for causing multiple levels of variable expansion.
  218. .TP
  219. .B exit
  220. .RB ( x )
  221. Returns immediately to the login shell without
  222. modifying the current folder or system spool directory.
  223. .TP
  224. .BR expand " alias-list"
  225. Aliases, given as arguments, are expanded as they would be if you
  226. were to send mail to each.
  227. .TP
  228. .BR fkey " [string [command]]"
  229. .ns
  230. .TP
  231. .BR unfkey " string"
  232. .rs
  233. With no arguments,
  234. .B fkey
  235. prints the values of the function keys.
  236. The function keys are used in the graphics tool mode only.
  237. You can set the values of function keys explicitly using the
  238. .B fkey
  239. command, but the whole process is automated by using the function key
  240. interface provided by the graphics mode.
  241. By default, the last key in each function key pad displays
  242. the values of all the function keys in that set.
  243. There are the left, right and top set of keys.
  244. .sp
  245. Function keys may be unset with the
  246. .B unfkey
  247. command, or by using the function key interface.
  248. .TP
  249. .BR flags " [msg-list] [ [ + | \- ] [ D N O P R r S U ] ]"
  250. This command modifies the flag bits set on the listed messages.
  251. It should not normally be needed, but is provided to allow users, through
  252. the
  253. .B cmd
  254. facility, to alter the ways that certain conditions are recorded.
  255. Multiple flag bits may be set or modified at once.
  256. The modifiable flag bits are:
  257. .sp
  258. .nf
  259. .ta 2i
  260. .in +4
  261. D    deleted
  262. N    new
  263. O    old
  264. P    preserved
  265. R    read
  266. r    replied-to
  267. S    saved
  268. U    unread
  269. .in -4
  270. .fi
  271. .sp
  272. If a `+' or `\-' precedes the list of bits, the specified bits are turned
  273. on or off respectively, without modifying other bits.
  274. If no `+' or `\-' is given, then the list of bits is set explicitly and
  275. all other bits are lost.
  276. .sp
  277. Message lists can be piped to the
  278. .B flags
  279. command; for example, you may use
  280. .sp
  281. .nf
  282. .ti +4
  283. cmd r 'reply \\!* | flags + r'
  284. .fi
  285. .sp
  286. to mark as
  287. .I replied-to
  288. all messages included in a reply,
  289. .TP
  290. .BR folder " [\-N] [\-r] [!] [ %[user] | # | & | file ]"
  291. .RB ( fo )
  292. Change current folder.
  293. With no arguments, prints the name of the current folder.
  294. The arguments are:
  295. .nf
  296. .ta 1i
  297. .in +2
  298. \-N    No headers are displayed upon entering new folder
  299. \-r    Set Read-Only mode (can't alter new folder)
  300. !    If specified, the current folder is not updated
  301. %[user]    Change to /usr/spool/mail/[user] (default is yours)
  302. #    Switch back to the previous folder
  303. &    Change folder to $mbox (default is ~/mbox)
  304. .in -2
  305. .fi
  306. .sp
  307. This command can only appear in a pipeline if it is the first command;
  308. it returns a list of all the messages in the new folder.
  309. .TP
  310. .B folders
  311. List the names of the folders in your folder directory.
  312. Your folder directory is the directory
  313. .I Mail
  314. in your home directory.
  315. Or, you can set the variable
  316. .B folder
  317. to specify another folder directory.
  318. .br
  319. .TP
  320. .BR from " [ + | \- ]"
  321. .RB ( f )
  322. With no arguments,
  323. .I from
  324. will print the current message's header.
  325. If given a message list,
  326. .I from
  327. will print the headers of those messages that are in the list.
  328. .sp
  329. The special arguments `\-' and `+' can be given to move the
  330. current message pointer to the previous or next message,
  331. respectively, while also printing that message's header.
  332. If a message list was given in addition to `\-' or `+', then
  333. the current message pointer will be set to the first or last
  334. message, respectively, in the message list given.
  335. Examples:
  336. .sp
  337. .ti +2
  338. pick \-f Dan | from +
  339. .sp
  340. will print the headers of all messages that contain \*QDan\*U in
  341. in the author's name and set the current message pointer to
  342. the last one of that kind in the list.
  343. .sp
  344. .ti +2
  345. from \- 10-30 {16}
  346. .sp
  347. will print the headers of messages 10 through 30 except for
  348. message 16 and set the current message pointer to 10.
  349. .sp
  350. .ti +2
  351. from +
  352. .sp
  353. will print the header of the message after the current message
  354. and increment the current message pointer to the next message.
  355. .sp
  356. .ti +2
  357. from $
  358. .sp
  359. will print the last message's header and not move the current
  360. message pointer.
  361. .TP
  362. .BR headers " [ [\-H][:c] ] [ + | \- ]"
  363. .RB ( h ,
  364. .BR z )
  365. Prints a screenful of message headers listed in the
  366. current folder.
  367. If a message number is given on the command line,
  368. the first message of the screenful of messages will be
  369. that message number.
  370. The `z' command is identical to the \*Qh +\*U
  371. command and remains for compatibility reasons.
  372. The variable
  373. .B screen
  374. may be set to tell how many headers are in a screenful.
  375. In the graphics tool mode, the variable
  376. .B screen_win
  377. contains the number of headers used in the headers subwindow.
  378. .sp
  379. A typical header may look like:
  380. .sp
  381. .ti +2
  382. 5 >N  argv@spam.istc.sri.com Feb 19, (10/278) Test
  383. .sp
  384. This line indicates that it is message number 5 and the
  385. .I >
  386. indicates that the \*Qcurrent message pointer\*U is pointing to this
  387. message.
  388. The next two positions indicate the message status.
  389. The first
  390. may be one of, \*QN\*U (new and unread), \*QU\*U (old, but still
  391. unread), \*Q*\*U (deleted), \*QS\*U (saved), \*QP\*U (preserved),
  392. or \*Q \*U (read).
  393. The second position may have an \*Qr\*U if the message
  394. has been replied to.
  395. .sp
  396. The author of the example message header is
  397. .IR argv@spam.istc.sri.com ,
  398. the date is
  399. .IR "Feb 19" ,
  400. the number of lines in the message is
  401. .IR 10 ,
  402. the number of characters is
  403. .I 278
  404. and the subject of the message is
  405. .IR Test .
  406. The format of the message header shown here is described by
  407. the string variable
  408. .BR hdr_format .
  409. The example given above has a hdr_format of
  410. .sp
  411. .ti +2
  412. set hdr_format = "%25f %7d (%l/%c) %25s"
  413. .sp
  414. See the description of
  415. .B hdr_format
  416. in the VARIABLES section for more information on header formats.
  417. .sp
  418. You can print a special subset of message headers by using the
  419. .I \-H:c
  420. option, where `c' is one of:
  421. .nf
  422. .in +2
  423. .ta 1i
  424. .if t .ta 1.5i
  425. a       all messages
  426. d       deleted messages
  427. n       new messages
  428. o       old messages
  429. r       replied to messages
  430. s       saved messages
  431. u       unread messages
  432. .fi
  433. .in -2
  434. Note that the \-H is not required; \*Qheaders :c\*U is valid.
  435. .sp
  436. More options to the
  437. .B headers
  438. command include
  439. .RI ` + '
  440. and
  441. .RI ` \- '.
  442. Each will print the next or previous screenful of message headers.
  443. The
  444. .B z
  445. command can also be used; `z' alone will print the next
  446. screenful (thus, the `+' is optional)
  447. and \*Qz \-\*U is equivalent to \*Qh \-\*U.
  448. .sp
  449. Headers affects all the messages it displays, so piping may be done
  450. from the headers command.
  451. Piping to the headers command causes the
  452. message headers affected by the previous command to be printed.
  453. This action is identical to piping to the
  454. .B from
  455. command.
  456. .TP
  457. .BR help " [topic]"
  458. Help is provided on a per topic basis and on a general basis.
  459. For general help, just typing
  460. .I help
  461. will provide some general information as to how to get further help
  462. and a list of topics suggested for more specific help.
  463. There is also help provided for each command by using the \-?
  464. option to most commands.
  465. This option will provide command line usage information as well as a
  466. description of what the command does and how to use it.
  467. .TP
  468. .BR history " [\-h] [\-r] [N]"
  469. This command displays the command history in chronological order; early
  470. commands are printed first followed by more recent commands displayed last.
  471. Option
  472. .I \-h
  473. suppresses printing of history event numbers with each history command.
  474. Option
  475. .I \-r
  476. reverses the order of the history events displayed.
  477. .sp
  478. If a number
  479. .I N
  480. is given, then that number of previous commands is
  481. echoed rather than the number set by the variable
  482. .BR history .
  483. .TP
  484. .BR ignore / unignore " [header-list]"
  485. Display or set a list of headers to be ignored when displaying messages.
  486. When reading messages, all the message headers are displayed with the text
  487. body of the message.
  488. Since these message identifier fields are cumbersome and uninteresting
  489. in many cases, you can filter out unwanted headers by using this command.
  490. For example,
  491. .sp
  492. .ti +2
  493. ignore Received Date Message-Id
  494. .sp
  495. will ignore the three specified fields.
  496. The command
  497. .B unignore
  498. is used to reverse the effects of
  499. .BR ignore .
  500. .TP
  501. .BR lpr " [\-Pname] [msg_list]"
  502. Takes a message list and sends those messages, one by one, to the printer,
  503. each separated by page feeds.
  504. A default printer name is supplied if one is not specified on the
  505. command line (-Pprinter-name).
  506. If you have the variable
  507. .B printer
  508. set, that printer name will be used.
  509. .sp
  510. If the variable
  511. .B print_cmd
  512. is set, the command described by that variable will be used instead
  513. of the default system command.
  514. In such cases, the -P option and the
  515. .B printer
  516. variable are ignored and the command is simply executed as is.
  517. .TP
  518. .BR ls " [flags]"
  519. This command duplicates the
  520. .IR UNIX (TM)
  521. command
  522. .I /bin/ls.
  523. The variable
  524. .B lister
  525. describes flags to be passed to ls automatically.
  526. By default,
  527. .I ls
  528. always uses the -C flag (column output).
  529. .TP
  530. .BR mail " [flags] [recipient ...]"
  531. .RB ( m )
  532. Send mail to a list of users.
  533. If no recipient list is specified on the
  534. .I Mush
  535. command line, then a \*QTo: \*U prompt will request one.
  536. A list of recipients must be supplied.
  537. This implementation of
  538. .I Mush
  539. supports mailing to files and programs as recipients, but at least one
  540. legitimate user must be specified.
  541. Filenames must be full pathnames, thus, they must start with a `/' or there
  542. is no way to know whether a recipient is a pathname or a real user.
  543. The special characters `+' and `~' may precede pathnames since they are
  544. expanded first to the user's folder directory (+), as described by the variable
  545. .BR folder ,
  546. and the user's home directory (~).
  547. Mailing to programs is indicated by the pipe `|' character preceding the
  548. program name.
  549. Since the user's path is searched, full pathnames are not required for
  550. programs that lie in the user's PATH environment variable.
  551. .sp
  552. Example:
  553. .sp
  554. .ti +2
  555. mail username, /path/to/filename, "|program_name", +folder_name, ~user/mbox
  556. .sp
  557. Options are:
  558. .nf
  559. .in +2
  560. .if n .ta 1.5i
  561. .if t .ta 1.8i
  562. \-b addr-list    set list of blind carbon recipients
  563. \-c addr-list    set list of carbon copy recipients
  564. \-e    immediately enter editor (autoedit)
  565. \-F    add random fortune to the end of message
  566. \-f [msg-list]    forward msg_list (not indented)
  567. \-h [msg-list]    include msg_list with headers
  568. \-i [msg-list]    include msg_list into letter
  569. \-s [subject]    prompt for subject [set subject explicitly]
  570. \-v    verbose (passed to mail delivery program)
  571. .in -2
  572. .fi
  573. .sp
  574. The verbose option may not be available depending on the mail transport
  575. agent on your system.
  576. .sp
  577. The \-e flag causes you to enter the editor described by the variable
  578. .BR visual .
  579. .sp
  580. The \-i flag will include the current message into the body of the
  581. message you are about to send.
  582. The included message is indented by
  583. the string \*Q> \*U or by the string described by the variables
  584. .BR indent_str ,
  585. .BR pre_indent_str ,
  586. and
  587. .BR post_indent_str .
  588. See the VARIABLES section for more information on these string values.
  589. If a message list is given after the \-i option, then the messages
  590. described by that list are included.
  591. The \-h option is identical to the \-i option except that the headers of
  592. the message are also included.
  593. .sp
  594. The \-s flag looks at the next argument and sets the subject to that
  595. string.
  596. If the string is to contain spaces, enclose the entire subject
  597. in quotes.
  598. If there is no following argument, then the subject will
  599. be prompted for.
  600. This flag is useful if the user:
  601. .sp
  602. .in +2
  603. .nf
  604. \(bu does not have the variable \fBask\fR set, or
  605. \(bu wishes to change the subject used with \fBreply\fR
  606. .in -2
  607. .fi
  608. .sp
  609. The subject is not prompted for and is ignored completely if the \-f flag
  610. is specified (see below).
  611. .sp
  612. The \-f flag is for message forwarding only.
  613. An optional message list can be given just as the -i option has.
  614. The forward option does not allow you to edit the message(s) being forwarded
  615. unless the -e flag is also specified.
  616. The subject of the message (if available) is the same as the \fIcurrent\f
  617. message; it is not necessarily the subject of the message being forwarded.
  618. The subject of forwarded mail cannot be changed.
  619. However, using the \-e flag
  620. will allow the user to change the subject once in editing mode using the
  621. escape sequence, \*Q~s\*U.
  622. .sp
  623. Forwarded mail that has not been edited by the user will contain special
  624. headers such as
  625. .sp
  626. .ti +2
  627. Resent-To:
  628. .ti +2
  629. Resent-From:
  630. .sp
  631. and perhaps others, depending on your mail transport agent.
  632. Sendmail, for example, may add a number of other \*QResent-*\*U headers.
  633. .TP
  634. .BR map [ ! "] [string [expansion]]"
  635. .ns
  636. .TP
  637. .BR unmap [ ! "] string"
  638. .rs
  639. The
  640. .B map
  641. command creates or lists macros for the line mode interface, and the
  642. .B map!
  643. command creates or lists macros for the message composition mode.
  644. In either mode, macros act in such a way that, when
  645. .I string
  646. is typed, the effect is the same as if
  647. .I expansion
  648. had been typed instead.
  649. The
  650. .I string
  651. is usually one or two control characters, or a sequence sent by
  652. one of the \*Qfunction keys\*U of a particular terminal.
  653. See the MACROS section for the syntax used to specify the
  654. .I string
  655. and the
  656. .IR expansion ,
  657. and for comments on the interactions of macros in the same and in
  658. different modes.
  659. .sp
  660. If no arguments are given, these commands will display the list of
  661. macros and expansions for the appropriate mode.
  662. If only a
  663. .I string
  664. is given, they will display the
  665. .I expansion
  666. associated with that string for the appropriate mode.
  667. Otherwise, they will create a macro, associating the given
  668. .I expansion
  669. with the specified
  670. .IR string .
  671. .sp
  672. Line mode macros are unset with the
  673. .B unmap
  674. command, and composition mode macros are unset with the
  675. .B unmap!
  676. command.
  677. .TP
  678. .BR merge " [-N] folder-name"
  679. Messages from the named folder are read into the current folder.
  680. The header summaries of the merged messages are printed unless the \-N
  681. option is given (see the
  682. .B folder
  683. command, above).
  684. This command can only appear in a pipeline if it is the first command;
  685. it returns a list of all the messages from the merged-in folder.
  686. .TP
  687. .BR my_hdr / un_hdr " [header]"
  688. You can create personalized headers in your outgoing mail using this command.
  689. .sp
  690. .nf
  691. Usages:
  692. .in +2
  693. .ta 2.5i
  694. my_hdr    print all your headers
  695. my_hdr header    print value of header
  696. my_hdr header: string    set header to string
  697. un_hdr header:    unset header
  698. .in -2
  699. .sp
  700. .fi
  701. To set a header, the first argument must be a string
  702. that contains no whitespace (spaces or tabs) and must end with
  703. a colon (:).
  704. The rest of the command line is taken to be the
  705. text associated with the mail header specified.
  706. If any quotes are used in the header and the header itself is not set in
  707. quotes, then quotes should be escaped (preceded) by a backslash.
  708. This holds true for semicolons, pipe characters
  709. or any other metacharacter that
  710. .I Mush
  711. might interpret as a command line modifier.
  712. .sp
  713. If the variable
  714. .B no_hdrs
  715. is set, then your headers will not be added to outgoing messages,
  716. but no headers will be unset.
  717. The
  718. .B un_hdr
  719. command may take `*' as an argument to un_hdr everything set.
  720. .TP
  721. .BR pick " [flags] [<pattern>]"
  722. Allows the user to select particular messages from a folder.
  723. The <pattern> is a \*Qregular expression\*U as described by
  724. .IR ed .
  725. If no arguments are given, the previous expression searched for is used.
  726. You can search for messages from a user, for a particular subject line,
  727. between certain dates, and limit searches to a range of messages.
  728. You can also find all messages that do not
  729. match the same arguments mentioned above.
  730. .sp
  731. .nf
  732. Options:
  733. .ta 1.5i
  734. .in +2
  735. \-ago <format>    search for messages relative to today's date.
  736. \-d [+|\-]date    messages sent on or [+ after] [`\-' before] date.
  737. \-f    search for pattern in \*QFrom\*U field only.
  738. \-h header    search for pattern in specified header only.
  739. \-i    ignore case of letters when searching.
  740. \-r msg_list    search only the listed messages.
  741. \-s    search for pattern in \*QSubject\*U field only.
  742. \-t    search for pattern in \*QTo\*U field only.
  743. \-x    select messages not containing the pattern.
  744. .in -2
  745. .fi
  746. .sp
  747. The
  748. .I \-ago
  749. option can be abbreviated as
  750. .IR \-a .
  751. Only one of \-a, \-d, \-f, \-h, \-s and \-t can be specified at once.
  752. Entire messages are scanned for the <pattern>
  753. unless \-a, \-d, \-f, \-h, \-s or \-t is specified.
  754. Messages marked for deletion are also searched.
  755. No patterns can be specified with the \-a or \-d options.
  756. .sp
  757. For the \-d option, \*Qdate\*U is of the form:
  758. .sp
  759. .ti +2
  760. month/day/year
  761. .sp
  762. with an optional `\-' to specify that the messages of interest are those
  763. older than that date.
  764. Omitted fields of the date default to today's values.
  765. Examples of selecting on date:
  766. .nf
  767. .in +2
  768. .ta 2.0i
  769. .sp
  770. pick \-d 4/20    on April 20, this year.
  771. pick \-d \-/2/85    on or before the 2nd, this month, 1985.
  772. pick \-d +5/4    on or after May 4 of this year.
  773. pick \-d /    today only.
  774. .fi
  775. .in -2
  776. .sp
  777. At least one `/' char must be used in a date.
  778. There is no strong date checking; 2/30 would be considered a valid date.
  779. .sp
  780. For the \-ago option, the format is very simple.  Specify the number of
  781. days followed by the word \*Qdays\*U, or the number of weeks followed by
  782. the word \*Qweeks\*U, and so on with months and years.  Truncation is allowed,
  783. since only the first character is examined, so all of the following are
  784. equivalent:
  785. .sp
  786. .in +2
  787. .nf
  788. pick \-ago 1 day, 2 weeks
  789. pick \-ago 2Weeks 1Day
  790. pick \-ago 2w,1day
  791. pick \-a 2w1d
  792. .fi
  793. .in -2
  794. .sp
  795. These examples will find all messages that are exactly 2 weeks and 1 day
  796. old.  All \*Qago\*U dates collapse into \*Qday\*U time segments.  This
  797. means that months are 30.5 days long.  If more precise date selection is
  798. required, use the \-d option and specify specific dates.
  799. .sp
  800. Also note that the \-ago option allows
  801. the \*Qbefore\*U (\-) and \*Qafter\*U (+)
  802. arguments.  Thus, you may pick all messages older than 1 week with:
  803. .sp
  804. .ti +2
  805. pick \-ago \-1 week
  806. .sp
  807. Other examples of
  808. .B pick:
  809. .sp
  810. .ti +2
  811. pick \-d 2/5/86 | pick \-d \-2/5/87 | pick \-s "mail stuff" | lpr
  812. .sp
  813. will find all the messages between the dates February 5, 1986, and
  814. February 5, 1987, that contain the subject "mail stuff" and send them
  815. to the printer.
  816. .sp
  817. .ti +2
  818. pick -s Re: | delete
  819. .sp
  820. deletes messages that have \*QRe:\*U in the Subject header.
  821. .sp
  822. .ti +2
  823. folder +project | pick \-f frank
  824. .sp
  825. Finds all messages from frank in the folder described by +project.
  826. .sp
  827. .ti +2
  828. pick \-h return-path ucbvax
  829. .sp
  830. Searches all messages that have the header "Return-Path:" and determines
  831. if the string \*Qucbvax\*U is in the header.
  832. Note that case sensitivity
  833. applies only to the pattern searched, not the header itself.
  834. .sp
  835. .ti +2
  836. pick \-ago +1w | save +current
  837. .sp
  838. This finds all messages that are a week or less old and saves them in the file
  839. called \fIcurrent\fR, which is found in the user's \fIfolder\fR variable.
  840. .TP
  841. .BR pipe " [msg-list] unix-command"
  842. Allows the user to send the texts of a list of messages to a
  843. .IR UNIX (TM)
  844. command.
  845. The list of messages may either be given explicitly or may come from
  846. a mush pipeline (see \*QCommand Pipes\*U under FEATURES, and also the
  847. LINE-MODE INTERFACE section).
  848. If a list is neither given nor piped, the current message is used.
  849. Headers which have not been ignored are considered part of the message
  850. text for purposes of this command.
  851. For example,
  852. .sp
  853. .in +4
  854. .nf
  855. pipe 3 5 7 patch
  856. .fi
  857. .in -4
  858. .sp
  859. sends the text of messages 3, 5 and 7 to the
  860. .I patch
  861. utility.
  862. .sp
  863. This command can also be invoked as
  864. .BR Pipe
  865. (note capitalization), in which case only the body of the messages,
  866. and none of the message headers, are sent to the unix command.
  867. .sp
  868. When the variable
  869. .B unix
  870. is set,
  871. .IR UNIX (TM)
  872. commands can appear anywhere
  873. .I except as the first command
  874. in a mush pipeline without explicitly using
  875. .BR pipe .
  876. However, it is still necessary to specify
  877. .B Pipe
  878. in order to exclude all headers.
  879. .TP
  880. .B preserve
  881. .RB ( pre )
  882. Saves a message list in your spool directory rather than
  883. your mailbox unless it has been explicitly deleted.
  884. The variable
  885. .B hold
  886. causes all messages to be held in your spool directory automatically.
  887. .TP
  888. .B print
  889. .RB ( p ,
  890. .BR type ,
  891. .BR t )
  892. Takes a message list and displays each message on the user's terminal.
  893. If the first letter of the command is a capital letter (`P' or `T')
  894. then \*Qignored\*U headers are not ignored
  895. .I provided
  896. that the variable
  897. .B alwaysignore
  898. is not set.
  899. If this variable is set, the ignored headers will be
  900. ignored regardless of the command used to display the message.
  901. See the
  902. .B ignore
  903. command for more information about ignored message headers.
  904. .sp
  905. The `+' and the `\-' keys can be used to display the \*Qnext\*U
  906. and \*Qprevious\*U messages respectively.
  907. The `+' key has the caveat that the
  908. message is not paged at all and none of the messages headers are displayed.
  909. .TP
  910. .B pwd
  911. Prints the current working directory.
  912. .TP
  913. .B quit
  914. .RB ( q )
  915. Updates the current folder and exits from
  916. .IR Mush .
  917. If the variable \*Qhold\*U is set, all messages not marked for deletion are
  918. saved in the spool directory.
  919. Otherwise, messages that have been read are saved to
  920. .I ~/mbox
  921. or to the file described by the string variable
  922. .BR mbox .
  923. Messages marked for deletion are discarded.
  924. Unread messages go back to the spool directory in all cases.
  925. .TP
  926. .BR reply / replyall " [msg_list] [-r path] [flags] [users]"
  927. .RB ( r / R )
  928. Messages are replied to by sending mail to the sender of each message
  929. in the given message list.
  930. The command
  931. .B replysender
  932. is equivalent to
  933. .BR reply .
  934. .B Replyall
  935. responds to all the recipients as well as the sender of the message.
  936. These commands understand all the same flags as the
  937. .B mail
  938. command.
  939. .sp
  940. When constructing a return mail address to the author of a message,
  941. .B reply
  942. searches for special mail headers in the author's message that
  943. indicate the most efficient mail path for return mail.
  944. .I Mush
  945. will search for the \*QReply-To:\*U, \*QReturn-Path:\*U,
  946. and \*QFrom:\*U headers, in that order, by default.
  947. .sp
  948. If none of these fields are found in the message, the first line of the
  949. message is parsed if possible;
  950. this \*QFrom \*U line is different from the \*QFrom: \*U line.
  951. If the user wishes to change the order or the actual fields to search for
  952. return paths, then the variable
  953. .B reply_to_hdr
  954. may be set to a list of headers to be used (in the order specified).
  955. If it is set, but has no value, the first \*QFrom \*U line is used
  956. regardless of what headers the author's message contains.
  957. The \*QFrom \*U line may be specified explicitly as an item in the
  958. list of reply-to headers by specifying the header:
  959. .B From_.
  960. See the VARIABLES section for more information about
  961. .B reply_to_hdr.
  962. .sp
  963. When replying to all recipients of the message using the
  964. .B replyall
  965. .RB ( R )
  966. command, only the original author's address can be obtained from
  967. the message headers.
  968. There is no way determine the best path to the
  969. other recipients of the message from message headers aside from taking
  970. their addresses directly from the \*QTo:\*U and \*QCc:\*U lines.
  971. .sp
  972. Example:
  973. .sp
  974. .ti +2
  975. replyall 3,4,5 -i 4,5 7 -s response mail-group
  976. .sp
  977. Here, messages 3, 4 and 5 are replied to (all the authors are obtained
  978. from each of those messages as well as the recipients from those messages)
  979. and the text from messages 4, 5 and 7 are included in the body of the reply.
  980. The subject is set to "response" and the alias mail-group is appended to
  981. the list of recipients for this message.
  982. .sp
  983. The -r flag will prepend the path to each recipient in the address list
  984. with the indicated path.  This overrides the value of \fBauto_route\fR,
  985. but has the exact same functionality.  See the explanation of the variable
  986. in the VARIABLES section.  Also see the MAIL ADDRESSES section for more
  987. information concerning replying to messages.
  988. .nf
  989. .TP
  990. .BR save / write / copy " [!] [-s | -a] [msg-list] [filename / directory]"
  991. .fi
  992. .RB ( s / w )
  993. With no arguments,
  994. .B save
  995. and
  996. .B write
  997. will save the current message to the file
  998. .I mbox
  999. in the user's home directory (or the file specified by the
  1000. .B mbox
  1001. variable).
  1002. If a message list is given, then the messages specified by
  1003. the list are saved.
  1004. If a filename is given, then that filename is used instead of mbox.
  1005. The -s options forces the filename used to be that of the subject of
  1006. the message.  Similarly, the -a option causes the filename used to be
  1007. that of the author of the message being saved.  If more than one message
  1008. is being saved, the subject or author name used is that of the smallest
  1009. message number (since message lists have no order of precedence).  With
  1010. these two options, a directly name may be given to specify a directory
  1011. other than the current directory.
  1012. .sp
  1013. If the file exists and is writable, the specified command
  1014. will append each message to the end of the file.
  1015. If the `!' is given, then the file is overwritten causing whatever contents it
  1016. contains to be lost.
  1017. The
  1018. .B write
  1019. command differs from
  1020. .B save
  1021. and
  1022. .B copy
  1023. in that the message headers are
  1024. .I not
  1025. saved in the file along with the body of text.
  1026. .sp
  1027. If the current folder is the system mailbox, then saved messages are
  1028. marked for deletion when the user exits using the
  1029. .B quit
  1030. command.
  1031. If the variable
  1032. .I keepsave
  1033. is set or the current folder is not the system mailbox, then messages are
  1034. not marked for deletion.
  1035. The
  1036. .B copy
  1037. command is is like
  1038. .B save
  1039. except that messages are never marked for deletion, whether or not
  1040. .B keepsave
  1041. is set.
  1042. .sp
  1043. Because message lists are used to determine the messages to be saved,
  1044. if the user wishes to save messages to a file that begins with a digit
  1045. or any other message list metacharacter, a backslash should precede
  1046. the filename to escape the message list expansion routine.
  1047. The backslash will not become a part of the filename.
  1048. .TP
  1049. .BR saveopts " [file]"
  1050. The complement of
  1051. .BR source ,
  1052. .BR saveopts ,
  1053. will save all settable variables, aliases
  1054. and cmd's in the initialization file.
  1055. (See the INITIALIZATION
  1056. section for more information on initialization files.)
  1057. If an argument is given, that file is used.
  1058. Beware that this will overwrite files, so any \*Qif\*U expressions
  1059. will be lost, as will settings that have changed since entering
  1060. .IR Mush .
  1061. Using saveopts is highly discouraged
  1062. and is intended for the naive user only.
  1063. .TP
  1064. .BR set " [[?]variable [= value]]"
  1065. .ns
  1066. .TP
  1067. .BR unset " variable"
  1068. .rs
  1069. With no arguments, prints all variable values.
  1070. Otherwise, sets option.
  1071. Arguments are of the form \*Qoption=value\*U (whitespace is allowed).
  1072. Boolean expressions need not have \*Q=value\*U associated in the command.
  1073. .sp
  1074. The special command
  1075. .sp
  1076. .ti +2
  1077. set ?all
  1078. .sp
  1079. will print all known variables utilized by the program and a brief
  1080. description of what they do.
  1081. The user may set and manipulate his own set of variables, but internal
  1082. variables that are utilized by the program are the only ones displayed.
  1083. .sp
  1084. The command
  1085. .sp
  1086. .ti +2
  1087. set ?variable_name
  1088. .sp
  1089. will print the same information for one variable instead of all variables.
  1090. You may unset everything by issuing the command \*Qunset *\*U.
  1091. .sp
  1092. It is possible to set a variable to a list of messages returned by another
  1093. command by using the piping mechanism.  For example,
  1094. .sp
  1095. .ti +2
  1096. pick \-s Status Reports | set reports
  1097. .sp
  1098. The variable, reports, now contains a message list which can be used
  1099. as the message list argument to any commands which accepts one.
  1100. .sp
  1101. .ti +2
  1102. mail \-i $reports boss
  1103. .sp
  1104. This command will mail to \*Qboss\*U and include all the messages held
  1105. in the \fIreports\fP variable.
  1106. .TP
  1107. .BR sh " [command]"
  1108. Invokes an interactive version of the shell.
  1109. The shell spawned is described by the variable
  1110. .BR shell .
  1111. If the optional argument
  1112. .B command
  1113. is given, then that command is executed under the Bourne Shell.
  1114. If the special character `&' is at the end of any shell command,
  1115. then the command will be executed in background.
  1116. .TP
  1117. .BR source " [file]"
  1118. Read
  1119. .I Mush
  1120. commands from a file.
  1121. If no filename is specified, the files searched
  1122. for are .mushrc or .mailrc in the user's home directory.
  1123. If the environment variable MAILRC is set, then that file is sourced.
  1124. If a filename is given on the command line, that file is sourced.
  1125. See the INITIALIZATION heading and the
  1126. .B home
  1127. variable descriptions for more information.
  1128. .TP
  1129. .BR sort " [\-] [a | d | s | S | R]"
  1130. This command
  1131. will sort messages according to author, date, status or subject
  1132. (with or without considering the "Re: ", in replied messages).
  1133. In addition, the messages can be sorted in reverse order (same arguments).
  1134. .sp
  1135. .nf
  1136. Options:
  1137. .in +2
  1138. .ta 1i
  1139. \-    reverse sort order
  1140. a    sort by author (alphabetical)
  1141. d    sort by date
  1142. s    sort by subject ignoring \*QRe:\*U
  1143. R    sort by subject (alphabetical)
  1144. S    sort by message status
  1145. .in -2
  1146. .fi
  1147. .sp
  1148. Note that only one argument (except for the `\-'), may be used.
  1149. By default (no arguments),
  1150. .B sort
  1151. sorts messages by
  1152. .IR status .
  1153. New, unread messages are first, followed by preserved messages,
  1154. and finally deleted messages are placed at the end of the list.
  1155. .sp
  1156. When sorting by date, the boolean variable
  1157. .B date_received
  1158. is checked.  If it is set, then sorting goes by date received.
  1159. Otherwise (default), sorting is by date sent by the original author.
  1160. .sp
  1161. If the variable
  1162. .I sort
  1163. is set, messages are sorted each time the user's system mailbox is
  1164. read as the current folder.
  1165. The
  1166. .I sort
  1167. variable can be set either to nothing or to legal "sort" arguments.
  1168. .sp
  1169. Subsorting can be achieved by using the piping mechanism intrinsic to
  1170. the line mode interface;
  1171. no other interface allows subsorting \*Qdirectly\*U.
  1172. Each interface may allow subsorting if appropriate actions are taken,
  1173. as discussed below.
  1174. .sp
  1175. To subsort messages, the folder must be in a particular order to begin
  1176. with.
  1177. To sort mail by author and then by subject heading, you would
  1178. have to first sort by author:
  1179. .sp
  1180. .ti +2
  1181. sort a
  1182. .sp
  1183. Now that the messages are in order according to author, sorting a
  1184. sublist of messages is done using pipes:
  1185. .sp
  1186. .ti +2
  1187. pick \-f island!argv@sun.com | sort s
  1188. .sp
  1189. This finds all messages from the user \*Qisland!argv@sun.com\*U
  1190. and sorts them by subject.
  1191. Since these messages are already grouped together via the
  1192. previous sort command, the sorting by subject (s) will restrict itself
  1193. to such messages.
  1194. You may specify the exact message list by specifying
  1195. that message list on the command line and using a pipe:
  1196. .sp
  1197. .ti +2
  1198. 10\-. | sort d
  1199. .sp
  1200. This command means to sort the messages from 10 to the current message
  1201. according to the date.
  1202. .sp
  1203. To specify subsorting from with the curses interface, the temporary
  1204. curses escape key must be used (the colon `:') and the command issued
  1205. at the `:' prompt (as if giving an \*Qex\*U command to \*Qvi\*U).
  1206. When the command is finished, the \*Q...continue...\*U prompt is given and
  1207. the user may continue or return to the top level of the curses mode.
  1208. .sp
  1209. In the tool interface, the user must map a function key to the desired
  1210. command.
  1211. Select the \*QOpts\*U icon with the right mouse button, choose
  1212. the menu item labeled \*Qfunction keys\*U and use the interface provided
  1213. to set a function key to the desired piped mechanism.
  1214. .TP
  1215. .B stop
  1216. For systems with job control, stop will cause
  1217. .I Mush
  1218. to send a SIGTSTP to itself.
  1219. The command was introduced to facilitate
  1220. the stop-job action from a complex command line alias rather than the user
  1221. having to type his stop character explicitly.
  1222. .TP
  1223. .B top
  1224. Takes a message list and prints the top few lines of each.
  1225. The number of lines printed is controlled by the variable
  1226. .B toplines
  1227. and defaults to the size of the value of the variable
  1228. .B crt.
  1229. This command is ignored in the tool mode.
  1230. .TP
  1231. .BR undigest " [-m] [msg_list] [filename]"
  1232. A \*Qdigest\*U is a mail message which is a collection of other mail messages
  1233. mailed to a \*Qmoderator\*U by other users.  The moderator compiles all the
  1234. messages into a folder and sends the result to all the subscribers of the
  1235. mailing list.  The
  1236. .B undigest
  1237. command disassembles the entries into the set of messages which comprises
  1238. the digest.
  1239. .sp
  1240. The -m option will merge these messages into the current folder.  Otherwise,
  1241. if a filename is specified, a new folder is created and the user can change
  1242. folders to read the messages separately.
  1243. .sp
  1244. If a message list is specified, each digest is disassembled to the same
  1245. filename (if given).  If no filename is given and the user did not request
  1246. a merge, then a temporary file is made.
  1247. .sp
  1248. .SH VARIABLES
  1249. Shell variables are controlled via the
  1250. .B set
  1251. and
  1252. .B unset
  1253. commands.
  1254. Options may be either boolean, in which case it is only
  1255. significant to see whether or not they are set;
  1256. string, in which case the actual value is of interest;
  1257. or numerical, in which case the numerical value is important.
  1258. Some variables may have attributes
  1259. of boolean and string at the same time.
  1260. .PP
  1261. If you or the program references a variable that is not explicitly set,
  1262. then the environment variables are checked and a pointer to that data
  1263. is returned.
  1264. .PP
  1265. Certain variables that happen to be set to pathnames can be modified
  1266. by one of two variable modifiers.
  1267. The modifiers `:h' and `:t' may be applied to the variable names.
  1268. The current implementation allows only one `:' modifier on each `$' expansion.
  1269. .TP
  1270. :t
  1271. The variable is treated as a file path name, and the name of the file
  1272. (the \*Qtail\*U of the path) is substituted for the variable.
  1273. That is, everything to the right of the last `/'
  1274. is returned.
  1275. .TP
  1276. :h
  1277. The variable is treated as a path name, and the \*Qhead\*U of the pathname
  1278. is substituted for the variable.
  1279. That is, everything up to, but not including, the last `/' is returned.
  1280. .PP
  1281. Thus, you could set your prompt:
  1282. .sp
  1283. .nf
  1284. .ti +2
  1285. cmd fo 'fo \!*; set prompt = "! [$thisfolder:t] "'
  1286. .fi
  1287. .sp
  1288. Here, whenever you change folders, your prompt will tell you the name
  1289. of the folder you're in.
  1290. .PP
  1291. Following is a list of all predefined variables.
  1292. .TP
  1293. .B alwaysignore
  1294. (Boolean)
  1295. If set, the mail headers set by the
  1296. .B ignore
  1297. command are always ignored.
  1298. Normally, ignored headers are not ignored when sending messages to
  1299. the printer, when interpolating messages into letters with ~f or ~H,
  1300. when the `P' or `T' command is given (see the \fBprint\f command),
  1301. or with the \-h flag to the
  1302. .B mail
  1303. or
  1304. .B reply
  1305. commands.
  1306. Setting
  1307. .B alwaysignore
  1308. will ignore those headers even in the situations mentioned here.
  1309. No headers can be ignored during updates and when using the
  1310. .B save
  1311. command since the user may ignore headers that are required by
  1312. .I Mush
  1313. or any other mail system to read those folders.
  1314. .sp
  1315. Also see the
  1316. .B ignore
  1317. command for more information.
  1318. .TP
  1319. .B ask
  1320. (Boolean)
  1321. If set, you will be prompted for a subject header for outgoing mail.
  1322. If not set, the Subject header will be displayed as a blank header.
  1323. Use the tilde escape \*Q~s\*U to set the header once in the message
  1324. or specify the \-s option on the
  1325. .B mail
  1326. command line at the
  1327. .I Mush
  1328. prompt.
  1329. .TP
  1330. .B askcc
  1331. (Boolean)
  1332. If set, you will be prompted for a Cc (carbon copy) list when you are
  1333. finished editing a letter to be sent.
  1334. In the tool mode, this is ignored; the Cc list
  1335. is always prompted for after the Subject prompt.
  1336. .TP
  1337. .B autodelete
  1338. (Boolean)
  1339. When exiting mail, all messages that have been read
  1340. .I "regardless of whether they have been marked for deletion"
  1341. are removed.
  1342. Only messages that haven't been read or that have been marked as
  1343. .B preserved
  1344. are not removed.
  1345. .TP
  1346. .B autoedit
  1347. (Boolean)
  1348. If set, you are automatically put into your editor whenever you
  1349. send or reply to mail.
  1350. .TP
  1351. .B autoinclude
  1352. (Boolean)
  1353. When replying to any mail, a copy of the message being replied to
  1354. is automatically inserted into your message body indented by
  1355. the string described by the variable
  1356. .BR indent_str .
  1357. .TP
  1358. .B autoprint
  1359. (Boolean)
  1360. After you delete a message, the next message is printed automatically.
  1361. .TP
  1362. .B auto_route
  1363. (String)
  1364. If set boolean (not to a string), all the recipients in a message that
  1365. is being replied to (via \fBreplyall\fR), will be routed through the path
  1366. back to the original author.
  1367. .sp
  1368. For example, if the original sender of a message came from the remote host
  1369. .B c3p0
  1370. and the list of recipients looked like
  1371. .sp
  1372. .nf
  1373. .in +2
  1374. From: c3p0!user1
  1375. To: yourhost!you
  1376. Cc: r2d2!user2, r2d2!user3
  1377. .in -2
  1378. .fi
  1379. .sp
  1380. then clearly, \*Quser1\*U on the machine c3p0 can talk to your machine
  1381. and the machine named r2d2.
  1382. However, you would not be able to respond to those users if your machine
  1383. did not exchange UUCP mail with the host r2d2.
  1384. .sp
  1385. .I Mush
  1386. will attempt to solve this problem by reconstructing the addresses
  1387. for \*Quser2\*U and \*Quser3\*U according to the address of the original
  1388. sender, \*Qc3p0\*U.
  1389. The new addresses for \*Quser2\*U and \*Quser3\*U should therefore become
  1390. .sp
  1391. .ti +2
  1392. c3p0!r2d2!user2, c3p0!r2d2!user3.
  1393. .sp
  1394. If your machine not only talks to c3p0,
  1395. but talks to r2d2 as well, it becomes unnecessary to route the mail
  1396. through both c3p0 and r2d2.
  1397. So, the variable
  1398. .B known_hosts
  1399. may be set to a list of hosts which you know your machine to have
  1400. UUCP mail connections with.
  1401. This list is checked when constructing mail addresses for replies only and
  1402. the shortest path is made by removing from the UUCP path those hosts
  1403. that do not need to be called or are redundant.
  1404. See the entry for
  1405. .B known_hosts
  1406. for more information.
  1407. .sp
  1408. If
  1409. .B auto_route
  1410. is set to a specific \fBpathname\fR (host names separated by !'s),
  1411. all addresses in the reply will have this route prepended to their addresses.
  1412. This ignores the original path of the author.  This is quite useful for
  1413. hosts which talk uucp to a node which is connected to the internet or uunet
  1414. since both of those machines tend to be one-hop away from all other hosts
  1415. (or reroute accordingly).  For example, if a message was addressed like so:
  1416. .sp
  1417. .in +2
  1418. .nf
  1419. To: root@ucbvax.berkeley.edu, argv@island.uucp
  1420. Cc: ucbcad!foo!bar
  1421. .sp
  1422. .fi
  1423. .in -2
  1424. If auto_route were set to "ucbcad", then replies to this address would be
  1425. directed addressed like so:
  1426. .sp
  1427. .in +2
  1428. .nf
  1429. To: ucbcad!ucbvax.berkeley.edu!root, ucbcad!island.uucp!argv
  1430. Cc: ucbcad!foo!bar
  1431. .sp
  1432. .fi
  1433. .in -2
  1434. .sp
  1435. This assumes that the host in question talks uucp with ucbcad.  This example
  1436. demonstrates several things.  First, notice that all addresses are converted
  1437. to uucp-style format.  Whenever routing is changed, the format is converted
  1438. like this.  Secondly, note that the Cc: line did not change.  This is because
  1439. all redundant hostnames from UUCP pathnames are removed
  1440. to avoid unnecessary UUCP connections and speed up mail delivery.
  1441. .sp
  1442. Another example of how auto_route truncates UUCP paths:
  1443. .sp
  1444. .ti +2
  1445. pixar!island!sun!island!argv
  1446. .sp
  1447. Here, mail was probably originally sent to users at pixar and sun from
  1448. somewhere undetermined now.
  1449. Since sun and pixar do not talk to each other, the users on those machines may
  1450. have responded to mail creating the type of addresses stated above.
  1451. Here, it can be seen that we can reduce the path to the host
  1452. .IR island :
  1453. .sp
  1454. .ti +2
  1455. pixar!island!argv
  1456. .sp
  1457. See the MAIL ADDRESSES section for more detailed information
  1458. about legal mail addresses.
  1459. .sp
  1460. Note that the -r flag to \fBreply\fR and \fRreplyall\fR overrides the
  1461. value of \fBauto_route\fR.
  1462. .TP
  1463. .B autosign
  1464. (Boolean/string)
  1465. Append a signature to outgoing mail.
  1466. If this variable is set, but not to a string (e.g., boolean-true)
  1467. then the file ~/.signature is used.
  1468. .sp
  1469. Otherwise, the variable is interpreted in one of three ways.
  1470. By default, the string is interpreted as a pathname relative to the
  1471. .I current
  1472. directory.
  1473. For this reason, it is advisable to use full pathnames here.
  1474. As usual, the special characters `~' and `+' are expanded.
  1475. If a file is found, it is opened and its contents are read into the
  1476. message buffer.
  1477. .sp
  1478. If the variable is set to a string that begins with `$', then that string
  1479. is interpreted as a user-definable variable and is expanded and appended
  1480. to the letter.
  1481. .sp
  1482. Finally, if the variable is set to a string that begins with a backslash (\\)
  1483. then the string itself (minus the `\\' character) is used; no expansion
  1484. is done and no files are read.
  1485. .sp
  1486. In the latter two cases, it is advisable to set the variable using single
  1487. quotes to avoid expanding the variable beforehand or eliminating the
  1488. backslash.
  1489. Examples:
  1490. .sp
  1491. .nf
  1492. .ti +2
  1493. set autosign = '$foo'
  1494. .ti +2
  1495. set autosign = '\\  Dan Heller island!argv@ucbcad.berkeley.edu'
  1496. .fi
  1497. .sp
  1498. .BR Warning :
  1499. if redirection from the calling shell is used,
  1500. no signature or fortune will be added to outgoing mail.
  1501. For example,
  1502. .sp
  1503. .ti +2
  1504. % mush \-s report manager < report_file
  1505. .sp
  1506. In this command, mail is being sent to the user \*Qmanager\*U and the
  1507. subject is set to \*Qreport\*U and the file \*Qreport_file\*U is being
  1508. redirected as input.  In this case, there will be \fIno\fR signature
  1509. appended.
  1510. .TP
  1511. .B autosign2
  1512. (String)
  1513. This alternate signature is available for special cases where the default
  1514. signature is not desired or if no signature is desired for special addresses
  1515. or if only special addresses require a signature.
  1516. The format for this variable is:
  1517. .sp
  1518. .ti +2
  1519. autosign2 = \*Qaddress1, address2, ... : <signature>\*U
  1520. .sp
  1521. Each address can be one of these types:
  1522. .TP
  1523. 1)  address
  1524. Legal mailing addresses that do not contain comment
  1525. fields (see the sections MAIL ADDRESSES for more information on legitimate
  1526. mail addresses).
  1527. .TP
  1528. 2)  *username
  1529. If the username is present on the recipient list, regardless of what
  1530. remove site the user may reside (including locally), the pattern matches.
  1531. .TP
  1532. 3)  !hostname !host1!host2...
  1533. Any user can be specified as long as he resides on the specified hostname.
  1534. If a path of hosts is specified, then the user must reside on the end of
  1535. the specified path.
  1536. .TP
  1537. 4)  @dom.ain
  1538. The user must reside on any host within the domain specified.  Neither
  1539. the user or the hostname needs to match; only the domain name must be
  1540. required to match.
  1541. .sp
  1542. Example:
  1543. .sp
  1544. .nf
  1545. .ti +2
  1546. set autosign2 = \*Q!island @berkeley.edu @mit.edu *schaefer root: \--dan\*U
  1547. .fi
  1548. .sp
  1549. This means that any mail sent to 1) anyone at island, 2) anyone within
  1550. the berkeley domain, 3) anyone within the mit domain, 4) Bart Schaefer
  1551. (at any host anywhere -- even locally),
  1552. and 4) root on my local machine only (or, root@my-machine-name)
  1553. will be signed  by my "alternate" signature.  If any address on the
  1554. recipient list fails to satisfy these four matches, the mail will be
  1555. signed by my regular signature.
  1556. .sp
  1557. One can have a local signature and a remote signature by specifying
  1558. the autosign2 to include the hostname of the home machine the user
  1559. is logged into.  Note the \*Qisland\*U example above.
  1560. .sp
  1561. The list of recipients, after alias expansion and comment removal, is
  1562. then scanned and the following patterns are matched against those addresses
  1563. specified in the autosign2 or fortunates variable according to these rules.
  1564. .sp
  1565. The signature description is the same as described by
  1566. .B autosign
  1567. variable.  The colon (:) separates the list of addresses from the signature
  1568. description.  If there is no colon or the address list is missing, the
  1569. entire string is considered the signature (except for the colon).
  1570. .sp
  1571. If
  1572. .B autosign
  1573. is not set, then autosign2 will ONLY work if the tilde command \*Q~S\*U
  1574. is specified.  In this way, a user may never have autosign set and just
  1575. set autosign2 to be some signature value.  The user may then issue the
  1576. tilde command to automatically sign the letter.
  1577. If a list of addresses is given (terminated by a colon), then all
  1578. recipients of the message must be in the list of addresses in autosign2;
  1579. otherwise, the signature in \fBautosign\fR (if set) is used instead.
  1580. A null signature in autosign2 will not sign the letter.
  1581. .sp
  1582. Example:
  1583. .sp
  1584. .nf
  1585. .ti +2
  1586. set autosign2 = "fred, barney, wilma, betty: ~/flintstone.sig"
  1587. .fi
  1588. .sp
  1589. If a message is sent to:
  1590. .sp
  1591. .ti +2
  1592. To: fred, wilma
  1593. .sp
  1594. Then the file ~/flinstone.sig will be used.
  1595. However, if the address were:
  1596. .sp
  1597. .ti +2
  1598. To: barney, betty, bambam
  1599. .sp
  1600. Then autosign2 will not be used because bambam is not in the list.
  1601. .sp
  1602. Note that mail sent via redirection from the calling shell will not
  1603. sign letters or append fortunes.
  1604. .TP
  1605. .B cdpath
  1606. (String)
  1607. Set to a string of pathnames separated by spaces to use when searching
  1608. for a directory when the
  1609. .B cd
  1610. command is issued.
  1611. If this variable is used, it is recommended that the path `.' be included.
  1612. Note that this differs from the
  1613. .IR csh ,
  1614. which does not require that `.' be present.
  1615. .TP
  1616. .B crt
  1617. (Numeric)
  1618. Set to a value that describes the number of lines a message
  1619. must have before invoking the
  1620. .B pager
  1621. to view a message.
  1622. .TP
  1623. .B cwd
  1624. (String)
  1625. The
  1626. .B "current working directory"
  1627. string is automatically set upon startup of
  1628. .I Mush
  1629.