Back to index

lightning-sunbird  0.9+nobinonly
Functions
copycluster.c File Reference
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <signal.h>
#include <unistd.h>
#include <stdlib.h>
#include "ical.h"
#include "icalss.h"

Go to the source code of this file.

Functions

static void sig_alrm (int i)
void usage (char *arg0)
int main (int c, char *argv[])

Function Documentation

int main ( int  c,
char *  argv[] 
)

Definition at line 49 of file copycluster.c.

                             {

    icalset *clusterin, *clusterout;
    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);*/

    signal(SIGALRM,sig_alrm);

    alarm(10);
    clusterin = icalfileset_new(argv[1]);
    alarm(0);

    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){
        alarm(10);
       clusterout = icalfileset_new(argv[2]);
       alarm(0);
       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;
}

Here is the call graph for this function:

static void sig_alrm ( int  i) [static]

Definition at line 38 of file copycluster.c.

                           {
    fprintf(stderr,"Could not get lock on file\n");
    exit(1);
}

Here is the call graph for this function:

Here is the caller graph for this function:

void usage ( char *  arg0)

Definition at line 45 of file copycluster.c.

                       {
    printf("usage: %s cluster-file1 cluster-file2\n",arg0);
}