summaryrefslogtreecommitdiff
path: root/glib
diff options
context:
space:
mode:
authorCarlos Garcia Campos <carlosgc@gnome.org>2009-07-01 09:52:12 +0200
committerCarlos Garcia Campos <carlosgc@gnome.org>2009-07-01 09:52:12 +0200
commit28208d1c9b8afbb769a5f4d9b0655b99fd4af16e (patch)
tree33f2f4db763540946e720e1a62d9723f9eb1c64c /glib
parent6ef83414ab55294cf46b6b05813927bb04066986 (diff)
[glib-demo] Do not use gio if glib < 2.15
Fixes bug #22530.
Diffstat (limited to 'glib')
-rw-r--r--glib/demo/main.c33
1 files changed, 31 insertions, 2 deletions
diff --git a/glib/demo/main.c b/glib/demo/main.c
index 5973c8e7..3026c6cf 100644
--- a/glib/demo/main.c
+++ b/glib/demo/main.c
@@ -146,7 +146,6 @@ gint main (gint argc, gchar **argv)
GtkWidget *notebook;
GtkWidget *treeview;
GtkTreeSelection *selection;
- GFile *file;
gchar *uri;
GTimer *timer;
GError *error = NULL;
@@ -158,13 +157,43 @@ gint main (gint argc, gchar **argv)
if (!g_thread_supported ())
g_thread_init (NULL);
-
gtk_init (&argc, &argv);
+#if GLIB_CHECK_VERSION (2,15,0)
+ GFile *file;
+
file = g_file_new_for_commandline_arg (argv[1]);
uri = g_file_get_uri (file);
g_object_unref (file);
+#else
+ if (g_path_is_absolute (argv[1])) {
+ uri = g_filename_to_uri (argv[1], NULL, &error);
+ } else if (g_ascii_strncasecmp (argv[1], "file://", strlen ("file://")) == 0) {
+ uri = g_strdup (argv[1]);
+ } else if (!g_strrstr (argv[1], "://")) {
+ gchar *dir;
+ gchar *filename;
+
+ dir = g_get_current_dir ();
+ filename = g_build_filename (dir, argv[1], NULL);
+ g_free (dir);
+
+ uri = g_filename_to_uri (filename, NULL, &error);
+ g_free (filename);
+ } else {
+ g_print ("Error: unsupported uri\n");
+
+ return 1;
+ }
+
+ if (error) {
+ g_print ("Error: %s\n", error->message);
+ g_error_free (error);
+
+ return 1;
+ }
+#endif /* GLIB_CHECK_VERSION */
timer = g_timer_new ();
document = poppler_document_new_from_file (uri, NULL, &error);