SYNOPSIS
party [ #channel ] [ option-list ]
DESCRIPTION
party lets you chat in real time with any other users who are currently
running party. There are several channels on which separate conversa-
tions can take place. When you run it, it puts you at first into
"read" mode. In this mode lines typed by other users are displayed as
they are entered, each with the speaker's login name as a prefix. Keep
in mind that a person does not see comments entered while he is typing
until he is done typing, so his message may be slightly out of date.
Whenever a person enters or leaves the program, a banner is printed.
Note that party keeps all messages in a file that is readable to any
user that can run party. It is therefore not a good place to hold pri-
vate conversations.
In read mode you can also enter any of several one-character commands
which temporarily stop the display of messages while you do something
else. party returns to "read" mode after any command (except, of
course, the quit command).
space Brings up a ">" prompt so you can type a message. Messages
should not be longer than about 250 characters, or they may
get clipped off. You can return to "read" mode without
entering a message by entering an EOF (control-D) at the ">"
prompt.
# Brings up the "#" prompt so you can enter a new channel name.
You normally start in the channel named "party." Some chan-
nels may be permitted to only certain groups of users. You
can return to "read" mode without changing channels by enter-
ing an EOF (control-D) at the "#" prompt. If no name is
entered, a list of channels is printed with your current
channel marked with an arrow. The ":join" command is equiva-
lent to this.
! Brings up the "!" prompt so you can enter a shell command to
be run. You can return to "read" mode without running a com-
mand by entering an EOF (control-D) at the ":" prompt. The
":!" and ":shell" commands are equivalent to this.
- Brings up the "-" prompt so you can type the number of old
message lines you would like to see redisplayed. The redis-
play can be interrupted to return you quickly to "read" mode,
unless you have an output filter defined, in which case
interrupting a tailback exits you from party.
: Brings up the ":" prompt so you can type in a special com-
mand. Special commands are listed below. You can return to
"read" mode without entering any command by entering an EOF
(control-D) at the ":" prompt.
goes away if you use the firstchar option.
The following special commands are supported at the colon prompt. All
commands can be abbreviated.
:join <channel>
This exits from the current channel and joins the named chan-
nel. The '#' command is a shorthand for this.
:who [-cnt]
This lists all users currently in party, together with the
time they entered and their current channel numbers. A flag
may be given to indicate whether to sort the names by channel
(-c, the default), by name (-n), or by start time (-t).
:list <channel>
This lists all current channels telling how many users are in
each. The channel you are in is marked with a carat.
:name <newname>
This changes your name in the current channel to the newname
specified. It only works in channels where the "rename"
option is enabled.
:read <filename>
This reads the lines of the named file into the party file.
The maximum number of lines that can be read into the file is
set by "readlim" option.
:save [-<count>] <filename>
This saves a copy of the log for the current party channel in
the named file. If a count is given, only the last <count>
lines of the log file are saved.
:set <option-list>
This sets the options listed.
:print <option-list>
This displays the current values of the options listed. If
no options are given, a selection of the more interesting
options are displayed (this is equivalent to the "=" com-
mand). If the argument "all" is given, then all options,
including system options are displayed.
:shell <command>
This executes the a shell escape. You can also just use the
"!" command or the ":!" command. The shell used to execute
the command is determined by the "shell" and "fastshell"
options described below.
:close Closes the current channel. This means not permitting any
users not already in the channel to join, and depermitting
Add the given login id to the list of users who may join the
current channel, if it is closed. This does not send any
kind of message to that user.
:ignore <user>...
The named users will be added to the list of ignored users.
No messages from ignored users will be displayed. If no user
names are given on the command line, the names of all cur-
rently ignored users will be listed. Note that if you are in
a channel where name changing is allowed and uniquename is
set, then if a person you are ignoring changes his name, your
ignore list will automatically be updated to the new name.
:notice <user>...
The named users will be deleted from the list of ignored
users, so that their messages will once again be displayed.
If no user names are given on the command line, all currently
ignored users will be removed from the list.
:back <count>
Backs up in the file by the given number of lines. The '-'
command character is a shorthand for this.
:version Prints the current party version number.
:quit Yet another way to exit party.
The behavior of party can be altered with a number of options. There
are six ways to set party options. Options in option lists are always
separated by spaces.
1) Compiled in defaults. These should be set to sane values by who-
ever installed party on your system.
2) Partytab file. The file /usr/bbs/party/partytab contains several
lines of the form:
<program-name> <option-list>
When invoked, party searches the partytab file for a line with the
program-name that it was invoked under. (For example, if there
was a link to the party program named cb and you ran the cb pro-
gram, it would look for a line starting with cb in the partytab).
It then applies the option settings listed after that program-
name. This is an easy way to change the default options without
recompiling, and allows several "different" versions of the party
program to be supported on the system without having to make sepa-
rate physical copies.
3) PARTYOPTS environment variable. This may be set to a list of
options which will always be set when you enter any party program.
ent channels to have different rules. Normally only system
options should be set in the chantab. Most of these are automati-
cally reset to the state they were in after reading the partytab
every time you can change channels. Channel names that don't
match any pattern in the chantab file may not be used.
6) The ":set" command. Options may be reset while the program is
running by using the "set" special command at the colon prompt.
The options are read in the order listed above, so options set from the
last places listed override ones set from the earlier places.
There are four types of values an option named <option> can take.
Boolean values are set with "<option>" and reset with "no<option>" A
few options can also take take prefixes other than "no". Numeric
options are set with "<option>=<value>". String options are set with
"<option>=<string>". If the string includes spaces or tabs, it must be
quoted with either single or double quotes.
Most options are user-settable, but others are reserved for the admin-
istrator to use in configuring the party program and individual chan-
nels. Those can be set only in the partytab or chantab files. The
user-settable options are:
alias=<name>
This is the default name to use when joining a channel where the
rename option is enabled. It defaults to the user's real login
name.
[no]arg If noarg is set, party does not read options from the command
argument list. Obviously this is only meaningful in the par-
tytab or in PARTYOPTS, since otherwise they has already been
read. The default is arg.
back=<count>
This defines the number of old lines to display when you
enter party or change channels. The default is back=10.
[no][see]bs
This determines how to handle backspaces in messages. The
default, bs, is just to print them. This allows tricky users
to "cursor-dance", possibly backing over their names and
changing them. Setting nobs causes all backspace characters
to be stripped out. Setting seebs causes backspace charac-
ters to be displayed as "^H". noseebs is the same as bs.
[no]colon If nocolon is set, party does not recognize the ":" command
to set options. This may be used, together with noenv and
noarg, to create a party program that cannot be customized by
the user. The default is colon.
[no][see]control
user can always interrupt the wait if he gets impatient.
[no]fastshell
If fastshell is set, party will execute most shell escape
commands directly instead of starting a shell to execute
them. It will start a shell for commands that look like they
contain wildcards, IO-redirection, or other things that nor-
mally require a shell to execute. This will generally speed
up the execution of shell escapes. If nofastshell is set,
all commands will actually be processed by the shell in the
shell variable. Mainly nofastshell is useful if you have
weird shells or if you have shell=/bin/csh and want aliases
defined in your .cshrc file to work. The default is fast-
shell.
filter=<cmd>
This starts the named command as an output filter. Only mes-
sages and entry/exit banners are printed through the filter.
Prompts, help messages, and shell escape output are not.
Output filters can be used in many clever ways. For example,
to stop displaying messages from the user 'janc', you could
set filter="grep -v '^janc:'". filter commands are processed
by the shell specified by the shell option, so pipes and
aliases and such like can be used. If there is already a
filter defined, setting a new one will turn off the old one.
The default filter is filter="" (ie, there is no default).
[no]filter
If you have a filter defined, this turns it on and off. Note
that setting a new filter automatically turns it on.
[no]firstchar
If firstchar is enabled, then whatever key you hit to bring
up the ">" input prompt, will also become the first character
of your input text. This is mainly meant to be less confus-
ing for regular IRC users. In this mode, party does all the
input processing instead of letting the Unix tty driver do
it. This means there are some inevitable differences in the
way input is processed, but most are minor. As a side
effect, the "q" command to quit and the "h" command to get
help go away, since otherwise you wouldn't easily be able to
enter lines starting with these letters. You can still quit
with and EOF character or a ":q" command. You can still get
help with w "?" character. The default is nofirstchar.
fullmesg=<string>
This is a text string to be printed out when a user attempts
to join party when the capacity option is set and party is
full. If the string starts with a '!', the rest of the
string is taken as a command to execute instead. If the
string starts with a '/', it is assumed to be the full path
of a file name to print.
been printed. If the first character of the text is a excla-
mation point ('!'), then the rest of the string is taken as a
command to run instead. If the string starts with a '/', it
is assumed to be the full path of a file name to print. The
default is intro="Welcome to PARTY! Type '?' for help:".
maildir=<dirname>
This sets the name of the directory where mail files are
kept. The default is maildir=/usr/mail. If it is set to
something where there is no readable mailfile for the user,
you will not get "you have mail" messages. If you have a
"MAIL" environment variable set, the maildir variable will be
ignored and your "MAIL" variable will be used instead.
prompt=<text>
This sets the prompt to be printed when you enter input mode.
The default is prompt=">".
[no]raw This turns off or on the raw mode flag. Raw mode displays
certain parts of the party log file that are meant more for
system use than for user use. Right now it doesn't make much
difference, except that there are name tags in the front of
noises. The default is noraw.
[no]repeat
This turns off or on the display of any line that is identi-
cal to the previous line in the party log. It intended as a
countermeasure against the less imaginative pests of the
world. The default is repeat.
[no]shell If noshell is defined, shell escapes from party are not
allowed. This may be useful to make a secure party that does
not allow further access to Unix, if it is combined with
nocolon, and possibly noenv and noarg. The default is shell.
shell=<file>
This defines the shell to be used in shell escapes. The full
path name should be given. The default is shell=/bin/sh.
[no]showevent
This turns off or on the display of all events, such as peo-
ple entering or leaving, people changing their names, or peo-
ple knocking at closed channels. It effects only what you
see. The default is showevent.
[no]shownoise
This turns off or on the display of all noises. It effects
only what you see. The default is shownoise.
[no]showread
This turns off or on the display of files read into the party
log with the ":read" command. It effects only what you see,
spaceonly="Type '?' for help.".
start=<channel>
This tells which channel to start in when you enter the party
program. The default is start=party, which causes people to
start in a channel named 'party'. On the command line, it is
possible simply to write #<channel> instead.
tpmorp=<text>
This sets a message to be printed when exiting input mode.
It is meant for tricks like highlighting your input text by
putting the control code to start highlighting in the prompt
string and resetting it in the tpmorp string. The default is
tpmorp="".
[no]wrap This turns on and off word wrapping for party output. The
default is "nowrap".
cols=<number>
This sets the number of columns to be used for word wrapping.
The default is set from the user's stty modes or termcap if
possible. If not, it defaults to 80 columns.
wrap=<number>
This sets the number of columns to indent any lines after the
first when line wrapping. The default is 10 columns.
Other options are intended to be used to configure individual channels.
They may not be set by users, but only in the chantab or the partytab.
They are always automatically reset to their default values whenever
you change from one channel to another (though, of course, those
defaults my be overridden by the chantab entry of the new channel).
The chantab options are:
[no]askname
If askname is set, the user is prompted for the name to be
used on a prefix on his messages in party. If he gives no
name, the algorithm defined by the other naming options is
used. This is often used along with the rename option.
Askname originated to support M-Net Halloween parties. The
default is noaskname.
[no]chanintro=<string>
This is the string to print when you join a channel. If
nochanintro is set, it just prints the name of the channel.
Otherwise it prints the given string. If the string starts
with a !, the rest of the string is a unix command to run
instead. If the string starts with a /, the string is the
full path name of a file to print.
[no]keeplog
Normally channel log files are automatically deleted when the
idleout=<minutes>
This sets the number of minutes for which a user can sit
there, sending no messages, making no noises, issuing no com-
mands, before he gets booted out of the program. It may
sometimes take a couple minutes longer before he is booted
out. The default is 10 minutes.
[no]makenoise=<file>
This option determines if noises are allowed and define which
file containing the list of legal noises. Each noise is
defined by one line in the file, which contains three fields.
The first field is the command name, the second is the mini-
mum number of arguments, and the third is the noise text.
The text must be enclosed in angle brackets and may contain
$0 to indicate the place where the user's name is to be sub-
stituted and $1, $2, etc to indicate places where the argu-
ments are substituted. If there are multiple lines for the
same command with different argument counts, the largest must
be first.
[no]mapname=<file>
If mapname is set and a file is defined, then party will pick
read through the file looking for a line on which the the
first word matches the user's real login name. If found, it
will change his name to second word on that line. If both
mapname and randname are set, then users whose names don't
appear in the mapname file will be assigned a random name out
of the randname file.
[no]mayclose
If mayclose is set, the "close" command is enabled for the
channel. Normally this makes most sense when used with
nokeeplog, though it works with permanent channels too. The
default is "nomayclose". In some installations, this option
may not be compiled in.
[no]randname=<file>
If randname is set and a file is defined, then party will
pick an alias for the user at random from the file. The file
should contain one name per line. The name my be terminated
by a newline or by a colon (this allows the password file to
be used).
readlim=<number>
This sets the maximum number of lines that can be read into a
a party channel with the "read" comand. It should always
have some reasonable finite limit, to prevent users from, for
example, reading the party log file into the party log file.
[no]rename
If rename is set, the user may use the ":name" command to
change his name while he is in the channel. The default is
already being used by another person in the channel. This is
relevant only in channels where rename or askname are set.
You may always set your alias to your real login name, even
if someone else is using it too. If nouniquename is set,
then users may duplicate names all they like. The default is
uniquename.
The remaining options are meant to be set in the partytab file. They
may not be reset by users. The partytab options are:
chantab=<filename>
This identifies the channel table. The default is
chantab=/usr/local/party/chantab.
[no]capacity
If enabled, this turns on the enforcement of capacity limits.
This sets an upperbound on the number of users who may be
running party at the same time. If nocapacity is set, then
there is no limit to the number of users who may be in party.
capacity=<number>
This is the maximum number of users that may be in party at a
time if capacity checking is enabled. If a user tries to
join party when it is full, extry will be refused and the
text specified by the fullmesg option will be printed.
dir=<dirname>
This option defines the pathname of the directory in which
the transcript files for the channels are kept. The default
is dir=/usr/local/party/log unless something else has been
compiled in. This option cannot be reset by the user. The
installer must create the party log directory. It should be
readable and writable to the party program.
[no]userlist
This is a strange option. If it is set, running party will
not get you into party. Instead it will just print a list of
who is in party. This is normally set in the partytab on a
link to party called pwho thus creating a unix command that
lets you list who is in party.
whofile=<filename>
This identifies the file used to keep track of what users are
in which channels. The :who command reports the contents of
this file.
HISTORY
The original version of this program was written by Marcus Watts some-
time around 1983 or 1984 for use on M-Net, a public unix-based confer-
encing system. It used two synchronized processes, one writing to the
file, and the other reading from the file. Jan Wolter started modify-
ing that version around 1985, mostly changing look-and-feel to meet Meg
FILES
/usr/bbs/party/partytab
SEE ALSO
write(1)
6 March 1988 PARTY(1)
Man(1) output converted with
man2html