This commit is contained in:
parent
d8b8569a14
commit
144508939d
144
SuSEconfig.glib2
Normal file
144
SuSEconfig.glib2
Normal file
@ -0,0 +1,144 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# Copyright (c) 2006 SuSE
|
||||
# Author: Stanislav Brabec <sbrabec@suse.cz>
|
||||
#
|
||||
# Creates defaults.list from gnome_defaults.conf using only available
|
||||
# applications and preferring GNOME and GTK applications.
|
||||
#
|
||||
# See /etc/gnome_defaults.conf for algorithm description.
|
||||
|
||||
shopt -s nullglob
|
||||
|
||||
unset DUMMY ${!MIME_*} ${!APP_*} ${!DEFAULT_*} ${!PREFDEFAULT_*} ${!DEFDESKTOP_*}
|
||||
|
||||
# Ensure, that $XDG_DATA_DIRS is set properly. (#71978, #240603)
|
||||
if test "$PROFILEREAD" != true ; then
|
||||
. $r/etc/profile
|
||||
fi
|
||||
|
||||
# Read defaults.list and set applications as best candidates.
|
||||
exec <$r/etc/gnome_defaults.conf
|
||||
while read ; do
|
||||
case "$REPLY" in
|
||||
"[Default Applications]" | "#"* | "" )
|
||||
;;
|
||||
# Is is default application for particular MIME type?
|
||||
*=* )
|
||||
# Strip optional priority record (and ignore it - no GNOME app uses it).
|
||||
MIME=${REPLY%%=*}
|
||||
# Replace special characters.
|
||||
MIMES=${MIME//_/__}
|
||||
MIMES=${MIMES//\//_S}
|
||||
MIMES=${MIMES//-/_M}
|
||||
MIMES=${MIMES//+/_P}
|
||||
MIMES=${MIMES//./_D}
|
||||
eval DEFAULT_${MIMES}\=${REPLY#*=}
|
||||
;;
|
||||
# Is it preferred default application?
|
||||
!* )
|
||||
DESKTOP=${REPLY#!}
|
||||
DESKTOPS=${DESKTOP//_/__}
|
||||
DESKTOPS=${DESKTOPS//-/_M}
|
||||
DESKTOPS=${DESKTOPS//+/_P}
|
||||
DESKTOPS=${DESKTOPS//./_D}
|
||||
DESKTOPS=${DESKTOPS// /_S}
|
||||
DESKTOPS=${DESKTOPS//:/_C}
|
||||
eval DEFDESKTOP_$DESKTOPS\=PREFDEFAULT
|
||||
;;
|
||||
# Is it default application?
|
||||
* )
|
||||
DESKTOP=${REPLY}
|
||||
DESKTOPS=${DESKTOP//_/__}
|
||||
DESKTOPS=${DESKTOPS//-/_M}
|
||||
DESKTOPS=${DESKTOPS//+/_P}
|
||||
DESKTOPS=${DESKTOPS//./_D}
|
||||
DESKTOPS=${DESKTOPS// /_S}
|
||||
DESKTOPS=${DESKTOPS//:/_C}
|
||||
eval DEFDESKTOP_$DESKTOPS\=DEFAULT
|
||||
;;
|
||||
esac
|
||||
done
|
||||
exec <&-
|
||||
|
||||
IFS="$IFS:;"
|
||||
# Browse all desktop files
|
||||
for DIR in ${XDG_DATA_DIRS:-/usr/local/share:/usr/share} ; do
|
||||
for DESKTOP in $r$DIR/applications/*.desktop ; do
|
||||
DESKTOPN=${DESKTOP##*/}
|
||||
DESKTOPS=${DESKTOPN//_/__}
|
||||
DESKTOPS=${DESKTOPS//-/_M}
|
||||
DESKTOPS=${DESKTOPS//+/_P}
|
||||
DESKTOPS=${DESKTOPS//./_D}
|
||||
DESKTOPS=${DESKTOPS// /_S}
|
||||
DESKTOPS=${DESKTOPS//:/_C}
|
||||
IS_DEFAULT_DESKTOP=false
|
||||
eval "if test \"\$DEFDESKTOP_$DESKTOPS\" ; then
|
||||
IS_DEFAULT_DESKTOP=true
|
||||
DEFTYPE=\$DEFDESKTOP_$DESKTOPS
|
||||
fi"
|
||||
exec <"$DESKTOP"
|
||||
CATEGORIES=
|
||||
MIMETYPE=
|
||||
while read ; do
|
||||
case "$REPLY" in
|
||||
Categories=* )
|
||||
CATEGORIES="${REPLY#Categories=}"
|
||||
;;
|
||||
MimeType=* )
|
||||
MIMETYPE="${REPLY#MimeType=}"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
exec <&-
|
||||
# Is it a GNOME application?
|
||||
APPTYPE=GENERIC
|
||||
if test "$CATEGORIES" != "${CATEGORIES/GTK}" ; then
|
||||
APPTYPE=GTK
|
||||
fi
|
||||
if test "$CATEGORIES" != "${CATEGORIES/GNOME}" ; then
|
||||
APPTYPE=GNOME
|
||||
fi
|
||||
if $IS_DEFAULT_DESKTOP ; then
|
||||
APPTYPE=$DEFTYPE
|
||||
fi
|
||||
for MIME in $MIMETYPE ; do
|
||||
# Strip optional priority record (and ignore it - no GNOME app uses it).
|
||||
MIME=${MIME%:*}
|
||||
# Replace special characters.
|
||||
MIMES=${MIME//_/__}
|
||||
MIMES=${MIMES//\//_S}
|
||||
MIMES=${MIMES//-/_M}
|
||||
MIMES=${MIMES//+/_P}
|
||||
MIMES=${MIMES//./_D}
|
||||
eval MIME_$MIMES\=$MIME
|
||||
IS_DEFAULT=false
|
||||
eval "if test \"\$DEFAULT_$MIMES\" = \"\$DESKTOPN\" ; then
|
||||
IS_DEFAULT=true
|
||||
fi"
|
||||
if $IS_DEFAULT ; then
|
||||
eval APP_DEFAULT_$MIMES\=\"\$DESKTOPN\"
|
||||
else
|
||||
eval APP_${APPTYPE}_$MIMES\=\"\$DESKTOPN\"
|
||||
fi
|
||||
done
|
||||
done
|
||||
done
|
||||
|
||||
exec >$r/var/cache/gio-2.0/defaults.list
|
||||
echo "# generated by SuSEconfig --module glib2 from /etc/gnome_defaults.conf"
|
||||
echo "[Default Applications]"
|
||||
|
||||
# Browse all offered MIME types and write defaults.list.
|
||||
for MIMES in ${!MIME_*} ; do
|
||||
eval MIME\=\$$MIMES
|
||||
MIMES=${MIMES#MIME_}
|
||||
# Try GNOME applications first, then GTK, then generic.
|
||||
for APPTYPE in PREFDEFAULT DEFAULT DEFDESKTOP GNOME GTK GENERIC ; do
|
||||
eval "if test \"\$APP_${APPTYPE}_$MIMES\" ; then
|
||||
echo \"$MIME=\$APP_${APPTYPE}_$MIMES\" ;
|
||||
break ;
|
||||
fi"
|
||||
done
|
||||
done
|
||||
exec >&-
|
2
baselibs.conf
Normal file
2
baselibs.conf
Normal file
@ -0,0 +1,2 @@
|
||||
glib2
|
||||
arch ppc64 package glib2-devel
|
52
glib2-bnc373149-bgo518160-gbookmark-optimizations.diff
Normal file
52
glib2-bnc373149-bgo518160-gbookmark-optimizations.diff
Normal file
@ -0,0 +1,52 @@
|
||||
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;
|
||||
}
|
411
glib2-bnc373149-bgo523877-gbookmark-optimizations.diff
Normal file
411
glib2-bnc373149-bgo523877-gbookmark-optimizations.diff
Normal file
@ -0,0 +1,411 @@
|
||||
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,3 +1,21 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 1 18:40:52 CEST 2008 - coolo@suse.de
|
||||
|
||||
- moved recommendation of gvfs to gtk2
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 1 16:35:22 CEST 2008 - sbrabec@suse.cz
|
||||
|
||||
- SuSEconfig script moved from gnome-vfs2 (bnc#372783).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 1 03:05:35 CEST 2008 - federico@novell.com
|
||||
|
||||
- Added glib2-bnc373149-bgo518160-gbookmark-optimizations.diff and
|
||||
glib2-bnc373149-bgo523877-gbookmark-optimizations.diff to fix
|
||||
https://bugzilla.novell.com/show_bug.cgi?id=373149 - backport
|
||||
optimizations for GBookmarkFile.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 17 19:21:53 CET 2008 - rodrigo@suse.de
|
||||
|
||||
|
66
glib2.spec
66
glib2.spec
@ -18,15 +18,17 @@ License: LGPL v2.1 or later
|
||||
Group: Development/Libraries/C and C++
|
||||
AutoReqProv: on
|
||||
Version: 2.16.1
|
||||
Release: 3
|
||||
Release: 8
|
||||
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
|
||||
Source1: glib2.sh
|
||||
Source2: glib2.csh
|
||||
Source3: SuSEconfig.glib2
|
||||
Source4: gnome_defaults.conf
|
||||
# Not depending on gtk-doc shortens bootstrap compilation path.
|
||||
# Please update this file from the latest gtk-doc package:
|
||||
Source3: gtk-doc.m4
|
||||
Source5: gtk-doc.m4
|
||||
# PATCH-FIX-OPENSUSE glib2-mkinstalldirs.patch
|
||||
Patch0: glib2-mkinstalldirs.patch
|
||||
# PATCH-FIX-OPENSUSE glib2-aclocal.patch
|
||||
@ -35,11 +37,16 @@ Patch1: glib2-aclocal.patch
|
||||
Patch2: glib2-cast.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
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
Requires: %{name}-lang = %{version}
|
||||
# For temporary %%pre script only.
|
||||
PreReq: coreutils
|
||||
Recommends: gvfs
|
||||
# Conflicts of gnome_defaults.conf from gnome-vfs2 in == 10.3
|
||||
Conflicts: gnome-vfs2 < 2.22.0
|
||||
|
||||
%description
|
||||
This library provides convenient functions, such as lists and hashes,
|
||||
@ -65,6 +72,7 @@ Authors:
|
||||
Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
%package devel
|
||||
License: GPL v2 or later
|
||||
Requires: %{name} = %{version} pcre-devel pkg-config glibc-devel
|
||||
Summary: Include files and libraries mandatory for development
|
||||
Group: Development/Libraries/C and C++
|
||||
@ -98,6 +106,7 @@ Authors:
|
||||
Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
%package doc
|
||||
License: GPL v2 or later
|
||||
Summary: Documentation for the C Library with Convenience Functions
|
||||
Group: Development/Libraries/C and C++
|
||||
AutoReqProv: on
|
||||
@ -132,8 +141,11 @@ Authors:
|
||||
%patch1
|
||||
### %patch2
|
||||
%patch3
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
cp -a %{S:1} %{S:2} %{S:3} %{S:4} .
|
||||
if ! test -f %{_datadir}/aclocal/gtk-doc.m4 ; then
|
||||
cp -a %{S:3} m4macros/
|
||||
cp -a %{S:5} m4macros/
|
||||
fi
|
||||
|
||||
%build
|
||||
@ -148,13 +160,31 @@ make %{?jobs:-j%jobs}
|
||||
%install
|
||||
make install DESTDIR=$RPM_BUILD_ROOT
|
||||
mkdir -p $RPM_BUILD_ROOT/etc/profile.d
|
||||
cp -a %{S:1} $RPM_BUILD_ROOT/etc/profile.d/zzz-glib2.sh
|
||||
cp -a %{S:2} $RPM_BUILD_ROOT/etc/profile.d/zzz-glib2.csh
|
||||
chmod +x $RPM_BUILD_ROOT/%{_bindir}/gtester-report
|
||||
install -D -m0755 glib2.sh $RPM_BUILD_ROOT/etc/profile.d/zzz-glib2.sh
|
||||
install -D -m0755 glib2.csh $RPM_BUILD_ROOT/etc/profile.d/zzz-glib2.csh
|
||||
install -D -m0755 SuSEconfig.glib2 $RPM_BUILD_ROOT/sbin/conf.d/SuSEconfig.glib2
|
||||
install -D -m0644 gnome_defaults.conf $RPM_BUILD_ROOT%{_sysconfdir}/gnome_defaults.conf
|
||||
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/cache/gio-2.0 $RPM_BUILD_ROOT%{_datadir}/applications
|
||||
touch $RPM_BUILD_ROOT%{_localstatedir}/cache/gio-2.0/defaults.list
|
||||
ln -s %{_localstatedir}/cache/gio-2.0/defaults.list $RPM_BUILD_ROOT%{_datadir}/applications/defaults.list
|
||||
#chmod +x $RPM_BUILD_ROOT/%{_bindir}/gtester-report
|
||||
%find_lang %{_name}20
|
||||
%fdupes $RPM_BUILD_ROOT
|
||||
|
||||
%post -p /sbin/ldconfig
|
||||
%posttrans
|
||||
# If it is an upgrade and gnome_defaults.conf were edited,
|
||||
# move it from its old location. (Upgrade from <=10.2)
|
||||
if test -f etc/opt/gnome/gnome_defaults.conf.rpmsave ; then
|
||||
mv etc/gnome_defaults.conf etc/gnome_defaults.conf.rpmnew
|
||||
sed "s:etc/opt/gnome:etc:g;s:opt/gnome:usr:g" <etc/opt/gnome/gnome_defaults.conf.rpmsave >etc/gnome_defaults.conf
|
||||
fi
|
||||
# If it is an upgrade and gnome_defaults.conf were edited,
|
||||
# revive it from the RPM backup. (Upgrade from ==10.3)
|
||||
if test -f etc/gnome_defaults.conf.rpmsave ; then
|
||||
mv etc/gnome_defaults.conf etc/gnome_defaults.conf.rpmnew
|
||||
mv etc/gnome_defaults.conf.rpmsave etc/gnome_defaults.conf
|
||||
fi
|
||||
|
||||
%postun -p /sbin/ldconfig
|
||||
|
||||
@ -164,15 +194,20 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%doc AUTHORS COPYING README NEWS ChangeLog
|
||||
%{_datadir}/applications/defaults.list
|
||||
%{_libdir}/lib*.so.*
|
||||
/etc/profile.d/zzz-glib2.*
|
||||
/sbin/conf.d/SuSEconfig.glib2
|
||||
%dir %{_localstatedir}/cache/gio-2.0
|
||||
%ghost %{_localstatedir}/cache/gio-2.0/defaults.list
|
||||
%config (noreplace) %{_sysconfdir}/gnome_defaults.conf
|
||||
|
||||
%files lang -f %{_name}20.lang
|
||||
|
||||
%files devel
|
||||
%defattr(-,root,root)
|
||||
%{_bindir}/*
|
||||
%{_datadir}/aclocal/*
|
||||
%{_datadir}/aclocal/*.m4
|
||||
%{_datadir}/glib-2.0
|
||||
%{_includedir}/glib-2.0
|
||||
%{_includedir}/gio-unix-2.0
|
||||
@ -192,6 +227,15 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%dir %{_datadir}/gtk-doc/html
|
||||
|
||||
%changelog
|
||||
* Tue Apr 01 2008 coolo@suse.de
|
||||
- moved recommendation of gvfs to gtk2
|
||||
* Tue Apr 01 2008 sbrabec@suse.cz
|
||||
- SuSEconfig script moved from gnome-vfs2 (bnc#372783).
|
||||
* Tue Apr 01 2008 federico@novell.com
|
||||
- Added glib2-bnc373149-bgo518160-gbookmark-optimizations.diff and
|
||||
glib2-bnc373149-bgo523877-gbookmark-optimizations.diff to fix
|
||||
https://bugzilla.novell.com/show_bug.cgi?id=373149 - backport
|
||||
optimizations for GBookmarkFile.
|
||||
* Mon Mar 17 2008 rodrigo@suse.de
|
||||
- Upstream glib2-allocsize.patch that should have been upstreamed
|
||||
* Thu Mar 13 2008 rodrigo@suse.de
|
||||
@ -575,7 +619,7 @@ rm -rf $RPM_BUILD_ROOT
|
||||
http://bugzilla.gnome.org/show_bug.cgi?id=316221
|
||||
* Fri Nov 04 2005 schwab@suse.de
|
||||
- Fix use of atomic builtins.
|
||||
* Tue Oct 11 2005 gekker@suse.de
|
||||
* Wed Oct 12 2005 gekker@suse.de
|
||||
- Update to version 2.8.3
|
||||
* Wed Sep 28 2005 gekker@suse.de
|
||||
- Update to version 2.8.2
|
||||
@ -630,7 +674,7 @@ rm -rf $RPM_BUILD_ROOT
|
||||
- Require gnome-filesystem (#47068).
|
||||
* Wed Sep 29 2004 sbrabec@suse.cz
|
||||
- Fixed glib2.csh for unset LANG (#46282).
|
||||
* Wed Aug 25 2004 federico@ximian.com
|
||||
* Thu Aug 26 2004 federico@ximian.com
|
||||
- Update to glib 2.4.5
|
||||
- Removed glib-pattern.diff, as this bug is fixed in the tarball.
|
||||
* Wed Aug 25 2004 kukuk@suse.de
|
||||
@ -660,7 +704,7 @@ rm -rf $RPM_BUILD_ROOT
|
||||
- FHS 2.3 fix (mandir, infodir, #35821).
|
||||
* Wed Mar 10 2004 sbrabec@suse.cz
|
||||
- Fixed %%doc attributes (#33163).
|
||||
* Fri Jan 09 2004 schwab@suse.de
|
||||
* Sat Jan 10 2004 schwab@suse.de
|
||||
- Fix quoting in autoconf macros.
|
||||
* Fri Oct 17 2003 adrian@suse.de
|
||||
- fix missing %%run_ldconfig
|
||||
|
58
gnome_defaults.conf
Normal file
58
gnome_defaults.conf
Normal file
@ -0,0 +1,58 @@
|
||||
# GNOME Default Applications Source
|
||||
# /etc/gnome-defaults.conf
|
||||
#
|
||||
# After any change of this file run
|
||||
# SuSEconfig --module gnome-vfs2
|
||||
#
|
||||
# This list is a source for defaults.list.
|
||||
#
|
||||
# If application in this list is installed, it is used as default in GNOME.
|
||||
# It works in following way:
|
||||
# 1. Read this file.
|
||||
# 2. Collect all available desktop files.
|
||||
# 3. Go through all declared MIME types and search for default application
|
||||
# for defaults.list in following order:
|
||||
# 3.1 Installed application listed here for certain MIME type.
|
||||
# 3.2 Installed application listed here as preferred default.
|
||||
# 3.3 Installed application listed here as default.
|
||||
# 3.4 Installed application with GNOME in Categories.
|
||||
# 3.5 Installed application with GTK in Categories.
|
||||
# 3.6 Installed application.
|
||||
# If there are more applications in the same order, it uses pseudo-randomly
|
||||
# one of them (last in aplhabetical order).
|
||||
#
|
||||
# Syntax:
|
||||
# Use xxx as default for all MIME types it declares (see 3.3):
|
||||
# xxx.desktop
|
||||
# Use xxx as preferred default for all MIME types it declares (see 3.2):
|
||||
# !xxx.desktop
|
||||
# Use xxx as default for mime/type (see 3.1):
|
||||
# mime/type=xxx.desktop
|
||||
|
||||
# Prefer banshee for multimedia where possible
|
||||
!banshee.desktop
|
||||
|
||||
# Prefer contracted commercial applications
|
||||
!acroread.desktop
|
||||
realplay.desktop
|
||||
|
||||
# Prefer Zen for handling packages
|
||||
!zen-installer.desktop
|
||||
|
||||
# Nice GNOME default applications
|
||||
eog.desktop
|
||||
evince.desktop
|
||||
gedit.desktop
|
||||
file-roller.desktop
|
||||
|
||||
# Firefox
|
||||
MozillaFirefox.desktop
|
||||
|
||||
# OpenOffice
|
||||
base.desktop
|
||||
calc.desktop
|
||||
draw.desktop
|
||||
impress.desktop
|
||||
math.desktop
|
||||
web.desktop
|
||||
writer.desktop
|
Loading…
x
Reference in New Issue
Block a user