home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume14 / mush6.0 / part01 / README-6.0 < prev    next >
Encoding:
Text File  |  1988-04-12  |  16.3 KB  |  321 lines

  1. This is the README for release 6.0 of mush.  Note that the orginal README
  2. has changed as well, so it should be read again.  It contains important
  3. information for installing mush on your system.
  4.  
  5. With this distribution, there is a file called Mailrc which can be
  6. used as the "default" mailrc (see config.h-dist).  This file will set
  7. variables and command line aliases to make mush look as much like ucb Mail
  8. as it possibly can.
  9.  
  10. New makefile && compiler flags:
  11.     System V machines that aren't XENIX should use the makefile.sys.v makefile.
  12.     The old makefile.sys.v has been removed. System-V machines
  13.     that aren't xenix may note -DUSG in the makefile.  USG is defined in
  14.     curses.h but is required to be in the makefile if compiling without the
  15.     curses libraries.  It should be in the makefile anyway so you never have
  16.     to worry about it. Xenix machines should use makefile.x286 or makefile.x386
  17.     USG should probably be defined on your xenix system unless you are running
  18.     a _very_ old version of xenix.  I don't know how old it would be, but
  19.     try compiling mush with USG first -- if that fails, then undefine it.
  20.  
  21.     Some systems have regcmp/regex as their regular expression matching
  22.     routines while others have re_comp/re_exec -- If you have regcmp,
  23.     then you must have -DREGCMP in the makefile you're using. If you have
  24.     both sets of routines, take a pick.  Note that some systems do not
  25.     have either set of routines in the default libraries.  You must find
  26.     the library to use and add it to the list of libraries to use.  If this
  27.     is the case, your link will fail with the errors that regex and re_comp
  28.     are undefined functions.  Read your man page for regex(3) to find where
  29.     to locate those libraries.
  30.  
  31.     Machines that use mail transfer agents that *do not* use a colon-less
  32.     "From " line as a message separator should #define in config.h the string
  33.     MSG_SEPARATOR.  Since this string is usually control characters, you
  34.     need to specify actual ascii values for those characters.  Users of MMDF,
  35.     for example, may use "\001\001\001\001" since some mmdf versions use four
  36.     control-A's to separate messages.  This message separator assumes that
  37.     there is a carriage return at the end of the string.  Systems that use
  38.     sendmail need not concern themselves with this define.
  39.  
  40.     Some mailers (not RFC822 compatible, like execmail and older binmail's)
  41.     do not accept commas between addresses on outgoing mail.  Such mailers
  42.     also tend not to add the From: field and Date: field, which are headers
  43.     required to be compatible with RFC822.  This does not apply to BSD systems
  44.     or systems which run sendmail.  If this applies to your system, you
  45.     should define OLD_MAILER in config.h as "#define OLD_MAILER" or in the
  46.     makefile in addition to the CFLAGS definition: -DOLD_MAILER.  This does not
  47.     affect the user interface at all; mush will still enforce commas between
  48.     addresses.  However, addresses given on the command line to the mailer
  49.     will have commas stripped out if OLD_MAIL is defined in the makefile or
  50.     config.h.
  51.  
  52. System V:
  53.     New functions:
  54.     lock_file() /* returns -1 if can't lock */
  55.     close_lock() /* unlocks and calls fclose */
  56.     These functions also support BSD, xenix and sys-v.  These are provided
  57.     as locking mechanisms for all systems -- ifdef's decide how to lock.
  58.  
  59.     Support for termio functionality.  Macros in mush.h have been modified
  60.     to provide for echo/cbreak modes to depending on the compiler flags:
  61.     CURSES and SYSV/BSD/USG.  There are 6 different possible cases here.
  62.  
  63.     Problem with xenix/sys-v getting the "name" from a "From:" field since
  64.     char pointer and char arrays are different sizes.  (hdrs.c, compose_hdr())
  65.  
  66.     sendmail mail now forks off and returns you to a mush prompt so you
  67.     don't have to wait for the mail to be delivered.  This is true for
  68.     both xenix and sys-v.
  69.  
  70.     terminfo is now supported.
  71.  
  72. Command line arguments:
  73.     -u [user]
  74.     /usr/spool/mail/user is used as the current folder. If "user" isn't
  75.     specified, /usr/spool/mail/root is used.
  76.  
  77.     -T timeout implies -t (for tooldmoe), so -t is not required if -T is given.
  78.  
  79.     If -r (readonly) flag is given on the command line or to the folder/update
  80.     commands, the folder (or spoolfile) is opened readonly and the mail is
  81.     *not* copied into a temporary buffer.  This speeds up IO dramatically in
  82.     systems with slow IO or disk drives (typically, xenix/sys-v).
  83.  
  84.     -H implies -r, so -r is not necessary.  If mush is started just to read
  85.     the headers of your mail, then forcing read only improves performance.
  86.  
  87.     a folder as well as an address can be given on the command line. Thus,
  88.     % mush -f foldername address-list
  89.     will first interactively mail to the address-list and upon return read
  90.     in the folder "foldername".
  91.  
  92. Misc:
  93.     There is now an internal pager which is used if the user has no
  94.     "pager" variable set and no environment PAGER variable.  This pager
  95.     is very simple and understands <space> for next $crt lines, \n does
  96.     just the next line, ^D does the next half $crt lines, and q,Q quits.
  97.     The user can "set pager" (to null, effectively) or to the string "internal"
  98.     to always get the internal pager.  The DEF_PAGER macro in config.h can
  99.     be set to "internal" also. (do_pager() misc.c)
  100.  
  101.     Mush now understands 'well-formed' addresses.  A well-formed address
  102.     consists of tokens of the form:
  103.  
  104.     $path
  105.     $path (Name or comment here)
  106.     Name or comment <$path>
  107.     "Name or comment" $path
  108.  
  109.     See the man page for Extensive examples and rules for what formats
  110.     are legal, but may not be supported.
  111.  
  112.     To: lines which are too long from incoming mail are truncated. Previously,
  113.     a segmentation fault would result -- replies to messages containing long
  114.     To: lines will attempt to chop off the list between addresses.
  115.  
  116.     Add right justification in hdr_format format string field similar
  117.     to printf style formatting.  Example:
  118.     set hdr_format = '%-25n %7d (%l) "%s"'
  119.     will produce a header format such that the name of the author is
  120.     right justified 25 positions, 7 chars of the date is printed, the
  121.     number of lines in the message and the subject surrounded by quotes.
  122.     Also subwidths are allowed using the same dot notation as provided by
  123.     printf.  (hdrs.c)
  124.  
  125.     The '%S' switch for message status has been removed and the status of
  126.     a message is always at the beginning of the message header line
  127.     by default along with the msg number and the '>' if it's the current msg.
  128.     There is a new status flag for replied to messages.  If a message has
  129.     been replied to, then a 'r' is placed in the header string just after
  130.     the first status flag.. Thus, the header:
  131.       4 >*r Dan Heller <island!argv@sun.com> ....
  132.     means that message 4 is the current message, it has been deleted,
  133.     and has been replied to...
  134.  
  135.     In the hdr_format string, the date of a message can be printed
  136.     using the same formatting characters as the prompt uses.  %T is
  137.     the time, etc... Note that %d still prints the whole date, but
  138.     the new formatting characters allow parts of the date to be printed.
  139.  
  140.     New option for mail:
  141.     mail -s [subject]
  142.     With no subject specified, -s forces a prompt for the subject
  143.     header even if the variable "ask" is not set.  If a subject is
  144.     specified, then the subject is set to that string explicitly.
  145.     This allows the reply command to change the subject or to prompt
  146.     to change the subject.
  147.  
  148.     Saveopts now warns if file already exists; you must confirm overwrite.
  149.  
  150.     Control characters typed are now understood and can be entered into
  151.     letters etc... To enter a special control character such as your backspace
  152.     character or kill line character use the backslash.  In the toolmode,
  153.     use your literal next character (^V in most cases).
  154.  
  155.     "varargs" now used in print.c to provide support for machine that
  156.     do not stack arguments compatible with vax/68000/etc... These machines
  157.     are Pyramids, Sun4's and more... (print.c)
  158.  
  159.     The temporary file used to type in messages is now _closed_ before
  160.     invoking an editor.  This is for gnuemacs users or users of other
  161.     editors which insist on no other references to that file be open.
  162.  
  163.     Using job control (^Z/fg) which in the headers portion of a message
  164.     (e.g. "To: ") would cause mush to be confused about what state the program
  165.     is in and would inadvertently show a prompt (user's $prompt) even
  166.     tho it was executing the right code (prompting for the To: line). This
  167.     has been fixed so that the prompt isn't given, but the To: line will
  168.     not be reprompted.
  169.  
  170.     Mailing to users from the command line and ^C-ing while in the To: or
  171.     Subject: prompt would just report an interrupt and not abort the message;
  172.     it now exits.(hdrs.c, set_header())
  173.  
  174.     If the user's home dir isn't writeable, or permissions changed during
  175.     runtime, mush changes to ALTERNATE_HOME and tries again rather than just
  176.     returning an error message.  If the alternate home also fails, an error
  177.     is printed and the function aborted.
  178.     (main.c, mail.c, start_file())
  179.  
  180.     When updating a folder, ignored headers are now copied back regardless
  181.     of the variable, "alwaysignore". This is necessary because the user may
  182.     ignore headers that are required to be read when reading in a folder.
  183.     (msgs.c, copy_msg())
  184.  
  185.     pick has a new option to pick from an arbitrary header.
  186.     pick -h return-path ucbvax
  187.     searches for the string "ucbvax" in the Return-Path: header of all
  188.     messages.
  189.  
  190. New Variables:
  191.     autosign2
  192.     Use an alternate signature for specific users.  Format for string:
  193.     set autosign2 = "address, address, ... : <signature>"
  194.     where "address" is a legal address (or alias) and signature is that
  195.     described by "autosign".  the colon separates the list from the signature.
  196.     If the colon is missing or if the list is null, the signature is used
  197.     and no checks are made against the recipient list.  Otherwise, each
  198.     address on the recipient list of outgoing mail must also exist in
  199.     the autosign2 list.  Otherwise, the signature in autosign is used.
  200.     If autosign is not set, the autosigning isn't done unless ~S is used.
  201.  
  202.     show_hdrs (String)
  203.     Set to a list (space and/or comma separated) of headers which are to
  204.     be the only headers displayed when viewing a message.  This disables
  205.     the headers supressed by the ignore command. Example:
  206.     set show_hdrs = "from date subject to cc"
  207.     will only display the headers,
  208.     From: Date: Subject: To: Cc:
  209.     in their entirety.
  210.  
  211.     mil_time -- if set, 24 hour military time format is used in message
  212.     dates or if the time is used in the prompt. Otherwise, 12-hour with
  213.     an added "am/pm" is displayed.
  214.  
  215.     The variable "no_expand" prevents expansion of mush addresses in
  216.     outgoing mail.  The To: line will read the same as it was typed --
  217.     this hides the complete list of addresses of everyone on the list.
  218.  
  219.     A new variable called "wrap" has been added.  When the last message is
  220.     deleted, the next "current" message is usually the next undeleted message.
  221.     If wrap is not set, then the curent message remains at the end of the
  222.     list of messages.  Similarly, if "next" ('n', CR) is specified, wrapping
  223.     to the beginning of the list only happens if the variable is set.
  224.  
  225.     The variable fixaddr has been removed and the variable auto_route has
  226.     been modified to route uucp mail thru the host of the author of the
  227.     message being replied to as well as removing redundant hostnames such as:
  228.     host1!host2!host1!user -> host1!user
  229.  
  230.     "cdpath" added.  This is like csh's but note you can't use ()'s to
  231.     set the path -- use quotes: (").  When the cd command is issued,
  232.     if there is no cdpath set, then the directory mentioned is cd'ed to.
  233.     If there is a cdpath and the pathname given is not a full pathname,
  234.     then each element in the cdpath is searched for the directory specified.
  235.     Recommend putting "." first in cdpath if one is used.
  236.  
  237.     "sendmail" -- if set, this program is used instead of the default Mail
  238.     Transfer Agent defined as MAIL_DELIVERY in config.h ... If used, the
  239.     default flags -i and -m are not passed along to the MTA, so any flags
  240.     which are necessary for the MTA should be included in the sendmail
  241.     variable's string value.
  242.  
  243.     pre_indent_str, post_indent_str (string)
  244.     These strings have the same properties as "hdr_format". The
  245.     pre_indent_str string will precede the body of text interpolated into
  246.     the message buffer and the post_indent_str will succeed the text. See
  247.     the man page for extensive details.
  248.  
  249.     in_reply_to (string)
  250.     set to a string interpreted the same as "hdr_format" -- when replying
  251.     to mail, an additionaly outgoing message header In-Reply-To: is added.
  252.     See man page for more extensive details.
  253.  
  254.     "ask" is a boolean which is for compatibility with ucb-Mail. If set,
  255.     you will be prompted for a subject.  otherwise, no subject prompting
  256.     is done.
  257.  
  258. Curses:
  259.     In curses mode, line-mode-escape commands which contain pipes,
  260.     :pick -s pattern | save folder
  261.     would segmentation fault on the command that follows such commands.
  262.     The next command to execute thinks that piping is on causing a segmentation
  263.     fault trying to reference the non-existent message list.  This was fixed by
  264.     resetting the DO_PIPE/IS_PIPE flags to off in the cmd_line() routine.
  265.     (misc.c, cmd_line())
  266.  
  267.     Quitting now goes to the bottom of the screen rather than moving
  268.     down one line [as well as other quit-related update bugs]
  269.     (curses.c, case C_QUIT:)
  270.  
  271.     Updating (^U) now redraws the screen right if you weren't on the
  272.     first "screenful" of messages. (curses.c, case C_UPDATE)
  273.  
  274.     's' (save) command wasn't saving to mbox on no input (CR).  It tried
  275.     to save to "" which maps to "." which is a directory.  (curses.c)
  276.  
  277.     The bug causing the GOTO command to inifinite loop if there were 0
  278.     or 1 messages in the folder if invoked by selecting a digit key has
  279.     been fixed.  The manual entry for how the goto command works has a
  280.     more detailed description and gives an example for effective usage.
  281.     Due to its versatility, there can be some screen updating problems
  282.     if the user specifies a message list which contains a command that
  283.     produces any "stdout" type output.  Normally, this shouldn't happen,
  284.     because most commands which are used to "search for messages" will
  285.     not output anything if they are being "piped".  If the user wishes
  286.     to specify a command that produces output (like echo) then the screen
  287.     will not be updated correctly (use ^L to redraw).  See the updated
  288.     man page entry for deatils on the above.
  289.  
  290.     The bind command doesn't require the use of \Cc to represent control
  291.     characters anymore.  The old interface is still supported -- in fact
  292.     control characters that are typed are converted to this ascii format
  293.     for purposes of displaying current bindings and to allow .mushrc files
  294.     to specify bindings in ascii format.  However, control characters may
  295.     be typed as is.  The spacebar may be bound to a command if it is given
  296.     in the .mushrc file or on a Mush command line.  See the manual.
  297.  
  298. Tool mode:
  299.     Trying to start tool in icon mode sometimes aborts with segementation
  300.     fault.  This is caused by the window size being 0 and the message
  301.     trying to be written to the empty window.  The routine which tries to
  302.     output each line of the message to the window is recursive. If the line
  303.     wraps because of the window's width being less than the length of the
  304.     line, Addstr() finds the position in the line which wraps and calls
  305.     itself recursively passing the remainder of the string.  The size of
  306.     0 means that Addstr is calling itself at the the beginning of the string
  307.     all the time.  The fix is in copy_msg where it checks to see if the
  308.     window is large enough to attempt printing the message (msgs.c, copy_msg())
  309.  
  310.     When changing folders, if there are no messages in the new folder,
  311.     the last read message was still displayed leaving the user somewhat
  312.     confused.  If there are no messages, the window is cleared. (folders.c)
  313.  
  314.     To be consistent with the other two interfaces, both delete and
  315.     backspace will backspace if in type-in mode. (rite.c)
  316.  
  317.     When returning from using the editor, the window displaying the letter
  318.     being composed would contain what the letter looked like before the editor
  319.     was invoked.  This has been fixed by printing out the last part of the
  320.     letter up to the size of the window available.
  321.