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