home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume11 / mush5.7 / part04 / mush.1.b
Encoding:
Text File  |  1987-09-17  |  45.9 KB  |  1,330 lines

  1. .I Mush
  2. command ``cmd''.  You may not run any form of reply or sending of
  3. mail at all.  It is inadvisable to change folders at this time
  4. since the current message list may be corrupted, but the action is
  5. allowed nonetheless providing flexibility for experienced users.
  6. .TP
  7. ~u
  8. Up one line.  If the user made a mistake typing a letter and he
  9. has already hit carriage return, he may avoid entering the editor
  10. and edit the previous line using ~u.  The line is retyped and
  11. the cursor is placed at the end allowing the user to backspace
  12. over it and retype the line.  System V users should note that if
  13. the new line is shorter than is was previous to the ~u command, the
  14. line is padded with blanks to the previous length of the file.
  15. .TP
  16. ~E
  17. Erase message buffer; clear all contents of letter.
  18. .TP
  19. ~~
  20. A line beginning with two escape characters will be unaffected by
  21. .I Mush
  22. except that only a single tilde will be inserted into the letter.
  23. .sp
  24. The variable
  25. .B escape
  26. may be set to describe a character other than ``~'' to be used as the
  27. escape character.
  28. When sending mail, all the above applies to all three user interfaces.
  29. .PP
  30. .SH COMMANDS
  31. Described below are legal commands understood by
  32. .I Mush
  33. that you can type at your prompt.  Most commands have abbreviations
  34. (given in parentheses) and can be followed by message lists.  In most cases,
  35. whitespace is not necessary to separate commands from message lists.
  36. For example, "d*" will delete all messages.
  37. "u1-7 {4}" will undelete messages 1 through 7 except for message number 4.
  38. .in -2
  39. .PP
  40. The ability to customize commands using the
  41. .B cmd
  42. facility allows users to have
  43. .I Mush
  44. have a command line appearance to reflect other mailers. However, there
  45. have been efforts already made to have commands which are backwards compatible
  46. with other line-mode mailers.  Users of the graphics tool mode of
  47. .I Mush
  48. may have little need for the command line mode because the icon based
  49. interface allows interaction with many commands.  The graphics mode is much
  50. more restrictive in favor of user friendliness but most useful commands may be
  51. achieved anyway.
  52. .TP
  53. .B alternates
  54. (\fBalts\fR) is useful if you have accounts on several machines.
  55. It can be used to inform
  56. .I Mush
  57. that the listed addresses are really you. When you
  58. .B reply
  59. to messages,
  60. .I Mush
  61. will not send a copy of the message to any of the addresses
  62. listed on the
  63. .I alternates
  64. list. If the
  65. .B alternates
  66. command is given with no argument, the current set of alternate
  67. names is displayed.
  68. .TP
  69. .B cd
  70. change the working directory to that specified, if given.  If
  71. no directory is given, then changes to the user's home directory.
  72. .TP
  73. .B cmd/un_cmd
  74. Command line aliases are set and unset using these commands. More
  75. extensive information is given in the first section of this document.
  76. .B uncmd
  77. may take `*' as an argument to uncmd everything set.
  78. .TP
  79. .B debug [N]
  80. Set debugging level to N (1 by default).  When in debug mode, the
  81. user can see some of the flow of control the program makes while
  82. executing.  The intent of the debug level is for tracking down
  83. bugs with the program at specific locations.  Periodically, the
  84. program will segmentation fault and core dump.  When this happens,
  85. the user can reenter the program, set the debugging level and recreate
  86. the problem.
  87. .sp
  88. If the user suspects memory allocation problems, a debugging
  89. level of 2 or higher will prevent memory from being freed causing no
  90. overwriting of memory bounds.
  91. .sp
  92. If the user suspects sendmail errors,
  93. a debugging level of 3 or higher will prevent sendmail from starting
  94. and outgoing mail is sent to the standard output instead of actually
  95. being sent.
  96. .TP
  97. .B delete
  98. Takes a message list as argument and marks them all as deleted.
  99. Deleted messages will not be saved in
  100. .IR mbox ,
  101. nor will they be available for most other commands.
  102. .TP
  103. .B dt
  104. Deletes the current message and prints the next message.
  105. .TP
  106. .B echo
  107. echoes all the arguments given on the command line expanding variables
  108. and expanding history references.
  109. .TP
  110. .B exit
  111. (\fBx\fR) Effects an immediate return to the Shell without
  112. modifying the current folder or system spool directory.
  113. .TP
  114. .B expand
  115. Aliases, given as arguments, are expanded as they would be if you
  116. were to send mail to each.
  117. .TP
  118. .B fkey/un_fkey
  119. Prints the values of the function keys. The function keys are used in
  120. the graphics tool mode only.  You can set the values of function keys
  121. explicitly using the
  122. .B fkey
  123. command, but the whole process is automated by using the function key
  124. interface provided by the graphics mode.  By default, the
  125. last key in each function key pad displays  the values of all the function
  126. keys in that set of function keys. There are the left, right and top set
  127. of keys.
  128. .TP
  129. .B folder
  130. (\fBfo\fR) [-N] [-r] [!] [ %[user] | # | & | file ]
  131. .br
  132. Change current folder.  No arguments prints current folder.
  133. .nf
  134. .if t .ta 1.5i
  135. .in +2
  136. -N    No headers are displayed upon entering new folder.
  137. -r    read only mode (you won't be able to write changes to this folder).
  138. !    is specified, the current folder is not updated first.
  139. %[user]    folder to /usr/spool/mail/[user] (yours, by default)
  140. #    folder accessed previous to current folder
  141. &    "mbox" -- default is ~/mbox; or set mbox = "file"
  142. .in -2
  143. .fi
  144. .TP
  145. .B folders
  146. List the names of the folders in your folder directory.
  147. Your folder directory is the directory
  148. .I Mail
  149. in your home directory. Or, you can set the variable
  150. .B folder
  151. to specify another folder directory.
  152. .br
  153. .TP
  154. .B from
  155. (\fBf\fR) With no arguments, from will print the current message's header.
  156. If given a message list, from will print the headers of those
  157. messages which are in the list.
  158. .sp
  159. The special arguments, `-' and `+' can be given to move the
  160. current message pointer to the previous or next message
  161. respectively while also printing that message's header.
  162. If a message list was given in addition to `-' or `+', then
  163. the current message pointer will be set to the first or last
  164. message, respectively, in the message list given.
  165. .sp
  166. .ti +2
  167. pick -f Dan | from +
  168. .sp
  169. will print the headers of all messages that contain Dan in
  170. in the author's name and set the current message pointer to
  171. the last one of that kind in the list.
  172. .sp
  173. .ti +2
  174. from - 10-30 {16}
  175. .sp
  176. will print the headers of messages 10 through 30 except for
  177. message 16 and set the current message pointer to 10.
  178. .sp
  179. .ti +2
  180. from +
  181. .sp
  182. will print the header of the message after the current message
  183. and increment the current message pointer to the next message.
  184. .sp
  185. .ti +2
  186. from $
  187. .sp
  188. will print the last message's header and not move the current
  189. message pointer.
  190. %%
  191. .TP
  192. .B headers
  193. (\fBh, z\fR) Prints a screenful of message headers listed in the
  194. current folder.  If a message number is given on the command line,
  195. the first message of the screenful of messages will be
  196. that message number. The ``z'' command is identical to the ``h''
  197. command and remains for compatibility reasons.  The variable
  198. .B screen
  199. may be set to tell how many headers are in a "screen."  In the graphics
  200. tool mode, the variable,
  201. .B screen_win
  202. contains the number of headers used in the headers subwindow.
  203. .sp
  204. A typical header may look like:
  205. .sp
  206. .ti +2
  207. 5 >N argv@spam.istc.sri.com Feb. 9, (10/278) Test Message.
  208. .sp
  209. This line indicates that it is message number 5,
  210. .I >
  211. indicates that the "current message pointer" is pointing to this
  212. message, the author of this message is
  213. .I argv@spam.istc.sri.com,
  214. the date is
  215. .I Feb. 9,
  216. the number of lines in the message is
  217. .I 10,
  218. the number of characters is
  219. .I 278
  220. and the subject of the message is
  221. .I Test Message.
  222. The format of the message header exemplified here is described by
  223. the string variable,
  224. .B hdr_format.
  225. The format style of this variable string is just like printf in C.
  226. When printing the information, the variable is evaluated and each
  227. character in the string is echoed unless a ``%'' character is
  228. encountered.  If one is found, the
  229. following string substitutions may be made:
  230. .in +2
  231. .nf
  232. %S  message Status.
  233. %f  the entire "From:" field (author).
  234. %a  the address of the author.
  235. %n  the name of the author.
  236. %t  "to" field (recipients).
  237. %d  date of the message.
  238. %s  subject of the message.
  239. %l  number of lines in the message.
  240. %c  number of characters (bytes) in the message.
  241. \\n  \ a newline
  242. \\t  \ a tab.
  243. .fi
  244. .in -2
  245. A field specifier may be used in all options.  Thus, %20f will print the
  246. first 20 characters of the from line.  No matter what the formatting string,
  247. the message number followed by a '>' (if current message) is printed.
  248. .sp
  249. The "address" and "name" of the author are extracted from the "From:"
  250. field of the message.  The name may be given in parentheses and
  251. the rest of the line is the address, or the address is given in angle
  252. grackets, (``<'' and ``>'') and the rest of the line is the name. Sometimes,
  253. the address is the only thing on the line in which case the name and address
  254. are the same.
  255. .sp
  256. The example given above has a hdr_format of
  257. .ti +2
  258. set hdr_format = "%S %25f %7d (%l/%c) %25s"
  259. .sp
  260. You can print a special subset of message headers by using the
  261. .I -H:c
  262. option, where ``c'' is one of:
  263. .nf
  264. .in +2
  265. n    just print messages headers of new messages
  266. d    deleted messages
  267. u    unread messages
  268. o    old messages
  269. a    all messages
  270. .fi
  271. .in -2
  272. .sp
  273. More options to the
  274. .B headers
  275. command include
  276. .I +
  277. and
  278. .I -.
  279. Each will print the next or previous screenful of message headers.
  280. Equivalent commands include
  281. .B z [+] [-].
  282. ``z'' alone will print the next screenful (thus, the + is optional).
  283. The ``-'' is equivalent to ``h -''.
  284. .sp
  285. Headers affects all the messages it displays, so piping may be done
  286. from the headers command.  Piping to the headers command causes the
  287. message headers affected by the previous command to be printed. This
  288. action would be identical to piping to the
  289. .B from
  290. command.
  291. .TP
  292. .B help
  293. Help is provided on a per topic basis and on a general basis.
  294. For general help, just typing,
  295. .I help
  296. will provide some general information as to how to get further help
  297. and a list of topics suggested for more specific help.  There is also
  298. help provided for each command by using the "-?" option to most commands.
  299. This option will provide command line usage information as well as a
  300. description of what the command does and how to use it.
  301. .TP
  302. .B history [-h] [-r] [#histories]
  303. The command history is displayed in chronological order; early commands
  304. are printed first followed by more recent commands displayed last.
  305. .I -h
  306. suppresses printing of history event numbers with each history command.
  307. .br
  308. .I -r
  309. reverses the order of the history events displayed.
  310. .sp
  311. If a number of histories is given, then that number of histories is
  312. echoed rather than the number of histories set by the variable,
  313. .B history.
  314. .TP
  315. .B ignore
  316. Display or set a list of headers to be ignored when displaying messages.
  317. When reading messages, all the message headers are displayed with the text
  318. body of the message.  Since these message identifier fields are cumbersome
  319. and uninteresting in many cases, you can filter out those headers by using the
  320. .B ignore
  321. command.
  322. .sp
  323. .ti +2
  324. ignore Received Date Message-Id
  325. .sp
  326. The command,
  327. .B unignore
  328. is used to reverse the effects of
  329. .B ignore.
  330. These commands may be specified in the initializing files.
  331. .TP
  332. .B lpr [-Pname] [msg_list]
  333. takes a message list and sends them, one by one, to the printer
  334. each separated by page feeds.
  335. A default printer name is supplied if one is not specified on the
  336. command line (-Pprinter-name). If you have a variable
  337. .B printer
  338. set, that printer name will be used.
  339. .sp
  340. If the variable,
  341. .B print_cmd
  342. is set, the command described by that variable will be used instead
  343. of the default system command.  In such cases, the -P option and the
  344. .B printer
  345. variable is ignored and the command is simply executed as is.  This is
  346. useful for sending C source thruough pgrind or other formatting types of
  347. commands.
  348. .TP
  349. .B ls
  350. Just like the
  351. .I UNIX
  352. command
  353. .I /bin/ls.
  354. The variable,
  355. .B lister
  356. describes flags to be passed to ls automatically.  By default,
  357. .I ls
  358. always uses the -C flag (column output).
  359. .TP
  360. .B mail
  361. (\fBm\fR) Send mail to a list of users. If no user list is specified on the
  362. .I Mush
  363. command line, then a "To: " prompt will request one.  A list of recipients
  364. must be supplied.  This implementation of
  365. .I Mush
  366. supports mailing to files and programs as recipients. Filenames must
  367. be full pathnames, thus, they must start with a '/' or there is no way to
  368. know whether a recipient is a pathname or a real user.  The ~ is allowed
  369. and is expanded to the user's home directory.  Mailing to programs is indicated
  370. by the pipe `|' character preceding the program name.  Since the user's path
  371. is searched, full pathnames are not required for programs.
  372. .sp
  373. Example:
  374. .ti +2
  375. mail username /path/to/filename "|program_name"
  376. .sp
  377. After, a
  378. subject will be prompted for, but this heading is optional.
  379. Optional flags are:
  380. .nf
  381. .in +2
  382. .if t .ta 1.8i
  383. -v    verbose (passed onto mail delivery program)
  384. -e    immediately enter editor (autoedit)
  385. -F    add random fortune to the end of message.
  386. -i [msg_list]    include msg_list into letter.
  387. -h [msg_list]    include msg_list with headers.
  388. -f [msg_list]    forward msg_list (not indented).
  389. .in -2
  390. .fi
  391. .TP
  392. .B my_hdr/un_hdr
  393. You can create personalized headers in your outgoing mail using this command.
  394. .sp
  395. .nf
  396. Usages:
  397. .in +2
  398. .if t .ta 2.0i
  399. my_hdr    prints all currently set headers
  400. my_hdr header    value associated with header
  401. my_hdr header: string    set header to string
  402. un_hdr header:    unset header
  403. .in -2
  404. .sp
  405. .fi
  406. To set a header, the first argument must be a string
  407. that contains no whitespace (spaces or tabs) and must end with
  408. a colon ``:''. The rest of the command line is taken to be the
  409. text associated with the mail header specified.
  410. If any quotes are used in the header and the header itself is not set in
  411. quotes, then quotes should be escaped (preceded) by a backslash. This holds
  412. true for semicolons, pipe characters or any other metacharacter that
  413. .I Mush
  414. might interpret as a command line modifier.
  415. .sp
  416. If the variable,
  417. .B no_hdrs
  418. is set, then your headers will not be added to outgoing messages, but will
  419. not unset any headers.
  420. .B un_hdr
  421. may take `*' as an argument to un_hdr everything set.
  422. .TP
  423. .B pick
  424. allows the user to select particular messages from a folder.
  425. With no arguments, pick will search each message for the previously
  426. searched string (regular expression).  You can search for messages from a user,
  427. for a particular subject line, between certain dates, and limit searches to
  428. a range of messages.  You can also find all messages that do not
  429. match the same arguments mentioned above.
  430. .sp
  431. .nf
  432. Usage:
  433. .ti +2
  434. pick [-r \fImsg_list\fR] [-d [-][date]] [-s|-f|-t] [-x] [-i] [<pattern>]
  435. .sp
  436. .fi
  437. Entire messages are scanned for a <pattern> unless -s, -f, or -t is specified.
  438. Messages marked for deletion are also searched.
  439. Only one of -s, -f, -t, and -d can be specified at once. No patterns can
  440. be specified with the -d option.
  441. .sp
  442. .nf
  443. Options:
  444. .if t .ta 1.25i
  445. .in +2
  446. -r msg_list    restrict the range of messages search to "msg_list"
  447. -s    search for pattern in the "subject" headers only.
  448. -f    search for pattern in the "from" field (author) only.
  449. -t    search for pattern in the "to" field only.
  450. -i    ignore case of letters (upper and lower case are the same).
  451. -d    print message headers on or after [`-' before] `date'.
  452. -x    messages which do not contain the pattern. May not be used with -d.
  453. .in -2
  454. .fi
  455. .sp
  456. `date' is of the form: month/date/year. Omitted fields default to
  457. today's values.
  458. .sp
  459. Examples on dates:
  460. .nf
  461. .in +2
  462. .if t .ta 2.0i
  463. .sp
  464. pick -d 4/20    msgs on or after April 20, this year
  465. pick -d -/2/85    on or before the 2nd, this month, 1985
  466. pick -d /    today only.
  467. .fi
  468. .in -2
  469. .sp
  470. At least one `/' char must be used in date.
  471. There is no strong date checking; 2/30 would be considered a valid date.
  472. .sp
  473. If no arguments are given, the previous expression searched for is used.
  474. <pattern> is a "regular expression" described by `ed'.
  475. .sp
  476. Examples using
  477. .B pick:
  478. .sp
  479. .ti +2
  480. pick -d 2/5/86 | pick -d -2/5/87 | pick -s "mail stuff" | lpr
  481. .sp
  482. This will find all the messages between the dates February 5, 1986 and
  483. February 5, 1987 that contain the subject "mail stuff" and print them.
  484. .sp
  485. .ti +2
  486. pick -s Re: | delete
  487. .sp
  488. Deletes messages that have "Re:" in the subject
  489. .sp
  490. .ti +2
  491. folder +project | pick -f frank
  492. .sp
  493. Finds all messages from frank in the folder described by +project.
  494. .TP
  495. .B preserve
  496. (\fBpre\fR) Saves a message list in your spool directory rather than
  497. your mailbox unless it has been explicitly deleted.  The variable
  498. .B hold
  499. causes all messages to be held in your spool directory automatically.
  500. .TP
  501. .B print
  502. (\fBp, type, t\fR)
  503. Takes a message list and types out each message on the user's terminal.
  504. .TP
  505. .B pwd
  506. Prints the current working directory.
  507. .TP
  508. .B quit
  509. (\fBq\fR)
  510. Messages which have been read go to your
  511. .I mbox
  512. or the file described by the string variable
  513. .B mbox.
  514. If the variable "hold" then all messages not marked for deletion are
  515. saved in the spool directory.
  516. Messages marked for deletion are discarded.
  517. Unread messages go back to the spool directory in all cases.
  518. .TP
  519. .B reply, replyall, respond
  520. (\fBr, R\fR)
  521. Messages are replied to by sending mail to the sender of each message
  522. in the given message list.
  523. .B replyall
  524. responds to all the recipients as well as the
  525. sender of the message.  You may pass
  526. .B mail
  527. flags as they are passed on to the
  528. .B mail
  529. command.
  530. .sp
  531. When contructing a return mail address to the author of a message,
  532. .B replyall
  533. searches for special mail headers in the author's message which
  534. indicate the most efficient mail path for return mail.
  535. .I Mush
  536. will search for the following headers by default:
  537. .B Reply-To:, Return-Path:, From:.
  538. .sp
  539. If none of these fields are found in the message, the first line of the
  540. message is parsed; this "From " line is different from the "From: " line.
  541. If the user wishes to change the order or the actual fields to search for
  542. return paths, then the variable,
  543. .B reply_to_hdr
  544. is checked for a list of headers to be used (in the order specified).  If
  545. .B reply_to_hdr
  546. is set, but has no value, the first "From " line is used regardless of what
  547. headers the author's message contains.  This is a special case setting for
  548. the variable and the "From " line may not be specified explicitly or as an
  549. item in the list of reply-to headers.
  550. .sp
  551. When replying to all recipients of the message using the
  552. .B replyall (R)
  553. command, only the original author's address can be obtained from
  554. the message headers.  There is no way determine the best path to the
  555. other recipients of the message from message headers aside from taking
  556. their addresses directly from the To: and Cc: lines.
  557. .sp
  558. Normally, this isn't a problem with arpanet style addressing schemes.
  559. The problems start with uucp because mail is not "one hop away."  That
  560. is to say that mail must be routed through other computers, often many
  561. of them, till the message finally gets to its desitination.  If the
  562. original sender of the message was on a remote machine which your machine
  563. may or may not exchange uucp mail with, then a uucp path will have to be
  564. created to respond to the author.  However, if he mailed to other people
  565. on machines which are also multi-hops away, the addresses he used for
  566. those recipients may differ from what you should specify if you were to
  567. try to reply to all everyone on the original message.
  568. .sp
  569. For example, if the original sender came from remote host,
  570. .B pixar
  571. and the list of recipients looked like,
  572. .sp
  573. .ti +2
  574. To: r2d2!user1 r2d2!user2
  575. .sp
  576. you would not be able to respond to those users if your machine
  577. did not connect with the host,
  578. .B r2d2.
  579. .sp
  580. This problem will be attempted to be solved if the variable,
  581. .B fixaddr
  582. is set. If so, an attempt will be made to compensate by reconstructing
  583. the addresses for user1 and user2 according to the address of the original
  584. sender.  The new addresses for user1 and user2 should therefore become,
  585. .sp
  586. .ti +2
  587. pixar!r2d2!user1, pixar!r2d2!user2.
  588. .sp
  589. There is an additional case where your machine calls
  590. .B both
  591. r2d2 and pixar. Then, it becomes unneccessary to route the mail through
  592. pixar and then to r2d2 if you can deliver the mail directly yourself.
  593. The variable,
  594. .B known_hosts
  595. may be set to a list of hosts which you know your machine to have
  596. uucp mail connections with.  This list is checked when constructing
  597. mail addresses and the shortest path is made by removing from the
  598. uucp path those hosts which do not need to be called.  See the entry for
  599. .B known_hosts
  600. in the VARIABLES section.
  601. .sp
  602. If the variable,
  603. .B auto_route
  604. is set, all redundant hostnames from all uucp pathnames are removed
  605. to avoid unnecessary uucp connections and improve speeding up mail delivery.
  606. The reason for this stems from cases where a number of replies to the same
  607. message go back and forth and the return address becomes long and contains
  608. dedundancy.
  609. .sp
  610. .ti +2
  611. pixar!island!sun!island!argv
  612. .sp
  613. Here, we have an example where mail was probably originally
  614. sent to users at pixar and sun from somewhere undetermined now.  Since sun
  615. and pixar do not talk to each other, the users on those machines may have
  616. responded to mail creating the type of addresses stated above.
  617. With auto_route set,
  618. .I Mush
  619. will modify this address to look like,
  620. .sp
  621. .ti +2
  622. pixar!island!argv
  623. .sp
  624. This is not necessary for arpanet users since connections can almost always
  625. be established without having to route through other arpanet hosts. If a
  626. mixture of arpanet sites and uucp sites are mixed, then unknown results may
  627. occur.
  628. .TP
  629. .B copy/save/write [!] [message list] [filename]
  630. (\fBs\fR) With no arguments,
  631. .B copy, save
  632. and
  633. .B write
  634. will save the current message to the file,
  635. .I mbox
  636. in the user's home directory (or the file specified by the,
  637. .B mbox
  638. variable). If a message list is given, then the messages specified by
  639. the list are saved.  If a filename is given, then that filename is used
  640. instead of mbox.  If the file exists and is writable, the specified command
  641. will append each message to the end of the file. If the `!' is given,
  642. then the file is overwritten causing whatever contents it contains
  643. to be lost. The
  644. .B write
  645. command differs from
  646. .B save
  647. and
  648. .B copy
  649. in that the message headers are
  650. .I not
  651. saved in the file along with the body of text.
  652. .sp
  653. If the current folder is the system mailbox, then saved messages are
  654. marked for deletion when the user exits using the
  655. .B quit
  656. command. If the variable
  657. .I keepsave
  658. is set or the current folder is not the system mailbox, then messages are
  659. not marked for deletion. The
  660. .B copy
  661. command is is like
  662. .B save
  663. except that messages are not marked for deletion regarless of whether
  664. .B keepsave
  665. is set or not.
  666. .sp
  667. Because message lists are used to determine the messages to be saved,
  668. if the user wishes to save messages to a file that begins with a digit
  669. or any other message list metacharacter, a back-slash should precede
  670. the filename to escape the message list expansion routine.  The back-slash
  671. will not be a part of the filename.
  672. .TP
  673. .B saveopts
  674. The completement of
  675. .B source, saveopts
  676. will save all settable variables, aliases and cmd's in the initializing file.
  677. (See the
  678. .B source
  679. command for more information on initializing files.)
  680. If an argument is given, that file is used.  Beware that this will overwrite
  681. files so any ``if'' expressions used will be lost. There is no prompting for
  682. confirmation on overwrites, either.  Using saveopts is highly discouraged
  683. and is intended for the naive user only.
  684. .TP
  685. .B set/unset
  686. With no arguments, prints all variable values.  Otherwise, sets
  687. option.  Arguments are of the form ``option=value'' (whitespace is allowed).
  688. Boolean expressions need not have ``=value'' associated in the command.
  689. The special command,
  690. .I set ?all
  691. will print all known variables utilized by the program and a brief description
  692. of what they do. The user may set and manipulate his own set of variables, but
  693. internal variables that are utilized by the program are the only ones displayed.
  694. .sp
  695. The command
  696. .I set ?variable_name
  697. will print the same information for one variable instead of all variables.
  698. You may unset everything by issuing the command ``unset *''.  This is also
  699. true for aliases, own_hdrs, ignored headers, cmds and function keys.
  700. .TP
  701. .B sh [command]
  702. Invokes an interactive version of the shell. The shell spawned
  703. is described by the variable,
  704. .B shell.
  705. If the optional argument,
  706. .B command
  707. is given, then that command is executed under the Bourne Shell.
  708. If the special character `&' is at the end of any shell command,
  709. then the command will be executed in background.
  710. .TP
  711. .B source
  712. reads
  713. .I Mush
  714. commands from a file.  If no filename is specified, the files searched
  715. for are .mushrc or .mailrc in the user's home directory.  If the environment
  716. variable MAILRC is set, then that file is sourced.  If a filename is given
  717. on the command line, that file is sourced. See the
  718. .B INITIALIZATION
  719. heading and the
  720. .B home
  721. variable descriptions for more information.
  722. .TP
  723. .B sort
  724. will sort messages according to author, date, status or subject
  725. (with or without considering the "Re: ", in replied messages). In
  726. addition, the messages can be sorted in reverse order (same arguments).
  727. .nf
  728. sort [-] [d | a | s | S | R]
  729. .in +2
  730. -         reverse sort order.
  731. d         sort according to date received.
  732. a         author (alphabetical).
  733. s         subject ignoring Re: as part of the subject.
  734. R         subject (alphabetical).
  735. S         by message status.
  736. .in -2
  737. .fi
  738. By default (no arguments),
  739. .B sort
  740. sorts messages by status:
  741. New, unread messages are first, followed by preserved messages
  742. and finally the deleted messages are placed at the end of the list.
  743. .sp
  744. If the variable
  745. .I sort
  746. is set, messages are sorted each time the user's system mailbox is
  747. read as the current folder.  The
  748. .I sort
  749. variable can be set to nothing or to legal "sort" arguments.
  750. Note that only one argument (except for the `-'), may be used.
  751. .sp
  752. Subsorting can be acheived by using the piping mechanism intrinsic to
  753. the line mode interface; no other interface allows subsorting "directly."
  754. Each interface may allow subsorting if appropriate actions are taken discussed
  755. later.
  756. .sp
  757. To subsort messages, the folder must be in a particular order to begin
  758. with.  To sort mail by author and then by subject heading, you would
  759. have to first sort by author:
  760. .sp
  761. .ti +2
  762. sort a
  763. .sp
  764. Now that the messages are in order according to author, sorting a
  765. sublist of messages is done using pipes:
  766. .sp
  767. .ti +2
  768. pick -f island!argv@sun.com | sort s
  769. .sp
  770. This finds all messages from the user, "island!argv@sun.com" and sorts them 
  771. by subject.  Since these messages are already grouped together via the
  772. previous sort command, the sorting by subject (s) will restrict itself
  773. to such messages.  You may specify the exact message list by specifying
  774. that message list on the command line and using a pipe:
  775. .sp
  776. .ti +2
  777. 10-. | sort d
  778. .sp
  779. This command means to sort the messages from 10 to the current message
  780. according to the date.
  781. .sp
  782. To specify subsorting from with the curses interface, the temporary
  783. curses escape key must be used (the colon ':') and the command issued
  784. at the command line given (as if giving an ``ex'' command to ``vi'').
  785. When the command is finished, the "...continue..." prompt is given and
  786. the user may continue or return to the top level of the curses mode.
  787. .sp
  788. In the tool interface, the user must map a function key to the desired
  789. command.  Select the "Opts" icon with the right mouse button, choose
  790. the menu item labeled, "function keys" and user the interface provided
  791. to set a function key to the desired piped mechanism.
  792. .TP
  793. .B stop
  794. For systems with job control, stop will cause
  795. .I Mush
  796. to send a SIGTSTP to itself. The command was introduced to facilitate
  797. the stop-job action from a complex command line alias rather than the user
  798. having to type his stop character explicitly.
  799. .TP
  800. .B top
  801. Takes a message list and prints the top few lines of each.
  802. The number of lines printed is controlled by the variable
  803. .B toplines
  804. and defaults to the size of the value of the variable
  805. .B crt.
  806. This command is ignored in the tool mode.
  807. .SH VARIABLES
  808. .PP
  809. Shell variables are controlled via the
  810. .B set
  811. and
  812. .B unset
  813. commands.  Options may be either boolean, in which case it is only
  814. significant to see whether they are set or not, string, in which
  815. case the actual value is of interest, or numerical, in which the
  816. numerical value is important.  Some variables may have attributes
  817. of boolean and string at the same time.
  818. .sp
  819. If you or the program references a variable which is not explicitly set,
  820. then the environment variables are checked and a pointer to that data
  821. is returned.
  822. .TP
  823. .B alwaysignore (boolean)
  824. If set, the mail headers set by the
  825. .B ignore
  826. command are always ignored.
  827. Normally, ignore will only ignore headers when reading, saving(writing)
  828. to files, or interpolating messages into letters with the ~f escape. See the
  829. .B ignore
  830. command for more information.
  831. .TP
  832. .B askcc (boolean)
  833. If set, you will be prompted for a Cc list (carbon copy) when you are finished
  834. editing a letter to be sent.  In the tool mode, this is ignored; the Cc list
  835. is always prompted for after the Subject is prompted.
  836. .TP
  837. .B autodelete (boolean)
  838. When exiting mail, all messages which have been read
  839. .I regardless of whether they have been marked for deletion
  840. are removed. Only messages that haven't been read or marked as
  841. .B preserved,
  842. are not removed.
  843. .TP
  844. .B autoedit (boolean)
  845. If set, you are automatically put into your editor whenever you
  846. send or reply to mail.
  847. .TP
  848. .B autoinclude (boolean)
  849. When replying to any mail, a copy of the message being replied to
  850. is automatically inserted into your message body indented by
  851. the string described by the variable
  852. .B indent_str.
  853. .TP
  854. .B autoprint (boolean)
  855. After you delete a message, the next message is printed automatically.
  856. .TP
  857. .B auto_route
  858. Automatic trancation of uucp address to a more brief and efficient path
  859. is attempted resulting in faster mail delivery.  Redundant hostnames are
  860. removed from the uucp path if they occur and heuristics are used to
  861. determine the shortest path to the desination based on return addresses.
  862. Also see the variables,
  863. .B known_hosts, fixaddr,
  864. and the command,
  865. .B replyall.
  866. .TP
  867. .B autosign (boolean/string)
  868. If the variable is set,
  869. but not to a string (e.g. boolean-true), then the file ~/.signature is used.
  870. .sp
  871. Otherwise, the variable is interpreted as a pathname opened relative to
  872. the current directory.  For this reason, it is adviseable to use full
  873. pathnames here.  As usual, the ~ and + are expanded as described earlier.
  874. If the file is found, it is opened and its contents are read into the
  875. message buffer.
  876. .sp
  877. If the variable is set to a string that begins with `$', then the string
  878. is interpreted as a user definable variable and it is expanded and appended
  879. to the letter.
  880. .sp
  881. Finally, if the variable is set to a string that begins with a backslash (\\),
  882. then the string itself (minus the \\ character) is used and no expansion
  883. is done and no files are read.
  884. .sp
  885. In the latter two cases, it is advisable to set the variable using single
  886. quotes to avoid expanding the variable beforehand or from eliminating the
  887. backslash.  For example,
  888. .br
  889. .nf
  890. set autosign = '$foo'
  891. set autosign = '\\this is an exmple string.'
  892. .fi
  893. .TP
  894. .B crt (numeric)
  895. Set to a value which describes the number of lines a message
  896. must have before invoking the
  897. .B pager
  898. to view a message.
  899. .TP
  900. .B cwd (string)
  901. The
  902. .B current working directory
  903. string is automatically set upon startup of
  904. .I Mush
  905. and each time the command,
  906. .B cd,
  907. is called. It is referenced each time
  908. .B pwd
  909. is called and may be used as any other shell variable.
  910. .TP
  911. .B dead (string)
  912. File to use instead of "dead.letter" when dead mail is saved.
  913. .TP
  914. .B dot (boolean)
  915. Accepts a "." on a line by itself instead of ^D to terminate letter.
  916. .TP
  917. .B editor (string)
  918. Editor to use when ~e is specified. Default is the value of the variable,
  919. .B visual.
  920. .TP
  921. .B escape (character)
  922. When typing in a letter (not in an editor), when the
  923. .B escape
  924. character is the first character on the line, the following character
  925. is examined and a corresponding function associated with that
  926. .B escape command
  927. is executed.  See
  928. .B tilde escapes
  929. for more information.
  930. .TP
  931. .B fixaddr (boolean)
  932. Causes replyall to modify the return addresses of all recipients to
  933. route through the original sender's host.  Mostly used for uucp mail.
  934. See the
  935. .B replyall
  936. command for more detailed information.
  937. .TP
  938. .B folder (string)
  939. The folder variable is set to a path where folders are kept. ~/Mail
  940. is the default value.
  941. .TP
  942. .B fortune (boolean/string)
  943. If fortune is set, a random fortune is appended to the end of
  944. all outgoing mail using the
  945. .I UNIX
  946. command,
  947. .B /usr/games/fortune
  948. (may vary from system to system).
  949. If fortune is set to something that starts with
  950. a '-', then it is interpreted as a flag to fortune (e.g. "-o"). If
  951. .B fortune
  952. starts with a '/', then the program described by
  953. the string is executed (thus not doing fortune at all, if you want).
  954. By default, fortune -s (short fortunes) is used.
  955. .TP
  956. .B fortunates (string)
  957. This is a variable set to a list of people who, if any are
  958. on the To: line, or the Cc: line, a fortune is added.
  959. If those lists do not contain names which are on the fortunates
  960. list, then no fortune is added.
  961. .I "NOTE: fortune must be set in order for fortunates to work."
  962. .TP
  963. .B hdr_format (string)
  964. See the description of hdr_format above.
  965. .TP
  966. .B hold (boolean)
  967. Normally, on termination of mail, read messages are saved in
  968. mbox (except those marked as preserved).  Hold, prevents this
  969. from happening and messages remain in /usr/spool/mail/user.
  970. This does not apply to folders, obviously.
  971. .TP
  972. .B home (string)
  973. This variable describes the user's home directory. The variable
  974. is initialized to the value of the environment variable, HOME,
  975. but can be modified at any time during the
  976. .I Mush
  977. session.  The home directory is the same directory where temporary
  978. files are kept for editing and so forth. If the home directory cannot
  979. be found or read/write access is denied, an alternate directory, typically
  980. /tmp, is used.
  981. .TP
  982. .B ignore_bang (boolean)
  983. Ignore the `!' character as a history reference.
  984. .TP
  985. .B ignoreeof (boolean/string)
  986. If set, ^D will not exit mail.  If set to a "string", that string is
  987. executed as a command.
  988. .TP
  989. .B indent_str (string)
  990. When including messages into the text of a letter you are editing,
  991. the messages are preceded by whatever is described by indent_str.
  992. The default string used is "> ".
  993. .TP
  994. .B keepsave (boolean)
  995. If set, the commands,
  996. .I save
  997. and
  998. .I write
  999. will
  1000. .B not
  1001. mark messages for deletion.
  1002. .TP
  1003. .B known_hosts (string)
  1004. Used in conjunction with the variable,
  1005. .B auto_route,
  1006. this variable is set to a list of hosts, separated by spaces, tabs,
  1007. and/or commas, and describes
  1008. the hosts with whom you know your machine shares uucp connections.
  1009. When replying to mail, many times you will see the return path constructed
  1010. will have hostnames which your site could call, but instead the mail would
  1011. be routed throughout a number of different machines first.
  1012. .sp
  1013. For example, if you respond to mail which would mail to the path,
  1014. .sp
  1015. .ti +2
  1016. unicom!pixar!root
  1017. .sp
  1018. but your know your machine already calls pixar, then sending the mail
  1019. to unicom first would be unneccessary.  If you have your known_hosts
  1020. string include pixar in its list, the resulting address would look like,
  1021. .sp
  1022. .ti +2
  1023. pixar!root
  1024. .sp
  1025. Also see the command,
  1026. .B replyall
  1027. for more information on constructing more correct return addresses.
  1028. .TP
  1029. .B lister (string)
  1030. Default arguments to the "ls" command for printing the
  1031. contents of a directory.
  1032. .TP
  1033. .B mbox (string)
  1034. Set to the pathname of a file you'd like mush to use as the default
  1035. holder for read mail.  The default is ~/mbox.
  1036. .TP
  1037. .B metoo (boolean)
  1038. When replying to mail, you are normally deleted from the list of
  1039. recipients. If metoo is set, you remain on the list. See alternates
  1040. for information on determining whether or not you're even on the list.
  1041. .TP
  1042. .B newline (boolean/string)
  1043. If set, Carriage Returns are ignored, if set to a "string", that string is
  1044. executed as a command.  Otherwise CR's read the next undeleted message.
  1045. .TP
  1046. .B no_hdr (boolean)
  1047. Don't include your personalized mail headers in messages. This does
  1048. not unset your headers, it just disables them from being specified.
  1049. .TP
  1050. .B no_reverse
  1051. In curses mode and in the tool mode, reverse video is not used to indicate the 
  1052. .I current message.
  1053. In the tool mode, if reverse video is not in use, text is displayed in "bold".
  1054. .TP
  1055. .B nosave (boolean)
  1056. If set, terminated mail is not saved in dead.letter
  1057. .TP
  1058. .B pager (string)
  1059. If a message is longer than what the variable
  1060. .B crt
  1061. is set to, then this program is executed to view a message. The
  1062. default value for pager is /usr/ucb/more.
  1063. .TP
  1064. .B printer (string)
  1065. Used to set the default printer for the lpr command.
  1066. .TP
  1067. .B prompt (string)
  1068. You can set your prompt to tell you many different pieces of information.
  1069. By default, the prompt is set to the string,
  1070. .ti +2
  1071. "Msg %m of %t: "
  1072. .br
  1073. If you have 10 messages and your current message is 5, then your prompt
  1074. would look like:
  1075. .ti +2
  1076. Msg 5 of 10:
  1077. .br
  1078. The string variable
  1079. .B prompt
  1080. can be set to display other information.
  1081. The string value that prompt is set to will be printed as your
  1082. prompt.  If the string contains a ``%'', then that character is
  1083. ignored and the next character is evaluated and an appropriate
  1084. value is printed in its place:
  1085. .nf
  1086. .in +2
  1087. %m  expands to the "current message" number.
  1088. %t  total number of messages.
  1089. %u  number of unread messages.
  1090. %d  number of deleted messages.
  1091. %n  number of "new" messages.
  1092. %f  expands to the filename of the current folder.
  1093. %T  the current time (hours and seconds).
  1094. %D  today's day (sun, mon, tues...).
  1095. %N  today's date (Number of the day in the month).
  1096. %Y  this year.
  1097. \\n  \ \ will have a RETURN in the prompt.
  1098. \\t  \ \ a tab.
  1099. .fi
  1100. .in -2
  1101. .TP
  1102. .B quiet (boolean)
  1103. If set, the currently running version of
  1104. .I Mush
  1105. is not printed on startup.
  1106. .TP
  1107. .B record (string)
  1108. Set to the name of a file to record all outgoing mail. This should be a
  1109. full pathname or the current directory is searched.  The pathname may begin
  1110. with ``+'' (indicating the user's ~/Mail directory or described by $folder)
  1111. or with a ``~'' indicating the user's home directory (or ~user).
  1112. .TP
  1113. .B reply_to_hdr (string)
  1114. When replying to mail,
  1115. .I Mush
  1116. searches for return paths from the message by searching for
  1117. the message headings, "reply-to", "return-path", and "from:"
  1118. respectively.  If none are found, then the first line of the
  1119. message created by the delivery system is parsed and the address
  1120. given there is used.  If the variable,
  1121. .B reply_to_hdr
  1122. is set, then the list of headers (delimited by spaces or commas)
  1123. is searched.  If none of the headers listed in the variable exist
  1124. in the message, then a warning message is printed and the default
  1125. headers are used.
  1126. .TP
  1127. .B screen (numerical value)
  1128. Number of message headers to display at a time.
  1129. .TP
  1130. .B screen_win (numerical value)
  1131. Number of message headers to display in the tool mode.  There
  1132. is a subwindow for message headers and its size is large enough
  1133. to hold `screen_win' number of headers.
  1134. .TP
  1135. .B show_deleted (boolean)
  1136. If true, deleted message headers are displayed along with
  1137. other messages ('*' indicates a deleted message).  In curses mode,
  1138. this variable is ignored and deleted messages are always displayed
  1139. with other messages to facilitate undeleting messages.
  1140. .TP
  1141. .B squeeze
  1142. Whenever messages are read, piped, or saved, if this variable is set,
  1143. all consecutive blank lines are squeezed into one blank line.
  1144. .TP
  1145. .B toplines (numerical value)
  1146. The number of lines of a message to print when the "top" command
  1147. is issued.  If unset, `crt' lines are printed.
  1148. .TP
  1149. .B unix (boolean)
  1150. If set, commands which are not
  1151. .I Mush
  1152. commands are considered to be
  1153. .I UNIX
  1154. commands.  This removes the inconvenience of requiring the user to do
  1155. shell escapes to do quick UNIX commands.  For systems that support job
  1156. control, SIGTSTP will stop the entire shell as well as the process
  1157. being executed.  When SIGCONT is delivered, both will receive the
  1158. signal and the shell will continue to wait for the job to finish.
  1159. .sp
  1160. The lack of real job control, input/output redirection and UNIX command piping,
  1161. this mode of the shell is not intended to be used as a login shell.
  1162. .sp
  1163. If a
  1164. .I Mush
  1165. command conflicts with a UNIX command, use 'sh' to override the shell command.
  1166. .sp
  1167. .I "WARNING: Be aware that Mush commands return message lists, NOT TEXT.\ "
  1168. You cannot pipe UNIX or shell commands to or from UNIX commands.
  1169. UNIX commands should be simple commands without pipes or metacharacters.
  1170. .sp
  1171. This feature is not available for the graphics (tool-based) mode.
  1172. .TP
  1173. .B verbose (boolean)
  1174. Passes verbose flag to mail delivery systems when sending mail.
  1175. .TP
  1176. .B verify (boolean)
  1177. When through editing messages, just before sending,
  1178. .B verify
  1179. will ask you if you want to send, continue editing, or abort the
  1180. whole message all together.
  1181. .TP
  1182. .B visual (string)
  1183. Visual editor to use when ~v is specified. Default is vi. The visual
  1184. editor is invoked with -e arguments to the commands, "respond" and "mail."
  1185. .TP
  1186. .B warning (boolean)
  1187. If set, warning messages are printed when:
  1188. .in +4
  1189. .ti -2
  1190. \(bu a command line alias (`cmd') looks like a command.  For example,
  1191. .br
  1192. cmd mail 'set fortune; \\mail'
  1193. .br
  1194. cmd respond 'unset fortune; \\respond;'
  1195. .br
  1196. .ti -2
  1197. \(bu a variable is set differently from its default value.
  1198. For example, if the escape character is set to something other
  1199. that the tilde ( ~ ), then a warning message will be printed.
  1200. .in -4
  1201. .sp
  1202. The intent is so that users who are used to their own environments
  1203. will be aware of changes in other environments should they be forced
  1204. to use them.
  1205. .SH FILES
  1206. .if n .ta 2.5i
  1207. .if t .ta 1.8i
  1208. /usr/spool/mail/*    The directory for incoming mail.
  1209. .br
  1210. ~/Mail    Default \fBfolder\fR directory.
  1211. .br
  1212. ~/mbox    Old Mail.
  1213. .br
  1214. ~/.mushrc    File giving initial \fIMush\fR commands.
  1215. .br
  1216. ~/.mailrc    Alternate initialization file.
  1217. .br
  1218. ~/.edXXXXXXX    Temporary for file for outgoing messages.
  1219. .br
  1220. ~/.mushXXXXXX    Temporary mail file (copy of current folder).
  1221. .PP
  1222. Temporary files which are created by the program are always
  1223. created with read/write access to the owner only; group and other
  1224. permissions are never set.  This is also true for the /usr/spool/mail/*
  1225. files.  All other files created by the user via commands internal or
  1226. external to the program have permissions set by the user's default
  1227. umask.  If the umask is reset within the program, the mask remains
  1228. in tact even after exiting.  Remember to set the variable,
  1229. .B unix
  1230. before attempting to set the umask value.
  1231. .PP
  1232. If your system is using Sun Microsystem's NFS, take special note to
  1233. read the manual page for mount(1). Filesystems mounted for read/write
  1234. access should be mounted as "hard" NFS mounts or you may lose mailboxes
  1235. during a timeout during a write or update.
  1236. .PP
  1237. Filesystems that use RFS still have bugs to be ironed out in the way
  1238. of owners and permissions concerning utime(2).
  1239. .sp
  1240. .SH "SEE ALSO"
  1241. Mail(1), binmail(1), csh(1), aliases(5), mount(1),
  1242. mailaddr(7), sendmail(8), printf(3), execl(3), umask(1), utime(2).
  1243. .sp
  1244. .SH AUTHOR
  1245. This code was written entirely by Dan Heller and contains no UNIX sources
  1246. or is a modified version of any other mailer.  Similarities with any other
  1247. mailer previous to
  1248. .I Mush
  1249. may have been designed for compatibility reasons with such mailers, but
  1250. no source code was barrowed, or even referenced to develop
  1251. .I Mush.
  1252. .PP
  1253. argv@spam.istc.sri.com    island!argv@sun.com
  1254. .sp
  1255. .SH BUGS
  1256. The curses interface uses the curses library.  The routines from the
  1257. library that are used are the most basic and simple to avoid possible
  1258. bugginess that different versions of UNIX might have.  However, one
  1259. unavoidable problem is the reverse video mode.  Depending on your terminal,
  1260. the termcap entry for it, and the version of curses you are running,
  1261. the reverse video may makes things worse than desired.  In such situations,
  1262. the user should set the variable,
  1263. .B no_reverse
  1264. to not get reverse video.  ^R may still be entered at runtime in the curses
  1265. interface to toggle reverse video.
  1266. .sp
  1267. If the program is already running and the system [later] has to swap
  1268. and there is no swap space left, there may be problems. One such
  1269. problem is sending mail.  If this happens, then sending mail
  1270. will fail and a segmentation fault from the spawned forked child will occur
  1271. unless the -v flag was given to mail.  The unsent letter will
  1272. not be removed from the editing file ($home/.edXXXXXX) and may be recovered.
  1273. .sp
  1274. Many functions available to the line oriented mode (shell mode)
  1275. are not available to the tool mode. For example,
  1276. .B pick
  1277. may not be directly accessed although experienced users may find that
  1278. typing pick commands within single backquotes in the "range" panel item
  1279. in the header window will indeed pick messages.  This is mostly for selecting
  1280. the "delete range" item or the middle mouse button icon in the header panel.
  1281. .sp
  1282. Shell escapes (of any kind) may not be called from
  1283. the tool/graphics mode. The reason for this is that there is no tty
  1284. .I window
  1285. to run commands from.  It is impossible to determine whether or
  1286. not the user wants to run an interactive program or not so it is
  1287. best to disallow its usage all together. The experienced window user
  1288. can figure out how to really do shell layers from within the tool mode.
  1289. .sp
  1290. Toggling from the curses mode to the line mode to get the full
  1291. functionality of the shell/line mode is unfortunately necessary
  1292. in the name of "user friendliness."  Mostly, this is only necessary
  1293. for piping of commands and using the pick command.
  1294. .sp
  1295. The function keys and their ability to
  1296. .I work
  1297. has been variable depending on the version of SunWindows/SunView
  1298. your Sun Workstation has.  From time to time, it works, but when it
  1299. doesn't, it seems to be related to other user or system definable
  1300. dot-files or whatever. I hardly use them, so I haven't had a chance
  1301. to really debug that part much.  My experiences have shown them to
  1302. work in Sun versions 2.0, 2.2, and 3.3, but not 2.2, 2.3, 3.0 or 3.2.
  1303. .sp
  1304. When using
  1305. .B vi
  1306. in the tool/graphics mode, periodically the window will be one line
  1307. "short."  That is, scrolling will be off by one and line and you may
  1308. have to redraw the window (using `z.' in vi) to get it in sync again.
  1309. This is a known problem with SunWindows, but Sun refuses to fix it
  1310. as SunWindows are "obsolete."
  1311. .sp
  1312. When running on full filesystems,
  1313. .I Mush
  1314. may complain or not even run since it needs temporary space with which
  1315. to work.  Instead of finding new filesystems on it's own,
  1316. .I Mush
  1317. leaves this task up to the user. The workaround is to set the variable
  1318. .B home
  1319. in the initialization file to be a writable place in a filesystem which
  1320. has enough disk space.  This will set the user's home directory to be
  1321. set incorrectly, but resetting the home manually once in the shell
  1322. will correct the problem.
  1323. .sp
  1324. Most of the other known and documented bugs
  1325. are in the supplied README file accompanying the source.  Of course,
  1326. the source is an excellent place to look as most known bugs are documented
  1327. right in the source code.  A good way to track suspicious bugs is to use the
  1328. .B debug
  1329. command. This command is very difficult to use in curses mode.
  1330.