/* XXX add more to this */ void icalbdbset_free(icalset *set) { icalbdbset *bset = (icalbdbset *) set; int ret; icalerror_check_arg_rv((bset != 0), "bset"); if (bset->cluster != 0) { (void)icalbdbset_commit(set); icalcomponent_free(bset->cluster); bset->cluster = 0; } if (bset->gauge != 0) { icalgauge_free(bset->gauge); } if (bset->path != 0) { free((char *)bset->path); bset->path = 0; } if (bset->sindex != 0) { free((char *)bset->sindex); bset->sindex = 0; } if (bset->dbp && ((ret = bset->dbp->close(bset->dbp, 0)) != 0)) { } bset->dbp = NULL; }
icalgauge* icalgauge_new_from_sql(char* sql, int expand) { struct icalgauge_impl *impl; yyscan_t yy_globals = NULL; int r; if ( ( impl = (struct icalgauge_impl*) malloc(sizeof(struct icalgauge_impl))) == 0) { icalerror_set_errno(ICAL_NEWFAILED_ERROR); return 0; } impl->select = pvl_newlist(); impl->from = pvl_newlist(); impl->where = pvl_newlist(); impl->expand = expand; sslex_init(&yy_globals); ssset_extra(impl, yy_globals); ss_scan_string(sql, yy_globals); r = ssparse(yy_globals); sslex_destroy(yy_globals); if (r == 0) { return impl; } else { icalgauge_free(impl); return NULL; } }
void icaldirset_free(icalset* s) { icaldirset *dset = (icaldirset*)s; char* str; icaldirset_unlock(dset->dir); if(dset->dir !=0){ free(dset->dir); dset->dir = 0; } if(dset->gauge !=0){ icalgauge_free(dset->gauge); dset->gauge = 0; } if(dset->cluster !=0){ icalcluster_free(dset->cluster); } while(dset->directory !=0 && (str=pvl_pop(dset->directory)) != 0){ free(str); } if(dset->directory != 0){ pvl_free(dset->directory); dset->directory = 0; } dset->directory_iterator = 0; dset->first_component = 0; }
icalcomponent* icaldirset_fetch(icalset* set, const char* uid) { icaldirset *dset = (icaldirset*)set; icalgauge *gauge; icalgauge *old_gauge; icalcomponent *c; char sql[256]; icalerror_check_arg_rz( (set!=0), "set"); icalerror_check_arg_rz( (uid!=0), "uid"); snprintf(sql, 256, "SELECT * FROM VEVENT WHERE UID = \"%s\"", uid); gauge = icalgauge_new_from_sql(sql, 0); old_gauge = dset->gauge; dset->gauge = gauge; c= icaldirset_get_first_component(set); dset->gauge = old_gauge; icalgauge_free(gauge); return c; }
icalgauge *icalgauge_new_from_sql(char *sql, int expand) { struct icalgauge_impl *impl; int r; if ((impl = (struct icalgauge_impl *)malloc(sizeof(struct icalgauge_impl))) == 0) { icalerror_set_errno(ICAL_NEWFAILED_ERROR); return 0; } impl->select = pvl_newlist(); impl->from = pvl_newlist(); impl->where = pvl_newlist(); impl->expand = expand; icalss_yy_gauge = impl; input_buffer = input_buffer_p = sql; r = ssparse(); if (r == 0) { return impl; } else { icalgauge_free(impl); return NULL; } }