[Xfce4-commits] <tumbler:master> Drop unneeded vfs schemes.
Nick Schermer
noreply at xfce.org
Sat Dec 8 00:20:06 CET 2012
Updating branch refs/heads/master
to 4255750cb05bea0e01115fd2a5f91cdff3b1d829 (commit)
from 2165c4239697a905fdd3e46037baa977c05e4fb1 (commit)
commit 4255750cb05bea0e01115fd2a5f91cdff3b1d829
Author: Nick Schermer <nick at xfce.org>
Date: Sat Dec 8 00:17:15 2012 +0100
Drop unneeded vfs schemes.
Skip schemes that cannot be used to generate thumbs. This
removes a load of combinations in the various tables.
tumbler/tumbler-util.c | 46 ++++++++++++++++++++++++++--------------------
1 files changed, 26 insertions(+), 20 deletions(-)
diff --git a/tumbler/tumbler-util.c b/tumbler/tumbler-util.c
index cba4e7a..b601364 100644
--- a/tumbler/tumbler-util.c
+++ b/tumbler/tumbler-util.c
@@ -22,6 +22,10 @@
#include <config.h>
#endif
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
#include <glib.h>
#include <gio/gio.h>
@@ -34,36 +38,38 @@ tumbler_util_get_supported_uri_schemes (void)
{
const gchar *const *vfs_schemes;
gchar **uri_schemes;
- gboolean file_scheme_found = FALSE;
guint length;
- guint n;
+ guint n = 0;
+ guint i;
GVfs *vfs;
/* determine the URI schemes supported by GIO */
vfs = g_vfs_get_default ();
vfs_schemes = g_vfs_get_supported_uri_schemes (vfs);
- /* search for the "file" scheme */
- for (n = 0; !file_scheme_found && vfs_schemes[n] != NULL; ++n)
- if (g_strcmp0 (vfs_schemes[n], "file") == 0)
- file_scheme_found = TRUE;
-
- /* check if the "file" scheme is included */
- if (file_scheme_found)
- {
- /* it is, so simply copy the array */
- uri_schemes = g_strdupv ((gchar **)vfs_schemes);
- }
+ if (G_LIKELY (vfs_schemes != NULL))
+ length = g_strv_length ((gchar **) vfs_schemes);
else
+ length = 0;
+
+ /* always start with file */
+ uri_schemes = g_new0 (gchar *, length + 2);
+ uri_schemes[n++] = g_strdup ("file");
+
+ if (G_LIKELY (vfs_schemes != NULL))
{
- /* it is not, so we need to copy the array and add "file" */
- length = g_strv_length ((gchar **)vfs_schemes);
- uri_schemes = g_new0 (gchar *, length + 2);
- uri_schemes[0] = g_strdup ("file");
- for (n = 1; n <= length; ++n)
- uri_schemes[n] = g_strdup (vfs_schemes[n-1]);
- uri_schemes[n] = NULL;
+ for (i = 0; vfs_schemes[i] != NULL; ++i)
+ {
+ /* skip unneeded schemes */
+ if (strcmp ("file", vfs_schemes[i]) != 0
+ && strcmp ("computer", vfs_schemes[i]) != 0
+ && strcmp ("localtest", vfs_schemes[i]) != 0
+ && strcmp ("network", vfs_schemes[i]) != 0)
+ uri_schemes[n++] = g_strdup (vfs_schemes[i]);
+ }
}
+ uri_schemes[n++] = NULL;
+
return uri_schemes;
}
More information about the Xfce4-commits
mailing list