This commit is contained in:
committed by
Git OBS Bridge
parent
93ebbed293
commit
0c281f2dd5
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:562742a234c7b842d891ec8ed4c9bead093c33863cca01e31912f59f6c8e887d
|
||||
size 4540919
|
3
glib-2.17.2.tar.bz2
Normal file
3
glib-2.17.2.tar.bz2
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:484172b309268a0dcb4d2edf6e7b8521962bd927e1da00c457b4881d0d3ae694
|
||||
size 4633231
|
@@ -1,72 +0,0 @@
|
||||
Index: glib/gmacros.h
|
||||
===================================================================
|
||||
--- glib/gmacros.h.orig
|
||||
+++ glib/gmacros.h
|
||||
@@ -63,6 +63,14 @@
|
||||
#define G_GNUC_NULL_TERMINATED
|
||||
#endif
|
||||
|
||||
+#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
|
||||
+#define G_GNUC_ALLOC_SIZE(x) __attribute__((__alloc_size__(x)))
|
||||
+#define G_GNUC_ALLOC_SIZE2(x,y) __attribute__((__alloc_size__(x,y)))
|
||||
+#else
|
||||
+#define G_GNUC_ALLOC_SIZE(x)
|
||||
+#define G_GNUC_ALLOC_SIZE2(x)
|
||||
+#endif
|
||||
+
|
||||
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
|
||||
#define G_GNUC_PRINTF( format_idx, arg_idx ) \
|
||||
__attribute__((__format__ (__printf__, format_idx, arg_idx)))
|
||||
Index: glib/gmem.h
|
||||
===================================================================
|
||||
--- glib/gmem.h.orig
|
||||
+++ glib/gmem.h
|
||||
@@ -44,13 +44,13 @@ typedef struct _GMemVTable GMemVTable;
|
||||
|
||||
/* Memory allocation functions
|
||||
*/
|
||||
-gpointer g_malloc (gsize n_bytes) G_GNUC_MALLOC;
|
||||
-gpointer g_malloc0 (gsize n_bytes) G_GNUC_MALLOC;
|
||||
+gpointer g_malloc (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
|
||||
+gpointer g_malloc0 (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
|
||||
gpointer g_realloc (gpointer mem,
|
||||
gsize n_bytes) G_GNUC_WARN_UNUSED_RESULT;
|
||||
void g_free (gpointer mem);
|
||||
-gpointer g_try_malloc (gsize n_bytes) G_GNUC_MALLOC;
|
||||
-gpointer g_try_malloc0 (gsize n_bytes) G_GNUC_MALLOC;
|
||||
+gpointer g_try_malloc (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
|
||||
+gpointer g_try_malloc0 (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
|
||||
gpointer g_try_realloc (gpointer mem,
|
||||
gsize n_bytes) G_GNUC_WARN_UNUSED_RESULT;
|
||||
|
||||
Index: glib/gslice.h
|
||||
===================================================================
|
||||
--- glib/gslice.h.orig
|
||||
+++ glib/gslice.h
|
||||
@@ -29,10 +29,10 @@ G_BEGIN_DECLS
|
||||
|
||||
/* slices - fast allocation/release of small memory blocks
|
||||
*/
|
||||
-gpointer g_slice_alloc (gsize block_size) G_GNUC_MALLOC;
|
||||
-gpointer g_slice_alloc0 (gsize block_size) G_GNUC_MALLOC;
|
||||
+gpointer g_slice_alloc (gsize block_size) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
|
||||
+gpointer g_slice_alloc0 (gsize block_size) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
|
||||
gpointer g_slice_copy (gsize block_size,
|
||||
- gconstpointer mem_block) G_GNUC_MALLOC;
|
||||
+ gconstpointer mem_block) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
|
||||
void g_slice_free1 (gsize block_size,
|
||||
gpointer mem_block);
|
||||
void g_slice_free_chain_with_offset (gsize block_size,
|
||||
Index: glib/gstrfuncs.h
|
||||
===================================================================
|
||||
--- glib/gstrfuncs.h.orig
|
||||
+++ glib/gstrfuncs.h
|
||||
@@ -214,7 +214,7 @@ gchar* g_strescape (
|
||||
const gchar *exceptions) G_GNUC_MALLOC;
|
||||
|
||||
gpointer g_memdup (gconstpointer mem,
|
||||
- guint byte_size) G_GNUC_MALLOC;
|
||||
+ guint byte_size) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(2);
|
||||
|
||||
/* NULL terminated string arrays.
|
||||
* g_strsplit(), g_strsplit_set() split up string into max_tokens tokens
|
@@ -1,52 +0,0 @@
|
||||
https://bugzilla.novell.com/show_bug.cgi?id=373149 backport glib performance patches for GBookmark
|
||||
|
||||
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)
|
||||
|
||||
git-svn-id: svn+ssh://svn.gnome.org/svn/glib/trunk@6751 5bbd4a9e-d125-0410-bf1d-f987e7eefc80
|
||||
|
||||
diff --git a/glib/gbookmarkfile.c b/glib/gbookmarkfile.c
|
||||
index 048df0e..5cf320d 100644
|
||||
--- a/glib/gbookmarkfile.c
|
||||
+++ b/glib/gbookmarkfile.c
|
||||
@@ -998,7 +998,7 @@ is_element_full (ParseData *parse_data,
|
||||
const gchar *element,
|
||||
const gchar sep)
|
||||
{
|
||||
- gchar *ns_uri, *ns_name, *s, *resolved;
|
||||
+ gchar *ns_uri, *ns_name;
|
||||
const gchar *p, *element_name;
|
||||
gboolean retval;
|
||||
|
||||
@@ -1017,7 +1017,7 @@ is_element_full (ParseData *parse_data,
|
||||
* namespace has been set, just do a plain comparison between @full_element
|
||||
* and @element.
|
||||
*/
|
||||
- p = strchr (element_full, ':');
|
||||
+ p = g_utf8_strchr (element_full, -1, ':');
|
||||
if (p)
|
||||
{
|
||||
ns_name = g_strndup (element_full, p - element_full);
|
||||
@@ -1037,14 +1037,11 @@ is_element_full (ParseData *parse_data,
|
||||
|
||||
return (0 == strcmp (element_full, element));
|
||||
}
|
||||
-
|
||||
- resolved = g_strdup_printf ("%s%c%s", ns_uri, sep, element_name);
|
||||
- s = g_strdup_printf ("%s%c%s", namespace, sep, element);
|
||||
- retval = (0 == strcmp (resolved, s));
|
||||
+
|
||||
+ retval = (0 == strcmp (ns_uri, namespace) &&
|
||||
+ 0 == strcmp (element_name, element));
|
||||
|
||||
g_free (ns_name);
|
||||
- g_free (resolved);
|
||||
- g_free (s);
|
||||
|
||||
return retval;
|
||||
}
|
@@ -1,411 +0,0 @@
|
||||
https://bugzilla.novell.com/show_bug.cgi?id=373149 backport glib performance patches for GBookmark
|
||||
|
||||
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)
|
||||
|
||||
|
||||
|
||||
git-svn-id: svn+ssh://svn.gnome.org/svn/glib/trunk@6752 5bbd4a9e-d125-0410-bf1d-f987e7eefc80
|
||||
|
||||
diff --git a/glib/gbookmarkfile.c b/glib/gbookmarkfile.c
|
||||
index 5cf320d..70ce6ee 100644
|
||||
--- a/glib/gbookmarkfile.c
|
||||
+++ b/glib/gbookmarkfile.c
|
||||
@@ -339,56 +339,62 @@ static gchar *
|
||||
bookmark_metadata_dump (BookmarkMetadata *metadata)
|
||||
{
|
||||
GString *retval;
|
||||
+ gchar *buffer;
|
||||
|
||||
if (!metadata->applications)
|
||||
return NULL;
|
||||
|
||||
- retval = g_string_new (NULL);
|
||||
+ retval = g_string_sized_new (1024);
|
||||
|
||||
/* metadata container */
|
||||
- g_string_append_printf (retval,
|
||||
- " <%s %s=\"%s\">\n",
|
||||
- XBEL_METADATA_ELEMENT,
|
||||
- XBEL_OWNER_ATTRIBUTE, BOOKMARK_METADATA_OWNER);
|
||||
-
|
||||
+ g_string_append (retval,
|
||||
+ " "
|
||||
+ "<" XBEL_METADATA_ELEMENT
|
||||
+ " " XBEL_OWNER_ATTRIBUTE "=\"" BOOKMARK_METADATA_OWNER
|
||||
+ "\">\n");
|
||||
+
|
||||
/* mime type */
|
||||
- if (metadata->mime_type)
|
||||
- g_string_append_printf (retval,
|
||||
- " <%s:%s %s=\"%s\"/>\n",
|
||||
- MIME_NAMESPACE_NAME,
|
||||
- MIME_TYPE_ELEMENT,
|
||||
- MIME_TYPE_ATTRIBUTE, metadata->mime_type);
|
||||
-
|
||||
+ if (metadata->mime_type) {
|
||||
+ buffer = g_strconcat (" "
|
||||
+ "<" MIME_NAMESPACE_NAME ":" MIME_TYPE_ELEMENT " "
|
||||
+ MIME_TYPE_ATTRIBUTE "=\"", metadata->mime_type, "\"/>\n",
|
||||
+ NULL);
|
||||
+ g_string_append (retval, buffer);
|
||||
+ g_free (buffer);
|
||||
+ }
|
||||
+
|
||||
if (metadata->groups)
|
||||
{
|
||||
GList *l;
|
||||
|
||||
/* open groups container */
|
||||
- g_string_append_printf (retval,
|
||||
- " <%s:%s>\n",
|
||||
- BOOKMARK_NAMESPACE_NAME,
|
||||
- BOOKMARK_GROUPS_ELEMENT);
|
||||
+ g_string_append (retval,
|
||||
+ " "
|
||||
+ "<" BOOKMARK_NAMESPACE_NAME
|
||||
+ ":" BOOKMARK_GROUPS_ELEMENT ">\n");
|
||||
|
||||
for (l = g_list_last (metadata->groups); l != NULL; l = l->prev)
|
||||
{
|
||||
gchar *group_name;
|
||||
|
||||
group_name = g_markup_escape_text ((gchar *) l->data, -1);
|
||||
- g_string_append_printf (retval,
|
||||
- " <%s:%s>%s</%s:%s>\n",
|
||||
- BOOKMARK_NAMESPACE_NAME,
|
||||
- BOOKMARK_GROUP_ELEMENT,
|
||||
- group_name,
|
||||
- BOOKMARK_NAMESPACE_NAME,
|
||||
- BOOKMARK_GROUP_ELEMENT);
|
||||
+ buffer = g_strconcat (" "
|
||||
+ "<" BOOKMARK_NAMESPACE_NAME
|
||||
+ ":" BOOKMARK_GROUP_ELEMENT ">",
|
||||
+ group_name,
|
||||
+ "</" BOOKMARK_NAMESPACE_NAME
|
||||
+ ":" BOOKMARK_GROUP_ELEMENT ">\n", NULL);
|
||||
+ g_string_append (retval, buffer);
|
||||
+
|
||||
+ g_free (buffer);
|
||||
g_free (group_name);
|
||||
}
|
||||
|
||||
/* close groups container */
|
||||
- g_string_append_printf (retval,
|
||||
- " </%s:%s>\n",
|
||||
- BOOKMARK_NAMESPACE_NAME,
|
||||
- BOOKMARK_GROUPS_ELEMENT);
|
||||
+ g_string_append (retval,
|
||||
+ " "
|
||||
+ "</" BOOKMARK_NAMESPACE_NAME
|
||||
+ ":" BOOKMARK_GROUPS_ELEMENT ">\n");
|
||||
}
|
||||
|
||||
if (metadata->applications)
|
||||
@@ -396,10 +402,10 @@ bookmark_metadata_dump (BookmarkMetadata *metadata)
|
||||
GList *l;
|
||||
|
||||
/* open applications container */
|
||||
- g_string_append_printf (retval,
|
||||
- " <%s:%s>\n",
|
||||
- BOOKMARK_NAMESPACE_NAME,
|
||||
- BOOKMARK_APPLICATIONS_ELEMENT);
|
||||
+ g_string_append (retval,
|
||||
+ " "
|
||||
+ "<" BOOKMARK_NAMESPACE_NAME
|
||||
+ ":" BOOKMARK_APPLICATIONS_ELEMENT ">\n");
|
||||
|
||||
for (l = g_list_last (metadata->applications); l != NULL; l = l->prev)
|
||||
{
|
||||
@@ -419,10 +425,10 @@ bookmark_metadata_dump (BookmarkMetadata *metadata)
|
||||
}
|
||||
|
||||
/* close applications container */
|
||||
- g_string_append_printf (retval,
|
||||
- " </%s:%s>\n",
|
||||
- BOOKMARK_NAMESPACE_NAME,
|
||||
- BOOKMARK_APPLICATIONS_ELEMENT);
|
||||
+ g_string_append (retval,
|
||||
+ " "
|
||||
+ "</" BOOKMARK_NAMESPACE_NAME
|
||||
+ ":" BOOKMARK_APPLICATIONS_ELEMENT ">\n");
|
||||
}
|
||||
|
||||
/* icon */
|
||||
@@ -430,24 +436,28 @@ bookmark_metadata_dump (BookmarkMetadata *metadata)
|
||||
{
|
||||
if (!metadata->icon_mime)
|
||||
metadata->icon_mime = g_strdup ("application/octet-stream");
|
||||
-
|
||||
- g_string_append_printf (retval,
|
||||
- " <%s:%s %s=\"%s\" %s=\"%s\"/>\n",
|
||||
- BOOKMARK_NAMESPACE_NAME,
|
||||
- BOOKMARK_ICON_ELEMENT,
|
||||
- BOOKMARK_HREF_ATTRIBUTE, metadata->icon_href,
|
||||
- BOOKMARK_TYPE_ATTRIBUTE, metadata->icon_mime);
|
||||
+
|
||||
+ buffer = g_strconcat (" "
|
||||
+ "<" BOOKMARK_NAMESPACE_NAME
|
||||
+ ":" BOOKMARK_ICON_ELEMENT
|
||||
+ " " BOOKMARK_HREF_ATTRIBUTE "=\"", metadata->icon_href,
|
||||
+ "\" " BOOKMARK_TYPE_ATTRIBUTE "=\"", metadata->icon_mime, "\"/>\n", NULL);
|
||||
+ g_string_append (retval, buffer);
|
||||
+
|
||||
+ g_free (buffer);
|
||||
}
|
||||
|
||||
/* private hint */
|
||||
if (metadata->is_private)
|
||||
- g_string_append_printf (retval,
|
||||
- " <%s:%s/>\n",
|
||||
- BOOKMARK_NAMESPACE_NAME,
|
||||
- BOOKMARK_PRIVATE_ELEMENT);
|
||||
+ g_string_append (retval,
|
||||
+ " "
|
||||
+ "<" BOOKMARK_NAMESPACE_NAME
|
||||
+ ":" BOOKMARK_PRIVATE_ELEMENT "/>\n");
|
||||
|
||||
/* close metadata container */
|
||||
- g_string_append_printf (retval, " </%s>\n", XBEL_METADATA_ELEMENT);
|
||||
+ g_string_append (retval,
|
||||
+ " "
|
||||
+ "</" XBEL_METADATA_ELEMENT ">\n");
|
||||
|
||||
return g_string_free (retval, FALSE);
|
||||
}
|
||||
@@ -501,6 +511,7 @@ bookmark_item_dump (BookmarkItem *item)
|
||||
GString *retval;
|
||||
gchar *added, *visited, *modified;
|
||||
gchar *escaped_uri;
|
||||
+ gchar *buffer;
|
||||
|
||||
/* at this point, we must have at least a registered application; if we don't
|
||||
* we don't screw up the bookmark file, and just skip this item
|
||||
@@ -511,37 +522,45 @@ bookmark_item_dump (BookmarkItem *item)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
- retval = g_string_new (NULL);
|
||||
+ retval = g_string_sized_new (4096);
|
||||
|
||||
added = timestamp_to_iso8601 (item->added);
|
||||
modified = timestamp_to_iso8601 (item->modified);
|
||||
visited = timestamp_to_iso8601 (item->visited);
|
||||
|
||||
escaped_uri = g_markup_escape_text (item->uri, -1);
|
||||
-
|
||||
- g_string_append_printf (retval,
|
||||
- " <%s %s=\"%s\" %s=\"%s\" %s=\"%s\" %s=\"%s\">\n",
|
||||
- XBEL_BOOKMARK_ELEMENT,
|
||||
- XBEL_HREF_ATTRIBUTE, escaped_uri,
|
||||
- XBEL_ADDED_ATTRIBUTE, added,
|
||||
- XBEL_MODIFIED_ATTRIBUTE, modified,
|
||||
- XBEL_VISITED_ATTRIBUTE, visited);
|
||||
+
|
||||
+ buffer = g_strconcat (" <"
|
||||
+ XBEL_BOOKMARK_ELEMENT
|
||||
+ " "
|
||||
+ XBEL_HREF_ATTRIBUTE "=\"", escaped_uri, "\" "
|
||||
+ XBEL_ADDED_ATTRIBUTE "=\"", added, "\" "
|
||||
+ XBEL_MODIFIED_ATTRIBUTE "=\"", modified, "\" "
|
||||
+ XBEL_VISITED_ATTRIBUTE "=\"", visited, "\">\n",
|
||||
+ NULL);
|
||||
+
|
||||
+ g_string_append (retval, buffer);
|
||||
+
|
||||
g_free (escaped_uri);
|
||||
g_free (visited);
|
||||
g_free (modified);
|
||||
g_free (added);
|
||||
+ g_free (buffer);
|
||||
|
||||
if (item->title)
|
||||
{
|
||||
gchar *escaped_title;
|
||||
|
||||
escaped_title = g_markup_escape_text (item->title, -1);
|
||||
- g_string_append_printf (retval,
|
||||
- " <%s>%s</%s>\n",
|
||||
- XBEL_TITLE_ELEMENT,
|
||||
- escaped_title,
|
||||
- XBEL_TITLE_ELEMENT);
|
||||
+ buffer = g_strconcat (" "
|
||||
+ "<" XBEL_TITLE_ELEMENT ">",
|
||||
+ escaped_title,
|
||||
+ "</" XBEL_TITLE_ELEMENT ">\n",
|
||||
+ NULL);
|
||||
+ g_string_append (retval, buffer);
|
||||
+
|
||||
g_free (escaped_title);
|
||||
+ g_free (buffer);
|
||||
}
|
||||
|
||||
if (item->description)
|
||||
@@ -549,34 +568,38 @@ bookmark_item_dump (BookmarkItem *item)
|
||||
gchar *escaped_desc;
|
||||
|
||||
escaped_desc = g_markup_escape_text (item->description, -1);
|
||||
- g_string_append_printf (retval,
|
||||
- " <%s>%s</%s>\n",
|
||||
- XBEL_DESC_ELEMENT,
|
||||
- escaped_desc,
|
||||
- XBEL_DESC_ELEMENT);
|
||||
+ buffer = g_strconcat (" "
|
||||
+ "<" XBEL_DESC_ELEMENT ">",
|
||||
+ escaped_desc,
|
||||
+ "</" XBEL_DESC_ELEMENT ">\n",
|
||||
+ NULL);
|
||||
+ g_string_append (retval, buffer);
|
||||
+
|
||||
g_free (escaped_desc);
|
||||
+ g_free (buffer);
|
||||
}
|
||||
|
||||
if (item->metadata)
|
||||
{
|
||||
gchar *metadata;
|
||||
|
||||
- /* open info container */
|
||||
- g_string_append_printf (retval, " <%s>\n", XBEL_INFO_ELEMENT);
|
||||
-
|
||||
metadata = bookmark_metadata_dump (item->metadata);
|
||||
if (metadata)
|
||||
{
|
||||
- retval = g_string_append (retval, metadata);
|
||||
+ buffer = g_strconcat (" "
|
||||
+ "<" XBEL_INFO_ELEMENT ">\n",
|
||||
+ metadata,
|
||||
+ " "
|
||||
+ "</" XBEL_INFO_ELEMENT ">\n",
|
||||
+ NULL);
|
||||
+ retval = g_string_append (retval, buffer);
|
||||
|
||||
+ g_free (buffer);
|
||||
g_free (metadata);
|
||||
}
|
||||
-
|
||||
- /* close info container */
|
||||
- g_string_append_printf (retval, " </%s>\n", XBEL_INFO_ELEMENT);
|
||||
}
|
||||
-
|
||||
- g_string_append_printf (retval, " </%s>\n", XBEL_BOOKMARK_ELEMENT);
|
||||
+
|
||||
+ g_string_append (retval, " </" XBEL_BOOKMARK_ELEMENT ">\n");
|
||||
|
||||
return g_string_free (retval, FALSE);
|
||||
}
|
||||
@@ -1435,56 +1458,53 @@ g_bookmark_file_dump (GBookmarkFile *bookmark,
|
||||
GError **error)
|
||||
{
|
||||
GString *retval;
|
||||
+ gchar *buffer;
|
||||
GList *l;
|
||||
|
||||
- retval = g_string_new (NULL);
|
||||
-
|
||||
- g_string_append_printf (retval,
|
||||
- "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
||||
-#if 0
|
||||
- /* XXX - do we really need the doctype? */
|
||||
- "<!DOCTYPE %s\n"
|
||||
- " PUBLIC \"%s\"\n"
|
||||
- " \"%s\">\n"
|
||||
-#endif
|
||||
- "<%s %s=\"%s\"\n"
|
||||
- " xmlns:%s=\"%s\"\n"
|
||||
- " xmlns:%s=\"%s\"\n>",
|
||||
+ retval = g_string_sized_new (4096);
|
||||
+
|
||||
+ g_string_append (retval,
|
||||
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
||||
#if 0
|
||||
- /* XXX - do we really need the doctype? */
|
||||
- XBEL_DTD_NICK,
|
||||
- XBEL_DTD_SYSTEM, XBEL_DTD_URI,
|
||||
+ /* XXX - do we really need the doctype? */
|
||||
+ "<!DOCTYPE " XBEL_DTD_NICK "\n"
|
||||
+ " PUBLIC \"" XBEL_DTD_SYSTEM "\"\n"
|
||||
+ " \"" XBEL_DTD_URI "\">\n"
|
||||
#endif
|
||||
- XBEL_ROOT_ELEMENT,
|
||||
- XBEL_VERSION_ATTRIBUTE, XBEL_VERSION,
|
||||
- BOOKMARK_NAMESPACE_NAME, BOOKMARK_NAMESPACE_URI,
|
||||
- MIME_NAMESPACE_NAME, MIME_NAMESPACE_URI);
|
||||
+ "<" XBEL_ROOT_ELEMENT " " XBEL_VERSION_ATTRIBUTE "=\"" XBEL_VERSION "\"\n"
|
||||
+ " xmlns:" BOOKMARK_NAMESPACE_NAME "=\"" BOOKMARK_NAMESPACE_URI "\"\n"
|
||||
+ " xmlns:" MIME_NAMESPACE_NAME "=\"" MIME_NAMESPACE_URI "\"\n>");
|
||||
|
||||
if (bookmark->title)
|
||||
{
|
||||
gchar *escaped_title;
|
||||
-
|
||||
+
|
||||
escaped_title = g_markup_escape_text (bookmark->title, -1);
|
||||
+
|
||||
+ buffer = g_strconcat (" "
|
||||
+ "<" XBEL_TITLE_ELEMENT ">",
|
||||
+ escaped_title,
|
||||
+ "</" XBEL_TITLE_ELEMENT ">\n", NULL);
|
||||
|
||||
- g_string_append_printf (retval, " <%s>%s</%s>\n",
|
||||
- XBEL_TITLE_ELEMENT,
|
||||
- escaped_title,
|
||||
- XBEL_TITLE_ELEMENT);
|
||||
-
|
||||
+ g_string_append (retval, buffer);
|
||||
+
|
||||
+ g_free (buffer);
|
||||
g_free (escaped_title);
|
||||
}
|
||||
|
||||
if (bookmark->description)
|
||||
{
|
||||
gchar *escaped_desc;
|
||||
-
|
||||
+
|
||||
escaped_desc = g_markup_escape_text (bookmark->description, -1);
|
||||
-
|
||||
- g_string_append_printf (retval, " <%s>%s</%s>\n",
|
||||
- XBEL_DESC_ELEMENT,
|
||||
- escaped_desc,
|
||||
- XBEL_DESC_ELEMENT);
|
||||
-
|
||||
+
|
||||
+ buffer = g_strconcat (" "
|
||||
+ "<" XBEL_DESC_ELEMENT ">",
|
||||
+ escaped_desc,
|
||||
+ "</" XBEL_DESC_ELEMENT ">\n", NULL);
|
||||
+ g_string_append (retval, buffer);
|
||||
+
|
||||
+ g_free (buffer);
|
||||
g_free (escaped_desc);
|
||||
}
|
||||
|
||||
@@ -1510,7 +1530,7 @@ g_bookmark_file_dump (GBookmarkFile *bookmark,
|
||||
}
|
||||
|
||||
out:
|
||||
- g_string_append_printf (retval, "</%s>", XBEL_ROOT_ELEMENT);
|
||||
+ g_string_append (retval, "</" XBEL_ROOT_ELEMENT ">");
|
||||
|
||||
if (length)
|
||||
*length = retval->len;
|
||||
@@ -3271,7 +3291,7 @@ expand_exec_line (const gchar *exec_fmt,
|
||||
GString *exec;
|
||||
gchar ch;
|
||||
|
||||
- exec = g_string_new (NULL);
|
||||
+ exec = g_string_sized_new (512);
|
||||
while ((ch = *exec_fmt++) != '\0')
|
||||
{
|
||||
if (ch != '%')
|
@@ -1,11 +0,0 @@
|
||||
--- glib-2.16.3-pre/gio/gdesktopappinfo.c 2008-05-13 16:21:51.000000000 -0500
|
||||
+++ glib-2.16.3-work/gio/gdesktopappinfo.c 2008-05-13 16:22:49.000000000 -0500
|
||||
@@ -236,7 +236,7 @@ g_desktop_app_info_new_from_filename (co
|
||||
G_KEY_FILE_DESKTOP_GROUP,
|
||||
G_KEY_FILE_DESKTOP_KEY_TRY_EXEC,
|
||||
NULL);
|
||||
- if (try_exec)
|
||||
+ if (try_exec && try_exec [0] != '\0')
|
||||
{
|
||||
char *t;
|
||||
t = g_find_program_in_path (try_exec);
|
@@ -1,38 +0,0 @@
|
||||
Index: gio/gunixmounts.c
|
||||
===================================================================
|
||||
--- gio/gunixmounts.c (revision 6871)
|
||||
+++ gio/gunixmounts.c (working copy)
|
||||
@@ -44,6 +44,7 @@
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
#include <signal.h>
|
||||
+#include <gstdio.h>
|
||||
|
||||
#include "gunixmounts.h"
|
||||
#include "gfile.h"
|
||||
@@ -1887,8 +1888,24 @@
|
||||
mount_path = mount_entry->mount_path;
|
||||
if (mount_path != NULL)
|
||||
{
|
||||
- if (g_str_has_prefix (mount_path, "/media/"))
|
||||
+ if (g_str_has_prefix (mount_path, "/media/")) {
|
||||
+ char *path;
|
||||
+ /* Avoid displaying mounts that are not accessible to the user.
|
||||
+ *
|
||||
+ * See http://bugzilla.gnome.org/show_bug.cgi?id=526320 for why we
|
||||
+ * want to avoid g_access() for every mount point.
|
||||
+ */
|
||||
+ path = g_path_get_dirname (mount_path);
|
||||
+ if (g_str_has_prefix (path, "/media/"))
|
||||
+ {
|
||||
+ if (g_access (path, R_OK|X_OK) != 0) {
|
||||
+ g_free (path);
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+ }
|
||||
+ g_free (path);
|
||||
return TRUE;
|
||||
+ }
|
||||
|
||||
if (g_str_has_prefix (mount_path, g_get_home_dir ()) && mount_path[strlen (g_get_home_dir())] == G_DIR_SEPARATOR)
|
||||
return TRUE;
|
@@ -1,33 +0,0 @@
|
||||
commit b3de48d192e0818be8d591af15f5ba7158890f2d
|
||||
Author: federico <federico@5bbd4a9e-d125-0410-bf1d-f987e7eefc80>
|
||||
Date: Wed Apr 9 20:20:19 2008 +0000
|
||||
|
||||
Don't leak apps_by_name in GBookmarkFile metadata items
|
||||
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>
|
||||
|
||||
|
||||
git-svn-id: svn+ssh://svn.gnome.org/svn/glib/trunk@6846 5bbd4a9e-d125-0410-bf1d-f987e7eefc80
|
||||
|
||||
Index: glib-2.16.3/glib/gbookmarkfile.c
|
||||
===================================================================
|
||||
--- glib-2.16.3.orig/glib/gbookmarkfile.c
|
||||
+++ glib-2.16.3/glib/gbookmarkfile.c
|
||||
@@ -325,10 +325,10 @@ bookmark_metadata_free (BookmarkMetadata
|
||||
(GFunc) bookmark_app_info_free,
|
||||
NULL);
|
||||
g_list_free (metadata->applications);
|
||||
-
|
||||
- g_hash_table_destroy (metadata->apps_by_name);
|
||||
}
|
||||
-
|
||||
+
|
||||
+ g_hash_table_destroy (metadata->apps_by_name);
|
||||
+
|
||||
g_free (metadata->icon_href);
|
||||
g_free (metadata->icon_mime);
|
||||
|
@@ -1,3 +1,67 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 18 22:13:18 CEST 2008 - maw@suse.de
|
||||
|
||||
- Update to version 2.17.2:
|
||||
+ New function: g_utime(), a gstdio wrapper for utime()
|
||||
+ New functions: g_dgettext() and g_dngettext(), wrappers
|
||||
for corresponding gettext functions with added functionaliy
|
||||
+ Support the latest version of the shared-mime spec, including
|
||||
icons for mime types
|
||||
+ New function: g_themed_icon_prepend_name()
|
||||
+ Bugs fixed: bgo#35418, bgo#28715, bgo#28714, bgo#37260,
|
||||
bgo#30527, bgo#30526, bgo#28719, bgo#28172, bgo#28717,
|
||||
bgo#28716, bgo#37555, bgo#37546, bgo#37392, bgo#36641,
|
||||
bgo#28600, bgo#03071, bgo#02511, bgo#38162, bgo#14453,
|
||||
bgo#29321, bgo#55215, bgo#98732, bgo#11367, bgo#31900,
|
||||
bgo#36158, bgo#31403, bgo#35628, and bgo#35625
|
||||
+ Updated translations.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jun 6 19:45:59 CEST 2008 - maw@suse.de
|
||||
|
||||
- Update to version 2.17.0:
|
||||
+ Update to Unicode 5.1
|
||||
+ Update included libcharset to the one shipped with libiconv
|
||||
0.12
|
||||
+ Update included PCRE to 7.7 (note, however, that this package
|
||||
uses the system's PCRE)
|
||||
+ Enforce that only toplevel headers are directly included; this
|
||||
is turned on by default for GObject and GIO; to turn it on for
|
||||
GLib, define G_DISABLE_SINGLE_INCLUDES
|
||||
+ Fix library version of GIO; GLib 2.16 shipped with
|
||||
libgio-2.0.so.0.0.0
|
||||
+ Use the GIO_EXTRA_MODULES environment variable to find
|
||||
additional GIO modules
|
||||
+ G_GNUC_ALLOC_SIZE: New macro that wraps the gcc alloc_size
|
||||
function attribute
|
||||
+ g_checksum_reset: New function to reset the state of a
|
||||
GChecksum
|
||||
+ g_unix_mount_monitor_set_rate_limit: New function to limit the
|
||||
rate at which events are reported
|
||||
+ g_file_query_file_type: New utility function to query the type
|
||||
of a file
|
||||
+ g_memory_output_stream_get_data_size: New function to obtain the
|
||||
size of the written data.
|
||||
+ Bugs fixed: bgo#522292, bgo#523298, bgo#518160, bgo#523877,
|
||||
bgo#525192, bgo#315437, bgo#524314, bgo#525732, bgo#525674,
|
||||
bgo#448943, bgo#525972, bgo#526619, bgo#491554, bgo#519137,
|
||||
bgo#528752, bgo#530457, bgo#528667, bgo#459905, bgo#534085,
|
||||
bgo#501651, bgo#519026, bgo#534319, bgo#534137, bgo#517419,
|
||||
bgo#526796, bgo#530196, bgo#532965, bgo#525553, bgo#526572,
|
||||
bgo#528648, bgo#535021, bgo#521513, bgo#528433, bgo#533369,
|
||||
bgo#521045, bgo#521672, bgo#521946, bgo#522335, bgo#523015,
|
||||
bgo#523019, bgo#523338, bgo#524350, bgo#524579, bgo#524742,
|
||||
bgo#524950, bgo#525866, bgo#526320, bgo#527132, bgo#532852,
|
||||
bgo#534759, bgo#534764, bgo#521851, bgo#524344, bgo#525060,
|
||||
bgo#534177, bgo#520715, and bgo#523039
|
||||
+ Updated translations
|
||||
- Remove upstreamed patches: glib2-allocsize.patch,
|
||||
glib2-bnc373149-bgo518160-gbookmark-optimizations.diff,
|
||||
glib2-bnc373149-bgo523877-gbookmark-optimizations.diff,
|
||||
glib2-fix-bookmark-leak.diff,
|
||||
glib2-bnc379739-handle-blank-tryexec.patch, and
|
||||
glib2-bnc387387-gio-hide-inaccessible-mounts.patch.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue May 20 03:04:45 CEST 2008 - hpj@suse.de
|
||||
|
||||
|
82
glib2.spec
82
glib2.spec
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# spec file for package glib2 (Version 2.16.3)
|
||||
# spec file for package glib2 (Version 2.17.2)
|
||||
#
|
||||
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
# This file and all modifications and additions to the pristine
|
||||
@@ -17,8 +17,8 @@ BuildRequires: fam-devel fdupes pcre-devel pkg-config
|
||||
License: LGPL v2.1 or later
|
||||
Group: Development/Libraries/C and C++
|
||||
AutoReqProv: on
|
||||
Version: 2.16.3
|
||||
Release: 17
|
||||
Version: 2.17.2
|
||||
Release: 1
|
||||
Summary: A Library with Convenient Functions Written in C
|
||||
Url: http://www.gtk.org/
|
||||
Source: ftp://ftp.gnome.org/pub/GNOME/sources/%{_name}/2.14/%{_name}-%{version}.tar.bz2
|
||||
@@ -34,24 +34,12 @@ Source5: gtk-doc.m4
|
||||
Patch0: glib2-mkinstalldirs.patch
|
||||
# PATCH-FIX-OPENSUSE glib2-aclocal.patch
|
||||
Patch1: glib2-aclocal.patch
|
||||
# PATCH-FIX-UPSTREAM glib2-allocsize.patch bgo523019 meissner@suse.de -- marks malloc-style functions to detect memory problems at compile time
|
||||
Patch3: glib2-allocsize.patch
|
||||
# PATCH-FIX-UPSTREAM glib2-bnc373149-bgo518160-gbookmark-optimizations.diff bnc373149 bgo518160 federico@novell.com -- backport GBookmark optimizations (1)
|
||||
Patch4: glib2-bnc373149-bgo518160-gbookmark-optimizations.diff
|
||||
# PATCH-FIX-UPSTREAM glib2-bnc373149-bgo523877-gbookmark-optimizations.diff bnc373149 bgo523877 federico@novell.com -- backport GBookmark optimizations (2)
|
||||
Patch5: glib2-bnc373149-bgo523877-gbookmark-optimizations.diff
|
||||
# PATCH-FIX-UPSTREAM glib2-libtool.diff schwab@suse.de -- apparently configure.in is invoking libtool in a bad way
|
||||
Patch6: glib2-libtool.diff
|
||||
# PATCH-FIX-UPSTREAM glib2-fix-bookmark-leak.diff federico@novell.com -- Don't leak apps_by_name in GBookmarkFile metadata items
|
||||
Patch7: glib2-fix-bookmark-leak.diff
|
||||
# PATCH-FIX-OPENSUSE glib2-bnc379332-desktop-su.patch bnc379332 vuntz@novell.com -- Use X-KDE-SubstituteUID
|
||||
Patch8: glib2-bnc379332-desktop-su.patch
|
||||
# PATCH-FIX-UPSTREAM glib2-base64.patch pchenthill@novell.com bnc382708
|
||||
Patch9: glib2-base64.patch
|
||||
# PATCH-FIX-UPSTREAM glib2-bnc379739-handle-blank-tryexec.patch bnc379739 hpj@novell.com
|
||||
Patch10: glib2-bnc379739-handle-blank-tryexec.patch
|
||||
# PATCH-FIX-UPSTREAM glib2-bnc387387-gio-hide-inaccessible-mounts.patch bnc387387 hpj@novell.com
|
||||
Patch11: glib2-bnc387387-gio-hide-inaccessible-mounts.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
Requires: %{name}-lang = %{version}
|
||||
# For temporary %%pre script only.
|
||||
@@ -375,15 +363,9 @@ Authors:
|
||||
%setup -q -n %{_name}-%{version}
|
||||
%patch0
|
||||
%patch1
|
||||
%patch3
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch6
|
||||
%patch7 -p1
|
||||
%patch8
|
||||
%patch9
|
||||
%patch10 -p1
|
||||
%patch11 -p0
|
||||
cp -a %{S:1} %{S:2} %{S:3} .
|
||||
cp -a %{S:4} gnome_defaults.conf
|
||||
if ! test -f %{_datadir}/aclocal/gtk-doc.m4 ; then
|
||||
@@ -514,6 +496,64 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%dir %{_datadir}/gtk-doc/html
|
||||
|
||||
%changelog
|
||||
* Thu Jun 19 2008 maw@suse.de
|
||||
- Update to version 2.17.2:
|
||||
+ New function: g_utime(), a gstdio wrapper for utime()
|
||||
+ New functions: g_dgettext() and g_dngettext(), wrappers
|
||||
for corresponding gettext functions with added functionaliy
|
||||
+ Support the latest version of the shared-mime spec, including
|
||||
icons for mime types
|
||||
+ New function: g_themed_icon_prepend_name()
|
||||
+ Bugs fixed: bgo#35418, bgo#28715, bgo#28714, bgo#37260,
|
||||
bgo#30527, bgo#30526, bgo#28719, bgo#28172, bgo#28717,
|
||||
bgo#28716, bgo#37555, bgo#37546, bgo#37392, bgo#36641,
|
||||
bgo#28600, bgo#03071, bgo#02511, bgo#38162, bgo#14453,
|
||||
bgo#29321, bgo#55215, bgo#98732, bgo#11367, bgo#31900,
|
||||
bgo#36158, bgo#31403, bgo#35628, and bgo#35625
|
||||
+ Updated translations.
|
||||
* Fri Jun 06 2008 maw@suse.de
|
||||
- Update to version 2.17.0:
|
||||
+ Update to Unicode 5.1
|
||||
+ Update included libcharset to the one shipped with libiconv
|
||||
0.12
|
||||
+ Update included PCRE to 7.7 (note, however, that this package
|
||||
uses the system's PCRE)
|
||||
+ Enforce that only toplevel headers are directly included; this
|
||||
is turned on by default for GObject and GIO; to turn it on for
|
||||
GLib, define G_DISABLE_SINGLE_INCLUDES
|
||||
+ Fix library version of GIO; GLib 2.16 shipped with
|
||||
libgio-2.0.so.0.0.0
|
||||
+ Use the GIO_EXTRA_MODULES environment variable to find
|
||||
additional GIO modules
|
||||
+ G_GNUC_ALLOC_SIZE: New macro that wraps the gcc alloc_size
|
||||
function attribute
|
||||
+ g_checksum_reset: New function to reset the state of a
|
||||
GChecksum
|
||||
+ g_unix_mount_monitor_set_rate_limit: New function to limit the
|
||||
rate at which events are reported
|
||||
+ g_file_query_file_type: New utility function to query the type
|
||||
of a file
|
||||
+ g_memory_output_stream_get_data_size: New function to obtain the
|
||||
size of the written data.
|
||||
+ Bugs fixed: bgo#522292, bgo#523298, bgo#518160, bgo#523877,
|
||||
bgo#525192, bgo#315437, bgo#524314, bgo#525732, bgo#525674,
|
||||
bgo#448943, bgo#525972, bgo#526619, bgo#491554, bgo#519137,
|
||||
bgo#528752, bgo#530457, bgo#528667, bgo#459905, bgo#534085,
|
||||
bgo#501651, bgo#519026, bgo#534319, bgo#534137, bgo#517419,
|
||||
bgo#526796, bgo#530196, bgo#532965, bgo#525553, bgo#526572,
|
||||
bgo#528648, bgo#535021, bgo#521513, bgo#528433, bgo#533369,
|
||||
bgo#521045, bgo#521672, bgo#521946, bgo#522335, bgo#523015,
|
||||
bgo#523019, bgo#523338, bgo#524350, bgo#524579, bgo#524742,
|
||||
bgo#524950, bgo#525866, bgo#526320, bgo#527132, bgo#532852,
|
||||
bgo#534759, bgo#534764, bgo#521851, bgo#524344, bgo#525060,
|
||||
bgo#534177, bgo#520715, and bgo#523039
|
||||
+ Updated translations
|
||||
- Remove upstreamed patches: glib2-allocsize.patch,
|
||||
glib2-bnc373149-bgo518160-gbookmark-optimizations.diff,
|
||||
glib2-bnc373149-bgo523877-gbookmark-optimizations.diff,
|
||||
glib2-fix-bookmark-leak.diff,
|
||||
glib2-bnc379739-handle-blank-tryexec.patch, and
|
||||
glib2-bnc387387-gio-hide-inaccessible-mounts.patch.
|
||||
* Tue May 20 2008 hpj@suse.de
|
||||
- Add glib2-bnc387387-gio-hide-inaccessible-mounts.patch
|
||||
(bnc#387387).
|
||||
|
Reference in New Issue
Block a user