Files
evolution/libical
Damon Chaplin d54f22de6e merged in some new stuff from libical CVS. (icalrecur_add_byrules): If no
2001-06-13  Damon Chaplin  <damon@ximian.com>

	* src/libical/icalrecur.c: merged in some new stuff from libical CVS.
	(icalrecur_add_byrules): If no sign is given set sign to 1 (i.e.
	default to positive).
	(icalrecur_iterator_new): when setting up the year days array, handle
	the case where a year has no occurrences and we have to skip it.
	Also initialize the last.day and last.month fields.
	(expand_by_day): set the last day of the year explicitly rather than
	adding 1 to year and subtracting 1 from day. It is more efficient,
	and less prone to bugs. Also rewrote a bit.
	(expand_year_days): added code to handle BY_MONTH_DAY and BY_DAY +
	BY_MONTH_DAY, and rewrote code to handle BY_DAY + BY_MONTH.
	(next_year): handled the case where there are no occurrences in the
	year.

	* src/libical/icaltime.c (icaltime_adjust): new function to adjust a
	time by a number of days/hours/minutes/seconds.
	(icaltime_day_of_week): rewrote using a single call to mktime().
	(icaltime_day_of_year): rewrote using a single call to mktime().
	(icaltime_from_day_of_year): rewrote in a simpler way. The old version
	had a bug in it.

	* src/libical/icaltime.h (struct icaltimetype): added is_daylight
	flag, so we can try to distinguish between standard and daylight time
	when the clocks go back. Though this doesn't always resolve the
	ambiguity.

	* src/libical/icalcomponent.c: added some stuff to handle timezone
	data connected to the calendar component. Unfinished.

	* src/libical/icalyacc.y: merged in a fix from sourceforge CVS version
	of libical, so we can handle -ve UTC offsets.

	* src/libical/Makefile.am (CPPFLAGS): added PACKAGE_DATA_DIR define
	for finding the VTIMEZONE files.
	(libical_la_SOURCES): added icalarray.[hc] and icaltimezone.[hc].
	(COMBINEDHEADERS): added icalarray.h and icaltimezone.h to the headers
	to be combined into ical.h.

svn path=/trunk/; revision=10220
2001-06-14 02:50:46 +00:00
..
2001-06-13 23:09:50 +00:00
2001-06-13 23:09:50 +00:00
2001-06-13 23:09:50 +00:00

LIBICAL -- An implementation of basic iCAL protocols

The code and datafiles in this distribution are licensed under the
Mozilla Public License. See http://www.mozilla.org/NPL/MPL-1.0.html
for a copy of the license. Alternately, you may use libical under the
terms of the GNU Library General Public License. See
http://www.fsf.org/copyleft/lesser.html for a copy of the LGPL.

This dual license ensures that the library can be incorporated into
both proprietary code and GPL'd programs, and will benefit from
improvements made by programmers in both realms. I will only accept
changes into my version of the library if they are similarly
dual-licensed.

The code in this distribution implements the iCal protocols as
described in RFC2445 and RFC2446. The code is in very early stages of
development.

Portions of this distribution are (C) Copyright 1996 Apple Computer,
Inc., AT&T Corp., International Business Machines Corporation and
Siemens Rolm Communications Inc. See src/libicalvcal/README.TXT for
details.

This code is under active development. If you would like to contribute
to the project, you can contact me, Eric Busboom, at
eric@softwarestudio.org. The project has a webpage at

	http://softwarestudio.org/libical/index.html 

and a mailing list that you can join by sending the following mail:

	------------
	To: minimalist@softwarestudio.org
	Subject: subscribe libical
	------------


Building the library
--------------------

This distribution is developed on Red Hat Linux 6.0 and usually
compiles on SunOS 5.6 and FreeBSD 2.27. I have reports of success of
previous version on MacOS ( with CodeWarrior ) and on UnixWare, but I
don't know about any other systems.

The library is configured with automake. From the root directory, run 

	./configure

To build all of the Makefiles for your system. If you will be installing the library, you may want to use the --prefix flag to set the directory where the library and header files will be installed. 

	./configure --prefix=/proj/local/

If configure runs fine, run "make" to build the library and 
"make install" to install it.

Although the distribution uses libtool to generate libraries, it has
shared libraries turned off by default. To create and install shared
libraries use:

	./configure --enable-shared

The current version of libical focuses on creating and
manipulating iCal objects. With it, you can parse text representations
of iCal components, add and remove sub-components, properties,
parameters and values, and print the components back out as strings. 


Notes for Libical Developers
-------------------

If you don't want to use gcc as the compiler, and you got the sources
from CVS, you should set the CC variable to the path to the compiler
and run "automake --include-deps" to keep automake from using
gcc-specific automatic dependancy tracking.

        > CC=/pkg/SUNWspro/bin/cc; export CC
        > automake --include-deps
        > ./configure --prefix=/proj/local/
        > make

You will not need to re-run automake unless you got the sources from CVS. 

Using the Library
-----------------

There is rudimentary, unfinished documentation in the /doc directory,
and annotated examples in /examples.


Perl Library
------------

There is a perl language binding of this library, LIBICAL. 
It is  available from http://www.softwarestudio.org/libical


Eric Busboom
eric@softwarestudio.org