# HG changeset patch # User John Lindgren # Date 1241220944 14400 # Node ID ab60d53dd965ee86cafa31d8a3d8cc72a19ad7ce # Parent 85e71772af79833a3608d5a13cdb8f5282b3bf31 Use g_filename_to_uri on command line items that do not contain "://" (bug #51) diff -r 85e71772af79 -r ab60d53dd965 src/audlegacy/main.c --- a/src/audlegacy/main.c Tue Apr 28 23:00:58 2009 +0100 +++ b/src/audlegacy/main.c Fri May 01 19:35:44 2009 -0400 @@ -249,6 +249,7 @@ static void handle_cmd_line_filenames(gboolean is_running) { + char * working, * absolute, * uri; gchar **filenames = options.filenames; #ifdef USE_DBUS DBusGProxy *session = audacious_get_dbus_proxy(); @@ -261,28 +262,21 @@ gint i = 0; GList *fns = NULL; - for (i = 0; filenames[i] != NULL; i++) - { - gchar *filename; - gchar *current_dir = g_get_current_dir(); - - if (!strstr(filenames[i], "://")) - { - if (filenames[i][0] == '/') - filename = g_strdup_printf("file:///%s", filenames[i]); - else - filename = g_strdup_printf("file:///%s/%s", current_dir, - filenames[i]); - } - else - filename = g_strdup(filenames[i]); - - fns = g_list_prepend(fns, filename); - - g_free(current_dir); + working = g_get_current_dir (); + for (i = 0; filenames [i]; i ++) { + if (strstr (filenames [i], "://")) + uri = g_strdup (filenames [i]); + else if (filenames [i] [0] == '/') + uri = g_filename_to_uri (filenames [i], 0, 0); + else { + absolute = g_strdup_printf ("/%s/%s", working, filenames [i]); + uri = g_filename_to_uri (absolute, 0, 0); + g_free (absolute); + } + fns = g_list_prepend (fns, uri); } - - fns = g_list_reverse(fns); + fns = g_list_reverse (fns); + g_free (working); #ifdef USE_DBUS if (is_running)