summaryrefslogtreecommitdiff
path: root/src/test/copycluster.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/copycluster.c')
-rw-r--r--src/test/copycluster.c150
1 files changed, 150 insertions, 0 deletions
diff --git a/src/test/copycluster.c b/src/test/copycluster.c
new file mode 100644
index 00000000..b7ef03ea
--- /dev/null
+++ b/src/test/copycluster.c
@@ -0,0 +1,150 @@
+/* -*- Mode: C -*-
+ ======================================================================
+ FILE: copycluster.c
+ CREATOR: eric 15 January 2000
+
+ $Id: copycluster.c,v 1.18 2008-02-03 16:10:46 dothebart Exp $
+ $Locker: $
+
+ (C) COPYRIGHT 2000 Eric Busboom
+ http://www.softwarestudio.org
+
+ The contents of this file are subject to the Mozilla Public License
+ Version 1.0 (the "License"); you may not use this file except in
+ compliance with the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+
+ Software distributed under the License is distributed on an "AS IS"
+ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+ the License for the specific language governing rights and
+ limitations under the License.
+
+ The Original Code is eric. The Initial Developer of the Original
+ Code is Eric Busboom
+
+
+ ======================================================================*/
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <stdio.h> /* for printf */
+#include <errno.h>
+#include <string.h> /* For strerror */
+#include <signal.h> /* for signal */
+#if defined(HAVE_UNISTD_H)
+#include <unistd.h> /* for alarm */
+#endif
+#include <stdlib.h> /* for exit */
+
+#include <libical/ical.h>
+#include <libicalss/icalss.h>
+
+#ifdef SIGALRM
+
+static void sig_alrm(int i){
+ fprintf(stderr,"Could not get lock on file\n");
+ exit(1);
+}
+
+#endif
+
+/* This program copies a file that holds iCal components to an other file. */
+
+
+void usage(char* arg0) {
+ printf("usage: %s cluster-file1 cluster-file2\n",arg0);
+}
+
+int main(int c, char *argv[]){
+
+ icalset *clusterin, *clusterout = NULL;
+ icalcomponent *itr;
+ int count=0;
+ int tostdout = 0;
+
+ if(c < 2 || c > 3){
+ usage(argv[0]);
+ exit(1);
+ }
+
+ if (c == 2){
+ tostdout = 1;
+ }
+
+
+ /*icalerror_set_error_state(ICAL_PARSE_ERROR, ICAL_ERROR_NONFATAL);*/
+
+#ifdef SIGALRM
+ signal(SIGALRM,sig_alrm);
+ alarm(10);
+#endif
+ clusterin = icalfileset_new(argv[1]);
+#ifdef SIGALRM
+ alarm(0);
+#endif
+ if (clusterin == 0){
+ printf("Could not open input cluster \"%s\"\n",argv[1]);
+ if(icalerrno!= ICAL_NO_ERROR){
+ printf("Error: %s\n",icalerror_strerror(icalerrno));
+ }
+ exit(1);
+ }
+
+ if (!tostdout){
+#ifdef SIGALRM
+ alarm(10);
+#endif
+ clusterout = icalfileset_new(argv[2]);
+#ifdef SIGALRM
+ alarm(0);
+#endif
+ if (clusterout == 0){
+ printf("Could not open output cluster \"%s\"\n",argv[2]);
+ exit(1);
+ }
+ }
+
+
+ for (itr = icalset_get_first_component(clusterin);
+ itr != 0;
+ itr = icalset_get_next_component(clusterin)){
+
+ icalerror_set_error_state(ICAL_BADARG_ERROR, ICAL_ERROR_NONFATAL);
+ icalrestriction_check(itr);
+ icalerror_set_error_state(ICAL_BADARG_ERROR, ICAL_ERROR_DEFAULT);
+
+ if (itr != 0){
+
+ if(tostdout){
+
+ printf("--------------\n%s\n",icalcomponent_as_ical_string(itr));
+
+ } else {
+
+ icalfileset_add_component(clusterout,
+ icalcomponent_new_clone(itr));
+ }
+
+ count++;
+
+ } else {
+ printf("Got NULL component");
+ }
+ }
+
+
+ printf("Transfered %d components\n",count);
+
+ icalset_free(clusterin);
+
+ if (!tostdout){
+ icalfileset_mark(clusterout);
+ icalset_free(clusterout);
+ }
+
+ return 0;
+}
+
+