rem: if( (p1!=0)^(p1!=0) ){
add: if( (p1!=0)^(p2!=0) ){
context: int icalssutil_is_rescheduled(icalcomponent* a,icalcomponent* b){    icalproperty *p1,*p2;    icalcomponent *i1,*i2;    int i;    icalproperty_kind kind_array[] = {	ICAL_DTSTART_PROPERTY,	ICAL_DTEND_PROPERTY,	ICAL_DURATION_PROPERTY,	ICAL_DUE_PROPERTY,	ICAL_RRULE_PROPERTY,	ICAL_RDATE_PROPERTY,	ICAL_EXRULE_PROPERTY,	ICAL_EXDATE_PROPERTY,	ICAL_NO_PROPERTY    };    i1 = icalcomponent_get_first_real_component(a);    i2 = icalcomponent_get_first_real_component(b);    for(i =0; kind_array[i] != ICAL_NO_PROPERTY; i++){	p1 = icalcomponent_get_first_property(i1,kind_array[i]);	p2 = icalcomponent_get_first_property(i2,kind_array[i]);		if( (p1!=0)^(p1!=0) ){	    /* Return true if the property exists in one component and not	       the other */	    return 1;	}		if(p1 && strcmp(icalproperty_as_ical_string(p1),			icalproperty_as_ical_string(p2)) != 0){	    return 1;	}    }    return 0;    }