[arch-commits] Commit in genius/trunk (genius-gio.patch)

Jan de Groot jgc at archlinux.org
Thu Apr 22 14:44:37 UTC 2010


    Date: Thursday, April 22, 2010 @ 10:44:36
  Author: jgc
Revision: 78365

Add GIO port patch for genius. This should get rid of GnomeVFS.

Added:
  genius/trunk/genius-gio.patch

------------------+
 genius-gio.patch |  374 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 374 insertions(+)

Added: genius-gio.patch
===================================================================
--- genius-gio.patch	                        (rev 0)
+++ genius-gio.patch	2010-04-22 14:44:36 UTC (rev 78365)
@@ -0,0 +1,374 @@
+diff -ru genius-1.0.9/configure.in genius.gio/configure.in
+--- genius-1.0.9/configure.in	2009-12-23 22:18:48.000000000 +0100
++++ genius.gio/configure.in	2010-04-22 12:04:04.000000000 +0200
+@@ -13,11 +13,11 @@
+ dnl ================= Requirements ================================================
+ 
+ VTE_REQUIRED=0.8.19
+-LIBGNOMEVFS_REQUIRED=2.0.0
+ GTK_REQUIRED=2.12.0
+ GLIB_REQUIRED=2.12.0
+ GTKSOURCEVIEW_REQUIRED=0.3.0
+ GTKSOURCEVIEW2_REQUIRED=2.0.2
++GIO_REQUIRED=2.22.0
+ 
+ dnl ===============================================================================
+ 
+@@ -117,11 +117,11 @@
+ AC_SUBST(GLIB_CFLAGS)
+ AC_SUBST(GLIB_LIBS)
+ 
+-GENIUS_MODULES="gtk+-2.0 >= $GTK_REQUIRED gnome-vfs-2.0 >= $LIBGNOMEVFS_REQUIRED vte >= $VTE_REQUIRED"
++GENIUS_MODULES="gtk+-2.0 >= $GTK_REQUIRED gio-2.0 >= $GIO_REQUIRED vte >= $VTE_REQUIRED"
+ 
+ if test "x$use_gnome" = "xyes" ; then
+   echo " 
+-Testing for presence of GNOME (GTK and gnome-vfs is enough) and GtkSourceView:
++Testing for presence of GNOME (GTK and GIO is enough) and GtkSourceView:
+ Note:
+       You can compile without GNOME by using the --disable-gnome option
+ "
+diff -ru genius-1.0.9/src/gnome-genius.c genius.gio/src/gnome-genius.c
+--- genius-1.0.9/src/gnome-genius.c	2009-11-10 07:10:57.000000000 +0100
++++ genius.gio/src/gnome-genius.c	2010-04-22 16:31:46.000000000 +0200
+@@ -25,7 +25,6 @@
+ #include <gdk/gdkkeysyms.h>
+ #include <gtk/gtk.h>
+ #include <vte/vte.h>
+-#include <libgnomevfs/gnome-vfs.h>
+ 
+ #include <string.h>
+ #include <unistd.h>
+@@ -68,9 +67,7 @@
+ #endif
+ #endif
+ 
+-#include <libgnomevfs/gnome-vfs-uri.h>
+-#include <libgnomevfs/gnome-vfs-ops.h>
+-#include <libgnomevfs/gnome-vfs-utils.h>
++#include <gio/gio.h>
+ 
+ #include "gnome-genius.h"
+ 
+@@ -697,17 +694,17 @@
+ static gboolean
+ uri_exists (const gchar* text_uri)
+ {
+-	GnomeVFSURI *uri;
++	GFile *uri;
+ 	gboolean res;
+ 		
+ 	g_return_val_if_fail (text_uri != NULL, FALSE);
+ 	
+-	uri = gnome_vfs_uri_new (text_uri);
++	uri = g_file_new_for_uri (text_uri);
+ 	g_return_val_if_fail (uri != NULL, FALSE);
+ 
+-	res = gnome_vfs_uri_exists (uri);
++	res = g_file_query_exists (uri, NULL);
+ 
+-	gnome_vfs_uri_unref (uri);
++	g_object_unref (uri);
+ 
+ 	return res;
+ }
+@@ -3088,77 +3085,70 @@
+ }
+ 
+ static gboolean
+-save_contents_vfs (const char *file, const char *str, int size)
++save_contents_vfs (const char *filename, const char *str, int size)
+ {
+-	GnomeVFSHandle *handle;
+-	GnomeVFSFileSize bytes;
+-	GnomeVFSResult result;
+-
+-	/* FIXME: we should handle errors better by perhaps moving
+-	   to a different name first and erasing only when saving
+-	   was all fine */
+-
+-	/* Be safe about saving files, unlink and create in
+-	 * exclusive mode */
+-	result = gnome_vfs_unlink (file);
+-	/* FIXME: error handling, but not if it's
+-	 * the file-doesn't-exist kind of error which is fine */
+-	result = gnome_vfs_create (&handle, file,
+-				   GNOME_VFS_OPEN_WRITE,
+-				   TRUE /* exclusive */,
+-				   0644);
+-	if (result != GNOME_VFS_OK) {
+-		/* FIXME: error handling */
++	GFile* file;
++	GFileOutputStream* stream;
++	gssize bytes;
++
++	file = g_file_new_for_uri (filename);
++	stream = g_file_replace (file, NULL, TRUE, G_FILE_CREATE_NONE, NULL, NULL);
++	
++	if (stream == NULL)
++	{
++		g_object_unref (file);
+ 		return FALSE;
+ 	}
+ 
+-	result = gnome_vfs_write (handle, str, size, &bytes);
+-	if (result != GNOME_VFS_OK || bytes != size) {
+-		gnome_vfs_close (handle);
+-		/* FIXME: error handling */
++	g_output_stream_write_all (G_OUTPUT_STREAM (stream), str, size, &bytes, NULL, NULL);
++
++	if (bytes != size)
++	{
++		g_object_unref(stream);
++		g_object_unref(file);
+ 		return FALSE;
+ 	}
+ 
+-	/* add traling \n if needed */
+ 	if (size > 0 && str[size-1] != '\n')
+-		gnome_vfs_write (handle, "\n", 1, &bytes);
+-	/* FIXME: error handling? */
++		g_output_stream_write (G_OUTPUT_STREAM (stream), "\n", 1, NULL, NULL);
+ 
+-	gnome_vfs_close (handle);
++	g_output_stream_close (G_OUTPUT_STREAM (stream), NULL, NULL);
++	g_object_unref (stream);
++	g_object_unref (file);
+ 
+ 	return TRUE;
+ }
+ 
+ static char *
+-get_contents_vfs (const char *file)
++get_contents_vfs (const char *filename)
+ {
+-	GnomeVFSHandle *handle;
+-	GnomeVFSFileSize bytes;
++	GFile* file;
++	GFileInputStream* stream;
++	gssize bytes;
+ 	char buffer[4096];
+-	GnomeVFSResult result;
+ 	GString *str;
+ 
+-	/* FIXME: add limit to avoid reading until never */
++	file = g_file_new_for_uri (filename);
++	stream = g_file_read (file, NULL, NULL);
+ 
+-	result = gnome_vfs_open (&handle, file,
+-				 GNOME_VFS_OPEN_READ);
+-	if (result != GNOME_VFS_OK) {
+-		/* FIXME: error handling */
+-		return NULL;
++	if (stream == NULL)
++	{
++		g_object_unref (file);
++		return FALSE;
+ 	}
+ 
+ 	str = g_string_new (NULL);
+ 
+-	while (gnome_vfs_read (handle,
+-			       buffer,
+-			       sizeof (buffer)-1,
+-			       &bytes) == GNOME_VFS_OK) {
++	while ((bytes = g_input_stream_read (G_INPUT_STREAM (stream), buffer, sizeof (buffer) -1, NULL, NULL)) > 0)
++	{
+ 		buffer[bytes] = '\0';
+ 		g_string_append (str, buffer);
+ 	}
+-
+-	gnome_vfs_close (handle);
+-
++	
++	g_input_stream_close (G_INPUT_STREAM (stream), NULL, NULL);
++	g_object_unref (stream);
++	g_object_unref (file);
++	
+ 	return g_string_free (str, FALSE);
+ }
+ 
+@@ -3270,15 +3260,15 @@
+ static gboolean
+ file_exists (const char *fname)
+ {
+-	GnomeVFSURI *uri;
++	GFile* uri;
+ 	gboolean ret;
+ 
+ 	if (ve_string_empty (fname))
+ 		return FALSE; 
+ 
+-	uri = gnome_vfs_uri_new (fname);
+-	ret = gnome_vfs_uri_exists (uri);
+-	gnome_vfs_uri_unref (uri);
++	uri = g_file_new_for_uri (fname);
++	ret = g_file_query_exists (uri, NULL);
++	g_object_unref (uri);
+ 
+ 	return ret;
+ }
+@@ -3286,26 +3276,26 @@
+ static gboolean
+ file_is_writable (const char *fname)
+ {
+-	GnomeVFSFileInfo *info;
+-	GnomeVFSResult result;
++	GFile* file;
++	GFileInfo* info;
+ 	gboolean ret;
+-
++	
+ 	if (ve_string_empty (fname))
+ 		return FALSE; 
+ 
+-	info = gnome_vfs_file_info_new ();
+-	result = gnome_vfs_get_file_info (fname, 
+-					  info, 
+-					  (GNOME_VFS_FILE_INFO_DEFAULT 
+-					   | GNOME_VFS_FILE_INFO_FOLLOW_LINKS
+-					   | GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS));
+-	ret = (info->permissions & GNOME_VFS_PERM_ACCESS_WRITABLE);
+-	gnome_vfs_file_info_unref (info);
++	file = g_file_new_for_uri (fname);
++	info = g_file_query_info (file, G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE, G_FILE_QUERY_INFO_NONE, NULL, NULL);
+ 
+-	if (result == GNOME_VFS_OK)
+-		return ret;
+-	else
++	if (info == NULL)
++	{
++		g_object_unref (file);
+ 		return FALSE;
++	}
++	ret = g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE);
++	g_object_unref (info);
++	g_object_unref (file);
++
++	return ret;
+ }
+ 
+ 
+@@ -3414,13 +3404,18 @@
+ 				p);
+ 
+ 	if (filename == NULL) {
++		GFile* file;
+ 		char *d = g_get_current_dir ();
+ 		char *n = g_strdup_printf (_("Program_%d.gel"), cnt);
+ 		/* the file name will have an underscore */
+ 		char *fn = g_build_filename (d, n, NULL);
+ 		g_free (d);
+ 		g_free (n);
+-		p->name = gnome_vfs_get_uri_from_local_path (fn);
++
++		file = g_file_new_for_path (fn);
++		p->name = g_file_get_uri (file);
++
++		g_object_unref (file);
+ 		g_free (fn);
+ 		p->vname = g_strdup_printf (_("Program %d"), cnt);
+ 		cnt++;
+@@ -4684,51 +4679,23 @@
+ 	return str->str;
+ }
+ 
+-static gboolean
+-is_uri (const char *s)
+-{
+-	const char *p;
+-	if ( ! s)
+-		return FALSE;
+-
+-	for (p = s; (*p >= 'a' && *p <= 'z') || (*p >= 'A' && *p <= 'Z'); p++)
+-		;
+-	if (p == s)
+-		return FALSE;
+-	if (*p == ':') {
+-		GnomeVFSURI *uri =
+-			gnome_vfs_uri_new (s);
+-
+-		if (uri != NULL) {
+-			gnome_vfs_uri_unref (uri);
+-			return TRUE;
+-		} else {
+-			return FALSE;
+-		}
+-	}
+-	return FALSE;
+-}
+-
+ static void
+ loadup_files_from_cmdline (int argc, char *argv[])
+ {
+ 	int i;
+ 
+ 	for (i = 1; i < argc && argv[i] != NULL; i++) {
+-		char *fn;
+-		if (is_uri (argv[i])) {
+-			fn = g_strdup (argv[i]);
+-		} else if (g_path_is_absolute (argv[i])) {
+-			fn = gnome_vfs_get_uri_from_local_path (argv[i]);
+-		} else {
+-			char *d = g_get_current_dir ();
+-			char *n = g_build_filename (d, argv[i], NULL);
+-			fn = gnome_vfs_get_uri_from_local_path (n);
+-			g_free (d);
+-			g_free (n);
+-		}
+-		new_program (fn);
+-		g_free (fn);
++		GFile *file;
++		char *uri;
++		
++		file = g_file_new_for_commandline_arg (argv[i]);
++		uri = g_file_get_uri (file);
++
++		g_object_unref (file);
++
++		new_program (uri);
++		
++		g_free (uri);
+ 	}
+ }
+ 
+@@ -4737,22 +4704,20 @@
+ 		    gint x, gint y, GtkSelectionData *selection_data, 
+ 		    guint info, guint time)
+ {
+-	GList *list;
+-	GList *li;
+-	
++	char *uri;
++	char **uris;
++	int i = 0;
++
+ 	if (info != TARGET_URI_LIST)
+ 		return;
+ 			
+-	list = gnome_vfs_uri_list_parse ((gpointer)selection_data->data);
++	uris = g_uri_list_extract_uris (selection_data->data);
+ 
+-	for (li = list; li != NULL; li = li->next) {
+-		const GnomeVFSURI *uri = li->data;
+-		char *s = gnome_vfs_uri_to_string (uri,
+-						   GNOME_VFS_URI_HIDE_NONE);
+-		new_program (s);
++	for (uri = uris[i]; uri != NULL; i++, uri = uris[i])
++	{
++		new_program (uri);
+ 	}
+-	
+-	gnome_vfs_uri_list_free (list);
++	g_strfreev (uris);
+ }
+ 
+ static void
+@@ -4848,7 +4813,6 @@
+ 						      NULL);
+ 
+ 	gtk_init (&argc, &argv);
+-	gnome_vfs_init ();
+ 	/* FIXME: handle errors */
+ 
+ 	if (give_no_lib_error_after_init) {




More information about the arch-commits mailing list