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