[comp.sources.unix] v15i085: Mush

rsalz@uunet.uu.net (Rich Salz) (07/07/88)

Submitted-by: dheller@cory.Berkeley.EDU (Dan Heller)
Posting-number: Volume 15, Issue 85
Archive-name: mush6.3kit/part01

This is the upgrade kit for Mush, bringing it to release 6.3.  There is
a README, then three files that comprise one set of diffs.

#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of shell archive."
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'README-6.3' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'README-6.3'\"
else
echo shar: Extracting \"'README-6.3'\" \(9663 characters\)
sed "s/^X//" >'README-6.3' <<'END_OF_FILE'
X
XThe file, "README" is always being updated for brand new users on how
Xto install mush for the first time.  It can be referenced for earlier
Xinfo as well as previous README's.  A new README-<versionID> file (like
Xthis one) will accompany each new upgrade.
X
XFor those who wish to be on the mush-users mailing list, please
Xsend requests to:
X    mush-users-request@garp.mit.edu
XI do not maintain this list, so don't mail me.
XThis mailing list discusses mush usage, internals, portability to new
Xhardware or non-standard unix systems, future updates/enhancments,
Xand exchange of general info.  Since mush works on all flavors of
Xunix from bsd to sys-v and has three different user interfaces, the
Xgroup of subscribers is quite diverse.  For those who are very
Xinterested in influencing the X interface, now is the time to get
Xyour opinions in for disucussion before it's too late.
X
XNew compiler defines:
X    DOT_LOCK
X    Define this if you want mush to use .lock to lock your mbox for
X    updates.  See very last section of this file for detailed info.
X
X    UUCP
X    This should be defined if your MTA does not automatically create a
X    From: header *and* your machine talks to other computers via uucp
X    (probably true for default xenix/sys-v systems).
X
X    NO_COMMAS
X    This should be defined if your mailer does *NOT* like commas
X    between addresses on its command line.  Last I heard, smail is
X    like this as well as default xenix/sys-v mail transport agents.
X    (This used to be defined by OLD_MAILER.)
X
X    Note: if your MTA is "smail", OLD_MAILER should _not_ be set, but
X    NO_COMMAS should be set.  That is as of this release date.
X
X    SIGRET
X    This is defined to be "int" by default.  If your signal() returns
X    void, SIGRET should be defined to be "void".  This mostly applies
X    to SVR3.
X
X    For any of these defines, you do one of two things:
X    (UUCP used as example)
X	1) add -DUUCP in your makefile
X	2) In config.h, add a line which reads:
X	   #define UUCP
X
X    For SIGRET, use either "-DSIGRET=void" or "#define SIGRET void"
X
XNew variables:
X    realname (string)
X    Set to the user's real name by:
X    1) The user's real name is gotten from the environment variable NAME.
X    2) The gecos field in the password file
X    Once mush has been started, this name can only be reset by changing
X    the value of realname -- not by changing 1 or 2 above.
X
X    hostname (string)
X    The hostname is automatically set by the system, but if circumstances
X    make this impossible or the hostname is wrong, the user can reset this.
X    See the manual under the VARIABLES section for more info.
X    Important Note to sys-v'ers who can't get their hostname from utsname(2)
X    (xenix, more?), the hostname should probably be set in the default Mailrc
X    defined in config.h.   "set hostname=whatever"
X
X    save_empty (boolean)
X    If set, folders which have all messages deleted are not removed on
X    updates or change folder commands.  The folder is left at zero length.
X    Note, this does not affect the spool mailbox; it is never removed on
X    updates.
X
X    date_received (boolean)
X    If set, message headers are printed with the date received rather than
X    the date sent.  This affects the sorting command; when sorting by date,
X    this variable is checked.
X
XMisc:
X    Addresses that have long uucp paths from the sender would be so long
X    that the "important" part of the path --which includes the sender's
X    login and machine name, found at the tail end of the address, would
X    be cut off.  Such addresses are now shifted to the right if the whole
X    address cannot fit in the specified padding requested by the user.
X    This affects the hdr_format modifiers %a and %f.  If the addresses
X    are shorter than the speicified width, there is no change:
X	set hdr_format = "%11a"  # show no more than 11 chars of address
X    If the address is:
X	sun!island!argv
X    then the result will be:
X	island!argv
X    (previously, you'd get "sun!island!" losing the "argv" at the end.)
X
X    Initialization file now udnerstands:
X	if -e filename
X    and
X	if -z filename
X    to test to see if a filename (folder) exists (-e) or zero-length (-z).
X
X    Added SAVED flag to message status.  If a message is saved,
X    this flag is set rather than the DELETE flag.  Messages which
X    have been saved are marked with an 'S' in the status field.
X    All commands which deal with message status have been modified
X    to support this new flag (sort, headers (-H:s), etc...)
X
X    $cdpath can now be read from the environment.  that is, it understands
X    the ':' as a path separator now.
X
X    ":p" can be used to select "preserved" messages.  This adds to the
X    list of :c commands which select messages of status "c". headers -?
X    for more info.
X
Xmain.c --
X    fixed up helpfile assignments for toolmode and removed useless
X    warning messages.
X
X    ignore sigpipe in main() instead of in do_loop().  This fixes the
X    bug where you mail someone without entering the shell and ~p to
X    page your message.
X
Xmail.c --
X    Some mailers don't add the From: header.  Previous versions of
X    mush would add for these machines:
X	From: login
X    Now, the user's real name is added in parens.  Also, if UUCP is
X    defined, the From: line will look like:
X	From: host!user (Real Name)
X    If uucp is not defined:
X	From: user@host (Real Name)
X    This is mostly for uucp systems, so when the user mails to remote
X    sites, the From: line should be correct for accurate replies.
X
X    If fork() failed in toolmode, the error message is no longer
X    overwritten before the user knew the mail couldn't not be sent.
X
X    ~? now uses the internal pager so the help doesn't scroll off the screen.
X
X    The command: "r addr" to reply to a message and add a new address
X    at the same time no longer removes the last character in the first address
X    before adding the new address.
X
X    If autosign has \n's or \t's embedded in the string, they are now
X    expanded to newlines and tabs respectively.  This is also true for
X    using ~$variable to print a variable's value into a letter buffer.
X    For example, the command:
X	set autosign = "\Dan Heller\nisland!argv@sun.com"
X    will cause all outgoing letters to be signed with:
X
X    -- 
X    Dan Heller
X    island!argv@sun.com
X
Xcurses.c --
X    fixed scrn_line() (screen-line: get a line from the screen) so
X    that the following expression is evaluated correctly:
X	changed:
X	    if ((buf = mvinch(line, n) & A_CHARTEXT) == '\0')
X	to:
X	    if ((buf[n] = (mvinch(line, n) & A_CHARTEXT)) == '\0')
X
Xloop.c --
X    disp_hist() (display history) no longer core dumps if the history
X    command was given from the curses mode using ':' and there was no
X    history created yet.
X
Xdoproc.c (suntools only) --
X    The save menu item would prompt to save in ~/mbox for both the
X    first and second menu items rather than just the first menu item.
X    The result was that you couldn't save to the file described by
X    the second menu item.
X
Xcommands.c --
X    save_msg() modified to support SAVED flag.  Messages are not
X    deleted, but marked saved.  When updating folder, keep_save is
X    checked, and if not set, saved messages are deleted.
X
Xmsgs.c --
X    changed lockf()'s last argument from 0 to 0L.
X
Xmisc.c --
X    Sprintf() (for SYSV) has been modified to correctly deal with
X    varargs.  Sorry, the stuff in print.c still isn't, but someday...
X    Nevertheless, there are currently no bugs known or reported that
X    concern anything in print.c
X
X    The internal pager now works with the -e flag (happy _now_ dave?)
X
Xpick.c --
X    picking patterns no longer requires the pattern to be in quotes
X    if it contains spaces.  You may now specify:
X	pick -f -i dan heller
X    This example will find messages from "Dan Heller" (-i ignores case).
X
XWhat "dot-lock" is and why you may need it...
X
X    When mush updates your mailbox, it needs to lock it so that if new
X    mail is being delivered at the same time, it will wait till mush
X    is done.  Or, if the mail is there first, mush should wait before
X    attempting to lock the file.  This should theoretically prevent new
X    mail from getting lost.  But...
X      Different systems use different locking mechanisms.  By default,
X    mush uses one of flock(), locking(), or lockf() (depending on your
X    system).  Some  systems use a file called the same name as the file
X    you're locking with an appended ".lock" at the end (some Xenix's use
X    /tmp/$USER.mlk).
X      If you define DOT_LOCK, mush will try to lock the mailbox using
X    first check for the .lock file.  If it exists, it loops until it
X    goes away and then it creates it mode 600.  Regardless of whether you
X    use dot-locking, mush will continue to try to use flock(), or whatever.
X      dot-locking requires mush to have write access to the directory where
X    your mailbox exists.  Normally, this directory isn't writeable by the
X    average user, so you may have to sgid mush to do this to the group id
X    of the owner of that directory. Mush will get the effective gid at the
X    beginning of the program and immediately reset it to your real gid until
X    the time it needs to lock the file occurs.  It changes back to the sgid,
X    locks, then returns to normal.  There shouldn't be a security problem.
X      If you don't know what I'm talking about here, ignore DOT_LOCK
X    as this is the first attempt at such locking methods and is likely
X    to change.
X      Another warning is that some MTA's don't even follow their own protcol.
X    System V, it has been reported, creates the .lock file without checking
X    to see if it exists (therefore ruining someone else's lock).
X
END_OF_FILE
if test 9663 -ne `wc -c <'README-6.3'`; then
    echo shar: \"'README-6.3'\" unpacked with wrong size!
fi
# end of 'README-6.3'
fi
echo shar: End of shell archive.
exit 0
-- 
Please send comp.sources.unix-related mail to rsalz@uunet.uu.net.