home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume18 / mush6.4 / part11 / cmd_help next >
Encoding:
Text File  |  1989-03-12  |  26.6 KB  |  754 lines

  1. /* @(#)cmd_help    1.4    10/24/88 (Dan heller) */
  2.  
  3. %?%
  4. The `?' command will give you a list of legal commands.  Most
  5. commands accept -? as an option.  This will give you specialized
  6. help with that particular command.
  7. %%
  8.  
  9. %ignore%
  10.       ignore/unignore [headers]
  11.  
  12. Use this command to set the message headers you would like not
  13. to be printed when you read a message. If no header specified,
  14. then a list of all headers currently being ignored is printed.
  15. You must specify a header for unignore.
  16.  
  17. You can set the variable "alwaysignore" to force normally
  18. ignored headers to be ignored while saving messages, forwarding
  19. messages or including messages into message buffers.
  20. %%
  21.  
  22. %set%
  23.       set/unset [variable [= value]]
  24.  
  25. With no parameters, set lists all variables and their values.
  26. To set a boolean variable (on or off), use:
  27.     set variable
  28. To set a variable's value to a string, use:
  29.     set variable = value
  30.  
  31. If you want double-quotes or white-space embedded in a string,
  32. encase the string in single quotes.  If you want single quotes
  33. in a string, encase the string in double quotes.
  34.  
  35. For a list of all variables with special meanings, use:
  36.     set ?all
  37. For help on a particular one of these variables, use:
  38.     set ?variable_name
  39. %%
  40.  
  41. %readmsg%
  42. You can read messages in different ways.  "type" and "print"
  43. will print the current message.  "top" will only print the first
  44. N lines of the current message where N is the value of the
  45. variable "crt".  "next" will go to the next unread message and
  46. print that.  "previous" will go back and read the first unread
  47. message previous to the current.  "^" will print the first
  48. message, "$" will print the last.
  49.  
  50. Any of these commands can be followed by a message list, and
  51. each message in that list will be printed (or piped to other
  52. commands).
  53. %%
  54.  
  55. %alts%
  56.       alts [hostnames]
  57.  
  58. The alts command sets a list of hostnames on which you have an
  59. account.  Normally, when you respond to all recipients of mail,
  60. your account name will be listed as if you wished to send
  61. yourself mail.  If you don't have metoo set, then your name will
  62. be removed from the mailing list if your login name is on the
  63. list and the host specified is in the alternates list.  The
  64. special parameter `*' instructs alts to match all hostnames; in
  65. that case, only the login name is tested.
  66. %%
  67.  
  68. %source%
  69.       source/saveopts [file]
  70.  
  71. The source/saveopts commands will load/save all variable
  72. settings, options, aliases, cmd's, ignored headers ...
  73. everything you can set, it loads or saves.  The file read or
  74. written follows these rules:
  75.  
  76. 1) If a filename is given, that file is used
  77. 2) The file described by the environment variable MAILRC
  78. 3) In the user's home directory: .mushrc (if it exists)
  79. 4) In the user's home directory: .mailrc (if it exists)
  80.  
  81. If saveopts is used and the file exists, confirmation will be
  82. requested before the file is overwritten.
  83. %%
  84.  
  85. %general%
  86. This is the general help message.  To get help on a specific
  87. command, try "command -?".  Extended help is given by typing
  88. "help item" where item is one of:
  89.     path, msg_list, prompt, hdr_format
  90. Help with msg_list is highly advisable!
  91.  
  92. Type "?" to get a list of available commands.  Try "? command"
  93. to get help on the particular command that you specify.
  94. %%
  95.  
  96. %path%
  97. Whenever "path" is specified, the following syntax is legal
  98. besides the normal path addressing scheme used by unix:
  99.  ~[user]   -- the home directory of specified user (yours by default)
  100.  %[user]   --/usr/spool/mail/login_name [user_name] (yours by default)
  101.  +file     --the directory described by `set folder'; file is `file'
  102. %%
  103.  
  104. %msg_list%
  105. A "msg_list" references one or more messages.  The user
  106. specifies a group of messages according to a special syntax.
  107.  
  108.  *      All messages.
  109.  ^      The first message.
  110.  $      The last message.
  111.  .      The current message.
  112.  N-M    A range of messages between N and M, inclusive.
  113.  
  114. In the last case, N and M may be * ^ $ . or digits referencing
  115. explicit message numbers.  The range must be in ascending order.
  116.  
  117. You can also negate messages by placing the message list inside
  118. braces, `{' `}' -- thus, the expression "2-19 {11-14}"
  119. references messages 2 through 19 except for those from 11
  120. through 14.
  121.  
  122. Commands can be "piped" to one another, because the return value
  123. of a command is a msg_list, not text.  For example,
  124.     pick -f fred | lpr
  125. will find all messages "from fred" and send them to the printer.
  126.  
  127. Commands dealing with more than one message process them in
  128. numeric order -- not necessarily the order specified.  Thus, the
  129. command "save 1-5 9 7 6 file" will save the messages in
  130. ascending order, not in the order given.
  131. %%
  132.  
  133. %preserve%
  134.       preserve [msg_list]
  135.  
  136. The "preserve" command saves deleted or read messages in your
  137. mailbox.  Without explicitely setting preserve, all mail that
  138. you read will be saved in ~/mbox (or set mbox).  Setting the
  139. boolean variable "hold" is equivalent to preserving each message
  140. as you read it.
  141. %%
  142.  
  143. %save%
  144.       save/write/copy [-s|-S|-a|-A] [!] [msg_list] [filename]
  145.  
  146. If no filename is specified, ~/mbox (or the value of the
  147. variable "mbox") is used.  Save and write will append msg if
  148. `file' already exists.  Specifying the `!' will overwrite the
  149. file (e.g., erasing it first).
  150.  
  151. To save messages to a filename beginning with a digit, escape
  152. the filename with a backslash (\).
  153.  
  154. The "write" command will write message without the headers (msg
  155. body only).  Save and write both mark messages for deletion
  156. unless "keepsave" is set.  The "copy" command is identical to
  157. "save" except that messages are not marked for deletion
  158. (identical to having the variable "keepsave" set).
  159.  
  160. The -s and -S options save messages to files named by the
  161. subject of the message.  If more than one message is specified,
  162. then the message subject of each message is used.  If -S is
  163. specified, then the subject of the first message is used for all
  164. messages.  Spaces and forward slashes (/) are converted to
  165. underscores (_).
  166.  
  167. The -a and -A options save messages by author's login name.
  168. %%
  169.  
  170. %lpr%
  171.       lpr [-n] [-h] [msg_list]
  172.   -n      print body of message only (not headers)
  173.   -h      print all headers with message body (default true)
  174.   -Pxx    print on printer xx
  175. %%
  176.  
  177. %respond%
  178.       replysender/replyall [msg_list] [-r path] [mail_flags] [users]
  179.  
  180. The "replysender" command replies only to the sender of a
  181. message, whereas "replyall" responds to everyone on the To: and
  182. Cc: lines of the message.
  183.  
  184. The commands "reply" is identical to "replysender".
  185.  
  186. If a message list is indicated, then each message on the list is
  187. replied to in the same manner.  If -r is specified with a host or
  188. path (uucp-style), then each address in the list is routed via
  189. this path.  This overrides the value of auto_route (see man page).
  190.  
  191. The address of the author is obtained from certain headers in
  192. his message to you.  Unless you specify otherwise, mush will
  193. search for the headers Reply-To: Return-Path: and From:.  You
  194. can override these values by setting the variable reply_to_hdr.
  195.  
  196.     set reply_to_hdr = "sender reply-to return-path from_"
  197.  
  198. This example shows that mush will search for (in order), the
  199. headers listed in the reply_to_hdr variable.  If one header isn't
  200. found, then mush looks for the next in the list.  If none of the
  201. headers in the list are found, the default headers (mentioned
  202. above) are searched.  The last header listed in the example is
  203. the special "From " header.  See the man page for more details.
  204.  
  205. Type "mail -?" for information on legal mail flags.
  206. %%
  207.  
  208. %sort%
  209.       sort [-] [a|d|R|s|S]
  210.   a         by author (alphabetical)
  211.   d         according to date
  212.   R         by subject including Re: (alphabetical)
  213.   s         by subject ignoring Re: (alphabetical)
  214.   S         by status
  215.  
  216. The optional `-' flag will reverse the order of sorting.  By
  217. default (no parameters), sort sorts messages by status:  New,
  218. unread messages are first, followed by preserved messages and
  219. finally the deleted messages are placed at the end.
  220.  
  221. If the "date_received" variable is set, sorting by date is
  222. done using the date you received the message.  Otherwise,
  223. messages are sorted by date sent by the original author.
  224. %%
  225.  
  226. %pick%
  227.       pick [-x] [-f|s|t] [-h hdr] [-i] [-r msg_list] [<pat>]
  228.             [-d [-][date]] [-ago [n days] [n weeks] [n months]]
  229.  
  230. Search for patterns within messages.  Entire messages are
  231. searched for <pattern> unless -f, -h, -s, or -t is specified.
  232. Only one of -d, -f, -h, -s, -t and -ago can be specified; no
  233. pattern is used with -d and -ago.
  234.  
  235.   -x            return those messages which do NOT match
  236.   -f            match pattern in the "From:" field (author) only
  237.   -s            match pattern in the "Subject:" header only
  238.   -t            match pattern in the "To:" field only
  239.   -h hdr        match pattern in specified header field only
  240.   -i            ignore case of letters in when matching
  241.   -r msg_list   restrict the range of messages search to msg_list
  242.   -d            select messages sent on [+ after] [- before] date
  243.         A "date" is of the form:  [+-][month]/[date[/year]]
  244.         Omitted fields default to today's values.  Examples:
  245.           pick -d 4/20     messages on Apr 20, this year
  246.           pick -d -/2/85   on or before the 2nd, this month, 1985
  247.           pick -d +5/4     on or after May 4, this year
  248.           pick -d /        finds today's messages only
  249.         At least one `/' char must be used in a date.  There is
  250.     no strong date checking; 2/30 would be considered valid.
  251.   -ago          select messages relative to the current date
  252.     Date formats for "ago" are more verbose than for -d; see
  253.     the manual page for details.
  254. %%
  255.  
  256. %alias%
  257. Options for alias:
  258.  alias                       print all namelists
  259.  alias name                  print namelist associated with name
  260.  alias name namelist         set "name" to the value of namelist
  261.  unalias namelist            unalias names in namelist
  262.  
  263. A "namelist" consists of one or more addresses.  An address may
  264. be a name already set to another list, a valid user, a file or
  265. a program.  Filenames must be full pathnames, i.e., they must
  266. begin with a '/' (or with a ~, which expands to some home dir).
  267. A "program" must start with a pipe symbol and be encased in
  268. quotes:
  269.  
  270.     "|program_name"
  271.  
  272. The command "expand" will print addresses (including sublists)
  273. associated with the given alias.
  274. %%
  275.  
  276. %from%
  277. With no parameters, "from" will print the current message's
  278. header line.  If given a message list, "from" will print the
  279. headers of the listed messages.
  280.  
  281. The special parameters `-' and `+' can be given to move the
  282. current message pointer to the previous or next message
  283. respectively, while also printing that message's header.
  284.  
  285. If a message list was given in addition to `-' or `+', then
  286. the current message pointer will be set to the first or last
  287. message, respectively, in the message list given.
  288.  
  289. Examples:
  290.  
  291.     from - 10-30 {16}
  292. will print the headers of messages 10 through 30 except for
  293. message 16 and set the current message pointer to 10.
  294.  
  295.     pick -f Dan | from +
  296. will print the headers of all messages that contain "Dan" in the
  297. author's name and set the current message pointer to the last
  298. one of that kind in the list.
  299.  
  300.     from +
  301. will print the header of the message after the current message
  302. and increment the current message pointer to that message.
  303. %%
  304.  
  305. %own_hdrs%
  306. This command is used to set, unset or view your personalized
  307. message headers.  These headers are included in all your
  308. outgoing mail.
  309.  
  310. Options for my_hdr:
  311.   my_hdr            show all headers
  312.   my_hdr header            show value of header
  313.   my_hdr header: string        set header to string
  314.   un_hdr header            unset header
  315. %%
  316.  
  317. %fkey%
  318. This command is used to make function key settings in Suntools
  319. (graphics) mode.  When run as a tool (-t on command line),
  320. choose the Options item, and the "function key" menu option.
  321. %%
  322.  
  323. %cmd%
  324. This function is used to establish command aliases; cmd's are
  325. just like aliases in the C-shell.  Options are:
  326.   cmd                       view all commands
  327.   cmd command               show value of command
  328.   cmd command "value"       set command to value
  329.   uncmd command             unset command
  330.  
  331. If you want to reference history commands within a cmd,
  332. escape the ! with a backslash.  For example:
  333.  
  334.     cmd r 'replysender \!* ; delete -t'
  335.  
  336. will cmd "r" to reply using whatever parameters you have given on
  337. the command line and then delete that message and print the next
  338. message (-t parameter to "delete").
  339. %%
  340.  
  341. %headers%
  342.       headers [+|-|N] [[-H]:c]
  343.   +    print the next screenful (or use the 'z' command).
  344.   -    print the previous screenful (or use 'z-' ).
  345.   N    print a screenful starting at message number N.
  346.   -H:c  where `c' is one of
  347.      a  all messages (mostly for the command line parameter -H:c)
  348.      d  deleted messages
  349.      n  new messages
  350.      o  old messages
  351.      p  preserved messages
  352.      r  replied-to messages
  353.      s  saved messages
  354.      u  unread messages
  355.  
  356. The "headers" command prints out a screenful of headers.
  357. Deleted messages are not normally shown; set "show_deleted" to
  358. include deleted messages.
  359.  
  360. The command ":c" is equivalent to "headers -H:c".  The -H can be
  361. omitted, i.e., "headers :c" will also work.
  362. %%
  363.  
  364. %hdr_format%
  365. This variable controls the display of message headers.  Use:
  366.     set hdr_format="string"
  367. to change the header display.  The string uses printf style
  368. formatting and follows these conventions:
  369.     %a  address of the author
  370.     %c  number of characters (bytes) in the message
  371.     %d  entire date of the message (see "date_received" variable)
  372.     %f  "From" field (author name and address)
  373.     %i  the message-id (may or may not be present)
  374.     %l  number of lines in the message
  375.     %M  month name of the message
  376.     %N  day of the month (number)
  377.     %n  name of the author
  378.     %s  subject of the message
  379.     %t  "To" field (recipients)
  380.     %T  time of the message (see "mil_time" variable)
  381.     %W  day of the week (Sun, Mon, etc.)
  382.     %Y  year of the message 
  383.     %y  year (last 2 digits only)
  384.     \n  a newline
  385.     \t  a tab
  386.  
  387. A field specifier may be used in any % expansion.  Thus, "%20s"
  388. will print the first 20 characters of the Subject.  No matter
  389. what the formatting string, the message number, the status of
  390. the message and a '>' (if this is the "current" message) is
  391. before any user defined format is printed.
  392. %%
  393.  
  394. %folder%
  395.       folder/update [-N] [-r] [!] [%[user]|#|&|file]
  396.   -N       Do not display the list of headers
  397.   -r       read only mode (cannot write changes to this folder)
  398.   %[user]  change to /usr/spool/mail/[user] (you by default)
  399.   #        change to folder accessed previous to current folder
  400.   &        change to "mbox" -- default is $mbox or ~/mbox
  401.  
  402. The "folder" command changes the current folder; with no parameters,
  403. it prints the name of the current folder.  If `!' is specified, the
  404. current folder is not updated before changing.
  405.  
  406. The "update" command updates the current folder.  In this case, only
  407. the -N and -r options are observed.
  408. %%
  409.  
  410. %prompt%
  411. This variable controls the prompt that mush will display.
  412.     set prompt = "string"
  413. The "string" follows printf style formatting conventions:
  414.     %F  full path of the current working folder
  415.     %f  name (path tail) of the current folder
  416.     %m  current message number
  417.     %n  number of new messages
  418.     %u  number of unread messages
  419.     %d  number of deleted messages
  420.     %t  total number of messages
  421.     %T  current time
  422.     %N  day of the month (number) (today)
  423.     %W  weekday name (today)
  424.     %M  month name (this month)
  425.     %Y  year (this year)
  426.     %y  year (last 2 digits only)
  427.     \n  newline
  428.     \t  tab
  429. %%
  430.  
  431. %quit%
  432.       quit/exit
  433.  
  434. These commands end a mush session.  "quit" will update your
  435. mailbox; if new mail has come in, you will be told so and given
  436. an option whether to really quit or not.  "exit" will leave mush
  437. neither updating your mailbox nor checking for new mail.
  438. %%
  439.  
  440. %ls%
  441. The "ls" command is exactly like the UNIX command "ls".  All
  442. parameters are the same.  The variable "lister" can be set to
  443. a list of default parameters, thus avoiding having to specify
  444. them all the time.  The "folders" command is equivalent to
  445. doing "ls $folder" from the Mush prompt.
  446. %%
  447.  
  448. %shell%
  449.       sh [command]
  450.  
  451. If a "command" is given, that UNIX command will be executed
  452. under the Bourne shell.  If no command is specified, then an
  453. interactive shell will be started. The environment variable
  454. SHELL or the local mail shell variable shell  describes the
  455. shell to invoke.  If none is set, then the default shell is
  456. defined by the system administrator (currently set to csh).
  457.  
  458. Users on systems with job control will probably have little
  459. use for the sh command.
  460. %%
  461.  
  462. %stop%
  463. The stop command sends a stop signal to the mail shell.  It is
  464. equivalent to ^Z as it will stop the process.  Since the shell
  465. never needs to be exited, the command 'q' may be aliased to
  466. "stop" and the shell may have
  467.     alias mail %mush
  468. (assumes csh) which will bring mush into the foreground rather
  469. than having to invoke a new shell.  New mail will be read into
  470. the shell automatically and much time and energy is saved.
  471. %%
  472.  
  473. %curses%
  474. The curses-based interface for Mush does not require a graphics
  475. display, but does requires a terminal which can handle upline
  476. cursor movement capabilities.  All commands are one or two
  477. keystroke commands and are executed as soon as the key is typed.
  478.  
  479. For a list of current key-to-command bindings, use the "bind"
  480. command (defaults to 'b' in curses mode).
  481. %%
  482.  
  483. %bind%
  484.       bind <sequence> <curses-command> [ <parameters> ]
  485.  
  486. Binding is done for the curses interface only.  It allows the
  487. user to bind keystrokes or key sequences to curses-interface
  488. commands.  You cannot bind keystrokes to regular mush commands
  489. using bind.
  490.  
  491. A bound key-sequence (input by the user) will be converted into
  492. the curses command it is bound to.  For a list of all curses
  493. commands, issue the "bind" command and follow the instructions
  494. to get a list.  Currently, parameters are ignored for all curses
  495. commands except the special command "macro".
  496.  
  497. When specifying sequences, you may enter almost anything at the
  498. keyboard that you want to type.  This includes most control
  499. characters.  A special syntax is provided to specify control
  500. characters if you wish to set up default key bindings in your
  501. initialization file without using real control characters.
  502.  
  503. To bind keystrokes that are control characters in the
  504. initialization file, you must use the notation "\CX" where "X"
  505. is an upper-case letter representing the control key you want to
  506. use. "\CN" would be control-N; "\n" is carriage return.  You may
  507. not bind keyboard generated signals; for most users, those key
  508. sequences are control-C and control-\.  For users with job
  509. control, the suspend characters (usually control-Z and
  510. control-Y) are also ignored.
  511.  
  512. To specify the escape key, use "\E"; "\C[" will not work.
  513.  
  514. Trying to bind a key sequence which prefixes another sequence is
  515. an error and the user is warned that the longer binding will not
  516. work.  The binding will take place, however, because it is
  517. possible to unbind the shorter sequence, thus validating the
  518. longer sequence.
  519.  
  520. The special curses command "macro" allows a string to be
  521. executed just as if the user typed it directly.  Issue the
  522. "bind-macro" command for more details.
  523. %%
  524.  
  525. %msg_flags%
  526.       flags [msg_list] [[+|-] [D N O P R S r U]]
  527.  
  528. This command displays the status of messages by default.
  529. If a list is specified, it will tell which bits of the
  530. message are set: Delete, New, Old, Preserved, Read, Saved
  531. replied-to, and Unread.  If any (one or more) of the bits
  532. are given and no + or - modifier is specified, then the
  533. status of each message in the list will be set to that
  534. status absolutely (other status flags are lost).  However,
  535. if a + or - is specified, then the status is modified for
  536. that bit to on (+) or off (-).
  537.  
  538. If no list is given, then the list of messages is taken
  539. from a pipe (if piped) or the current message is used.
  540. %%
  541.  
  542. %setenv%
  543.       setenv VARIABLE [value]
  544.  
  545. Variable names may be any string, but traditionally environment
  546. variables are all upper case.  If no "value" is specified, then
  547. the variable name will be set to an empty string.  If the value
  548. contains spaces, you should enclose the string in quotation
  549. marks.  Use printenv to print a list of all your environment
  550. variables.
  551. %%
  552.  
  553. %unsetenv%
  554.       unsetenv VARIABLE
  555.  
  556. You must specify one and only one variable to unset in your
  557. environment variable settings.  Use printenv to print a list of
  558. all your environment variables.
  559. %%
  560.  
  561. %edit_msg%
  562.       edit_msg [msg_list]
  563.  
  564. The "edit_msg" command lets you edit messages in your folder.
  565. When editing messages, be careful not to remove certain message
  566. headers such as Date:, From:, or any others that look important.
  567. If you remove or change something you shouldn't have, you will
  568. be notified and the temporary file used to edit the message will
  569. not be removed.
  570. %%
  571.  
  572. %bind-macro%
  573.       bind-macro [<sequence> [<expansion>]]
  574.  
  575. The "bind-macro" command allows you to set macros in curses
  576. mode, so that one keystroke (or a few) will act as though you
  577. had typed a longer sequence.  Using "bind-macro" is equivalent
  578. to specifying the "macro" special command as a parameter to
  579. the "bind" command.
  580.  
  581. Given no parameters, "bind-macro" will list all current curses
  582. mode macros.  Given only a <sequence>, it will show the current
  583. binding for that sequence.  Given both a <sequence> and an
  584. <expansion>, it will create a macro such that, when the
  585. <sequence> is typed in curses mode, the effect will be the same
  586. as if the <expansion> had been typed instead.
  587.  
  588. The same format for control characters that is used for the
  589. "bind" command may be used in both the <sequence> and the
  590. <expansion>, i.e.,
  591.     \Cx     control-x (where x is a capital letter)
  592.     \E      the escape character (\C[ does NOT work!)
  593.     \n      a newline (other C-style escapes also work)
  594.  
  595. Example:
  596.     bind-macro F [folder]+record\n
  597.  
  598. If you are in curses mode and hit the F key, then the curses
  599. mode command "folder" will execute and +record (followed by
  600. a carriage return) will be entered as if you typed it.
  601.  
  602. Also see the "map" and "map!" commands.
  603. %%
  604.  
  605. %map%
  606.       map [<sequence> [<expansion>]]
  607.  
  608. The "map" command allows you to use one keystroke (or a few) and
  609. have it act as though you had typed a longer sequence.
  610.  
  611. Given no parameters, "map" will list all current line mode
  612. macros.  Given only a <sequence>, it will show the current
  613. binding for that sequence.  Given both a <sequence> and an
  614. <expansion>, it will create a macro such that, when the
  615. <sequence> is typed in line mode, the effect will be the same
  616. as if the <expansion> had been typed instead.
  617.  
  618. The same format for control characters that is used for the
  619. "bind" command may be used in both the <sequence> and the
  620. <expansion>, i.e.,
  621.     \Cx     control-x (where x is a capital letter)
  622.     \E      the escape character (\C[ does NOT work!)
  623.     \n      a newline (other C-style escapes also work)
  624.  
  625. Example:
  626.     map & print\n
  627.  
  628. If you are not in curses mode and hit the & key, then it will
  629. be as if you typed the word "print" and hit carriage return.
  630.  
  631. To type a character without having the mapping expanded, precede
  632. the character with a backslash (\).
  633.  
  634. Also see the "map!" and "bind" commands.
  635. %%
  636.  
  637. %map!%
  638.       map! [<sequence> [<expansion>]]
  639.  
  640. The "map!" command allows you to set macros in message
  641. composition mode, so that one keystroke (or a few) will act
  642. as though you had typed a longer sequence.  map!'s take
  643. effect regardless of whether you started the letter from
  644. curses mode or line mode.
  645.  
  646. Given no parameters, "map!" will list all composition mode
  647. macros.  Given only a <sequence>, it will show the current
  648. binding for that sequence.  Given both a <sequence> and an
  649. <expansion>, it will create a macro such that, when the
  650. <sequence> is typed in message composition mode, the effect will
  651. be the same as if the <expansion> had been typed instead.
  652.  
  653. The same format for control characters that is used for the
  654. "bind" command may be used in both the <sequence> and the
  655. <expansion>, i.e.,
  656.     \Cx     control-x (where x is a capital letter)
  657.     \E      the escape character (\C[ does NOT work!)
  658.     \n      a newline (other C-style escapes also work)
  659.  
  660. Example:
  661.     map! ! <BANG>
  662.  
  663. If you are typing in a letter regardless of which interface you
  664. use and you hit the ! key, then it would be as if you typed the
  665. keys "<BANG>".
  666.  
  667. To type a character without having the mapping expanded, precede
  668. the character with a backslash (\).
  669.  
  670. Also see the "bind" and "map" commands.
  671. %%
  672.  
  673. %eval%
  674.       eval args ...
  675.  
  676. This command causes its arguments to be re-parsed and then
  677. executed as a mush command.  Example:
  678.     set initprompt='"$hostname:$cwd "'
  679.     eval set prompt=$initprompt
  680. %%
  681.  
  682. %pipe_msg%
  683.       pipe [msg-list] unix-command
  684.  
  685. The specified unix-command is executed.  The standard input of
  686. the command is the texts of listed messages, including headers
  687. that are not ignored (see "ignore -?" and "set ?show_hdrs").  If
  688. this command is part of a mush pipeline (|) then any list of
  689. messages given is added to those taken from the pipeline.  If no
  690. msg-list is given and there is no pipeline, the current message
  691. is used.  The unix-command is executed via "sh", so csh aliases
  692. may not be used.
  693.  
  694. If invoked with a capital letter (Pipe), only the bodies of the
  695. messages will be fed to the unix-command -- all headers will be
  696. omitted.
  697.  
  698. Examples:
  699.     pipe 2 7 more      -- send messages 2 and 7 through "more"
  700.     pipe patch         -- send the current message to "patch"
  701.     1 | Pipe nroff     -- send the body of message 1 to "nroff"
  702. %%
  703.  
  704. %merge%
  705.       merge [-N] folder-name
  706.  
  707. The contents of the specified folder are read into the current
  708. folder.  If -N is not specified, a header summary is printed
  709. for each message read (see "headers -?").
  710.  
  711. A list of all the merged messages is returned for use in pipes.
  712. %%
  713.  
  714. %echo%
  715.     echo [-n] [-h | -p] args
  716.  
  717. Echo simply echoes the parameters to the command back to the user.
  718.  
  719. If the -n flag is given, then no newline is appended.
  720. If the -h flag is given, then echo looks for formatting parameters
  721. as if the "from" command were given on the "current" message.
  722. If the -p flag is given, then echo looks for formatting parameters
  723. as if your prompt were changed temporarily.
  724.  
  725. Examples:
  726.     echo -h This message is from %a and is dated %d
  727. might produce:
  728.     This message is from island!argv and is dated Dec 14, 1988.
  729.  
  730.     echo -p There are %n new messages to read in %f.
  731. might produce:
  732.     There are 5 new messages to read in /usr/spool/mail/argv.
  733.  
  734. Note that -h and -p cannot be specified together.
  735. %%
  736.  
  737. %undigest%
  738.     undigest [-m] [msg_list] [filename]
  739.  
  740. A "digest" is a mail message which is a collection of other mail messages
  741. mailed to a "moderator" by other users.  The moderator compiles all the
  742. messages into a folder and sends the result to all the subscribers of the
  743. mailing list.  The undigest command disassembles the entries into the set
  744. of messages which comprises the digest.
  745.  
  746. The -m option will merge these messages into the current folder.  Otherwise,
  747. if a filename is specified, a new folder is created and the user can change
  748. folders to read the messages separately.
  749.  
  750. If a message list is specified, each digest is disassembled to the same
  751. filename (if given).  If no filename is given and the user did not request
  752. a merge, then a folder is created based on the subject of the digest.
  753. %%
  754.