This patch does two things: - an entry's time is taken from the 'published' element if it exists, and only from the 'updated' entry if there is no 'published'. - the pubDate text is set to 'content published on' instead of 'feed published on'. The two are just as correct when displayed on a feed, and the former is much better when displayed on an entry, as they are for Atom feeds. (It is quite possible that 'pubDate' should not be what Atom 'published' attributes are mapped to.) - cks Index: liferea-1.0.9/src/atom10.c =================================================================== --- liferea-1.0.9.orig/src/atom10.c +++ liferea-1.0.9/src/atom10.c @@ -412,7 +412,15 @@ static void atom10_parse_entry_title(xml static void atom10_parse_entry_updated(xmlNodePtr cur, feedPtr fp, itemPtr ip, struct atom10ParserState *state) { gchar *datestr = utf8_fix(xmlNodeListGetString(cur->doc, cur->xmlChildrenNode, 1)); if(NULL != datestr) { - item_set_time(ip, parseISO8601Date(datestr)); + /* + * 'updated' only sets the time if it is not set already, + * so that 'published' takes precedence. This is the more + * correct thing in my opinion; I certainly expect new + * entries to be ordered by initial publication time, + * not last updated time. - cks + */ + if (item_get_time(ip) == 0) + item_set_time(ip, parseISO8601Date(datestr)); ip->metadata = metadata_list_append(ip->metadata, "contentUpdateDate", datestr); } g_free(datestr); Index: liferea-1.0.9/src/metadata.c =================================================================== --- liferea-1.0.9.orig/src/metadata.c +++ liferea-1.0.9/src/metadata.c @@ -351,7 +351,7 @@ static void attribs_init() { REGISTER_SIMPLE_ATTRIBUTE(POS_FOOTTABLE, "contributor", _("contributors")); REGISTER_SIMPLE_ATTRIBUTE(POS_FOOTTABLE, "copyright", _("copyright")); REGISTER_SIMPLE_ATTRIBUTE(POS_FOOTTABLE, "language", _("language")); - REGISTER_SIMPLE_ATTRIBUTE(POS_FOOTTABLE, "pubDate", _("feed published on")); + REGISTER_SIMPLE_ATTRIBUTE(POS_FOOTTABLE, "pubDate", _("content published on")); REGISTER_SIMPLE_ATTRIBUTE(POS_FOOTTABLE, "contentUpdateDate", _("content last updated")); REGISTER_SIMPLE_ATTRIBUTE(POS_FOOTTABLE, "managingEditor", _("managing editor")); REGISTER_SIMPLE_ATTRIBUTE(POS_FOOTTABLE, "webmaster", _("webmaster"));