aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table/e-table-specification.c
diff options
context:
space:
mode:
Diffstat (limited to 'widgets/table/e-table-specification.c')
-rw-r--r--widgets/table/e-table-specification.c26
1 files changed, 22 insertions, 4 deletions
diff --git a/widgets/table/e-table-specification.c b/widgets/table/e-table-specification.c
index fa80d6a40c..b9a3c4ee98 100644
--- a/widgets/table/e-table-specification.c
+++ b/widgets/table/e-table-specification.c
@@ -228,6 +228,10 @@ e_table_specification_save_to_file (ETableSpecification *specification,
{
xmlDoc *doc;
+ g_return_val_if_fail (specification != NULL, -1);
+ g_return_val_if_fail (filename != NULL, -1);
+ g_return_val_if_fail (E_IS_TABLE_SPECIFICATION (specification), -1);
+
doc = xmlNewDoc ("1.0");
xmlDocSetRootElement (doc, e_table_specification_save_to_node (specification, doc));
return xmlSaveFile (filename, doc);
@@ -251,6 +255,9 @@ e_table_specification_save_to_string (ETableSpecification *specification)
int length;
xmlDoc *doc;
+ g_return_val_if_fail (specification != NULL, NULL);
+ g_return_val_if_fail (E_IS_TABLE_SPECIFICATION (specification), NULL);
+
doc = xmlNewDoc ("1.0");
xmlDocSetRootElement (doc, e_table_specification_save_to_node (specification, doc));
xmlDocDumpMemory (doc, &string, &length);
@@ -275,9 +282,14 @@ xmlNode *
e_table_specification_save_to_node (ETableSpecification *specification,
xmlDoc *doc)
{
- xmlNode *node = xmlDocGetRootElement (doc);
+ xmlNode *node;
char *s;
-
+
+ g_return_val_if_fail (doc != NULL, NULL);
+ g_return_val_if_fail (specification != NULL, NULL);
+ g_return_val_if_fail (E_IS_TABLE_SPECIFICATION (specification), NULL);
+
+ node = xmlNewNode (NULL, "ETableSpecification");
e_xml_set_bool_prop_by_name (node, "no-headers", specification->no_headers);
e_xml_set_bool_prop_by_name (node, "click-to-add", specification->click_to_add);
e_xml_set_bool_prop_by_name (node, "draw-grid", specification->draw_grid);
@@ -328,11 +340,17 @@ e_table_specification_save_to_node (ETableSpecification *specification,
ETableSpecification *
e_table_specification_duplicate (ETableSpecification *spec)
{
- ETableSpecification *new_spec = e_table_specification_new ();
- char *spec_str = e_table_specification_save_to_string (spec);
+ ETableSpecification *new_spec;
+ char *spec_str;
+ g_return_val_if_fail (spec != NULL, NULL);
+ g_return_val_if_fail (E_IS_TABLE_SPECIFICATION (spec), NULL);
+
+ new_spec = e_table_specification_new ();
+ spec_str = e_table_specification_save_to_string (spec);
printf ("This is the spec: \n%s\n", spec_str);
e_table_specification_load_from_string (new_spec, spec_str);
+ g_free (spec_str);
return new_spec;
}