X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=atom%2Fentry.c;h=fd2921e6ed4a37de8d0b9ac4c090a2aab96080d3;hb=f099b7823ba2274326476a095959bfa58f379599;hp=61894476055898c9cab55b5ec390131e7a2fe166;hpb=80d746f15ae9e223b02a7240c46612d9e371716f;p=cascardo%2Fatompub.git diff --git a/atom/entry.c b/atom/entry.c index 6189447..fd2921e 100644 --- a/atom/entry.c +++ b/atom/entry.c @@ -33,6 +33,7 @@ struct _atom_entry GPtrArray *authors; GPtrArray *categories; char *summary; + AtomContent *content; }; static void atom_entry_updated_set_from_iso8601 (AtomEntry *, char *); @@ -56,6 +57,7 @@ atom_entry_new (char *id, char *title, AtomPerson *author) entry->categories = NULL; atom_entry_author_add (entry, author); entry->summary = NULL; + entry->content = NULL; return entry; } @@ -96,6 +98,8 @@ atom_entry_new_data_len (char *data, size_t len) atom_entry_author_add (entry, atom_person_new_from_xmlnode (child)); else if (!xmlStrcmp (child->name, "category")) atom_entry_category_add (entry, atom_category_new_from_xmlnode (child)); + else if (!xmlStrcmp (child->name, "content")) + entry->content = atom_content_new_from_xmlnode (child); else xmlFree (content); } @@ -261,6 +265,20 @@ atom_entry_summary_set (AtomEntry *entry, char *summary) entry->summary = g_strdup (summary); } +AtomContent * +atom_entry_content (AtomEntry *entry) +{ + return entry->content; +} + +void +atom_entry_content_set (AtomEntry *entry, AtomContent *content) +{ + if (entry->content) + atom_content_delete (entry->content); + entry->content = content; +} + static void atom_entry_update_xmlnode (AtomEntry *entry) { @@ -294,7 +312,8 @@ atom_entry_update_xmlnode (AtomEntry *entry) !xmlStrcmp (child->name, "updated") || !xmlStrcmp (child->name, "summary") || !xmlStrcmp (child->name, "author") || - !xmlStrcmp (child->name, "category")) + !xmlStrcmp (child->name, "category") || + !xmlStrcmp (child->name, "content")) { xmlUnlinkNode (child); xmlFreeNode (child); @@ -321,8 +340,10 @@ atom_entry_update_xmlnode (AtomEntry *entry) AtomCategory *category; category = g_ptr_array_index (entry->categories, i); cat = atom_category_to_xmlnode (category, "category"); - xmlAddChild (root, category); + xmlAddChild (root, cat); } + if (entry->content) + xmlAddChild (root, atom_content_to_xmlnode (entry->content)); } void