/** * gnm_ft_clone: * @ft: GnmFT * * Make a copy of @ft. * * Returns: transfer full): a copy of @ft **/ GnmFT * gnm_ft_clone (GnmFT const *ft) { GnmFT *clone; g_return_val_if_fail (ft != NULL, NULL); clone = gnm_ft_new (); gnm_ft_set_author (clone, ft->author); gnm_ft_set_name (clone, ft->name); gnm_ft_set_description (clone, ft->description); g_free (clone->filename); clone->filename = g_strdup (ft->filename); clone->category = ft->category; clone->members = go_slist_map (ft->members, (GOMapFunc)gnm_ft_member_clone); clone->number = ft->number; clone->border = ft->border; clone->font = ft->font; clone->patterns = ft->patterns; clone->alignment = ft->alignment; clone->edges = ft->edges; clone->dimension = ft->dimension; clone->invalidate_hash = TRUE; return clone; }
/** * gnm_scenario_dup: * @sc: #GnmScenario * @new_sheet: #Sheet * * Returns: (transfer full): the duplicated scenario. **/ GnmScenario * gnm_scenario_dup (GnmScenario *src, Sheet *new_sheet) { GnmScenario *dst; dst = gnm_scenario_new (src->name, new_sheet); gnm_scenario_set_comment (dst, src->comment); dst->items = go_slist_map (src->items, (GOMapFunc)gnm_scenario_item_dup); return dst; }
/** * stf_parse_options_csv_set_separators: * * A copy is made of the parameters. **/ void stf_parse_options_csv_set_separators (StfParseOptions_t *parseoptions, char const *character, GSList const *string) { g_return_if_fail (parseoptions != NULL); g_free (parseoptions->sep.chr); parseoptions->sep.chr = g_strdup (character); go_slist_free_custom (parseoptions->sep.str, g_free); parseoptions->sep.str = go_slist_map (string, (GOMapFunc)g_strdup); }