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