glib r7418 - in trunk: . glib
- From: ebassi svn gnome org
- To: svn-commits-list gnome org
- Subject: glib r7418 - in trunk: . glib
- Date: Sun, 31 Aug 2008 19:53:21 +0000 (UTC)
Author: ebassi
Date: Sun Aug 31 19:53:21 2008
New Revision: 7418
URL: http://svn.gnome.org/viewvc/glib?rev=7418&view=rev
Log:
2008-08-31 Emmanuele Bassi <ebassi gnome org>
Bug 550096 â GBookmarkFile parser is not forward compatible
* glib/gbookmarkfile.c:
(parse_bookmark_element), (parse_application_element),
(parse_mime_type_element), (parse_icon_element): Relax the
attributes checking of the GBookmarkFile parser for the
attributes that the desktop bookmark file specification
defines and controls. This allows adding new attributes to
the existing elements in newer versions without breaking the
parser in older ones.
Modified:
trunk/ChangeLog
trunk/glib/gbookmarkfile.c
Modified: trunk/glib/gbookmarkfile.c
==============================================================================
--- trunk/glib/gbookmarkfile.c (original)
+++ trunk/glib/gbookmarkfile.c Sun Aug 31 19:53:21 2008
@@ -728,6 +728,10 @@
visited = attribute_values[i];
else
{
+ /* bookmark is defined by the XBEL spec, so we need
+ * to error out if the element has different or
+ * missing attributes
+ */
g_set_error (error, G_MARKUP_ERROR,
G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE,
_("Unexpected attribute '%s' for element '%s'"),
@@ -805,17 +809,9 @@
stamp = attribute_values[i];
else if (IS_ATTRIBUTE (attr, BOOKMARK_MODIFIED_ATTRIBUTE))
modified = attribute_values[i];
- else
- {
- g_set_error (error, G_MARKUP_ERROR,
- G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE,
- _("Unexpected attribute '%s' for element '%s'"),
- attr,
- BOOKMARK_APPLICATION_ELEMENT);
- return;
- }
}
+ /* the "name" and "exec" attributes are mandatory */
if (!name)
{
g_set_error (error, G_MARKUP_ERROR,
@@ -892,15 +888,6 @@
{
if (IS_ATTRIBUTE (attr, MIME_TYPE_ATTRIBUTE))
type = attribute_values[i];
- else
- {
- g_set_error (error, G_MARKUP_ERROR,
- G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE,
- _("Unexpected attribute '%s' for element '%s'"),
- attr,
- MIME_TYPE_ELEMENT);
- return;
- }
}
if (!type)
@@ -939,17 +926,9 @@
href = attribute_values[i];
else if (IS_ATTRIBUTE (attr, BOOKMARK_TYPE_ATTRIBUTE))
type = attribute_values[i];
- else
- {
- g_set_error (error, G_MARKUP_ERROR,
- G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE,
- _("Unexpected attribute '%s' for element '%s'"),
- attr,
- BOOKMARK_ICON_ELEMENT);
- return;
- }
}
+ /* the "href" attribute is mandatory */
if (!href)
{
g_set_error (error, G_MARKUP_ERROR,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]