richb@sunchat.UUCP (Rich Burridge) (12/12/88)
The next three messages contain the latest version of faces, a visual
mail/printer monitor.Could you please place them in your archives.
This is the second general release of a face server for monitoring mail
and print jobs. It is based on the Bell Labs v8 vismon program, and this
version is vismon compatible, but is not derived from AT&T sources.
This version contains drivers for SunView and NeWS graphics systems.
Permission is given to distribute these sources, as long as the
copyright messages are not removed, and no monies are exchanged.
See the README and manual page for more details.
Save the subsequent messages in a new directory, strip off the
beginning down to and including the CUT HERE line, unpack with sh,
then type "make sunview" for the SunView version or "make news" for
the NeWS version. Then install with "make install". Note that you might
need super-user permission to do this successfully. Create your face
directory, hostname sub-directories username ikons/icons, machine and
people tables, and you're set.
Note that if you are compiling faces under v3.x of the SunOS, then there
is a line in the Makefile starting with OSTYPE, that needs to be uncommented.
If anybody can work out what needs to be done to fix the problem of the
window/icon always moving back to the initial position (see the BUGS section
of the man page), then I'll be very pleased to hear from them.
If you already have your face scanned in and iconised and would like to
add it to the library I'm building up, please feel free to email it to me.
Bugs, flames and suggestions to me please.
Acknowledgements.
Thanks go to Guy Harris for the basis of the latest manual page, Dave
Lemke for many excellent suggestions including the animated postscript
faces, to Andrew Nicholson for help with some of the trickier NeWS code,
to Dan Heller for writing the 'watch' program which was consulted
in the early days, to Rob Pike for sending me a copy of the
Pike/Presotto paper "Face the Nation", which I used to get vismon
compatibility, and to everybody else who suggested enhancements, and
fixed bugs in the previous version.
Rich.
Rich Burridge, DOMAIN: richb@sunaus.oz.au
PHONE: +61 2 413 2666 UUCP: {uunet,mcvax,ukc}!munnari!sunaus.oz!richbrichb@sunchat.UUCP (Rich Burridge) (12/12/88)
This is the second general release of a face server for monitoring mail
and print jobs. It is based on the Bell Labs v8 vismon program, and this
version is vismon compatible, but is not derived from AT&T sources.
This version contains drivers for SunView and NeWS graphics systems.
Permission is given to distribute these sources, as long as the
copyright messages are not removed, and no monies are exchanged.
See the README and manual page for more details.
Save this, and subsequent messages in a new directory, strip off the
beginning down to and including the CUT HERE line, unpack with sh,
then type "make sunview" for the SunView version or "make news" for
the NeWS version. Then install with "make install". Note that you might
need super-user permission to do this successfully. Create your face
directory, hostname sub-directories username ikons/icons, machine and
people tables, and you're set.
Note that if you are compiling faces under v3.x of the SunOS, then there
is a line in the Makefile starting with OSTYPE, that needs to be uncommented.
If anybody can work out what needs to be done to fix the problem of the
window/icon always moving back to the initial position (see the BUGS section
of the man page), then I'll be very pleased to hear from them.
If you already have your face scanned in and iconised and would like to
add it to the library I'm building up, please feel free to email it to me.
Bugs, flames and suggestions to me please.
Acknowledgements.
Thanks go to Guy Harris for the basis of the latest manual page, Dave
Lemke for many excellent suggestions including the animated postscript
faces, to Andrew Nicholson for help with some of the trickier NeWS code,
to Dan Heller for writing the 'watch' program which was consulted
in the early days, to Rob Pike for sending me a copy of the
Pike/Presotto paper "Face the Nation", which I used to get vismon
compatibility, and to everybody else who suggested enhancements, and
fixed bugs in the previous version.
Rich Burridge - December 1988.
------CUT HERE------CUT HERE------
#! /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 to create the files:
# README
# faces.1
# faces.ps
# machine.tab
# people.tab
# Makefile
# extern.h
# faces.h
# patchlevel.h
# noface.icon
# nomail.icon
# noprint.icon
# nopaper.icon
# This archive created: Sun Dec 11 15:16:23 EST 1988
#
#
export PATH; PATH=/bin:$PATH
#
if [ -f README ]
then
echo shar: will not over-write existing file README
else
echo shar: extracting 'README', 2703 characters
cat > README <<'Funky_Stuff'
README for faces, the visual mail and print monitor.
Version 1.3 December 1988.
Permission is given to distribute these sources, as long as the
copyright messages are not removed, and no monies are exchanged.
This is the second general release of a "faces" server for
monitoring mail or print jobs.
It contains graphical interfaces for SunView and NeWS. The X11 and
blit versions are being worked on. Expect them in the near future.
Faces has three different modes of operation:
The default will monitor for new mail. Only the last ten messages are
displayed. In its iconic form, it is also possible to display the timestamp
of each message, and the open window format can give the username.
The second choice is to monitor the whole of a mail file. The icon and open
window display the appropriate faces, and dynamically change size as a new
check is made and if the mail file has altered size. In the iconic form, a
timestamp of the last message plus the number of mail messages from this
person are optional display parameters.
The final option allows this program to monitor a given print queue.
This will generate a single face icon showing the job at the top of the print
queue, and a text message will display the number of messages to be printed.
Opening the window will show all the jobs in the queue with the owners' name
and the size of the job in bytes.
Faces is based on the AT&T v8 face server called vismon, but is not derived
from vismon sources. With this version comes vismon compatibility. Note
that this has resulted in a few changes from the way faces v1.1 worked.
Please see the manual pages for details.
There is a face directory, and under that are directories which are hostnames.
Under that are username directories, and this is where the face images are
placed. The face images are currently stored in one of three ways:
1. NeWS .ps format, called face.ps.
2. Sun icon format, called sun.icon.
3. Blit ikon format, called 48x48x1.
The NeWS .ps allow for animation with the users' face. These files are
drawn when the rest of the static faces have been displayed. They will be
redrawn every time the mail or print queue is recheck or when the faces
window or icon is damaged. See the manual page for details on the
conditions imposed on these NeWS .ps files.
By default, after every sixty seconds, faces will recheck the mail file or
the print queue. If the mail spool file has changed size, it will produce a
chain of records for which it has face icons.
I welcome bug reports and suggestions for improvements.
Rich.
Rich Burridge, DOMAIN: richb@sunaus.oz.au
PHONE: +61 2 413 2666 UUCP: {uunet,mcvax,ukc}!munnari!sunaus.oz!richb
Funky_Stuff
len=`wc -c < README`
if [ $len != 2703 ] ; then
echo error: README was $len bytes long, should have been 2703
fi
fi # end of overwriting check
if [ -f faces.1 ]
then
echo shar: will not over-write existing file faces.1
else
echo shar: extracting 'faces.1', 6804 characters
cat > faces.1 <<'Funky_Stuff'
.\" @(#)faces.1 1.2 88/12/11
.TH FACES 1L "2 December 1988"
.SH NAME
faces \- visual mail and print face server for the Sun workstation
.SH SYNOPSIS
.B "faces
[
.B \-P
.I printer
]
[
.B \-a
]
[
.B \-b
.I background
]
[
.B \-f
.I facedir
]
[
.B \-i
]
[
.B \-n
]
[
.B \-p
.I period
]
[
.B \-s
.I spoolfile
]
[
.B \-t
]
[
.B \-u
]
[
.B \-v
]
[
.B \-Wi
]
[
.B \-Wp
.I x y
]
[
.B \-WP
.I x y
]
.SH DESCRIPTION
.B faces
is a window based tool for monitoring mail or print queues. It contains
graphical interfaces for SunView and NeWS. It has three different modes
of operation:
.LP
The default will monitor for new mail. Only the last ten messages are
displayed. In its iconic form, it is also possible to display the timestamp
of each message, and the open window format can give the username.
.LP
The second choice is to monitor the whole of a mail file. The icon and open
window display the appropriate faces, and dynamically change size as a new
check is made and if the mail file has altered size. In the iconic form, a
timestamp of the last message plus the number of mail messages from this
person are optional display parameters.
.LP
The final option allows this program to monitor a given print queue.
This will generate a single face icon showing the job at the top of the print
queue, and a text message will display the number of messages to be printed.
Opening the window will show all the jobs in the queue with the owners' name
and the size of the job in bytes.
.LP
There are special displays for no mail, no faces found, no print jobs, and
no paper in the printer.
.LP
.B faces
is based on the AT&T v8 program
.B vismon.
This program is not derived from
.B vismon
source.
.LP
There is a special faces directory containing a fixed three-level hierarchy,
which by default is
.I /usr/local/faces.
The first level is a machine name, the second level a user name, and the
third level is the actual face image, which can be stored in three formats.
If the file is named
.I 48x48x1
then it is a Blit ikon, and if it is called
.I sun.icon
then the image is stored in Sun icon format, and if the file is named
.I face.ps
then it contains executable NeWS code.
.LP
To access the face for a mail name
.I machine!uid
take the result of the first successful open from the following list of files:
.LP
/usr/local/faces/machine/uid/face.ps
.br
/usr/local/faces/machine/uid/sun.icon
.br
/usr/local/faces/machine/uid/48x48x1
.br
/usr/local/faces/misc./uid/face.ps
.br
/usr/local/faces/misc./uid/sun.icon
.br
/usr/local/faces/misc./uid/48x48x1
.br
/usr/local/faces/machine/unknown/face.ps
.br
/usr/local/faces/machine/unknown/sun.icon
.br
/usr/local/faces/machine/unknown/48x48x1
.br
/usr/local/faces/misc./unknown/face.ps
.br
/usr/local/faces/misc./unknown/sun.icon
.br
/usr/local/faces/misc./unknown/48x48x1
.LP
The directory
.I misc.
hold faces for generic users such as
.I root
and
.I uucp.
.LP
Faces information is administered by a pair of ASCII files that associate
related machines and faces. The machine table
.I machine.tab
attaches machines to communities; the line
.LP
stard=sunaus
.LP
puts the machine
.I stard
in community
.I sunaus.
The people table associates a community/alias pair, with a real username.
.LP
sunaus/rburridge=richb
.LP
causes the alias
.I rburridge
to be translated into the real username
.I richb
for the community
.I sunaus
.LP
Domain name structure would be handled in the same way. For example:
.LP
sunaus.sun.oz=sunaus
.LP
would map the full domain name in the community
.I sunaus.
.LP
If the faces directory hierarchy is not found, then a blank face image
will be used.
.LP
Note that you still need to use
.I mailtool
or some other mail reading utility to actually read the mail that this program
monitors;
.I faces
simply displays who the mail is from.
.LP
When new mail arrives,
.B faces
will beep and flash appropriately, depending upon the set parameters in
the users
.I .mailrc
file.
.LP
If you are using the NeWS version and creating face images of the
.I face.ps
form, then the following points should be noted:
.LP
All graphics operations should be performed on the unit square.
.br
The final image will be translated to a 64 x 64 square image at
.br
the appropriate position in the faces display.
.br
.SH OPTIONS
.TP
.BI \-P " printer"
Printer name to monitor. If this and a mail spool file are given with the -s
option,
.B faces
will monitor the print queue.
.TP
.B \-a
Monitor the whole of the specified mail file. The icon and open window display
the appropriate faces, and dynamically change size as a new check is made and
if the mail file has altered size.
.TP
.BI \-b " background"
Sun icon file containing an alternate background pattern. The default is
root grey.
.TP
.BI \-f " facedir"
Use an alternate name for the faces directory. The default is
.BR /usr/local/faces .
.TP
.B \-i
Invert the faces images before displaying them. For use by people who
started SunView with the
.B \-i
option.
.TP
.B \-n
Do not display the number of messages from this person. The default is to
display, and a count is shown at the bottom right corner of the face for
this person.
.TP
.BI \-p " period"
The period in seconds before the mail spool file or the print queue is
scanned again for new mail. The default is 60 seconds.
.TP
.BI \-s " spoolfile"
Use an alternate mail spool file to monitor. The default is
.BI /var/spool/mail/ username
where
.I username
is the name of the user currently logged in.
.TP
.B \-t
Do not display a timestamp of the last message from this person. The
default is to display, and a timestamp is shown at the bottom left
corner of the face for this person.
.TP
.B \-u
Do not display the username on the face icon. The default is to display,
and the username will appear over the face icon, when the window is
opened.
.TP
.B \-v
Print the version number of this release of the
.B faces
program.
.TP
.B \-Wi
Start the
.B faces
program up in iconic form. SunView automatically uses this flag, but the
NeWS version will also.
.TP
.BI \-Wp " x y"
Start the open window position at
.I x y
.TP
.BI \-WP " x y"
Start the icon position at
.I x y
.SH FILES
.TP
.B /var/spool/mail
directory for system mailboxes
.TP
.B /.mailrc
mail startup file
.TP
.B /usr/local/faces
main directory containing the face icons.
.TP
.B /usr/local/faces/people.tab
people/file equivalences
.TP
.B /usr/local/faces/machine.tab
machine/community equivalences
.SH BUGS
The machine and people table lookup is hopelessly inefficient and
will need to be improved as the faces database gets larger.
.br
If the window/icon for the NeWS version is moved, then the window or
icon is redrawn at the original position.
.SH AUTHOR
Rich Burridge, DOMAIN: richb@sunaus.oz.au
.nf
PHONE: +61 2 413 2666 UUCP: {uunet,mcvax,ukc}!munnari!sunaus.oz!richb
.fi
Funky_Stuff
len=`wc -c < faces.1`
if [ $len != 6804 ] ; then
echo error: faces.1 was $len bytes long, should have been 6804
fi
fi # end of overwriting check
if [ -f faces.ps ]
then
echo shar: will not over-write existing file faces.ps
else
echo shar: extracting 'faces.ps', 3760 characters
cat > faces.ps <<'Funky_Stuff'
% These are NeWS dependent graphics routines used by faces.
%
% @(#)faces.ps 1.3 88/12/11
%
% Copyright (c) Rich Burridge - Sun Microsystems Australia.
% All rights reserved.
%
% Permission is given to distribute these sources, as long as the
% copyright messages are not removed, and no monies are exchanged.
%
% No responsibility is taken for any errors or inaccuracies inherent
% either to the comments or the code of this program, but if reported
% to me, then an attempt will be made to fix them.
/ClearBox % x y width height canvas => -
{
setcanvas rectpath 0 setgray fill
} def
/DoPixrects % width height canvas => -
{
dup setcanvas 3 1 roll
0 0 4 -2 roll rectpath reshapecanvas
} def
/ExecFile % psfile width height x y => -
{
Frame /Iconic? get
{ Frame /IconCanvas get }
{ Frame /ClientCanvas get } ifelse
setcanvas translate scale (r) file cvx exec
} def
/InitFont % - => -
{
/Font /Courier findfont 7 scalefont def
} def
/MakeFrame % wx wy width height ix iy iconic => -
{
[ /IsIcon /IconY /IconX /FrameHeight /FrameWidth /FrameY /FrameX ]
{ exch def } forall
/DIED 100 def
/PAINTED 101 def
/ClientHeight FrameHeight 10 sub def
/ClientWidth FrameWidth 10 sub def
/IconHeight FrameHeight def
/IconWidth FrameWidth def
/PR framebuffer newcanvas def
PR /Transparent false put
PR /Mapped false put
PR /Retained true put
/MPR framebuffer newcanvas def
MPR /Transparent false put
MPR /Mapped false put
MPR /Retained true put
/Frame framebuffer /new DefaultWindow send def
{
/IconX IconX def
/IconY IconY def
/BorderTop 5 def
/BorderLeft 5 def
/BorderBottom 5 def
/BorderRight 5 def
/ControlSize 0 def
/ForkPaintClient? false def
/destroy
{
DIED typedprint
DestroyFrame DestroyClient
} def
/flipiconic
{
PAINTED typedprint
/unmap self send
/Iconic? Iconic? not def
IconX null eq {
FrameX FrameY FrameHeight add IconHeight sub /move self send
} if
ZoomProc
/map self send
} def
/PaintClient
{
gsave
1 fillcanvas
ClientWidth ClientHeight scale
0 setgray
Invert PR imagemaskcanvas
grestore
} def
/PaintIcon
{
gsave
1 fillcanvas
IconWidth IconHeight scale
0 setgray
Invert MPR imagemaskcanvas
grestore
} def
} Frame send
IsIcon 1 eq { /flipiconic Frame send } if
} def
/MakeText % string x y canvas => -
{
setcanvas Font setfont 1 setgray moveto show
} def
/MoveImage % srccanvas width height x y destcanvas => -
{
setcanvas
gsave
translate scale imagecanvas
grestore
} def
/SetBackground % - => -
{
PR setcanvas
0.88 fillcanvas
5 setrasteropcode clippath fill
MPR setcanvas
0.88 fillcanvas
5 setrasteropcode clippath fill
} def
/ShiftImage % dx dy width height canvas => -
{
setcanvas 0 0 4 -2 roll rectpath copyarea
} def
/ShowDisplay % framewidth frameheight iconwidth iconheight => -
{
[ /IconHeight /IconWidth /ClientHeight /ClientWidth ] { exch def } forall
/FrameHeight ClientHeight 10 add def
/FrameWidth ClientWidth 10 add def
FrameX FrameY
FrameWidth FrameHeight /reshape Frame send
Frame /IconWidth IconWidth put
Frame /IconHeight IconHeight put
/ShapeIconCanvas Frame send
/painticon Frame send
Frame /ClientHeight ClientHeight put
Frame /ClientWidth ClientWidth put
/ShapeClientCanvas Frame send
/paintclient Frame send
/map Frame send
} def
Funky_Stuff
len=`wc -c < faces.ps`
if [ $len != 3760 ] ; then
echo error: faces.ps was $len bytes long, should have been 3760
fi
fi # end of overwriting check
if [ -f machine.tab ]
then
echo shar: will not over-write existing file machine.tab
else
echo shar: extracting 'machine.tab', 383 characters
cat > machine.tab <<'Funky_Stuff'
stard=sunaus
extra=sunaus
sunchat=sunaus
garfield=sunaus
tom=sunaus
felix=sunaus
sunk=sunaus
sunsa=sunaus
misaus=sunaus
maverick=sunaus
misaus1=sunaus
nimbin=sunaus
redgum=sunaus
palette=sunaus
sunwa=sunaus
sunact=sunaus
basset=basser
castor.cs.su.oz=basser
cluster.cs.su.oz=basser
orwell=basser
sarad=basser
sasha=basser
sunrise=basser
gris=softway
softway.sw.oz=softway
arakis=sun
Funky_Stuff
len=`wc -c < machine.tab`
if [ $len != 383 ] ; then
echo error: machine.tab was $len bytes long, should have been 383
fi
fi # end of overwriting check
if [ -f people.tab ]
then
echo shar: will not over-write existing file people.tab
else
echo shar: extracting 'people.tab', 1663 characters
cat > people.tab <<'Funky_Stuff'
sunaus/rallen=bob
sunaus/ballen=bob
sunaus/bbaker=bruceb
sunaus/mbosch=mike
sunaus/eddy=eddie
sunaus/eevans=eddie
sunaus/ggrell=grell
sunaus/gene=grell
sunaus/jingall=johni
sunaus/ijeffery=ian
sunaus/glynne=gjl
sunaus/tmcentee=tim
sunaus/jnoonan=johnn
sunaus/apappas=arie
sunaus/jennie=jenny
sunaus/jrendell=jenny
sunaus/gsearle=gjs
sunaus/gsitters=greg
sunaus/bscott=brad
sunaus/rstewart=ruth
sunaus/jteasdale=jim
sunaus/loraine=lori
sunaus/lorraine=lori
sunaus/lunicomb=lori
sunaus/pvrbancich=paula
sunaus/swoodhead=simon
sunaus/jy=yo
sunaus/jyoung=yo
sunaus/rboden=richard
sunaus/rbodin=richard
sunaus/rburridge=richb
sunaus/rich=richb
sunaus/mcunningham=mary
sunaus/sduchesne=sue
sunaus/mfredericks=max
sunaus/mfredricks=max
sunaus/bgeneralis=bill
sunaus/shulbert=susanh
sunaus/susan=susanh
sunaus/gmason=gregm
sunaus/vmickan=val
sunaus/trogge=tony
sunaus/andy=aspiers
sunaus/bwiggins=bruce
sunaus/ryeap=ron
sunaus/cbreen=colinb
sunaus/rdesalis=roger
sunaus/mfort=markf
sunaus/mark=markg
sunaus/mgurvis=markg
sunaus/mnegri=manuel
sunaus/npettitt=noel
sunaus/jraine=john
sunaus/paul=paulr
sunaus/prosham=paulr
sunaus/gsweigert=geo
sunaus/rbowman=robb
sunaus/bbowman=robb
sunaus/krees=kim
sunaus/mikes=mslee
sunaus/gshepherd=george
sunaus/aweller=andrew
sunaus/kbeavan=kevin
sunaus/rbradford=rhonda
sunaus/ckeith=colin
sunaus/mmccann=mmc
sunaus/ksterry=kaylene
sunaus/rwilliams=rex
sunaus/gdonin=gary
sunaus/dshea=dennis
sunaus/doshea=dennis
sunaus/hprotoolis=harry
sunaus/rschrader=robert
sunaus/bschrader=robert
sunaus/bobs=robert
sunaus/jvermeulen=jeff
sunaus/MAILER-DAEMON=mailer-daemon
sunaus/Mailer-Daemon=mailer-daemon
sunaus/mailer-daemon=mailer-daemon
Funky_Stuff
len=`wc -c < people.tab`
if [ $len != 1663 ] ; then
echo error: people.tab was $len bytes long, should have been 1663
fi
fi # end of overwriting check
if [ -f Makefile ]
then
echo shar: will not over-write existing file Makefile
else
echo shar: extracting 'Makefile', 4323 characters
cat > Makefile <<'Funky_Stuff'
#
# Makefile for faces, an icon face server, plus associated software.
#
# @(#)Makefile 1.1 88/12/04
#
# Copyright (c) Rich Burridge.
# Sun Microsystems, Australia - All rights reserved.
#
# Permission is given to distribute these sources, as long as the
# copyright messages are not removed, and no monies are exchanged.
#
# Version 1.3 - December 1988.
#
# No responsibility is taken for any errors inherent either
# to the comments or the code of this program, but if reported
# to me then an attempt will be made to fix them.
#
#------------------------------------------------------------------
# There are various command line options with the faces program.
# They can also be defined at compile time. If they are not present
# here, then sensible default values are used. The values given
# below are the defaults, except for the spoolfile name where the
# default is obtained from the users' passwd entry.
#
#
# Monitor type (0 = monitor all, 1 = monitor new, 2 = monitor printer).
#
FMONTYPE = -DFMONTYPE=1
#
# Alternate background pattern instead of root gray.
#
BACKGROUND = -DBACKGROUND=\"\"
#
# Different directory for face icons,
#
FACEDIR = /usr/local/faces
FACEPARAM = -DFACEDIR=\"$(FACEDIR)\"
#
# If nonzero, then display face images in reverse video.
#
INVERT = -DINVERT=0
#
# Period in seconds for checking for new mail or print jobs,
#
PERIOD = -DPERIOD=60
#
# If nonzero, do not show number of messages on the face icon,
#
DONTSHOWNO = -DDONTSHOWNO=0
#
# Alternative spoolfile to monitor,
# eg: SPOOLFILE = -DSPOOLFILE=\"/usr/richb/Mail/pending\"
#
#SPOOLFILE =
#
# If nonzero, do not show timestamp on the face icon.
#
DONTSHOWTIME = -DDONTSHOWTIME=0
#
# If nonzero, do not show username on the face icon.
#
DONTSHOWUSER = -DDONTSHOWUSER=0
#-------------------------------------------------------------------
VARIABLES = $(FMONTYPE) $(BACKGROUND) $(FACEPARAM) \
$(INVERT) $(PERIOD) $(DONTSHOWNO) $(SPOOLFILE) \
$(DONTSHOWTIME) $(DONTSHOWUSER)
BINARIES = ps_faces sv_faces
BINDIR = /usr/local/bin
FACES = facedir
LIBDIR = /usr/local/lib
NEWSFILE = -DNEWSGIVEN -DNEWSFILE=\"$(LIBDIR)/faces.ps\"
MANDIR = /usr/man/man$(MANSECT)
MANSECT = l
#
# If you are compiling faces under v3.x of SunOS, then uncomment this line.
#OSTYPE = -DSUNOS3.x
CFLAGS = -g $(NEWSFILE) $(OSTYPE) $(VARIABLES)
HDRS = extern.h faces.h patchlevel.h
IMAGES = noface.icon nomail.icon noprint.icon nopaper.icon
PSLIBS = $$NEWSHOME/lib/libcps.a
PSOBJS = get.o main.o mon.o news.o rec.o
PSSRCS = get.c main.c mon.c news.c rec.c
SVLIBS = -lsuntool -lsunwindow -lpixrect
SVOBJS = get.o main.o mon.o rec.o sunview.o
SVSRCS = get.c main.c mon.c rec.c sunview.c
OTHERS = README faces.1 faces.ps machine.tab people.tab Makefile
SRCS = get.c main.c mon.c news.c rec.c sunview.c
all: sunview news
news: ps_faces
cp ps_faces faces
sunview: sv_faces
cp sv_faces faces
ps_faces: $(PSOBJS)
cc -o ps_faces $(CFLAGS) $(PSOBJS) $(PSLIBS)
sv_faces: $(SVOBJS)
cc -o sv_faces $(CFLAGS) $(SVOBJS) $(SVLIBS)
install: $(BINARIES)
install -s -m 751 faces $(BINDIR)
install -c -m 644 faces.ps $(LIBDIR)
install -c -m 644 machine.tab $(FACEDIR)
install -c -m 644 people.tab $(FACEDIR)
install -c -m 644 faces.1 $(MANDIR)/faces.$(MANSECT)
backup:; cp -r $(SRCS) $(HDRS) $(IMAGES) $(OTHERS) $(FACES) backdir
clean:; rm -f *.o $(BINARIES) faces core
lint:; lint -DNEWSGIVEN -DNEWSFILE=\"$(LIBDIR)/faces.ps\" $(PSSRCS)
lint $(SVSRCS) $(SVLIBS)
shar:; shar.script $(OTHERS) $(HDRS) $(IMAGES) > archive.1
shar.script $(SRCS) > archive.2
shar.script $(FACES) > archive.3
create: SCCS
-sccs create $(SRCS) $(HDRS) $(IMAGES) $(OTHERS)
SCCS:
mkdir SCCS
chmod 755 SCCS
get.o: get.c faces.h extern.h patchlevel.h
main.o: main.c faces.h Makefile
mon.o: mon.c faces.h extern.h
news.o: news.c faces.h extern.h
rec.o: rec.c faces.h extern.h
sunview.o: sunview.c extern.h $(IMAGES)
Funky_Stuff
len=`wc -c < Makefile`
if [ $len != 4323 ] ; then
echo error: Makefile was $len bytes long, should have been 4323
fi
fi # end of overwriting check
if [ -f extern.h ]
then
echo shar: will not over-write existing file extern.h
else
echo shar: extracting 'extern.h', 3566 characters
cat > extern.h <<'Funky_Stuff'
/* @(#)extern.h 1.2 88/12/11
*
* Contains the external variable definitions used by faces.
*
* Copyright (c) Rich Burridge.
* Sun Microsystems, Australia - All rights reserved.
*
* Permission is given to distribute these sources, as long as the
* copyright messages are not removed, and no monies are exchanged.
*
* No responsibility is taken for any errors or inaccuracies inherent
* either to the comments or the code of this program, but if
* reported to me then an attempt will be made to fix them.
*/
extern char *get_field(), *getname() ;
extern int do_check() ;
struct recinfo *rec_exists() ;
extern struct comminfo *communities ; /* Community alias/username chain. */
extern struct comminfo *clast ; /* End of chain of community records. */
extern struct machinfo *machines ; /* Known machine/communities. */
extern struct machinfo *mlast ; /* End of chain of machine records. */
extern struct psinfo *psrecs ; /* List of news.ps animation files. */
extern struct psinfo *plast ; /* End of chain of NeWS animation files. */
extern struct recinfo *recs ; /* Mail messages being monitored. */
extern struct recinfo *last ; /* End of the chain of mail records. */
extern struct stat buf ; /* Buffer for stat call for file existence. */
extern long lastsize ; /* Last known size of the mail folder. */
extern enum gr_type gtype ; /* Indicates what graphics system is being used. */
extern enum mon_type mtype ; /* What type of monitoring we should do. */
extern char bgicon[] ; /* Alternate background pattern. */
extern char community[] ; /* Community name ("real" host name). */
extern char facedir[] ; /* Directory containing face images. */
extern char iconname[] ; /* Name of the icon file for this person. */
extern char machfile[] ; /* Name of the machine/community file. */
extern char nextline[] ; /* Next line from users mail spool file. */
extern char peopfile[] ; /* Name of the people/username file. */
extern char printer[] ; /* Printer name to monitor. */
extern char progname[] ; /* Name of this program. */
extern char spoolfile[] ; /* Full pathname of users current mail. */
extern int beeps ; /* Number of beeps for arrival of new mail. */
extern int column ; /* Column number for next icon. */
extern int dontshowno ; /* Set if no. of messages shouldn't be shown. */
extern int dontshowtime ; /* Set if timestamp shouldn't be shown. */
extern int dontshowuser ; /* Set if username shouldn't be shown. */
extern int facetype ; /* Type of face file found. */
extern int firsttime ; /* Zeroised after first mail/printer check. */
extern int flashes ; /* Number of flashes for arrival of new mail. */
extern int height ; /* Height in pixels of faces display. */
extern int iconic ; /* Start as an icon if set. */
extern int invert ; /* Set if to use reverse video. */
extern int ix ; /* Initial X position of the icon. */
extern int iy ; /* Initial Y position of the icon. */
extern int newmail ; /* Set if there is new mail this time around. */
extern int noicons ; /* Number of faces this time around. */
extern int period ; /* Period in seconds for checking new mail. */
extern int row ; /* Row number for next icon. */
extern int width ; /* Width in pixels of faces display. */
extern int wx ; /* Initial X position of the window. */
extern int wy ; /* Initial Y position of the window. */
Funky_Stuff
len=`wc -c < extern.h`
if [ $len != 3566 ] ; then
echo error: extern.h was $len bytes long, should have been 3566
fi
fi # end of overwriting check
if [ -f faces.h ]
then
echo shar: will not over-write existing file faces.h
else
echo shar: extracting 'faces.h', 4482 characters
cat > faces.h <<'Funky_Stuff'
/* @(#)faces.h 1.3 88/12/09
*
* Contains all the global definitions used by faces.
*
* Copyright (c) Rich Burridge - Sun Microsystems Australia.
* All rights reserved.
*
* Permission is given to distribute these sources, as long as the
* copyright messages are not removed, and no monies are exchanged.
*
* No responsibility is taken for any errors or inaccuracies inherent
* either to the comments or the code of this program, but if
* reported to me then an attempt will be made to fix them.
*/
#include <stdio.h>
#include <sys/fcntl.h>
#include <sys/types.h>
#include <sys/file.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <pwd.h>
#include <strings.h>
#define FCLOSE (void) fclose /* To make lint happy. */
#define FFLUSH (void) fflush
#define FGETS (void) fgets
#define FPRINTF (void) fprintf
#define FSEEK (void) fseek
#define GETHOSTNAME (void) gethostname
#define GET_SUN_ICON (void) get_sun_icon
#define IOCTL (void) ioctl
#define PUTC (void) putc
#define SELECT (void) select
#define SSCANF (void) sscanf
#define SPRINTF (void) sprintf
#define STRCAT (void) strcat
#define STRCPY (void) strcpy
#define STRNCAT (void) strncat
#define STRNCPY (void) strncpy
#define UNLINK (void) unlink
/* The types of display. */
enum disp_type { BOTH, ICON, WINDOW } ;
/* Field extraction options. */
enum field_type { HOSTNAME, TIMESTAMP, USERNAME } ;
/* Different types of possible face images. */
enum icon_type { NOMAIL, NOPAPER, NOPRINT, ORDINARY } ;
/* Text justification within face display. */
enum just_type { LEFT, RIGHT } ;
/* Different types of file monitoring performed by this program. */
enum mon_type { MONALL, MONNEW, MONPRINTER } ;
/* Different graphics systems appropriate one set in gtype. */
enum gr_type { SUNVIEW, NEWS } ;
/* Determine order for face type lookup. */
#define NEWSTYPE 0
#define SUNTYPE 1
#define BLITTYPE 2
/* NeWS return event values. */
#define DIED 100 /* Faces has been zapped. */
#define PAINTED 101 /* Canvas/Icon needs repainting. */
#define BLITHEIGHT 48 /* Maximum number of lines in a blit icon. */
#define EQUAL(str,val) !strncmp(str,val,strlen(val))
#define ICONHEIGHT 64 /* Height of individual face icons. */
#define ICONWIDTH 64 /* Width of individual face icons. */
#define INC argc-- ; argv++ ;
#define MAXLINE 200 /* Maximum length for character strings. */
#define MAXTYPES 3 /* Maximum number of different face types. */
#define NO_PER_ROW 10 /* Number of faces per row. */
char *getenv(), *malloc(), *sprintf() ;
struct machinfo /* Machine/community record. */
{
char *machine ; /* Machine name. */
char *community ; /* Community it belongs to. */
struct machinfo *next ; /* Pointer to next record. */
} ;
struct comminfo /* Community alias/username records. */
{
char *community ; /* Community name. */
struct peopinfo *people ; /* Chain of alias/usernames. */
struct comminfo *next ; /* Pointer to next record. */
} ;
struct peopinfo /* Username/alias record. */
{
char *alias ; /* Alias for this user. */
char *username ; /* Real username. */
struct peopinfo *next ; /* Pointer to next record. */
} ;
struct psinfo /* News.ps animation records. */
{
char *name ; /* Full pathname of news.ps file. */
int row ; /* Row number where animation will occur. */
int column ; /* Column number where animation will occur. */
struct psinfo *next ; /* Pointer to next record. */
} ;
struct recinfo /* Mail/print information record. */
{
char *community ; /* Community name for this person. */
char *iconname ; /* Name of iconfile for this person. */
char *username ; /* User name for this person. */
int total ; /* Total number of messages/print jobs. */
int size ; /* Total size in bytes of print job. */
char ts[6] ; /* Latest timestamp for this user. */
struct recinfo *next ; /* Pointer to next record. */
} ;
Funky_Stuff
len=`wc -c < faces.h`
if [ $len != 4482 ] ; then
echo error: faces.h was $len bytes long, should have been 4482
fi
fi # end of overwriting check
if [ -f patchlevel.h ]
then
echo shar: will not over-write existing file patchlevel.h
else
echo shar: extracting 'patchlevel.h', 560 characters
cat > patchlevel.h <<'Funky_Stuff'
/* @(#)patchlevel.h 1.1 88/12/04
*
* This is the current patch level for this version of faces.
*
* Copyright (c) Rich Burridge.
* Sun Microsystems, Australia - All rights reserved.
*
* Permission is given to distribute these sources, as long as the
* copyright messages are not removed, and no monies are exchanged.
*
* No responsibility is taken for any errors or inaccuracies inherent
* either to the comments or the code of this program, but if
* reported to me then an attempt will be made to fix them.
*/
#define PATCHLEVEL 0
Funky_Stuff
len=`wc -c < patchlevel.h`
if [ $len != 560 ] ; then
echo error: patchlevel.h was $len bytes long, should have been 560
fi
fi # end of overwriting check
if [ -f noface.icon ]
then
echo shar: will not over-write existing file noface.icon
else
echo shar: extracting 'noface.icon', 1933 characters
cat > noface.icon <<'Funky_Stuff'
/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16
*/
0x0000,0x1FA0,0x0000,0x0000,0x0000,0x7FFC,0x0000,0x0000,
0x0000,0xFEFF,0x0000,0x0000,0x0001,0xBFBF,0xC000,0x0000,
0x0001,0xEFFA,0xE000,0x0000,0x0002,0x00FF,0xF800,0x0000,
0x0002,0x007F,0xFF80,0x0000,0x0000,0x001F,0x7E00,0x0000,
0x000C,0x001F,0xFFC0,0x0000,0x0000,0x0015,0xFFC0,0x0000,
0x0030,0x001F,0xFFF0,0x0000,0x0070,0x000F,0xFEB0,0x0000,
0x00C0,0x0007,0xFFF8,0x0000,0x00E0,0x0007,0xFFE8,0x0000,
0x01E0,0x0003,0xFFF8,0x0000,0x03C0,0x0001,0xFFF8,0x0000,
0x03E0,0x0001,0xFFF8,0x0000,0x07C0,0x0000,0xFFF0,0x0000,
0x0FF8,0x0000,0xBFF8,0x0000,0x0FE0,0x0000,0xFFF8,0x0000,
0x1FF0,0x0000,0x7FF8,0x0000,0x1FF0,0x0000,0xFFF8,0x0000,
0x1FF0,0x0000,0xFFF8,0x0000,0x1FD0,0x0000,0xFFF0,0x0000,
0x0FE0,0x0001,0xFFF0,0x0000,0x1FA0,0x0000,0x3FF0,0x0000,
0x0320,0x0000,0x1FE0,0x0000,0x0B80,0x0000,0x1F80,0x0000,
0x0180,0x0000,0x1780,0x0000,0x0080,0x0000,0x1F00,0x0000,
0x0000,0x0000,0x1F00,0x0000,0x0180,0x0000,0x0E00,0x0000,
0x0380,0x0000,0x1E00,0x0000,0x0180,0x0000,0x0FC0,0x0000,
0x0080,0x0000,0x1F80,0x0000,0x01C0,0x0000,0x0F80,0x0000,
0x00C0,0x0000,0x7F80,0x0000,0x0040,0x0000,0x7F00,0x0000,
0x0060,0x0000,0xCE00,0x0000,0x0004,0x0001,0x6000,0x0000,
0x0000,0x0003,0xF800,0x0000,0x0002,0x0001,0xA000,0x0000,
0x0000,0x0007,0xC000,0x0000,0x0002,0x000F,0x4000,0x0000,
0x0000,0x804B,0xC000,0x0000,0x0002,0xBBFE,0x8000,0x0000,
0x0000,0x8FFB,0xC000,0x0000,0x0001,0x7ABF,0xC000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
Funky_Stuff
len=`wc -c < noface.icon`
if [ $len != 1933 ] ; then
echo error: noface.icon was $len bytes long, should have been 1933
fi
fi # end of overwriting check
if [ -f nomail.icon ]
then
echo shar: will not over-write existing file nomail.icon
else
echo shar: extracting 'nomail.icon', 1933 characters
cat > nomail.icon <<'Funky_Stuff'
/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16
*/
0x0001,0xFFFF,0xFFC0,0x0000,0x0002,0xB000,0x0030,0x0000,
0x0003,0x5800,0x0008,0x0000,0x0006,0xADFF,0xFFC8,0x0000,
0x0005,0x54FF,0xFFE4,0x0000,0x000A,0xAAFF,0xFFF2,0x0000,
0x000D,0x567F,0xFFF2,0x0000,0x000A,0xAA7F,0xFFFA,0x0000,
0x000D,0x557F,0xFFF9,0x0000,0x000A,0xAB7F,0xFFF9,0x0000,
0x000D,0x557F,0xFFF9,0x0000,0x000A,0xAB3F,0xFFF1,0x0000,
0x000D,0x5500,0x0001,0x0000,0x000A,0xAB00,0x0001,0x0000,
0x000D,0x5500,0xFE01,0x0000,0x000A,0xAB03,0xFF81,0x0000,
0x000D,0x5507,0xFFC1,0x0000,0x000A,0xAB0F,0xFFE1,0x0000,
0x000D,0x551F,0xFFF1,0x0000,0x000A,0xAB1F,0xFFF1,0x0000,
0x000D,0x553F,0xFFF9,0x0000,0x000A,0xAB3F,0xFFF9,0x0000,
0x000D,0x553F,0xFFF9,0x0000,0x000A,0xAB3F,0xFFF9,0x0000,
0x0FFD,0x553F,0xFFF9,0x0000,0x3FFA,0xAB3F,0xFFF9,0x0000,
0x7FFD,0x553F,0xFFF9,0x0000,0xFFFA,0xAB3F,0xFFF9,0x0000,
0xFFFD,0x551F,0xFFF1,0x0000,0xFFFA,0xAB1F,0xFFF1,0x0000,
0xFFFD,0x550F,0xFFE1,0x0000,0xFFFA,0xAB07,0xFFC1,0x0000,
0xFFFD,0xD503,0xFF81,0x0000,0xFFFB,0xEB00,0xFE01,0x0000,
0x3FFD,0xF500,0x0001,0x0000,0x3FFB,0xFB00,0x0001,0x0000,
0x0FFD,0xFD0F,0xFFE1,0x0000,0x0FFB,0xFB1F,0xFFD1,0x0000,
0x03FD,0xFD3F,0xF7C9,0x0000,0x00FF,0xFF7F,0xF8C5,0x0000,
0x003F,0xFD7F,0xFC45,0x0000,0x001F,0xFF7F,0xFE05,0x0000,
0x0007,0xF560,0x3F85,0x0000,0x0003,0xF760,0x0FE5,0x0000,
0x0000,0xFD40,0x01F5,0x0000,0x0000,0x3F40,0x00FD,0x0000,
0x0000,0x0760,0x003D,0x0000,0x0000,0x03E0,0x000F,0x0000,
0x0000,0x0000,0x0000,0x0000,0x00FF,0xFFFF,0xFFFF,0xFF80,
0x00FF,0xFFFF,0xFFFF,0xFF80,0x00BB,0xFFFF,0xFFFD,0xF180,
0x009B,0xFFFF,0xFFFF,0xFD80,0x009B,0x8FFC,0xBC71,0xFD80,
0x00AB,0x77FD,0x5BBD,0xFD80,0x00AB,0x77FD,0x5FBD,0xFD80,
0x00B3,0x77FD,0x5C3D,0xFD80,0x00B3,0x77FD,0x5BBD,0xFD80,
0x00BB,0x77FD,0x5BBD,0xFD80,0x00BB,0x8FFD,0x5C3D,0xFD80,
0x00FF,0xFFFF,0xFFFF,0xFF80,0x00FF,0xFFFF,0xFFFF,0xFF80,
0x00FF,0xFFFF,0xFFFF,0xFF80,0x0000,0x0000,0x0000,0x0000
Funky_Stuff
len=`wc -c < nomail.icon`
if [ $len != 1933 ] ; then
echo error: nomail.icon was $len bytes long, should have been 1933
fi
fi # end of overwriting check
if [ -f noprint.icon ]
then
echo shar: will not over-write existing file noprint.icon
else
echo shar: extracting 'noprint.icon', 1933 characters
cat > noprint.icon <<'Funky_Stuff'
/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16
*/
0x0000,0x0000,0x0000,0x0000,0x00FF,0xFFFF,0xFFFF,0xFFE0,
0x0080,0x0000,0x0000,0x0010,0x0080,0x0000,0x0000,0x0010,
0x0080,0x0000,0x0000,0x0010,0x0080,0x0000,0x0000,0x0010,
0x0080,0x0000,0x0000,0x0010,0x0080,0x0000,0x0000,0x0010,
0x0080,0x0000,0x0000,0x0010,0x0080,0x0000,0x0000,0x0010,
0x00FF,0xFFFF,0xFFFF,0xFFF0,0x0090,0x0400,0x0000,0x8010,
0x0091,0xE400,0x0000,0x8010,0x0092,0x1400,0x1FF8,0x8010,
0x0092,0x1400,0x1008,0x8010,0x0092,0x1400,0x1008,0x8010,
0x0093,0xF400,0x1FF8,0x8010,0x0092,0xD400,0x1008,0x8010,
0x0092,0x1400,0x1FF8,0x8010,0x0091,0xE400,0x0000,0x8020,
0x0090,0x0400,0x0000,0x8040,0x00FF,0xFFFF,0xFFFF,0xC080,
0x3FFF,0xFFFF,0xFFFF,0xE100,0x3880,0x0000,0x0000,0x7E00,
0x3880,0x0000,0x0000,0x1FFC,0x3880,0x0000,0x0000,0x1FFC,
0x3F80,0x0FEF,0xEFCF,0xE100,0x0080,0x0000,0x0000,0x01FC,
0x0080,0x0FEF,0xEFCF,0xE100,0x0F80,0x0000,0x0000,0x0100,
0x0880,0x0FEF,0xEFCF,0xE100,0x0F80,0x0000,0x0000,0x0100,
0x0080,0x0000,0x0000,0x0100,0x00FF,0xFFFF,0xFFFF,0xFF00,
0x0040,0x0000,0x0000,0x0200,0x0040,0x0000,0x0000,0x0200,
0x003F,0xFFFF,0xFFFF,0xFC00,0x001C,0x0000,0x0001,0xC000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x00FF,0xFFFF,0xFFFF,0xFF80,
0x00FF,0xFFFF,0xFFFF,0xFF80,0x00FF,0xFFFF,0xBFF7,0xFF80,
0x00FF,0xFFFF,0xFFF7,0xFF80,0x00A7,0x8FFE,0x3C74,0xF180,
0x009B,0x77FF,0xBBB3,0x6E80,0x00BB,0x77FF,0xBBB7,0x6F80,
0x00BB,0x77FF,0xBBB7,0x7180,0x00BB,0x77FF,0xBBB7,0x7E80,
0x00BB,0x77FF,0xBBB3,0x6E80,0x00BB,0x8FFF,0xBC74,0xF180,
0x00FF,0xFFFF,0xBFFF,0xFF80,0x00FF,0xFFFD,0xBFFF,0xFF80,
0x00FF,0xFFFE,0x7FFF,0xFF80,0x00FF,0xFFFF,0xFFFF,0xFF80
Funky_Stuff
len=`wc -c < noprint.icon`
if [ $len != 1933 ] ; then
echo error: noprint.icon was $len bytes long, should have been 1933
fi
fi # end of overwriting check
if [ -f nopaper.icon ]
then
echo shar: will not over-write existing file nopaper.icon
else
echo shar: extracting 'nopaper.icon', 1973 characters
cat > nopaper.icon <<'Funky_Stuff'
/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16
*/
0xC000,0x0000,0x0000,0x0003,0xE000,0x0000,0x0000,0x0007,
0x7000,0x0000,0x0000,0x000E,0x3800,0x0000,0x0000,0x001C,
0x1C00,0x0000,0x0000,0x0038,0x0E00,0x0000,0x0000,0x0070,
0x0700,0x0000,0x0000,0x00E0,0x0380,0x0000,0x0000,0x01C0,
0x01C0,0x0000,0x0000,0x0380,0x00E0,0x0000,0x0000,0x0700,
0x0070,0x0000,0x0000,0x0E00,0x0038,0x0000,0x0000,0x1C00,
0x001C,0x0000,0x0000,0x3800,0x000E,0x0000,0x0000,0x7000,
0x0007,0x0000,0x0000,0xE000,0x0003,0x8000,0x0001,0xC000,
0x0001,0xC000,0x0003,0x8000,0x0000,0xE000,0x0007,0x0000,
0x0000,0x7000,0x000E,0x0000,0x0000,0x7FFF,0xFFFF,0xC000,
0x0000,0xBC00,0x0038,0x2000,0x0001,0x1E00,0x0070,0x1000,
0x0002,0x0F00,0x00E0,0x0800,0x0004,0x0780,0x01C0,0x0400,
0x0004,0x05C0,0x0380,0x0400,0x0008,0x42E0,0x0700,0x0200,
0x0008,0xE270,0x0E00,0x0200,0x0009,0xF238,0x1C00,0x0200,
0x0009,0xF21C,0x3800,0x0200,0x0009,0xF20E,0x7000,0x0200,
0x0009,0xF207,0xE000,0x0200,0x0009,0xF203,0xC000,0x0200,
0x0008,0xE203,0xC000,0x0200,0x0008,0x4207,0xE000,0x0200,
0x0004,0x040E,0x7000,0x0400,0x0004,0x041C,0x3800,0x0400,
0x0006,0x0838,0x1C00,0x0800,0x0007,0x1070,0x0E00,0x1000,
0x0002,0xA0E0,0x0700,0x2000,0x0002,0x7FFF,0xFFFF,0xC000,
0x0002,0x0380,0x01C2,0x0000,0x0002,0x0700,0x00E1,0x0000,
0x0003,0x0E00,0x0071,0x0000,0x0001,0x1C00,0x0039,0x0000,
0x0001,0x3800,0x001C,0x8000,0x0000,0xF000,0x000E,0x8000,
0x0000,0xE000,0x0007,0x8000,0x0001,0xC000,0x0003,0x8000,
0x0003,0x8000,0x0001,0xC000,0x0007,0x8000,0x0000,0xE000,
0x000E,0x4030,0x0000,0x7000,0x001C,0x41FC,0x0000,0x7800,
0x0038,0x4F02,0x003C,0x5C00,0x0070,0x5401,0xC1C2,0x2E00,
0x00E0,0x6000,0x3F01,0xC700,0x01C0,0x0000,0x0000,0x0380,
0x0380,0x0000,0x0000,0x01C0,0x0700,0x0000,0x0000,0x00E0,
0x0E00,0x0000,0x0000,0x0070,0x1C00,0x0000,0x0000,0x0038,
0x3800,0x0000,0x0000,0x001C,0x7000,0x0000,0x0000,0x000E,
0xE000,0x0000,0x0000,0x0007,0xC000,0x0000,0x0000,0x0003
Funky_Stuff
len=`wc -c < nopaper.icon`
if [ $len != 1973 ] ; then
echo error: nopaper.icon was $len bytes long, should have been 1973
fi
fi # end of overwriting checkrichb@sunchat.UUCP (Rich Burridge) (12/12/88)
------CUT HERE------CUT HERE------
#! /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 to create the files:
# get.c
# main.c
# mon.c
# news.c
# rec.c
# sunview.c
# This archive created: Sun Dec 11 15:16:29 EST 1988
#
#
export PATH; PATH=/bin:$PATH
#
if [ -f get.c ]
then
echo shar: will not over-write existing file get.c
else
echo shar: extracting 'get.c', 10551 characters
cat > get.c <<'Funky_Stuff'
/*LINTLIBRARY*/
#ifndef lint
static char sccsid[] = "@(#)get.c 1.2 88/12/09" ;
#endif
/* Extraction routines used by faces.
*
* Copyright (c) Rich Burridge - Sun Microsystems Australia.
* All rights reserved.
*
* Permission is given to distribute these sources, as long as the
* copyright messages are not removed, and no monies are exchanged.
*
* No responsibility is taken for any errors on inaccuracies inherent
* either to the comments or the code of this program, but if reported
* to me, then an attempt will be made to fix them.
*/
#include "faces.h"
#include "extern.h"
#include "patchlevel.h"
get_blit_ikon(name, buf) /* Load blit ikon file. */
char *name ;
unsigned short buf[256] ;
{
FILE *fin ;
char *ptr ;
int i, j, temp ;
if ((fin = fopen(name, "r")) == NULL) return(-1) ;
for (i = 0; i < BLITHEIGHT; i++)
{
FGETS(nextline, MAXLINE, fin) ;
ptr = nextline ;
for (j = 0; j < 3; j++)
{
while (*ptr == ' ' || *ptr == '\t') ptr++ ;
SSCANF(ptr,"0x%X",&temp) ;
buf[i*4+j] = (short) temp ;
ptr = index(ptr,',') ;
ptr++ ;
}
buf[i*4+3] = 0 ;
}
for (i = BLITHEIGHT; i < ICONHEIGHT; i++)
for (j = 0; j < 4; j++) buf[i*4+j] = 0 ;
FCLOSE(fin) ;
return(0) ;
}
char *
get_field(ftype,line) /* Get field option from given line. */
enum field_type ftype ;
char *line ;
{
char *ptr1, *ptr2 ;
char str1[5],str2[MAXLINE],str3[4],str4[4],str5[3],str6[9],str7[5] ;
SSCANF(line,"%s %s %s %s %s %s %s",
str1,str2,str3,str4,str5,str6,str7) ;
switch ((int) ftype)
{
case HOSTNAME : if ((ptr2 = rindex(str2,'!')) != NULL)
{
ptr1 = str2 ;
*ptr2 = '\0' ;
while (ptr2 != ptr1)
{
*ptr2-- ;
if (*ptr2 == '!') return(ptr2+1) ;
}
return(ptr2) ;
}
else if ((ptr2 = index(str2,'@')) != NULL)
return(ptr2+1) ;
else return(NULL) ;
case TIMESTAMP : str6[5] = '\0' ;
return(str6) ;
case USERNAME : if ((ptr2 = rindex(str2,'!')) != NULL)
return(ptr2+1) ;
else if ((ptr2 = index(str2,'@')) != NULL)
{
ptr1 = str2 ;
*ptr2 = '\0' ;
while (ptr2 != ptr1)
{
*ptr2-- ;
if (*ptr2 == '@') return(ptr2+1) ;
}
return(ptr2) ;
}
else return(str2) ;
}
/*NOTREACHED*/
}
get_icon(dirname, buf) /* Read in ikon or .icon file. */
char *dirname ;
unsigned short buf[256] ;
{
/* Attempts to open the correct face file.
* If the face file is face.ps, then another record is added to the list
* of NeWS .ps files to animate at a later time.
* If this is 48x48x1 or sun.icon, and the open is successful, then the
* face image is read into buf.
* -1 is returned on failure.
*/
char *ptr ;
ptr = rindex(dirname,'/') ; /* Find last slash in iconname. */
if (EQUAL(ptr+1,"face.ps"))
if (get_news_icon(dirname) == 0) return NEWSTYPE ;
if (EQUAL(ptr+1,"sun.icon"))
if (get_sun_icon(dirname, buf) == 0) return SUNTYPE ;
if (EQUAL(ptr+1,"48x48x1"))
if (get_blit_ikon(dirname, buf) == 0) return BLITTYPE ;
return -1 ;
}
get_news_icon(name) /* Create record for news.ps file. */
char *name ;
{
FILE *fin ;
if (gtype != NEWS) return -1 ;
if ((fin = fopen(name, "r")) == NULL) return -1 ;
FCLOSE(fin) ;
add_ps_rec(row, column, name) ;
return 0 ;
}
get_options(argc,argv) /* Read and process command line options. */
int argc ;
char *argv[] ;
{
char next[MAXLINE] ; /* The next command line parameter. */
INC ;
while (argc > 0)
{
if (argv[0][0] == '-')
switch (argv[0][1])
{
case 'P' : mtype = MONPRINTER ; /* Monitor printer queue. */
INC ;
getparam(printer, argv, "-P needs printer name") ;
break ;
case 'a' : mtype = MONALL ; /* Monitor all of the spoolfile. */
break ;
case 'b' : INC ; /* Alternate background pattern. */
getparam(bgicon, argv, "-b needs background icon") ;
break ;
case 'f' : INC ; /* New directory for face icons. */
getparam(facedir, argv, "-f needs face directory") ;
SPRINTF(machfile, "%s/machine.tab", facedir) ;
SPRINTF(peopfile, "%s/people.tab", facedir) ;
break ;
case 'i' : invert = 1 ; /* Reverse video. */
break ;
case 'n' : dontshowno = 1 ; /* Don't show number of messages. */
break ;
case 'p' : INC ; /* No. of seconds between checks. */
getparam(next, argv, "-p needs period time") ;
period = atoi(next) ; /* No. of seconds between checks. */
break ;
case 's' : INC ; /* Alternative spoolfile. */
getparam(spoolfile, argv, "-s needs spool directory") ;
break ;
case 't' : dontshowtime = 1 ; /* Do not show timestamps. */
break ;
case 'u' : dontshowuser = 1 ; /* Do not show usernames. */
break ;
case 'v' : FPRINTF(stderr, "%s version 1.3.%1d\n", progname, PATCHLEVEL) ;
exit(1) ;
/* SunView windowing arguments. -Wp, -WP and -Wi are used in the NeWS
* implementation to initially position the window and icon.
*/
case 'W' : switch (argv[0][2])
{
case 'H' : break ; /* -WH, no sub-args follow */
case 'i' : iconic = 1 ;
break ; /* -Wi, start as an icon. */
case 'g' : /* -Wg, set default color. */
case 'n' : break ; /* -Wn, no label at all */
case 'h' : /* -Wh, height */
case 'I' : /* -WI "icon filename" */
case 'l' : /* -Wl "some window label" */
case 'L' : /* -Wl "some icon label" */
case 't' : /* Font filename */
case 'T' : /* Icon font filename */
case 'w' : INC ; /* Width, in columns. */
break ;
case 'p' : INC ; /* -Wp xnum ynum */
getparam(next, argv,
"-Wp needs x coordinate") ;
wx = atoi(next) ;
ler-daemon
else
if [ ! -d mailer-daemon ]
then
echo shar: creating directory mailer-daemon
mkdir mailer-daemon
fi
echo shar: entering directory mailer-daemon
cd mailer-daemon
if [ -f 48x48x1 ]
then
echo shar: will not over-write existing file 48x48x1
else
echo shar: extracting '48x48x1', 1056 characters
cat > 48x48x1 <<'Funky_Stuff'
0x0001,0xFFFF,0xFFC0,
0x0002,0xB000,0x0030,
0x0003,0x5800,0x0008,
0x0006,0xADFF,0xFFC8,
0x0005,0x54FF,0xFFE4,
0x000A,0xAAF7,0xFDF2,
0x020D,0x5673,0xF9F2,
0x060A,0xAA61,0xF0FA,
0x0E0D,0x5568,0xE8F9,
0x1E0A,0xAB71,0xF1F9,
0x0E0D,0x557F,0xFFF9,
0x0A0A,0xAB3F,0xFFF1,
0x080D,0x5500,0x0001,
0x080A,0xAB00,0x0001,
0x080D,0x5500,0x9E01,
0x0DEA,0xAB03,0x9F81,
0x073D,0x5507,0x83C1,
0x001A,0xAB0F,0x81E1,
0x001D,0x551F,0x80F1,
0x000A,0xAB1F,0x80F1,
0x000D,0x553F,0x80F9,
0x000A,0xAB3F,0x80F9,
0x000D,0x553F,0x80F9,
0x000A,0xAB3F,0x80F9,
0x0FFD,0x553F,0x81F9,
0x3FFA,0xAB3F,0x83F9,
0x7FFD,0x553F,0x9FF9,
0xFFFA,0xAB3F,0x9FF9,
0xFFFD,0x551F,0x9FF1,
0xFFFA,0xAB1F,0x9FF1,
0xFFFD,0x550F,0x9FE1,
0xFFFA,0xAB07,0x9FC1,
0xFFFD,0xD503,0x9F81,
0x7FFB,0xEB00,0x9E01,
0x3FFD,0xF500,0x0001,
0x1FFB,0xFB00,0x0001,
0x0FFD,0xFD0F,0xFFE1,
0x07FB,0xFB1F,0xFFD1,
0x01FD,0xFD3F,0xF7C9,
0x00FF,0xFF7F,0xF8C5,
0x003F,0xFD7F,0xFC45,
0x001F,0xFF7F,0xFE05,
0x0007,0xF540,0x3F85,
0x0003,0xF740,0x0FC5,
0x0000,0xFD40,0x01F5,
0x0000,0x3F40,0x007D,
0x0000,0x0740,0x003D,
0x0000,0x01C0,0x000F,
Funky_Stuff
len=`wc -c < 48x48x1`
if [ $len != 1056 ] ; then
echo error: 48x48x1 was $len bytes long, should have been 1056
fi
fi # end of overwriting check
cd ..
echo shar: done with directory mailer-daemon
fi
if [ -f net ]
then
echo shar: can not write a directory over file net
else
if [ ! -d net ]
then
echo shar: creating directory net
mkdir net
fi
echo shar: entering directory net
cd net
if [ -f 48x48x1 ]
then
echo shar: will not over-write existing file 48x48x1
else
echo shar: extracting '48x48x1', 1056 characters
cat > 48x48x1 <<'Funky_Stuff'
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0020,0x0000,0x0000,
0x0070,0x0100,0x0000,
0x00F8,0x0300,0x0000,
0x0020,0x7FFC,0x0000,
0x0010,0x8303,0xE200,
0x000F,0x0101,0x2600,
0x0009,0x0001,0x3F00,
0x0009,0x0001,0xE600,
0x000F,0x0002,0x0200,
0x0010,0x8014,0x0000,
0x00A0,0x5018,0x0000,
0x00C0,0x301C,0x0000,
0x00E0,0x7020,0x0000,
0x0000,0x0840,0x4000,
0x0000,0x05E0,0xC000,
0x0000,0x033F,0xFF00,
0x0000,0x1120,0xC000,
0x00E0,0x31E0,0x4000,
0x00C0,0xFF20,0x0000,
0x00A1,0x3010,0x0000,
0x001E,0x100E,0x0000,
0x0012,0x000C,0x0700,
0x0012,0x000A,0x0300,
0x001E,0x0001,0x0500,
0x00A1,0x0000,0x8800,
0x00C0,0x8000,0x9000,
0x00E0,0x4101,0xE000,
0x0000,0x2181,0x2000,
0x0000,0x1FFF,0x2000,
0x0000,0x0181,0xE000,
0x0000,0x0101,0x0000,
0x0000,0x0002,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
Funky_Stuff
len=`wc -c < 48x48x1`
if [ $len != 1056 ] ; then
echo error: 48x48x1 was $len bytes long, should have been 1056
fi
fi # end of overwriting check
cd ..
echo shar: done with directory net
fi
if [ -f root ]
then
echo shar: can not write a directory over file root
else
if [ ! -d root ]
then
echo shar: creating directory root
mkdir root
fi
echo shar: entering directory root
cd root
if [ -f 48x48x1 ]
then
echo shar: will not over-write existing file 48x48x1
else
echo shar: extracting '48x48x1', 1056 characters
cat > 48x48x1 <<'Funky_Stuff'
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x1EE4,0x0000,
0x0000,0x1B04,0x0000,
0x0000,0x1F74,0x0000,
0x0000,0x1F64,0x0000,
0x0000,0x1FA4,0x0000,
0x0000,0x1704,0x0000,
0x0000,0x1FE4,0x0000,
0x0000,0x1EE4,0x0000,
0x0000,0x1FE4,0x0000,
0x0000,0x1FE4,0x0000,
0x0000,0x1EC4,0x0000,
0x0000,0x17F4,0x0000,
0x0000,0x37F6,0x0000,
0x0000,0x3FEB,0x0000,
0x0000,0xFF7F,0x0000,
0x0000,0xFF7F,0xE000,
0x0001,0xFFE7,0xF000,
0x000F,0xE7F1,0x9800,
0x001F,0x0631,0xC800,
0x0036,0x0C30,0x6400,
0x0024,0x1830,0x6600,
0x0064,0x3C10,0x2200,
0x0064,0x3410,0x2200,
0x004C,0x2438,0x7200,
0x004E,0x242C,0xDA00,
0x004A,0x6424,0x8A00,
0x0012,0x4426,0x8800,
0x0012,0x4460,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
Funky_Stuff
len=`wc -c < 48x48x1`
if [ $len != 1056 ] ; then
echo error: 48x48x1 was $len bytes long, should have been 1056
fi
fi # end of overwriting check
cd ..
echo shar: done with directory root
fi
if [ -f sys ]
then
echo shar: can not write a directory over file sys
else
if [ ! -d sys ]
then
echo shar: creating directory sys
mkdir sys
fi
echo shar: entering directory sys
cd sys
if [ -f 48x48x1 ]
then
echo shar: will not over-write existing file 48x48x1
else
echo shar: extracting '48x48x1', 1056 characters
cat > 48x48x1 <<'Funky_Stuff'
0x0000,0x0200,0x0000,
0x0000,0x0004,0x0000,
0x0000,0x080A,0x0000,
0x0000,0x008A,0x2000,
0x0000,0x016A,0xD000,
0x0002,0x0091,0x2000,
0x0000,0x0080,0x2000,
0x0020,0x004E,0x4000,
0x0000,0x439F,0x3800,
0x0000,0xA41F,0x0400,
0x0088,0xA39F,0x3800,
0x0016,0xAD4E,0x4000,
0x0009,0x1280,0x2000,
0x0008,0x0291,0x2000,
0x0004,0xE56A,0xD100,
0x0039,0xF38A,0x2000,
0x0241,0xF04A,0x0000,
0x0039,0xF384,0x0400,
0x0004,0xE400,0x0000,
0x0008,0x0200,0x2000,
0x0009,0x1240,0x0000,
0x0016,0xADA0,0x0000,
0x0008,0xAAA2,0x0000,
0x0000,0xB6AD,0x0000,
0x0000,0x4912,0x1000,
0x0000,0x0802,0x0000,
0x0020,0x04E4,0x0000,
0x0200,0x39F3,0x8800,
0x0008,0x41F0,0x4000,
0x0814,0x39F3,0x8000,
0x0114,0x44E4,0x0000,
0x12D5,0xA802,0x0800,
0x0122,0x4912,0x0000,
0x0100,0x56AD,0x0000,
0x209C,0x88A2,0x0000,
0x073E,0x70A0,0x2000,
0x083E,0x0840,0x0000,
0x073E,0x7000,0x0000,
0x009C,0x8000,0x0000,
0x0100,0x4000,0x0000,
0x0122,0x4200,0x0000,
0x02D5,0xA000,0x0000,
0x0114,0x4000,0x0000,
0x0014,0x0800,0x0000,
0x0008,0x0000,0x0000,
0x0000,0x4000,0x0000,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,
Funky_Stuff
len=`wc -c < 48x48x1`
if [ $len != 1056 ] ; then
echo error: 48x48x1 was $len bytes long, should have been 1056
fi
fi # end of overwriting check
cd ..
echo shar: done with directory sys
fi
if [ -f unknown ]
then
echo shar: can not write a directory over file unknown
else
if [ ! -d unknown ]
then
echo shar: creating directory unknown
mkdir unknown
fi
echo shar: entering directory unknown
cd unknown
if [ -f 48x48x1 ]
then
echo shar: will not over-write existing file 48x48x1
else
echo shar: extracting '48x48x1', 1056 characters
cat > 48x48x1 <<'Funky_Stuff'
0x0000,0x01FF,0xC000,
0x7C00,0x1FFF,0xE000,
0x8200,0xFFFF,0xE000,
0x8207,0xFFFF,0xF000,
0x620F,0xFFFF,0xFF80,
0x040F,0xFFFF,0xFFE0,
0x080F,0xFFFF,0xFFF0,
0x100F,0xFFFF,0xF7F0,
0x2007,0xFFFF,0xF7F0,
0x0007,0xFFFF,0x8FE0,
0x2007,0xFFFE,0x7F80,
0x2007,0xFFF9,0xFE00,
0x000D,0xFFE7,0xFE00,
0x103E,0x7F9F,0xFE00,
0x007F,0x807F,0xFE00,
0x20FF,0xFFFF,0xFE00,
0x81FF,0xFFFF,0xFE00,
0x01FF,0xFFFB,0x8E00,
0x81FF,0xFFE1,0xF600,
0x21FF,0xFFE7,0xF600,
0x09FF,0xFFFF,0x0600,
0x00FF,0xFFFC,0x7F80,
0x0877,0xF7F0,0x3FC0,
0x2007,0xF7E0,0x1FC0,
0x0003,0xE7E0,0x7FC0,
0x4001,0xC3C3,0xFFC0,
0x1000,0x800F,0xFF80,
0x0407,0x803F,0xFF80,
0x0007,0x83FF,0xFF80,
0x00BF,0xFBFF,0xFF80,
0x00A0,0x1FFF,0xFF80,
0x00BF,0xFFFF,0xFF80,
0x0001,0xFFFF,0xFF80,
0x0001,0xF7FF,0xF180,
0x001F,0xFFFF,0xCFC0,
0x007E,0xFFFC,0x3FE0,
0x01FF,0x3FC3,0xFFF8,
0x07FF,0xDF3F,0xFFFE,
0x0FFF,0xF0FF,0xFFFF,
0x1FFF,0xCFFF,0xFFFF,
0x3FFF,0xDFFF,0xFFFF,
0x3FFF,0xD9FF,0xFFFF,
0x7FFF,0xD9FF,0xFFFF,
0x7FFF,0xDFFF,0xFFFF,
0xFFFF,0xBFC0,0x07FF,
0xFFFF,0xBFDF,0xF7FF,
0xFFFF,0xBFDF,0xF7FF,
0xFFFF,0xBFDF,0xF7FF,
Funky_Stuff
len=`wc -c < 48x48x1`
if [ $len != 1056 ] ; then
echo error: 48x48x1 was $len bytes long, should have been 1056
fi
fi # end of overwriting check
cd ..
echo shar: done with directory unknown
fi
if [ -f uucp ]
then
echo shar: can not write a directory over file uucp
else
if [ ! -d uucp ]
then
echo shar: creating directory uucp
mkdir uucp
fi
echo shar: entering directory uucp
cd uucp
if [ -f 48x48x1 ]
then
echo shar: will not over-write existing file 48x48x1
else
echo shar: extracting '48x48x1', 1056 characters
cat > 48x48x1 <<'Funky_Stuff'
0x0000,0x0000,0x0000,
0x0000,0x0000,0x3FE0,
0x0000,0x0000,0xE000,
0x0000,0x0001,0x8000,
0x0000,0x0003,0x0000,
0x0200,0x0007,0xE000,
0x0008,0x001E,0x1800,
0x1000,0x0074,0x0800,
0x0040,0x00C4,0x0800,
0x0001,0x0184,0x0800,
0x4200,0x0106,0x1800,
0x0010,0x0201,0xE000,
0x0000,0x0000,0x0000,
0x4000,0x0000,0x0000,
0x0400,0x0000,0x0000,
0x0020,0x3F00,0x0000,
0x4400,0xF5C0,0x0000,
0x0023,0xAAF0,0x0000,
0x020F,0x5558,0x0000,
0x003A,0xAAAE,0x0000,
0x20F5,0x5557,0x8000,
0x03AA,0xAAAA,0xC000,
0x0F55,0x5555,0x7000,
0x3EAA,0xA0AA,0xBC00,
0x7755,0x1F15,0x5600,
0xEBAA,0x71CA,0xAB80,
0xD5D1,0xC071,0x55E0,
0xAAE7,0x001C,0xABB0,
0xD57C,0x0007,0x177C,
0x6070,0x0011,0xCEEE,
0x3FC0,0x0020,0x7DD7,
0x0000,0x1140,0x1DAB,
0x0000,0x0001,0x0795,
0x0000,0x0000,0x01C3,
0x0000,0x0004,0x007E,
0x0001,0x0020,0x0800,
0x0000,0x1100,0x0020,
0x0000,0x0000,0x1000,
0x0000,0x0000,0x4040,
0x0010,0x0000,0x0080,
0x0000,0x2004,0x0100,
0x0000,0x0110,0x0200,
0x0000,0x0000,0x0000,
0x0000,0x0000,0x2000,
0x0020,0x0002,0x0000,
0x0000,0x0020,0x0000,
0x0001,0x0400,0x0000,
0x0000,0x0000,0x0000,
Funky_Stuff
len=`wc -c < 48x48x1`
if [ $len != 1056 ] ; then
echo error: 48x48x1 was $len bytes long, should have been 1056
fi
fi # end of overwriting check
cd ..
echo shar: done with directory uucp
fi
cd ..
echo shar: done with directory misc.
fi
if [ -f people.tab ]
then
echo shar: will not over-write existing file people.tab
else
echo shar: extracting 'people.tab', 1663 characters
cat > people.tab <<'Funky_Stuff'
sunaus/rallen=bob
sunaus/ballen=bob
sunaus/bbaker=bruceb
sunaus/mbosch=mike
sunaus/eddy=eddie
sunaus/eevans=eddie
sunaus/ggrell=grell
sunaus/gene=grell
sunaus/jingall=johni
sunaus/ijeffery=ian
sunaus/glynne=gjl
sunaus/tmcentee=tim
sunaus/jnoonan=johnn
sunaus/apappas=arie
sunaus/jennie=jenny
sunaus/jrendell=jenny
sunaus/gsearle=gjs
sunaus/gsitters=greg
sunaus/bscott=brad
sunaus/rstewart=ruth
sunaus/jteasdale=jim
sunaus/loraine=lori
sunaus/lorraine=lori
sunaus/lunicomb=lori
sunaus/pvrbancich=paula
sunaus/swoodhead=simon
sunaus/jy=yo
sunaus/jyoung=yo
sunaus/rboden=richard
sunaus/rbodin=richard
sunaus/rburridge=richb
sunaus/rich=richb
sunaus/mcunningham=mary
sunaus/sduchesne=sue
sunaus/mfredericks=max
sunaus/mfredricks=max
sunaus/bgeneralis=bill
sunaus/shulbert=susanh
sunaus/susan=susanh
sunaus/gmason=gregm
sunaus/vmickan=val
sunaus/trogge=tony
sunaus/andy=aspiers
sunaus/bwiggins=bruce
sunaus/ryeap=ron
sunaus/cbreen=colinb
sunaus/rdesalis=roger
sunaus/mfort=markf
sunaus/mark=markg
sunaus/mgurvis=markg
sunaus/mnegri=manuel
sunaus/npettitt=noel
sunaus/jraine=john
sunaus/paul=paulr
sunaus/prosham=paulr
sunaus/gsweigert=geo
sunaus/rbowman=robb
sunaus/bbowman=robb
sunaus/krees=kim
sunaus/mikes=mslee
sunaus/gshepherd=george
sunaus/aweller=andrew
sunaus/kbeavan=kevin
sunaus/rbradford=rhonda
sunaus/ckeith=colin
sunaus/mmccann=mmc
sunaus/ksterry=kaylene
sunaus/rwilliams=rex
sunaus/gdonin=gary
sunaus/dshea=dennis
sunaus/doshea=dennis
sunaus/hprotoolis=harry
sunaus/rschrader=robert
sunaus/bschrader=robert
sunaus/bobs=robert
sunaus/jvermeulen=jeff
sunaus/MAILER-DAEMON=mailer-daemon
sunaus/Mailer-Daemon=mailer-daemon
sunaus/mailer-daemon=mailer-daemon
Funky_Stuff
len=`wc -c < people.tab`
if [ $len != 1663 ] ; then
echo error: people.tab was $len bytes long, should have been 1663
fi
fi # end of overwriting check
if [ -f sunaus ]
then
echo shar: can not write a directory over file sunaus
else
if [ ! -d sunaus ]
then
echo shar: creating directory sunaus
mkdir sunaus
fi
echo shar: entering directory sunaus
cd sunaus
if [ -f richb ]
then
echo shar: can not write a directory over file richb
else
if [ ! -d richb ]
then
echo shar: creating directory richb
mkdir richb
fi
echo shar: entering directory richb
cd richb
if [ -f face.ps ]
then
echo shar: will not over-write existing file face.ps
else
echo shar: extracting 'face.ps', 782 characters
cat > face.ps <<'Funky_Stuff'
/Icon findfont 1 scalefont setfont
.1 .25 .9 .75 rectpath 1 setgray fill
0 setgray
.1 .25 moveto (\056) show .002 sleep
1 setgray
.1 .25 moveto (\056) show
0 setgray
.1 .25 moveto (\057) show .002 sleep
1 setgray
.1 .25 moveto (\057) show
0 setgray
.1 .25 moveto (\060) show .002 sleep
1 setgray
.1 .25 moveto (\060) show
0 setgray
.1 .25 moveto (\061) show .002 sleep
1 setgray
.1 .25 moveto (\061) show
0 setgray
.1 .25 moveto (\062) show .002 sleep
1 setgray
.1 .25 moveto (\062) show
0 setgray
.1 .25 moveto (\061) show .002 sleep
1 setgray
.1 .25 moveto (\061) show
0 setgray
.1 .25 moveto (\060) show .002 sleep
1 setgray
.1 .25 moveto (\060) show
0 setgray
.1 .25 moveto (\057) show .002 sleep
1 setgray
.1 .25 moveto (\057) show
0 setgray
.1 .25 moveto (\056) show
Funky_Stuff
len=`wc -c < face.ps`
if [ $len != 782 ] ; then
echo error: face.ps was $len bytes long, should have been 782
fi
fi # end of overwriting check
cd ..
echo shar: done with directory richb
fi
cd ..
echo shar: done with directory sunaus
fi
cd ..
echo shar: done with directory facedir
fi
if (EQUAL(nextline, "set"))
{
ptr = index(nextline, ' ') ;
if (EQUAL(ptr+1, "flash"))
{
ptr = index(nextline, '=') ;
SSCANF(ptr+1, "%d", &flashes) ;
}
else if (EQUAL(ptr+1, "bell"))
{
ptr = index(nextline, '=') ;
SSCANF(ptr+1, "%d", &beeps) ;
}
}
}
FCLOSE(fd) ;
}
Funky_Stuff
len=`wc -c < main.c`
if [ $len != 10551 ] ; then
echo error: main.c was $len bytes long, should have been 10551
fi
fi # end of overwriting check
if [ -f mon.c ]
then
echo shar: will not over-write existing file mon.c
else
echo shar: extracting 'mon.c', 8937 characters
cat > mon.c <<'Funky_Stuff'
/*LINTLIBRARY*/
#ifndef lint
static char sccsid[] = "@(#)mon.c 1.4 88/12/11" ;
#endif
/* Monitoring routines used by the faces program.
*
* Copyright (c) Rich Burridge - Sun Microsystems Australia.
* All rights reserved.
*
* Permission is given to distribute these sources, as long as the
* copyright messages are not removed, and no monies are exchanged.
*
* No responsibility is taken for any errors on inaccuracies inherent
* either to the comments or the code of this program, but if reported
* to me, then an attempt will be made to fix them.
*/
#include "faces.h"
#include "extern.h"
adjust() /* Adjust the row and column position. */
{
struct psinfo *this ;
if (mtype != MONNEW)
{
if (++column == NO_PER_ROW)
{
column = 0 ;
row++ ;
}
return ;
}
if (psrecs != NULL) /* Adjust animation positions for MONNEW */
{
this = psrecs ; /* Point to beginning of chain. */
while (this != NULL)
{
this->column++ ; /* Adjust column position. */
if (facetype == NEWSTYPE && this->next == NULL)
this->column-- ; /* Reset for brand new animate record. */
this = this->next ;
}
}
}
do_check() /* Perform another check of the appropriate type. */
{
switch ((int) mtype)
{
case MONALL : do_mail(MONALL) ; /* Monitor all of the mail file. */
break ;
case MONNEW : do_mail(MONNEW) ; /* Monitor new mail only. */
break ;
case MONPRINTER : do_printer() ; /* Monitor the print queue. */
break ;
}
firsttime = 0 ;
}
do_mail(mtype) /* Monitor a mail file for new or all mail. */
enum mon_type mtype ;
{
char host[MAXLINE] ; /* Pointer to host name from the "From" line. */
char *ptr ; /* Pointer to extract field. */
char realname[MAXLINE] ; /* Real username for this user. */
char ts[MAXLINE] ; /* Pointer to time stamp from the "From" line. */
char user[MAXLINE] ; /* Pointer to user name from the "From" line. */
FILE *fp ; /* File descriptor for users mail spool file. */
struct recinfo *crec ; /* Pointer to current mail record for updating. */
column = row = 0 ; /* Start in top left corner of pixrect. */
newmail = 0 ; /* Assume no new mail. */
noicons = 0 ;
if (mtype == MONNEW) make_pixrect(NO_PER_ROW) ;
if (stat(spoolfile,&buf) == -1)
{
lastsize = 0 ;
if (mtype == MONNEW) show_display() ; /* Show new mail. */
else make_display() ; /* Output icons and tidyup chain of records. */
return ;
}
if (buf.st_size > lastsize) newmail = 1 ; /* New mail found. */
if (mtype == MONNEW)
if (buf.st_size <= lastsize) /* Is the size of mail folder bigger? */
{
lastsize = buf.st_size ; /* No: save new size and exit. */
show_display() ;
return ;
}
if ((fp = fopen(spoolfile,"r")) == NULL) /* Open spoolfile. */
{
if (mtype == MONNEW) show_display() ; /* Show new mail. */
else make_display() ; /* Output icons and tidyup chain of records. */
return ;
}
if (mtype == MONNEW) FSEEK(fp, lastsize, 0) ;
lastsize = buf.st_size ;
while (fgets(nextline,MAXLINE,fp) != NULL)
if (EQUAL(nextline,"From "))
{
host[0] = user[0] = ts[0] = '\0' ;
if ((ptr = get_field(HOSTNAME,nextline)) != NULL)
STRCPY(host, ptr) ;
if ((ptr = get_field(USERNAME,nextline)) != NULL)
STRCPY(user, ptr) ;
if ((ptr = get_field(TIMESTAMP,nextline)) != NULL)
STRCPY(ts, ptr) ;
h_to_c(host, community) ; /* Turn hostname into community name. */
a_to_u(community, user, realname) ;
make_iconname(community, realname) ;
if (mtype == MONNEW)
{
add_face(BOTH, ORDINARY, iconname) ;
if (!dontshowtime) text(ICON, LEFT, ts) ;
if (!dontshowuser) text(WINDOW, LEFT, realname) ;
adjust() ;
}
else
{
if ((crec = rec_exists(community, realname)) != NULL)
{
STRCPY(crec->ts, ts) ;
if (!crec->total) noicons++ ;
crec->total++ ;
}
else add_record(community, realname, ts, 0) ;
}
}
FCLOSE(fp) ;
if (mtype == MONNEW) show_display() ; /* Show new mail. */
else make_display() ; /* Output icons and tidyup chain of records. */
}
do_printer() /* Monitor printer queue. */
{
struct recinfo *this, *next ;
FILE *fp ; /* File descriptor for users mail spool file. */
char command[MAXLINE] ; /* Lpq system call for this printer. */
char owner[MAXLINE] ; /* Owner of job in the print queue. */
char tempname[MAXLINE] ; /* Temporary unique filename. */
int size ; /* Size of this print job in bytes. */
noicons = 0 ;
SPRINTF(tempname,"/tmp/faces%04d",getpid()) ;
SPRINTF(command,"lpq -P %s > %s",printer,tempname) ;
if (system(command))
{
FPRINTF(stderr,"%s: system call for printer %s stats failed.\n",
progname,printer) ;
return ;
}
if ((fp = fopen(tempname,"r")) == NULL) /* Open spoolfile. */
{
FPRINTF(stderr,"%s: couldn't open printer stats in %s.\n",
progname,tempname) ;
return ;
}
column = row = 0 ; /* Start in top left corner of pixrect. */
FGETS(nextline,MAXLINE,fp) ;
if (EQUAL(nextline,"no entries"))
{
make_pixrect(1) ; /* Just the "no print" icon. */
add_face(BOTH, NOPRINT, "") ; /* Set to "no print" icon. */
}
else if (EQUAL(nextline,"Printer Error: may need attention!"))
{
make_pixrect(1) ; /* Just the "no paper" icon. */
add_face(BOTH, NOPAPER, "") ; /* Set to "no paper" icon. */
text(BOTH, LEFT, printer) ; /* Output printer name. */
}
else
{
FGETS(nextline,MAXLINE,fp) ; /* Skip the next line. */
while (fgets(nextline,MAXLINE,fp) != NULL)
{
SSCANF(&nextline[7], "%s", owner) ;
SSCANF(&nextline[60], "%d", &size) ;
h_to_c("", community) ;
make_iconname(community, owner) ;
add_record("",owner,"",size) ;
}
make_pixrect(noicons) ;
this = recs ;
while (this != NULL)
{
next = this->next ;
add_face(WINDOW, ORDINARY, this->iconname) ;
SPRINTF(nextline, "%1d", this->size) ;
if (!dontshowuser)
text(WINDOW, LEFT, this->username) ; /* Owner. */
text(WINDOW, RIGHT, nextline) ; /* Size. */
if (this == recs)
{
add_face(ICON, ORDINARY, this->iconname) ;
SPRINTF(nextline, "%1d %s", noicons, (noicons == 1 ? "job" : "jobs")) ;
text(ICON, RIGHT, nextline) ; /* Number of jobs. */
}
adjust() ; /* Adjust column and row. */
remove_record(this) ;
this = next ;
}
recs = last = NULL ;
}
FCLOSE(fp) ;
UNLINK(tempname) ;
show_display() ;
}
make_pixrect(count) /* Make window pixrect the correct size. */
int count ;
{
int c, r ; /* Size in columns and rows of window display. */
r = ((count-1) / NO_PER_ROW) + 1 ; /* Number of rows of faces. */
c = NO_PER_ROW ; /* Full width display. */
if (count <= 10)
{
r = 1 ; /* One row. */
c = count ; /* Of 'count' columns. */
}
height = r * ICONHEIGHT ; /* Height of the icon display. */
width = c * ICONWIDTH ; /* Width of the icon display. */
create_pixrects(width, height) ;
}
make_display() /* Output icons and tidyup chain of records. */
{
int count ; /* Name of faces in icon display. */
struct recinfo *this, *next ;
count = noicons ; /* Number of faces to display. */
if (!count) count = 1 ; /* Always one "no mail" icon. */
make_pixrect(count) ;
if (!noicons) add_face(BOTH, NOMAIL, "") ;
else
{
this = recs ;
while (this != NULL)
{
next = this->next ;
add_face(BOTH, ORDINARY, this->iconname) ;
if (!dontshowno)
{
SPRINTF(nextline, "%1d", this->total) ;
text(ICON, RIGHT, nextline) ;
}
if (!dontshowtime) text(ICON, LEFT, this->ts) ;
if (!dontshowuser) text(WINDOW, LEFT, this->username) ;
adjust() ;
remove_record(this) ;
this = next ;
}
recs = last = NULL ;
}
show_display() ; /* Display the latest set of faces. */
}
Funky_Stuff
len=`wc -c < mon.c`
if [ $len != 8937 ] ; then
echo error: mon.c was $len bytes long, should have been 8937
fi
fi # end of overwriting check
if [ -f news.c ]
then
echo shar: will not over-write existing file news.c
else
echo shar: extracting 'news.c', 10648 characters
cat > news.c <<'Funky_Stuff'
/*LINTLIBRARY*/
#ifndef lint
static char sccsid[] = "@(#)news.c 1.3 88/12/11" ;
#endif
/* NeWS dependent graphics routines used by faces,
* the visual mail and print job monitor.
*
* Copyright (c) Rich Burridge - Sun Microsystems Australia.
* All rights reserved.
*
* Permission is given to distribute these sources, as long as the
* copyright messages are not removed, and no monies are exchanged.
*
* No responsibility is taken for any errors on inaccuracies inherent
* either to the comments or the code of this program, but if reported
* to me, then an attempt will be made to fix them.
*/
#include "faces.h"
#include "extern.h"
#include <sundev/kbd.h>
#include <sundev/kbio.h>
#ifdef SUNOS3.x
int fullmask ; /* Full mask of file descriptors to check on. */
int readmask ; /* Readmask used in select call. */
#else
fd_set fullmask ; /* Full mask of file descriptors to check on. */
fd_set readmask ; /* Readmask used in select call. */
#endif SUNOS3.x
int kbdfd ; /* File descriptor for the keyboard. */
int psfd ; /* NeWS connection file descriptor. */
unsigned short ibuf[256] ; /* Ikon/icon image buffer. */
extern FILE *PostScript ;
extern FILE *PostScriptInput ;
add_face(display, itype, name) /* Add this icon to the display. */
enum disp_type display ;
enum icon_type itype ;
char *name ;
{
char face[MAXLINE] ; /* Canvas containing face (Source). */
switch ((int) itype)
{
case NOMAIL : STRCPY(face, "NomailIcon") ;
break ;
case NOPAPER : STRCPY(face, "NopaperIcon") ;
break ;
case NOPRINT : STRCPY(face, "NoprintIcon") ;
break ;
case ORDINARY : if ((facetype = get_icon(name, ibuf)) != -1)
switch (facetype)
{
case BLITTYPE :
case SUNTYPE : load_icon("Curface") ;
STRCPY(face, "CurfaceIcon") ;
case NEWSTYPE : break ;
}
else STRCPY(face, "NofaceIcon") ;
break ;
}
if (display == ICON)
if (mtype == MONPRINTER) adjust_image("MPR", face, 0, 0) ;
else adjust_image("MPR", face, row, column) ;
else if (display == WINDOW) adjust_image("PR", face, row, column) ;
else
{
adjust_image("MPR", face, row, column) ;
adjust_image("PR", face, row, column) ;
}
FFLUSH(PostScript) ;
}
adjust_image(dest, face, row, column)
char *dest, *face ;
int row, column ;
{
switch ((int) mtype)
{
case MONNEW : FPRINTF(PostScript, "%d 0 %d %d %s ShiftImage\n",
ICONWIDTH, (NO_PER_ROW-1)*ICONWIDTH, ICONHEIGHT,
dest) ;
if (facetype == NEWSTYPE)
{
FPRINTF(PostScript, "%d %d %d %d %s ClearBox\n",
column*ICONWIDTH, row*ICONHEIGHT,
ICONWIDTH, ICONHEIGHT, dest) ;
return ;
}
case MONALL :
case MONPRINTER : FPRINTF(PostScript,"%s %d %d %d %d %s MoveImage\n",
face, ICONWIDTH, ICONHEIGHT,
column*ICONWIDTH, row*ICONHEIGHT, dest) ;
}
}
beep_flash(beeps, flashes) /* Perform visual feedback. */
int beeps, flashes ;
{
int i, x ;
if (beeps)
for (i = 0; i < beeps; i++)
{
x = KBD_CMD_BELL ;
IOCTL(kbdfd, KIOCCMD, &x) ;
usleep(250000) ;
x = KBD_CMD_NOBELL ;
IOCTL(kbdfd, KIOCCMD, &x) ;
usleep(250000) ;
}
}
create_pixrects(width, height) /* Create pixrects for the face images. */
{
int h, i, j, w ;
if (mtype == MONNEW && !firsttime) return ;
FPRINTF(PostScript,"%d %d PR DoPixrects\n", width, height) ;
h = height ;
w = width ;
if (mtype == MONPRINTER)
{
h = ICONHEIGHT ;
w = ICONWIDTH ;
}
FPRINTF(PostScript,"%d %d MPR DoPixrects\n", w, h) ;
if (strlen(bgicon))
{
for (i = 0; i < (height / 64); i++)
for (j = 0; j < (width / 64); j++)
{
FPRINTF(PostScript,"BackgroundIcon %d %d %d %d PR MoveImage\n",
ICONWIDTH, ICONHEIGHT, j, i) ;
FPRINTF(PostScript,"BackgroundIcon %d %d %d %d MPR MoveImage\n",
ICONWIDTH, ICONHEIGHT, j, i) ;
}
}
else FPRINTF(PostScript,"SetBackground\n") ;
}
do_news_ps(psrecs) /* Display chain of NeWS animations. */
struct psinfo *psrecs ;
{
struct psinfo *next, *this ;
this = psrecs ; /* Point to beginning of NeWS records. */
while (this != NULL)
{
next = this->next ;
if ((mtype != MONNEW) || (this->column < NO_PER_ROW))
{
FPRINTF(PostScript, "(%s) %d %d %d %d ExecFile\n",
this->name, ICONWIDTH, ICONHEIGHT,
this->column*ICONWIDTH, this->row*ICONHEIGHT) ;
FFLUSH(PostScript) ;
}
this = next ;
}
}
init_ws_type()
{
if (ps_open_PostScript() < 0) return -1 ;
if (send_ps_file(NEWSFILE) == -1)
{
FPRINTF(stderr,"%s: cannot open %s\n", progname, NEWSFILE) ;
FCLOSE(PostScript) ;
return(-1) ;
}
FFLUSH(PostScript) ;
if (ferror(PostScript))
{
FCLOSE(PostScript) ;
return(-1) ;
}
if (invert) FPRINTF(PostScript, "/Invert false def\n") ;
else FPRINTF(PostScript, "/Invert true def\n") ;
gtype = NEWS ;
return(0) ;
}
load_icon(name)
char *name ;
{
int i, j ;
FPRINTF(PostScript,"/%sIcon 64 64 1 { } { <\n", name) ;
for (i = 0; i < 32; i++)
{
for (j = 0; j < 8; j++) FPRINTF(PostScript,"%.4X ", ibuf[i*8+j]) ;
FPRINTF(PostScript,"\n") ;
}
FPRINTF(PostScript,"> } buildimage def\n") ;
}
/*ARGSUSED*/
make_frame(argc,argv)
int argc ;
char *argv[] ;
{
if ((kbdfd = open("/dev/kbd", 0)) == -1)
{
FPRINTF(stderr,"%s: can't open keyboard.\n", progname) ;
exit(1) ;
}
psfd = fileno(PostScriptInput) ;
#ifdef SUNOS3.x
fullmask = 1 << psfd ;
#else
FD_ZERO(&fullmask) ;
FD_SET(psfd, &fullmask) ;
#endif SUNOS3.x
if (strlen(bgicon))
if (get_sun_icon(bgicon, ibuf) == 0) load_icon("Background") ;
FPRINTF(PostScript,"%d %d %d %d %d %d %d MakeFrame\n",
wx, wy, NO_PER_ROW*ICONWIDTH+10, ICONHEIGHT*10+10,
ix, iy, iconic) ;
FPRINTF(PostScript,"InitFont\n") ;
width = NO_PER_ROW * ICONWIDTH ;
height = ICONHEIGHT ;
}
make_icon()
{
if (get_sun_icon("noface.icon", ibuf) == 0) load_icon("Noface") ;
if (get_sun_icon("nomail.icon", ibuf) == 0) load_icon("Nomail") ;
if (get_sun_icon("nopaper.icon", ibuf) == 0) load_icon("Nopaper") ;
if (get_sun_icon("noprint.icon", ibuf) == 0) load_icon("Noprint") ;
}
send_ps_file(fname)
char *fname ;
{
FILE *stream ;
int c ;
if ((stream = fopen(fname,"r")) == NULL) return -1 ;
while ((c = getc(stream)) != EOF) PUTC(c,PostScript) ;
FCLOSE(stream) ;
return 0 ;
}
show_display() /* Show the latest set of mail icon faces. */
{
if (mtype != MONPRINTER)
FPRINTF(PostScript,"%d %d %d %d ShowDisplay\n",
width, height, width, height) ;
else FPRINTF(PostScript,"%d %d %d %d ShowDisplay\n",
width, height, ICONWIDTH, ICONHEIGHT) ;
if (newmail) beep_flash(beeps, flashes) ;
if (psrecs != NULL) do_news_ps(psrecs) ;
FFLUSH(PostScript) ;
}
start_tool()
{
int type ; /* Value from NeWS server. */
struct psinfo *next, *this ; /* For removing current chain of records. */
struct timeval tval ;
tval.tv_usec = 0 ;
tval.tv_sec = period ;
for (;;)
{
readmask = fullmask ;
#ifdef SUNOS3.x
SELECT(32, &readmask, 0, 0, &tval) ;
if (readmask && (1 << psfd))
#else
SELECT(FD_SETSIZE, &readmask, (fd_set *) 0, (fd_set *) 0, &tval) ;
if (FD_ISSET(psfd, &readmask))
#endif SUNOS3.x
{
if (pscanf(PostScriptInput, "%d", &type) == EOF) exit(1) ;
switch (type)
{
case DIED : exit(0) ;
case PAINTED : if (psrecs != NULL) do_news_ps(psrecs) ;
}
}
else
{
this = psrecs ; /* Point to beginning of NeWS records. */
if (mtype != MONNEW)
{
while (this != NULL)
{
next = this->next ;
if (this->name != NULL) free(this->name) ;
free((char *) this) ; /* Remove this record. */
this = next ;
}
psrecs = plast = NULL ;
}
do_check() ; /* Check the mail/printer again. */
}
}
}
text(display,just,str)
enum disp_type display ;
enum just_type just ;
char *str ;
{
int i, len ;
int c, r ; /* Column and row position for this face. */
int x, y ; /* Position of start of this text string. */
char line[MAXLINE] ; /* PostScript text string to be builtup. */
char tpr ; /* Indicator for destination offscreen canvas. */
c = column ;
r = row ;
switch ((int) display)
{
case BOTH : text(ICON, just, str) ;
text(WINDOW, just, str) ;
return ;
case ICON : tpr = 'M' ; /* MPR canvas. */
if (mtype != MONALL) c = r = 0 ;
break ;
case WINDOW : tpr = ' ' ; /* PR canvas. */
}
len = strlen(str) ; /* Character length of text. */
if (len > 10)
{
len = 10 ;
str[10] = '\0' ; /* Maximum of 10 characters. */
}
line[0] = '\0' ;
for (i = 0; i < len; i++)
switch (str[i])
{
case '\\' : STRCAT(line,"\\\\") ;
break ;
case '(' : STRCAT(line,"\\(") ;
break ;
case ')' : STRCAT(line,"\\)") ;
break ;
default : STRNCAT(line,&str[i],1) ;
}
switch ((int) just)
{
case LEFT : x = c*ICONWIDTH+2 ;
y = r*ICONHEIGHT+2 ;
break ;
case RIGHT : x = (c+1)*ICONWIDTH-(len*6)-2 ;
y = r*ICONHEIGHT+2 ;
}
FPRINTF(PostScript,"%d %d %d %d %cPR ClearBox\n", x, y, len*6+2, 10, tpr) ;
FPRINTF(PostScript,"(%s) %d %d %cPR MakeText\n", line, x, y, tpr) ;
}
Funky_Stuff
len=`wc -c < news.c`
if [ $len != 10648 ] ; then
echo error: news.c was $len bytes long, should have been 10648
fi
fi # end of overwriting check
if [ -f rec.c ]
then
echo shar: will not over-write existing file rec.c
else
echo shar: extracting 'rec.c', 6808 characters
cat > rec.c <<'Funky_Stuff'
/*LINTLIBRARY*/
#ifndef lint
static char sccsid[] = "@(#)rec.c 1.2 88/12/09" ;
#endif
/* Record handling routines used by the faces program.
*
* Copyright (c) Rich Burridge - Sun Microsystems Australia.
* All rights reserved.
*
* Permission is given to distribute these sources, as long as the
* copyright messages are not removed, and no monies are exchanged.
*
* No responsibility is taken for any errors on inaccuracies inherent
* either to the comments or the code of this program, but if reported
* to me, then an attempt will be made to fix them.
*/
#include "faces.h"
#include "extern.h"
char *
Malloc(n)
int n ;
{
char *val ;
if ((val = malloc((unsigned) n)) == NULL)
FPRINTF(stderr,"%s: Out of memory.\n",progname) ;
return val ;
}
add_alias(crec, username, alias) /* Add new alias to hostnames' list. */
struct comminfo *crec ;
char *username, *alias ;
{
struct peopinfo *cptemp, *ptemp ;
ptemp = (struct peopinfo *) Malloc(sizeof(struct peopinfo)) ;
ptemp->alias = (char *) Malloc(strlen(alias)) ;
STRCPY(ptemp->alias, alias) ;
ptemp->username = (char *) Malloc(strlen(username)) ;
STRCPY(ptemp->username, username) ;
ptemp->next = NULL ;
if (crec->people == NULL) crec->people = ptemp ;
else
{
cptemp = crec->people ;
while (cptemp != NULL)
if (cptemp->next == NULL)
{
cptemp->next = ptemp ;
return ;
}
else cptemp = cptemp->next ;
}
}
add_machine(machine, community) /* Add new machine to list. */
char *machine, *community ;
{
struct machinfo *temp ;
temp = (struct machinfo *) Malloc(sizeof(struct machinfo)) ;
temp->machine = (char *) Malloc(strlen(machine)) ;
STRCPY(temp->machine, machine) ;
temp->community = (char *) Malloc(strlen(community)) ;
STRCPY(temp->community, community) ;
temp->next = NULL ;
if (machines == NULL) machines = mlast = temp ; /* Start chain. */
else if (mlast != NULL)
{
mlast->next = temp ; /* Add record to existing chain. */
mlast = temp ; /* Point to end of chain. */
}
}
add_ps_rec(row, column, name) /* Add record for later animation. */
int row, column ;
char *name ;
{
struct psinfo *temp ;
temp = (struct psinfo *) Malloc(sizeof(struct psinfo)) ;
temp->name = (char *) Malloc(strlen(name)) ;
STRCPY(temp->name, name) ;
temp->row = row ;
temp->column = column ;
temp->next = NULL ;
if (psrecs == NULL) psrecs = plast = temp ; /* Start chain. */
else if (plast != NULL)
{
plast->next = temp ; /* Add record to existing chain. */
plast = temp ;
}
}
add_record(community, username, timestamp, size)
char *community, *username, *timestamp ;
int size ;
{
struct recinfo *temp ;
temp = (struct recinfo *) Malloc(sizeof(struct recinfo)) ;
temp->community = (char *) Malloc(strlen(community)) ;
STRCPY(temp->community, community) ;
temp->username = (char *) Malloc(strlen(username)) ;
STRCPY(temp->username, username) ;
temp->iconname = (char *) Malloc(strlen(iconname)) ;
STRCPY(temp->iconname, iconname) ;
STRCPY(temp->ts, timestamp) ;
temp->size = size ;
temp->total = 1 ;
temp->next = NULL ;
noicons++ ;
if (recs == NULL) recs = last = temp ; /* Start chain. */
else
{
last->next = temp ; /* Add record to existing chain. */
last = temp ; /* Point to the end of the chain. */
}
}
check_comm(hostname, username, alias) /* Check community list. */
char *hostname, *username, *alias ;
{
struct comminfo *ctemp ;
ctemp = communities ; /* Try and find machine record for hostname. */
while (ctemp != NULL)
if (EQUAL(ctemp->community, hostname))
{
add_alias(ctemp, username, alias) ;
return ;
}
else ctemp = ctemp->next ;
ctemp = (struct comminfo *) Malloc(sizeof(struct comminfo)) ;
ctemp->community = (char *) Malloc(strlen(hostname)) ;
STRCPY(ctemp->community, hostname) ;
ctemp->people = NULL ;
ctemp->next = NULL ;
if (communities == NULL) communities = clast = ctemp ; /* Start chain. */
else
{
clast->next = ctemp ; /* Add record to existing chain. */
clast = ctemp ; /* Point to end of chain. */
}
add_alias(ctemp, username, alias) ;
}
read_aliases() /* Setup the hostname aliases subchains. */
{
char alias[MAXLINE] ; /* Alias for this community/username. */
char hostname[MAXLINE] ; /* This records' hostname. */
char username[MAXLINE] ; /* This records real username. */
char *ptr1, *ptr2 ;
FILE *fd ;
if ((fd = fopen(peopfile, "r")) == NULL) /* Open people file. */
{
FPRINTF(stderr,"%s: cannot open %s\n", progname, peopfile) ;
return ;
}
while (fgets(nextline, MAXLINE, fd) != NULL)
{
ptr1 = index(nextline, '/') ;
STRNCPY(hostname, nextline, (int) (ptr1-nextline)) ;
hostname[(int) (ptr1-nextline)] = '\0' ;
ptr2 = index(nextline, '=') ;
STRNCPY(alias, ptr1+1, (int) (ptr2-ptr1-1)) ;
alias[(int) (ptr2-ptr1-1)] = '\0' ;
STRNCPY(username, ptr2+1, strlen(ptr2)-2) ;
username[strlen(ptr2)-2] = '\0' ;
check_comm(hostname, username, alias) ;
}
FCLOSE(fd) ;
}
read_machines() /* Setup the chain of machine/community records. */
{
char community[MAXLINE] ; /* This records' community. */
char machine[MAXLINE] ; /* This records' machine name. */
char *ptr ;
FILE *fd ;
if ((fd = fopen(machfile, "r")) == NULL) /* Open machine file. */
{
FPRINTF(stderr,"%s: cannot open %s\n", progname, machfile) ;
return ;
}
while (fgets(nextline, MAXLINE, fd) != NULL)
{
ptr = index(nextline, '=') ;
STRNCPY(machine, nextline, (int) (ptr-nextline)) ;
machine[(int) (ptr-nextline)] = '\0' ;
STRNCPY(community, ptr+1, strlen(ptr)-2) ;
community[strlen(ptr)-2] = '\0' ;
add_machine(machine, community) ;
}
FCLOSE(fd) ;
}
struct recinfo *
rec_exists(community,username) /* Check if record exists for mail item. */
char *community, *username ;
{
struct recinfo *temp ; /* Pointer to mail records used for chaining. */
temp = recs ;
while (temp != NULL)
{
if (EQUAL(temp->username, username) &&
EQUAL(temp->community, community))
return(temp) ; /* Record found. */
temp = temp->next ; /* Point to next record. */
}
return(NULL) ;
}
remove_record(thisrec) /* Remove this record from the chain. */
struct recinfo *thisrec ;
{
if (thisrec->community != NULL) free(thisrec->community) ;
if (thisrec->username != NULL) free(thisrec->username) ;
if (thisrec->iconname != NULL) free(thisrec->iconname) ;
free((char *) thisrec) ;
}
Funky_Stuff
len=`wc -c < rec.c`
if [ $len != 6808 ] ; then
echo error: rec.c was $len bytes long, should have been 6808
fi
fi # end of overwriting check
if [ -f sunview.c ]
then
echo shar: will not over-write existing file sunview.c
else
echo shar: extracting 'sunview.c', 9881 characters
cat > sunview.c <<'Funky_Stuff'
/*LINTLIBRARY*/
#ifndef lint
static char sccsid[] = "@(#)sunview.c 1.1 88/12/04" ;
#endif
/* SunView dependent graphics routines used by faces,
* the visual mail and print job monitor.
*
* Copyright (c) Rich Burridge - Sun Microsystems Australia.
* All rights reserved.
*
* Permission is given to distribute these sources, as long as the
* copyright messages are not removed, and no monies are exchanged.
*
* No responsibility is taken for any errors or inaccuracies inherent
* either to the comments or the code of this program, but if reported
* to me, then an attempt will be made to fix them.
*/
#include "faces.h"
#include "extern.h"
#include <stdio.h>
#include <suntool/sunview.h>
#include <suntool/canvas.h>
#define ICON_SET (void) icon_set
#define NOTIFY_SET_ITIMER_FUNC (void) notify_set_itimer_func
#define PR_DESTROY (void) pr_destroy
#define PR_REPLROP (void) pr_replrop
#define PR_ROP (void) pr_rop
#ifdef SUNOS3.x
#define PR_TTEXT (void) pf_ttext
#else
#define PR_TTEXT (void) pr_ttext
#endif SUNOS3.x
#define PW_ROP (void) pw_rop
#define WIN_BELL (void) win_bell
#define WINDOW_SET (void) window_set
#define SMALLFONT "/usr/lib/fonts/fixedwidthfonts/screen.r.7"
#define ITIMER_NULL ((struct itimerval *) 0)
int repaint_proc() ;
Canvas canvas ;
Frame frame ;
Icon faces_icon ;
Pixfont *sfont ; /* Small font for timestamp and count. */
Pixrect *mpr, *pr ; /* Pointers to current pixrects. */
Pixrect *old_mpr, *old_pr ; /* Pointers to previous pixrects. */
Pixrect *background ; /* Pointer to background pattern or gray. */
Pixwin *fpw, *pw ;
Rect *temprect ;
int ffd ; /* File descriptor of faces frame. */
short gray_image[] = { 0x8000, 0x8000, 0x2000, 0x2000 } ;
mpr_static(gray_pr, 4, 4, 1, gray_image) ;
short noface_image[] = {
#include "noface.icon"
} ;
mpr_static(noface_pr, 64, 64, 1, noface_image) ;
short nomail_image[] = {
#include "nomail.icon"
} ;
mpr_static(nomail_pr, 64, 64, 1, nomail_image) ;
short nopaper_image[] = {
#include "nopaper.icon"
} ;
mpr_static(nopaper_pr, 64, 64, 1, nopaper_image) ;
short noprint_image[] = {
#include "noprint.icon"
} ;
mpr_static(noprint_pr, 64, 64, 1, noprint_image) ;
add_face(display, itype, name)
enum disp_type display ;
enum icon_type itype ;
char *name ;
{
Pixrect *face_pr ;
unsigned short buf[256] ; /* Ikon/icon image. */
unsigned short *ptr ;
int freeit ; /* Set if we should destroy this pixrect. */
int i ;
freeit = 0 ;
switch ((int) itype)
{
case NOMAIL : face_pr = &nomail_pr ;
break ;
case NOPAPER : face_pr = &nopaper_pr ;
break ;
case NOPRINT : face_pr = &noprint_pr ;
break ;
case ORDINARY : if (get_icon(name, buf) == -1) face_pr = &noface_pr ;
else
{
face_pr = mem_create(64, 64, 1) ;
ptr = (unsigned short *)
((struct mpr_data *) face_pr->pr_data)->md_image ;
for (i = 0; i < 256; i++) ptr[i] = buf[i] ;
freeit = 1 ;
}
break ;
}
if (display == ICON)
if (mtype == MONPRINTER) adjust_image(mpr, face_pr, 0, 0) ;
else adjust_image(mpr, face_pr, row, column) ;
else if (display == WINDOW) adjust_image(pr, face_pr, row, column) ;
else
{
adjust_image(mpr, face_pr, row, column) ;
adjust_image(pr, face_pr, row, column) ;
}
if (freeit) PR_DESTROY(face_pr) ;
}
adjust_image(fpr, face_pr, row, column) /* Place new face in memory pixrect. */
Pixrect *fpr, *face_pr ;
int row, column ;
{
switch ((int) mtype)
{
case MONNEW : PR_ROP(fpr, 64, 0, 640-64, 64, PIX_SRC, fpr, 0, 0) ;
case MONALL :
case MONPRINTER : PR_ROP(fpr, column*ICONWIDTH, row*ICONHEIGHT,
ICONWIDTH, ICONHEIGHT, PIX_SRC, face_pr, 0, 0) ;
}
}
Notify_value
check_mail()
{
do_check() ;
}
beep_flash(beeps, flashes) /* Perform visual feedback. */
int beeps, flashes ;
{
static struct timeval btime = { 0, 250000 } ; /* Beep timer. */
int bfd ; /* File descriptor for faces window, or -1. */
Pixwin *bpw ; /* Pixwin pointer for faces window, or 0. */
if (beeps || flashes)
do
{
bfd = beeps > 0 ? ffd : -1 ;
bpw = flashes > 0 ? fpw : (Pixwin *) 0 ;
WIN_BELL(bfd, btime, bpw) ;
SELECT(0, (fd_set *) 0, (fd_set *) 0, (fd_set *) 0, &btime) ;
beeps-- ;
flashes-- ;
}
while (beeps > 0) ;
}
create_pixrects(width, height) /* Create pixrects for the face images. */
int width, height ;
{
old_pr = pr ;
pr = mem_create(width, height, 1) ;
PR_REPLROP(pr, 0, 0, width, height, PIX_SRC, background, 0, 0) ;
faces_icon = (Icon) window_get(frame, FRAME_ICON) ;
old_mpr = (Pixrect *) icon_get(faces_icon, ICON_IMAGE) ;
if (mtype == MONPRINTER) mpr = mem_create(ICONWIDTH, ICONHEIGHT, 1) ;
else
{
mpr = mem_create(width, height, 1) ;
PR_REPLROP(mpr, 0, 0, width, height, PIX_SRC, background, 0, 0) ;
}
if (mtype == MONNEW && old_pr != NULL)
PR_ROP(pr, 0, 0, width, height, PIX_SRC, old_pr, 0, 0) ;
if (mtype == MONNEW && old_mpr != NULL)
PR_ROP(mpr, 0, 0, width, height, PIX_SRC, old_mpr, 0, 0) ;
}
init_ws_type()
{
gtype = SUNVIEW ;
return 0 ;
}
make_frame(argc,argv)
int argc ;
char *argv[] ;
{
unsigned short buf[256] ; /* For background pattern. */
unsigned short *ptr ;
int i ;
if (strlen(bgicon))
{
if (get_sun_icon(bgicon, buf) == 0) background = &gray_pr ;
background = mem_create(64, 64, 1) ;
ptr = (unsigned short *)
((struct mpr_data *) background->pr_data)->md_image ;
for (i = 0; i < 256; i++) ptr[i] = buf[i] ;
}
else background = &gray_pr ;
frame = window_create((Window) 0, FRAME,
FRAME_ICON, faces_icon,
FRAME_SHOW_LABEL, FALSE,
FRAME_SUBWINDOWS_ADJUSTABLE, FALSE,
FRAME_NO_CONFIRM, TRUE,
WIN_WIDTH, NO_PER_ROW * ICONWIDTH + 10,
WIN_HEIGHT, ICONHEIGHT * 10 + 10,
FRAME_ARGS, argc,argv,
0) ;
fpw = (Pixwin *) window_get(frame, WIN_PIXWIN) ;
ffd = (int) window_get(frame, WIN_FD) ;
canvas = window_create(frame, CANVAS,
CANVAS_REPAINT_PROC, repaint_proc,
CANVAS_RETAINED, TRUE,
0) ;
pw = canvas_pixwin(canvas) ;
sfont = pf_open(SMALLFONT) ;
width = NO_PER_ROW * ICONWIDTH ;
height = ICONHEIGHT ;
}
make_icon()
{
if (mtype == MONPRINTER)
faces_icon = icon_create(ICON_IMAGE, &noprint_pr, 0) ;
else faces_icon = icon_create(ICON_IMAGE, &nomail_pr, 0) ;
}
/*ARGSUSED*/
repaint_proc(canvas, pw, repaint_area)
Canvas canvas ;
Pixwin *pw ;
Rectlist *repaint_area ;
{
PW_ROP(pw, 0, 0, width, height, PIX_SRC, pr, 0, 0) ;
}
show_display() /* Show the latest set of mail icon faces. */
{
if (invert) /* Invert the memory pixrects before displaying. */
{
PR_ROP(pr, 0, 0, width, height, PIX_NOT(PIX_DST), pr, 0, 0) ;
PR_ROP(mpr, 0, 0, width, height, PIX_NOT(PIX_DST), pr, 0, 0) ;
}
if (mtype != MONPRINTER)
{
temprect = (Rect *) icon_get(faces_icon, ICON_IMAGE_RECT) ;
temprect->r_height = height ;
temprect->r_width = width ;
ICON_SET(faces_icon, ICON_HEIGHT, height,
ICON_WIDTH, width,
ICON_IMAGE_RECT, temprect,
ICON_IMAGE, mpr,
0) ;
}
else ICON_SET(faces_icon, ICON_IMAGE, mpr, 0) ;
WINDOW_SET(frame, FRAME_ICON, faces_icon, 0) ;
temprect = (Rect *) window_get(frame, FRAME_OPEN_RECT) ;
temprect->r_height = height+10 ;
temprect->r_width = width+10 ;
WINDOW_SET(frame, FRAME_OPEN_RECT, temprect, 0) ;
PW_ROP(pw, 0, 0, width, height, PIX_SRC, pr, 0, 0) ;
if (newmail) beep_flash(beeps, flashes) ;
if (old_pr) PR_DESTROY(old_pr) ;
if (old_mpr) PR_DESTROY(old_mpr) ;
}
start_tool()
{
struct itimerval tval ;
tval.it_interval.tv_usec = 0 ;
tval.it_interval.tv_sec = period ;
tval.it_value.tv_usec = 0 ;
tval.it_value.tv_sec = period ;
NOTIFY_SET_ITIMER_FUNC(frame, check_mail,
ITIMER_REAL, &tval, ITIMER_NULL) ;
window_main_loop(frame) ;
}
text(display, just, str)
enum disp_type display ;
enum just_type just ;
char *str ;
{
int len ;
int c, r ; /* Column and row position for this face. */
int x, y ; /* Position of start of this text string. */
Pixrect *tpr ;
c = column ;
r = row ;
switch ((int) display)
{
case BOTH : text(ICON, just, str) ;
text(WINDOW, just, str) ;
return ;
case ICON : tpr = mpr ;
if (mtype != MONALL) c = r = 0 ;
break ;
case WINDOW : tpr = pr ;
}
len = strlen(str) ; /* Character length of text. */
if (len > 10)
{
len = 10 ;
str[10] = '\0' ; /* Maximum of 10 characters. */
}
switch ((int) just)
{
case LEFT : x = c*ICONWIDTH+2 ;
y = (r+1)*ICONHEIGHT-2 ;
break ;
case RIGHT : x = (c+1)*ICONWIDTH-(len*6)-2 ;
y = (r+1)*ICONHEIGHT-2 ;
}
PR_ROP(tpr, x, y-9, len*6+2, 10, PIX_CLR, (Pixrect *) NULL, 0, 0) ;
PR_TTEXT(tpr, x, y, PIX_SRC ^ PIX_NOT(PIX_DST), sfont, str) ;
}
Funky_Stuff
len=`wc -c < sunview.c`
if [ $len != 9881 ] ; then
echo error: sunview.c was $len bytes long, should have been 9881
fi
fi # end of overwriting checkrichb@sunchat.UUCP (Rich Burridge) (12/12/88)
------CUT HERE------CUT HERE------ #! /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 to create the files: # facedir (directory) # This archive created: Sun Dec 11 15:16:32 EST 1988 # # export PATH; PATH=/bin:$PATH # if [ -f facedir ] then echo shar: can not write a directory over file facedir else if [ ! -d facedir ] then echo shar: creating directory facedir mkdir facedir fi echo shar: entering directory facedir cd facedir if [ -f machine.tab ] then echo shar: will not over-write existing file machine.tab else echo shar: extracting 'machine.tab', 383 characters cat > machine.tab <<'Funky_Stuff' stard=sunaus extra=sunaus sunchat=sunaus garfield=sunaus tom=sunaus felix=sunaus sunk=sunaus sunsa=sunaus misaus=sunaus maverick=sunaus misaus1=sunaus nimbin=sunaus redgum=sunaus palette=sunaus sunwa=sunaus sunact=sunaus basset=basser castor.cs.su.oz=basser cluster.cs.su.oz=basser orwell=basser sarad=basser sasha=basser sunrise=basser gris=softway softway.sw.oz=softway arakis=sun Funky_Stuff len=`wc -c < machine.tab` if [ $len != 383 ] ; then echo error: machine.tab was $len bytes long, should have been 383 fi fi # end of overwriting check if [ -f misc. ] then echo shar: can not write a directory over file misc. else if [ ! -d misc. ] then echo shar: creating directory misc. mkdir misc. fi echo shar: entering directory misc. cd misc. if [ -f acsnet ] then echo shar: can not write a directory over file acsnet else if [ ! -d acsnet ] then echo shar: creating directory acsnet mkdir acsnet fi echo shar: entering directory acsnet cd acsnet if [ -f 48x48x1 ] then echo shar: will not over-write existing file 48x48x1 else echo shar: extracting '48x48x1', 1056 characters cat > 48x48x1 <<'Funky_Stuff' 0x0008,0x6000,0x0000, 0x000C,0x5000,0x0000, 0x000A,0x4800,0x0000, 0x000D,0x5400,0x0000, 0x000A,0xDA00,0x0000, 0x0005,0x5A00,0x0000, 0x0002,0xAA00,0x0000, 0x0001,0x7400,0x0000, 0x0003,0xE400,0x0000, 0x0006,0x2600,0x0000, 0x00FC,0x0A00,0x0000, 0x0301,0x0600,0x0000, 0x0700,0x0A00,0x0000, 0x06C0,0x1600,0x0000, 0x0300,0x0C00,0x0000, 0x01FF,0x9400,0x0000, 0x0001,0xA800,0x0000, 0x0003,0x1800,0x0000, 0x0002,0x3000,0x0000, 0x0006,0x6000,0x0000, 0x000C,0xA000,0x0000, 0x0008,0x6000,0x0000, 0x0018,0xA000,0x0000, 0x0010,0x6000,0x0000, 0x03F0,0x2000,0x0000, 0x0607,0x5000,0x0000, 0x043C,0x5000,0x0000, 0x0561,0xD800,0x0000, 0x076A,0x0800,0x0000, 0x03EA,0x1400,0x0000, 0x003E,0x0C00,0x0000, 0x0010,0x1600,0x0000, 0x0070,0x0B00,0x0000, 0x01F0,0x0580,0x0000, 0x01FF,0x02C0,0x0000, 0x01F8,0x7160,0x0000, 0x0080,0xFAB0,0x0000, 0x00C1,0x8158,0x0000, 0x0063,0x00AC,0x0000, 0x003B,0x0056,0x0000, 0x003E,0x002B,0x0000, 0x002B,0x0015,0x8000, 0x0035,0x0002,0xC007, 0x001B,0x8001,0x600D, 0x7FF5,0x80C0,0xBFF9, 0xAFFF,0x80E0,0x5543, 0xFA00,0x00F8,0x001E, 0x1FFF,0xFFCF,0xFFF0, Funky_Stuff len=`wc -c < 48x48x1` if [ $len != 1056 ] ; then echo error: 48x48x1 was $len bytes long, should have been 1056 fi fi # end of overwriting check cd .. echo shar: done with directory acsnet fi if [ -f adm ] then echo shar: can not write a directory over file adm else if [ ! -d adm ] then echo shar: creating directory adm mkdir adm fi echo shar: entering directory adm cd adm if [ -f 48x48x1 ] then echo shar: will not over-write existing file 48x48x1 else echo shar: extracting '48x48x1', 1056 characters cat > 48x48x1 <<'Funky_Stuff' 0x01FF,0xF801,0xFFF0, 0x0200,0x17E2,0x0020, 0x0400,0x2844,0x0050, 0x0800,0x50BF,0xFFA0, 0x1000,0xA940,0x0250, 0x2001,0x5280,0x05A0, 0x7FFE,0xAD00,0x0A50, 0x0001,0x5200,0x15F8, 0x7FFE,0xAC00,0x2A10, 0x0001,0x57FF,0xD528, 0x7FFE,0xA801,0x2A50, 0x0001,0x5002,0xD5A8, 0x7FFE,0xA805,0x2A50, 0x0001,0x500A,0xD5A8, 0x7FFE,0xA815,0x2A50, 0x0001,0x57EA,0xD5A8, 0x7FFE,0xA815,0x2A50, 0x0001,0x57EA,0xD5A8, 0x7FFE,0xA815,0x2A50, 0x0001,0x57EA,0xD5A8, 0x7FFE,0xA815,0x2A50, 0x0001,0x57EA,0xD5A8, 0x7FFE,0xA815,0x2A50, 0x0001,0x57EA,0xD5A8, 0x7FFE,0xA815,0x2A50, 0x0001,0x57EA,0xD5A0, 0x7FFE,0xA815,0x2A40, 0x0001,0x57EA,0xD580, 0x7FFE,0xA815,0x2A00, 0x0001,0x57EA,0xD400, 0x7FFE,0xA815,0xFFF8, 0x0001,0x57EA,0x0010, 0x7FFE,0xA814,0x0028, 0x0001,0x57E8,0x0057, 0x7FFE,0xAB10,0x00AB, 0x0001,0x55E0,0x0155, 0x7FFE,0xA97F,0xFEA9, 0x0001,0x5180,0x0151, 0x7FFE,0xA17F,0xFEA1, 0x0001,0x4200,0x0142, 0xFFFF,0x84FF,0xFF84, 0x8000,0x8880,0x0088, 0x8520,0x9099,0x2E90, 0x85A0,0xA0A5,0x24A0, 0x8560,0xC0A5,0x24C0, 0x8520,0x8098,0xC480, 0x4001,0x0040,0x0100, 0x3FFE,0x003F,0xFE00, Funky_Stuff len=`wc -c < 48x48x1` if [ $len != 1056 ] ; then echo error: 48x48x1 was $len bytes long, should have been 1056 fi fi # end of overwriting check cd .. echo shar: done with directory adm fi if [ -f bin ] then echo shar: can not write a directory over file bin else if [ ! -d bin ] then echo shar: creating directory bin mkdir bin fi echo shar: entering directory bin cd bin if [ -f 48x48x1 ] then echo shar: will not over-write existing file 48x48x1 else echo shar: extracting '48x48x1', 1056 characters cat > 48x48x1 <<'Funky_Stuff' 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0046,0x230C,0x4600, 0x0049,0x2492,0x4900, 0x0049,0x2492,0x4900, 0x0049,0x2492,0x4900, 0x0046,0x230C,0x4600, 0x0000,0x0000,0x0000, 0x0031,0x1862,0x3100, 0x0049,0x2492,0x4900, 0x0049,0x2492,0x4900, 0x0049,0x2492,0x4900, 0x0031,0x1862,0x3100, 0x0000,0x0000,0x0000, 0x0048,0xC48C,0x3100, 0x0049,0x2492,0x4900, 0x0049,0x2492,0x4900, 0x0049,0x2492,0x4900, 0x0048,0xC48C,0x3100, 0x0000,0x0000,0x0000, 0x0031,0x230C,0x4600, 0x0049,0x2492,0x4900, 0x0049,0x2492,0x4900, 0x0049,0x2492,0x4900, 0x0031,0x230C,0x4600, 0x0000,0x0000,0x0000, 0x0046,0x2462,0x3100, 0x0049,0x2492,0x4900, 0x0049,0x2492,0x4900, 0x0049,0x2492,0x4900, 0x0046,0x2462,0x3100, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, Funky_Stuff len=`wc -c < 48x48x1` if [ $len != 1056 ] ; then echo error: 48x48x1 was $len bytes long, should have been 1056 fi fi # end of overwriting check cd .. echo shar: done with directory bin fi if [ -f daemon ] then echo shar: can not write a directory over file daemon else if [ ! -d daemon ] then echo shar: creating directory daemon mkdir daemon fi echo shar: entering directory daemon cd daemon if [ -f 48x48x1 ] then echo shar: will not over-write existing file 48x48x1 else echo shar: extracting '48x48x1', 1056 characters cat > 48x48x1 <<'Funky_Stuff' 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0440,0x0000, 0x0000,0x0820,0x0000, 0x0000,0x0820,0x0000, 0x0000,0x0C60,0x1000, 0x0000,0x0FE0,0x3800, 0x0000,0x07C0,0x3800, 0x0004,0x0540,0x7C00, 0x0014,0x07C0,0x1000, 0x0054,0x0380,0x1000, 0x0054,0x03C0,0x1000, 0x0058,0x07E0,0x1000, 0x0068,0x0FE1,0xA000, 0x0008,0x1FF2,0x6000, 0x000F,0xFFF2,0x2000, 0x000F,0xF7FA,0x6000, 0x0004,0x07D9,0xE000, 0x0002,0x07D8,0x2000, 0x0002,0x07D8,0x2000, 0x0002,0x07D8,0x4000, 0x0001,0x07F8,0x4000, 0x0001,0x07F0,0x8000, 0x0001,0x0FEF,0x0000, 0x0000,0x8FE0,0x0000, 0x0000,0x9EC0,0x0000, 0x0000,0x9CC0,0x0000, 0x0000,0x58E0,0x0000, 0x0000,0x4C60,0x0000, 0x0000,0x4420,0x0000, 0x0000,0x0C60,0x0000, 0x0000,0x1CE0,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, Funky_Stuff len=`wc -c < 48x48x1` if [ $len != 1056 ] ; then echo error: 48x48x1 was $len bytes long, should have been 1056 fi fi # end of overwriting check cd .. echo shar: done with directory daemon fi if [ -f mailer-daemon ] then echo shar: can not write a directory over file mailer-daemon else if [ ! -d mailer-daemon ] then echo shar: creating directory mailer-daemon mkdir mailer-daemon fi echo shar: entering directory mailer-daemon cd mailer-daemon if [ -f 48x48x1 ] then echo shar: will not over-write existing file 48x48x1 else echo shar: extracting '48x48x1', 1056 characters cat > 48x48x1 <<'Funky_Stuff' 0x0001,0xFFFF,0xFFC0, 0x0002,0xB000,0x0030, 0x0003,0x5800,0x0008, 0x0006,0xADFF,0xFFC8, 0x0005,0x54FF,0xFFE4, 0x000A,0xAAF7,0xFDF2, 0x020D,0x5673,0xF9F2, 0x060A,0xAA61,0xF0FA, 0x0E0D,0x5568,0xE8F9, 0x1E0A,0xAB71,0xF1F9, 0x0E0D,0x557F,0xFFF9, 0x0A0A,0xAB3F,0xFFF1, 0x080D,0x5500,0x0001, 0x080A,0xAB00,0x0001, 0x080D,0x5500,0x9E01, 0x0DEA,0xAB03,0x9F81, 0x073D,0x5507,0x83C1, 0x001A,0xAB0F,0x81E1, 0x001D,0x551F,0x80F1, 0x000A,0xAB1F,0x80F1, 0x000D,0x553F,0x80F9, 0x000A,0xAB3F,0x80F9, 0x000D,0x553F,0x80F9, 0x000A,0xAB3F,0x80F9, 0x0FFD,0x553F,0x81F9, 0x3FFA,0xAB3F,0x83F9, 0x7FFD,0x553F,0x9FF9, 0xFFFA,0xAB3F,0x9FF9, 0xFFFD,0x551F,0x9FF1, 0xFFFA,0xAB1F,0x9FF1, 0xFFFD,0x550F,0x9FE1, 0xFFFA,0xAB07,0x9FC1, 0xFFFD,0xD503,0x9F81, 0x7FFB,0xEB00,0x9E01, 0x3FFD,0xF500,0x0001, 0x1FFB,0xFB00,0x0001, 0x0FFD,0xFD0F,0xFFE1, 0x07FB,0xFB1F,0xFFD1, 0x01FD,0xFD3F,0xF7C9, 0x00FF,0xFF7F,0xF8C5, 0x003F,0xFD7F,0xFC45, 0x001F,0xFF7F,0xFE05, 0x0007,0xF540,0x3F85, 0x0003,0xF740,0x0FC5, 0x0000,0xFD40,0x01F5, 0x0000,0x3F40,0x007D, 0x0000,0x0740,0x003D, 0x0000,0x01C0,0x000F, Funky_Stuff len=`wc -c < 48x48x1` if [ $len != 1056 ] ; then echo error: 48x48x1 was $len bytes long, should have been 1056 fi fi # end of overwriting check cd .. echo shar: done with directory mailer-daemon fi if [ -f net ] then echo shar: can not write a directory over file net else if [ ! -d net ] then echo shar: creating directory net mkdir net fi echo shar: entering directory net cd net if [ -f 48x48x1 ] then echo shar: will not over-write existing file 48x48x1 else echo shar: extracting '48x48x1', 1056 characters cat > 48x48x1 <<'Funky_Stuff' 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0070,0x0100,0x0000, 0x00F8,0x0300,0x0000, 0x0020,0x7FFC,0x0000, 0x0010,0x8303,0xE200, 0x000F,0x0101,0x2600, 0x0009,0x0001,0x3F00, 0x0009,0x0001,0xE600, 0x000F,0x0002,0x0200, 0x0010,0x8014,0x0000, 0x00A0,0x5018,0x0000, 0x00C0,0x301C,0x0000, 0x00E0,0x7020,0x0000, 0x0000,0x0840,0x4000, 0x0000,0x05E0,0xC000, 0x0000,0x033F,0xFF00, 0x0000,0x1120,0xC000, 0x00E0,0x31E0,0x4000, 0x00C0,0xFF20,0x0000, 0x00A1,0x3010,0x0000, 0x001E,0x100E,0x0000, 0x0012,0x000C,0x0700, 0x0012,0x000A,0x0300, 0x001E,0x0001,0x0500, 0x00A1,0x0000,0x8800, 0x00C0,0x8000,0x9000, 0x00E0,0x4101,0xE000, 0x0000,0x2181,0x2000, 0x0000,0x1FFF,0x2000, 0x0000,0x0181,0xE000, 0x0000,0x0101,0x0000, 0x0000,0x0002,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, Funky_Stuff len=`wc -c < 48x48x1` if [ $len != 1056 ] ; then echo error: 48x48x1 was $len bytes long, should have been 1056 fi fi # end of overwriting check cd .. echo shar: done with directory net fi if [ -f root ] then echo shar: can not write a directory over file root else if [ ! -d root ] then echo shar: creating directory root mkdir root fi echo shar: entering directory root cd root if [ -f 48x48x1 ] then echo shar: will not over-write existing file 48x48x1 else echo shar: extracting '48x48x1', 1056 characters cat > 48x48x1 <<'Funky_Stuff' 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x1EE4,0x0000, 0x0000,0x1B04,0x0000, 0x0000,0x1F74,0x0000, 0x0000,0x1F64,0x0000, 0x0000,0x1FA4,0x0000, 0x0000,0x1704,0x0000, 0x0000,0x1FE4,0x0000, 0x0000,0x1EE4,0x0000, 0x0000,0x1FE4,0x0000, 0x0000,0x1FE4,0x0000, 0x0000,0x1EC4,0x0000, 0x0000,0x17F4,0x0000, 0x0000,0x37F6,0x0000, 0x0000,0x3FEB,0x0000, 0x0000,0xFF7F,0x0000, 0x0000,0xFF7F,0xE000, 0x0001,0xFFE7,0xF000, 0x000F,0xE7F1,0x9800, 0x001F,0x0631,0xC800, 0x0036,0x0C30,0x6400, 0x0024,0x1830,0x6600, 0x0064,0x3C10,0x2200, 0x0064,0x3410,0x2200, 0x004C,0x2438,0x7200, 0x004E,0x242C,0xDA00, 0x004A,0x6424,0x8A00, 0x0012,0x4426,0x8800, 0x0012,0x4460,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, Funky_Stuff len=`wc -c < 48x48x1` if [ $len != 1056 ] ; then echo error: 48x48x1 was $len bytes long, should have been 1056 fi fi # end of overwriting check cd .. echo shar: done with directory root fi if [ -f sys ] then echo shar: can not write a directory over file sys else if [ ! -d sys ] then echo shar: creating directory sys mkdir sys fi echo shar: entering directory sys cd sys if [ -f 48x48x1 ] then echo shar: will not over-write existing file 48x48x1 else echo shar: extracting '48x48x1', 1056 characters cat > 48x48x1 <<'Funky_Stuff' 0x0000,0x0200,0x0000, 0x0000,0x0004,0x0000, 0x0000,0x080A,0x0000, 0x0000,0x008A,0x2000, 0x0000,0x016A,0xD000, 0x0002,0x0091,0x2000, 0x0000,0x0080,0x2000, 0x0020,0x004E,0x4000, 0x0000,0x439F,0x3800, 0x0000,0xA41F,0x0400, 0x0088,0xA39F,0x3800, 0x0016,0xAD4E,0x4000, 0x0009,0x1280,0x2000, 0x0008,0x0291,0x2000, 0x0004,0xE56A,0xD100, 0x0039,0xF38A,0x2000, 0x0241,0xF04A,0x0000, 0x0039,0xF384,0x0400, 0x0004,0xE400,0x0000, 0x0008,0x0200,0x2000, 0x0009,0x1240,0x0000, 0x0016,0xADA0,0x0000, 0x0008,0xAAA2,0x0000, 0x0000,0xB6AD,0x0000, 0x0000,0x4912,0x1000, 0x0000,0x0802,0x0000, 0x0020,0x04E4,0x0000, 0x0200,0x39F3,0x8800, 0x0008,0x41F0,0x4000, 0x0814,0x39F3,0x8000, 0x0114,0x44E4,0x0000, 0x12D5,0xA802,0x0800, 0x0122,0x4912,0x0000, 0x0100,0x56AD,0x0000, 0x209C,0x88A2,0x0000, 0x073E,0x70A0,0x2000, 0x083E,0x0840,0x0000, 0x073E,0x7000,0x0000, 0x009C,0x8000,0x0000, 0x0100,0x4000,0x0000, 0x0122,0x4200,0x0000, 0x02D5,0xA000,0x0000, 0x0114,0x4000,0x0000, 0x0014,0x0800,0x0000, 0x0008,0x0000,0x0000, 0x0000,0x4000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, Funky_Stuff len=`wc -c < 48x48x1` if [ $len != 1056 ] ; then echo error: 48x48x1 was $len bytes long, should have been 1056 fi fi # end of overwriting check cd .. echo shar: done with directory sys fi if [ -f unknown ] then echo shar: can not write a directory over file unknown else if [ ! -d unknown ] then echo shar: creating directory unknown mkdir unknown fi echo shar: entering directory unknown cd unknown if [ -f 48x48x1 ] then echo shar: will not over-write existing file 48x48x1 else echo shar: extracting '48x48x1', 1056 characters cat > 48x48x1 <<'Funky_Stuff' 0x0000,0x01FF,0xC000, 0x7C00,0x1FFF,0xE000, 0x8200,0xFFFF,0xE000, 0x8207,0xFFFF,0xF000, 0x620F,0xFFFF,0xFF80, 0x040F,0xFFFF,0xFFE0, 0x080F,0xFFFF,0xFFF0, 0x100F,0xFFFF,0xF7F0, 0x2007,0xFFFF,0xF7F0, 0x0007,0xFFFF,0x8FE0, 0x2007,0xFFFE,0x7F80, 0x2007,0xFFF9,0xFE00, 0x000D,0xFFE7,0xFE00, 0x103E,0x7F9F,0xFE00, 0x007F,0x807F,0xFE00, 0x20FF,0xFFFF,0xFE00, 0x81FF,0xFFFF,0xFE00, 0x01FF,0xFFFB,0x8E00, 0x81FF,0xFFE1,0xF600, 0x21FF,0xFFE7,0xF600, 0x09FF,0xFFFF,0x0600, 0x00FF,0xFFFC,0x7F80, 0x0877,0xF7F0,0x3FC0, 0x2007,0xF7E0,0x1FC0, 0x0003,0xE7E0,0x7FC0, 0x4001,0xC3C3,0xFFC0, 0x1000,0x800F,0xFF80, 0x0407,0x803F,0xFF80, 0x0007,0x83FF,0xFF80, 0x00BF,0xFBFF,0xFF80, 0x00A0,0x1FFF,0xFF80, 0x00BF,0xFFFF,0xFF80, 0x0001,0xFFFF,0xFF80, 0x0001,0xF7FF,0xF180, 0x001F,0xFFFF,0xCFC0, 0x007E,0xFFFC,0x3FE0, 0x01FF,0x3FC3,0xFFF8, 0x07FF,0xDF3F,0xFFFE, 0x0FFF,0xF0FF,0xFFFF, 0x1FFF,0xCFFF,0xFFFF, 0x3FFF,0xDFFF,0xFFFF, 0x3FFF,0xD9FF,0xFFFF, 0x7FFF,0xD9FF,0xFFFF, 0x7FFF,0xDFFF,0xFFFF, 0xFFFF,0xBFC0,0x07FF, 0xFFFF,0xBFDF,0xF7FF, 0xFFFF,0xBFDF,0xF7FF, 0xFFFF,0xBFDF,0xF7FF, Funky_Stuff len=`wc -c < 48x48x1` if [ $len != 1056 ] ; then echo error: 48x48x1 was $len bytes long, should have been 1056 fi fi # end of overwriting check cd .. echo shar: done with directory unknown fi if [ -f uucp ] then echo shar: can not write a directory over file uucp else if [ ! -d uucp ] then echo shar: creating directory uucp mkdir uucp fi echo shar: entering directory uucp cd uucp if [ -f 48x48x1 ] then echo shar: will not over-write existing file 48x48x1 else echo shar: extracting '48x48x1', 1056 characters cat > 48x48x1 <<'Funky_Stuff' 0x0000,0x0000,0x0000, 0x0000,0x0000,0x3FE0, 0x0000,0x0000,0xE000, 0x0000,0x0001,0x8000, 0x0000,0x0003,0x0000, 0x0200,0x0007,0xE000, 0x0008,0x001E,0x1800, 0x1000,0x0074,0x0800, 0x0040,0x00C4,0x0800, 0x0001,0x0184,0x0800, 0x4200,0x0106,0x1800, 0x0010,0x0201,0xE000, 0x0000,0x0000,0x0000, 0x4000,0x0000,0x0000, 0x0400,0x0000,0x0000, 0x0020,0x3F00,0x0000, 0x4400,0xF5C0,0x0000, 0x0023,0xAAF0,0x0000, 0x020F,0x5558,0x0000, 0x003A,0xAAAE,0x0000, 0x20F5,0x5557,0x8000, 0x03AA,0xAAAA,0xC000, 0x0F55,0x5555,0x7000, 0x3EAA,0xA0AA,0xBC00, 0x7755,0x1F15,0x5600, 0xEBAA,0x71CA,0xAB80, 0xD5D1,0xC071,0x55E0, 0xAAE7,0x001C,0xABB0, 0xD57C,0x0007,0x177C, 0x6070,0x0011,0xCEEE, 0x3FC0,0x0020,0x7DD7, 0x0000,0x1140,0x1DAB, 0x0000,0x0001,0x0795, 0x0000,0x0000,0x01C3, 0x0000,0x0004,0x007E, 0x0001,0x0020,0x0800, 0x0000,0x1100,0x0020, 0x0000,0x0000,0x1000, 0x0000,0x0000,0x4040, 0x0010,0x0000,0x0080, 0x0000,0x2004,0x0100, 0x0000,0x0110,0x0200, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x2000, 0x0020,0x0002,0x0000, 0x0000,0x0020,0x0000, 0x0001,0x0400,0x0000, 0x0000,0x0000,0x0000, Funky_Stuff len=`wc -c < 48x48x1` if [ $len != 1056 ] ; then echo error: 48x48x1 was $len bytes long, should have been 1056 fi fi # end of overwriting check cd .. echo shar: done with directory uucp fi cd .. echo shar: done with directory misc. fi if [ -f people.tab ] then echo shar: will not over-write existing file people.tab else echo shar: extracting 'people.tab', 1663 characters cat > people.tab <<'Funky_Stuff' sunaus/rallen=bob sunaus/ballen=bob sunaus/bbaker=bruceb sunaus/mbosch=mike sunaus/eddy=eddie sunaus/eevans=eddie sunaus/ggrell=grell sunaus/gene=grell sunaus/jingall=johni sunaus/ijeffery=ian sunaus/glynne=gjl sunaus/tmcentee=tim sunaus/jnoonan=johnn sunaus/apappas=arie sunaus/jennie=jenny sunaus/jrendell=jenny sunaus/gsearle=gjs sunaus/gsitters=greg sunaus/bscott=brad sunaus/rstewart=ruth sunaus/jteasdale=jim sunaus/loraine=lori sunaus/lorraine=lori sunaus/lunicomb=lori sunaus/pvrbancich=paula sunaus/swoodhead=simon sunaus/jy=yo sunaus/jyoung=yo sunaus/rboden=richard sunaus/rbodin=richard sunaus/rburridge=richb sunaus/rich=richb sunaus/mcunningham=mary sunaus/sduchesne=sue sunaus/mfredericks=max sunaus/mfredricks=max sunaus/bgeneralis=bill sunaus/shulbert=susanh sunaus/susan=susanh sunaus/gmason=gregm sunaus/vmickan=val sunaus/trogge=tony sunaus/andy=aspiers sunaus/bwiggins=bruce sunaus/ryeap=ron sunaus/cbreen=colinb sunaus/rdesalis=roger sunaus/mfort=markf sunaus/mark=markg sunaus/mgurvis=markg sunaus/mnegri=manuel sunaus/npettitt=noel sunaus/jraine=john sunaus/paul=paulr sunaus/prosham=paulr sunaus/gsweigert=geo sunaus/rbowman=robb sunaus/bbowman=robb sunaus/krees=kim sunaus/mikes=mslee sunaus/gshepherd=george sunaus/aweller=andrew sunaus/kbeavan=kevin sunaus/rbradford=rhonda sunaus/ckeith=colin sunaus/mmccann=mmc sunaus/ksterry=kaylene sunaus/rwilliams=rex sunaus/gdonin=gary sunaus/dshea=dennis sunaus/doshea=dennis sunaus/hprotoolis=harry sunaus/rschrader=robert sunaus/bschrader=robert sunaus/bobs=robert sunaus/jvermeulen=jeff sunaus/MAILER-DAEMON=mailer-daemon sunaus/Mailer-Daemon=mailer-daemon sunaus/mailer-daemon=mailer-daemon Funky_Stuff len=`wc -c < people.tab` if [ $len != 1663 ] ; then echo error: people.tab was $len bytes long, should have been 1663 fi fi # end of overwriting check if [ -f sunaus ] then echo shar: can not write a directory over file sunaus else if [ ! -d sunaus ] then echo shar: creating directory sunaus mkdir sunaus fi echo shar: entering directory sunaus cd sunaus if [ -f richb ] then echo shar: can not write a directory over file richb else if [ ! -d richb ] then echo shar: creating directory richb mkdir richb fi echo shar: entering directory richb cd richb if [ -f face.ps ] then echo shar: will not over-write existing file face.ps else echo shar: extracting 'face.ps', 782 characters cat > face.ps <<'Funky_Stuff' /Icon findfont 1 scalefont setfont .1 .25 .9 .75 rectpath 1 setgray fill 0 setgray .1 .25 moveto (\056) show .002 sleep 1 setgray .1 .25 moveto (\056) show 0 setgray .1 .25 moveto (\057) show .002 sleep 1 setgray .1 .25 moveto (\057) show 0 setgray .1 .25 moveto (\060) show .002 sleep 1 setgray .1 .25 moveto (\060) show 0 setgray .1 .25 moveto (\061) show .002 sleep 1 setgray .1 .25 moveto (\061) show 0 setgray .1 .25 moveto (\062) show .002 sleep 1 setgray .1 .25 moveto (\062) show 0 setgray .1 .25 moveto (\061) show .002 sleep 1 setgray .1 .25 moveto (\061) show 0 setgray .1 .25 moveto (\060) show .002 sleep 1 setgray .1 .25 moveto (\060) show 0 setgray .1 .25 moveto (\057) show .002 sleep 1 setgray .1 .25 moveto (\057) show 0 setgray .1 .25 moveto (\056) show Funky_Stuff len=`wc -c < face.ps` if [ $len != 782 ] ; then echo error: face.ps was $len bytes long, should have been 782 fi fi # end of overwriting check cd .. echo shar: done with directory richb fi cd .. echo shar: done with directory sunaus fi cd .. echo shar: done with directory facedir fi