set_mime_type, set_is_private, add_group, set_groups, set_icon, etc
all added metadata before using it. If set_app_info was called before
any of those it would crash when trying to access the metadata.
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
2008-07-21 Emmanuele Bassi <ebassi@gnome.org>
* glib/gbookmarkfile.c:
(bookmark_app_info_new): Do not set the timestamp value
using time(), as it will be overwritten anyway. (#535223,
Michael Meeks)
(parse_application_element),
(bookmark_app_info_dump): Support the "modified" attribute,
which takes an ISO-formatted string instead of a Unix time
stamp, to keep the number of g_strdup_printf() calls to a
minimum.
* glib/gtimer.c:
(g_time_val_to_iso8601): Do not use strftime(): we know
the format and contents of the ISO 8601 date format we
use.
* tests/bookmarks/valid-03.xbel: Add a test file for the
modified attribute.
svn path=/trunk/; revision=7231
2008-04-09 Federico Mena Quintero <federico@novell.com>
* glib/gbookmarkfile.c (bookmark_metadata_free): Don't leak
the apps_by_name hash table if the applications list is empty.
Signed-off-by: Federico Mena Quintero <federico@gnu.org>
svn path=/trunk/; revision=6846
2008-03-22 Claudio Saavedra <csaavedra@gnome.org>
Bug 523877 – gbookmarkfile: avoid using g_string_append_printf() and
other optimizations
* glib/gbookmarkfile.c: (bookmark_metadata_dump),
(bookmark_item_dump), (g_bookmark_file_dump), (expand_exec_line):
Replace all calls to g_string_append_printf with g_strconcat () or
g_string_append () where appropriate, to reduce the file creation time.
Also, use g_string_sized_new () with an appropriate buffer size instead
of g_string_new (NULL), to reduce time spent in memory reallocation.
(#523877, Claudio Saavedra, Emmanuele Bassi)
svn path=/trunk/; revision=6752
2008-03-22 Emmanuele Bassi <ebassi@gnome.org>
Bug 518160 - replace two g_strdup_printf calls in GBookmarkFile
* glib/gbookmarkfile.c (is_element_full): Compare the fragments
instead of building two strings; this avoids two g_strdup_printf()
per namespaced element enountered. (#518160, Felix Riemann)
svn path=/trunk/; revision=6751
2007-12-10 15:08:59 Tim Janik <timj@imendio.com>
* let g_warn_if_fail replace g_assert as discussed here:
http://mail.gnome.org/archives/gtk-devel-list/2007-October/msg00089.html
* fix bug #502498: Test framework assertion failures should follow
gcc error format.
* gmessages.h, gmessages.c: deprecated g_assert_warning() which is
unused now. removed g_assert*() definitions whcih are provided by
gtestutils.h now. added g_warn_if_reached() and g_warn_if_fail()
which are recommended as g_assert/g_assert_not_reached replacements
for non-test programs.
added g_warn_message() to implement g_warn_*() macros.
use emacs-next-error friendly formatting for file:line: for warnings.
* gtestutils.h, gtestutils.c: use emacs-next-error friendly formatting.
implement g_assert_not_reached() with g_assertion_message() and
g_assert() in terms of g_assertion_message_expr() so we'll be able to
provide assertion messages in test logs.
* gkeyfile.c, gbookmarkfile.c: changed g_assert*() to g_warn_if_fail()
or g_return_if_fail() where suitable.
* gio/: changed g_assert to g_warn_if_fail.
svn path=/trunk/; revision=6086
2007-04-30 Chris Wilson <chris@chris-wilson.co.uk>
* glib/gbookmarkfile.c (g_bookmark_file_get_app_info):
Include the gshell.h header file (to define g_shell_[un]quote)
and correct the order of the arguments to g_propagate_error(), as
spotted by gcc.
svn path=/trunk/; revision=5467
2007-04-29 Emmanuele Bassi <ebassi@gnome.org>
* glib/gbookmarkfile.c:
(g_bookmark_file_set_app_info): Quote the passed command line...
(g_bookmark_file_get_app_info): ... and unquote it when giving it
back. (#432274)
svn path=/trunk/; revision=5466
2007-01-02 Emmanuele Bassi <ebassi@gnome.org>
* glib/gbookmarkfile.c (expand_exec_line): Add support for
expanding the desktop entry spec variables %U (list of URIs)
and %F (list of filenames), so that using the command line
from the Exec and TryExec key of a desktop entry file works
as intended.
svn path=/trunk/; revision=5196
2007-01-02 Matthias Clasen <mclasen@redhat.com>
* glib/gbookmarkfile.c (g_bookmark_file_get_app_info):
Return an error if the uri is bad. (#391370, Maciej Piechotka)
svn path=/trunk/; revision=5192
2006-08-08 Emmanuele Bassi <ebassi@gnome.org>
* glib/gbookmarkfile.c (g_bookmark_file_remove_group)
(g_bookmark_file_set_app_info): Plug a couple of leaks
when removing data from a bookmark.
2006-08-05 Matthias Clasen <mclasen@redhat.com>
* glib/gbookmarkfile.c (find_file_in_data_dirs): Correct the
grammar of an error message. (#349792, Jakub Friedl)
2006-06-12 Emmanuele Bassi <ebassi@cvs.gnome.org>
* glib/gbookmarkfile.h:
* glib/gbookmarkfile.c (g_bookmark_file_remove_item): Return
a boolean instead of void.
* tests/bookmarkfile-test.c (test_modify): Add a test case
for g_bookmark_file_remove_item().
2006-06-09 Emmanuele Bassi <ebassi@cvs.gnome.org>
* glib/gbookmarkfile.c (g_bookmark_file_remove_application): Use
an empty string to pass the test in set_app_info.
(g_bookmark_file_move_item): Remove the old item from the
look up table; return success in case of empty target.
2006-04-27 Matthias Clasen <mclasen@redhat.com>
* glib/gbookmarkfile.c (g_bookmark_file_set_description)
(g_bookmark_file_set_title, g_bookmark_file_set_icon):
Remove some special-casing of empty string which led to
dangling pointers. (#339337, Morten Welinder)
2006-04-25 Matthias Clasen <mclasen@redhat.com>
* glib/gbookmarkfile.c (is_element_full): Avoid a possible
NULL dereference (found by Coverity), also avoid some
pointless strdups.