[alt.sources] Xkal - X appointment calendar, Part01/04

ferguson@cs.rochester.edu (George Ferguson) (11/15/90)

Here is the first external release of my X appointment calendar program
"xkal". A previous posting was truncated by our system so I cancelled it.
Apologies in advance to those of you who got it anyway. The code is still
rough in places but has been running reliably here for some weeks.

Note that the ad2c and ezMenu packages required to compile this program
are posted in subsequent articles.

I don't know how much time I will have to support this, but I welcome any
comments or contributions.

George Ferguson			ARPA: ferguson@cs.rochester.edu
University of Rochester		UUCP: {decvax,rutgers}!rochester!ferguson
Rochester  NY  14627		VOX:  (716) 275-2527

#! /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 4)."
# Contents:  README Imakefile Makefile Xkal.ad app-resources.h
#   date-strings.c date-strings.h schedule.h
# Wrapped by ferguson@swan.cs.rochester.edu on Mon Nov 12 14:07:00 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'README' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'README'\"
else
echo shar: Extracting \"'README'\" \(2034 characters\)
sed "s/^X//" >'README' <<'END_OF_FILE'
X		README for XKAL - X Appointment Calendar
X
X		 George Ferguson, ferguson@cs.rochester.edu
X
X			     12 Nov 1990
X
XDISCLAIMER:
X
X     This is a BETA release. While it has been in use for some time
X     at our site, there are certainly many bugs left to find.
X
X     This software is provided as is with no warranty expressed or implied.
X     I hope you find it useful, but I won't be held responsible for
X     any damage that may occur from reading, compiling, installing or
X     using it.
X
X     You are free to use any part of this code for other purposes. It
X     would be nice if you could keep my name on some part of whatever the
X     final product is.
X
X
XINSTALLATION:
X
X     1. Edit the Imakefile to reflect any changes for your site. These
X	include setting BINDIR, LIBDIR, and MANDIR if needed, and
X	checking CDEBUGFLAGS if debugging or optimization is desired.
X
X	This program uses the EzMenu widgets, which provides a resource
X	manager interface to the SimpleMenuWidget. You should check the
X	definitions in the Imakefile to reflect your installation of
X	the EzMenu package. In particular, you may not need the TARGET_MACH
X	flag is you only intend to compile for one architecture.
X
X	Compiling this program requires the "ad2c" program. You should
X	set the AD2C variable as required. Actually, ad2c is only required
X	if you change Xkal.ad and want the new defaults compiled in as
X	fallback resources. If you don't have ad2c, you probably want
X	to remove the line that adds Xkal.ad.h to the "clean" target.
X
X     2. You may want to change defaults in Xkal.ad; consult the man page for
X	details, and see above about ad2c.
X
X     2. Execute
X		% xmkmf
X	to create the Makefile.
X
X     3. Execute
X		% make depend
X	to add the dependencies to the Makefile. This is necessary to
X	ensure that Xkal.ad.h is created when needed.
X	IMPORTANT: Ignore the error message from makedepend if Xkal.ad.h
X		   is not found; it will be created automatically.
X
X     4. Make the package using
X		% make
X	or install it directly with
X		% make install install.man
X
END_OF_FILE
if test 2034 -ne `wc -c <'README'`; then
    echo shar: \"'README'\" unpacked with wrong size!
fi
# end of 'README'
fi
if test -f 'Imakefile' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Imakefile'\"
else
echo shar: Extracting \"'Imakefile'\" \(1117 characters\)
sed "s/^X//" >'Imakefile' <<'END_OF_FILE'
X/**/#
X/**/#	Imakefile for xkal
X/**/#
X/**/#   George Ferguson, ferguson@cs.rochester.edu, 15 Oct 1990.
X/**/#
X/**/#	$Id: Imakefile,v 1.1 90/10/28 13:05:04 ferguson Exp $
X/**/#
X
X/**/#
X/**/# Here's what to change to customize the installation...
X/**/#
X/**/# where do you want this stuff?
X/**/#
XBINDIR = /scratch/ferguson/xkal/Bin
XLIBDIR = /scratch/ferguson/xkal/Lib
XMANDIR = /scratch/ferguson/xkal/Man
X
X/**/#
X/**/# where is the ezMenu package?
X/**/#
XEZMENU_DIR =		/u/ferguson/src/x/EzMenu
XINCLUDES +=		-I$(EZMENU_DIR)
XEXTRA_LIBRARIES +=	-L$(EZMENU_DIR) -lezMenu$(TARGET_MACH)
X
X/**/#
X/**/# where is the app-defaults to C converter?
X/**/#
XAD2C = ad2c
X
X/**/#
X/**/# Nothing to change below here (except maybe CDEBUGFLAGS).
X/**/#
XDEPLIBS =		XawClientDepLibs
XLOCAL_LIBRARIES =	XawClientLibs
XCDEBUGFLAGS = 		-g
X
XSRCS = xkal.c month.c day.c schedule.c db.c util.c date-strings.c
XOBJS = xkal.o month.o day.o schedule.o db.o util.o date-strings.o
X
XComplexProgramTarget(xkal)
XInstallAppDefaults(Xkal)
X
X/**/#
X/**/#	generate C code for fallback resources
X/**/#
XXkal.ad.h: Xkal.ad
X	$(AD2C) Xkal.ad >Xkal.ad.h
X
Xclean::
X	$(RM) Xkal.ad.h
END_OF_FILE
if test 1117 -ne `wc -c <'Imakefile'`; then
    echo shar: \"'Imakefile'\" unpacked with wrong size!
fi
# end of 'Imakefile'
fi
if test -f 'Makefile' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Makefile'\"
else
echo shar: Extracting \"'Makefile'\" \(15748 characters\)
sed "s/^X//" >'Makefile' <<'END_OF_FILE'
X# Makefile generated by imake - do not edit!
X# $XConsortium: imake.c,v 1.51 89/12/12 12:37:30 jim Exp $
X#
X# The cpp used on this machine replaces all newlines and multiple tabs and
X# spaces in a macro expansion with a single space.  Imake tries to compensate
X# for this, but is not always successful.
X#
X
X###########################################################################
X# Makefile generated from "Imake.tmpl" and <Imakefile>
X# $XConsortium: Imake.tmpl,v 1.77 89/12/18 17:01:37 jim Exp $
X#
X# Platform-specific parameters may be set in the appropriate .cf
X# configuration files.  Site-wide parameters may be set in the file
X# site.def.  Full rebuilds are recommended if any parameters are changed.
X#
X# If your C preprocessor doesn't define any unique symbols, you'll need
X# to set BOOTSTRAPCFLAGS when rebuilding imake (usually when doing
X# "make Makefile", "make Makefiles", or "make World").
X#
X# If you absolutely can't get imake to work, you'll need to set the
X# variables at the top of each Makefile as well as the dependencies at the
X# bottom (makedepend will do this automatically).
X#
X
X###########################################################################
X# platform-specific configuration parameters - edit sun.cf to change
X
X# platform:  $XConsortium: sun.cf,v 1.38 89/12/23 16:10:10 jim Exp $
X# operating system:  SunOS 4.0.3
X
X###########################################################################
X# site-specific configuration parameters - edit site.def to change
X
X# site:  $XConsortium: site.def,v 1.21 89/12/06 11:46:50 jim Exp $
X
X            SHELL = /bin/sh
X
X              TOP = .
X      CURRENT_DIR = .
X
X               AR = ar cq
X  BOOTSTRAPCFLAGS =
X               CC = cc
X
X         COMPRESS = compress
X              CPP = /lib/cpp $(STD_CPP_DEFINES)
X    PREPROCESSCMD = cc -E $(STD_CPP_DEFINES)
X          INSTALL = install
X               LD = ld
X             LINT = lint
X      LINTLIBFLAG = -C
X         LINTOPTS = -axz
X               LN = ln -s
X             MAKE = make
X               MV = mv
X               CP = cp
X           RANLIB = ranlib
X  RANLIBINSTFLAGS =
X               RM = rm -f
X     STD_INCLUDES =
X  STD_CPP_DEFINES =
X      STD_DEFINES =
X EXTRA_LOAD_FLAGS =
X  EXTRA_LIBRARIES =
X             TAGS = ctags
X
X    SHAREDCODEDEF = -DSHAREDCODE
X         SHLIBDEF = -DSUNSHLIB
X
X    PROTO_DEFINES =
X
X     INSTPGMFLAGS =
X
X     INSTBINFLAGS = -m 0755
X     INSTUIDFLAGS = -m 4755
X     INSTLIBFLAGS = -m 0664
X     INSTINCFLAGS = -m 0444
X     INSTMANFLAGS = -m 0444
X     INSTDATFLAGS = -m 0444
X    INSTKMEMFLAGS = -g kmem -m 2755
X
X          DESTDIR =
X
X     TOP_INCLUDES = -I$(INCROOT)
X
X      CDEBUGFLAGS = -O
X        CCOPTIONS =
X      COMPATFLAGS =
X
X      ALLINCLUDES = $(STD_INCLUDES) $(TOP_INCLUDES) $(INCLUDES) $(EXTRA_INCLUDES)
X       ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(PROTO_DEFINES) $(DEFINES) $(COMPATFLAGS)
X           CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(ALLDEFINES)
X        LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES)
X           LDLIBS = $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
X        LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS)
X   LDCOMBINEFLAGS = -X -r
X
X        MACROFILE = sun.cf
X           RM_CMD = $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut
X
X    IMAKE_DEFINES =
X
X         IRULESRC = $(CONFIGDIR)
X        IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES)
X
X     ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/Imake.rules \
X			$(IRULESRC)/Project.tmpl $(IRULESRC)/site.def \
X			$(IRULESRC)/$(MACROFILE) $(EXTRA_ICONFIGFILES)
X
X###########################################################################
X# X Window System Build Parameters
X# $XConsortium: Project.tmpl,v 1.63 89/12/18 16:46:44 jim Exp $
X
X###########################################################################
X# X Window System make variables; this need to be coordinated with rules
X# $XConsortium: Project.tmpl,v 1.63 89/12/18 16:46:44 jim Exp $
X
X          PATHSEP = /
X        USRLIBDIR = /usr/staff/lib
X           BINDIR = /usr/staff/bin
X          INCROOT = /usr/staff/include
X     BUILDINCROOT = $(TOP)
X      BUILDINCDIR = $(BUILDINCROOT)/X11
X      BUILDINCTOP = ..
X           INCDIR = $(INCROOT)/X11
X           ADMDIR = /tmp
X           LIBDIR = $(USRLIBDIR)/X11
X        CONFIGDIR = $(LIBDIR)/config
X       LINTLIBDIR = $(USRLIBDIR)/lint
X
X          FONTDIR = $(LIBDIR)/fonts
X         XINITDIR = $(LIBDIR)/xinit
X           XDMDIR = $(LIBDIR)/xdm
X           AWMDIR = $(LIBDIR)/awm
X           TWMDIR = $(LIBDIR)/twm
X           GWMDIR = $(LIBDIR)/gwm
X          MANPATH = $(DESTDIR)/usr/staff/man
X    MANSOURCEPATH = $(MANPATH)/man
X           MANDIR = $(MANSOURCEPATH)1
X        LIBMANDIR = $(MANSOURCEPATH)3
X      XAPPLOADDIR = $(LIBDIR)/app-defaults
XXFILESEARCHPATHDEFAULT = $(LIBDIR)/%L/%T/%N%S:$(LIBDIR)/%l/%T/%N%S:$(LIBDIR)/%T/%N%S
X	         ERRORDB = $(LIBDIR)/XtErrorDB
X
X        SOXLIBREV = 4.2
X          SOXTREV = 4.0
X         SOXAWREV = 4.0
X        SOOLDXREV = 4.0
X         SOXMUREV = 4.0
X        SOXEXTREV = 4.0
X
X       FONTCFLAGS = -t
X
X     INSTAPPFLAGS = $(INSTDATFLAGS)
X
X            IMAKE = imake
X           DEPEND = makedepend
X              RGB = rgb
X            FONTC = bdftosnf
X        MKFONTDIR = mkfontdir
X        MKDIRHIER = /bin/sh $(BINDIR)/mkdirhier.sh
X
X        CONFIGSRC = $(TOP)/config
X        CLIENTSRC = $(TOP)/clients
X          DEMOSRC = $(TOP)/demos
X           LIBSRC = $(TOP)/lib
X          FONTSRC = $(TOP)/fonts
X       INCLUDESRC = $(TOP)/X11
X        SERVERSRC = $(TOP)/server
X          UTILSRC = $(TOP)/util
X        SCRIPTSRC = $(UTILSRC)/scripts
X       EXAMPLESRC = $(TOP)/examples
X       CONTRIBSRC = $(TOP)/../contrib
X           DOCSRC = $(TOP)/doc
X           RGBSRC = $(TOP)/rgb
X        DEPENDSRC = $(UTILSRC)/makedepend
X         IMAKESRC = $(CONFIGSRC)
X         XAUTHSRC = $(LIBSRC)/Xau
X          XLIBSRC = $(LIBSRC)/X
X           XMUSRC = $(LIBSRC)/Xmu
X       TOOLKITSRC = $(LIBSRC)/Xt
X       AWIDGETSRC = $(LIBSRC)/Xaw
X       OLDXLIBSRC = $(LIBSRC)/oldX
X      XDMCPLIBSRC = $(LIBSRC)/Xdmcp
X      BDFTOSNFSRC = $(FONTSRC)/bdftosnf
X     MKFONTDIRSRC = $(FONTSRC)/mkfontdir
X     EXTENSIONSRC = $(TOP)/extensions
X
X  DEPEXTENSIONLIB = $(USRLIBDIR)/libXext.a
X     EXTENSIONLIB =  -lXext
X
X          DEPXLIB = $(DEPEXTENSIONLIB)
X             XLIB = $(EXTENSIONLIB) -lX11
X
X      DEPXAUTHLIB = $(USRLIBDIR)/libXau.a
X         XAUTHLIB =  -lXau
X
X        DEPXMULIB =
X           XMULIB = -lXmu
X
X       DEPOLDXLIB =
X          OLDXLIB = -loldX
X
X      DEPXTOOLLIB =
X         XTOOLLIB = -lXt
X
X        DEPXAWLIB =
X           XAWLIB = -lXaw
X
X LINTEXTENSIONLIB = $(USRLIBDIR)/llib-lXext.ln
X         LINTXLIB = $(USRLIBDIR)/llib-lX11.ln
X          LINTXMU = $(USRLIBDIR)/llib-lXmu.ln
X        LINTXTOOL = $(USRLIBDIR)/llib-lXt.ln
X          LINTXAW = $(USRLIBDIR)/llib-lXaw.ln
X
X          DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)
X
X         DEPLIBS1 = $(DEPLIBS)
X         DEPLIBS2 = $(DEPLIBS)
X         DEPLIBS3 = $(DEPLIBS)
X
X###########################################################################
X# Imake rules for building libraries, programs, scripts, and data files
X# rules:  $XConsortium: Imake.rules,v 1.67 89/12/18 17:14:15 jim Exp $
X
X###########################################################################
X# start of Imakefile
X
X#
X#	Imakefile for xkal
X#
X#   George Ferguson, ferguson@cs.rochester.edu, 15 Oct 1990.
X#
X#	$Id: Imakefile,v 1.1 90/10/28 13:05:04 ferguson Exp $
X#
X
X#
X# Here's what to change to customize the installation...
X#
X# where do you want this stuff?
X#
XBINDIR = /scratch/ferguson/xkal/Bin
XLIBDIR = /scratch/ferguson/xkal/Lib
XMANDIR = /scratch/ferguson/xkal/Man
X
X#
X# where is the ezMenu package?
X#
XEZMENU_DIR =		/u/ferguson/src/x/EzMenu
XINCLUDES +=		-I$(EZMENU_DIR)
XEXTRA_LIBRARIES +=	-L$(EZMENU_DIR) -lezMenu$(TARGET_MACH)
X
X#
X# where is the app-defaults to C converter?
X#
XAD2C = ad2c
X
X#
X# Nothing to change below here (except maybe CDEBUGFLAGS).
X#
XDEPLIBS =		$(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)
XLOCAL_LIBRARIES =	$(XAWLIB) $(XMULIB) $(XTOOLLIB) $(XLIB)
XCDEBUGFLAGS = 		-g
X
XSRCS = xkal.c month.c day.c schedule.c db.c util.c date-strings.c
XOBJS = xkal.o month.o day.o schedule.o db.o util.o date-strings.o
X
X PROGRAM = xkal
X
Xall:: xkal
X
Xxkal: $(OBJS) $(DEPLIBS)
X	$(RM) $@
X	$(CC) -o $@ $(OBJS) $(LDOPTIONS) $(LOCAL_LIBRARIES) $(LDLIBS) $(EXTRA_LOAD_FLAGS)
X
Xsaber_xkal:
X	#load $(ALLDEFINES) $(SRCS) $(LOCAL_LIBRARIES) $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
X
Xosaber_xkal:
X	#load $(ALLDEFINES) $(OBJS) $(LOCAL_LIBRARIES) $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
X
Xinstall:: xkal
X	$(INSTALL) -c $(INSTPGMFLAGS)   xkal $(BINDIR)
X
Xinstall.man:: xkal.man
X	$(INSTALL) -c $(INSTMANFLAGS) xkal.man $(MANDIR)/xkal.1
X
Xdepend::
X	$(DEPEND) -s "# DO NOT DELETE" -- $(ALLDEFINES) -- $(SRCS)
X
Xlint:
X	$(LINT) $(LINTFLAGS) $(SRCS) $(LINTLIBS)
Xlint1:
X	$(LINT) $(LINTFLAGS) $(FILE) $(LINTLIBS)
X
Xclean::
X	$(RM) $(PROGRAM)
X
Xinstall:: Xkal.ad
X	$(INSTALL) -c $(INSTAPPFLAGS) Xkal.ad $(XAPPLOADDIR)/Xkal
X
X#
X#	generate C code for fallback resources
X#
XXkal.ad.h: Xkal.ad
X	$(AD2C) Xkal.ad >Xkal.ad.h
X
Xclean::
X	$(RM) Xkal.ad.h
X
X###########################################################################
X# common rules for all Makefiles - do not edit
X
Xemptyrule::
X
Xclean::
X	$(RM_CMD) \#*
X
XMakefile::
X	-@if [ -f Makefile ]; then \
X	echo "	$(RM) Makefile.bak; $(MV) Makefile Makefile.bak"; \
X	$(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \
X	else exit 0; fi
X	$(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)
X
Xtags::
X	$(TAGS) -w *.[ch]
X	$(TAGS) -xw *.[ch] > TAGS
X
Xsaber:
X	#load $(ALLDEFINES) $(SRCS)
X
Xosaber:
X	#load $(ALLDEFINES) $(OBJS)
X
X###########################################################################
X# empty rules for directories that do not have SUBDIRS - do not edit
X
Xinstall::
X	@echo "install in $(CURRENT_DIR) done"
X
Xinstall.man::
X	@echo "install.man in $(CURRENT_DIR) done"
X
XMakefiles::
X
Xincludes::
X
X###########################################################################
X# dependencies generated by makedepend
X
X# DO NOT DELETE
X
Xxkal.o: /usr/include/stdio.h /usr/include/ctype.h
Xxkal.o: /usr/staff/include/X11/Intrinsic.h /usr/staff/include/X11/Xlib.h
Xxkal.o: /usr/include/sys/types.h /usr/include/sys/sysmacros.h
Xxkal.o: /usr/staff/include/X11/X.h /usr/staff/include/X11/Xutil.h
Xxkal.o: /usr/staff/include/X11/Xresource.h /usr/staff/include/X11/Xos.h
Xxkal.o: /usr/include/strings.h /usr/include/sys/file.h
Xxkal.o: /usr/include/sys/fcntlcom.h /usr/include/sys/time.h
Xxkal.o: /usr/include/sys/time.h /usr/staff/include/X11/Core.h
Xxkal.o: /usr/staff/include/X11/Composite.h
Xxkal.o: /usr/staff/include/X11/Constraint.h /usr/staff/include/X11/Object.h
Xxkal.o: /usr/staff/include/X11/RectObj.h /usr/staff/include/X11/StringDefs.h
Xxkal.o: /usr/staff/include/X11/Xmu/Drawing.h
Xxkal.o: /usr/staff/include/X11/Xaw/Form.h
Xxkal.o: /usr/staff/include/X11/Xaw/MenuButton.h
Xxkal.o: /usr/staff/include/X11/Xaw/Command.h
Xxkal.o: /usr/staff/include/X11/Xaw/Label.h
Xxkal.o: /usr/staff/include/X11/Xaw/Simple.h
Xxkal.o: /usr/staff/include/X11/Xmu/Converters.h
Xxkal.o: /usr/staff/include/X11/Xaw/Cardinals.h
Xxkal.o: /u/ferguson/src/x/EzMenu/EzMenu.h /usr/staff/include/X11/Shell.h
Xxkal.o: /usr/staff/include/X11/Xaw/SimpleMenu.h app-resources.h resources.h
Xxkal.o: month.h day.h schedule.h db.h util.h date-strings.h Xkal.ad.h
Xmonth.o: /usr/staff/include/X11/Intrinsic.h /usr/staff/include/X11/Xlib.h
Xmonth.o: /usr/include/sys/types.h /usr/include/sys/sysmacros.h
Xmonth.o: /usr/staff/include/X11/X.h /usr/staff/include/X11/Xutil.h
Xmonth.o: /usr/staff/include/X11/Xresource.h /usr/staff/include/X11/Xos.h
Xmonth.o: /usr/include/strings.h /usr/include/sys/file.h
Xmonth.o: /usr/include/sys/fcntlcom.h /usr/include/sys/time.h
Xmonth.o: /usr/include/sys/time.h /usr/staff/include/X11/Core.h
Xmonth.o: /usr/staff/include/X11/Composite.h
Xmonth.o: /usr/staff/include/X11/Constraint.h /usr/staff/include/X11/Object.h
Xmonth.o: /usr/staff/include/X11/RectObj.h /usr/staff/include/X11/Shell.h
Xmonth.o: /usr/staff/include/X11/StringDefs.h
Xmonth.o: /usr/staff/include/X11/Xaw/Form.h
Xmonth.o: /usr/staff/include/X11/Xaw/Command.h
Xmonth.o: /usr/staff/include/X11/Xaw/Label.h
Xmonth.o: /usr/staff/include/X11/Xaw/Simple.h
Xmonth.o: /usr/staff/include/X11/Xmu/Converters.h
Xmonth.o: /usr/staff/include/X11/Xaw/Toggle.h
Xmonth.o: /usr/staff/include/X11/Xaw/AsciiText.h
Xmonth.o: /usr/staff/include/X11/Xaw/Text.h
Xmonth.o: /usr/staff/include/X11/Xaw/TextSink.h
Xmonth.o: /usr/staff/include/X11/Xaw/TextSrc.h
Xmonth.o: /usr/staff/include/X11/Xaw/AsciiSrc.h
Xmonth.o: /usr/staff/include/X11/Xaw/AsciiSink.h
Xmonth.o: /usr/staff/include/X11/Xaw/Cardinals.h app-resources.h widgets.h
Xmonth.o: month.h day.h db.h date-strings.h
Xday.o: /usr/staff/include/X11/Intrinsic.h /usr/staff/include/X11/Xlib.h
Xday.o: /usr/include/sys/types.h /usr/include/sys/sysmacros.h
Xday.o: /usr/staff/include/X11/X.h /usr/staff/include/X11/Xutil.h
Xday.o: /usr/staff/include/X11/Xresource.h /usr/staff/include/X11/Xos.h
Xday.o: /usr/include/strings.h /usr/include/sys/file.h
Xday.o: /usr/include/sys/fcntlcom.h /usr/include/sys/time.h
Xday.o: /usr/include/sys/time.h /usr/staff/include/X11/Core.h
Xday.o: /usr/staff/include/X11/Composite.h /usr/staff/include/X11/Constraint.h
Xday.o: /usr/staff/include/X11/Object.h /usr/staff/include/X11/RectObj.h
Xday.o: /usr/staff/include/X11/Shell.h /usr/staff/include/X11/StringDefs.h
Xday.o: /usr/staff/include/X11/Xaw/Form.h /usr/staff/include/X11/Xaw/Command.h
Xday.o: /usr/staff/include/X11/Xaw/Label.h /usr/staff/include/X11/Xaw/Simple.h
Xday.o: /usr/staff/include/X11/Xmu/Converters.h
Xday.o: /usr/staff/include/X11/Xaw/AsciiText.h
Xday.o: /usr/staff/include/X11/Xaw/Text.h
Xday.o: /usr/staff/include/X11/Xaw/TextSink.h
Xday.o: /usr/staff/include/X11/Xaw/TextSrc.h
Xday.o: /usr/staff/include/X11/Xaw/AsciiSrc.h
Xday.o: /usr/staff/include/X11/Xaw/AsciiSink.h
Xday.o: /usr/staff/include/X11/Xaw/Cardinals.h widgets.h month.h day.h db.h
Xday.o: date-strings.h
Xschedule.o: /usr/staff/include/X11/Intrinsic.h /usr/staff/include/X11/Xlib.h
Xschedule.o: /usr/include/sys/types.h /usr/include/sys/sysmacros.h
Xschedule.o: /usr/staff/include/X11/X.h /usr/staff/include/X11/Xutil.h
Xschedule.o: /usr/staff/include/X11/Xresource.h /usr/staff/include/X11/Xos.h
Xschedule.o: /usr/include/strings.h /usr/include/sys/file.h
Xschedule.o: /usr/include/sys/fcntlcom.h /usr/include/sys/time.h
Xschedule.o: /usr/include/sys/time.h /usr/staff/include/X11/Core.h
Xschedule.o: /usr/staff/include/X11/Composite.h
Xschedule.o: /usr/staff/include/X11/Constraint.h
Xschedule.o: /usr/staff/include/X11/Object.h /usr/staff/include/X11/RectObj.h
Xschedule.o: /usr/staff/include/X11/Shell.h
Xschedule.o: /usr/staff/include/X11/StringDefs.h
Xschedule.o: /usr/staff/include/X11/Xaw/Form.h
Xschedule.o: /usr/staff/include/X11/Xaw/Command.h
Xschedule.o: /usr/staff/include/X11/Xaw/Label.h
Xschedule.o: /usr/staff/include/X11/Xaw/Simple.h
Xschedule.o: /usr/staff/include/X11/Xmu/Converters.h
Xschedule.o: /usr/staff/include/X11/Xaw/Cardinals.h widgets.h month.h day.h
Xschedule.o: db.h date-strings.h
Xdb.o: /usr/include/stdio.h /usr/include/string.h /usr/include/ctype.h
Xdb.o: /usr/include/errno.h /usr/include/sys/errno.h
Xdb.o: /usr/staff/include/X11/Intrinsic.h /usr/staff/include/X11/Xlib.h
Xdb.o: /usr/include/sys/types.h /usr/include/sys/sysmacros.h
Xdb.o: /usr/staff/include/X11/X.h /usr/staff/include/X11/Xutil.h
Xdb.o: /usr/staff/include/X11/Xresource.h /usr/staff/include/X11/Xos.h
Xdb.o: /usr/include/strings.h /usr/include/sys/file.h
Xdb.o: /usr/include/sys/fcntlcom.h /usr/include/sys/time.h
Xdb.o: /usr/include/sys/time.h /usr/staff/include/X11/Core.h
Xdb.o: /usr/staff/include/X11/Composite.h /usr/staff/include/X11/Constraint.h
Xdb.o: /usr/staff/include/X11/Object.h /usr/staff/include/X11/RectObj.h util.h
Xdb.o: date-strings.h
Xutil.o: /usr/include/sys/time.h /usr/include/sys/time.h /usr/include/ctype.h
END_OF_FILE
if test 15748 -ne `wc -c <'Makefile'`; then
    echo shar: \"'Makefile'\" unpacked with wrong size!
fi
# end of 'Makefile'
fi
if test -f 'Xkal.ad' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Xkal.ad'\"
else
echo shar: Extracting \"'Xkal.ad'\" \(7569 characters\)
sed "s/^X//" >'Xkal.ad' <<'END_OF_FILE'
X!
X!	Xkal - graphical appointment calendar
X!
X!	George Ferguson (ferguson@cs.rochester.edu), 27 Oct 1990.
X!
X!	$Id: Xkal.ad,v 1.8 90/11/12 13:15:08 ferguson Exp $
X!
X
X! This has must be the first line in the "official" app-defaults file.
XXkal.revision:                  $Revision: 1.8 $
XXkal.title:			Xkal 1.0 (beta)
X
X!
X! Application defaults
X!
XXkal.appoints:			~/.appoints
XXkal.bothShown:			True
XXkal.numMonths:			1
XXkal.opaqueDates:		False
XXkal.dowLabels:			False
X
X!
X! The toplevel shell and form
X!
XXkal*allowShellResize: True
XXkal*Form.defaultDistance:	0
XXkal*bothForm.defaultDistance:	2
X
X!
X! The menu buttons in the main window
X!
XXkal*fileButton.label:		File
XXkal*fileButton.menuName:	fileMenu
XXkal*fileMenu.menu:\
X	(item "File") \
X	(line) \
X	(item "[S] Save" (action "xkal-save()")) \
X	(item "[Q] Quit" (action "xkal-quit()")) \
X	(item "[X] Exit" (action "xkal-exit()"))
X
XXkal*viewButton.label:		View
XXkal*viewButton.fromHoriz:	fileButton
XXkal*viewButton.menuName:	viewMenu
XXkal*viewMenu.menu:\
X	(item "View") \
X	(line) \
X	(item "[N] Next" (action "xkal-next()")) \
X	(item "[P] Prev" (action "xkal-prev()")) \
X	(item "[T] Today" (action "xkal-today()")) \
X	(item "[1] 1 Month" (action "xkal-numMonths(1)")) \
X	(item "[2] 3 Months" (action "xkal-numMonths(3)")) \
X	(item "[3] 12 Months" (action "xkal-numMonths(12)"))
X
XXkal*otherButton.label:		Other
XXkal*otherButton.fromHoriz:	viewButton
XXkal*otherButton.menuName:	otherMenu
XXkal*otherMenu.menu:\
X	(item "Other") \
X	(line) \
X	(item "[E] Edit schedule" (action "xkal-edit-schedule()"))
X
X!
X! The month forms
X!
XXkal*allMonthsForm.fromVert:		fileButton
XXkal*allMonthsForm*resizable:		True
XXkal*allMonthsForm*internalWidth:	1
XXkal*allMonthsForm*internalHeight:	1
XXkal*allMonthsForm*translations:#override\n\
X	<Key>Q:		xkal-quit() \n\
X	<Key>X:		xkal-exit() \n\
X	<Key>N:		xkal-next() \n\
X	<Key>P:		xkal-prev() \n\
X	<Key>T:		xkal-today() \n\
X	<Key>S:		xkal-save() \n\
X	<Key>E:		xkal-edit-schedule() \n\
X	<Key>1:		xkal-numMonths(1) \n\
X	<Key>2:		xkal-numMonths(3) \n\
X	<Key>3:		xkal-numMonths(12) \n
X
XXkal*monthForm1.fromHoriz:	NULL
XXkal*monthForm1.fromVert:	NULL
X
XXkal*monthForm3_1.fromHoriz:	NULL
XXkal*monthForm3_1.fromVert:	NULL
XXkal*monthForm3_2.fromVert:	monthForm3_1
XXkal*monthForm3_3.fromVert:	monthForm3_2
X
XXkal*monthForm12_1.fromHoriz:	NULL
XXkal*monthForm12_1.fromVert:	NULL
XXkal*monthForm12_2.fromHoriz:	monthForm12_1
XXkal*monthForm12_3.fromHoriz:	monthForm12_2
XXkal*monthForm12_4.fromHoriz:	monthForm12_3
X
XXkal*monthForm12_5.fromVert:	monthForm12_1
XXkal*monthForm12_6.fromHoriz:	monthForm12_5
XXkal*monthForm12_6.fromVert:	monthForm12_2
XXkal*monthForm12_7.fromHoriz:	monthForm12_6
XXkal*monthForm12_7.fromVert:	monthForm12_3
XXkal*monthForm12_8.fromHoriz:	monthForm12_7
XXkal*monthForm12_8.fromVert:	monthForm12_4
X
XXkal*monthForm12_9.fromVert:	monthForm12_5
XXkal*monthForm12_10.fromHoriz:	monthForm12_9
XXkal*monthForm12_10.fromVert:	monthForm12_6
XXkal*monthForm12_11.fromHoriz:	monthForm12_10
XXkal*monthForm12_11.fromVert:	monthForm12_7
XXkal*monthForm12_12.fromHoriz:	monthForm12_11
XXkal*monthForm12_12.fromVert:	monthForm12_8
X
X! The month labels in the monthForms
X! monthLabelX.width = (dateWidthX+internalWidth)*7+borderWidth*12
X
XXkal*monthLabel1.font:		*fixed*bold*
XXkal*monthLabel1.borderWidth:	0
XXkal*monthLabel1.justify:	center
XXkal*monthLabel1.width:		376
XXkal*monthLabel1.resize:	False
X
XXkal*monthLabel3.font:		6x9
XXkal*monthLabel3.borderWidth:	0
XXkal*monthLabel3.justify:	center
XXkal*monthLabel3.width:		201
XXkal*monthLabel3.resize:	False
X
XXkal*monthLabel12.font:		5x8
XXkal*monthLabel12.borderWidth:	0
XXkal*monthLabel12.justify:	center
XXkal*monthLabel12.width:	131
XXkal*monthLabel12.resize:	False
X
X! The day-of-week labels (if .dowLabels is True)
X! dowLabelX.width = dateWidthX+internalWidth*2
X
XXkal*dowLabel1.font:		*fixed*bold*
XXkal*dowLabel1.borderWidth:	1
XXkal*dowLabel1.width:		52
XXkal*dowLabel1.resize:		False
X
XXkal*dowLabel3.font:		6x9
XXkal*dowLabel3.borderWidth:	1
XXkal*dowLabel3.width:		27
XXkal*dowLabel3.resize:		False
X
XXkal*dowLabel12.font:		5x8
XXkal*dowLabel12.borderWidth:	1
XXkal*dowLabel12.width:		17
XXkal*dowLabel12.resize:		False
X
X! The day buttons in the monthForms
X
XXkal.dateFont1:			*fixed*bold*
XXkal.datePosition1:		+10+10
XXkal.dateWidth1:		50
XXkal.dateHeight1:		50
X
XXkal.dateFont3:			6x9
XXkal.datePosition3:		+0+6
XXkal.dateWidth3:		25
XXkal.dateHeight3:		25
X
XXkal.dateFont12:		5x8
XXkal.datePosition12:		+0+6
XXkal.dateWidth12:		15
XXkal.dateHeight12:		15
X
X!
X! The dayForm stuff (one day's appointments)
X!
X
XXkal*popupForm.defaultDistance:	2
X
XXkal*dayForm.defaultDistance:	4
XXkal*TopLevelShell.title:	Xkal Day Window
X
X! if it's a popup
XXkal*popupForm*dayForm.fromVert:	dismissButton
XXkal*popupForm*dayForm.borderWidth:	0
X
X! if it's not a popup
XXkal*bothForm*dayForm.fromHoriz:	allMonthsForm
XXkal*bothForm*dayForm.fromVert:		fileButton
X
X!
X! The buttons in the dayForm
X!
XXkal*dismissButton.label:		Dismiss
X
XXkal*selectButton.label:		Select
XXkal*selectButton.fromHoriz:		dismissButton
X
XXkal*unselectButton.label:		Unselect
XXkal*unselectButton.fromHoriz:		selectButton
X
X!
X! The widgets in the dayForm
X!
XXkal*dayLabel.justify:		center
XXkal*dayLabel.width:		230
XXkal*dayLabel.borderWidth:	0
XXkal*dayLabel.label:		Xkal 1.0(alpha)
X
XXkal*timeLabel.font:		fixed
XXkal*timeLabel.borderWidth:	0
XXkal*timeLabel.vertDistance:	2
X
XXkal*textText*font:			fixed
XXkal*textText.width:			200
XXkal*textText.height:			20
XXkal*textText.vertDistance:		2
XXkal*textText.borderWidth:		0
XXkal*textText.topMargin:		0
XXkal*textText*editType:			edit
XXkal*textText*resize:			True
XXkal*textText*displayCaret:		False
XXkal*textText.scrollHorizontal:		whenNeeded
XXkal*textText*Scrollbar.thickness:	5
XXkal*textText.translations:#override\n\
X	<Enter>:	display-caret(True) \n\
X	<Leave>:	display-caret(False) \n\
X	<Key>Return:	no-op() \n
X
X!
X! The schedule editor
X!
XXkal*schedulePopupShell.title:		Xkal Schedule Window
X
XXkal*dismissSchedButton.label:		Dismiss
X
XXkal*applySchedButton.label:		Apply
XXkal*applySchedButton.fromHoriz:	dismissSchedButton
X
XXkal*schedulePopupShell*dayForm.fromVert: dismissSchedButton
X
XXkal*schedulePopupShell*dayForm*font:	5x8
XXkal*schedulePopupShell*Text*width:	100
XXkal*schedulePopupShell*Text*height:	12
XXkal*schedulePopupShell*Text*Scrollbar.height:	3
X
X
X!
X! For calendar boxes without dates
X!
XXkal.noDayShade:	cross_weave
X
X!
X! For mono displays, the patterns reflecting the number of appointments
X! These bitmaps are found in the directory specified by the global resource
X! bitmapFilePath (/usr/staff/include/X11/bitmaps by default).
X!
XXkal.shade1:		gray3
XXkal.shade2:		gray3
XXkal.shade3:		light_gray
XXkal.shade4:		light_gray
XXkal.shade5:		gray
XXkal.shade6:		gray
XXkal.shade7:		flipped_gray
XXkal.shade8:		flipped_gray
XXkal.shade9:		flipped_gray
XXkal.shade10:		flipped_gray
XXkal.shade11:		flipped_gray
XXkal.shade12:		flipped_gray
XXkal.shade13:		flipped_gray
XXkal.shade14:		flipped_gray
XXkal.shade15:		flipped_gray
XXkal.shade16:		flipped_gray
XXkal.shade17:		flipped_gray
XXkal.shade18:		flipped_gray
XXkal.shade19:		flipped_gray
XXkal.shade20:		flipped_gray
XXkal.shade21:		flipped_gray
XXkal.shade22:		flipped_gray
X
X!
X! For color displays, the colors reflecting the number of appointments
X!
XXkal.color1:		green
XXkal.color2:		green
XXkal.color3:		blue
XXkal.color4:		blue
XXkal.color5:		yellow
XXkal.color6:		yellow
XXkal.color7:		red
XXkal.color8:		red
XXkal.color9:		red
XXkal.color10:		red
XXkal.color11:		red
XXkal.color12:		red
XXkal.color13:		red
XXkal.color14:		red
XXkal.color15:		red
XXkal.color16:		red
XXkal.color17:		red
XXkal.color18:		red
XXkal.color19:		red
XXkal.color20:		red
XXkal.color21:		red
XXkal.color22:		red
X
END_OF_FILE
if test 7569 -ne `wc -c <'Xkal.ad'`; then
    echo shar: \"'Xkal.ad'\" unpacked with wrong size!
fi
# end of 'Xkal.ad'
fi
if test -f 'app-resources.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'app-resources.h'\"
else
echo shar: Extracting \"'app-resources.h'\" \(742 characters\)
sed "s/^X//" >'app-resources.h' <<'END_OF_FILE'
X/*
X *	app-resources.h : External definitions for access to the application
X *		      resources.
X *
X *	George Ferguson, ferguson@cs.rochester.edu,  27 Oct 1990.
X *
X *	$Id: app-resources.h,v 1.4 90/11/07 11:21:53 ferguson Exp $
X *
X */
Xtypedef struct {
X    String appoints;
X    String date;
X    int numMonths;
X    Boolean bothShown;
X    Boolean listOnly;
X    Boolean silent;
X    Boolean opaqueDates;
X    Boolean dowLabels;
X    Font dateFont1,dateFont3,dateFont12;
X    String datePosition1,datePosition3,datePosition12;
X    int dateWidth1,dateWidth3,dateWidth12;
X    int dateHeight1,dateHeight3,dateHeight12;
X    String noDayShade;
X    String shade[23];
X    Pixel color[23];
X    String revision;
X} AppResources;
Xextern AppResources appResources;
END_OF_FILE
if test 742 -ne `wc -c <'app-resources.h'`; then
    echo shar: \"'app-resources.h'\" unpacked with wrong size!
fi
# end of 'app-resources.h'
fi
if test -f 'date-strings.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'date-strings.c'\"
else
echo shar: Extracting \"'date-strings.c'\" \(560 characters\)
sed "s/^X//" >'date-strings.c' <<'END_OF_FILE'
X/*
X *	date-strings.c : String constants used everywhere
X *
X *	$Id: date-strings.c,v 1.1 90/11/07 11:22:22 ferguson Exp $
X */
X
Xchar *shortDayStr[] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
Xchar *longDayStr[] = { "Sunday", "Monday", "Tuesday", "Wednesday",
X		       "Thursday", "Friday", "Saturday" };
Xchar *shortMonStr[] = { "Jan","Feb","Mar","Apr","May","Jun",
X			"Jul","Aug","Sep","Oct","Nov","Dec" };
Xchar *longMonStr[] = { "January","February","March","April","May","June",
X			"July","August","September","October","November",
X			"December" };
END_OF_FILE
if test 560 -ne `wc -c <'date-strings.c'`; then
    echo shar: \"'date-strings.c'\" unpacked with wrong size!
fi
# end of 'date-strings.c'
fi
if test -f 'date-strings.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'date-strings.h'\"
else
echo shar: Extracting \"'date-strings.h'\" \(208 characters\)
sed "s/^X//" >'date-strings.h' <<'END_OF_FILE'
X/*
X *	date-strings.h: Definitions of global string constants
X *
X *	$Id: date-strings.h,v 1.1 90/11/07 11:22:34 ferguson Exp $
X */
X
Xextern char *shortDayStr[7],*longDayStr[7],*shortMonStr[12],*longMonStr[12];
END_OF_FILE
if test 208 -ne `wc -c <'date-strings.h'`; then
    echo shar: \"'date-strings.h'\" unpacked with wrong size!
fi
# end of 'date-strings.h'
fi
if test -f 'schedule.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'schedule.h'\"
else
echo shar: Extracting \"'schedule.h'\" \(149 characters\)
sed "s/^X//" >'schedule.h' <<'END_OF_FILE'
X/*
X *	schedule.h : Let's be pedantic about this
X *
X *	$Id: schedule.h,v 1.1 90/11/07 11:23:17 ferguson Exp $
X */
X
Xextern void createPopupSchedule();
END_OF_FILE
if test 149 -ne `wc -c <'schedule.h'`; then
    echo shar: \"'schedule.h'\" unpacked with wrong size!
fi
# end of 'schedule.h'
fi
echo shar: End of archive 1 \(of 4\).
cp /dev/null ark1isdone
MISSING=""
for I in 1 2 3 4 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 4 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
-- 
George Ferguson			ARPA: ferguson@cs.rochester.edu
University of Rochester		UUCP: {decvax,rutgers}!rochester!ferguson
Rochester  NY  14627		VOX:  (716) 275-2527