if (sheet->column_geometry) g_object_unref (sheet->column_geometry);
g_object_unref (sheet->entry_container);
+ sheet->entry_container = NULL;
+
g_object_unref (sheet->button);
+ sheet->button = NULL;
/* unref adjustments */
if (sheet->hadjustment)
sheet->bg_gc = NULL;
gtk_widget_unparent (sheet->entry_widget);
- gtk_widget_unparent (sheet->button);
+ if (sheet->button != NULL)
+ gtk_widget_unparent (sheet->button);
if (GTK_WIDGET_CLASS (parent_class)->unrealize)
(* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
}
+static void
+append_cell_text (GString *string, const GtkSheet *sheet, gint r, gint c)
+{
+ gchar *celltext = gtk_sheet_cell_get_text (sheet, r, c);
+
+ if ( NULL == celltext)
+ return;
+
+ g_string_append (string, celltext);
+ g_free (celltext);
+}
+
static GString *
range_to_text (const GtkSheet *sheet)
{
- gchar *celltext = NULL;
gint r, c;
GString *string;
{
for (c = sheet->range.col0; c < sheet->range.coli; ++c)
{
- celltext = gtk_sheet_cell_get_text (sheet, r, c);
- g_string_append (string, celltext);
+ append_cell_text (string, sheet, r, c);
g_string_append (string, "\t");
- g_free (celltext);
}
- celltext = gtk_sheet_cell_get_text (sheet, r, c);
- g_string_append (string, celltext);
+ append_cell_text (string, sheet, r, c);
if ( r < sheet->range.rowi)
g_string_append (string, "\n");
- g_free (celltext);
}
return string;
static GString *
range_to_html (const GtkSheet *sheet)
{
- gchar *celltext = NULL;
gint r, c;
GString *string;
for (c = sheet->range.col0; c <= sheet->range.coli; ++c)
{
g_string_append (string, "<td>");
- celltext = gtk_sheet_cell_get_text (sheet, r, c);
- g_string_append (string, celltext);
+ append_cell_text (string, sheet, r, c);
g_string_append (string, "</td>\n");
- g_free (celltext);
}
g_string_append (string, "</tr>\n");
}