mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-26 04:02:09 +01:00
Bug 550096 – GBookmarkFile parser is not forward compatible
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. svn path=/trunk/; revision=7418
This commit is contained in:
parent
5484cf6a2e
commit
e701ea96b6
13
ChangeLog
13
ChangeLog
@ -1,3 +1,16 @@
|
||||
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.
|
||||
|
||||
2008-08-28 Ryan Lortie <desrt@desrt.ca>
|
||||
|
||||
Fixup for test case in previous commit.
|
||||
|
@ -728,6 +728,10 @@ parse_bookmark_element (GMarkupParseContext *context,
|
||||
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 @@ parse_application_element (GMarkupParseContext *context,
|
||||
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 @@ parse_mime_type_element (GMarkupParseContext *context,
|
||||
{
|
||||
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 @@ parse_icon_element (GMarkupParseContext *context,
|
||||
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,
|
||||
|
Loading…
x
Reference in New Issue
Block a user