v16i005: Multi-user conference system, Part05/05

Rich Salz rsalz at uunet.uu.net
Tue Sep 13 06:09:37 AEST 1988


Submitted-by: Keith Gabryelski <ucsd!elgar!ag>
Posting-number: Volume 16, Issue 5
Archive-name: conf2/part05

#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
#	doc
export PATH; PATH=/bin:$PATH
if test ! -d 'doc'
then
	mkdir 'doc'
fi
cd 'doc'
if test -f 'confhelp'
then
	echo shar: will not over-write existing file "'confhelp'"
else
cat << \SHAR_EOF > 'confhelp'
		Help File for conf. (/usr/lib/conf/confhelp)

Conf is a line oriented multi-user chat program designed to work on any
SysV, BSD, or Xenix system.

Conf has several advantages over the standard write program supplied
with most Unix and Xenix operating systems.

	o    Unlimited users conferencing at once.

	o    100 separate discussion lines.

	o    Public and private messages in addition to password
	     encrypted messages.

	o    Quick and efficient user interaction.

	o    User definable formats for messages.

	o    Intelligent message display algorithm.

A brief description of COLON commands is given below.  To learn more about
conf, type "man conf" at your shell prompt or ":!man conf" from within conf.

:cls {no options}
    Clear the screen.

:exit or :quit {comments}
    Leave conference.

:from FILENAME
    Take message from file.

:help [COMMAND]
    Print lots of help about a given command.  Default prints entire help
    file.

:record [FILENAME]
    Start recording conference messages to the file specified.  If no file
    is specified and you are not current recording, the default file will be
    used otherwise the currently record file will be closed and you will
    stop recording.

:reply MESSAGE
    Reply to last message sent privately.  With no args, reply will print
    the user and tty to send to.

:ring USER1 [, USER2, ...]
	Invite specified users to join you on conf.

:send {[USER][, /LINENUMBER][, :TTYNAME][, ...]} MESSAGE
    Send a private message to a	username, ttyname, or line number.
    When listing a linenumber, the number must	be proceeded by	a
    slash '/'.  When listing a ttyname, the ttyname must be procceded
    by a colon ':'.

:set {[(no)OPTION][, OPTION=VALUE | OPTION="STRING VALUES"
    Set a flag or option.  If no argument if given to a numeric or
    string option, the current value will be displayed.

:shell {no options}
    Invoke preferred shell.

:shout MESSAGE
    Send a message to all terminals logged in to conf.  Don't use this
    command thoughtlessly.

:to LINENUMBER
    Switch to a new conference line (1 - 100).  If no argument is given,
    your current conference line will be displayed.

:who LINENUMBER
    List users on conference.  With no args, all conference lines are
    displayed.  Who will list users names, ttys, and what lines they
    are on.  If a users name is proceeded by an asterisk '*', that
    user is currently recording.

:version {no options}
    Print the current version of conf and some credits.

:? [COMMAND]
    Little help.  Just print the usage line for	a given colon command.
    If no argument is given conf will displays the names of all commands
    available to the user.
SHAR_EOF
fi # end of overwriting check
if test -f 'READ_ME'
then
	echo shar: will not over-write existing file "'READ_ME'"
else
cat << \SHAR_EOF > 'READ_ME'
	    CONF - READ_ME

    1   Create a uid and gid for conf.  Conf will run setuid as that
	user/group.  (this could be 'bin' or 'conf')

    2	Edit config.h and modify anything that needs it.
	System type, and default options are specified this file.

    3	Edit Makefile and modify anything that looks likes it needs it.
	Pay particular attention to CONFLIB, BINDIR, OWNER, and GROUP.

    4	make

    5	su
	(sorry, but to setuid this pup, you must be root)

    6	make install

    7	rehash [if need be]

    8	conf

Conf should be running.

SHAR_EOF
fi # end of overwriting check
if test -f 'conf.1'
then
	echo shar: will not over-write existing file "'conf.1'"
else
cat << \SHAR_EOF > 'conf.1'
.TH CONF 1
.SH NAME
conf \- conference with other users.
.SH SYNOPSIS
.B conf
[-w][-l linenumber][-s switch] username1 username2 ...
.SH DESCRIPTION
Conf is a line oriented multi-user chat program designed to work on any
SysV, BSD, or Xenix system.
.PP
Conf has several advantages over the standard write program supplied with
most Unix and Xenix operating systems.
.RS
.TP
o
You are not limited to the number of users that may be on one
conference line.
.TP
o
Some users of conf may switch a separate line to avoid
confusion with other discussions.  There are 100 separate lines called
"conference lines".
.TP
o
Messages that conf users may send may be specific to a line,
a user, a tty, or to all users currently on conf (see COLON COMMANDS; reply,
send, and shout).
.TP
o
Conf keeps track of who is on conf, what line they are on,
and if they are recording messages.  This allows users to quickly find
out who is using conf and how to send a message to them (see
COLON COMMANDS; who).
.TP
o
Conf allows its users to distinguish between, user messages (known as "Normal
Messages"), private messages (known as "Send Messages"), system messages
(known as "Information Messages"), messages to a line that the sending users
is not on (known as "Line Messages"), and messages to all users (known as
"Shout Messages").  Conf allows its users to set the type-out mode of any
of the message types to a user pleasant format that may or may not
include the from-user's name, tty, message, or the to-user's name or
tty (see MESSAGES TYPES and MESSAGES FORMATS).
.TP
o
Conf will not print an incoming message until the user has finished
typing.  Incoming messages will be "held" until the users has sent
a message (or otherwise cleared the input buffer).  If the user is
using the Gnumacs interface, the screen will be updated without
imparing the message the user is currently typing.
.SH SWITCHES
.TP
.BI \-l " line number"
Set the startup line.  The default is 1.
.TP
.BI \-s " switch"
Set option [switch] to the given value.  (see OPTIONS)
.TP
.BI \-w " line number"
Display who is using conf on the specified line.  If no line number is
given, conf with display all users that are currently on conf.
.TP
.I username
Ring
.I "username"
to join conf.
.SH OPTIONS
There are three types of options,
.I "boolean, numeric,"
and
.I string.
Options may be specified in a "rc file" called .confrc in the users home
directory, the environment variable CONFOPTS, as parameters to conf
using the -s switch, and while running conf with the colon
command "set".  In any case, options are separated by commas, and
may be shortened to the least ambiguous string.
.TP
.BI "Boolean Options:"
Boolean options are set by putting their names the appropriate list.
Boolean options may be reset by proceeding their name with a '!' or
the word "no".  (i.e. "foo" sets the boolean option "foo", "!foo" or
"nofoo" would negate (reset) the option "foo")
.RS
.PP
.B banner
.RS
If set, conf will display its version number and credits when the user
logs in.
.RE
.PP
.B beep
.RS
If set, conf will beep (send a ctrl-G) when a message is displayed on
your terminal.
.RE
.PP
.B expandctrl
.RS
If set, conf will expand control characters to a user
visible string (e.g. ctrl-X would be printed as ^X).  If this option is
negated, all control characters will be passed to the user without
modification.
.RE
.PP
.B expand8bit
.RS
If set, conf will expand any character with bit 7 set
to a user visible string (e.g. Meta-X would be printed as ~X).
.RE
.PP
.B seeme
.RS
If set, the conf will display any "Normal Message" typed by you.  If
this option is negated, conf will not display "Normal Messages"
by you.  (see MESSAGE TYPES).
.RE
.PP
.B seemyinform
.RS
If set, conf will display "Information Messages" by you.  If this option
is negated, conf will ignore "Information Messages" by you.
(see MESSAGE TYPES).
.RE
.PP
Sample: banner,nobeep,noseeme
.PP
Will set
.B banner
, but will reset
.B "beep, and seeme."
.RE
.PP
.B "Numeric Options:"
Numeric options have the form option=number.
.RS
.PP
.B line
.RS
Conference line number to use.
.RE
.PP
Sample: line=2
.PP
Will set
.B "line = 2"
.RE
.PP
.B "String Options:"
String options take the form option=string or option="space filled string".
.RS
.PP
.B cls
.RS
Clear screen string.
.RE
.PP
.B name
.RS
Your conference name.
.RE
.PP
.B inform-format
.RS
Display format for information messages.  (see MESSAGE FORMATS)
.RE
.PP
.B normal-format
.RS
Display format for normal messages.  (see MESSAGE FORMATS)
.RE
.PP
.B send-format
.RS
Display format for private sends.  (see MESSAGE FORMATS)
.RE
.PP
.B shout-format
.RS
Display format for display shouts.  (see MESSAGE FORMATS)
.RE
.PP
.B line-format
.RS
Display format for display line sends.  (see MESSAGE FORMATS)
.RE
.PP
.B recfile
.RS
The default record file.  This is usually "conf.rec".
.RE
.PP
Sample: name=Aggy,recfile="record.conf"
.PP
Will set
.B "name to ``Aggy'' and recfile to ``record.conf''"
.RE
.SH RC FILE
This file contains lists of options and their values or colon commands to
execute before logging into conf.  Blank lines as well as lines beginning
with a '#' or ';' are ignored.
.PP
Colon commands that require the user to be logged in to execute are invalid
in the .confrc file.  (e.g., :send, :shout, and :record).
.PP
A typical RC file might look like this:
.PP
.nf
#
# This file is .confrc which you can find in my home directory.
#

:cls
name = "Ag"
pager = "/usr/local/bin/less"
shell = "/bin/tcsh"
banner

# End of Confrc file.

.fi
.SH ENVIRONMENT VARIABLE
Conf recognizes several shell variables for defining preferences.
.PP
.RS
.B CONFOPTS
.RS
This environment variable holds a list of options and their values.  A
typical environment variable might look like this:
.PP
CONFOPTS=banner,name="Ag"
.RE
.PP
.B SHELL
.RS
Your preferred shell.  (e.g. SHELL=/bin/sh)
.RE
.PP
.B "PG"
or
.B "PAGER"
.RS
Your preferred pager.  (e.g. PG=/usr/local/bin/less)
.RE
.PP
.B TERM
.RS
Your terminal's name.  (e.g. TERM=tvi950)
.RE
.RE
.RE
.SH MESSAGE TYPES
There are several types of messages you can receiving while using conf.
.PP
.B "Normal Messages:"
are messages that get sent to all users on your current line number.
You can send a
.B "normal messages"
by typing a line and pressing return while inside conf.  Users
may filter Normal Messages from themselves by resetting the
.B seeme
variable.
.PP
.B "Information Messages:"
are system messages about a certain user.  Login, Logouts, and line
switching are all forms of
.B "Information Messages."
Information messages are automaticly sent to all users that are affected
by a certain users actions.  Users may filter Information Messages by
themselves by resetting the
.b seemyinform
variable.
.PP
.BI "Send Messages:"
are messages sent to a specific user, tty, or line number.  They are sent
by using the colon command "send" (see COLON COMMANDS)
.SH MESSAGE FORMAT
You may personalize the way conf prints different messages by
modifying the appropriate format string.  A format string consists of
a null terminated string will text and meta characters.  Conf interprets
meta characters as follows.
.RS
.TP
.B %N
Your conference name.
.TP
.B %n
Name of user sending message.
.TP
.B %m
Message users sent.
.TP
.B %T
Your tty.
.TP
.B %t
Tty of user that sent message.
.TP
.B %%
The character '%'
.RE
.PP
If you wanted normal messages to print only the messages itself you
would :set normal-format ="%m^J".  If you wanted sends to be display with
only the username of the person sending the messages and the messages itself,
you would :set send-format ="%n - %m".
.SH COLON COMMANDS
Any line whose first character is a colon (':') and whose second character
*is not* a colon will be interpreted as a "Colon command".  A list of colon
commands follows.
.RS
.PP
.B ":cls"
.RS
.PP
Clear the screen.
.RE
.PP
.B ":exit"
or
.B ":quit"
.RS
.PP
Leave conference.
.RE
.PP
.BI ":from" " filename"
.RS
.PP
Take message from file.
.RE
.PP
.BI ":help" " command"
.RS
.PP
Print lots of help about a given command.  Default prints entire help file.
.RE
.PP
.BI ":record" " filename"
.RS
.PP
Start recording conference messages to the file specified.  If no file is
specified and you are not current recording, the default file will be
used otherwise the currently record file will be closed and you will stop
recording.
.RE
.PP
.BI ":reply" " message"
.RS
.PP
Reply to last message sent privately.  With no args, reply will print the
user and tty to send to.
.RE
.PP
.BI ":ring" " user1, user2, ..."
.RS
.PP
Invite specified users to join you on conf.
.RE
.PP
.BI ":send" " user, /linenumber, :ttyname,...  message" 
.RS
.PP
Send a private message to a username, ttyname, or line number.   When listing
a linenumber, the number must be proceeded by a slash '/'.  When listing a
ttyname, the ttyname must be procceded by a colon ':'.
.RE
.PP
.BI ":set" " [no]option, option=value"
.RS
.PP
Set a flag or option.  If no argument if given to a numeric or string
option, the current value will be displayed.
.RE
.PP
.B ":shell"
.RS
.PP
Invoke preferred shell.
.RE
.PP
.BI ":shout" " message"
.RS
.PP
Send a message to all terminals logged in to conf.  Don't use this
command thoughtlessly.  A frequent use on our system is ":shout Everyone
off of conf, I'm installing a version without bugs!".  :-)
.RE
.PP
.BI ":to" " line number"
.RS
.PP
Switch to a new conference line (1 - 100).  If no argument is given,
your current conference line will be displayed.
.RE
.PP
.BI ":who" " line number"
.RS
.PP
List users on conference.  With no args, all conference lines are displayed.
Who will list users names, ttys, and what lines they are on.  If a users
name is proceeded by an asterisk '*', that user is currently recording.
.RE
.PP
.B ":version"
.RS
.PP
Print the current version of conf and some credits.
.RE
.PP
.BI ":?" " command"
.RS
.PP
Little help.  Just print the usage line for a given colon command.  If no
argument is given conf will displays the names of all commands available to
the user.
.RE
.RE
.SH LINE EDITING
Conf supports limited line editing features.  While you are typing a line,
the following "control" characters will be interpreted as line editing
characters:
.PP
(A character proceeded by a caret '^' symbolize control characters.  You
must hold down the "Control key" and press the given letter to get these
characters)
.RS
.TP
.B "^C"
Abort this line.
.TP
.B "^D"
If this is the first character on the line, conf will log you out.
.TP
.B "^H, DEL"
Delete the last character typed.
.TP
.B "^J, ^M"
End of line.  Conf will its voodoo on this line.
.TP
.B "^L"
Clear screen and display current line.
.TP
.B "^Q, ^S"
X-ON , X-OFF is you have them set.
.TP
.B "^R"
CRLF and reprint line.
.TP
.B "^W"
Delete last word.
.TP
.B "^Z"
Stop process (if supported on your system).
.RE
.SH ELEPHANT TALK
There is a jargon that goes along with online tty communication.  The
list that follows will give you an idea of how to interpret local
jargoneese.  (Stolen, without permission from MIT's OZ:<COMMON>:JARGON.TXT)
.RS
.TP
.B "Ack!"
Term of disgust (from Bill the Cat's, "Ackphtft!")
.TP
.B BCNU
Be seeing you.
.TP
.B BTW
By the way...
.TP
.B "Bye?"
Are you ready to logout?  (This is the standard way to end a conference;
the other users type BYE to confirm, or else continue the conversation.)
.TP
.B CUL
See you later.  Variation: "CULater"
.TP
.B "Foo?"
A greeting, also meaning R U THERE?  Used to confirm a if a user is at
the terminal.  Also meaning, "What's up?".
.TP
.B FYI
For your information...
.TP
.B "Hello-p"
A greeting, also meaning R U THERE?  (An instance of the "-P" convention.)
.TP
.B MtFBWY
May the Force be with you.  (From Star Wars.)
.TP
.B Nil
No.
.TP
.B OBTW
Oh, by the way...
.TP
.B "R U There?"
Are you there?
.TP
.B Sec
Wait a second (sometimes written SEC...).
.TP
.B T
Yes.
.TP
.B TNX
Thanks.
.TP
.B "TNX 1.0E6"
Thanks a million (humorous).
.TP
.B "/\\\\\\\\\\\\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\\\\"
The equivalent of a giggle.
.TP
.B [message]
A message surrounded by square brackets "[]" is considered for
information purposes or for explaining a users physical expression.
Typical examples include:
.RS
.TP
.B [Chuckle]
The users is amused.
.TP
.B [Confused]
The user is confused on a particular subject.
.TP
.B [Sigh]
To indicate a sadness or "Sigh of relief".
.TP
.B [To Restroom]
The user will be away from the screen to take care of some business.
.RE
.RE
.SH CONF AND EMACS
.B conf.el
The conf users of conf are provided with a emacs lisp function that will
allow them to run conf as a subprocess of emacs (if they compiled emacs
with #define subprocesses).  This gives the users several added features
that they would not normally have without emacs.
.RS
.TP
o
The user may receive messages while he/she is typing messages.
.TP
o
Emacs will keep a transaction of all messages in the buffer "*conference*"
which previous sends can be looked at if they were missed.
.TP
o
Auto-fill of incoming messages.
.TP
o
The "warm-fuzzy" -- emacs full screen editing.
.RE
.PP
To use conf.el, copy it (probably from /usr/lib/conf/conf.el) into
your .emacs file and M-X conference.
.SH FILES
.RS
.PP
/usr/lib/conf/confhelp	- Help file.
.PP
/usr/lib/conf/conflog	- Messages transaction file.
.PP
/usr/lib/conf/confusers	- User log file.
.PP
/usr/lib/conf/conf.lock	- A lock file.
.RE
.SH BUGS
.B "Known Bugs:"
.RS
If a SIG_INT (^C) is done while messages are being saved to the record file,
parts of the messages may be hacked off.  This is a feature.  fnord.
.RE
.B "Reporting bugs or suggestions:"
.RS
Send any bugs reports, fixes, or improvements to ag at portnoy.UUCP or
ag at crash.UUCP.  I am always open to coherent suggestions or comments.
.RE
.SH IMPROVEMENTS
Several things are in the works.  I have listed some major and minor
improvements below.
.PP
This documentation.
.PP
Online documentation should include information about variables and
more information about HOW TO.
.PP
There should be a way to set default settings for strings.  So,
if a user user really spazzes, they may reset to defaults.  This can be taken
care of (now) by logging out and re-logging into conf.
.PP
A Remote conf is being thought of, ideas here would be
appreciated.  Maybe conf could be a service on the remote site which would
copy any file activity to the local site.  Re-organizing the conflog structs
to work on any machine would have to be done.
.PP
The confusers files should be done with shared memory (if the system
has it).  This would allow conf to update the "memory" with
information like idle time and such.  The biggest problem with conf is
that users cannot tell if a person is in the middle of typing a
message or if a user has been shot and is slumped over the keys.
Constantly updating a shared file would drag the system down, so idle
time will be done in shared memory only.  If anyone has any
suggestions ...
.PP
:ignore user/tty/sends/shouts  will be implemented someday.
.PP
Some way of hi-lighting text, probably using cryptic escape sequences.
There is a definite need for highlighting in the format strings.
.PP
Format strings should be checked for validity.  Check '%m' and a linefeed
at the end and warn if they don't exist.
.SH AUTHOR
.RS
.PP
Keith M. Gabryelski (ag at elgar.UUCP)
.PP
Special thanks to:
.RS
.PP
Michael Ditto (ford at kenobi.UUCP)
.RE
.RE
SHAR_EOF
fi # end of overwriting check
if test -f 'conf.txt'
then
	echo shar: will not over-write existing file "'conf.txt'"
else
cat << \SHAR_EOF > 'conf.txt'



     CONF(1)                  XENIX System V                   CONF(1)



     NAME
          conf - conference with other users.

     SYNOPSIS
          conf [-w][-l linenumber][-s switch] username1 username2 ...

     DESCRIPTION
          Conf is a line oriented multi-user chat program designed to
          work on any SysV, BSD, or Xenix system.

          Conf has several advantages over the standard write program
          supplied with most Unix and Xenix operating systems.

               o    You are not limited to the number of users that
                    may be on one conference line.

               o    Some users of conf may switch a separate line to
                    avoid confusion with other discussions.  There are
                    100 separate lines called "conference lines".

               o    Messages that conf users may send may be specific
                    to a line, a user, a tty, or to all users
                    currently on conf (see COLON COMMANDS; reply,
                    send, and shout).

               o    Conf keeps track of who is on conf, what line they
                    are on, and if they are recording messages.  This
                    allows users to quickly find out who is using conf
                    and how to send a message to them (see COLON
                    COMMANDS; who).

               o    Conf allows its users to distinguish between, user
                    messages (known as "Normal Messages"), private
                    messages (known as "Send Messages"), system
                    messages (known as "Information Messages"),
                    messages to a line that the sending users is not
                    on (known as "Line Messages"), and messages to all
                    users (known as "Shout Messages").  Conf allows
                    its users to set the type-out mode of any of the
                    message types to a user pleasant format that may
                    or may not include the from-user's name, tty,
                    message, or the to-user's name or tty (see
                    MESSAGES TYPES and MESSAGES FORMATS).

               o    Conf will not print an incoming message until the
                    user has finished typing.  Incoming messages will
                    be "held" until the users has sent a message (or
                    otherwise cleared the input buffer).  If the user
                    is using the Gnumacs interface, the screen will be
                    updated without imparing the message the user is
                    currently typing.




     Page 1                                          (printed 4/22/88)






     CONF(1)                  XENIX System V                   CONF(1)



     SWITCHES
          -l line number
               Set the startup line.  The default is 1.

          -s switch
               Set option [switch] to the given value.  (see OPTIONS)

          -w line number
               Display who is using conf on the specified line.  If no
               line number is given, conf with display all users that
               are currently on conf.

          username
               Ring username to join conf.

     OPTIONS
          There are three types of options, boolean, numeric, and
          string. Options may be specified in a "rc file" called
          .confrc in the users home directory, the environment
          variable CONFOPTS, as parameters to conf using the -s
          switch, and while running conf with the colon command "set".
          In any case, options are separated by commas, and may be
          shortened to the least ambiguous string.

          Boolean Options:
               Boolean options are set by putting their names the
               appropriate list.  Boolean options may be reset by
               proceeding their name with a '!' or the word "no".
               (i.e. "foo" sets the boolean option "foo", "!foo" or
               "nofoo" would negate (reset) the option "foo")

               banner
                    If set, conf will display its version number and
                    credits when the user logs in.

               beep
                    If set, conf will beep (send a ctrl-G) when a
                    message is displayed on your terminal.

               expandctrl
                    If set, conf will expand control characters to a
                    user visible string (e.g. ctrl-X would be printed
                    as ^X).  If this option is negated, all control
                    characters will be passed to the user without
                    modification.

               expand8bit
                    If set, conf will expand any character with bit 7
                    set to a user visible string (e.g. Meta-X would be
                    printed as ~X).

               seeme



     Page 2                                          (printed 4/22/88)






     CONF(1)                  XENIX System V                   CONF(1)



                    If set, the conf will display any "Normal Message"
                    typed by you.  If this option is negated, conf
                    will not display "Normal Messages" by you.  (see
                    MESSAGE TYPES).

               seemyinform
                    If set, conf will display "Information Messages"
                    by you.  If this option is negated, conf will
                    ignore "Information Messages" by you.  (see
                    MESSAGE TYPES).

               Sample: banner,nobeep,noseeme

               Will set banner , but will reset beep, and seeme.

          Numeric Options: Numeric options have the form
          option=number.

               line
                    Conference line number to use.

               Sample: line=2

               Will set line = 2

          String Options: String options take the form option=string
          or option="space filled string".

               cls
                    Clear screen string.

               name
                    Your conference name.

               inform-format
                    Display format for information messages.  (see
                    MESSAGE FORMATS)

               normal-format
                    Display format for normal messages.  (see MESSAGE
                    FORMATS)

               send-format
                    Display format for private sends.  (see MESSAGE
                    FORMATS)

               shout-format
                    Display format for display shouts.  (see MESSAGE
                    FORMATS)

               line-format
                    Display format for display line sends.  (see



     Page 3                                          (printed 4/22/88)






     CONF(1)                  XENIX System V                   CONF(1)



                    MESSAGE FORMATS)

               recfile
                    The default record file.  This is usually
                    "conf.rec".

               Sample: name=Aggy,recfile="record.conf"

               Will set name to ``Aggy'' and recfile to
               ``record.conf''

     RC FILE
          This file contains lists of options and their values or
          colon commands to execute before logging into conf.  Blank
          lines as well as lines beginning with a '#' or ';' are
          ignored.

          Colon commands that require the user to be logged in to
          execute are invalid in the .confrc file.  (e.g., :send,
          :shout, and :record).

          A typical RC file might look like this:

          #
          # This file is .confrc which you can find in my home directory.
          #

          :cls
          name = "Ag"
          pager = "/usr/local/bin/less"
          shell = "/bin/tcsh"
          banner

          # End of Confrc file.


     ENVIRONMENT VARIABLE
          Conf recognizes several shell variables for defining
          preferences.

               CONFOPTS
                    This environment variable holds a list of options
                    and their values.  A typical environment variable
                    might look like this:

                    CONFOPTS=banner,name="Ag"

               SHELL
                    Your preferred shell.  (e.g. SHELL=/bin/sh)

               PG or PAGER
                    Your preferred pager.  (e.g.



     Page 4                                          (printed 4/22/88)






     CONF(1)                  XENIX System V                   CONF(1)



                    PG=/usr/local/bin/less)

               TERM
                    Your terminal's name.  (e.g. TERM=tvi950)

     MESSAGE TYPES
          There are several types of messages you can receiving while
          using conf.

          Normal Messages: are messages that get sent to all users on
          your current line number.  You can send a normal messages by
          typing a line and pressing return while inside conf.  Users
          may filter Normal Messages from themselves by resetting the
          seeme variable.

          Information Messages: are system messages about a certain
          user.  Login, Logouts, and line switching are all forms of
          Information Messages. Information messages are automaticly
          sent to all users that are affected by a certain users
          actions.  Users may filter Information Messages by
          themselves by resetting the variable.

          Send Messages: are messages sent to a specific user, tty, or
          line number.  They are sent by using the colon command
          "send" (see COLON COMMANDS)

     MESSAGE FORMAT
          You may personalize the way conf prints different messages
          by modifying the appropriate format string.  A format string
          consists of a null terminated string will text and meta
          characters.  Conf interprets meta characters as follows.

               %N   Your conference name.

               %n   Name of user sending message.

               %m   Message users sent.

               %T   Your tty.

               %t   Tty of user that sent message.

               %%   The character '%'

          If you wanted normal messages to print only the messages
          itself you would :set normal-format ="%m^J".  If you wanted
          sends to be display with only the username of the person
          sending the messages and the messages itself, you would :set
          send-format ="%n - %m".

     COLON COMMANDS
          Any line whose first character is a colon (':') and whose



     Page 5                                          (printed 4/22/88)






     CONF(1)                  XENIX System V                   CONF(1)



          second character *is not* a colon will be interpreted as a
          "Colon command".  A list of colon commands follows.

               :cls

                    Clear the screen.

               :exit or :quit

                    Leave conference.

               :from filename

                    Take message from file.

               :help command

                    Print lots of help about a given command.  Default
                    prints entire help file.

               :record filename

                    Start recording conference messages to the file
                    specified.  If no file is specified and you are
                    not current recording, the default file will be
                    used otherwise the currently record file will be
                    closed and you will stop recording.

               :reply message

                    Reply to last message sent privately.  With no
                    args, reply will print the user and tty to send
                    to.

               :ring user1, user2, ...

                    Invite specified users to join you on conf.

               :send user, /linenumber, :ttyname,...  message

                    Send a private message to a username, ttyname, or
                    line number.   When listing a linenumber, the
                    number must be proceeded by a slash '/'.  When
                    listing a ttyname, the ttyname must be procceded
                    by a colon ':'.

               :set [no]option, option=value

                    Set a flag or option.  If no argument if given to
                    a numeric or string option, the current value will
                    be displayed.




     Page 6                                          (printed 4/22/88)






     CONF(1)                  XENIX System V                   CONF(1)



               :shell

                    Invoke preferred shell.

               :shout message

                    Send a message to all terminals logged in to conf.
                    Don't use this command thoughtlessly.  A frequent
                    use on our system is ":shout Everyone off of conf,
                    I'm installing a version without bugs!".  :-)

               :to line number

                    Switch to a new conference line (1 - 100).  If no
                    argument is given, your current conference line
                    will be displayed.

               :who line number

                    List users on conference.  With no args, all
                    conference lines are displayed.  Who will list
                    users names, ttys, and what lines they are on.  If
                    a users name is proceeded by an asterisk '*', that
                    user is currently recording.

               :version

                    Print the current version of conf and some
                    credits.

               :? command

                    Little help.  Just print the usage line for a
                    given colon command.  If no argument is given conf
                    will displays the names of all commands available
                    to the user.

     LINE EDITING
          Conf supports limited line editing features.  While you are
          typing a line, the following "control" characters will be
          interpreted as line editing characters:

          (A character proceeded by a caret '^' symbolize control
          characters.  You must hold down the "Control key" and press
          the given letter to get these characters)

               ^C   Abort this line.

               ^D   If this is the first character on the line, conf
                    will log you out.

               ^H, DEL



     Page 7                                          (printed 4/22/88)






     CONF(1)                  XENIX System V                   CONF(1)



                    Delete the last character typed.

               ^J, ^M
                    End of line.  Conf will its voodoo on this line.

               ^L   Clear screen and display current line.

               ^Q, ^S
                    X-ON , X-OFF is you have them set.

               ^R   CRLF and reprint line.

               ^W   Delete last word.

               ^Z   Stop process (if supported on your system).

     ELEPHANT TALK
          There is a jargon that goes along with online tty
          communication.  The list that follows will give you an idea
          of how to interpret local jargoneese.  (Stolen, without
          permission from MIT's OZ:<COMMON>:JARGON.TXT)

               Ack! Term of disgust (from Bill the Cat's, "Ackphtft!")

               BCNU Be seeing you.

               BTW  By the way...

               Bye? Are you ready to logout?  (This is the standard
                    way to end a conference; the other users type BYE
                    to confirm, or else continue the conversation.)

               CUL  See you later.  Variation: "CULater"

               Foo? A greeting, also meaning R U THERE?  Used to
                    confirm a if a user is at the terminal.  Also
                    meaning, "What's up?".

               FYI  For your information...

               Hello-p
                    A greeting, also meaning R U THERE?  (An instance
                    of the "-P" convention.)

               MtFBWY
                    May the Force be with you.  (From Star Wars.)

               Nil  No.

               OBTW Oh, by the way...

               R U There?



     Page 8                                          (printed 4/22/88)






     CONF(1)                  XENIX System V                   CONF(1)



                    Are you there?

               Sec  Wait a second (sometimes written SEC...).

               T    Yes.

               TNX  Thanks.

               TNX 1.0E6
                    Thanks a million (humorous).

               /\/\/\
                    The equivalent of a giggle.

               [message]
                    A message surrounded by square brackets "[]" is
                    considered for information purposes or for
                    explaining a users physical expression.  Typical
                    examples include:

                    [Chuckle]
                         The users is amused.

                    [Confused]
                         The user is confused on a particular subject.

                    [Sigh]
                         To indicate a sadness or "Sigh of relief".

                    [To Restroom]
                         The user will be away from the screen to take
                         care of some business.

     CONF AND EMACS
          conf.el The conf users of conf are provided with a emacs
          lisp function that will allow them to run conf as a
          subprocess of emacs (if they compiled emacs with #define
          subprocesses).  This gives the users several added features
          that they would not normally have without emacs.

               o    The user may receive messages while he/she is
                    typing messages.

               o    Emacs will keep a transaction of all messages in
                    the buffer "*conference*" which previous sends can
                    be looked at if they were missed.

               o    Auto-fill of incoming messages.

               o    The "warm-fuzzy" -- emacs full screen editing.

          To use conf.el, copy it (probably from



     Page 9                                          (printed 4/22/88)






     CONF(1)                  XENIX System V                   CONF(1)



          /usr/lib/conf/conf.el) into your .emacs file and M-X
          conference.

     FILES
               /usr/lib/conf/confhelp   - Help file.

               /usr/lib/conf/conflog    - Messages transaction file.

               /usr/lib/conf/confusers  - User log file.

               /usr/lib/conf/conf.lock  - A lock file.

     BUGS
          Known Bugs:
               If a SIG_INT (^C) is done while messages are being
               saved to the record file, parts of the messages may be
               hacked off.  This is a feature.  fnord.
          Reporting bugs or suggestions:
               Send any bugs reports, fixes, or improvements to
               ag at portnoy.UUCP or ag at crash.UUCP.  I am always open to
               coherent suggestions or comments.

     IMPROVEMENTS
          Several things are in the works.  I have listed some major
          and minor improvements below.

          This documentation.

          Online documentation should include information about
          variables and more information about HOW TO.

          There should be a way to set default settings for strings.
          So, if a user user really spazzes, they may reset to
          defaults.  This can be taken care of (now) by logging out
          and re-logging into conf.

          A Remote conf is being thought of, ideas here would be
          appreciated.  Maybe conf could be a service on the remote
          site which would copy any file activity to the local site.
          Re-organizing the conflog structs to work on any machine
          would have to be done.

          The confusers files should be done with shared memory (if
          the system has it).  This would allow conf to update the
          "memory" with information like idle time and such.  The
          biggest problem with conf is that users cannot tell if a
          person is in the middle of typing a message or if a user has
          been shot and is slumped over the keys.  Constantly updating
          a shared file would drag the system down, so idle time will
          be done in shared memory only.  If anyone has any
          suggestions ...




     Page 10                                         (printed 4/22/88)






     CONF(1)                  XENIX System V                   CONF(1)



          :ignore user/tty/sends/shouts  will be implemented someday.

          Some way of hi-lighting text, probably using cryptic escape
          sequences.  There is a definite need for highlighting in the
          format strings.

          Format strings should be checked for validity.  Check '%m'
          and a linefeed at the end and warn if they don't exist.

     AUTHOR
               Keith M. Gabryelski (ag at elgar.UUCP)

               Special thanks to:

                    Michael Ditto (ford at kenobi.UUCP)








































     Page 11                                         (printed 4/22/88)



SHAR_EOF
fi # end of overwriting check
cd ..
#	End of shell archive
exit 0
-- 
  "If green is all there is to be, then green is good enough for me" - ktf
[  Keith   ]  UUCP: {ucsd, cbosgd!crash, sdcsvax!crash, nosc!crash}!elgar!ag
[Gabryelski]  INET: ag at elgar.cts.com                 ARPA: elgar!ag at ucsd.edu

-- 
Please send comp.sources.unix-related mail to rsalz at uunet.uu.net.



More information about the Comp.sources.unix mailing list