packages icon

****************************

NB:
      This quick doc was written for DATES v0.3 and must be read keeping in
    mind that. The program options grew in number without changing of names
    since then and the file formats described here are still valid.

      Issuing "dates -h" you'll have a list of the currently supported
    options. I hope it is enough self explainatory after you have read the
    QUICK PROGRAM USAGE OVERVIEW part of this file.

      The INSTALLATION part is good too.

****************************




COMPATIBILITY:
--------------

This program was developed using:

	Linux 1.2.13 (Slackware release)
	gcc 2.7.0
	NCurses 1.9.7a (with forms compiled in) (optional)

and was tested also with DOS & Turbo C++ 3.0 (without NCurses). 
It works also with

	Linux 2.0.6 (Debian 1.1 release)
	NCurses 1.9.9 (with forms compiled in) (optional)

without problems.
I can't say anything about other systems/compilers or older releases 
of the above; anyway there shouldn't be much trouble since 
excluding the NCurses edit interface the program uses for the 95% only ANSI C
library functions. The other 5% are only libc/unix functions.

I strongly advise you to use the NCurses edit interface since it's very
comfortable and you don't have to remember the Dates' file format.

If you find troubles compiling for your
configuration and want to make a (quick?) port/fix please mail us before
starting (our addresses are somewhere in this file ... fidonet only, sorry) 
so you'll be sure to work on the latest release and to stop us from working 
on it until you're not finished (kind of human rcs :-)).




COPYRIGHT:
----------

    Copyright (C) 1997  Marco Rivellino & Fabio Menegoni

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.




INSTALLATION:
-------------

*** Linux ***
    If you have NCurses installed just issue the command:

	make

    then you'll have the 'dates' binary which includes the edit interface. 

NB: in order to use the NCurses edit interface you have to install NCurses
    with the "forms" facility compiled in! (see the NCurses docs for
    details) otherwise you'll get gcc complaining you miss the "forms.h"
    header file (and related code) and then aborting compilation.

    If you don't have NCurses or for some reason don't want the edit
    interface just issue:

	make noedit

    then you'll have the 'dates' binary without the edit interface.

    If you want to install it to /usr/local/bin then issue (with root
    privilege usually...):

	make install

    To clean up the directory from object files and backups issue:

	make clean


*** DOS ***
    Just issue the command:

	make -fMAKEFILE.DOS

    then you'll have the DATES.EXE executable.





QUICK PROGRAM USAGE OVERVIEW:
-----------------------------

This program reminds you of recurrences/dates that are coming in the next 
days or that are past since a few days. If you issue the command

	dates -h

you will have a brief help text.

You can specify how many days to look forward and backward with the "-d" 
option. So

	dates -d15

will look for important dates (in the default data file) that are coming in 
the next 15 days or that are past since no more than 15 days. The default 
value is 7.

If you issue:

	dates -d90 mylist.dat

the program will look for dates to remind you in the file "mylist.dat". The
distance to look through is 90 days so you'll be reminded of dates that are
coming in the next 90 days or that are past since no more than 90 days.

Dates to be reminded of must be stored in a data file.

Linux default data file is "~/.dates.lst".

DOS default data file is "dates.lst" searched through all DOS path.

If you are running DATES under Linux (with ncurses library) issuing the
command

	dates -e

you can edit the (default) data file. Use the command

	dates -e /usr/pop/duck

to edit the "/usr/pop/duck" data file.

Instead if you're a brave wild 'vi guy' or just an unlucky DOS user
you'll have to use a text editor and stick to the following format
(the file is ASCII and line order is significant
...names included between square brackets denote an optional parameter):

	[comment]
	day[/month[/year]]
	date_type
	look_distance
	date_comment


where:
	comment = one or more lines of text beginning with one of the 
		characters:  # ; *
		or one or more empty lines. These are just comments to the
		file itself for the humans and will be ignored by the program.

	day = date's day number (1-31)
	month = date's month number (1-12) (optional)
	year = date's year number a.C. (1-32767) (optional)
		(NB: 1990 = 1990 a.C.   and   88 = 88 a.C. !)

	date_type = one of the strings: "DATE", "RECU"
		where DATE states that the date is a future one
		(e.g. appointments)
		and RECU states that the date is a past one
		(i.e. a recurrence: birthday, anniversary...).

	look_distance = the program will start reminding you of this date
		"look_distance" days before the date occurs and stop
		doing so "look_distance" days after the date has passed
		(just in case you don't run this program daily).

	date_comment = string that you want to be printed to
		remind you of that date.

The month and year numbers are optional.

If you have a date entry with just the day number as in:

	20
	DATE
	3
	remember to pay taxes

the program will start reminding you about the 20th of every month from 3
days before the 20th to 3 days after it (from the 17th to the 23rd included
of every month). E.g. if today is the 18th of July and you run

	dates

you will get the message:

	in 2 days time it is 20 Jul: remember to pay taxes

Instead if today is the 22nd of July you'll see:

	2 days ago it was 20 Jul: remember to pay taxes

If you have a date entry with just the day and month numbers
as in:

	14/2
	RECU
	7
	St Valentine's day, remember your valentine!

the program will remind you about every 14th of February (from the 7th to the
21st of February) with the message 
"St Valentine's day, remember your valentine!" together with the number of
days it misses to that date or since that date has passed.

If you have stated a full date (day+month+year numbers) as in:

	16/12/1770
	RECU
	12
	Schroeder reminds: "it's Beethoven's birthday" :-)

the program will remind you about every 16th of December (starting on the
4th of December and ending on the 28th) with the chosen message 
and will tell you how many years are gone since that date's year
(so if it's a birthday like the one in the example you'll know how many
years that person will be on that day). For example if today is the 15th of
December 1996, running dates you'll see the message:

	tomorrow it recurs 16 Dec 1770: Schroeder reminds: "it's Beethoven's birthday" :-) (226 years)

NB: Of course if the message is longer than your current terminal width it 
    will be split in more than one line (this file is written in an 80 cols
    term so that anyone can read it..).

You can have a look at the "dates.lst" file included to have a complete view
of all the (six) possibilities.
Issuing the command:

	dates dates.lst

here's what the program reports today (29th of July 1996):

	in 2 days time it is 31 Jul: monthly appointment
	in 2 days time it is 31 Jul: annual appointment
	in 2 days time it is 31 Jul 1996: fixed-date appointment
	in 2 days time it recurs 31 Jul: monthly recurrence
	in 2 days time it recurs 31 Jul: annual recurrence
	in 2 days time it recurs 31 Jul 1996: fixed-date recurrence (0 years)

For a good result on very busy/absent minded people (like me: Marco) I 
suggest a drastic measure (which happen to be my own measure :-| ): run dates 
in your shell init file (or AUTOEXEC.BAT if you're a DOSsian :-) ) so you 
won't forget anything important. The drawback is that you'll hate the
program after the first two days of use (please don't blame me, I told you
it was a drastic one :-)). If instead you're not so busy/absent minded you
can run dates from a system startup file (like /etc/rc.local if you're using
Linux). I wouldn't advise to run dates manually, since I know (from my own
experience) you'll forget it sooner or later... :-)




NOTE:	the date format is  day/month/year. So 1/4/1990 means the 1st of April
	1990 a.C. I'm sorry with people using a different date standard. If
	there will be lots of feedback about this I'll consider
	implementing the more requested date formats.

NOTE2:	here's an anectode about the Gregorian Calendar quoted from the cal 
	(Linux command) manpage for those of you interested:

     The Gregorian Reformation is assumed to have occurred in 1752 on the 3rd
     of September.  By this time, most countries had recognized the reforma-
     tion (although a few did not recognize it until the early 1900's.)  Ten
     days following that date were eliminated by the reformation, so the cal-
     endar for that month is a bit unusual.




CREDITS:
--------

This silly program was made by Marco Rivellino (2:335/317.15@fidonet.org) and 
Fabio Menegoni (2:335/317.4@fidonet.org). If you want to e-mail us please
consider the idea that probably you won't get a light speed answer :-)
(this is dued also to the Fidonet Speed which is known to be approximately 
1-E30 times that of light ;-) ). Anyway every message will get an answer in
a finite amount of time :-).

Thanks to the authors of the BSD 'cal' command that I (Marco) used as a source
of informations (but not of code since it's copyrighted) about the 
Reformation.




KNOWN BUGS:
-----------

The program handles correctly only dates >= 14 Sept 1752 (after the Gregorian
Reformation). This is due to the "hole" of 11 days from the 3rd of September
to the 13th of September 1752 (included). I apologise if you have 
recurrencies of dates before that period but I discovered this only when the
program was finished and I accidentally found the 'cal' utility.
If someone will (gently :-) ) ask i'll try to find some time to fix that.

Another bug is caused by the NCurses' forms input routine. In some cases it
shows a weird character instead of what it should print. For example try
entering the editor and keep pressed the right cursor key ... This doesn't
show up if you enter some valid input first and then try to give it an
invalid one...
NB: this bug is fixed in NCurses 1.9.9 so you'd better upgrade if you have
an old version.