struct oval_behavior *oval_behavior_clone(struct oval_definition_model *new_model, struct oval_behavior *old_behavior) { struct oval_behavior *new_behavior = oval_behavior_new(new_model); oval_behavior_set_keyval (new_behavior, oval_behavior_get_key(old_behavior), oval_behavior_get_value(old_behavior)); return new_behavior; }
static SEXP_t *oval_behaviors_to_sexp(struct oval_behavior_iterator *bit) { char *attr_name, *attr_val; SEXP_t *elm_name; SEXP_t *r0; struct oval_behavior *behavior; elm_name = SEXP_list_new(r0 = SEXP_string_newf("behaviors"), NULL); SEXP_free(r0); while (oval_behavior_iterator_has_more(bit)) { behavior = oval_behavior_iterator_next(bit); attr_name = oval_behavior_get_key(behavior); attr_val = oval_behavior_get_value(behavior); SEXP_list_add(elm_name, r0 = SEXP_string_newf(":%s", attr_name)); SEXP_free(r0); if (attr_val != NULL) { SEXP_list_add(elm_name, r0 = SEXP_string_new(attr_val, strlen(attr_val))); SEXP_free(r0); } } r0 = SEXP_list_new(elm_name, NULL); SEXP_free(elm_name); return (r0); }