aboutsummaryrefslogtreecommitdiffstats
path: root/libical/src/test/recur.c
diff options
context:
space:
mode:
Diffstat (limited to 'libical/src/test/recur.c')
-rw-r--r--libical/src/test/recur.c151
1 files changed, 55 insertions, 96 deletions
diff --git a/libical/src/test/recur.c b/libical/src/test/recur.c
index bb23337adb..f4d9a38647 100644
--- a/libical/src/test/recur.c
+++ b/libical/src/test/recur.c
@@ -25,137 +25,96 @@
======================================================================*/
+#include "ical.h"
#include <assert.h>
#include <string.h> /* for strdup */
#include <stdlib.h> /* for malloc */
#include <stdio.h> /* for printf */
#include <time.h> /* for time() */
#include <signal.h> /* for signal */
-#ifndef WIN32
#include <unistd.h> /* for alarm */
-#endif
-
-#include "ical.h"
-#include "icalss.h"
-
-#ifdef WIN32
-#define snprintf _snprintf
-#define strcasecmp stricmp
-#endif
+#include "icalmemory.h"
+#include "icaldirset.h"
+#include "icalfileset.h"
static void sig_alrm(int i){
fprintf(stderr,"Could not get lock on file\n");
exit(1);
}
-static void recur_callback(icalcomponent *comp,
- struct icaltime_span *span,
- void *data)
-{
- printf("cb: %s", ctime(&span->start));
- printf(" %s\n", ctime(&span->end));
-
-}
-
int main(int argc, char *argv[])
{
- icalset *cin;
- struct icaltimetype next;
+ icalfileset *cin;
+ struct icaltimetype start, next;
icalcomponent *itr;
icalproperty *desc, *dtstart, *rrule;
struct icalrecurrencetype recur;
icalrecur_iterator* ritr;
time_t tt;
char* file;
-
+
icalerror_set_error_state(ICAL_PARSE_ERROR, ICAL_ERROR_NONFATAL);
-
-#ifndef WIN32
+
signal(SIGALRM,sig_alrm);
-#endif
-
+
+
if (argc <= 1){
- file = "../../test-data/recur.txt";
+ file = "../../test-data/recur.txt";
} else if (argc == 2){
- file = argv[1];
+ file = argv[1];
} else {
- fprintf(stderr,"usage: recur [input file]\n");
- exit(1);
+ fprintf(stderr,"usage: recur [input file]\n");
+ exit(1);
}
-
-#ifndef WIN32
+
alarm(300); /* to get file lock */
-#endif
cin = icalfileset_new(file);
-#ifndef WIN32
alarm(0);
-#endif
-
+
if(cin == 0){
- fprintf(stderr,"recur: can't open file %s\n",file);
- exit(1);
- }
-
-
- for (itr = icalfileset_get_first_component(cin);
- itr != 0;
- itr = icalfileset_get_next_component(cin)){
-
- struct icaltimetype start = icaltime_from_timet(1,0);
- struct icaltimetype end = icaltime_today();
-
-
-
- desc = icalcomponent_get_first_property(itr,ICAL_DESCRIPTION_PROPERTY);
- dtstart = icalcomponent_get_first_property(itr,ICAL_DTSTART_PROPERTY);
- rrule = icalcomponent_get_first_property(itr,ICAL_RRULE_PROPERTY);
-
- if (desc == 0 || dtstart == 0 || rrule == 0){
- printf("\n******** Error in input component ********\n");
- printf("The following component is malformed:\n %s\n",
- icalcomponent_as_ical_string(itr));
- continue;
- }
-
- printf("\n\n#### %s\n",icalproperty_get_description(desc));
- printf("#### %s\n",icalvalue_as_ical_string(icalproperty_get_value(rrule)));
- recur = icalproperty_get_rrule(rrule);
- start = icalproperty_get_dtstart(dtstart);
-
- ritr = icalrecur_iterator_new(recur,start);
-
- tt = icaltime_as_timet(start);
-
- printf("#### %s\n",ctime(&tt ));
-
- icalrecur_iterator_free(ritr);
-
- for(ritr = icalrecur_iterator_new(recur,start),
- next = icalrecur_iterator_next(ritr);
- !icaltime_is_null_time(next);
- next = icalrecur_iterator_next(ritr)){
-
- tt = icaltime_as_timet(next);
-
- printf(" %s",ctime(&tt ));
-
- }
- icalrecur_iterator_free(ritr);
-
- icalcomponent_foreach_recurrence(itr, start, end,
- recur_callback, NULL);
-
-
-
+ fprintf(stderr,"recur: can't open file %s\n",file);
+ exit(1);
}
- icalset_free(cin);
- icaltimezone_free_builtin_timezones();
-
- icalmemory_free_ring();
+ for (itr = icalfileset_get_first_component(cin);
+ itr != 0;
+ itr = icalfileset_get_next_component(cin)){
+
+ desc = icalcomponent_get_first_property(itr,ICAL_DESCRIPTION_PROPERTY);
+ dtstart = icalcomponent_get_first_property(itr,ICAL_DTSTART_PROPERTY);
+ rrule = icalcomponent_get_first_property(itr,ICAL_RRULE_PROPERTY);
+
+ if (desc == 0 || dtstart == 0 || rrule == 0){
+ printf("\n******** Error in input component ********\n");
+ printf("The following component is malformed:\n %s\n",
+ icalcomponent_as_ical_string(itr));
+ continue;
+ }
+
+ printf("\n\n#### %s\n",icalproperty_get_description(desc));
+ printf("#### %s\n",icalvalue_as_ical_string(icalproperty_get_value(rrule)));
+ recur = icalproperty_get_rrule(rrule);
+ start = icalproperty_get_dtstart(dtstart);
- free_zone_directory();
+ ritr = icalrecur_iterator_new(recur,start);
+ tt = icaltime_as_timet(start);
+
+ printf("#### %s\n",ctime(&tt ));
+
+ for(ritr = icalrecur_iterator_new(recur,start),
+ next = icalrecur_iterator_next(ritr);
+ !icaltime_is_null_time(next);
+ next = icalrecur_iterator_next(ritr)){
+
+ tt = icaltime_as_timet(next);
+
+ printf(" %s",ctime(&tt ));
+
+ }
+
+ }
+
return 0;
}