[Evolution-hackers] Evolution Multi Calendar patch !



Hello...

According to previous emails, We're on our way to make the evolution
compatible with multi calendar systems.
FIRST stable patch is ready now.

It'll take 2 more patches to achieve a multi calendar evolution.

Here, some notes about the patch(s) :

   * Since, the evolution doesn't use a single backend to get date/time
(GDATE, icaltimetype, tm, time_t, etc) we were forced to change all time
layers and modules, in order to make them work with multi calendar
systems.

   * We named the new function set, IMcal...IMprovedcal. New functions
are accessible from
'/evolution-data-server/calendar/libical/src/libical/'. Added routines
start with 'imcaltime*' prefix

   * All added routines have a similar prototype to the original libical
functions, except that we add them a additional argument, which is a
'imcaltimeobj'. This type is used to improve flexibility of the new time
routines and contains some function pointers to time/date calculating
routines, according to IN-USE calendar system (like Gregorian, Jalali,
Hijri etc) which is declared in the structure. for more info on
'imcaltimeobj' see 'imcaltime.h'.

   * Using 'imcaltimeobj' we're able to use calendar systems in two
order:
     1) As a module, which is loaded with some shared library loading
library like libdl (Requires some fixes on Makefile).
     2) As a Internal part of code. 
     
   * Currently there are two available calendars which is made as
module:
     0) Gregorian : Default.
     1) Jalali : Used in Iran.
     2) Hijri : Mostly used in Arabic countries.

   * We'll change the evolution with 3 different patches:
     1)Patch on "libical", which contains our major multi calendar
routines. (data-server)
     2)Next patch will be the "libecal". Uses independent, or libical
dependent routines. (data-server)
     3)Finally, 3rd path is for the evolution client. (client)

Note: since, we've added some new files to data-server, we have NOT use
'cvs diff' to make the patch. The attached patch is created with
ordinary 'diff'.

*** The patch has been sent to the evolution-patches mailing list. ***









[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]