README for XKAL - X Appointment Calendar George Ferguson, ferguson@cs.rochester.edu 27 Feb 1990 DISCLAIMER: This is no longer a BETA release, but there have been drastic changes since the original (1.0beta). No doubt the increased complexity of the program has introduced many new bugs. While it has been in use for some time at our site, there are certainly many bugs left to find. This software is provided as is with no warranty expressed or implied. I hope you find it useful, but I won't be held responsible for any damage that may occur from reading, compiling, installing or using it. You are free to use any part of this code for other purposes. It would be nice if you could keep my name on some part of whatever the final product is. INSTALLATION: 1. Edit the Imakefile to reflect any changes for your site. These include setting BINDIR, LIBDIR, and MANDIR if needed, and checking CDEBUGFLAGS if debugging or optimization is desired. This program uses the EzMenu widgets, which provides a resource manager interface to the SimpleMenuWidget. You should check the definitions in the Imakefile to reflect your installation of the EzMenu package. In particular, you may not need the TARGET_MACH flag if you only intend to compile for one architecture. Note that the version of the EzMenu widgets used with this version (1.10 and up) of xkal is slightly changed from that originally in xtex (and in xkal 1.0beta). It allows only commas to separate arguments to action procedures, rather than whitespace as well, since otherwise it was too hard to pass things. Compiling this program requires the "ad2c" program. You should set the AD2C variable as required. Actually, ad2c is only required if you change Xkal.ad and want the new defaults compiled in as fallback resources. If you don't have ad2c, you probably want to remove the line that adds Xkal.ad.h to the "clean" target. Decide if you want to use the popup alert boxes. More importantly, decide if you can compile them. If not (ie. if the subsequent make barfs), then comment out the ALERT* definitions and error messages will go to stderr. If you don't have dysize(3) you should uncomment the relevant definitions (DYSIZE*) to include it. This includes Ultrix and maybe SGI systems. If you don't have strcasecmp(3) you should uncomment the relevant definitions (STRCASECMP*) to include it. This includes at least Sun386i systems. If you have troubles compiling "string-convert.c" due to missing or multiple declarations of "XtCXtToolkitError" and the like, just comment out the definitions of STRINGCONVERT* in the Imakefile. This will mean that you will see the message Cannot convert string "NULL" to type Widget on startup, but otherwise doesn't affect xkal's operation. You may want to change defaults in Xkal.ad; consult the man page for details, and see above about ad2c. 2. Execute % xmkmf to create the Makefile. 3. Execute % make depend to add the dependencies to the Makefile. This is necessary to ensure that Xkal.ad.h is created when needed. IMPORTANT: Ignore the error message from makedepend if Xkal.ad.h is not found; it will be created automatically. 4. Make the package using % make or install it directly with % make install install.man HISTORY: Unless otherwise indicated, things are listed with the person who suggested them. These people did not write code; I get the blame for that). Apologies if I didn't credit someone. Released to alt.sources (version 1.0 beta), 13 Nov 1990. Patched 16 Nov 1990: Bad values in XtSetValues(), lines 169, 172, 175 "day.c" - douglis@cs.vu.nl (Fred Douglis) - sengillo@isdc00.kodak.com (Alan Sengillo) Version 1.10 made available for ftp, 27 Feb 1991. The following are some of the changes in this version, listed with the person who suggested them (these people did not write code; I get the blame for that). Apologies if I didn't credit someone. From: netmgr@venus.csc.fi (Pekka Kyt|laakso) Customize dow and month labels and allow Monday at start of week for European users. From: Colin Walls Allow calendar format and preprocessor. Actually it will handle almost any date spec., and provides #include. From: several people Ultrix defs for dysize() and don't use += if possible. From: rackow@antares.mcs.anl.gov (Gene Rackow) Different reminder types, like monthly and yearly. In fact, the appointment format is considerably more flexible, with respect to both syntax and semantics. From: weissman%pianoforte.esd.sgi.com@SGI.COM Fixed major grossness in selectDay() From: mucit@cs.rochester.edu (Bulent Murtezaoglu) Two month format and better labelling algorithm for moved appoints. And from me: - System and personal files, with #include functionality - Added appointment editor to replace schedule editor - Added defaults editor - Fully customizable day layout, including start and end times, increment, number and label of notes - Switch to "criticality levels" for appointment highlighting - Popup error messages where appropriate (if wanted) - "xkal-system()" action for arbitrary commands - Automail scripts - Programs to write in xremind and pcal formats Version 1.11 - 1 Mar 1991 gf: Get notesLabel in non-interactive mode Version 1.12 - 2 Mar 1991 gf: Mail tomorrow's reminders in xkal-mail and xkal-automail, rather than today's. Duuh... Version 1.13 - 13 Mar 1991 - Released to alt.sources From: rme@olympia.net.com (Richard Emberson) - Added notes to README concerning EzMenu changes From: jdm5548@diamond.tamu.edu (James Darrell McCauley) - Added notes to README concerning handling string-convert.c problems. - Fixed bogus ad hoc handling of am/pm, and added noonStr and midnightStr resources Version 1.14 - 14 Mar 1991 From: "G.D.Pratt" - Added a version of strncasecmp() to "strcasecmp.c" Version 1.15 - 14 Mar 1991 From: vanharen@ATHENA.MIT.EDU - Fixed strtotime() and removed strtol() calls Version 1.16 - 18 Mar 1991 From: vanharen@ATHENA.MIT.EDU - Changed string "constants" so that gcc doesn't need -fwritable-strings, although this is somewhat bogus. Version 1.17 - 16 May 1991 From: Fred Douglis - Fixed bug in edit.c that only recognized the first 7 months (due to stupid cut-and-paste). Version 1.18 - 25 Jul 1991 From: Jonathan I. Kamens - unsigned needed in alert.c (line 36) and month.c (line 176) - bad arg to XCreatePixmap in xkal.c (line 813) - persistent cut&paste-created bug in edit.c (line 391) - Imakefile changed to use STRING-CONVERT{C,O} and other improvements Version 1.19 - 26 Jul 1991 From: Jonathan I. Kamens - Further Imakefile fixes Version 1.20 - 18 Dec 1991 Fixed bug in lastDay() (util.c) that made for only 29 days in January. This is a stopgap release until I get 2.0 out.