static gboolean
append_tag_value_pair (NemoImagePropertiesPage *page,
		       ExifData *data,
		       ExifTag   tag,
		       char     *description) 
{
        char *utf_attribute;
        char *utf_value;

	utf_attribute = exifdata_get_tag_name_utf8 (tag);
	utf_value = exifdata_get_tag_value_utf8 (data, tag);

	if ((utf_attribute == NULL) || (utf_value == NULL)) {
		g_free (utf_attribute);
		g_free (utf_value);
   		return FALSE;
	}

	append_item (page,
		     description ? description : utf_attribute,
		     utf_value);

        g_free (utf_attribute);
        g_free (utf_value);

	return TRUE;
}
static gboolean
append_tag_value_pair (CajaImagePropertiesPage *page,
                       ExifData *data,
                       ExifTag   tag,
                       char     *description)
{
    char *utf_attribute;
    char *utf_value;

    utf_attribute = exifdata_get_tag_name_utf8 (tag);
    utf_value = exifdata_get_tag_value_utf8 (data, tag);

    if ((utf_attribute == NULL) || (utf_value == NULL))
    {
        g_free (utf_attribute);
        g_free (utf_value);
        return FALSE;
    }

    append_label_take_str
    (page->details->vbox,
     g_strdup_printf ("<b>%s:</b> %s",
                      description ? description : utf_attribute,
                      utf_value));

    g_free (utf_attribute);
    g_free (utf_value);
    return TRUE;
}
static gboolean
append_tag_value_pair (GString  *string,
		       ExifData *data,
		       ExifTag   tag,
		       char     *description) 
{
        char *utf_attribute;
        char *utf_value;

	utf_attribute = exifdata_get_tag_name_utf8 (tag);
	utf_value = exifdata_get_tag_value_utf8 (data, tag);

	if ((utf_attribute == NULL) || (utf_value == NULL)) {
		g_free (utf_attribute);
		g_free (utf_value);
   		return FALSE;
	}

	g_string_append_printf (string, "<b>%s:</b> %s\n",
				description ? description : utf_attribute,
				utf_value);

        g_free (utf_attribute);
        g_free (utf_value);
	return TRUE;
}