Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

v23i001: xwrits - reminds you to take wrist breaks, Part01/02

15 views
Skip to first unread message

Eddie Kohler

unread,
Mar 13, 1995, 3:31:49 PM3/13/95
to
Submitted-by: eddi...@arpeggio.lcs.mit.edu (Eddie Kohler)
Posting-number: Volume 23, Issue 1
Archive-name: xwrits/part01
Environment: X11, XPM, ANSI

Xwrits was written when my wrists really hurt. It reminds you to take
a wrist break by popping up an X window with a flashing wrist on it.
You're supposed to click on the flashing pained wrist when you leave
the computer to take a wrist break; the pictured wrist will relax too.
5 minutes later (or however many you want) the wrist will point
forward, meaning you can come back to work.

#! /bin/sh
# This is a shell archive. Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file". To overwrite existing
# files, type "sh file -c". You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g.. If this archive is complete, you
# will see the following message at the end:
# "End of archive 1 (of 2)."
# Contents: xwrits xwrits/Imakefile xwrits/Makefile xwrits/Makefile.in
# xwrits/README xwrits/configure
# Wrapped by eddi...@arpeggio.lcs.mit.edu on Fri Aug 5 04:41:20 1994
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test ! -d 'xwrits' ; then
echo shar: Creating directory \"'xwrits'\"
mkdir 'xwrits'
fi
if test -f 'xwrits/Imakefile' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xwrits/Imakefile'\"
else
echo shar: Extracting \"'xwrits/Imakefile'\" \(1155 characters\)
sed "s/^X//" >'xwrits/Imakefile' <<'END_OF_FILE'
X/* If you do not have Xpm installed, change this 0 to a 1 */
X#define NO_XPM 0
X
XATOB = atob
XGUNZIP = gunzip -f
X
X#if NO_XPM
XEXTRA_DEFINES = -DNO_XPM
X#endif
X
X/* If you're using Xpm and xpm.h is not in /usr/local/include,
X change this line */
XEXTRA_INCLUDES = -I/usr/local/include
X
X#if NO_XPM
XXPMLIB =
X#else
X/* If you're using Xpm and -lXpm is not in the default library path or
X /usr/local/lib, change this line */
XXPMLIB = -L/usr/local/lib -lXpm
X#endif
X
XLOCAL_LIBRARIES = $(XPMLIB) $(XLIB)
X
XSRCS = xwrits.c
X#if NO_XPM
XOBJS = writs1.xbm writs2.xbm writsok.xbm writsres.xbm xwrits.o
X#else
XOBJS = writs1.xpm writs2.xpm writsok.xpm writsres.xpm xwrits.o
X#endif
X
Xxwrits: $(OBJS) $(DEPLIBS)
X RemoveTargetProgram($@)
X $(CC) -o $@ xwrits.o $(LDOPTIONS) $(LOCAL_LIBRARIES) $(LDLIBS) $(EXTRA_LOAD_FLAGS)
X
Xwrits1.xpm: writs1.pkp
Xwrits2.xpm: writs2.pkp
Xwritsok.xpm: writsok.pkp
Xwritsres.xpm: writsres.pkp
Xwrits1.xbm: writs1.pkb
Xwrits2.xbm: writs2.pkb
Xwritsok.xbm: writsok.pkb
Xwritsres.xbm: writsres.pkb
X
X.SUFFIXES: .xpm .xbm .pkb .pkp
X.pkb.xbm:
X $(ATOB) < $< > $*.gz
X $(GUNZIP) $*.gz
X @touch $*.xbm
X.pkp.xpm:
X $(ATOB) < $< > $*.gz
X $(GUNZIP) $*.gz
X @touch $*.xpm
END_OF_FILE
if test 1155 -ne `wc -c <'xwrits/Imakefile'`; then
echo shar: \"'xwrits/Imakefile'\" unpacked with wrong size!
fi
# end of 'xwrits/Imakefile'
fi
if test -f 'xwrits/Makefile' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xwrits/Makefile'\"
else
echo shar: Extracting \"'xwrits/Makefile'\" \(751 characters\)
sed "s/^X//" >'xwrits/Makefile' <<'END_OF_FILE'
XCC = gcc
XATOB = atob
XGUNZIP = gunzip -f
X
XCFLAGS = -O
XLIBS = -L/usr/local/lib -lXpm -lX11
XCPPFLAGS = -I/usr/local/include
X
XPICTURES = writs1.xpm writs2.xpm writsok.xpm writsres.xpm
X
X.SUFFIXES: .xpm .xbm .pkb .pkp
X.pkb.xbm:
X $(ATOB) < $< > $*.gz
X $(GUNZIP) $*.gz
X @touch $*.xbm
X.pkp.xpm:
X $(ATOB) < $< > $*.gz
X $(GUNZIP) $*.gz
X @touch $*.xpm
X
Xxwrits: xwrits.c $(PICTURES) Makefile
X $(CC) -o xwrits xwrits.c $(CPPFLAGS) $(CFLAGS) $(LIBS)
X
Xclean:
X rm -f xwrits *.o core
Xmostlyclean: clean
Xdistclean: clean
X rm -f Makefile config.status
Xrealclean: distclean
X
Xwrits1.xpm: writs1.pkp
Xwrits2.xpm: writs2.pkp
Xwritsok.xpm: writsok.pkp
Xwritsres.xpm: writsres.pkp
Xwrits1.xbm: writs1.pkb
Xwrits2.xbm: writs2.pkb
Xwritsok.xbm: writsok.pkb
Xwritsres.xbm: writsres.pkb
END_OF_FILE
if test 751 -ne `wc -c <'xwrits/Makefile'`; then
echo shar: \"'xwrits/Makefile'\" unpacked with wrong size!
fi
# end of 'xwrits/Makefile'
fi
if test -f 'xwrits/Makefile.in' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xwrits/Makefile.in'\"
else
echo shar: Extracting \"'xwrits/Makefile.in'\" \(696 characters\)
sed "s/^X//" >'xwrits/Makefile.in' <<'END_OF_FILE'
XCC = @CC@
XATOB = atob
XGUNZIP = gunzip -f
X
XCFLAGS = -O
XLIBS = @LIBS@ -lX11
XCPPFLAGS = @INCLUDES@ @DEFS@
X
XPICTURES = @PICTURES@
X
X.SUFFIXES: .xpm .xbm .pkb .pkp
X.pkb.xbm:
X $(ATOB) < $< > $*.gz
X $(GUNZIP) $*.gz
X @touch $*.xbm
X.pkp.xpm:
X $(ATOB) < $< > $*.gz
X $(GUNZIP) $*.gz
X @touch $*.xpm
X
Xxwrits: xwrits.c $(PICTURES) Makefile
X $(CC) -o xwrits xwrits.c $(CPPFLAGS) $(CFLAGS) $(LIBS)
X
Xclean:
X rm -f xwrits *.o core
Xmostlyclean: clean
Xdistclean: clean
X rm -f Makefile config.status
Xrealclean: distclean
X
Xwrits1.xpm: writs1.pkp
Xwrits2.xpm: writs2.pkp
Xwritsok.xpm: writsok.pkp
Xwritsres.xpm: writsres.pkp
Xwrits1.xbm: writs1.pkb
Xwrits2.xbm: writs2.pkb
Xwritsok.xbm: writsok.pkb
Xwritsres.xbm: writsres.pkb
END_OF_FILE
if test 696 -ne `wc -c <'xwrits/Makefile.in'`; then
echo shar: \"'xwrits/Makefile.in'\" unpacked with wrong size!
fi
# end of 'xwrits/Makefile.in'
fi
if test -f 'xwrits/README' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xwrits/README'\"
else
echo shar: Extracting \"'xwrits/README'\" \(2582 characters\)
sed "s/^X//" >'xwrits/README' <<'END_OF_FILE'
XWHAT YOU NEED TO MAKE XWRITS
X----------------------------
Xatob - an ASCII-to-binary converter
Xgunzip - GNU's file compression system
XXpm - a pixmap library; this is not strictly necessary
Xatob and gunzip are used to decompress the huge Xpm and Xbm files
Xwhich come with this program. If you do not atob, gunzip, or both, the
Xuncompressed files are available from the author, eddi...@mit.edu.
X
XMAKING XWRITS, SHORT VERSION
X----------------------------
XType ./configure, then make.
X
XMAKING XWRITS, LONGER VERSION
X-----------------------------
XXwrits can compile with or without the Xpm pixmap library. It looks
Xmuch better with Xpm, so using Xpm is the default. To force it to
Xcompile without Xpm, type
X ./configure --without-xpm
Xinstead of just ./configure. If xpm.h and -lXpm are not in the default
Xpaths or /usr/local, use a syntax like this:
X ./configure --with-xpm=DIRECTORY
X # means xpm.h is in DIRECTORY/include and -lXpm is in DIRECTORY/lib
Xor this:
X ./configure --with-xpm=DIR1,DIR2
X # means xpm.h is in DIR1 and -lXpm is in DIR2
X
XMAKING XWRITS WITH IMAKE
X------------------------
Xxmkmf ; make
XIf your Xpm is in a non-standard place (not /usr/local), or you do not
Xwant to use Xpm, edit the Imakefile first.
X
XOR YOU COULD TRY
X----------------
Xgcc -O -o xwrits xwrits.c -lXpm -lX11
X
XABOUT XWRITS
X------------
XXwrits was written when my wrists really hurt. They don't any more. It
Xreminds you to take a wrist break by popping up an X window with a
Xflashing wrist on it. You're supposed to click on the flashing pained
Xwrist when you leave the computer to take a wrist break; the pictured
Xwrist will relax too. 5 minutes later (or however many you want) the
Xwrist will point forward, meaning you can come back to work.
X
XXwrits does NOT monitor the X server to see how much typing you're
Xdoing. It's just on a timer. :)
X
XYou can change how much time you can type before xwrits pops up with
Xthe -typetime (or -t) command-line option, and how much time a wrist
Xbreak lasts with the -breaktime (or -b) command-line option.
X
XThe compiled-in defaults are (-typetime) 55 minutes and (-breaktime) 5
Xminutes. You can change these at compile time by supplying macro
Xarguments to cc of the form "-DDEFAULT_TYPETIME=40
X-DDEFAULT_BREAKTIME=10".
X
XCOPYRIGHT
X---------
XSource and pictures copyright 1994 Eddie Kohler.
X
XYou may copy, distribute, or alter xwrits freely, in whole or in part,
Xas long as the above notice is kept intact.
X
XHowever, the `configure' script is copyright 1994 the Free Software
XFoundation, and is distributed under the terms of the GNU General
XPublic License.
END_OF_FILE
if test 2582 -ne `wc -c <'xwrits/README'`; then
echo shar: \"'xwrits/README'\" unpacked with wrong size!
fi
# end of 'xwrits/README'
fi
if test -f 'xwrits/configure' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xwrits/configure'\"
else
echo shar: Extracting \"'xwrits/configure'\" \(23533 characters\)
sed "s/^X//" >'xwrits/configure' <<'END_OF_FILE'
X#!/bin/sh
X# Guess values for system-dependent variables and create Makefiles.
X# Generated automatically using autoconf version 1.10
X# Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
X
X# This configure script is free software; you can redistribute it and/or
X# modify it under the terms of the GNU General Public License as published
X# by the Free Software Foundation; either version 2, or (at your option)
X# any later version.
X
X# This script is distributed in the hope that it will be useful, but
X# WITHOUT ANY WARRANTY; without even the implied warranty of
X# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
X# Public License for more details.
X
X# You should have received a copy of the GNU General Public License
X# along with this program; if not, write to the Free Software
X# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
X
X# Save the original args to write them into config.status later.
Xconfigure_args="$*"
X
X# Only options that might do something get documented.
Xac_usage="Usage: configure [options] [host]
XOptions: [defaults in brackets after descriptions]
X--build=BUILD configure for building on BUILD [BUILD=HOST]
X--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
X--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
X--exec-prefix=PREFIX install host dependent files in PREFIX [/usr/local]
X--help print this message
X--host=HOST configure for HOST [guessed]
X--prefix=PREFIX install host independent files in PREFIX [/usr/local]
X--quiet, --silent do not print \`checking for...' messages
X--srcdir=DIR find the sources in DIR [configure dir or ..]
X--target=TARGET configure for TARGET [TARGET=HOST]
X--verbose print results of checks
X--version print the version of autoconf that created configure
X--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
X--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
X--x-includes=DIR X include files are in DIR
X--x-libraries=DIR X library files are in DIR"
X
X# Initialize some variables set by options.
X# The variables have the same names as the options, with
X# dashes changed to underlines.
Xbuild=NONE
Xexec_prefix=
Xhost=NONE
Xno_create=
Xnonopt=NONE
Xnorecursion=
Xprefix=
Xprogram_prefix=
Xprogram_suffix=
Xprogram_transform_name=
Xsilent=
Xsrcdir=
Xtarget=NONE
Xverbose=
Xx_includes=
Xx_libraries=
X
Xac_prev=
Xfor ac_option
Xdo
X
X # If the previous option needs an argument, assign it.
X if test -n "$ac_prev"; then
X eval "$ac_prev=\$ac_option"
X ac_prev=
X continue
X fi
X
X # Accept (but ignore some of) the important Cygnus configure
X # options, so we can diagnose typos.
X
X case "$ac_option" in
X -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
X *) ac_optarg= ;;
X esac
X
X case "$ac_option" in
X
X -build | --build | --buil | --bui | --bu | --b)
X ac_prev=build ;;
X -build=* | --build=* | --buil=* | --bui=* | --bu=* | --b=*)
X build="$ac_optarg" ;;
X
X -disable-* | --disable-*)
X ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
X # Reject names that aren't valid shell variable names.
X if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
X echo "configure: $ac_feature: invalid feature name" >&2; exit 1
X fi
X ac_feature=`echo $ac_feature| sed 's/-/_/g'`
X eval "enable_${ac_feature}=no" ;;
X
X -enable-* | --enable-*)
X ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
X # Reject names that aren't valid shell variable names.
X if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
X echo "configure: $ac_feature: invalid feature name" >&2; exit 1
X fi
X ac_feature=`echo $ac_feature| sed 's/-/_/g'`
X case "$ac_option" in
X *=*) ;;
X *) ac_optarg=yes ;;
X esac
X eval "enable_${ac_feature}='$ac_optarg'" ;;
X
X # For backward compatibility, recognize -exec-prefix and --exec_prefix.
X -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
X | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
X | --exec | --exe | --ex)
X ac_prev=exec_prefix ;;
X -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
X | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
X | --exec=* | --exe=* | --ex=*)
X exec_prefix="$ac_optarg" ;;
X
X -gas | --gas | --ga | --g)
X with_gas=yes ;; # Obsolete; use --with-gas.
X
X -help | --help | --hel | --he)
X cat << EOF
X$ac_usage
XEOF
X exit 0 ;;
X
X -host | --host | --hos | --ho)
X ac_prev=host ;;
X -host=* | --host=* | --hos=* | --ho=*)
X host="$ac_optarg" ;;
X
X -nfp | --nfp | --nf)
X with_fp=no ;; # Obsolete; use --without-fp.
X
X -no-create | --no-create | --no-creat | --no-crea | --no-cre \
X | --no-cr | --no-c)
X no_create=yes ;;
X
X -norecursion | --norecursion | --norecursio | --norecursi \
X | --norecurs | --norecur | --norecu | --norec | --nore | --nor)
X norecursion=yes ;;
X
X -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
X ac_prev=prefix ;;
X -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
X prefix="$ac_optarg" ;;
X
X -program-prefix | --program-prefix | --program-prefi | --program-pref \
X | --program-pre | --program-pr | --program-p)
X ac_prev=program_prefix ;;
X -program-prefix=* | --program-prefix=* | --program-prefi=* \
X | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
X program_prefix="$ac_optarg" ;;
X
X -program-suffix | --program-suffix | --program-suffi | --program-suff \
X | --program-suf | --program-su | --program-s)
X ac_prev=program_suffix ;;
X -program-suffix=* | --program-suffix=* | --program-suffi=* \
X | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
X program_suffix="$ac_optarg" ;;
X
X -program-transform-name | --program-transform-name \
X | --program-transform-nam | --program-transform-na \
X | --program-transform-n | --program-transform- \
X | --program-transform | --program-transfor \
X | --program-transfo | --program-transf \
X | --program-trans | --program-tran \
X | --progr-tra | --program-tr | --program-t)
X ac_prev=program_transform_name ;;
X -program-transform-name=* | --program-transform-name=* \
X | --program-transform-nam=* | --program-transform-na=* \
X | --program-transform-n=* | --program-transform-=* \
X | --program-transform=* | --program-transfor=* \
X | --program-transfo=* | --program-transf=* \
X | --program-trans=* | --program-tran=* \
X | --progr-tra=* | --program-tr=* | --program-t=*)
X program_transform_name="$ac_optarg" ;;
X
X -q | -quiet | --quiet | --quie | --qui | --qu | --q \
X | -silent | --silent | --silen | --sile | --sil)
X silent=yes ;;
X
X -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
X ac_prev=srcdir ;;
X -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
X srcdir="$ac_optarg" ;;
X
X -target | --target | --targe | --targ | --tar | --ta | --t)
X ac_prev=target ;;
X -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
X target="$ac_optarg" ;;
X
X -v | -verbose | --verbose | --verbos | --verbo | --verb)
X verbose=yes ;;
X
X -version | --version | --versio | --versi | --vers)
X echo "configure generated by autoconf version 1.10"
X exit 0 ;;
X
X -with-* | --with-*)
X ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
X # Reject names that aren't valid shell variable names.
X if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
X echo "configure: $ac_package: invalid package name" >&2; exit 1
X fi
X ac_package=`echo $ac_package| sed 's/-/_/g'`
X case "$ac_option" in
X *=*) ;;
X *) ac_optarg=yes ;;
X esac
X eval "with_${ac_package}='$ac_optarg'" ;;
X
X -without-* | --without-*)
X ac_package=`echo $ac_option|sed -e 's/-*without-//'`
X # Reject names that aren't valid shell variable names.
X if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
X echo "configure: $ac_package: invalid package name" >&2; exit 1
X fi
X ac_package=`echo $ac_package| sed 's/-/_/g'`
X eval "with_${ac_package}=no" ;;
X
X --x) with_x=yes ;; # Obsolete; use --with-x.
X
X -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
X | --x-incl | --x-inc | --x-in | --x-i)
X ac_prev=x_includes ;;
X -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
X | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
X x_includes="$ac_optarg" ;;
X
X -x-libraries | --x-libraries | --x-librarie | --x-librari \
X | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
X ac_prev=x_libraries ;;
X -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
X | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
X x_libraries="$ac_optarg" ;;
X
X -*) echo "configure: $ac_option: invalid option; use --help to show usage" >&2; exit 1
X ;;
X
X *)
X if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
X echo "configure: warning: $ac_option: invalid host type" >&2
X fi
X if test "x$nonopt" != xNONE; then
X echo "configure: can only configure for one host and one target at a time" >&2; exit 1
X fi
X nonopt="$ac_option"
X ;;
X
X esac
Xdone
X
Xif test -n "$ac_prev"; then
X echo "configure: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" >&2; exit 1
Xfi
X
Xtrap 'rm -fr conftest* confdefs* core $ac_clean_files; exit 1' 1 2 15
Xtrap 'rm -fr confdefs* $ac_clean_files' 0
X
X# Save the original args if we used an alternate arg parser.
Xac_configure_temp="${configure_args-$*}"
X# Strip out --no-create and --norecursion so they don't pile up.
Xconfigure_args=
Xfor ac_arg in $ac_configure_temp; do
X case "$ac_arg" in
X -no-create | --no-create | --no-creat | --no-crea | --no-cre \
X | --no-cr | --no-c) ;;
X -norecursion | --norecursion | --norecursio | --norecursi \
X | --norecurs | --norecur | --norecu | --norec | --nore | --nor) ;;
X *) configure_args="$configure_args $ac_arg" ;;
X esac
Xdone
X
X# NLS nuisances.
X# These must not be set unconditionally because not all systems understand
X# e.g. LANG=C (notably SCO).
Xif test "${LC_ALL+set}" = 'set'; then LC_ALL=C; export LC_ALL; fi
Xif test "${LANG+set}" = 'set'; then LANG=C; export LANG; fi
X
X# confdefs.h avoids OS command line length limits that DEFS can exceed.
Xrm -rf conftest* confdefs.h
X# AIX cpp loses on an empty file, so make sure it contains at least a newline.
Xecho > confdefs.h
X
X# A filename unique to this package, relative to the directory that
X# configure is in, which we can look for to find out if srcdir is correct.
Xac_unique_file=xwrits.c
X
X# Find the source files, if location was not specified.
Xif test -z "$srcdir"; then
X ac_srcdir_defaulted=yes
X # Try the directory containing this script, then `..'.
X ac_prog=$0
X ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
X test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
X srcdir=$ac_confdir
X if test ! -r $srcdir/$ac_unique_file; then
X srcdir=..
X fi
Xfi
Xif test ! -r $srcdir/$ac_unique_file; then
X if test x$ac_srcdir_defaulted = xyes; then
X echo "configure: can not find sources in ${ac_confdir} or .." >&2; exit 1
X else
X echo "configure: can not find sources in ${srcdir}" >&2; exit 1
X fi
Xfi
Xac_ext=c
X# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
Xac_cpp='${CPP}'
Xac_compile='${CC-cc} $CFLAGS $LDFLAGS conftest.${ac_ext} -o conftest $LIBS >/dev/null 2>&1'
X
X
X
X
Xif test -z "$CC"; then
X # Extract the first word of `gcc', so it can be a program name with args.
X set ac_dummy gcc; ac_word=$2
X test -n "$silent" || echo "checking for $ac_word"
X IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
X for ac_dir in $PATH; do
X test -z "$ac_dir" && ac_dir=.
X if test -f $ac_dir/$ac_word; then
X CC="gcc"
X break
X fi
X done
X IFS="$ac_save_ifs"
Xfi
Xtest -z "$CC" && CC="cc"
Xtest -n "$CC" && test -n "$verbose" && echo " setting CC to $CC"
X
X# Find out if we are using GNU C, under whatever name.
Xcat > conftest.c <<EOF
X#ifdef __GNUC__
X yes
X#endif
XEOF
X${CC-cc} -E conftest.c > conftest.out 2>&1
Xif egrep yes conftest.out >/dev/null 2>&1; then
X GCC=1 # For later tests.
Xfi
Xrm -f conftest*
X
X
Xlibpath=""
XfoundXPM=""
X# check whether --with-xpm or --without-xpm was given.
Xwithval="$with_xpm"
Xif test -n "$withval"; then
X if test "$withval" = yes; then
X hasXPM=1
X foundXPM=""
Xelif test "$withval" = no; then
X hasXPM=""
X foundXPM=1
Xelif test `echo $withval | grep -c ,` = 1; then
X hasXPM=1
X INCLUDES="$INCLUDES -I"`echo $withval | sed -e 's/,.*$//'`
X libpath="-L"`echo $withval | sed -e 's/^.*,//'`
X foundXPM=1
Xelse
X hasXPM=1
X INCLUDES="$INCLUDES -I$withval/include"
X libpath="-L$withval/lib"
X foundXPM=1
Xfi
Xfi
X
X
Xtest -n "$silent" || echo "checking how to run the C preprocessor"
Xif test -z "$CPP"; then
X # This must be in double quotes, not single quotes, because CPP may get
X # substituted into the Makefile and ``${CC-cc}'' will simply confuse
X # make. It must be expanded now.
X CPP="${CC-cc} -E"
X cat > conftest.${ac_ext} <<EOF
X#include "confdefs.h"
X#include <stdio.h>
XSyntax Error
XEOF
X# Some shells (Coherent) do redirections in the wrong order, so need
X# the parens.
Xac_err=`eval "($ac_cpp conftest.${ac_ext} >/dev/null) 2>&1"`
Xif test -z "$ac_err"; then
X :
Xelse
X rm -rf conftest*
X CPP="${CC-cc} -E -traditional-cpp"
X cat > conftest.${ac_ext} <<EOF
X#include "confdefs.h"
X#include <stdio.h>
XSyntax Error
XEOF
X# Some shells (Coherent) do redirections in the wrong order, so need
X# the parens.
Xac_err=`eval "($ac_cpp conftest.${ac_ext} >/dev/null) 2>&1"`
Xif test -z "$ac_err"; then
X :
Xelse
X rm -rf conftest*
X CPP=/lib/cpp
Xfi
Xrm -f conftest*
Xfi
Xrm -f conftest*
Xfi
Xtest -n "$verbose" && echo " setting CPP to $CPP"
X
X# If we find X, set shell vars x_includes and x_libraries to the paths.
Xno_x=true
Xif test "x$with_x" != xno; then
Xtest -n "$silent" || echo "checking for X include and library files with xmkmf"
Xrm -fr conftestdir
Xif mkdir conftestdir; then
X cd conftestdir
X # Make sure to not put "make" in the Imakefile rules, since we grep it out.
X cat > Imakefile <<'EOF'
Xacfindx:
X @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"'
XEOF
X if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
X no_x=
X # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
X eval `make acfindx 2>/dev/null | grep -v make`
X # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
X if test ! -f $ac_im_usrlibdir/libX11.a && test -f $ac_im_libdir/libX11.a
X then
X ac_im_usrlibdir=$ac_im_libdir
X fi
X case "$ac_im_incroot" in
X /usr/include) ;;
X *) test -z "$x_includes" && x_includes="$ac_im_incroot" ;;
X esac
X case "$ac_im_usrlibdir" in
X /usr/lib | /lib) ;;
X *) test -z "$x_libraries" && x_libraries="$ac_im_usrlibdir" ;;
X esac
X fi
X cd ..
X rm -fr conftestdir
Xfi
X
Xif test -z "$ac_im_usrlibdir"; then
Xtest -n "$silent" || echo "checking for X include and library files directly"
Xif test ".$x_direct_test_library" = . ; then
X x_direct_test_library='Xt'
Xfi
Xif test ".$x_direct_test_include" = . ; then
X x_direct_test_include='X11/Intrinsic.h'
Xfi
Xcat > conftest.${ac_ext} <<EOF
X#include "confdefs.h"
X#include <$x_direct_test_include>
XEOF
X# Some shells (Coherent) do redirections in the wrong order, so need
X# the parens.
Xac_err=`eval "($ac_cpp conftest.${ac_ext} >/dev/null) 2>&1"`
Xif test -z "$ac_err"; then
X rm -rf conftest*
X no_x=
X
Xelse
X rm -rf conftest*
X for ac_dir in \
X /usr/X11R6/include \
X /usr/X11R5/include \
X /usr/X11R4/include \
X \
X /usr/include/X11R6 \
X /usr/include/X11R5 \
X /usr/include/X11R4 \
X \
X /usr/local/X11R6/include \
X /usr/local/X11R5/include \
X /usr/local/X11R4/include \
X \
X /usr/local/include/X11R6 \
X /usr/local/include/X11R5 \
X /usr/local/include/X11R4 \
X \
X /usr/X11/include \
X /usr/include/X11 \
X /usr/local/X11/include \
X /usr/local/include/X11 \
X \
X /usr/X386/include \
X /usr/x386/include \
X /usr/XFree86/include/X11 \
X \
X /usr/include \
X /usr/local/include \
X /usr/unsupported/include \
X /usr/athena/include \
X /usr/local/x11r5/include \
X /usr/lpp/Xamples/include \
X \
X /usr/openwin/include \
X /usr/openwin/share/include \
X ; \
X do
X if test -r "$ac_dir/$x_direct_test_include"; then
X test -z "$x_includes" && x_includes=$ac_dir
X no_x=
X break
X fi
X done
Xfi
Xrm -f conftest*
X
X# Check for the libraries. First see if replacing the `include' by
X# `lib' works.
Xac_save_LIBS="${LIBS}"
XLIBS="${LIBS} -l"$x_direct_test_library""
Xac_have_lib=""
Xtest -n "$silent" || echo "checking for -l"$x_direct_test_library""
Xcat > conftest.${ac_ext} <<EOF
X#include "confdefs.h"
X
Xint main() { return 0; }
Xint t() { main();; return 0; }
XEOF
Xif eval $ac_compile; then
X rm -rf conftest*
X ac_have_lib="1"
X
Xfi
Xrm -f conftest*
XLIBS="${ac_save_LIBS}"
Xif test -n "${ac_have_lib}"; then
X :; no_x=
Xelse
X :; for ac_dir in `echo "$x_includes" | sed s/include/lib/` \
X /usr/X11R6/lib \
X /usr/X11R5/lib \
X /usr/X11R4/lib \
X \
X /usr/lib/X11R6 \
X /usr/lib/X11R5 \
X /usr/lib/X11R4 \
X \
X /usr/local/X11R6/lib \
X /usr/local/X11R5/lib \
X /usr/local/X11R4/lib \
X \
X /usr/local/lib/X11R6 \
X /usr/local/lib/X11R5 \
X /usr/local/lib/X11R4 \
X \
X /usr/X11/lib \
X /usr/lib/X11 \
X /usr/local/X11/lib \
X /usr/local/lib/X11 \
X \
X /usr/X386/lib \
X /usr/x386/lib \
X /usr/XFree86/lib/X11 \
X \
X /usr/lib \
X /usr/local/lib \
X /usr/unsupported/lib \
X /usr/athena/lib \
X /usr/local/x11r5/lib \
X /usr/lpp/Xamples/lib \
X \
X /usr/openwin/lib \
X /usr/openwin/share/lib \
X ; \
Xdo
X for ac_extension in a so sl; do
X if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then
X test -z "$x_libraries" && x_libraries=$ac_dir
X no_x=
X break 2
X fi
X done
Xdone
Xfi
X
Xfi
Xtest -n "$x_includes" && test -n "$verbose" && echo " X11 headers are in $x_includes"
Xtest -n "$x_libraries" && test -n "$verbose" && echo " X11 libraries are in $x_libraries"
Xfi
X
X
Xif test -z "$foundXPM"; then
X echo looking for the Xpm library
X ac_save_LIBS="${LIBS}"
XLIBS="${LIBS} -lXpm"
Xac_have_lib=""
Xtest -n "$silent" || echo "checking for -lXpm"
Xcat > conftest.${ac_ext} <<EOF
X#include "confdefs.h"
X
Xint main() { return 0; }
Xint t() { main();; return 0; }
XEOF
Xif eval $ac_compile; then
X rm -rf conftest*
X ac_have_lib="1"
X
Xfi
Xrm -f conftest*
XLIBS="${ac_save_LIBS}"
Xif test -n "${ac_have_lib}"; then
X :; hasXPM=1
Xelse
X :;
Xfi
X
X if test -z "$hasXPM"; then
X OLDLIBS="$LIBS"
X LIBS="$LIBS -L/usr/local/lib"
X ac_save_LIBS="${LIBS}"
XLIBS="${LIBS} -lXpm"
Xac_have_lib=""
Xtest -n "$silent" || echo "checking for -lXpm"
Xcat > conftest.${ac_ext} <<EOF
X#include "confdefs.h"
X
Xint main() { return 0; }
Xint t() { main();; return 0; }
XEOF
Xif eval $ac_compile; then
X rm -rf conftest*
X ac_have_lib="1"
X
Xfi
Xrm -f conftest*
XLIBS="${ac_save_LIBS}"
Xif test -n "${ac_have_lib}"; then
X :; hasXPM=1 INCLUDES="$INCLUDES -I/usr/local/include" libpath="/usr/local/lib"
Xelse
X :;
Xfi
X
X fi
X if test -z "$hasXPM"; then
X echo " couldn't find it; running without Xpm"
X fi
Xfi
X
Xif test -n "$hasXPM"; then
X PICTURES="writs1.xpm writs2.xpm writsok.xpm writsres.xpm"
X LIBS="$LIBS -lXpm"
Xelse
X PICTURES="writs1.xbm writs2.xbm writsok.xbm writsres.xbm"
X DEFS="$DEFS -DNO_XPM"
Xfi
X
XLIBS="$libpath $LIBS"
Xtest -n "$x_libraries" && LIBS="-L$x_libraries $LIBS"
Xtest -n "$x_includes" && INCLUDES="-I$x_includes $INCLUDES"
X
X# Set default prefixes.
Xif test -n "$prefix"; then
X test -z "$exec_prefix" && exec_prefix='${prefix}' # Let make expand it.
X ac_prsub="s%^prefix\\([ ]*\\)=\\([ ]*\\).*$%prefix\\1=\\2$prefix%"
Xfi
Xif test -n "$exec_prefix"; then
X ac_prsub="$ac_prsub
Xs%^exec_prefix\\([ ]*\\)=\\([ ]*\\).*$%exec_prefix\\1=\\2$exec_prefix%"
Xfi
X# Any assignment to VPATH causes Sun make to only execute
X# the first set of double-colon rules, so remove it if not needed.
X# If there is a colon in the path, we need to keep it.
Xif test "x$srcdir" = x.; then
X ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
Xfi
X
X# Quote sed substitution magic chars in DEFS.
Xcat >conftest.def <<EOF
X$DEFS
XEOF
Xac_escape_ampersand_and_backslash='s%[&\\]%\\&%g'
XDEFS=`sed "$ac_escape_ampersand_and_backslash" <conftest.def`
Xrm -f conftest.def
X# Substitute for predefined variables.
X
Xtrap 'rm -f config.status; exit 1' 1 2 15
Xecho creating config.status
Xrm -f config.status
Xcat > config.status <<EOF
X#!/bin/sh
X# Generated automatically by configure.
X# Run this file to recreate the current configuration.
X# This directory was configured as follows,
X# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
X#
X# $0 $configure_args
X
Xac_cs_usage="Usage: config.status [--recheck] [--version] [--help]"
Xfor ac_option
Xdo
X case "\$ac_option" in
X -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
X echo running \${CONFIG_SHELL-/bin/sh} $0 $configure_args --no-create
X exec \${CONFIG_SHELL-/bin/sh} $0 $configure_args --no-create ;;
X -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
X echo "config.status generated by autoconf version 1.10"
X exit 0 ;;
X -help | --help | --hel | --he | --h)
X echo "\$ac_cs_usage"; exit 0 ;;
X *) echo "\$ac_cs_usage"; exit 1 ;;
X esac
Xdone
X
Xtrap 'rm -f Makefile; exit 1' 1 2 15
XPICTURES='$PICTURES'
XINCLUDES='$INCLUDES'
XCC='$CC'
XCPP='$CPP'
XLIBS='$LIBS'
Xsrcdir='$srcdir'
Xtop_srcdir='$top_srcdir'
Xprefix='$prefix'
Xexec_prefix='$exec_prefix'
XDEFS='$DEFS'
Xac_prsub='$ac_prsub'
Xac_vpsub='$ac_vpsub'
Xextrasub='$extrasub'
XEOF
Xcat >> config.status <<\EOF
X
Xac_given_srcdir=$srcdir
X
XCONFIG_FILES=${CONFIG_FILES-"Makefile"}
Xfor ac_file in .. ${CONFIG_FILES}; do if test "x$ac_file" != x..; then
X # Remove last slash and all that follows it. Not all systems have dirname.
X ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
X if test "$ac_dir" != "$ac_file"; then
X # The file is in a subdirectory.
X test ! -d "$ac_dir" && mkdir "$ac_dir"
X ac_dir_suffix="/$ac_dir"
X else
X ac_dir_suffix=
X fi
X
X # A "../" for each directory in $ac_dir_suffix.
X ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
X case "$ac_given_srcdir" in
X .) srcdir=.; top_srcdir="$ac_dots." ;;
X /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
X *) # Relative path.
X srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
X top_srcdir="$ac_dots$ac_given_srcdir" ;;
X esac
X
X echo creating "$ac_file"
X rm -f "$ac_file"
X comment_str="Generated automatically from `echo $ac_file|sed 's|.*/||'`.in by configure."
X case "$ac_file" in
X *.c | *.h | *.C | *.cc | *.m ) echo "/* $comment_str */" > "$ac_file" ;;
X * ) echo "# $comment_str" > "$ac_file" ;;
X esac
X sed -e "
X$ac_prsub
X$ac_vpsub
X$extrasub
Xs%@PICTURES@%$PICTURES%g
Xs%@INCLUDES@%$INCLUDES%g
Xs%@CC@%$CC%g
Xs%@CPP@%$CPP%g
Xs%@LIBS@%$LIBS%g
Xs%@srcdir@%$srcdir%g
Xs%@top_srcdir@%$top_srcdir%g
Xs%@prefix@%$prefix%g
Xs%@exec_prefix@%$exec_prefix%g
Xs%@DEFS@%$DEFS%
X" $ac_given_srcdir/${ac_file}.in >> $ac_file
Xfi; done
X
X
Xexit 0
XEOF
Xchmod +x config.status
Xtest -n "$no_create" || ${CONFIG_SHELL-/bin/sh} config.status
X
END_OF_FILE
if test 23533 -ne `wc -c <'xwrits/configure'`; then
echo shar: \"'xwrits/configure'\" unpacked with wrong size!
fi
chmod +x 'xwrits/configure'
# end of 'xwrits/configure'
fi
echo shar: End of archive 1 \(of 2\).
cp /dev/null ark1isdone
MISSING=""
for I in 1 2 ; do
if test ! -f ark${I}isdone ; then
MISSING="${MISSING} ${I}"
fi
done
if test "${MISSING}" = "" ; then
echo You have unpacked both archives.
rm -f ark[1-9]isdone
else
echo You still need to unpack the following archives:
echo " " ${MISSING}
fi
## End of shell archive.
exit 0

exit 0 # Just in case...
--
// ch...@Sterling.COM | Send comp.sources.x submissions to:
\X/ Amiga: The only way to fly! | sour...@sterling.com
GCS d++(--) h++ s++:+ g+++(?) p? au(*)(0) a w+ v-(*) C++ US+++ P+ L+ 3 N++ K
!W M V-- -po+ Y+ t+ 5++ j- r+ G+ v b+++ D- b-- e+ u+ h- f+ r+++ !n y+++

Eddie Kohler

unread,
Mar 13, 1995, 3:32:16 PM3/13/95
to
Submitted-by: eddi...@arpeggio.lcs.mit.edu (Eddie Kohler)
Posting-number: Volume 23, Issue 2
Archive-name: xwrits/part02
Environment: X11, XPM, ANSI

#! /bin/sh
# This is a shell archive. Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file". To overwrite existing
# files, type "sh file -c". You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g.. If this archive is complete, you
# will see the following message at the end:

# "End of archive 2 (of 2)."
# Contents: xwrits/configure.in xwrits/patchlevel.h xwrits/writs1.pkb
# xwrits/writs1.pkp xwrits/writs2.pkb xwrits/writs2.pkp
# xwrits/writsok.pkb xwrits/writsok.pkp xwrits/writsres.pkb
# xwrits/writsres.pkp xwrits/xwrits.c xwrits/xwrits.man
# Wrapped by eddi...@arpeggio.lcs.mit.edu on Fri Aug 5 04:41:29 1994


PATH=/bin:/usr/bin:/usr/ucb ; export PATH

if test -f 'xwrits/configure.in' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xwrits/configure.in'\"
else
echo shar: Extracting \"'xwrits/configure.in'\" \(1647 characters\)
sed "s/^X//" >'xwrits/configure.in' <<'END_OF_FILE'
XAC_INIT(xwrits.c)
XAC_SUBST(PICTURES)
XAC_SUBST(INCLUDES)
XAC_PROG_CC
X
Xlibpath=""
Xdnl Check to see if --with-xpm or --without-xpm was given, and parse the
Xdnl arguments. Options are --with-xpm=yes, --with-xpm=no, or
Xdnl --with-xpm=DIRECTORY (header files are in DIRECTORY/include,
Xdnl -lXpm is in DIRECTORY/lib) or --with-xpm=DIR1,DIR2 (headers are in
Xdnl DIR1, -lXpm is in DIR2).
XfoundXPM=""
XAC_WITH(xpm, [if test "$withval" = yes; then


X hasXPM=1
X foundXPM=""
Xelif test "$withval" = no; then
X hasXPM=""
X foundXPM=1
Xelif test `echo $withval | grep -c ,` = 1; then
X hasXPM=1
X INCLUDES="$INCLUDES -I"`echo $withval | sed -e 's/,.*$//'`
X libpath="-L"`echo $withval | sed -e 's/^.*,//'`
X foundXPM=1
Xelse
X hasXPM=1
X INCLUDES="$INCLUDES -I$withval/include"
X libpath="-L$withval/lib"
X foundXPM=1

Xfi])
X
XAC_FIND_X
X
Xdnl If we have not found Xpm, look for it in the normal places and in
Xdnl /usr/local.


Xif test -z "$foundXPM"; then
X echo looking for the Xpm library

X AC_HAVE_LIBRARY(Xpm, [hasXPM=1])


X if test -z "$hasXPM"; then
X OLDLIBS="$LIBS"
X LIBS="$LIBS -L/usr/local/lib"

X AC_HAVE_LIBRARY(Xpm, [hasXPM=1 INCLUDES="$INCLUDES -I/usr/local/include" libpath="/usr/local/lib"])


X fi
X if test -z "$hasXPM"; then
X echo " couldn't find it; running without Xpm"
X fi
Xfi
X

Xdnl Set the correct set of pictures.


Xif test -n "$hasXPM"; then
X PICTURES="writs1.xpm writs2.xpm writsok.xpm writsres.xpm"
X LIBS="$LIBS -lXpm"
Xelse
X PICTURES="writs1.xbm writs2.xbm writsok.xbm writsres.xbm"
X DEFS="$DEFS -DNO_XPM"
Xfi
X
XLIBS="$libpath $LIBS"
Xtest -n "$x_libraries" && LIBS="-L$x_libraries $LIBS"
Xtest -n "$x_includes" && INCLUDES="-I$x_includes $INCLUDES"
X

XAC_OUTPUT(Makefile)
END_OF_FILE
if test 1647 -ne `wc -c <'xwrits/configure.in'`; then
echo shar: \"'xwrits/configure.in'\" unpacked with wrong size!
fi
# end of 'xwrits/configure.in'
fi
if test -f 'xwrits/patchlevel.h' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xwrits/patchlevel.h'\"
else
echo shar: Extracting \"'xwrits/patchlevel.h'\" \(22 characters\)
sed "s/^X//" >'xwrits/patchlevel.h' <<'END_OF_FILE'
X#define PATCHLEVEL 97
END_OF_FILE
if test 22 -ne `wc -c <'xwrits/patchlevel.h'`; then
echo shar: \"'xwrits/patchlevel.h'\" unpacked with wrong size!
fi
# end of 'xwrits/patchlevel.h'
fi
if test -f 'xwrits/writs1.pkb' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xwrits/writs1.pkb'\"
else
echo shar: Extracting \"'xwrits/writs1.pkb'\" \(3062 characters\)
sed "s/^X//" >'xwrits/writs1.pkb' <<'END_OF_FILE'
Xxbtoa Begin
X+,^C1kOLnk!!@FcBlnDN/pLiB!:?<&DW<Vd`p\0[A+uFE$m"\'d3gB#@cL!N/ib1+[Qr5aDbNUZ^EG
XT_Aa0p_(Lf=C`q/5PeApNEh]IXDj`NQ\H@,I45Q:?AjmhC,d!+=%GP`3&_opO##PFRAVo-!QiUP[Yq
Xo@$DQcn@VfCtW0fAZ7=H2dWJI-@p8j3PX3LO\b&h*51h^J;+hYn>PC^+gZ211l[L3rg-C#oPNgY_)q
XW&Hr0Y!!.U_Ht2885f*(!:d!bW.uFBBjp:8jhcOb1n1[@7chPL8U&^'2_Ks3\->FJ#;q*],VPn>79M
XsOMR%h#$0L]h'@#EZ-^_F29JLP=Q!E7K+!iDo5"AD\I#ah?p&MQXj,@HD_7_f_GNIWHm)Z`me2?KbS
XD$3O0gBa1@[Lk2^D'NGGg;^oB[>f\cC)[1Pe2@B*W,2Z2;;2ADU:(Xf7;X8WMV:P8'X`pN.;Be&;q*
X],VPn>79MsOMR%h#$0L]hg@#EZ-^_F29J156FYg:>ZZT4'3@('+jb'Dg5`p,a'Wj]saB2D<HXQd&LC
X3s%acnD/,4AS1?`_PVYeOj])rd*EN\1TWhR]()j@o)lpL61lfe_$;/^`]Q]^j-eCF(6.f^HY/8N3,f
XKeFr)\=@8Zd5Aap/:_e]Lc0N>f=XhC&9GqV@FM@I8_>n+7+W,aQ]sfWZeL.S9;GX3kSb$RkGb6iMnl
XJhhQd#M,+(G$*=SrT\%FmB0FNR]\R+$n)0jAM\1#mc63iRpNn!oH&Z(+6@V7-=KP@"'C"$e_8!LTXj
XS\Fh7QJ4OLZPM5Mg31Jaq%GS(1If/ZgD>5/"GGhF,urkh_2X$R^^>KsJJf#(9XUum:[EXYo4*i[BFG
XMY]E#&$=ah&e]=QDh=)o,-Gf,"lo:doW!N=[:XcGKcd-/d)ICA/=^_e=GJgCEeI7``)Hl3l*$k2;X9
X6jf@"BoZKdNDb%:(1"9%\DF8&aUgQ4_6UIb9V=M4$^$bgie&I!FA?<oPunk\a<(#N'':K--8RER)"@
Xa^uX>u0+(MV:sJW;E:^H%;.tof<`NH?n,cu9Mf7JG:e<E3P;<$6,Z.dnTGH?N-->4X=R>FKOsGK%#H
XkL8UR'KP;%^=lekL*t"]sHiZ*KVk;qjJ<K)dA$WgU2&qbu7(US5mQ\D"A2h5T+?3!ugs9k2#`*k9qT
XbsXhXA+lV)e\C;G:JDP3`=20`p7\p;F!UGhHViJ.3I(aS;;29W+Z&hb[LI0"rS.>$[c)(!r+p/p\BX
XqjfW!S*%J=\mNS7FX\YCX?+P$0BD*t3_`tSP>!*&O4cf$IqS-L%&g3.3^.;9\F5R>/N%Y.PfBcB.f%
Xlb]>XTP6YX/9m35SG7C^`GX[FW++K;BCNr01!bZ7sbG:eS.2J63*<T9WRMHa\ZG+'h.*4R*uqiFm_:
XpA6gZ(+@&fY\sI&]`E89(5]&SE8uFR[,'Y4::t2ougq:1s(^=2NB0;`S9_=0Md6f;@[lshWg7AM`nI
XTld+pW^n@n!*I9'\#o'Z'"h6Wl_<XbZ/_"-ULr_\<.C:nDln+Zo#H'+:\@Jh!L&?>O_%Q'=_rZdWbb
XMSY_@0`jh:&Jn/E\(>'tk'rp*;uQFN)(UVsW>m;3D5<n0>ub@m0\CP\#3ufaSL5W^ju#7.Y$74dS;A
X:7p`*=LV.DA8!ta7P;`FAI!H86-Q+^5m@Pe*c1s&YM`a-477nh-s0r=@,prE;6@qp&J#np];&kl)C`
XdN9lXDjIJS&+2.'*N$WD%(O3d.$3eZ<7I7EfmCWI3#nC)#.7a,lh'ao$j`H&4DRB7_=S$Ns>s=C>7t
X"JfB2ElJ<bi[l_`>bs7Pg`t!3XB)jjj](%.9nCU)afQg$TX^8BsT/"l>8H>h8QndsA#jc-W?uRHO]k
XgUM?cFj%H-/P<+3;Ab3RRK5\(9E)81]l3XIF3gI6dYOpA?r$B>ZmWTJue-.%$@nC@6o&qap4\LV>`d
XhniIp1,o+5@D]](WW&doMA#Y((LMT6Uf)L3`9N[_CQ)Yd!*GW4oh9eu5S2.b,^Y:ZA2)G,.p^Su:?u
XV(Wh5'1cTkgjV[8[R<-0u]j;I\!q'76Qd%AO+hrmat4luWe`J7:`L7^N/Vi;RL$P!t15=i3,d*nB`c
XsACI/WQ9Y89_'fM>-_E_Q8+I8"DP-^$UAs)i-/g(U]h21(u!HYaC=O2J6o@LI*TD#/Q`/#^g"UM9\s
X&ULT7O+Y*[\2n?,)A+UY(Kt60S,3FT%`B8#/h"Jg=ZNV/OEGg-[#HVmH>'ni1OsG49V6J:7=-<]%9[
X!;a4-NXqB1^pMhe*OQ)kQI3^%mgF<g_3;@@RKXCUUJb_6&dM@]D<+=Ci0r0`<#%RB]"HZH;oSOcB`^
Xg8qC@$3<t_Qh2l:j(BXl<Ka<Lc8a+,QO@=n@D-Z(EqNRL1cMMjSePO(/]ABjSSt6:,t[dlKRO+^X<^
XZ\+ENUH2m:]5m_Sq@p6?p!0.=3Q[gCAa=-<]p5f!\_S^/P<?edC:dl0b>b$tRJK>5u[gIBI6EJ?ekQ
X]cRIRV3/n4dEkJXZlKs#XC)u[7T3Jr3f,m4J4(qoag;eTe5T=S`Rl9!NRuC+$/X*gjj<L[iKkllkCp
XM"iqG[#Rmf[R'6Ie"0fe7@;`g-/n7M!X6X4s:NV9$m9s_K0>F:D:Us>91=#N+X>-U)q(m\.Op43<mD
X7q-gBPQ8p*[1#$fRDI=ic\I2A@BL][@^P%&p?LJD(JE3%+VaaaBacP0*R=Ga<*N!1:bCmp&O!!,.?)
X@mILK$QGaCP/YF!=5.LY!Rrp>0atHqB+.(Cf,;J&gNCLIe97B;%(0AR$pea^)8f;*FiG!BG+C?1[9[
XSW88YOB"Xq^l`^FYg@#EZ-^_F29J154P!E7K+!iDo5"AD\I#ah?p&MQXj,@HD_`kW:rNIWHm)Z`me2
X?KbSD$3O0gBa1@[Lk2^D'NGGg.&jl[>f\cC)[1Pe2@B*W,2Z2;;2ADU:(Xfa6rBbhf!`="1p_F`sq,
X1z
Xxbtoa End N 2373 945 E 84 S 4881e R 23418817
END_OF_FILE
if test 3062 -ne `wc -c <'xwrits/writs1.pkb'`; then
echo shar: \"'xwrits/writs1.pkb'\" unpacked with wrong size!
fi
# end of 'xwrits/writs1.pkb'
fi
if test -f 'xwrits/writs1.pkp' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xwrits/writs1.pkp'\"
else
echo shar: Extracting \"'xwrits/writs1.pkp'\" \(2250 characters\)
sed "s/^X//" >'xwrits/writs1.pkp' <<'END_OF_FILE'
Xxbtoa Begin
X+,^C1kOLnk!!@FcBlnDN/pM>P!:AQGCZ@l(L@OTl;i"\5in^GtV&uDX91(-S9gcPb5fj46./iR>a!]
X"*cf#b$AgGXu^g9!dV3rDM=n-h4h*\[Omb@0gh;,!\a4HAJh:&Qg0AT"ipWLV/:EP&`kH@+as.T=eq
XtKOXX7u(p[m/](q_.F+].]be?XB=rs#`ErI=C\7muL8Z*?OQ35BqJQq/%>kS\/(q@`aNS0:'7Qnm]_
X!,qkRs=RoqCM^:$B]NF`6abqGuQFp>j@`aNS0:'7Qnm]_!,qkRs=RoqCM^:$B]NF`6abqGuQFp>j@`
XaNS0:'7Qnm]_!,qkRs=RoqCM^:$B]NF`6abqGuQFp>j@`aNS0:'7Qnm]_!,qkRs=RoqCM^:$B]NF`6
XabqGuQFp>j@`aNS0:'7Qnm]_!,qkRs=RoqCM^:$B]NF`6abqGuQFp>j@`aNS0:'7Qnm]_!,qkRs=Ro
XqCM^:$B]NF`6abqGuf%Rc[[hV++R_2*j($&ES'n@b_[Wntfb._5&Z%[OMYq3Gr#?9?6SO?=O6a=0L:
Xsb,,FoYN&YYne&/42#[%'0M2`leZ"66oa4h9A$FH+bD6T2DYuZ^ZU1Ro*e$eB(L?EpP/<=;ERI)OW(
XZ0X,7tbAf;bHB0P%/Q'Sn:,(h<,,BZ*_4nSC[@3&3HE@p]?Q$&tY,?9Z9JUp2L?[-F?JEBOgUC`s]X
XA%+BX67`QB]/6'mB*#iX$GOUK?i^P\I^1m26UUJlh?5="/!;*P?-J]MA$L-%X02?Ep?^;mbb2^)N/8
X>Z6*0Ct^Du*iqf6_$ZB-A8*.N[-Nt]f!&3g=Nb#"hm$tN.q+8lmY/J\pS-h]o3Mu%?L7DWGo_bIPLg
Xt'_4nd,oiC]29O>d#`KD#g&klW0,4A^sFY4.t?C.D%jOHn0XG@T<YC?%o"]q)(L5!G(F]/96?FTaHj
X>BP9\,V%:B&f2jG5WVoDq/W9'_@bO]`q"5X>MYX8OY8;[_2P$?OU'n?H0Bflk7$s[GkaL.ha3OeqfZ
X(i*A`'Yr98=fuqR(PKS$0C=p^9/"X5d,Du0lXr/nYVk38pp2Y3LY$Q!!#M6Ds@Xi]Qk/c)KQNJRZ9=
Xb*Vn"'&D\_lTJbH$r\/uB&tnJsjna8:FSq;e&P;-<FaV(SqY?=T/i3\MoDj@\sR4IP$k<lrspB$fj)
XhJuqt,o+g4/'Zk;q\[!i)d@RMPN\9`AVoLl1\]rj^jrJ9="9MQL(A3``u_$loA3;+:Zq597-.<V6SO
X8U)Q%9Of0NNb]17jnP0_"<):>_0AIm>!F`.92o/XI,fsM#n;ojpLqn;i][rs[cCC[BaZP9D<i2klu2
XXV[?pO&F]S5qFs`HbUU"=>#URcbr<M.Hbk>T(4I@9j,1%Q:hO?,l7*9"97o]LlY(`h!L\a#/8=Zb:a
X]FEs.93gJfk]`(,qEQd\%FXOmh>$bdle[:5AD"t^YHhfGfNR@6qUt+Q0F7/AjUc[HF#@>f]R]5Uu0i
XcH@eXr]*m2f`_X"r8"l!Sk)`H[EW%@eY*H.?5(kFD-7!HUX(^\S]9=piiSXC0>j06`CokZ(O#;$J^-
X=lbKH_s;Z7AFYldbTLCKFUdd"<RN*o*j>s)]LlYO<#[CH<K\Q///PRG]]t*&Y$WIu@]KgD7^&7i^A#
XD(HI]XmYLKTgR.jX'a^17Jf'?<@CrK^\^q@GM/DP%;?VNH@<?BBaai!,OEd]=3)6^40X_ZjIX]9T\4
X=NW>"KoYCS64ure$XFC\Z]JOHTOD"/[+hl*QeYrF6=R\Wk>WCpcVf3&"D24Q0YMf`[f*=WdRuHs8Qh
XjH03:);9EI]Ko`r3YKln8RN>%6EK.Y@%_YK<?J^mh`HD-f'9G8`G->D<@TOS_Y0Ln%lVmkcVj"'e0s
XAkH)_\A1L2d/so=B=opJrh:BA@+4bWDrk]AL!I%0,BtMd?mt/A'f8f,-'nmPj;d!6_pYNc!8rqfV5[
Xp:Nk(=nfUTYKZn#U=YpWM^:$B]NF`6abqGuQFp>j@`aNS0:'7Qnm]_!,qkRs=RoqCM^:$B]NF`6abq
XGuQFp>j@`aNS0:'7Qnm]_!,qkRs=RoqCM^:$B]NF`6abqGuQFp>j@`aNS0:'7Qnm]_!,qkRs=RoqCM
X^:$B]NF`6abqGuQFp>j@`aNS0:'7Qnm]_!,qkRs=SMiDIJ5t[#AS%GA,uZ1
Xxbtoa End N 1731 6c3 E c9 S 3a1e9 R 6209191a
END_OF_FILE
if test 2250 -ne `wc -c <'xwrits/writs1.pkp'`; then
echo shar: \"'xwrits/writs1.pkp'\" unpacked with wrong size!
fi
# end of 'xwrits/writs1.pkp'
fi
if test -f 'xwrits/writs2.pkb' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xwrits/writs2.pkb'\"
else
echo shar: Extracting \"'xwrits/writs2.pkb'\" \(3558 characters\)
sed "s/^X//" >'xwrits/writs2.pkb' <<'END_OF_FILE'
Xxbtoa Begin
X+,^C1kOLnk!!@FcBlnDO/pLiB!:=(.DBh(K^#po)h.mOEIB\9s?W%TWeeojGjH**@"cE;+'91$N8L-
X`&dYLiGAWVnX[%8=-4].I+lf2r4Go_&mhHo'Rs89ouQcJj`h/U2Zp_nVN4M3d>^I+Xkq6^%ioJR,]?
XQQqrIsZ[Um/D>0rpo\B4ROiJhqmdNp@8(JpYE$bIi`e1^\@Vtl9'A0]:*RSh\ZlVAXHU'[L!LiP%C!
XpJe\hnK*;?2&Hi;A`]'c-_$\C#JX)PkNN$#6"nQK;AUIuc(@8lMRV`r"R",@80X#(m`](?*D$r$V[;
X>s,VRA(lgsib9R%)g<!-:SDqs<$`/SCd7,Wsio*'j^C+^i6-d^%4/k2hW]EqoQ<kY1;=gLEJ*qu2sj
XYY;jb`lmO@LZtG/+YpJ1[2m5[dm_8C?NMjAj.&D"1J>OAINh.@EO@t'p`]Rkb1-.XP5aS(8MgJN"Lu
XK,&JUkWUuT!)!H'=S!E!qYJq)KSgS;BN+CbZ$gsuS)'6_c"4p0#r<85]P:05NhkZqqo[ib]:B=l2D9
XrpTs#I?]Q#J_",.0@kNNZUO8KJ<P`@u?_*Z."g6\Oj3"c=j]-!M&FkWU4C`",oMHQ,gbY"@1BLq7rr
X_T#Tn)r.t3b"9E"ZcK#4LUpWP)bnq.9guAM?<!ko%!o/#hK+S]0%B8`7`:=![MP+>%d<Rf-?AV4RB;
X&2F$QB:I/rW-D=)4JHi.E(%d]-D_!u"sONbu^d;1P;m!U-&$1PQMfAYE\\&X1g!d\=Qk6=<&q,6KqJ
XBa$&pL3Z1>&Jf*D`]C/;6ppiB)lDat/1d"U!rCT$3tX)U7;\qoM7YM:&NuAb#aWTBTPJuM'-:ikT%)
X?;JnZ`M=ah2a#aUCUkd6&F*.Ua7BLdIg!\SP$%untPLEUJ]MI=8b(Zt+@A-sP5Kjau``eN7Q111M*9
Xn"2?=#9JJgZU\DCt&J@jp3r3m4_Lj3Vb]VBqZ&n.ZB&fTGIk]0[b7p!_HUVJB?EbKbtM_d)"U2D%DK
X4cWps>[%el_k4;afE&35q45aR]8_@Qi@0/no6$%+V"Tk?KnGL)]"JFU8F-d!u]>TE7WGQ`;4@PdefI
XRM@MJmdJ%ILh)%jGu6U7ndE7Q1Z,2e17bHU7WnMkFY$"^;4"ap<hkI<4/Ri#&R_?$)gi?jM@="@/5e
XSq(Lg)mP!K$oM-`VS)VBUI#$V,les@&-U7Y]RZ[D=bmuGi"2Pj5tSki?`.$M5__`9)E,-#$(-_32G;
X!NC>0>^G&.'4lBW[QF!>"fjj\^5b2*I.bZkEY$.nGuI3pBRPFEB='AtsO3W\7W\0/p(N[b+u3MlQT0
XN<'qT?U,tAG/j,"=+XHRrSNW<uS(*d>>(:mg=IYV'W/TON*t`jT9!r<O-2_nuFADpXuiLDEFf+DHO+
X$M6<ke<H1RDGT?jS/#[;qc_:jLrl\p>]5dtU+U5b:ct*`LZY_"05dJaO6NF.?bLC]=Wo&g:GhH&r[a
XQcplOeXpm^7J_86+1Y!VLNg6XmK8req7!lJ-OsSJr1!H3tO+"hF"<Y>$BQDGOtegTLA#3)l'V`&AK#
X/0H=m>A'$t=]MP7?<f5/Q4`&cc4Rj'_)HgoFb'K]Y,g]*gMu%:;9RSp^hZ,RDAt(Z-u0\B-CR6G,)F
XnD\O>C#GS-<"$^#i)e2"Je_$$"!QkkG@=brS4[omHsJ-c7\<@!S%r<ND/)9D<T8&2cBTLM\U$NX)]R
XqN]"0mW_qYsX5HC)6r!/o7.G@#oi[Kq'l?-E/XlBGoF8DHfTGm>P0#4UcaI;R`6c-f@**6aC.d+9:4
X_20;GGB2!IAg^4'l6g6p[lNGQ^XDFDiU`X\!JW3Tk3Fh\I6Q;pKkm'6Xp-lOZ7:?t')"(#sFkX8H\%
XO36o\qP:$O-er;I6HJD0LTRW/NO8[aUJ,0"9Zcc_/a?;7:6LC3rPh!?%6LV^2)XTR(&MJNX(?Icg7j
X``a_\1UA[n)d@sKc6=sr1;:"NW9p+[25on/(2OX,n0H12NN6o^1#m"Qc[p_6nVnDfgF<u?[#Ap>27[
XQF$`7+I2n#11Fr#YBQLTrOC>/g69l4*b\Z'ER0WA8Xf0Fj5P@Oi/>fLTXALq?E1PV2%L`4$sgpVRbD
XAe)l+P39pkpkCEW9oYEGpa_=%:bfVC__\)!m[A;r/]&7YeLj5]rTj8!TuUu!!*J`k()e!5hg#m]m*D
Xs69c3L4,'k:gTq!F9og^ub<!.miqJiWLs>CGT]2%c\%V!*"elr1"K*M4EWrpu8RPFtm#`m[@#_=-)!
X=WD'hC.^b^9@<";o?RV!tN?:p,I32pR=`+E"M!>nY20.DK"7Vm`e)fs/jQ/RGF2g'_rUl/D<^=F-5u
X!<L=N`X&tH'AtsTf$/$PD:Aa"D>n)ee.?.'i4i,QY[Fk%leQs3Jr83DNPFNu^Ok6aHMo:,N.,ODMZE
XK:YLCf8"&D(d[!M67pg*[ML\c`C&Ac"QQcg`A^cQ.enNnV?(l1Id%"6)&it8p8TX9k-Ls6QBfp>;cA
Xg`$],1SS/iKD4E="@hX&V%9FLkT6.d`DU0Ri/OGlXj,?R)]3?mmCasIJ$YW6'Y'*km#NJ@gN3.`[0r
X)UtVE^2-*C:NU\#51cF*/&dPhFVkSQ^$<3$FSl+b0Hor'ISjF?J?EDF22EPt'?Lq-X#OX=[@R4YNLI
X@ieJ8R9p&E$d/RiF+lcs;c:"O:-&qDW.l6!beGeOu^H[JC;X*-.5FdkuAL[)m/8-b-Npj:52666u\&
X"I5u2ZId;YX<^Y;E2^$h'"WPJ2M+2,%*?uaEnbu/8301PN4R/n7SkehV&`W-\DRb"qK:Q!EN%D+:`B
XR^(f\m$'r63A9EhtDNM"T=Vs-!Zn#("KM/in&)robT;QnD9gUUjHGcIP,[V<)<-ea#\_1Zi6/LsDSm
X!V0l60[hA.S3UmHd!=kF),)ROtNaAN58Zkk*74Fc"(gd8`+DiEN7J?X$P'JWj[3@<,-7CQFbWM9Kmi
Xrl7U-!Yo&11cm*fpmXh>^UJbn#,ms1s%U0U.3%]eL\5tV$Hcdgm$XcG&h8G6t(DPu3]%:frjTV]RE:
XsY@6SecL@fgX64moj%)g0o"R_k"(?jo1(nA!muQ(SDo&`=b4N6;XI4m-FUDHip6!X&]5QoWX.8shGY
X'XFq_b\>f_BBM5fHa`4JV`TS'`WRjbn?^f1.DGs$cJ?OadV<!"$rVaUYWB)PKl-u5eV!H;,Q6E+*6b
X@ib:bNCP)n/K8MVmq]\5!eGs,QT00->5[Y;_o&7n4GMqj.U@%.-7QcYPMQnd8L^+hui>L.oKQLTr;;
Xqi4#[a_b*Qq=\;1hKX&MuJc/[4O4I=)AbZ@%_(YA#iJ]!Z%lEN,NN<C-.?h<6P'V2RRB&k,,R=^tdG
XJ"dke5[K(AIgD417C>/g69l4*b\Z'ER0K6CV!Tp8fD8=rV[KW%fg9q!&;qi'qDJIo-bY;qYJ@VXr$S
X_SkCAVH6mk54O!V1o5)@tp0z
Xxbtoa End N 2765 acd E 82 S 5383a R 35fd0f60
END_OF_FILE
if test 3558 -ne `wc -c <'xwrits/writs2.pkb'`; then
echo shar: \"'xwrits/writs2.pkb'\" unpacked with wrong size!
fi
# end of 'xwrits/writs2.pkb'
fi
if test -f 'xwrits/writs2.pkp' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xwrits/writs2.pkp'\"
else
echo shar: Extracting \"'xwrits/writs2.pkp'\" \(2468 characters\)
sed "s/^X//" >'xwrits/writs2.pkp' <<'END_OF_FILE'
Xxbtoa Begin
X+,^C1kOLnk!!@FcBlnDO/pM>P!:ATLCEu=_`o1_).>i?dUc0di?AQ)I$!n*t8.:*.&S3o*MYQ"%cX^
XYa:Nc>UX%u`fWd90!(YL(Ie^'hiSg:X(DslE>L[X'TS"#Jb&'s\dh;`Da+5EFao\oc?a00skql`55r
X5jBQrk5l@qYo=lJ%74N^UUgsT09c8IXQP=o2GZip[Zlg:CiN$pMV$XhY@#\QepQ5]>&iBs7Z6X9H:a
XMk_2GY/:(aP$]A=noYR==(;6s9KgdXGH=>2/MdBNX_P.h^]s-^S75$3<@F5I@?<Hj:U)+TYYip5/3u
X@`9HF\UV\er-C=s5SG%?q?N@Be=rL/R2$@VpJf[)-3&HZ]^$Y@-55C"I-'.g4G)<rhOpk52MT]iMN(
X2,;(YYLcg_\DIg#f*ZK)jqYNX$Fng\&nqN[)Y30(>%+RG]S'C&>ci5WYu\S!iTLGc[G`DO/cf#e?I6
X[$Eif,NUfntFqRtC%qGXeK.<F&-V7>!HWnL*ilT/(OQh1kQ_H!e+>RTMjeI0ojEn0CXCPfU%oTF"+>
XSVPc>2Zg@=.L-i>hJ!co1D)LXthY<T>u/Y;tYF4e>gY!^(_g%.e5o=.n6Q`0C1b4O]p:[@:*2.CXqD
Xjjk?_7LDMpTOiK[d^6eU\(H,Nh^XBgV%oEq@"g%:.`*.16T@3Bd7=3.aK\o.&5T3V+Qi'_qEiiK0m0
X.0[\-,n[H_FUn>gd%4g.R>s1g*7oJ[`T@(SFd.(UhYFZt-dLfj<\0>8o3AW_bA-.:+ALF;U+?5VI)d
XJqq1D9(\:=Uh$o!XQ$mCdp2$m\I;.'_TpWV't7llkp8I<o1+&8]$4F?G_sbQ',6@)MAL<)$*=R(ME'
X(<=LPo-cVu9e?KuU*Pt`oq<.,O3hI4t"\20TF12LOIbO/rog%-ZnX#'AF$(Elk^4B:V#qr>[T#\PL]
XF*)mi+:?Z7qKN[k%%2K#4L9lbNo^'p6rWES(HYQ)rk+)=Y?m5Y_HE^pZM#q`(IDDoNk"0`ej^2'76,
XfVG#joVtDf_FT;X3[:EV;-VLmV9hODVG>Gsh\O(-dds&TK)cip%<J8mn$ia`@YLsr9Y1<4lDY!?i=f
X"/IDcrj0]Y%!oW>&EjH^2Kj8TC_MYEB*)P2^M9?A1`1\)p][<$a![7Ajj@YJT^URCd\q0G3U&7AKT\
XUa"AuqV]W][J($1j;XbcfA>gLeJ.:kGON6=?CJG&<:jA801@O4+Y7q6$X1qngra<XCYUrd]rm4!k]K
XXR7B]XqdA#5AiKZs;@usa_?5Q`/?EdJb?FX%R?4jNoYSXgm\*b!3e[S\6=n>t4576]FReF;qZSh/n5
Xfr49MI)Fm$]A=noYR==(;6s9KgdXGH=>2/MdBNX_P.h^]s-^S75$3<@F5I@?<Hj:U)+TYYipeZT;N"
XUcQ=J'kM+G[HiR<m:RpA7F2eBK>(?P'Yjad&CREn6?DpiP?8tp%?EmOjH:;$qkS6<a/UD9QC<T>%9?
Xh7"CXtJ>EZ/%`?G=J#$E'hiP*U]dccR0Zk$;<>bI80q@X;,q]`N\#<lhkf)RFal0>rI01014&BTicC
XHg`-,f>>4s<X-M7Yu!*pC.=N@/AZ-G?J&L7Lo!"uY?+k"lkPM&._Ae4/r<[-A.?]iQ:O[.V7$us'2(
X2fDUhBiZ7b5?9?=O#V7[8ufu6j0"hbQ(Ou%>/j]_@MJ9<F5Lo&X*nl";P-7/=Wc/nOhM:Iq*/2c%tC
X\U^Vi?+O!/?`+j/=1Af9>:C`=.[MpQeX+AH(;S=;'!h6@;44<YBQ^elsM:2P+`\Vf\!u4nYhV6JgEd
XrHKcC[-oopbD>U&'?JCMS;\lRh-cR`[o[3e+b60^nMdLMYf6:RNcP<uu(5K?!=3^j<WC<n5?a&5u2A
X;#Fs([`gaP+UKN.rp/B<TND#4[VFY8<9q6dTDhH][2b[_(/TKhZao"9,u#@Z^8+'uOY-KU:G]%%&b"
X?@BG'AO8+E?Mcqd8N((e]\KYW-35pcAR``H(MD+<=W"H...@Q.bf`F3)4"V,]1Xj,eu1%"%A$ABSAX^"e
X'I946>ak$MJ=hK"2#pMscL5kMW7,h#`aJsG?GG9L+:LT6d:O"/7%S3C*3?DgcA)Xqd9%m`;[<hWTe%
XTtl"8n&6TWJEFnV'%\2+KP3V>Q5")HX>IpQ48/NaWoJsKB0jcRpNBR4r:_4oQ$()F09,f?G"p9Ire"
X9qmaA[]GC*pq7,X2c$P:B5DWX`f!OWuNF'3D$]A=noYR==(;6s9KgdXGH=>2/MdBNX_P.h^]s-^S75
X$3<@F5I@?<Hj:U)+TYYipd00._EXd0kk==S0J)(Da]gk_2GY/:(aP$]A=noYR==(;6s9KgdXGH=>2/
XMdBNX_P.h^]s-^S75$3<@GUqWc-?9Qli!f^A,uZ1
Xxbtoa End N 1903 76f E a0 S 3e5de R a30fbbb2
END_OF_FILE
if test 2468 -ne `wc -c <'xwrits/writs2.pkp'`; then
echo shar: \"'xwrits/writs2.pkp'\" unpacked with wrong size!
fi
# end of 'xwrits/writs2.pkp'
fi
if test -f 'xwrits/writsok.pkb' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xwrits/writsok.pkb'\"
else
echo shar: Extracting \"'xwrits/writsok.pkb'\" \(4306 characters\)
sed "s/^X//" >'xwrits/writsok.pkb' <<'END_OF_FILE'
Xxbtoa Begin
X+,^C1kOLnk!!@FcBlnE7CG'j@D#is/9on?n%__V?-m[D.\53EWZ.NCr"@5pqcSRPI!1=<DMadVlVW<
Xmh;^=fbZGZaW31]IeNh2k,Sk+b8rkg_/I3(%KIt)hFo%SYDqYKpErR9lZFYDXI^O-sW5(7f*s7FLTb
XBNt*J,T&LYM[$@H2m^=m=+lko9ZqIT>qJ/qkp'9LC\k2cOW6Hrc@o8bGG*BlX%as=r<aQ[S1U5LVYa
Xi,Qc^'AFq.j0I6l%!!5cs?iVO+^d-*8`jW3]"_N_/9$?kH2R-Wsk+jmnNSbfUA.YViL!b<dRNKi-bm
X4>#"DO5E_meOrAdHbhi4@:EG!CpG7W/(j;uu-W0nr05,Ts=h[YO$=7k;0Gjk?;V:8>8dmO,r)q^EH3
X7b.4b;,\$[Wt>@>%.diXIE(r_lZ@Bp9!I7Mft`"jPD*U`]>&CmmP@!1ZpmZ)ha[$lNZJoMD:S?FCZB
Xh$`r<X]!=XS!QlEL#HhL*%>68=NAd#I^>)`,Z5H@.:N*pL=T)R>7_JMHKg%hW`!AY#k!]6N0$uND,T
XXJJAlfK?+7_5p/;;5T6i*kt1&0GYf2$C<]M$o!PL=Ta8TEk=Q(r3[dTR(@b-[nQ/n.Vic[G;@X0a`O
Xi[2r%-!WsV9H5_>j[WuWD$^4!jXT8^FfWBWq+_[RXYCq/aUTZ7uN=mcV=5+#iL_%<dekU&qF(KkEk\
X$+qWC$Z<i*hQZg402^6RkfW&-4<iCnpjB(p(jmL1:OG&YSO:dP[o`NVDpD`)/p*>I=p2gU24u<_T]T
XUq0L.]p[NJeM^gF0,UjUs#<"BNMTjV2b(%P'>=9WI(\pGCNY=!X;:qQ$9js[O+8ng(ne9S$CVP<1?7
X(bm-uXbIce(T1PU83PHLG-lpq1=?>[UK5SQ5@3[8kR9u:hqP3Quf=;FpC^uGJ5Q76R&T`kHJL0tU"=
X9&KA1-pW6W3+"s"=+S\>6YpL-UR7P,_F0R)iXj5"\XI)&](nZ5Fr8#A.T:krd]^gCUC.+&@>9g2i7c
X(i4_)l@i;Uf@@4FUVD-d:L4p-E5r5q)&+NFG"L-cg(:[V';%=qT[\;fU-=Cs#q'7+sX1%&*5%pb2j+
X@#p>?Ej]D*uM0`U(uKkBNg#h=ID8CK4CPZeBj8$J=bXU$18p:E?k!]nUkT[jL\PqBc?L/ARqO4&=8e
XR-TI*U:-2:NX_Ze+26E+gT/r+*DS)FA3I=pqC#GK=DLk]J48Co)!u9?/I>.!gZfI\2HAdV![ImZ@uB
X4D?%o\SD`cW:?p8@q1ausubS!^AmjW0E<<?\HfYI8<Q"P'M1':[[WD!pSX:2*r$9B-I,jEkcquX<_4
Xj'<pRt)4T[\(+eITq8)[L+elHDDBSgVI5%hqBc(T&2G*-GUispTku^5)$e0g;Y5&#oIuL@:uOL?7#u
X)5Qm*5?qP:b`aF-O<b[uY=<7i5q$h[c>;AZXBLY6@_/$ga5gUV11,T)V*W^'#@E=C_*4amVq*']?**
Xd/D5]Bs[F)iNm4KSlkdeE@QjtkB8Q@Nij#.&X!1Nnh2Ke3RL&$2LjO8CmUgRPlS"K!+Bf*HrUfXQb+
XQ3<j4HNjjQ;XHQ7<s0l(eZ2G:#2e#,23&rt4ck.AZR/9(UEf;`5"BJ%LU8=++b4U7jOPU0a22_TM]2
Xj[+Hs:Cd0M4J>_iU^@qq1:@Gm2R.t-/p>,F65<jX+R;Zt;RIEK,@hmO[0k(^1^Am;`<nQ84d<>b'7+
XNIqHeTMUn?3R;^fHXdAUF7`NeTQ5*ZKc`?AE4b[VV3X01IuoTp)o52.%+h^-qs./$g1@K\[2>E#C/Z
XQ2\840BO\hQ.KI$\lC'ZY%:*/7W68/T!['<\fY\AlnmnF!@'fDn$mJ3Xrg2IHW14<;B021T1k<tkN/
X\ZE/S"WcKb6SHa+]e;gcVD%\OkZRiWLYRma.3J9T/,(2P4mB3!/k_klaM2P[.dn&_%a#A:+=Kg2Z]q
X[G;^,'shYk&We]D&0.M5eft1hlb'KJbE">n<^@X6e']XuD5^o`XP07I-gfQ6erEYB1K[9[;VRTBjG.
X*Y_0q!jVGpBd4c`+7kS0UO36><f!-k:(N$\3nZO1&bb)T?Rq'fgYP=U(6W$"f3[@K;Zi#sJWUPD&Y\
XC%dV,%/X^&FQea)5m/oKs@X%"9^L>ka]?N)0oNMhbq2UN,j5kh\fVs$M_%3AT2`_%"G?/1KLp[0T=U
X&)?G!S:312ticf-Ii&F"5AdfJ_2lTDh=r(-VT8T18.mj[Ui#\*b;m3X'[6obI_?f?,kt\oE"Uh@Vk@
XP4JA@,&XJAY`eAU7k9:tDr1SPj<7."%H=KX"c.Igf"0qH3c4,('=BL"[.^\bFNeH^7X27'Hc%Z9qd4
X6>HYb<m[+-dqUsS*]b5%`b:jFbZ<ZWe..ki5YbsT,h7B-!YgD,RFCa<@jS9^fF'K!_Pk[(dI#km%!8
Xt]-KDPns,LNp\nsJU<g*SYoY3a+FY*Z&7:VjQ'ETcfTOFM>,]QqMOktCW*Q1'AWHg=P+XE_r4L>o:0
XWAE!W/-i&-[;F&JpIPrq'0]>`Y?AV/.aKol5<8C`#cP^9TJ)S@ZLlp1S#sB?_\)3a_X<']RI-n6"L,
XYoEEk#.phLuqR1T4][)_pAPne5=NfHjgQO,dOB1+1#j?N*,K>9%jKLuOeN=.M!>^]S<f8%iLTV*JD<
XjPX8IWiLckb;r&@D,?X@b7+`ceY,+O!tHh\I]O0B-i;#m07d5k2lK/t:_e\'3Uh0o,k[GYU+]J9sNo
XJ<-Ec@lN:Yd%^K)FeK.9F>!\&8HOJl?(adG2YDl@7miCBN$7eoC;kXV'IXbsoa"6jm8Za)A])i3`3'
Xm+2QE4eH@tJ9KGN'\<)AdlD2,Va`.lu89kG!ma^(G@[I%$C82B16Zr@?5)etl5:=I4].T87T2Hk(ql
XWd?oRV<49aIY'A9bCo'D56CnCj:r6a+i:P"K?_[WBq.Se2Gg)QZ'`Qnp(YBD2a##m]_tuNMp]Y_9=O
XUjL2Y)g.![chE3ENcGk-5&qFL'].h:*_i!/;(Td<->t&QGCTb+^"-tp[2mC:?X6gW'1&6GRg=KSHO!
X+^9@?1&N-!2S*h$F/,49g4O>OD24rNa=rLSi9@WCVR>kE-)qPam+G6$'GnDI]OTpa@=&K57WunTK]D
X&YouFg[60pBnQIcO=DWW1')IJ8RW00LI]]D^?Lg-INdS3'cE4Ya#'ni66suV:8Ck:^9$iU*CJ)+8Km
XSdH8-bMG<-M$U^E%-kGPXanmEL!7,%e-(9).cRlXBB^I*a_\:bIl=eYL,!&m,[@Y*1E6?!n=fU&1iF
X<9[#:"5'A3Z3Z.C$+`8G$jRo?\_kNU48n1-'i(b>3\XTU!$FYbq;!&9J1H*4XoAofY$WGO'?7[A/o&
XXWbja.[qLI51c/6oD/).$!:ETdb04gEFE74NmJj^G824H2afg*7R#l6U,Tq(8!WX$=lK"9WSb!QK<;
XZj!U/As%.eY1YB9K"KLPhY,^)H`(R#H6\Etd]>=Ph\]Fkuk!?)lX.hjL3RikBjgmHUWGDA\k4#'CDL
XjqLqq]C>_lr]]8UZJtKpJ2#&)*3,;R0!3m`c`"I,&;!pQqR1UfjPq%u?maA]HY]5PS]U&A2\Viq_0:
XLE@?3#3R?!!.g<M+,.CLf%[Y()aRml6?EfkQHJ5$rZN'Xp,.GrgYb\.Ri'J'r`#BV,[I0=4;W'jh74
X"GepXG!7&.jA_2q9$6a5*&InCt'@LDeu5pb"UbZ0<WXDCCTu,%o`k;e2q/Hb`8*W5+jVNdqRW*5-;K
X:(gCK@qH*B*NN&#j&1TF\:O6o*B=Rj(cf;@d*NhqmKV4u'`[@.3ZDffd\X<H5+J6,<eac>.a`JfQjn
X.4kY+([IPT#\Bc&0dQ@gpBhJ-Q4%h+=Lt$38!q8LtiK5_it]e8cOL=f=T7@H!0tFr%AlU@bX\*1Kpr
X;X@elAs*9S-eVh2Hpk_pD4X=NI[a>aIYFFt,!uB@bqhq75A]Ctmk\Q$DgRg*1T)KW)f)%S?,2h];j.
X$:2:(#0@*HJ:aaM0tkA;"hB&T!85%Dk/[L3qYECt84M<9*<"cQS_gY5l8f.t%E;f,`hH)b]h0Mf)n!
XTpAi/\jL![KW%rg9q"Q<8/0rSnd!]bYrB5J9e/3$SYAaD#rdu[Oo9We[>XKVqSQZo2OH[@%M,f!mFS
X[>C_"!D$r$n[;>s,WO=Co4OpkDR&AZH!:s1E(19nnbN5pW^\eOG1)hbYjT#8\
Xxbtoa End N 3355 d1b E fe S 658da R 895adaec
END_OF_FILE
if test 4306 -ne `wc -c <'xwrits/writsok.pkb'`; then
echo shar: \"'xwrits/writsok.pkb'\" unpacked with wrong size!
fi
# end of 'xwrits/writsok.pkb'
fi
if test -f 'xwrits/writsok.pkp' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xwrits/writsok.pkp'\"
else
echo shar: Extracting \"'xwrits/writsok.pkp'\" \(3076 characters\)
sed "s/^X//" >'xwrits/writsok.pkp' <<'END_OF_FILE'
Xxbtoa Begin
X+,^C1kOLnk!!@FcBlnE7CG'jND#itZ?#/4b'F*L]qH!ss/efUS%1/9U"OanK0+FbBe.cB?U66?k./i
XVBem@g(1`tmD3]!3fF'].)ZD=%:Eb7.3n#g$3(iFg%BmB1=iq*-Gqn(VAp;?c'_i*KsVn;iPe&UAFq
X>7@&IN<kSrk5i>ma\@Hrc^MQHhkq*jm^gfnFbP:[o_1bY@%>)OEom]YjqHPhqrmQ^U\Xbk0&Olq`j4
X]VKqo[fC,m*?*E*i]fDV#6B6>"0eY*?KuL^/QkpP0_I?hRbR9>S@50DdS%M3DJurcHCp,Q-iPm_lY#
Xg^c"#-%malheHSWIj(<`TU6'('K]%'LLL(LXaS<6HF8e(,99HR6)lMkOH[0'-K6(P,6R1kp:<\5$Mp
XR_;oJ0.N=JeJR:7kL*REJ/?5%'FaU8\8G8P.Ht0L<GGd?C_,g.L6j5@a=B:?qA>E,YOq1Ho25Z[ou^
XMZF2b$]%.T3r-,!9/!F?)8[$N*nU)2c[SCEVmX=IsjUaNj]?5gWC?J50H='SO-KKGk=O*Ql$ecT$rJ
X>@EeDRB@J`k[8ZN>Li)*,h25&LtSP?9'Xa.g"Lg=.naB#qNoi""`mUT"2mqg$.htnEn\?*(+,[?`%G
XI*k]?p%\#[*P8=H-"bq?*#,1LN^6Ws%[Hqr'40Ri\@$URg.QO[tGqB#dYL]$@FTo50bIoIh^q0"Bf2
XKWRk&a%JJCWpfR0\."?[(`LT<FP"U)2*$Dmc__a[RquVS(0eHA0NkjL*V]^?)NKZSL5%(&gcAX9YrI
XE])ej"?ZYBaRP.jn$<1ph^^N+_peI>-gXj6?_mh,mp2^-8j9gUePojKYLC1ZpObSpHE["JdA%Y1]Dh
XB<T.b<&dQSS[3*nPKeQ%p9#;=*?U(q_]]f(LWi=c%dG$_3gYO,_4["-ckYf.:kf)U*$^d_U7aQloIZ
X-u=IGX#pHHG9MQm!0t,=9JF!+c=p^8D3^g%fCe'd*5G)X(9uZ#l]9`#:N\pR^IC4&$X?rX&s03&*rg
X7bR;R&^l?O8_9=DIo>9Jt8DRP1?HUGajRY,'n9UV/$[>6"Y-FKLE5Gp2bKF0Oaa,C@e@Si31l6PCj)
XV+/&b6i_F%qk2Qa>[QP,4G.f5U9nBOrDkQ^4^S+'`8]3k:P[Z<dV"Ca1Yc=YG>\[ZK-4PkG`'C(!UJ
Xaa"3"["Y<6bImc6Yb\p2A9I3J?E'$nbj-^bi\I^8d&bIW&9;WUf,Oe6]Vs;lH-JX[[!8kD?Uned;WB
XXGi>dVdS\<Xb#^dJdFl$Ft/?0Q=l>4-L6r.)3Of]-mmhNbbMJ^6LAU_C"1N=sA/9<L<lYuDNnk)5#`
XSu[EXH$pW$a8Z^:?\#t[WU.^S[Nr"%*JYj"(u"W9i#D<h$^%L^m6A+@i\@uZkl6Tn)*7FIX/Lo^#0J
X>l_1+TX'YRKQ1N_.24_+Co+J)23A$;m/MFAtOJ81EX-6#c"D8[iapP63)XnB-Y1?bX>iU]WG:ugp1<
X&A2.I?:F.cp;!k$6@RCY6m)[]96X$D)!\gV/SI)6B`28t@?N[>.g4/@i^0C4!?@F\!4IVO-e+YZTn]
X-0aN,/0A^k(T]0SeGD]!fc)3-N7N/*/Pq45[C1?L4O+iqpBt?Bf9pX>6K;O%WNqu`oDBpgAQG#dr4K
X\/[`Y>)7%T`+/W:)0;MTsH0g8r>',G/u`UhM:%cPh;]JOB.\B(9aX\Oeeiki?M=ttpcj#&<g/H62]a
X@e,9qY:*l0==n00'DP[?>?Gd?d&D>kN.unT%tl[@+VVkl$+YtMS<*kR`URr@lIT5+(iJ%?FluqjL[n
XrS%Z1=V/'k[=3AbWWmph/TpGi^m-%HCh)bcZ4?9\"X)*-,%R,'!@+r:r;b]SP\JK=!ma[5D+m[TmbD
X!\qYAL?0m^u"BSAVu03\k]o3qIBN=CRiGpBr'JXD]c%`]@=""DGZYJ*`=0]cg;<'s=>ePJs[j/sTc5
XJOf?iN^g]gZ0fZ=nojB>/#a)\][`$N/qmUL0&d0]>l)*r>i[]Z\BHJ9@lI^+(4(,"b=e[5A@''b<9G
XREeW8>Ed?rrlkS;r(`79JVFkoK4(Qg2Nnm%`1OcLj&Sk6NHHR0q)YHI<+68BZb:.q-ZBU`CPC%D[J6
XFaVt)C(ptSC]MLk?nX`*j7/#jQ]Y*[GF7@U<[&5]V8&!lDo;H>e7U>CO8HBPui3Gc3r[\iY@*fJjG$
Xo&$I5qaJHs.[QWl/Eh0hoEKLu98V3Xg;2nWY-2TKS9@A`<)^>*FWEg.W@U)f;X4r`)E9TkcH\#EG?4
X!]*C<8sS5<>jV7(f$J5+f94SUpf89WlWH!@p)d`Veko+-t*XaX^=m))],2^MTZ7k&U"*]Z0"SVf%oV
Xg6bH/0?tg0!Och0Fu%^.6a\*gA4(2+(,<U_p&>UY.uJt7hC#UqKU"(=/=D<\Pa1:ZWgJ='&Ca=R!Wj
X&R0<)MiO]>fiP3ll4X,,?RlDVr#1uhS.b7Ude6-;*hE`fH$D=B#W=q-Cp]kVLDGcBbM<RGOmN9=26b
X7Ud-'+W'`VUh9'^i6J<':5>7C(0bb\`/LESQQBng&pZ&<ko9M>tXFI-GTVbS[hq&Z#'F\YJ%=^R)SU
XtcX-Kac.Nnl@.<Bfqa`h\7kon;_5eTY@D=20BF)oH7p"(\A/?rb#Wm@_J0:aNfLY+=dq_]A0fmm)oI
XA[B7Ymg[$jM@dVPAcFfq*8KmX5q0MRMB2fViP7hjos%kOVYmZg_l)-8k0J;#\1Qp6Yt;hO`<3&n9)&
XfMmX5mkk7Ec96%Ie5OZ0CJ2UA*i%Rb39Gq6]Wdb>(A#CP?<GDZMg8_c0.c7>`OrFB(DcVZ@U<0\$]B
X:=0eY*?KuL^/QkpP0_I?hRbR9>S@50Ddk(UdeYa?4Bo>4sC=Nh/2H!rE\/EVZ*]Wdb>(A#CP?<GDZM
Xg8_c0.c7>`OrFB(DcVZ@U<0\$]B:=0eY*?KuL^/QkpP0_I?hRbR9>S@50Ddk(UdeYa?4Bo>4sC=>'X
XNro/FhQ<Y!8A,uZ1
Xxbtoa End N 2383 94f E 84 S 4dafa R 74b23941
END_OF_FILE
if test 3076 -ne `wc -c <'xwrits/writsok.pkp'`; then
echo shar: \"'xwrits/writsok.pkp'\" unpacked with wrong size!
fi
# end of 'xwrits/writsok.pkp'
fi
if test -f 'xwrits/writsres.pkb' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xwrits/writsres.pkb'\"
else
echo shar: Extracting \"'xwrits/writsres.pkb'\" \(5508 characters\)
sed "s/^X//" >'xwrits/writsres.pkb' <<'END_OF_FILE'
Xxbtoa Begin
X+,^C1kOLnk!!@FcBlnE:ATKJK@Vl,4S]u'-3"j:#IL9S*oq;O0eAbr.F-qB4`F(E_V8S]?&eAT*`Ou
X)ZW>:CC<Y^N7U):[ecm3V#>sB)hr[\ha:G9ofqJCNUlhg#&O718Qs8;Qdo(M`r]NcLAi?*JR?GCl9U
XOW"5bMt7JT#^$afAD&Um9f>^rUTI<m>na.q=2dL5@2*P>@&B6YCCqDIc:8*s8MueT9'#!GeEtKEd=\
XV32<^c>KcYmknn`dN"YdMJ:s6<1T!S0'0)Y>(HT?B#Wf1`?Wb#YHGL!rHEg.N=I'c7_Ha^\9OCo%(]
X)$S]<t=>=Fq>M`E^$_9OHG-g?o"56Z)RJq4Y6D_#.$`4^``;m2drGe92@i+)8F3ZLrN"@,2ok1"QeG
X38f,QN&Qf3bq/3,[Cm+[=fs_YD4;konZ.(DhB0Y(;-7lEJA#db\dW;,20OL)F:?n%DU#g/2C03e?>Z
X0LE+'V::30<:ellp/h8"2;j-77*D.2DePjX5M="&MVn/.fY?+:AaY1fba_=cZdW2?9T&5C^KDK#;As
X52tn,O>s^W9p]3#BQ4\N#6*5*MTOehRYK8EIu!l&A>%0O8oW_(sJW3*MTOe*p3YZQjs^MoKk3q@Lb2
X$(t\2NZWq"J4kRn81sYkg)gX#N+rlj/KfYT]$oOU+N&fDCk*X2t4iajoC4#V)>6P'R6Ug7n7W%UKJn
X9\q2Fh#3H/)#IR7esPUE+=H9ecdj]TBo^C_dj%"SFhPoj4"CAX[i7k#&E=f$8#T6&CFJ',*b\@<lO'
XV7&;egFWlP2.05lS>N_,_%706L%3VQ9lS<ULD\$Bs0j<BL$:'kejaL0!eHc1"posL\,jEs>%9imA(e
XVD)6AhQYdCGRQLJPm:gPj(ibk096(6`cWGTSXKcmS2!MAQ2`_]LIGSXdKbQ6i\#6\(^D@DG70Jrc>(
X6O3.e2F>Iok'7^gXGPncSd&]73q-EWYdr^dK**+N_nAK@i3eQJ?)PL\"A.V)/GWh\t.PE3cCU56T9V
XO?aj2+:-]LOEiYgre2F[Me#A</*5tDOAV)B-'X^XdEe%P;[0FUc9lOrZgFRuF*'e9jTdtdf\7KK'Gm
X[V;fDXUXd4&l@):6kG,rfS6NA7r<l9H#QS4Q$YQkhmC#=i0h63]808d#AoFX,9Ya6RVLPe^Y=(4%,7
XP?GKLD;8iMEh!!bIiQ"[+ZNY@Yd;fe&a_N?NPPJ32V%%/%WfEt'Yj%?&>g;!_058q_9ib&dL7`/)Dq
Xu?o84o[1+s?Bm>3E2,oE6B%/4+n#b%]/`QARJRP3DZqMU6i=9ghC_M>cN@.;("06Se\/D]$ZD)hs^&
X30RN>O_E!LM)sGD:J83Q/dc0kjf[Dh)5[SkJh8+SJ!XB$CN.Q0G&Y$kCn4&IF)g.D>)WMCBu8UTX!5
X5GQ#Y#+GMWI%-OVWjcYj="T-Gu?pk.\`4!-.J>L#g0ilrb1U)Tl:to[@E`8gW'FU#'n&+^1Z#+$Rq*
X$GR;H[*=_k79qg"dNJ#(7-@Xg%^o;Lnp^_@,+3J,_f,@B@a;<c-/Zj1o%Q;jYr>bFPr;C&oYt*dG54
XVP>fUk/<3f5gX+a@<r8Y4;Y8N\:s0j8WI`iC.rsr[Y8EoKJuEl8X#.`p<$M'ASZ@@aXJr]e@%)r*eI
X'#b>TE;S=UAJ-@2K:R)m/*^d43X?-4"rkIDu)amJG.#:LYj:rURRET$6EPbb9pl;YPWFcbq6)IBAGC
X&JXeF9@5omHBeq2KT9^hmo.#WkqfO3NY1i+MeG`3P_m)*O7^_D]>6CX+^jmp=M_s$pep)Xb_MRF%gn
XqTf4<\U!*mX6<QDTD4T3qZoMmU=ih(JBOPsOGKNe;VS/^=pRL-`!LI'!9s(klhFouX<=:T[D*%b([W
XMn6k.h9l%;^4MH0'iofY\^@-"%b/e[$,+RBc"lNiqjQb[R8keEdmjbJP;B&TDfA7^E4&RZAM(AM:iH
XY<VQtWrMo*?jQ[jcGgnL`@c!I+FCp4rZp)5F[!OR"%!'.JC&bP`O;9$O;F_?-`,+MO?1G`*Wb5Mbkj
X91_N^2?Z?Cu8^dJJ"l:a8)IuN*)ef0n>9YPSAJch)NV!_GBC^2-2A(5\3NE<=/U`0V4*H:P.B1B\b3
XqGDNJSP')#FGa;,=*%L!5[UqGtcuM9Z1`\gQ!=]/uZ*WZ#+3qXL-:,`3s+7Z`4*EJckbp%pE!mN,@1
X=2a`1l="&qf'lrT@jdd[pWM1;;BX:)@O)npb=i3<m]OC'[fQK186!C&FSKt\b&R(skSKt)X<5[.8Z0
X`HPQIDg%bM$Ki^dF_e<Po3bFS*Eb2.>/eR3YI]kZ_oaYK[j?]k!:B?Wnn3Io7UbeI_^/R3Z*.gJ=ZS
XnTS%AiAX`jk]&h[OgtK(&tG)2TZd8u8o<%2klN[s_7@*U;MXI8D$Pbd47:8.>,uN4E;$YZ'=6DnD:/
XbNURb7aCUMF<j1`5%'<#d)'`C%g%b*DcR.@,c54Z/,K0"[^.]fDXmEM6`CnQgZ[PrPdkWi3a>:@_JP
XLLb%bM-V=^N?KaKu1.P!769!*!5)"lS:-#_b>r,S?B<rC)s^9SZ]E#7s'[=0C35W9g/2sW=mNco\oj
Xqk[1L@KA*11dr(:kUpdO>6=?Hb[2iGJ**PF%gSAB]_,$`4iM!c)SfpX-TgZr7!mK:KA!pZUA("sUd2
Xt]t_j#'TAdFWab"52aWJU7I>'8Pe-=%be4HFUb"L-N?>?)0+m[">"'Emqe6h`d[9lT(LQf<N$J'GIW
Xh"Lmnr!?)_)?,j`5ebZ@dFn/,)dV)!"Q"hUR1"HEZf^"ZaS:S%AQmc#l#t)'"L^I&"A6)HDof`mLf<
XFI,eZ_7p?/-$(N+rs]<"j'\Jp%(%jcfA[>ha`85QP\(LDXQ@h/%"/="rOF80V>7;jUhgDS2\&1";n5
X-BNFI$F%&O.X53pOY=#`kT/ks8#70^_n%',cg=rWM7Kf-SMrViig@c?YmUk:hqFZ[9GWLi`63b>E>O
X+Z55O%)G>QH$p!M'@!3`AW6gV\[2mp6[Y1p%;1>aYR`/Sd,^Vfn./1E>^%9CL1+.K#,VV)q6(^CZ*9
X@F;6CWjAgL3UL$M,.f)_2's3"MHD6,7Yc75taiZ%=&;2%R"?WW`smf2:'WWOHbY/r-6O6ts4Y7_iH4
X:Z!_%Y_`,l+!WC3a$::`*&aJH=<W@$`58IE,S>iI>J4$iLS4PO%b@<&W\2s4]BY@L:"4QelVFp@UL/
X!L6!S8Bo<d?\r5)(Sb4f,B8,TQI?J*`uQ%L;-kJOumUc<4M+Ki.SI;:b,9nFO(olDXBR\\EGE6ep?N
Xf,063u4VfFabk5#aB(.QTY=7'%RH$JYbY?L_7ijk,<N$MlJpE0McJW3.c,04N/GF1:]GU)0@f8&=0!
Xr0#7qTg53!h@So#,c5oT`ej)OP,u&6W?I,``:aGeYIFFqV]TBd1/J4A4f"Uo:rIU4U:p*WTL,qArZ9
X],G$]#oWb6uFn."Uad\umRtJ7\EXD<[B\mP5/!a1)q+;A31dJ-%[5m7b0`F)rT6mR4pFm'VKQ?9jfB
X@>82cF+p$QCc,n>OF8J_kljIoY9H;fZ4H)g2On@C\Y1'q*/]96X6P:+@M_o-KcC?e?3gi'W0)8bDWL
Xak;$Lm4<AEk-6To8'oT80g'R^`C5`JfirA71X_Y]l2]jM4@ncH.h+tS@HGcDRC"Yq:kem87r$FC?2c
XnPMd,\se=Dd-\D$&!LTi;0]N7;dH`H.sU\.'J<3a*,\fE$aN_q-JlXD9.gt$(dbAarHbK=/&)Z&<75
X,Cn4G\D&@B8G-#9;-."N^TN'ZR[hKR/<Lromk2Y&J/17[',Zcj"gTudr'#,dB(1pn<?Kd(W[>bIsr)
XF;NO67l/QX5AmrDGCBU'/CAKjiUuVnT\63IWnq=l)($"^[f]?ae\N,_!RB]#>t.P"5_)@2^d-Q6;8_
XPRNNV#HOkAL&cfNnF?1.'ht9F=8\3WC7C*pq60dPT-==ih+X-.M-`_NgG&b1;VA3(cZ6%F^G<3V@bW
Xk1b;MFaOtQ<SJ7AP]9PmE*ZD9gd9Uq).@&\ksd!gMk0T!b0c-C#AME%-oX_2ogO!3G79?<cN1RfIg.
XeEdnM=tdpbb6dW*(05$>40nf2ZOVlm>q>1!:Jms;M).c"dZYN?[,0UjWo[hfE9.3Z<C`_h;q;[G*#:
Xi@gECbT6RI]B=8MGP!iW\%>)e4>U(33gsF2K6!6Wn#FQi7#%:(ARtTI>B&P11P[S53OS!L=!6)1"/S
X1sr11R;<(V$FsA5Eg_B.QUWg6!.r_>_uSoUlG._2ZS:D3BFq=tMi_WFCYe2^W1DPl4'8SMT"$KGU:=
X&%JCX_$s>^;&OA4g5[pB"F+'d)!%f;SJT_^#"K5HFEq#+3kpnj%[shX(D%p&i/T3;1k@lbBT?!s"IW
X_[-8:.Q)"qPH"T872%51PFkQHFG\_s_('8i<`+;#<dm>q;TM_P>;iD;u1,%c0FY.!je>p,fk:;FZe$
XmBDoNnW?n&V3Q=]mpARL@]tmKXjhC!6P[(!cDt1Bd?!+<`e$0d`<l8A:q)h':r%Y_4J`HV7*-%Eh1m
X(fX:^s>?4C6@g7+7LFU@/!UN*iG4r)8[MOM1mf?sO=FGOpo2U01IkA&[0t?+-&kog+&Y5@R03Lqb6T
XH1gd0%Goi<NMbn=G_o>YAoi$pi]FoPX?_I?GLPfs#$>[1,%BaWL"n3HN)cDVKneYC%IWA%ia=[2h"N
X#lJ8A_r0u[akI63e@%k4CjSGE@<\am!k7.(GfFUWel(8T$S_]l=UjJc$tf=rFY1#gDD%#d9A'^H_n`
XiE6]c]IC+ZhFHbgr"ec?J;4UWF0S^^Tm;p[@W'gC^_7,YL0m5oK,WU5Nuas6CCplkgK;^WNRhcr_>c
Xb[L.H-$HskCo"JRo$E'&F\i@@8)282`hTfT)mUns-0sna:$:l&Recu2A5C.h[@Sh<p'WNk_j<Ms,$q
Xn-jm#UD2LVcQSAW]<Y<6B+@sX#+\!_H3H>PLA@s![+1J6-"fO4bJ;puO08q]m$o(.fVA&5gq1+au6u
X!/7"#:aJogaJERI:;9T%RE<Om!NW!n3]>$jqSKZ"JN4^1g-A?]1@Rp-Q:`'t:8<D,\R;&MN(>&S4cM
X'W>m3DFS9T0?75b&;4j.2OJ::!6>u8T<+<P?.9E20O/]IZ&7$hM+O"HgDOlgaN!.q+'"n\JHMhU)>S
XFDfot`ih7lUaZWm_p%)e^#AA^\k3^Z`pmC&i$TErD/X;HSATOM`,`11NG"bAl@.1X3c"9g#e8:WV':
Xuh<9);:MX2S6iY2TpX=OGsjf<#9%@&<m<`Jo;uFNjsB#]l6eaRs:UG+!ojp[eA^]_Uu:^^r79JS<#M
XT":(rDrdb."`0ibLCD@\nQ5.EJ"\cj"Ckko`-AmMV/1ZZrCV:8j:`Z*=L_Dm5rr%n5rr`3#oq<Jhz
Xxbtoa End N 4306 10d2 E de S 8479a R dd7219d5
END_OF_FILE
if test 5508 -ne `wc -c <'xwrits/writsres.pkb'`; then
echo shar: \"'xwrits/writsres.pkb'\" unpacked with wrong size!
fi
# end of 'xwrits/writsres.pkb'
fi
if test -f 'xwrits/writsres.pkp' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xwrits/writsres.pkp'\"
else
echo shar: Extracting \"'xwrits/writsres.pkp'\" \(3648 characters\)
sed "s/^X//" >'xwrits/writsres.pkp' <<'END_OF_FILE'
Xxbtoa Begin
X+,^C1kOLnk!!@FcBlnE:ATKJKE,>UBh+NYG2\65`F7rNhcHQLF_7>qpK+H6ZOQ/Y5_-%1)GtbFYS.P
X8IZfBl4<pNn<WRRqGX2*Y]WRc1i[\VJ:epd=7\c2,Sjls+PO10%FhqotDn(rFoSh?X!]YFF?iU+Zmr
Xr25ET71+\>Q2<^o&BK:jo";2jm+:$>s2?)\66Onq;ULo=0GuErr+OqGFH-*J,T>jc#;baf69/;]mG8
X+p3bnBGN7hX2h-9?F9Xb&(DbI-Ms5r7oYP'`@55I"QsNlg0.`t:(=NYLl%R+K_I@h"0tjfY?<BlS/>
Xa4!dgM)uKuN]$@X;H;]s*l1=A1A!VAC#s$]F8'`Uq#6\X*Um]-gSE'sVM3VUd8qeVHnuf1"a]'Fi/`
XHDR]0C5brjd#4d/-"D:BF^BT!$Sc4!\Q(.k`c;-\][FKYH&+saO]QEI-6M=^e)hCq8iITVQl7X;%O1
X(=/#L7CG"p3Ce;G?jX'SJT(NIJab,PPBj$i"&n+mF<7"ps4EIZa!?]b$\'eQ<!bBGX`^g&a)"*b^L:
X81hcS5eD]E*/qf0SHJD9SZ\o4ulo&H!MN;bPM)OXsKH_YE2,i$fWY*Ot+,]Q!-,Df,>5Smfr2[1*oq
XHKsk:Vnl5l@hCH'_3F2o2K;YLLYAfcP?S/FH?lH[%]2]V"'MPd`B)8XAIICX,i>]uk0Hi)U:7kf2f?
X7Ds\\M0hq6.6/=5;)Lf#GQD2ldun^6d_bQ`4U`D!.aF=+3ac9:/m9kM8HtcW\_PY:K].*F>F`=8e$.
X^2fHY?3$?*0B3b5pMu]Um6tC!'R7.t(AG+VgrZ"+UOm4L>!/ur\XV:8Y&2iU,D(pAA]GR(H>RjASsP
XcY"='Fo$Es@4[bg@$nfiVKn4FJ]QYchB%S[EhNgIAQTQp^$0]%h56na3D@^14*KM=u,1*p78Y`4u2l
Xl]Vren2*#nM6Dso3hQ6`-Yot(.-72nVZQ?4G4NlALW<C[!*>f0)]*)QfAg-kC9fg)orELno98*7D&n
X=,hf;VCXZ#O4^lJ6]ILHMX&ZsYcR,0G@'<`d>KjZq]/cjDP7m0rRPNu6!A?["E`uASi`n@$O%0tpQV
XakRF*VP!NSAVUb*bin8pQdu<03Ab$1phgQkj(O0"G:SMmY661Or-(=6*9hj(If#-.(t!KHQ4n/)sh1
X8,.OnlelR3H'PQgl),iY/,Tq=U_=-D7eo4p8]shEb9bkXTkV'*+;]2nU:ouI=qh<u2qOe@$OK)"Lhe
Xh#Z5@#1#@f_Hap*L(,"?$(YO"SVTf&\`iAK0<s.2PCKZ,FGQ>sU`@:E(gAj\5sdptOqg9YJS`VtL$3
Xg&.TRWq7K674S/i:jNj:3MR>`p=GXEl@U=Z$N7NHo&4/h(uRRm,!S.H!R;nN5NicZ.,sg[9h.tO/00
X0j/QX^W:2:6o#t2dC)]TJ`f1$MV-O:OGuEa'3h))nj[4#iD95u5aq5>kL/O&!I'\c5HRTb)3*F+6+"
X1]0&[.b-4L3c`W"J[e5inGWTHJsOeWEIVR-iF6$>L6$o]i_g.0M_Zoi^'++d?g/eJlU?R:*'sD]_1h
XJt9T$]>R(.Qu"F$@)BUqM2Cs>"t&6n6**#p6YPtPe7'o?"G,h,P-]F6i[(J@e9D:60g/hu>"k-HKGI
XMJ,sY.l=8.cneTl<*0niq>`Dh/+]MpBRlF)Xcp$*j#f;m5AH5(^s@s9`j?Fs!+oj0_<%H)B_F*fWrf
X7*&<+C;[:%HFkFDnh:lFcQ0+@sPK^mC1KUcI#O+7'Dnc@sX]@NS(aIV^=M*TtMAW'0E]?qlCdnlbr_
X\nc3!tPO\ucSDUh<L)8a;4GXdmfMT;k^^fDD"Ekb<SlPe]?5tP?-nbe/@sQUW*R(R1%6L$1]pM3kqp
Xo[AG"pJ/(o*E("k2+o+i5ac[<d\(lg5FnZA;\26,Rp?>'[PD]3[).T[@O%A@5JAle]ecX*UN<=Wki"
X]Fl1!D$b'qYgIfC79f'Z<a8PM\H'/\]J<Zn=5u.[q/KA-aE"I8Qg5q&XFjU".cr#]CfdfVCB_E4JF2
XYkdgC?-hM.._hpmY-(%BoZN0q)@(Ki9P-"L(S^>OWMJ<mfU"\U<Rg?:VD6!>_@mRpY:(ug6`/`@!b"
X)JK$Qn.1(!uNJfXV\,Too]=+fF(rp11'@a-op\-b-VdfD8@W1QS)YKY>VKeQO'fR?H$)>YGU&.aq(8
X4<s;[RX#F-"Y8T!E=%BJA??KM8%6hJ&MT?:a^oL@kjONrg:e<msl=J*kM]8m:9eF30%s*&:BP"l'K!
XBXlB]ZogJh_RkBi4c.Pur';2D:AMC\8l&@*QVf"*8`BC-c0#a:cBGGqibkJ7\"KXT+cE%r,$<ii+HA
X3.$SOeWMIE.#/U#=2o%IClRRgCrF1_/MG\?CIQ%PGg.GMeU"XM,'[sGRu#&"$4;+KC86K.h'Y-X$P-
X5)AQid[hU)WW1Q)FWWV'^5g.%bPpWb<H8>R+9O:sXX9JW)>@#T+Z*h$J9HLZjf6]C8@R5'>Rla:mR-
XeQLH/3W,(T[(`mb%*0&Q"&M.b:[i#]P>MG7r.a;F(ntBA1e^*O=II1pO2C<#Ok>eH:b.[Z]8#QPp*B
X;RD>&4\a(j'X7!+/bAmBl10%MGVIDpdGaprNC21hj@RF`["5j@IofAY$Hd#_U'J;q?QWZ,(F`2i`Ac
X75h;W>*`bnd;^K*uG[PpcgJ4@["VHYe)5G\RC!>Z#Pq+rBfAP*]A%@L)Tf(%kZ@=@Y#'PPe!M0QebI
X@D!Z#)M9p?MP!*k*=^,kTZ-Ch?]>k5<4p1XYh!.No;&70fdW(N0Y5nE?DWPs)6Am#BKD;@(s-,')Kq
XKCYAF#b(Y3$N]\GpOkAGtHC'QZ1/k;$rlJ`!9-G\[t0N(L=]X#_/M&.&2LKE#@:J!1/Od)#.HKE:%>
Xk0<i8b#DR6;G7R>h!/GOudm!Bh[FD=d)JsN)J)C?IkM-b9BPM*PADM,O$]re*E/jq[*]:-J$At9/H$
X;f0i##Zkjmf`+qFkj<]"7Z'uQZ@A:HJ/3Y_*A0MkQ9:ZlE\\D\(^iXkL$VAkjQr?s;l?(h=$XCCI?;
XT%V%eHmWZ&nD8VF/gPTmeqfbdG&aGg;C$_3V99oub#1:Fo(gQ]m=Y?h]39^k@(18W[#Zm-lI"Rge6o
XbU[uH#r%0.L0'Orl4krKnUP;2@9eTX>02/oZ+R$W0eQsKR,AuM8],dAgWMQJINTrYp@>44nFEm-Ynd
X@HOfK8_'e.t^YLD5*qh;8@QX/bh*LR`r^&6%cqX+LI'fgsMH21/j]m.3Ldh0aK7rL%sq&8!<"P1RC<
X^(hTaN)#$r\Y["mQ%u'8o"D'U>G2H2hB""p?]&8"a_-Q/F0_X_g>Noi>m&V04qBL?L&Qo+g$@`lKDO
XnZ/C6`/t*Tfgm<*LiO'r@^^i,D]IMWN(U$eK]_lTArW0^*G>,jH!j<*0OPlCK$]pSlXWQW#KO?J(B'
XiE$aD3mrYO]#bmH%or?Bd+U+<eU[\4`8skCC3YM92I!HdURPhl[3EW8eNWKe2s)YJ;*ib.Xa?rBqaU
X]dgR'H[0>pG("]0pA474X8`4/-(U^;A,uZ1
Xxbtoa End N 2835 b13 E a5 S 59d25 R dbd64474
END_OF_FILE
if test 3648 -ne `wc -c <'xwrits/writsres.pkp'`; then
echo shar: \"'xwrits/writsres.pkp'\" unpacked with wrong size!
fi
# end of 'xwrits/writsres.pkp'
fi
if test -f 'xwrits/xwrits.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xwrits/xwrits.c'\"
else
echo shar: Extracting \"'xwrits/xwrits.c'\" \(7084 characters\)
sed "s/^X//" >'xwrits/xwrits.c' <<'END_OF_FILE'
X#include "patchlevel.h"
X#include <stdlib.h>
X#include <stdio.h>
X#include <X11/Xlib.h>
X#include <X11/Xutil.h>
X
X#ifdef NO_XPM
X
X#include "writs1.xbm"
X#include "writs2.xbm"
X#include "writsres.xbm"
X#include "writsok.xbm"
X#define SETUPPIX(data, id) pix[id] = None; pixdata[id] = data##_bits; pixwidth[id] = data##_width; pixheight[id] = data##_height; pixbg[id] = data##_bg
X
X#else
X
X#include "writs1.xpm"
X#include "writs2.xpm"
X#include "writsres.xpm"
X#include "writsok.xpm"
X#ifndef XPM_HEADER
X#define XPM_HEADER <xpm.h>
X#endif
X#include XPM_HEADER
X#define SETUPPIX(data, id) pix[id] = None; pixdata[id] = data##_xpm
X
X#endif
X
X#include <X11/Xos.h>
X#ifndef FD_SET
X#include <sys/select.h>
X#endif
X
X#ifndef DEFAULT_TYPETIME
X#define DEFAULT_TYPETIME 55
X#endif
X#ifndef DEFAULT_BREAKTIME
X#define DEFAULT_BREAKTIME 5
X#endif
X#ifndef FLASHSECONDS
X#define FLASHSECONDS 2
X#endif
X
XDisplay *display;
XWindow window;
XGC gc;
Xchar *displayname = 0;
Xint typetime = DEFAULT_TYPETIME;
Xint breaktime = DEFAULT_BREAKTIME;
Xint flashseconds = FLASHSECONDS;
X
X#define PixBreak1 0
X#define PixBreak2 1
X#define PixResting 2
X#define PixOK 3
X
XPixmap pix[4];
X
X#ifdef NO_XPM
X
Xunsigned char *pixdata[4];
Xint pixwidth[4];
Xint pixheight[4];
Xchar *pixbg[4];
X
X#else
X
Xchar **pixdata[4];
X
X#endif
X
X#define WindowWidth 300
X#define WindowHeight 300
X
X#ifdef NO_XPM
X
XPixmap
Xmake_pixmap(int num)
X{
X Pixmap p;
X XColor bg;
X XWindowAttributes attr;
X
X XGetWindowAttributes(display, window, &attr);
X if (!XParseColor(display, attr.colormap, pixbg[num], &bg) ||
X !XAllocColor(display, attr.colormap, &bg))
X bg.pixel = WhitePixelOfScreen(attr.screen);
X
X p = XCreatePixmapFromBitmapData(display, window, pixdata[num],
X pixwidth[num], pixheight[num],
X BlackPixelOfScreen(attr.screen),
X bg.pixel,
X attr.depth);
X return p;
X}
X
X#else
X
XPixmap
Xmake_pixmap(int num)
X{
X Pixmap p;
X static XpmAttributes *xpma = 0;
X if (!xpma) {
X xpma = (XpmAttributes *)malloc(XpmAttributesSize());
X xpma->closeness = 200;
X xpma->valuemask = XpmCloseness;
X }
X XpmCreatePixmapFromData(display, window, pixdata[num], &p, 0, xpma);
X return p;
X}
X
X#endif
X
X
Xvoid
Xerror(char *x)
X{
X fprintf(stderr, "xwrits: %s.\n", x);
X exit(1);
X}
X
X
Xvoid
Xsetpicture(int num)
X{
X if (pix[num] == None) {
X pix[num] = make_pixmap(num);
X if (!pix[num]) error("couldn't make a pixmap");
X }
X XSetWindowBackgroundPixmap(display, window, pix[num]);
X XClearWindow(display, window);
X XFlush(display);
X}
X
X
Xint
Xargcmp(char *argname, char *arggiven, int minchars)
X{
X while (*argname && *arggiven) {
X if (*argname++ != *arggiven++) return 0;
X minchars--;
X }
X return (minchars <= 0);
X}
X
X
X#define argshift(n) do { argc -= n; argv += n; } while (0)
X
X
Xint
Xmain(int argc, char *argv[])
X{
X XEvent event;
X int cenx, ceny;
X int xsocket;
X
X argshift(1);
X
X while (argc > 0) {
X if (argcmp("-display", argv[0], 2)) {
X if (argc < 2) error("no argument given to -display");
X displayname = argv[1];
X argshift(2);
X } else if (argcmp("-typetime", argv[0], 2)) {
X if (argc < 2) error("no argument given to -typetime");
X typetime = strtol(argv[1], 0, 0);
X if (typetime < 0) typetime = 0;
X argshift(2);
X } else if (argcmp("-breaktime", argv[0], 2)) {
X if (argc < 2) error("no argument given to -breaktime");
X breaktime = strtol(argv[1], 0, 0);
X if (breaktime < 0) breaktime = 0;
X argshift(2);
X } else error("unrecognized argument");
X }
X
X display = XOpenDisplay(displayname);
X if (!display) error("cannot open display");
X xsocket = ConnectionNumber(display);
X
X cenx = (DisplayWidth(display, DefaultScreen(display)) - WindowWidth) / 2;
X ceny = (DisplayHeight(display, DefaultScreen(display)) - WindowHeight) / 2;
X window = XCreateSimpleWindow
X (display, DefaultRootWindow(display),
X cenx, ceny, WindowWidth, WindowHeight, 0, 1, 0);
X {
X XClassHint classh;
X XSizeHints *xsh;
X char *woog[2];
X XTextProperty windowname, iconname;
X woog[0] = "xwrits";
X woog[1] = NULL;
X XStringListToTextProperty(woog, 1, &windowname);
X XStringListToTextProperty(woog, 1, &iconname);
X classh.res_name = "xwrits";
X classh.res_class = "XWrits";
X XSetWMProperties(display, window, &windowname, &iconname,
X NULL, 0, NULL, NULL, &classh);
X
X xsh = XAllocSizeHints();
X xsh->x = cenx;
X xsh->y = ceny;
X xsh->flags = USPosition | PMinSize | PMaxSize;
X xsh->min_width = xsh->max_width = WindowWidth;
X xsh->min_height = xsh->max_height = WindowHeight;
X XSetWMNormalHints(display, window, xsh);
X }
X
X SETUPPIX(writs1, PixBreak1);
X SETUPPIX(writs2, PixBreak2);
X SETUPPIX(writsres, PixResting);
X SETUPPIX(writsok, PixOK);
X
X gc = XCreateGC(display, window, 0, 0);
X
X XSelectInput(display, window, ButtonPressMask | ExposureMask);
X
X while (1) {
X
X struct timeval timeout;
X time_t breakclock;
X int picture;
X int deltaseconds; /* use this to get rid of unsigned worries */
X fd_set xfds;
X
X /* Wait for a while, until the person is supposed to take a wrist break. */
X timeout.tv_sec = deltaseconds = 60 * typetime;
X breakclock = time(0) + timeout.tv_sec;
X while (deltaseconds > 0) {
X timeout.tv_usec = 0;
X select(0, 0, 0, 0, &timeout);
X timeout.tv_sec = deltaseconds = breakclock - time(0);
X }
X
X /* Map the window; wait for the Expose before continuing */
X XMapRaised(display, window);
X XFlush(display);
X while (XPending(display)) {
X XNextEvent(display, &event);
X if (event.type == Expose) break;
X }
X
X picture = PixBreak1;
X setpicture(picture);
X
X /* Flash the wrist until the person clicks on the window */
X breakclock = time(0) + flashseconds;
X timeout.tv_sec = flashseconds;
X timeout.tv_usec = 0;
X while (1) {
X FD_ZERO(&xfds);
X FD_SET(xsocket, &xfds);
X select(xsocket + 1, &xfds, 0, 0, &timeout);
X if (FD_ISSET(xsocket, &xfds))
X while (XPending(display)) {
X XNextEvent(display, &event);
X if (event.type == ButtonPress) goto takeabreak;
X }
X timeout.tv_sec = deltaseconds = breakclock - time(0);
X timeout.tv_usec = 0;
X if (deltaseconds <= 0) {
X timeout.tv_sec = flashseconds;
X breakclock = time(0) + flashseconds;
X picture ^= PixBreak1 ^ PixBreak2;
X setpicture(picture);
X }
X }
X
X takeabreak:
X
X /* Take a wrist break */
X setpicture(PixResting);
X while (XPending(display))
X XNextEvent(display, &event);
X timeout.tv_sec = deltaseconds = 60 * breaktime;
X breakclock = time(0) + timeout.tv_sec;
X while (deltaseconds > 0) {
X timeout.tv_usec = 0;
X select(0, 0, 0, 0, &timeout);
X timeout.tv_sec = deltaseconds = breakclock - time(0);
X }
X
X /* Wait until they click on us -- */
X setpicture(PixOK);
X while (1) {
X XNextEvent(display, &event);
X if (event.type == ButtonPress) break;
X }
X
X /* then disappear and wait for the MapNotify event before continuing */
X XUnmapWindow(display, window);
X XFlush(display);
X while (XPending(display))
X XNextEvent(display, &event);
X
X }
X
X}
END_OF_FILE
if test 7084 -ne `wc -c <'xwrits/xwrits.c'`; then
echo shar: \"'xwrits/xwrits.c'\" unpacked with wrong size!
fi
# end of 'xwrits/xwrits.c'
fi
if test -f 'xwrits/xwrits.man' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xwrits/xwrits.man'\"
else
echo shar: Extracting \"'xwrits/xwrits.man'\" \(1366 characters\)
sed "s/^X//" >'xwrits/xwrits.man' <<'END_OF_FILE'
X.\" SCCSID: @(#)xwrits.1 3.1 5/24/94
X.TH XWRITS 1 "4 Aug 1994"
X.SH NAME
Xxwrits \- reminds you to take wrist breaks
X.SH SYNTAX
X.B xwrits
X\%[-display \fIdisplay\fP]
X\%[-typetime \fItypetime\fP]
X\%[-breaktime \fIbreaktime\fP]
X.br
X.SH DESCRIPTION
X\fIxwrits\fP reminds you to take wrist breaks (to try and prevent
Xrepetitive stress injuries). It stays dormant until you
Xshould take a wrist break. Then it pops up an X window displaying a
Xwrist in pain. You click on it, and go take a wrist break: stretch
Xyour hands, massage your wrists, read a book, see the sun, etc.;
Xmeanwhile, the wrist relaxes too. When your break can be over, the
Xhand says "OK" and points forward. You click on it when you sit
Xback down to work, and it goes back to sleep until you should take
Xyour next wrist break! The end.
X.SH OPTIONS
XOptions may be abbreviated to their shortest unique prefixes.
X.TP 5
X.B \-display \fIdisplay\fP
XWhich display to pop up the wrist on.
X.TP 5
X.B \-typetime \fItypetime\fP
XThe number of minutes between wrist breaks. Default is 55 minutes.
X.TP 5
X.B \-breaktime \fIbreaktime\fP
XThe number of minutes a wrist break lasts. Default is 5 minutes.
X.SH AUTHOR
XEddie Kohler, eddi...@mit.edu
X.SH BUGS
XNone known. Some people will dislike the color schemes. More options
Xmight be nice. Please! send comments and suggestions to me.
X
XYes the misspelling is intentional.
END_OF_FILE
if test 1366 -ne `wc -c <'xwrits/xwrits.man'`; then
echo shar: \"'xwrits/xwrits.man'\" unpacked with wrong size!
fi
# end of 'xwrits/xwrits.man'
fi
echo shar: End of archive 2 \(of 2\).
cp /dev/null ark2isdone

0 new messages