void rc_sect_delkey(struct rcsection *rsp, struct rckey *p) { SLIST_REMOVE(&rsp->rs_keys,p,rckey,rk_next); rc_key_free(p); return; }
static int rc_sect_free(struct rcsection *rsp) { struct rckey *p,*n; for(p = SLIST_FIRST(&rsp->rs_keys);p;) { n = p; p = SLIST_NEXT(p,rk_next); rc_key_free(n); } free(rsp->rs_name); free(rsp); return 0; }
static int rc_freesect(struct rcfile *rcp, struct rcsection *rsp) { struct rckey *p,*n; SLIST_REMOVE(&rcp->rf_sect, rsp, rcsection, rs_next); for(p = SLIST_FIRST(&rsp->rs_keys);p;) { n = p; p = SLIST_NEXT(p,rk_next); rc_key_free(n); } free(rsp->rs_name); free(rsp); return 0; }