struct _atom_entry
{
xmlDocPtr doc;
- char *id;
+ AtomID *id;
char *title;
GPtrArray *authors;
char *summary;
char * content;
content = xmlNodeGetContent (child->xmlChildrenNode);
if (!xmlStrcmp (child->name, "id"))
- entry->id = content;
+ entry->id = atom_id_new (content);
else if (!xmlStrcmp (child->name, "title"))
- entry->title = content;
+ entry->title = g_strdup (content);
else if (!xmlStrcmp (child->name, "summary"))
- entry->summary = content;
+ entry->summary = g_strdup (content);
else if (!xmlStrcmp (child->name, "author"))
- atom_entry_author_add (entry, atom_person_new_from_xmlnode (child));
+ atom_entry_author_add (entry, atom_person_new_from_xmlnode (child));
else
- xmlFree (content);
+ xmlFree (content);
}
return entry;
}
if (entry->doc)
xmlFreeDoc (entry->doc);
if (entry->id)
- g_free (entry->id);
+ atom_id_delete (entry->id);
if (entry->title)
g_free (entry->title);
if (entry->authors)
g_slice_free (AtomEntry, entry);
}
-char *
+AtomID *
atom_entry_id (AtomEntry *entry)
{
return entry->id;
}
void
-atom_entry_id_set (AtomEntry *entry, char *id)
+atom_entry_id_set (AtomEntry *entry, AtomID *id)
{
if (entry->id)
- g_free (entry->id);
- entry->id = g_strdup (id);
+ atom_id_delete (entry->id);
+ entry->id = id;
}
char *
child = next;
}
}
- id = xmlNewTextChild (root, NULL, "id", entry->id);
+ id = xmlNewTextChild (root, NULL, "id", atom_id_string (entry->id));
title = xmlNewTextChild (root, NULL, "title", entry->title);
if (entry->summary)
summary = xmlNewTextChild (root, NULL, "summary", entry->summary);